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)  

aux_objects.h
Go to the documentation of this file.
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 
int Exclusions_add_not_leafs(struct ExclusionS *o, char *not_leafs_descr, regex_t *re, int flag)
Definition: aux_objects.c:764
int Linkitem_new(struct LinkiteM **o, char *link_path, dev_t target_dev, ino_t target_ino, struct LinkiteM *next, int flag)
Definition: aux_objects.c:859
int Exclusions_get_descrs(struct ExclusionS *o, struct Xorriso_lsT **not_paths_descr, struct Xorriso_lsT **not_leafs_descr, int flag)
Definition: aux_objects.c:836
int Dirseq_rewind(struct DirseQ *o, int flag)
Definition: aux_objects.c:377
int Splitpart__parse(char *name, int *partno, int *total_parts, off_t *offset, off_t *bytes, off_t *total_bytes, int flag)
Definition: aux_objects.c:153
int Splitpart__read_next_num(char *base_pt, char **next_pt, off_t *num, int flag)
Definition: aux_objects.c:129
int Splitparts_new(struct SplitparT **o, int count, int flag)
Definition: aux_objects.c:62
int Splitpart__is_part_path(char *path, int flag)
Definition: aux_objects.c:199
int Permstack_push(struct PermiteM **o, char *disk_path, struct stat *stbuf, int flag)
Definition: aux_objects.c:946
int Linkitem_destroy(struct LinkiteM **o, int flag)
Definition: aux_objects.c:883
int Dirseq_destroy(struct DirseQ **o, int flag)
Definition: aux_objects.c:336
int Splitparts_sort(struct SplitparT *o, int count, int flag)
Definition: aux_objects.c:259
int Linkitem_reset_stack(struct LinkiteM **o, struct LinkiteM *to, int flag)
Definition: aux_objects.c:895
int Splitparts_get(struct SplitparT *o, int idx, char **name, int *partno, int *total_parts, off_t *offset, off_t *bytes, off_t *total_bytes, int flag)
Definition: aux_objects.c:115
int Xorriso_lst_detach_text(struct Xorriso_lsT *entry, int flag)
Definition: aux_objects.c:642
int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper, struct XorrisO *xorriso, int flag)
Definition: aux_objects.c:975
int Exclusions_add_not_paths(struct ExclusionS *o, int descrc, char **descrs, int pathc, char **paths, int flag)
Definition: aux_objects.c:730
int Exclusions_destroy(struct ExclusionS **o, int flag)
Definition: aux_objects.c:710
struct Xorriso_lsT * Xorriso_lst_get_next(struct Xorriso_lsT *entry, int flag)
Definition: aux_objects.c:624
int Xorriso_lst_get_last(struct Xorriso_lsT *entry, struct Xorriso_lsT **last, int flag)
Definition: aux_objects.c:649
int Splitparts_destroy(struct SplitparT **o, int count, int flag)
Definition: aux_objects.c:81
int Xorriso_lst_new(struct Xorriso_lsT **lstring, char *text, struct Xorriso_lsT *link, int flag)
Definition: aux_objects.c:557
char * Xorriso_lst_get_text(struct Xorriso_lsT *entry, int flag)
Definition: aux_objects.c:636
int Splitparts_set(struct SplitparT *o, int idx, char *name, int partno, int total_parts, off_t offset, off_t bytes, off_t total_bytes, int flag)
Definition: aux_objects.c:97
int Linkitem_get_link_count(struct LinkiteM *item, int flag)
Definition: aux_objects.c:930
int Xorriso_lst_concat(struct Xorriso_lsT *first, struct Xorriso_lsT *second, int flag)
Definition: aux_objects.c:659
int Linkitem_find(struct LinkiteM *stack, dev_t target_dev, ino_t target_ino, struct LinkiteM **result, int flag)
Definition: aux_objects.c:915
int Xorriso_lst_destroy(struct Xorriso_lsT **lstring, int flag)
Definition: aux_objects.c:571
int Exclusions_new(struct ExclusionS **o, int flag)
Definition: aux_objects.c:695
int Xorriso_lst_new_binary(struct Xorriso_lsT **lstring, char *data, int data_len, struct Xorriso_lsT *link, int flag)
Definition: aux_objects.c:506
int Splitpart__compose(char *adr, int partno, int total_parts, off_t offset, off_t bytes, off_t total_bytes, int flag)
Definition: aux_objects.c:218
int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag)
Definition: aux_objects.c:783
int Dirseq_new(struct DirseQ **o, char *adr, int flag)
Definition: aux_objects.c:291
struct Xorriso_lsT * Xorriso_lst_get_prev(struct Xorriso_lsT *entry, int flag)
Definition: aux_objects.c:630
int Xorriso_lst_append_binary(struct Xorriso_lsT **entry, char *data, int data_len, int flag)
Definition: aux_objects.c:609
int Dirseq_next_adr(struct DirseQ *o, char reply[SfileadrL], int flag)
#define SfileadrL
char adr[4096]
Definition: aux_objects.c:275
struct LinkiteM * next
Definition: aux_objects.c:855
char * link_path
Definition: aux_objects.c:851
ino_t target_ino
Definition: aux_objects.c:853
dev_t target_dev
Definition: aux_objects.c:852
char * disk_path
Definition: aux_objects.c:940
struct stat stbuf
Definition: aux_objects.c:941
off_t bytes
Definition: aux_objects.c:55
int partno
Definition: aux_objects.c:52
off_t total_bytes
Definition: aux_objects.c:56
int total_parts
Definition: aux_objects.c:53
char * name
Definition: aux_objects.c:51
off_t offset
Definition: aux_objects.c:54
struct Xorriso_lsT * next
Definition: aux_objects.h:70
struct Xorriso_lsT * prev
Definition: aux_objects.h:70
char * text
Definition: aux_objects.h:69