ReactOS 0.4.15-dev-7906-g1b85a5f
mkisofs.h
Go to the documentation of this file.
1/* @(#)mkisofs.h 1.152 16/12/13 joerg */
2/*
3 * Header file mkisofs.h - assorted structure definitions and typecasts.
4 *
5 * Written by Eric Youngdale (1993).
6 *
7 * Copyright 1993 Yggdrasil Computing, Incorporated
8 * Copyright (c) 1999,2000-2016 J. Schilling
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2, or (at your option)
13 * any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 */
24
25/* APPLE_HYB James Pearson j.pearson@ge.ucl.ac.uk 23/2/2000 */
26
27/* DUPLICATES_ONCE Alex Kopylov cdrtools@bootcd.ru 19.06.2004 */
28
29#include <schily/mconfig.h> /* Must be before stdio.h for LARGEFILE support */
30#include <schily/stdio.h>
31#include <schily/types.h>
32#include <schily/time.h>
33#include <schily/stat.h>
34#include <schily/stdlib.h>
35#include <schily/unistd.h> /* Needed for for LARGEFILE support */
36#include <schily/string.h>
37#include <schily/dirent.h>
38#include <schily/utypes.h>
39#include <schily/standard.h>
40#include <schily/nlsdefs.h>
41#include <schily/ctype.h>
42#include <schily/libport.h> /* Define missing prototypes */
43#include "scsi.h"
44
45#ifdef DVD_AUD_VID
46#ifndef UDF
47#define UDF
48#endif
49#endif
50
51#ifdef USE_LARGEFILES
52/*
53 * XXX Hack until fseeko()/ftello() are available everywhere or until
54 * XXX we know a secure way to let autoconf ckeck for fseeko()/ftello()
55 * XXX without defining FILE_OFFSETBITS to 64 in confdefs.h
56 */
57# define fseek fseeko
58# define ftell ftello
59#endif
60
61#ifndef HAVE_LSTAT
62#ifndef VMS
63#define lstat stat
64#endif
65#endif
66
67#include "iso9660.h"
68#include "defaults.h"
69#include <schily/siconv.h>
70
71extern siconvt_t *in_nls; /* input UNICODE conversion table */
72extern siconvt_t *out_nls; /* output UNICODE conversion table */
73extern siconvt_t *hfs_inls; /* input HFS UNICODE conversion table */
74extern siconvt_t *hfs_onls; /* output HFS UNICODE conversion table */
75
76/*
77 * Structure used to pass arguments via trewalk() to walkfun().
78 */
79struct wargs {
80 void *dir; /* Pointer to struct directory *root */
81 char *name; /* NULL or alternative short name */
82};
83
84#ifdef APPLE_HYB
85#include "mactypes.h"
86#include "hfs.h"
87
88struct hfs_info {
89 unsigned char finderinfo[32];
90 char name[HFS_MAX_FLEN + 1];
91 /* should have fields for dates here as well */
92 char *keyname;
93 struct hfs_info *next;
94};
95
96#endif /* APPLE_HYB */
97
98/*
99 * Our version of "struct timespec".
100 * Currently only used with UDF.
101 */
102typedef struct timesp {
104 Int32_t tv_nsec;
106
111 unsigned int starting_block;
113 int mxpart; /* Extent number */
114 unsigned short priority;
115 unsigned char jreclen; /* Joliet record len */
116 char *name;
117 char *table;
121 struct directory_entry *mxroot; /* Pointer to orig entry */
122 unsigned int de_flags;
123#ifdef UDF
124 mode_t mode; /* used for udf */
125 dev_t rdev; /* used for udf devices */
126 uid_t uid; /* used for udf */
127 gid_t gid; /* used for udf */
128 timesp atime; /* timespec for atime */
129 timesp mtime; /* timespec for mtime */
130 timesp ctime; /* timespec for ctime */
131#endif
132 ino_t inode; /* Used in the hash table */
133 dev_t dev; /* Used in the hash table */
134 unsigned char *rr_attributes;
135 unsigned int rr_attr_size;
136 unsigned int total_rr_attr_size;
137 unsigned int got_rr_name;
138#ifdef APPLE_HYB
139 struct directory_entry *assoc; /* entry has a resource fork */
140 hfsdirent *hfs_ent; /* HFS parameters */
141 off_t hfs_off; /* offset to real start of fork */
142 int hfs_type; /* type of HFS Unix file */
143#endif /* APPLE_HYB */
144#ifdef SORTING
145 int sort; /* sort weight for entry */
146#endif /* SORTING */
147#ifdef UDF
148 int udf_file_entry_sector; /* also used as UDF unique ID */
149#endif
150#ifdef DUPLICATES_ONCE
151 unsigned char *digest_fast;
152 unsigned char *digest_full;
153#endif
154};
155
156struct file_hash {
158 ino_t inode; /* Used in the hash table */
159 dev_t dev; /* Used in the hash table */
160 nlink_t nlink; /* Used to compute new link count */
161 unsigned int starting_block;
163#if defined(SORTING) || defined(DUPLICATES_ONCE)
164 struct directory_entry *de;
165#endif /* SORTING */
166};
167
168
169/*
170 * This structure is used to control the output of fragments to the cdrom
171 * image. Everything that will be written to the output image will eventually
172 * go through this structure. There are two pieces - first is the sizing where
173 * we establish extent numbers for everything, and the second is when we actually
174 * generate the contents and write it to the output image.
175 *
176 * This makes it trivial to extend mkisofs to write special things in the image.
177 * All you need to do is hook an additional structure in the list, and the rest
178 * works like magic.
179 *
180 * The three passes each do the following:
181 *
182 * The 'size' pass determines the size of each component and assigns the extent number
183 * for that component.
184 *
185 * The 'generate' pass will adjust the contents and pointers as required now that extent
186 * numbers are assigned. In some cases, the contents of the record are also generated.
187 *
188 * The 'write' pass actually writes the data to the disc.
189 */
192 int (*of_size) __PR((UInt32_t));
193 int (*of_generate) __PR((void));
194 int (*of_write) __PR((FILE *));
195 char *of_name; /* Textual description */
196 unsigned int of_start_extent; /* For consist check */
197};
198
199extern struct output_fragment *out_list;
200extern struct output_fragment *out_tail;
201
202extern struct output_fragment startpad_desc;
203extern struct output_fragment voldesc_desc;
204extern struct output_fragment xvoldesc_desc;
205extern struct output_fragment joliet_desc;
206extern struct output_fragment torito_desc;
207extern struct output_fragment end_vol;
208extern struct output_fragment version_desc;
209extern struct output_fragment pathtable_desc;
210extern struct output_fragment jpathtable_desc;
211extern struct output_fragment dirtree_desc;
212extern struct output_fragment dirtree_clean;
213extern struct output_fragment jdirtree_desc;
214extern struct output_fragment extension_desc;
215extern struct output_fragment files_desc;
216extern struct output_fragment interpad_desc;
217extern struct output_fragment endpad_desc;
218extern struct output_fragment sunboot_desc;
219extern struct output_fragment sunlabel_desc;
220extern struct output_fragment genboot_desc;
221extern struct output_fragment strfile_desc;
222extern struct output_fragment strdir_desc;
223extern struct output_fragment strpath_desc;
224
225#ifdef APPLE_HYB
226extern struct output_fragment hfs_desc;
227
228#endif /* APPLE_HYB */
229#ifdef DVD_AUD_VID
230/*
231 * This structure holds the information necessary to create a valid
232 * DVD-Video image. Basically it's how much to pad the files so the
233 * file offsets described in the video_ts.ifo and vts_xx_0.ifo are
234 * the correct one in the image that we create.
235 */
236typedef struct {
237 int realsize_ifo;
238 int realsize_menu;
239 int realsize_bup;
240 int size_ifo;
241 int size_menu;
242 int size_title;
243 int size_bup;
244 int pad_ifo;
245 int pad_menu;
246 int pad_title;
247 int pad_bup;
248 int number_of_vob_files;
249 int realsize_vob[10];
250} title_set_t;
251
252typedef struct {
253 int num_titles;
254 title_set_t *title_set;
255} title_set_info_t;
256#endif /* DVD_AUD_VID */
257
258/*
259 * This structure describes one complete directory. It has pointers
260 * to other directories in the overall tree so that it is clear where
261 * this directory lives in the tree, and it also must contain pointers
262 * to the contents of the directory. Note that subdirectories of this
263 * directory exist twice in this stucture. Once in the subdir chain,
264 * and again in the contents chain.
265 */
266struct directory {
267 struct directory *next; /* Next directory at same level as this one */
268 struct directory *subdir; /* First subdirectory in this directory */
273 char *whole_name; /* Entire source path */
274 char *de_path; /* Entire path iside ISO-9660 */
275 char *de_name; /* Last path name component */
276 unsigned int ce_bytes; /* Number of bytes of CE entries read */
277 /* for this dir */
278 unsigned int depth;
279 unsigned int size;
280 unsigned int extent;
281 unsigned int jsize;
282 unsigned int jextent;
283 unsigned int path_index;
284 unsigned int jpath_index;
285 unsigned short dir_flags;
286 unsigned short dir_nlink;
287#ifdef APPLE_HYB
288 hfsdirent *hfs_ent; /* HFS parameters */
289 struct hfs_info *hfs_info; /* list of info for all entries in dir */
290#endif /* APPLE_HYB */
291#ifdef SORTING
292 int sort; /* sort weight for child files */
293#endif /* SORTING */
294};
295
298 char *table;
299 unsigned int extent;
301 char *name;
303 unsigned int pad;
305 unsigned int dw_flags;
306#ifdef APPLE_HYB
307 int hfstype;
308#endif
309};
310
320
321#define ELTORITO_BOOT_ID 1
322#define ELTORITO_SECTION_HEADER 2
323 int type;
324 /*
325 * Valid if (type & ELTORITO_BOOT_ID) != 0
326 */
328
329};
330
331typedef struct ldate {
336
337extern int goof;
338extern struct directory *root;
339extern struct directory *reloc_dir;
340extern UInt32_t next_extent;
341extern UInt32_t last_extent;
342extern UInt32_t last_extent_written;
343extern UInt32_t session_start;
344
345extern unsigned int path_table_size;
346extern unsigned int path_table[4];
347extern unsigned int path_blocks;
348extern char *path_table_l;
349extern char *path_table_m;
350
351extern unsigned int jpath_table_size;
352extern unsigned int jpath_table[4];
353extern unsigned int jpath_blocks;
354extern char *jpath_table_l;
355extern char *jpath_table_m;
356
359
360extern int check_oldnames;
361extern int check_session;
362extern int use_eltorito;
363extern int hard_disk_boot;
364extern int not_bootable;
365extern int no_emul_boot;
366extern int load_addr;
367extern int load_size;
368extern int boot_info_table;
369extern int use_RockRidge;
370extern int osecsize;
371extern int use_XA;
372extern int use_Joliet;
373extern int rationalize;
374extern int rationalize_uid;
375extern int rationalize_gid;
376extern int rationalize_filemode;
377extern int rationalize_dirmode;
378extern uid_t uid_to_use;
379extern gid_t gid_to_use;
380extern int filemode_to_use;
381extern int dirmode_to_use;
382extern int new_dir_mode;
383extern int follow_links;
384extern int cache_inodes;
385#ifdef DUPLICATES_ONCE
386extern int duplicates_once;
387#endif
388extern int verbose;
389extern int debug;
390extern int gui;
391extern int all_files;
392extern int generate_tables;
393extern int print_size;
394extern int split_output;
395extern int use_graft_ptrs;
396extern int jhide_trans_tbl;
397extern int hide_rr_moved;
398extern int omit_period;
399extern int omit_version_number;
400extern int no_rr;
401extern int transparent_compression;
403extern int do_largefiles;
404extern off_t maxnonlarge;
405extern int iso9660_level;
406extern int iso9660_namelen;
407extern int full_iso9660_filenames;
408extern int nolimitpathtables;
409extern int relaxed_filenames;
410extern int allow_lowercase;
411extern int allow_multidot;
412extern int iso_translate;
413extern int allow_leading_dots;
414extern int use_fileversion;
415extern int split_SL_component;
416extern int split_SL_field;
417extern char *trans_tbl;
418
419#define JMAX 64 /* maximum Joliet file name length (spec) */
420#define JLONGMAX 103 /* out of spec Joliet file name length */
421extern int jlen; /* selected maximum Joliet file name length */
422
423#ifdef DVD_AUD_VID
424
425#define DVD_SPEC_NONE 0x0
426#define DVD_SPEC_VIDEO 0x1
427#define DVD_SPEC_AUDIO 0x2
428#define DVD_SPEC_HYBRD (DVD_SPEC_VIDEO | DVD_SPEC_AUDIO)
429extern int dvd_audio;
430extern int dvd_hybrid;
431extern int dvd_video;
432extern int dvd_aud_vid_flag;
433#endif /* DVD_AUD_VID */
434
435
436extern int donotwrite_macpart;
437
438#ifdef APPLE_HYB
439extern int apple_hyb; /* create HFS hybrid */
440extern int apple_ext; /* use Apple extensions */
441extern int apple_both; /* common flag (for above) */
442extern int hfs_extra; /* extra ISO extents (hfs_ce_size) */
443extern hce_mem *hce; /* libhfs/mkisofs extras */
444extern int use_mac_name; /* use Mac name for ISO9660/Joliet/RR */
445extern int create_dt; /* create the Desktp files */
446extern char *hfs_boot_file; /* name of HFS boot file */
447extern char *magic_file; /* magic file for CREATOR/TYPE matching */
448extern int hfs_last; /* order in which to process map/magic files */
449extern char *deftype; /* default Apple TYPE */
450extern char *defcreator; /* default Apple CREATOR */
451extern int gen_pt; /* generate HFS partition table */
452extern char *autoname; /* Autostart filename */
453extern int afe_size; /* Apple File Exchange block size */
454extern char *hfs_volume_id; /* HFS volume ID */
455extern int icon_pos; /* Keep Icon position */
456extern int hfs_lock; /* lock HFS volume (read-only) */
457extern char *hfs_bless; /* name of folder to 'bless' (System Folder) */
458extern char *hfs_parms; /* low level HFS parameters */
459
460#define MAP_LAST 1 /* process magic then map file */
461#define MAG_LAST 2 /* process map then magic file */
462
463#ifndef PREP_BOOT
464#define PREP_BOOT
465#endif /* PREP_BOOT */
466
467#ifdef PREP_BOOT
468extern char *prep_boot_image[4];
469extern int use_prep_boot;
470extern int use_chrp_boot;
471
472#endif /* PREP_BOOT */
473#endif /* APPLE_HYB */
474
475#ifdef SORTING
476extern int do_sort;
477#endif /* SORTING */
478
479/* tree.c */
480extern int stat_filter __PR((char *, struct stat *));
481extern int lstat_filter __PR((char *, struct stat *));
482extern int sort_tree __PR((struct directory *));
483extern void attach_dot_entries __PR((struct directory * dirnode,
484 struct stat * this_stat,
485 struct stat * parent_stat));
486extern struct directory *
488 char *,
489 struct directory_entry * self, int));
490extern void finish_cl_pl_entries __PR((void));
491extern int scan_directory_tree __PR((struct directory * this_dir,
492 char *path,
493 struct directory_entry * self));
494
495extern int insert_file_entry __PR((struct directory *, char *,
496 char *, struct stat *, int));
497
498extern struct directory_entry *
501extern void dump_tree __PR((struct directory * node));
503 directory * node, char *filename));
504extern void init_fstatbuf __PR((void));
505extern struct stat root_statbuf;
506extern struct stat fstatbuf;
507
508/* eltorito.c */
509extern void init_boot_catalog __PR((const char *path));
510extern void insert_boot_cat __PR((void));
511extern void get_boot_entry __PR((void));
512extern int new_boot_entry __PR((void));
513extern void ex_boot_enoent __PR((char *msg, char *pname));
514
515/* boot.c */
516extern int sparc_boot_label __PR((char *label));
517extern int sunx86_boot_label __PR((char *label));
518extern int scan_sparc_boot __PR((char *files));
519extern int scan_sunx86_boot __PR((char *files));
520extern int make_sun_label __PR((void));
521extern int make_sunx86_label __PR((void));
522
523/* isonum.c */
524extern void set_721 __PR((void *, UInt32_t));
525extern void set_722 __PR((void *, UInt32_t));
526extern void set_723 __PR((void *, UInt32_t));
527extern void set_731 __PR((void *, UInt32_t));
528extern void set_732 __PR((void *, UInt32_t));
529extern void set_733 __PR((void *, UInt32_t));
530
531extern UInt32_t get_711 __PR((void *));
532extern UInt32_t get_721 __PR((void *));
533extern UInt32_t get_723 __PR((void *));
534extern UInt32_t get_731 __PR((void *));
535extern UInt32_t get_732 __PR((void *));
536extern UInt32_t get_733 __PR((void *));
537
538/* write.c */
539extern int sort_directory __PR((struct directory_entry **, int));
540extern void generate_one_directory __PR((struct directory *, FILE *));
541extern void memcpy_max __PR((char *, char *, int));
542extern int oneblock_size __PR((UInt32_t starting_extent));
543extern struct iso_primary_descriptor vol_desc;
544extern void xfwrite __PR((void *buffer, int size, int count, FILE * file, int submode, BOOL islast));
545extern void outputlist_insert __PR((struct output_fragment * frag));
546
547#ifdef APPLE_HYB
548extern Ulong get_adj_size __PR((int Csize));
549extern int adj_size __PR((int Csize, UInt32_t start_extent, int extra));
550extern void adj_size_other __PR((struct directory * dpnt));
551extern int insert_padding_file __PR((int size));
552extern int gen_mac_label __PR((struct deferred_write *));
553
554#ifdef PREP_BOOT
555extern void gen_prepboot_label __PR((unsigned char *));
556
557#endif /* PREP_BOOT */
558#endif /* APPLE_HYB */
559
560/* multi.c */
561
562extern FILE *in_image;
563extern BOOL ignerr;
564extern int open_merge_image __PR((char *path));
565extern int close_merge_image __PR((void));
566extern struct iso_directory_record *
567 merge_isofs __PR((char *path));
568extern unsigned char *parse_xa __PR((unsigned char *pnt, int *lenp,
569 struct directory_entry * dpnt));
570extern int rr_flags __PR((struct iso_directory_record *idr));
572 struct iso_directory_record *, char *, char *));
573extern int get_session_start __PR((int *));
574
575/* joliet.c */
576#ifdef UDF
577extern void convert_to_unicode __PR((unsigned char *buffer,
578 int size, char *source, siconvt_t *inls));
579extern int joliet_strlen __PR((const char *string, size_t maxlen,
580 siconvt_t *inls));
581#endif
582extern void conv_charset __PR((unsigned char *to, size_t *tosizep,
583 unsigned char *from, size_t *fromsizep,
584 siconvt_t *,
585 siconvt_t *));
586extern int joliet_sort_tree __PR((struct directory * node));
587
588/* match.c */
589extern int matches __PR((char *));
590extern int add_match __PR((char *));
591
592/* files.c */
593struct dirent *readdir_add_files __PR((char **, char *, DIR *));
594
595/* name.c */
596
597extern void iso9660_check __PR((struct iso_directory_record *idr, struct directory_entry *ndr));
598extern int iso9660_file_length __PR((const char *name,
599 struct directory_entry * sresult, int flag));
600
601/* various */
602extern int iso9660_date __PR((char *, time_t));
603extern int iso9660_ldate __PR((char *, time_t, int, int));
604extern void add_hash __PR((struct directory_entry *));
605extern struct file_hash *find_hash __PR((struct directory_entry *spnt));
606
607extern void flush_hash __PR((void));
609extern struct file_hash *find_directory_hash __PR((dev_t, ino_t));
610extern void flush_file_hash __PR((void));
611extern int delete_file_hash __PR((struct directory_entry *));
612extern struct directory_entry *find_file_hash __PR((char *));
613extern void add_file_hash __PR((struct directory_entry *));
614
615extern int generate_xa_rr_attributes __PR((char *, char *,
616 struct directory_entry *,
617 struct stat *, struct stat *,
618 int deep_flag));
619extern char *generate_rr_extension_record __PR((char *id,
620 char *descriptor,
621 char *source, int *size));
622
623extern int check_prev_session __PR((struct directory_entry **, int len,
624 struct directory_entry *,
625 struct stat *,
626 struct stat *,
627 struct directory_entry **));
628
629extern void match_cl_re_entries __PR((void));
630extern void finish_cl_pl_for_prev_session __PR((void));
631extern char *find_rr_attribute __PR((unsigned char *pnt, int len, char *attr_type));
632
633extern void udf_set_extattr_macresfork __PR((unsigned char *buf, off_t size, unsigned rba));
634extern void udf_set_extattr_freespace __PR((unsigned char *buf, off_t size, unsigned rba));
635extern int udf_get_symlinkcontents __PR((char *, char *, off_t *));
636
637/* inode.c */
638extern void do_inode __PR((struct directory *dpnt));
639extern void do_dir_nlink __PR((struct directory *dpnt));
640
641#ifdef APPLE_HYB
642/* volume.c */
643extern int make_mac_volume __PR((struct directory * dpnt, UInt32_t start_extent));
644extern int write_fork __PR((hfsfile * hfp, long tot));
645
646/* apple.c */
647
648extern void del_hfs_info __PR((struct hfs_info *));
649extern int get_hfs_dir __PR((char *, char *, struct directory_entry *));
650extern int get_hfs_info __PR((char *, char *, struct directory_entry *));
651extern int get_hfs_rname __PR((char *, char *, char *));
652extern int hfs_exclude __PR((char *));
653extern void print_hfs_info __PR((struct directory_entry *));
654extern void hfs_init __PR((char *, unsigned short, unsigned int));
655extern void delete_rsrc_ent __PR((struct directory_entry *));
656extern void clean_hfs __PR((void));
657extern void perr __PR((char *));
658extern void set_root_info __PR((char *));
659extern int file_is_resource __PR((char *fname, int hfstype));
660extern int hfs_excludepath __PR((char *));
661
662/* desktop.c */
663
664extern int make_desktop __PR((hfsvol *, int));
665
666/* mac_label.c */
667
668#ifdef _MAC_LABEL_H
669#ifdef PREP_BOOT
670extern void gen_prepboot_label __PR((MacLabel * mac_label));
671#endif
672extern int gen_mac_label __PR((defer *));
673#endif
674extern int autostart __PR((void));
675
676/* libfile */
677
678extern char *get_magic_match __PR((const char *));
679extern void clean_magic __PR((void));
680
681#endif /* APPLE_HYB */
682
683#ifdef USE_FIND
684/*
685 * The callback function for treewalk() from walk.c
686 */
687#ifdef _SCHILY_WALK_H
688EXPORT int walkfunc __PR((char *nm, struct stat *fs, int type,
689 struct WALK *state));
690#endif
691#endif
692
693extern char *extension_record;
694extern UInt32_t extension_record_extent;
695/*extern int n_data_extents;*/
696extern BOOL archive_isreg;
697extern dev_t archive_dev;
698extern ino_t archive_ino;
699
700/*
701 * These are a few goodies that can be specified on the command line, and are
702 * filled into the root record
703 */
704extern char *preparer;
705extern char *publisher;
706extern char *copyright;
707extern char *biblio;
708extern char *abstract;
709extern char *appid;
710extern char *volset_id;
711extern char *system_id;
712extern char *volume_id;
713extern char *boot_catalog;
714extern char *boot_image;
715extern char *genboot_image;
716extern int ucs_level;
717extern int volume_set_size;
718extern int volume_sequence_number;
719
723
724extern UInt32_t null_inodes;
725extern BOOL correct_inodes;
726extern BOOL rrip112;
727extern BOOL long_rr_time; /* TRUE: use long (17 Byte) time format */
728
729extern char *findgequal __PR((char *));
730extern void *e_malloc __PR((size_t));
731extern char *e_strdup __PR((const char *));
732
733/*
734 * Note: always use these macros to avoid problems.
735 *
736 * ISO_ROUND_UP(X) may cause an integer overflow and thus give
737 * incorrect results. So avoid it if possible.
738 *
739 * ISO_BLOCKS(X) is overflow safe. Prefer this when ever it is possible.
740 */
741#define SECTOR_SIZE (2048)
742#define ISO_ROUND_UP(X) (((X) + (SECTOR_SIZE - 1)) & ~(SECTOR_SIZE - 1))
743#define ISO_BLOCKS(X) (((X) / SECTOR_SIZE) + (((X)%SECTOR_SIZE)?1:0))
744
745#define ROUND_UP(X, Y) (((X + (Y - 1)) / Y) * Y)
746
747#ifdef APPLE_HYB
748/*
749 * ISO blocks == 2048, HFS blocks == 512
750 */
751#define HFS_BLK_CONV (SECTOR_SIZE/HFS_BLOCKSZ)
752
753#define HFS_ROUND_UP(X) ISO_ROUND_UP(((X)*HFS_BLOCKSZ)) /* XXX ??? */
754#define HFS_BLOCKS(X) (ISO_BLOCKS(X) * HFS_BLK_CONV)
755
756#define USE_MAC_NAME(E) (use_mac_name && ((E)->hfs_ent != NULL) && (E)->hfs_type)
757#endif /* APPLE_HYB */
758
759/*
760 * Inode and device values for special purposes.
761 */
762#define PREV_SESS_DEV ((dev_t)-2)
763#define TABLE_INODE ((ino_t)-2)
764#define UNCACHED_INODE ((ino_t)-1)
765#define UNCACHED_DEVICE ((dev_t)-1)
766
767/*
768 * The highest value used for the inodes we assign to files that do not have
769 * a starting block address (zero length files, symlinks, dev nodes, pipes,
770 * socket).
771 * We need to make sure that these numbers are valid ISO-9660 block addresses,
772 * this is why we use unsigned 32-bit integer values.
773 * We need to make sure that the inode numbers assigned for zero sized files
774 * is in a proper range, this is why we use numbers above the range of block
775 * addresses we use in the image. We start counting backwards from 0xFFFFFFF0
776 * to leave enough space for special numbers from the range listed above.
777 */
778#define NULL_INO_MAX ((UInt32_t)0xFFFFFFF0)
779
780#ifdef VMS
781#define STAT_INODE(X) (X.st_ino[0])
782#define PATH_SEPARATOR ']'
783#define SPATH_SEPARATOR ""
784#else
785#define STAT_INODE(X) (X.st_ino)
786#define PATH_SEPARATOR '/'
787#define SPATH_SEPARATOR "/"
788#endif
789
790/*
791 * When using multi-session, indicates that we can reuse the
792 * TRANS.TBL information for this directory entry. If this flag
793 * is set for all entries in a directory, it means we can just
794 * reuse the TRANS.TBL and not generate a new one.
795 */
796#define SAFE_TO_REUSE_TABLE_ENTRY 0x01 /* de_flags only */
797#define DIR_HAS_DOT 0x02 /* dir_flags only */
798#define DIR_HAS_DOTDOT 0x04 /* dir_flags only */
799#define INHIBIT_JOLIET_ENTRY 0x08
800#define INHIBIT_RR_ENTRY 0x10 /* not used */
801#define RELOCATED_DIRECTORY 0x20 /* de_flags only */
802#define INHIBIT_ISO9660_ENTRY 0x40
803#define MEMORY_FILE 0x80 /* de_flags only */
804#define HIDDEN_FILE 0x100 /* de_flags only */
805#define DIR_WAS_SCANNED 0x200 /* dir_flags only */
806#define RESOURCE_FORK 0x400 /* de_flags only */
807#define IS_SYMLINK 0x800 /* de_flags only */
808#define MULTI_EXTENT 0x1000 /* de_flags only */
809#define INHIBIT_UDF_ENTRY 0x2000
810
811/*
812 * Volume sequence number to use in all of the iso directory records.
813 */
814#define DEF_VSN 1
815
816/*
817 * Make sure we have a definition for this. If not, take a very conservative
818 * guess.
819 * POSIX requires the max pathname component lenght to be defined in limits.h
820 * If variable, it may be undefined. If undefined, there should be
821 * a definition for _POSIX_NAME_MAX in limits.h or in unistd.h
822 * As _POSIX_NAME_MAX is defined to 14, we cannot use it.
823 * XXX Eric's wrong comment:
824 * XXX From what I can tell SunOS is the only one with this trouble.
825 */
826#include <schily/limits.h>
827
828#ifndef NAME_MAX
829#ifdef FILENAME_MAX
830#define NAME_MAX FILENAME_MAX
831#else
832#define NAME_MAX 256
833#endif
834#endif
835
836#ifndef PATH_MAX
837#ifdef FILENAME_MAX
838#define PATH_MAX FILENAME_MAX
839#else
840#define PATH_MAX 1024
841#endif
842#endif
843
844/*
845 * Cygwin seems to have PATH_MAX == 260 which is less than the usable
846 * path length. We raise PATH_MAX to at least 1024 for now for all platforms
847 * unless someone reports problems with mkisofs memory size.
848 */
849#if PATH_MAX < 1024
850#undef PATH_MAX
851#define PATH_MAX 1024
852#endif
853
854/*
855 * XXX JS: Some structures have odd lengths!
856 * Some compilers (e.g. on Sun3/mc68020) padd the structures to even length.
857 * For this reason, we cannot use sizeof (struct iso_path_table) or
858 * sizeof (struct iso_directory_record) to compute on disk sizes.
859 * Instead, we use offsetof(..., name) and add the name size.
860 * See iso9660.h
861 */
862#ifndef offsetof
863#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
864#endif
865
866#ifdef UDF
867extern int use_udf;
868#endif
869extern int create_udfsymlinks;
870
871#if !defined(HAVE_MEMSET) && !defined(memset)
872#define memset(s, c, n) fillbytes(s, n, c)
873#endif
874#if !defined(HAVE_MEMCHR) && !defined(memchr)
875#define memchr(s, c, n) findbytes(s, n, c)
876#endif
877#if !defined(HAVE_MEMCPY) && !defined(memcpy)
878#define memcpy(s1, s2, n) movebytes(s2, s1, n)
879#endif
880#if !defined(HAVE_MEMMOVE) && !defined(memmove)
881#define memmove(s1, s2, n) movebytes(s2, s1, n)
882#endif
_STLP_MOVE_TO_STD_NAMESPACE void sort(_RandomAccessIter __first, _RandomAccessIter __last)
Definition: _algo.c:993
static int state
Definition: maze.c:121
#define msg(x)
Definition: auth_time.c:54
long uid_t
Definition: various.h:8
void add_hash(struct hash_table *table, unsigned char *name, int len, unsigned char *pointer)
Definition: hash.c:82
UINT gid_t
Definition: types.h:89
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
__kernel_dev_t dev_t
Definition: linux.h:197
__kernel_nlink_t nlink_t
Definition: linux.h:200
__kernel_time_t time_t
Definition: linux.h:252
__kernel_mode_t mode_t
Definition: linux.h:199
__kernel_ino_t ino_t
Definition: linux.h:198
__kernel_off_t off_t
Definition: linux.h:201
EXPORT void ex_boot_enoent(char *msg, char *pname)
Definition: eltorito.c:660
EXPORT void insert_boot_cat()
Definition: eltorito.c:124
EXPORT void init_boot_catalog(char *path) const
Definition: eltorito.c:67
EXPORT int new_boot_entry()
Definition: eltorito.c:650
EXPORT void get_boot_entry()
Definition: eltorito.c:629
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLsizeiptr size
Definition: glext.h:5919
GLuint buffer
Definition: glext.h:5915
GLenum pname
Definition: glext.h:5645
GLenum mode
Definition: glext.h:6217
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLenum GLsizei len
Definition: glext.h:6722
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
Definition: glfuncs.h:52
@ extra
Definition: id3.c:95
EXPORT void do_inode(struct directory *dpnt)
Definition: inode.c:55
EXPORT void do_dir_nlink(struct directory *dpnt)
Definition: inode.c:85
const char * filename
Definition: ioapi.h:137
EXPORT UInt32_t get_732(void *vp)
Definition: isonum.c:203
EXPORT void set_723(void *vp, UInt32_t i)
Definition: isonum.c:76
EXPORT void set_731(void *vp, UInt32_t i)
Definition: isonum.c:91
EXPORT void set_722(void *vp, UInt32_t i)
Definition: isonum.c:61
EXPORT UInt32_t get_721(void *vp)
Definition: isonum.c:155
EXPORT void set_721(void *vp, UInt32_t i)
Definition: isonum.c:46
EXPORT UInt32_t get_711(void *vp)
Definition: isonum.c:142
EXPORT void set_732(void *vp, UInt32_t i)
Definition: isonum.c:108
EXPORT UInt32_t get_733(void *vp)
Definition: isonum.c:219
EXPORT UInt32_t get_731(void *vp)
Definition: isonum.c:187
EXPORT void set_733(void *vp, UInt32_t i)
Definition: isonum.c:125
EXPORT UInt32_t get_723(void *vp)
Definition: isonum.c:169
EXPORT int joliet_sort_tree(struct directory *node)
Definition: joliet.c:1317
LOCAL int joliet_strlen(char *string, size_t maxlen, siconvt_t *inls) const
Definition: joliet.c:375
EXPORT void conv_charset(unsigned char *to, size_t *tosizep, unsigned char *from, size_t *fromsizep, siconvt_t *inls, siconvt_t *onls)
Definition: joliet.c:148
__u16 ctime
Definition: mkdosfs.c:4
#define matches(FN)
Definition: match.h:70
EXPORT char * findgequal(char *s)
Definition: mkisofs.c:3642
EXPORT int iso9660_date(char *result, time_t crtime)
Definition: mkisofs.c:1868
EXPORT void * e_malloc(size_t size)
Definition: mkisofs.c:3921
EXPORT int iso9660_ldate(char *result, time_t crtime, int nsec, int gmtoff)
Definition: mkisofs.c:1907
EXPORT char * e_strdup(char *s) const
Definition: mkisofs.c:3941
int jlen
Definition: mkisofs.c:114
int print_size
Definition: mkisofs.c:155
int osecsize
Definition: mkisofs.c:112
int verbose
Definition: main.c:60
int not_bootable
Definition: mkisofs.c:102
struct output_fragment end_vol
Definition: write.c:3024
FILE * in_image
Definition: multi.c:91
BOOL ignerr
Definition: multi.c:92
int rationalize_dirmode
Definition: mkisofs.c:147
struct output_fragment * out_list
Definition: write.c:75
int ucs_level
Definition: mkisofs.c:171
struct output_fragment strfile_desc
Definition: stream.c:255
int allow_multidot
Definition: mkisofs.c:249
int volume_sequence_number
Definition: mkisofs.c:173
int use_eltorito
Definition: mkisofs.c:100
char * extension_record
Definition: mkisofs.c:90
char * path_table_m
Definition: mkisofs.c:1632
char * volset_id
Definition: mkisofs.c:165
struct output_fragment interpad_desc
Definition: write.c:3031
struct output_fragment files_desc
Definition: write.c:3030
int no_emul_boot
Definition: mkisofs.c:103
char * copyright
Definition: main.c:27
int check_session
Definition: mkisofs.c:99
struct output_fragment jpathtable_desc
Definition: joliet.c:1455
struct stat root_statbuf
Definition: tree.c:110
int cache_inodes
Definition: mkisofs.c:141
int volume_set_size
Definition: mkisofs.c:172
int jhide_trans_tbl
Definition: mkisofs.c:232
BOOL correct_inodes
Definition: mkisofs.c:324
int transparent_compression
Definition: mkisofs.c:235
uid_t uid_to_use
Definition: mkisofs.c:148
int allow_lowercase
Definition: mkisofs.c:247
char * boot_catalog
Definition: mkisofs.c:168
char * jpath_table_l
Definition: mkisofs.c:1634
int iso9660_level
Definition: mkisofs.c:242
int create_udfsymlinks
int new_dir_mode
Definition: mkisofs.c:152
struct iso_directory_record root_record
Definition: mkisofs.c:87
char * volume_id
Definition: mkdosfs.c:3
struct output_fragment startpad_desc
Definition: write.c:3021
struct eltorito_boot_entry_info * current_boot_entry
Definition: mkisofs.c:228
struct output_fragment joliet_desc
Definition: joliet.c:1454
off_t maxnonlarge
Definition: mkisofs.c:241
UInt32_t session_start
Definition: mkisofs.c:77
int no_rr
Definition: mkisofs.c:237
int load_size
Definition: mkisofs.c:105
struct output_fragment voldesc_desc
Definition: write.c:3022
struct output_fragment endpad_desc
Definition: write.c:3032
int rationalize
Definition: mkisofs.c:143
int hide_rr_moved
Definition: mkisofs.c:233
struct output_fragment extension_desc
Definition: write.c:3029
struct output_fragment strdir_desc
Definition: stream.c:256
char * biblio
Definition: mkisofs.c:163
int goof
Definition: mkisofs.c:1637
UInt32_t next_extent
Definition: mkisofs.c:75
struct output_fragment sunboot_desc
Definition: boot.c:553
int iso_translate
Definition: mkisofs.c:250
int all_files
Definition: mkisofs.c:132
char * path_table_l
Definition: mkisofs.c:1631
unsigned int path_table_size
Definition: mkisofs.c:78
struct eltorito_boot_entry_info * first_boot_entry
Definition: mkisofs.c:226
struct iso_directory_record jroot_record
Definition: mkisofs.c:88
UInt32_t null_inodes
Definition: mkisofs.c:323
char * boot_image
Definition: mkisofs.c:169
struct directory * reloc_dir
Definition: tree.c:111
int use_RockRidge
Definition: mkisofs.c:110
int rationalize_gid
Definition: mkisofs.c:145
unsigned int jpath_table_size
Definition: mkisofs.c:83
int split_SL_component
Definition: mkisofs.c:257
int omit_version_number
Definition: mkisofs.c:236
struct stat fstatbuf
Definition: tree.c:108
struct output_fragment strpath_desc
Definition: stream.c:257
int gui
Definition: mkisofs.c:130
ino_t archive_ino
Definition: mkisofs.c:95
BOOL archive_isreg
Definition: mkisofs.c:93
char * trans_tbl
Definition: mkisofs.c:259
unsigned int jpath_table[4]
Definition: mkisofs.c:84
int filemode_to_use
Definition: mkisofs.c:150
int rationalize_uid
Definition: mkisofs.c:144
BOOL long_rr_time
Definition: mkisofs.c:326
struct eltorito_boot_entry_info * last_boot_entry
Definition: mkisofs.c:227
struct output_fragment sunlabel_desc
Definition: boot.c:554
struct output_fragment jdirtree_desc
Definition: joliet.c:1456
char * appid
Definition: mkisofs.c:161
int hard_disk_boot
Definition: mkisofs.c:101
struct directory * root
Definition: db.cpp:155
struct output_fragment * out_tail
Definition: write.c:74
UInt32_t last_extent_written
Definition: write.c:303
int relaxed_filenames
Definition: mkisofs.c:246
int allow_leading_dots
Definition: mkisofs.c:251
int split_SL_field
Definition: mkisofs.c:258
siconvt_t * hfs_inls
int boot_info_table
Definition: mkisofs.c:106
int omit_period
Definition: mkisofs.c:234
int rationalize_filemode
Definition: mkisofs.c:146
unsigned int path_blocks
Definition: mkisofs.c:80
unsigned int jpath_blocks
Definition: mkisofs.c:85
int use_graft_ptrs
Definition: mkisofs.c:230
int follow_links
Definition: mkisofs.c:134
int iso9660_namelen
Definition: mkisofs.c:243
int load_addr
Definition: mkisofs.c:104
struct iso_primary_descriptor vol_desc
Definition: write.c:77
struct output_fragment genboot_desc
Definition: boot.c:555
char * preparer
Definition: mkisofs.c:159
UInt32_t extension_record_extent
Definition: mkisofs.c:91
struct output_fragment torito_desc
Definition: eltorito.c:686
int debug
Definition: main.c:64
siconvt_t * in_nls
Definition: mkisofs.c:332
siconvt_t * hfs_onls
char * genboot_image
Definition: mkisofs.c:170
int nolimitpathtables
Definition: mkisofs.c:245
siconvt_t * out_nls
Definition: mkisofs.c:333
int generate_tables
Definition: mkisofs.c:153
struct output_fragment xvoldesc_desc
Definition: write.c:3023
struct output_fragment pathtable_desc
Definition: write.c:3026
unsigned int path_table[4]
Definition: mkisofs.c:79
gid_t gid_to_use
Definition: mkisofs.c:149
char * system_id
Definition: mkdosfs.c:1
Uint RR_relocation_depth
Definition: mkisofs.c:239
struct output_fragment dirtree_desc
Definition: write.c:3027
char * publisher
Definition: mkisofs.c:160
char * jpath_table_m
Definition: mkisofs.c:1635
int full_iso9660_filenames
Definition: mkisofs.c:244
char * abstract
dev_t archive_dev
Definition: mkisofs.c:94
struct output_fragment version_desc
Definition: write.c:3025
int use_Joliet
Definition: mkisofs.c:113
int use_XA
Definition: mkisofs.c:111
int do_largefiles
Definition: mkisofs.c:240
int dirmode_to_use
Definition: mkisofs.c:151
struct output_fragment dirtree_clean
Definition: write.c:3028
UInt32_t last_extent
Definition: mkisofs.c:76
int split_output
Definition: mkisofs.c:156
int use_fileversion
Definition: mkisofs.c:255
int donotwrite_macpart
Definition: mkisofs.c:298
int check_oldnames
Definition: mkisofs.c:98
BOOL rrip112
Definition: mkisofs.c:325
static const WCHAR label[]
Definition: itemdlg.c:1546
int get_session_start(int *file_addr)
Definition: multi.c:1751
struct iso_directory_record * merge_isofs(char *path)
Definition: multi.c:1401
int rr_flags(struct iso_directory_record *idr)
Definition: multi.c:353
int merge_previous_session(struct directory *this_dir, struct iso_directory_record *mrootp, char *reloc_root, char *reloc_old_root)
Definition: multi.c:1811
int check_prev_session(struct directory_entry **ptr, int len, struct directory_entry *curr_entry, struct stat *statbuf, struct stat *lstatbuf, struct directory_entry **odpnt)
Definition: multi.c:1147
int open_merge_image(char *path)
Definition: multi.c:1365
unsigned char * parse_xa(unsigned char *pnt, int *lenp, struct directory_entry *dpnt)
Definition: multi.c:169
int close_merge_image()
Definition: multi.c:1387
void finish_cl_pl_for_prev_session()
Definition: multi.c:2167
void match_cl_re_entries()
Definition: multi.c:2131
#define __PR(a)
Definition: prototyp.h:106
static unsigned __int64 next
Definition: rand_nt.c:6
EXPORT int generate_xa_rr_attributes(char *whole_name, char *name, struct directory_entry *s_entry, struct stat *statbuf, struct stat *lstatbuf, int deep_opt)
Definition: rock.c:236
EXPORT char * generate_rr_extension_record(char *id, char *descriptor, char *source, int *size)
Definition: rock.c:903
descriptor
Definition: scsi.h:3951
EXPORT int scan_sunx86_boot(char *files)
Definition: boot.c:182
EXPORT int sparc_boot_label(char *label)
Definition: boot.c:112
EXPORT int make_sun_label()
Definition: boot.c:243
EXPORT int make_sunx86_label()
Definition: boot.c:287
EXPORT int scan_sparc_boot(char *files)
Definition: boot.c:133
EXPORT int sunx86_boot_label(char *label)
Definition: boot.c:121
EXPORT void add_directory_hash(dev_t dev, ino_t inode)
Definition: hash.c:346
EXPORT struct file_hash * find_directory_hash(dev_t dev, ino_t inode)
Definition: hash.c:375
EXPORT int delete_file_hash(struct directory_entry *de)
Definition: hash.c:559
EXPORT void flush_file_hash()
Definition: hash.c:584
EXPORT struct directory_entry * find_file_hash(char *name)
Definition: hash.c:461
EXPORT void add_file_hash(struct directory_entry *de)
Definition: hash.c:436
EXPORT void flush_hash()
Definition: hash.c:240
EXPORT struct file_hash * find_hash(struct directory_entry *spnt)
Definition: hash.c:192
void iso9660_check(struct iso_directory_record *idr, struct directory_entry *ndr)
Definition: name.c:45
int iso9660_file_length(char *name, struct directory_entry *sresult, int dirflag) const
Definition: name.c:105
EXPORT int insert_file_entry(struct directory *this_dir, char *whole_path, char *short_name, struct stat *statp, int have_rsrc)
Definition: tree.c:1444
EXPORT int stat_filter(char *path, struct stat *st)
Definition: tree.c:232
EXPORT struct directory_entry * dup_directory_entry(struct directory_entry *s_entry)
Definition: tree.c:2429
EXPORT int sort_tree(struct directory *node)
Definition: tree.c:2842
EXPORT void finish_cl_pl_entries()
Definition: tree.c:1036
EXPORT void init_fstatbuf()
Definition: tree.c:2974
EXPORT struct directory_entry * search_tree_file(struct directory *node, char *filename)
Definition: tree.c:2885
EXPORT void dump_tree(struct directory *node)
Definition: tree.c:2863
EXPORT int lstat_filter(char *path, struct stat *st)
Definition: tree.c:244
EXPORT void attach_dot_entries(struct directory *dirnode, struct stat *this_stat, struct stat *parent_stat)
Definition: tree.c:905
EXPORT int scan_directory_tree(struct directory *this_dir, char *path, struct directory_entry *de)
Definition: tree.c:1147
EXPORT void generate_iso9660_directories(struct directory *node, FILE *outfile)
Definition: tree.c:2458
EXPORT struct directory * find_or_create_directory(struct directory *parent, char *path, struct directory_entry *de, int flag)
Definition: tree.c:2508
EXPORT char * find_rr_attribute(unsigned char *pnt, int len, char *attr_type)
Definition: tree.c:1007
EXPORT void memcpy_max(char *to, char *from, int max)
Definition: write.c:1880
EXPORT void outputlist_insert(struct output_fragment *frag)
Definition: write.c:1895
EXPORT void generate_one_directory(struct directory *dpnt, FILE *outfile)
Definition: write.c:1539
EXPORT int sort_directory(struct directory_entry **sort_dir, int rr)
Definition: write.c:814
#define apple_hyb
#define dvd_aud_vid_flag
EXPORT void xfwrite(void *buffer, int size, int count, FILE *file, int submode, BOOL islast)
Definition: write.c:168
EXPORT int oneblock_size(UInt32_t starting_extent)
Definition: write.c:2357
static LPWSTR convert_to_unicode(LPSTR str)
Definition: sendmail.c:66
CardRegion * from
Definition: spigame.cpp:19
Definition: dirent.h:40
unsigned int pad
Definition: mkisofs.h:303
unsigned int dw_flags
Definition: mkisofs.h:305
struct directory_entry * s_entry
Definition: mkisofs.h:302
off_t size
Definition: mkisofs.h:300
struct deferred_write * next
Definition: mkisofs.h:297
unsigned int extent
Definition: mkisofs.h:299
char * name
Definition: mkisofs.h:301
char * table
Definition: mkisofs.h:298
Definition: mkisofs.h:107
char * whole_name
Definition: mkisofs.h:118
dev_t dev
Definition: mkisofs.h:133
unsigned int got_rr_name
Definition: mkisofs.h:137
struct directory_entry * mxroot
Definition: mkisofs.h:121
unsigned int starting_block
Definition: mkisofs.h:111
unsigned int rr_attr_size
Definition: mkisofs.h:135
char * table
Definition: mkisofs.h:117
unsigned char * rr_attributes
Definition: mkisofs.h:134
off_t size
Definition: mkisofs.h:112
int mxpart
Definition: mkisofs.h:113
struct directory_entry * next
Definition: mkisofs.h:108
char * name
Definition: mkisofs.h:116
unsigned int de_flags
Definition: mkisofs.h:122
struct iso_directory_record isorec
Definition: mkisofs.h:110
struct directory_entry * parent_rec
Definition: mkisofs.h:120
ino_t inode
Definition: mkisofs.h:132
struct directory * filedir
Definition: mkisofs.h:119
unsigned short priority
Definition: mkisofs.h:114
unsigned char jreclen
Definition: mkisofs.h:115
unsigned int total_rr_attr_size
Definition: mkisofs.h:136
struct directory_entry * jnext
Definition: mkisofs.h:109
struct directory * parent
Definition: mkisofs.h:269
unsigned int jpath_index
Definition: mkisofs.h:284
char * de_name
Definition: mkisofs.h:275
unsigned short dir_flags
Definition: mkisofs.h:285
struct directory_entry * jcontents
Definition: mkisofs.h:271
char * whole_name
Definition: mkisofs.h:273
char * de_path
Definition: mkisofs.h:274
unsigned int ce_bytes
Definition: mkisofs.h:276
unsigned int extent
Definition: mkisofs.h:280
unsigned int jsize
Definition: mkisofs.h:281
unsigned int size
Definition: mkisofs.h:279
struct directory * subdir
Definition: mkisofs.h:268
unsigned int depth
Definition: mkisofs.h:278
unsigned int jextent
Definition: mkisofs.h:282
struct directory * next
Definition: mkisofs.h:267
struct directory_entry * self
Definition: mkisofs.h:272
struct directory_entry * contents
Definition: mkisofs.h:270
unsigned int path_index
Definition: mkisofs.h:283
unsigned short dir_nlink
Definition: mkisofs.h:286
Definition: fatfs.h:198
Definition: mkisofs.h:311
int type
Definition: mkisofs.h:323
char * boot_image
Definition: mkisofs.h:313
struct eltorito_boot_entry_info * next
Definition: mkisofs.h:312
int load_size
Definition: mkisofs.h:318
int boot_platform
Definition: mkisofs.h:327
int hard_disk_boot
Definition: mkisofs.h:316
int no_emul_boot
Definition: mkisofs.h:315
int load_addr
Definition: mkisofs.h:319
int boot_info_table
Definition: mkisofs.h:317
int not_bootable
Definition: mkisofs.h:314
dev_t dev
Definition: mkisofs.h:159
unsigned int starting_block
Definition: mkisofs.h:161
ino_t inode
Definition: mkisofs.h:158
off_t size
Definition: mkisofs.h:162
nlink_t nlink
Definition: mkisofs.h:160
struct file_hash * next
Definition: mkisofs.h:157
Definition: fci.c:127
Definition: ffs.h:70
Definition: mkisofs.h:331
int l_gmtoff
Definition: mkisofs.h:334
time_t l_sec
Definition: mkisofs.h:332
int l_usec
Definition: mkisofs.h:333
Definition: name.c:39
unsigned int of_start_extent
Definition: mkisofs.h:196
char * of_name
Definition: mkisofs.h:195
int of_size __PR((UInt32_t))
struct output_fragment * of_next
Definition: mkisofs.h:191
int of_generate __PR((void))
int of_write __PR((FILE *))
Definition: stat.h:55
Int32_t tv_nsec
Definition: mkisofs.h:104
time_t tv_sec
Definition: mkisofs.h:103
Definition: mkisofs.h:79
char * name
Definition: mkisofs.h:81
void * dir
Definition: mkisofs.h:80
Definition: dlist.c:348
unsigned int Uint
Definition: utypes.h:43
unsigned long Ulong
Definition: utypes.h:42
static HRESULT add_match(IMatchCollection2 *iface, IMatch2 *add)
Definition: vbregexp.c:1020
attr_type
Definition: widltypes.h:69