"Fossies" - the Fresh Open Source Software Archive

Member "libisoburn-1.5.4/xorriso/aux_objects.h" (8 Jul 2020, 6608 Bytes) of package /linux/misc/libisoburn-1.5.4.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 "aux_objects.h" see the Fossies "Dox" file reference documentation.

    1 
    2 /* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
    3 
    4    Copyright 2007-2010 Thomas Schmitt, <scdbackup@gmx.net>
    5 
    6    Provided under GPL version 2 or later.
    7 
    8    This file contains declarations of classes:
    9 
   10    - SplitparT which represents byte intervals of data files.
   11 
   12    - DirseQ which crawls along a directory's content list.
   13 
   14    - ExclusionS which manages the list of excluded file paths and 
   15      leaf patterns.
   16 
   17    - Xorriso_lsT which provides a generic double-linked list.
   18 
   19    - LinkiteM, PermiteM which temporarily record relations and states.
   20 
   21 */
   22 
   23 
   24 #ifndef Xorriso_pvt_auxobj_includeD
   25 #define Xorriso_pvt_auxobj_includeD yes
   26 
   27 struct SplitparT;
   28 
   29 int Splitparts_new(struct SplitparT **o, int count, int flag);
   30 
   31 int Splitparts_destroy(struct SplitparT **o, int count, int flag);
   32 
   33 int Splitparts_set(struct SplitparT *o, int idx,
   34                    char *name, int partno, int total_parts,
   35                    off_t offset, off_t bytes, off_t total_bytes, int flag);
   36 
   37 int Splitparts_get(struct SplitparT *o, int idx, char **name, int *partno,
   38                    int *total_parts, off_t *offset, off_t *bytes, 
   39                    off_t *total_bytes, int flag);
   40 
   41 int Splitpart__parse(char *name, int *partno, int *total_parts,
   42                     off_t *offset, off_t *bytes, off_t *total_bytes, int flag);
   43 
   44 int Splitpart__is_part_path(char *path, int flag);
   45 
   46 int Splitpart__compose(char *adr, int partno, int total_parts,
   47                        off_t offset, off_t bytes, off_t total_bytes, int flag);
   48 
   49 int Splitpart__read_next_num(char *base_pt, char **next_pt, off_t *num,
   50                              int flag);
   51 
   52 int Splitparts_sort(struct SplitparT *o, int count, int flag);
   53 
   54 
   55 
   56 struct DirseQ;
   57 
   58 int Dirseq_new(struct DirseQ **o, char *adr, int flag);
   59 
   60 int Dirseq_destroy(struct DirseQ **o, int flag);
   61 
   62 int Dirseq_next_adr(struct DirseQ *o, char reply[SfileadrL], int flag);
   63 
   64 int Dirseq_rewind(struct DirseQ *o, int flag);
   65 
   66 
   67 
   68 struct Xorriso_lsT {
   69   char *text;
   70   struct Xorriso_lsT *prev,*next;
   71 };
   72 
   73 /** Create a new list item with arbitrary byte content.
   74     @param lstring  The newly created object or NULL on failure
   75     @param data     An array of bytes to be copied into the new object
   76     @param data_len Number of bytes to be copied
   77     @param link     Xorriso_lsT object to which the new object shall be linked
   78     @param flag Bitfield for control purposes
   79                 bit0= insert before link rather than after it
   80                 bit1= do not copy data (e.g. because *data is invalid)
   81                 bit2= attach data directly by pointer rather than by copying
   82     @return <=0 error, 1 ok
   83 */
   84 int Xorriso_lst_new_binary(struct Xorriso_lsT **lstring, char *data,
   85                            int data_len, struct Xorriso_lsT *link, int flag);
   86 
   87 
   88 /** Create a new list item with a 0-terminated text as content.
   89     @param lstring  The newly created object or NULL on failure
   90     @param text     A 0-terminated array of bytes
   91     @param link     Xorriso_lsT object to which the new object shall be linked
   92     @param flag     see Xorriso_lst_new_binary
   93     @return <=0 error, 1 ok
   94 */
   95 int Xorriso_lst_new(struct Xorriso_lsT **lstring, char *text,
   96                     struct Xorriso_lsT *link, int flag);
   97 
   98 
   99 /** Create a new list item at the end of a given list.
  100     @param entry    Contains as input a pointer to a pointer to any existing
  101                     list item. As output this list item pointer may be
  102                     changed to the address of the new list item:
  103                     if ((*entry == 0) || (flag & 1))
  104     @param data     An array of bytes to be copied into the new object
  105     @param data_len Number of bytes to be copied
  106     @param flag     Bitfield for control purposes
  107                     bit0= Return new object address in *entry
  108                     bit1= do not copy data (e.g. because *data is invalid)
  109                     bit2= attach data directly by pointer rather than by copying
  110     @return <=0 error, 1 ok
  111 */
  112 int Xorriso_lst_append_binary(struct Xorriso_lsT **entry,
  113                               char *data, int data_len, int flag);
  114 
  115 
  116 /** Destroy a single list item and connect its eventual list neighbors.
  117     @param lstring  pointer to the pointer to be freed and set to NULL
  118     @param flag     unused yet, submit 0
  119     @return 0= *lstring was already NULL, 1= ok
  120 */
  121 int Xorriso_lst_destroy(struct Xorriso_lsT **lstring, int flag);
  122 
  123 
  124 struct Xorriso_lsT *Xorriso_lst_get_next(struct Xorriso_lsT *entry, int flag);
  125 
  126 struct Xorriso_lsT *Xorriso_lst_get_prev(struct Xorriso_lsT *entry, int flag);
  127 
  128 char *Xorriso_lst_get_text(struct Xorriso_lsT *entry, int flag);
  129 
  130 int Xorriso_lst_detach_text(struct Xorriso_lsT *entry, int flag);
  131 
  132 int Xorriso_lst_get_last(struct Xorriso_lsT *entry, struct Xorriso_lsT **last,
  133                          int flag);
  134 
  135 int Xorriso_lst_concat(struct Xorriso_lsT *first, struct Xorriso_lsT *second,
  136                        int flag);
  137 
  138 
  139 int Exclusions_new(struct ExclusionS **o, int flag);
  140 
  141 int Exclusions_destroy(struct ExclusionS **o, int flag);
  142 
  143 int Exclusions_get_descrs(struct ExclusionS *o,
  144                           struct Xorriso_lsT **not_paths_descr,
  145                           struct Xorriso_lsT **not_leafs_descr, int flag);
  146 
  147 /* @param flag bit0= whole subtree is banned with -not_paths
  148    @return 0=no match , 1=not_paths , 2=not_leafs, <0=error
  149 */
  150 int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag);
  151 
  152 int Exclusions_add_not_leafs(struct ExclusionS *o, char *not_leafs_descr,
  153                              regex_t *re, int flag);
  154 
  155 int Exclusions_add_not_paths(struct ExclusionS *o, int descrc, char **descrs,
  156                              int pathc, char **paths, int flag);
  157 
  158 
  159 
  160 struct LinkiteM;          /* Trace of hops during symbolic link resolution */
  161 
  162 int Linkitem_new(struct LinkiteM **o, char *link_path, dev_t target_dev,
  163                  ino_t target_ino, struct LinkiteM *next, int flag);
  164 
  165 int Linkitem_destroy(struct LinkiteM **o, int flag);
  166 
  167 int Linkitem_reset_stack(struct LinkiteM **o, struct LinkiteM *to, int flag);
  168 
  169 int Linkitem_find(struct LinkiteM *stack, dev_t target_dev, ino_t target_ino,
  170                   struct LinkiteM **result, int flag);
  171 
  172 int Linkitem_get_link_count(struct LinkiteM *item, int flag);
  173 
  174 
  175 struct PermiteM;          /* Stack of temporarily altered access permissions */
  176 
  177 int Permstack_push(struct PermiteM **o, char *disk_path, struct stat *stbuf,
  178                    int flag);
  179 
  180 int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper,
  181                   struct XorrisO *xorriso, int flag);
  182 
  183 
  184 #endif /* ! Xorriso_pvt_auxobj_includeD */
  185