1 /* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */ 2 3 /* Copyright (c) 2004 - 2006 Derek Foreman, Ben Jansens 4 Copyright (c) 2006 - 2013 Thomas Schmitt <scdbackup@gmx.net> 5 Provided under GPL version 2 or later. 6 */ 7 8 #ifndef BURN__INIT_H 9 #define BURN__INIT_H 10 11 extern int burn_running; 12 13 extern double lib_start_time; 14 15 /** Indicator for burn_drive_get_status() whether a signal hit parts of the 16 thread team. 17 0= all works well , 18 1 to 5 = waiting for eventual signal on control thread 19 > 5 = do abort now 20 -1 = control thread has been informed 21 */ 22 extern volatile int burn_global_abort_level; 23 extern int burn_global_abort_signum; 24 extern void *burn_global_signal_handle; 25 extern burn_abort_handler_t burn_global_signal_handler; 26 27 extern int burn_builtin_signal_action; /* burn_set_signal_handling() */ 28 extern volatile int burn_builtin_triggered_action; /* burn_is_aborting() */ 29 30 31 /* ts B00225 */ 32 /* @return 0= no abort pending , 1= not control thread , 33 -1= surprisingly burn_abort returned 34 */ 35 int burn_init_catch_on_abort(int flag); 36 37 /* ts B10606 */ 38 void *burn_alloc_mem(size_t size, size_t count, int flag); 39 40 #define BURN_ALLOC_MEM(pt, typ, count) { \ 41 pt= (typ *) burn_alloc_mem(sizeof(typ), (size_t) (count), 0); \ 42 if(pt == NULL) { \ 43 ret= -1; goto ex; \ 44 } } 45 46 #define BURN_ALLOC_MEM_VOID(pt, typ, count) { \ 47 pt= (typ *) burn_alloc_mem(sizeof(typ), (size_t) (count), 0); \ 48 if(pt == NULL) { \ 49 goto ex; \ 50 } } 51 52 #define BURN_FREE_MEM(pt) { \ 53 if(pt != NULL) \ 54 free((char *) pt); \ 55 } 56 57 58 /* B20122 */ 59 int burn_grab_prepare_sig_action(int *signal_action_mem, int flag); 60 int burn_grab_restore_sig_action(int signal_action_mem, int flag); 61 62 63 #endif /* BURN__INIT_H */ 64