xorriso  1.5.4.pl02
About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.
  Fossies Dox: xorriso-1.5.4.pl02.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

os-libcdio.h
Go to the documentation of this file.
1 
2 /* os-libcdio.h
3  Operating system specific libburn definitions and declarations. Included
4  by os.h in case of compilation for
5  Unknown X/Open-like systems
6  with GNU libcdio MMC transport adapter sg-libcdio.c
7 
8  Copyright (C) 2009 - 2013 Thomas Schmitt <scdbackup@gmx.net>
9  Provided under GPLv2+
10 */
11 
12 
13 /** List of all signals which shall be caught by signal handlers and trigger
14  a graceful abort of libburn. (See man 7 signal.)
15 */
16 /* Once as system defined macros */
17 #define BURN_OS_SIGNAL_MACRO_LIST \
18  SIGHUP, SIGINT, SIGQUIT, SIGILL, SIGABRT, \
19  SIGFPE, SIGSEGV, SIGPIPE, SIGALRM, SIGTERM, \
20  SIGUSR1, SIGUSR2, SIGXCPU
21 
22 /* Once as text 1:1 list of strings for messages and interpreters */
23 #define BURN_OS_SIGNAL_NAME_LIST \
24  "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGABRT", \
25  "SIGFPE", "SIGSEGV", "SIGPIPE", "SIGALRM", "SIGTERM", \
26  "SIGUSR1", "SIGUSR2", "SIGXCPU"
27 
28 /* The number of above list items */
29 #define BURN_OS_SIGNAL_COUNT 13
30 
31 
32 /** The list of all signals which shall surely not be caught.
33  It depends on the particular signal whether it can be ignored or whether
34  it will lead to sudden death of the process.
35  Some signals are not POSIX,
36  but nevertheless ought to be ignored if they are defined.
37 */
38 
39 #ifdef SIGWINCH
40 #define BURN_OS_SIG_WINCH ,SIGWINCH
41 #define BURN_OS_SIG_WINCH_CNT 1
42 #else
43 #define BURN_OS_SIG_WINCH
44 #define BURN_OS_SIG_WINCH_CNT 0
45 #endif
46 
47 #ifdef SIGURG
48 #define BURN_OS_SIG_URG ,SIGURG
49 #define BURN_OS_SIG_URG_CNT 1
50 #else
51 #define BURN_OS_SIG_URG
52 #define BURN_OS_SIG_URG_CNT 0
53 #endif
54 
55 /** The combined list of all signals which shall not be caught.
56  */
57 #define BURN_OS_NON_SIGNAL_MACRO_LIST \
58 SIGKILL, SIGCHLD, SIGSTOP, SIGTSTP, SIGCONT, SIGTTIN, SIGTTOU \
59 BURN_OS_SIG_WINCH BURN_OS_SIG_URG
60 
61 /* The number of above list items */
62 #define BURN_OS_NON_SIGNAL_COUNT \
63 ( 7 + BURN_OS_SIG_WINCH_CNT + BURN_OS_SIG_URG_CNT )
64 
65 
66 /* The maximum size for a (SCSI) i/o transaction */
67 /* My Blu-ray burner LG GGW-H20 writes junk if stream recording is combined
68  with buffer size 32 kB. So stream recording is allowed only with size 64k.
69  Older BSD info says that 32 kB is maximum. But 64 kB seems to work well
70  on 8-STABLE. It is by default only used with BD in streaming mode.
71  So older systems should still be quite safe with this buffer max size.
72 */
73 /* Important : MUST be at least 32768 ! */
74 #define BURN_OS_TRANSPORT_BUFFER_SIZE 65536
75 
76 
77 /* To hold the position of the most recently delivered address from
78  device enumeration.
79 */
82  char **pos;
83 };
84 
85 #define BURN_OS_DEFINE_DRIVE_ENUMERATOR_T \
86 typedef struct burn_drive_enumerator_struct burn_drive_enumerator_t;
87 
88 
89 /* The list of operating system dependent elements in struct burn_drive.
90  Usually they are initialized in sg-*.c:enumerate_common().
91 */
92 #define BURN_OS_TRANSPORT_DRIVE_ELEMENTS \
93  void *p_cdio; /* actually a pointer to CdIo_t */ \
94  char libcdio_name[4096]; /* The drive path as used by libcdio */ \
95