"Fossies" - the Fresh Open Source Software Archive

Member "xorriso-1.5.4/libburn/file.h" (30 Jan 2021, 2232 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 "file.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 1.4.6_vs_1.4.8.

    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 - 2017 Thomas Schmitt <scdbackup@gmx.net>
    5    Provided under GPL version 2 or later.
    6 */
    7 
    8 #ifndef BURN__FILE_H
    9 #define BURN__FILE_H
   10 
   11 struct burn_source_file
   12 {
   13     char magic[4];
   14 
   15     int datafd;
   16     int subfd;
   17     off_t fixed_size;
   18 };
   19 
   20 /* ts A70126 : burn_source_file obsoleted burn_source_fd */
   21 
   22 
   23 /* ts A70930 */
   24 struct burn_source_fifo {
   25     char magic[4];
   26 
   27     /* The fifo stays inactive and unequipped with eventual resources
   28        until its read() method is called for the first time.
   29        Only then burn_fifo_start() gets called, allocates the complete
   30        resources, starts a thread with burn_fifo_source_shoveller()
   31        which shovels data and finally destroys the resources.
   32        This late start is to stay modest in case of multiple tracks
   33        in one disc.
   34     */
   35     int is_started;
   36 
   37     void *thread_handle; /* actually a pointer to a thread_t */
   38     int thread_pid;
   39     int thread_is_valid;
   40 
   41     /* The shoveller aborts if this is 1. Resource leaks are possible. */
   42     volatile int do_abort;
   43 
   44     /* the burn_source for which this fifo is acting as proxy */
   45     struct burn_source *inp;
   46     int inp_read_size;
   47 
   48     /* <<< up to now it was only a pipe. This is on its way out. */
   49     int outlet[2];
   50 
   51     /* The ring buffer mechanism */
   52     int chunksize;
   53     int chunks;
   54     char *buf;
   55     volatile int buf_writepos;
   56     volatile int buf_readpos;
   57     volatile int end_of_input;
   58     volatile int input_error;
   59     volatile int end_of_consumption;
   60 
   61     off_t in_counter;
   62     off_t out_counter;
   63 
   64     int total_min_fill;
   65     int interval_min_fill;
   66     int put_counter;
   67     int get_counter;
   68     int empty_counter;
   69     int full_counter;
   70 
   71 };
   72 
   73 
   74 /** The worker behind the fifo thread.
   75     Gets started from burn_fifo_start() in async.c
   76 */
   77 int burn_fifo_source_shoveller(struct burn_source *source, int flag);
   78 
   79 
   80 /* ts B00922 */
   81 struct burn_source_offst {
   82 
   83     /* See burn_offst_source_new() */
   84     struct burn_source *inp;
   85     struct burn_source *prev;
   86     off_t start;
   87     off_t size;
   88     int size_adjustable;
   89 
   90     /* for set_size/get_size */
   91     int nominal_size;
   92 
   93     /* To help offst_free() */
   94     struct burn_source *next;
   95 
   96     /* The current reading position */
   97     int running;
   98     off_t pos;
   99 
  100 };
  101 
  102 #endif /* LIBBURN__FILE_H */