"Fossies" - the Fresh Open Source Software Archive

Member "xorriso-1.5.4/libburn/os-libcdio.h" (30 Jan 2021, 3003 Bytes) of package /linux/misc/xorriso-1.5.4.pl02.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "os-libcdio.h" see the Fossies "Dox" file reference documentation.

    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 */
   80 struct burn_drive_enumerator_struct {
   81     char **ppsz_cd_drives;
   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