ReactOS  0.4.11-dev-433-g473ca91
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 
71 extern siconvt_t *in_nls; /* input UNICODE conversion table */
72 extern siconvt_t *out_nls; /* output UNICODE conversion table */
73 extern siconvt_t *hfs_inls; /* input HFS UNICODE conversion table */
74 extern siconvt_t *hfs_onls; /* output HFS UNICODE conversion table */
75 
76 /*
77  * Structure used to pass arguments via trewalk() to walkfun().
78  */
79 struct 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 
88 struct 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  */
102 typedef struct timesp {
104  Int32_t tv_nsec;
105 } timesp;
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;
118  char *whole_name;
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 
156 struct file_hash {
157  struct file_hash *next;
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 
201 
224 
225 #ifdef APPLE_HYB
226 extern 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  */
236 typedef 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 
252 typedef 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  */
266 struct directory {
267  struct directory *next; /* Next directory at same level as this one */
268  struct directory *subdir; /* First subdirectory in this directory */
269  struct directory *parent;
272  struct directory_entry *self;
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 
313  char *boot_image;
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 
331 typedef struct ldate {
333  int l_usec;
334  int l_gmtoff;
335 } ldate;
336 
337 extern int goof;
338 extern struct directory *root;
339 extern struct directory *reloc_dir;
340 extern UInt32_t next_extent;
341 extern UInt32_t last_extent;
342 extern UInt32_t last_extent_written;
343 extern UInt32_t session_start;
344 
345 extern unsigned int path_table_size;
346 extern unsigned int path_table[4];
347 extern unsigned int path_blocks;
348 extern char *path_table_l;
349 extern char *path_table_m;
350 
351 extern unsigned int jpath_table_size;
352 extern unsigned int jpath_table[4];
353 extern unsigned int jpath_blocks;
354 extern char *jpath_table_l;
355 extern char *jpath_table_m;
356 
357 extern struct iso_directory_record root_record;
358 extern struct iso_directory_record jroot_record;
359 
360 extern int check_oldnames;
361 extern int check_session;
362 extern int use_eltorito;
363 extern int hard_disk_boot;
364 extern int not_bootable;
365 extern int no_emul_boot;
366 extern int load_addr;
367 extern int load_size;
368 extern int boot_info_table;
369 extern int use_RockRidge;
370 extern int osecsize;
371 extern int use_XA;
372 extern int use_Joliet;
373 extern int rationalize;
374 extern int rationalize_uid;
375 extern int rationalize_gid;
376 extern int rationalize_filemode;
377 extern int rationalize_dirmode;
378 extern uid_t uid_to_use;
379 extern gid_t gid_to_use;
380 extern int filemode_to_use;
381 extern int dirmode_to_use;
382 extern int new_dir_mode;
383 extern int follow_links;
384 extern int cache_inodes;
385 #ifdef DUPLICATES_ONCE
386 extern int duplicates_once;
387 #endif
388 extern int verbose;
389 extern int debug;
390 extern int gui;
391 extern int all_files;
392 extern int generate_tables;
393 extern int print_size;
394 extern int split_output;
395 extern int use_graft_ptrs;
396 extern int jhide_trans_tbl;
397 extern int hide_rr_moved;
398 extern int omit_period;
399 extern int omit_version_number;
400 extern int no_rr;
401 extern int transparent_compression;
403 extern int do_largefiles;
404 extern off_t maxnonlarge;
405 extern int iso9660_level;
406 extern int iso9660_namelen;
407 extern int full_iso9660_filenames;
408 extern int nolimitpathtables;
409 extern int relaxed_filenames;
410 extern int allow_lowercase;
411 extern int allow_multidot;
412 extern int iso_translate;
413 extern int allow_leading_dots;
414 extern int use_fileversion;
415 extern int split_SL_component;
416 extern int split_SL_field;
417 extern 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 */
421 extern 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)
429 extern int dvd_audio;
430 extern int dvd_hybrid;
431 extern int dvd_video;
432 extern int dvd_aud_vid_flag;
433 #endif /* DVD_AUD_VID */
434 
435 
436 extern int donotwrite_macpart;
437 
438 #ifdef APPLE_HYB
439 extern int apple_hyb; /* create HFS hybrid */
440 extern int apple_ext; /* use Apple extensions */
441 extern int apple_both; /* common flag (for above) */
442 extern int hfs_extra; /* extra ISO extents (hfs_ce_size) */
443 extern hce_mem *hce; /* libhfs/mkisofs extras */
444 extern int use_mac_name; /* use Mac name for ISO9660/Joliet/RR */
445 extern int create_dt; /* create the Desktp files */
446 extern char *hfs_boot_file; /* name of HFS boot file */
447 extern char *magic_file; /* magic file for CREATOR/TYPE matching */
448 extern int hfs_last; /* order in which to process map/magic files */
449 extern char *deftype; /* default Apple TYPE */
450 extern char *defcreator; /* default Apple CREATOR */
451 extern int gen_pt; /* generate HFS partition table */
452 extern char *autoname; /* Autostart filename */
453 extern int afe_size; /* Apple File Exchange block size */
454 extern char *hfs_volume_id; /* HFS volume ID */
455 extern int icon_pos; /* Keep Icon position */
456 extern int hfs_lock; /* lock HFS volume (read-only) */
457 extern char *hfs_bless; /* name of folder to 'bless' (System Folder) */
458 extern 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
468 extern char *prep_boot_image[4];
469 extern int use_prep_boot;
470 extern int use_chrp_boot;
471 
472 #endif /* PREP_BOOT */
473 #endif /* APPLE_HYB */
474 
475 #ifdef SORTING
476 extern int do_sort;
477 #endif /* SORTING */
478 
479 /* tree.c */
480 extern int stat_filter __PR((char *, struct stat *));
481 extern int lstat_filter __PR((char *, struct stat *));
482 extern int sort_tree __PR((struct directory *));
483 extern void attach_dot_entries __PR((struct directory * dirnode,
484  struct stat * this_stat,
485  struct stat * parent_stat));
486 extern struct directory *
488  char *,
489  struct directory_entry * self, int));
490 extern void finish_cl_pl_entries __PR((void));
491 extern int scan_directory_tree __PR((struct directory * this_dir,
492  char *path,
493  struct directory_entry * self));
494 
495 extern int insert_file_entry __PR((struct directory *, char *,
496  char *, struct stat *, int));
497 
498 extern struct directory_entry *
499  dup_directory_entry __PR((struct directory_entry *s_entry));
500 extern void generate_iso9660_directories __PR((struct directory *, FILE *));
501 extern void dump_tree __PR((struct directory * node));
502 extern struct directory_entry *search_tree_file __PR((struct
503  directory * node, char *filename));
504 extern void init_fstatbuf __PR((void));
505 extern struct stat root_statbuf;
506 extern struct stat fstatbuf;
507 
508 /* eltorito.c */
509 extern void init_boot_catalog __PR((const char *path));
510 extern void insert_boot_cat __PR((void));
511 extern void get_boot_entry __PR((void));
512 extern int new_boot_entry __PR((void));
513 extern void ex_boot_enoent __PR((char *msg, char *pname));
514 
515 /* boot.c */
516 extern int sparc_boot_label __PR((char *label));
517 extern int sunx86_boot_label __PR((char *label));
518 extern int scan_sparc_boot __PR((char *files));
519 extern int scan_sunx86_boot __PR((char *files));
520 extern int make_sun_label __PR((void));
521 extern int make_sunx86_label __PR((void));
522 
523 /* isonum.c */
524 extern void set_721 __PR((void *, UInt32_t));
525 extern void set_722 __PR((void *, UInt32_t));
526 extern void set_723 __PR((void *, UInt32_t));
527 extern void set_731 __PR((void *, UInt32_t));
528 extern void set_732 __PR((void *, UInt32_t));
529 extern void set_733 __PR((void *, UInt32_t));
530 
531 extern UInt32_t get_711 __PR((void *));
532 extern UInt32_t get_721 __PR((void *));
533 extern UInt32_t get_723 __PR((void *));
534 extern UInt32_t get_731 __PR((void *));
535 extern UInt32_t get_732 __PR((void *));
536 extern UInt32_t get_733 __PR((void *));
537 
538 /* write.c */
539 extern int sort_directory __PR((struct directory_entry **, int));
540 extern void generate_one_directory __PR((struct directory *, FILE *));
541 extern void memcpy_max __PR((char *, char *, int));
542 extern int oneblock_size __PR((UInt32_t starting_extent));
543 extern struct iso_primary_descriptor vol_desc;
544 extern void xfwrite __PR((void *buffer, int size, int count, FILE * file, int submode, BOOL islast));
545 extern void outputlist_insert __PR((struct output_fragment * frag));
546 
547 #ifdef APPLE_HYB
548 extern Ulong get_adj_size __PR((int Csize));
549 extern int adj_size __PR((int Csize, UInt32_t start_extent, int extra));
550 extern void adj_size_other __PR((struct directory * dpnt));
551 extern int insert_padding_file __PR((int size));
552 extern int gen_mac_label __PR((struct deferred_write *));
553 
554 #ifdef PREP_BOOT
555 extern void gen_prepboot_label __PR((unsigned char *));
556 
557 #endif /* PREP_BOOT */
558 #endif /* APPLE_HYB */
559 
560 /* multi.c */
561 
562 extern FILE *in_image;
563 extern BOOL ignerr;
564 extern int open_merge_image __PR((char *path));
565 extern int close_merge_image __PR((void));
566 extern struct iso_directory_record *
567  merge_isofs __PR((char *path));
568 extern unsigned char *parse_xa __PR((unsigned char *pnt, int *lenp,
569  struct directory_entry * dpnt));
570 extern int rr_flags __PR((struct iso_directory_record *idr));
571 extern int merge_previous_session __PR((struct directory *,
572  struct iso_directory_record *, char *, char *));
573 extern int get_session_start __PR((int *));
574 
575 /* joliet.c */
576 #ifdef UDF
577 extern void convert_to_unicode __PR((unsigned char *buffer,
578  int size, char *source, siconvt_t *inls));
579 extern int joliet_strlen __PR((const char *string, size_t maxlen,
580  siconvt_t *inls));
581 #endif
582 extern void conv_charset __PR((unsigned char *to, size_t *tosizep,
583  unsigned char *from, size_t *fromsizep,
584  siconvt_t *,
585  siconvt_t *));
586 extern int joliet_sort_tree __PR((struct directory * node));
587 
588 /* match.c */
589 extern int matches __PR((char *));
590 extern int add_match __PR((char *));
591 
592 /* files.c */
593 struct dirent *readdir_add_files __PR((char **, char *, DIR *));
594 
595 /* name.c */
596 
597 extern void iso9660_check __PR((struct iso_directory_record *idr, struct directory_entry *ndr));
598 extern int iso9660_file_length __PR((const char *name,
599  struct directory_entry * sresult, int flag));
600 
601 /* various */
602 extern int iso9660_date __PR((char *, time_t));
603 extern int iso9660_ldate __PR((char *, time_t, int, int));
604 extern void add_hash __PR((struct directory_entry *));
605 extern struct file_hash *find_hash __PR((struct directory_entry *spnt));
606 
607 extern void flush_hash __PR((void));
608 extern void add_directory_hash __PR((dev_t, ino_t));
609 extern struct file_hash *find_directory_hash __PR((dev_t, ino_t));
610 extern void flush_file_hash __PR((void));
611 extern int delete_file_hash __PR((struct directory_entry *));
612 extern struct directory_entry *find_file_hash __PR((char *));
613 extern void add_file_hash __PR((struct directory_entry *));
614 
615 extern int generate_xa_rr_attributes __PR((char *, char *,
616  struct directory_entry *,
617  struct stat *, struct stat *,
618  int deep_flag));
619 extern char *generate_rr_extension_record __PR((char *id,
620  char *descriptor,
621  char *source, int *size));
622 
623 extern 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 
629 extern void match_cl_re_entries __PR((void));
630 extern void finish_cl_pl_for_prev_session __PR((void));
631 extern char *find_rr_attribute __PR((unsigned char *pnt, int len, char *attr_type));
632 
633 extern void udf_set_extattr_macresfork __PR((unsigned char *buf, off_t size, unsigned rba));
634 extern void udf_set_extattr_freespace __PR((unsigned char *buf, off_t size, unsigned rba));
635 extern int udf_get_symlinkcontents __PR((char *, char *, off_t *));
636 
637 /* inode.c */
638 extern void do_inode __PR((struct directory *dpnt));
639 extern void do_dir_nlink __PR((struct directory *dpnt));
640 
641 #ifdef APPLE_HYB
642 /* volume.c */
643 extern int make_mac_volume __PR((struct directory * dpnt, UInt32_t start_extent));
644 extern int write_fork __PR((hfsfile * hfp, long tot));
645 
646 /* apple.c */
647 
648 extern void del_hfs_info __PR((struct hfs_info *));
649 extern int get_hfs_dir __PR((char *, char *, struct directory_entry *));
650 extern int get_hfs_info __PR((char *, char *, struct directory_entry *));
651 extern int get_hfs_rname __PR((char *, char *, char *));
652 extern int hfs_exclude __PR((char *));
653 extern void print_hfs_info __PR((struct directory_entry *));
654 extern void hfs_init __PR((char *, unsigned short, unsigned int));
655 extern void delete_rsrc_ent __PR((struct directory_entry *));
656 extern void clean_hfs __PR((void));
657 extern void perr __PR((char *));
658 extern void set_root_info __PR((char *));
659 extern int file_is_resource __PR((char *fname, int hfstype));
660 extern int hfs_excludepath __PR((char *));
661 
662 /* desktop.c */
663 
664 extern int make_desktop __PR((hfsvol *, int));
665 
666 /* mac_label.c */
667 
668 #ifdef _MAC_LABEL_H
669 #ifdef PREP_BOOT
670 extern void gen_prepboot_label __PR((MacLabel * mac_label));
671 #endif
672 extern int gen_mac_label __PR((defer *));
673 #endif
674 extern int autostart __PR((void));
675 
676 /* libfile */
677 
678 extern char *get_magic_match __PR((const char *));
679 extern 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
688 EXPORT int walkfunc __PR((char *nm, struct stat *fs, int type,
689  struct WALK *state));
690 #endif
691 #endif
692 
693 extern char *extension_record;
694 extern UInt32_t extension_record_extent;
695 /*extern int n_data_extents;*/
696 extern BOOL archive_isreg;
697 extern dev_t archive_dev;
698 extern 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  */
704 extern char *preparer;
705 extern char *publisher;
706 extern char *copyright;
707 extern char *biblio;
708 extern char *abstract;
709 extern char *appid;
710 extern char *volset_id;
711 extern char *system_id;
712 extern char *volume_id;
713 extern char *boot_catalog;
714 extern char *boot_image;
715 extern char *genboot_image;
716 extern int ucs_level;
717 extern int volume_set_size;
718 extern int volume_sequence_number;
719 
723 
724 extern UInt32_t null_inodes;
725 extern BOOL correct_inodes;
726 extern BOOL rrip112;
727 extern BOOL long_rr_time; /* TRUE: use long (17 Byte) time format */
728 
729 extern char *findgequal __PR((char *));
730 extern void *e_malloc __PR((size_t));
731 extern 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
867 extern int use_udf;
868 #endif
869 extern 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
unsigned int extent
Definition: mkisofs.h:299
int filemode_to_use
Definition: mkisofs.c:150
char * of_name
Definition: mkisofs.h:195
unsigned int jsize
Definition: mkisofs.h:281
int dirmode_to_use
Definition: mkisofs.c:151
int load_addr
Definition: mkisofs.h:319
unsigned int de_flags
Definition: mkisofs.h:122
unsigned int starting_block
Definition: mkisofs.h:161
EXPORT void get_boot_entry()
Definition: eltorito.c:629
struct file_hash * next
Definition: mkisofs.h:157
EXPORT void set_732(void *vp, UInt32_t i)
Definition: isonum.c:108
char * whole_name
Definition: mkisofs.h:273
Definition: graphics.c:170
struct deferred_write * next
Definition: mkisofs.h:297
BOOL rrip112
Definition: mkisofs.c:325
char * name
Definition: mkisofs.h:301
char * genboot_image
Definition: mkisofs.c:170
UInt32_t session_start
Definition: mkisofs.c:77
EXPORT UInt32_t get_731(void *vp)
Definition: isonum.c:187
EXPORT char * find_rr_attribute(unsigned char *pnt, int len, char *attr_type)
Definition: tree.c:1007
int follow_links
Definition: mkisofs.c:134
char * table
Definition: mkisofs.h:117
#define matches(FN)
Definition: match.h:70
int hide_rr_moved
Definition: mkisofs.c:233
EXPORT struct directory_entry * find_file_hash(char *name)
Definition: hash.c:461
struct directory * root
Definition: cdmake.c:183
int rationalize_filemode
Definition: mkisofs.c:146
EXPORT void outputlist_insert(struct output_fragment *frag)
Definition: write.c:1895
struct output_fragment extension_desc
Definition: write.c:3029
Definition: mkisofs.h:107
unsigned int path_table[4]
Definition: mkisofs.c:79
unsigned int jpath_table_size
Definition: mkisofs.c:83
EXPORT int oneblock_size(UInt32_t starting_extent)
Definition: write.c:2357
EXPORT int delete_file_hash(struct directory_entry *de)
Definition: hash.c:559
BOOL correct_inodes
Definition: mkisofs.c:324
char * system_id
Definition: mkdosfs.c:359
EXPORT int add_match(char *fn)
Definition: match.c:214
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
unsigned char jreclen
Definition: mkisofs.h:115
int load_addr
Definition: mkisofs.c:104
unsigned int size
Definition: mkisofs.h:279
EXPORT void xfwrite(void *buffer, int size, int count, FILE *file, int submode, BOOL islast)
Definition: write.c:168
unsigned int depth
Definition: mkisofs.h:278
EXPORT void do_dir_nlink(struct directory *dpnt)
Definition: inode.c:85
unsigned int jpath_index
Definition: mkisofs.h:284
EXPORT void set_721(void *vp, UInt32_t i)
Definition: isonum.c:46
_STLP_MOVE_TO_STD_NAMESPACE void sort(_RandomAccessIter __first, _RandomAccessIter __last)
Definition: _algo.c:993
unsigned int starting_block
Definition: mkisofs.h:111
int jlen
Definition: mkisofs.c:114
EXPORT struct file_hash * find_directory_hash(dev_t dev, ino_t inode)
Definition: hash.c:375
struct stat fstatbuf
Definition: tree.c:108
struct iso_primary_descriptor vol_desc
Definition: write.c:77
__kernel_off_t off_t
Definition: linux.h:201
char * boot_image
Definition: mkisofs.c:169
struct output_fragment jpathtable_desc
Definition: joliet.c:1455
struct directory * filedir
Definition: mkisofs.h:119
char * biblio
Definition: mkisofs.c:163
int use_fileversion
Definition: mkisofs.c:255
char * jpath_table_m
Definition: mkisofs.c:1635
EXPORT int make_sunx86_label()
Definition: boot.c:287
int verbose
Definition: main.c:60
EXPORT void set_722(void *vp, UInt32_t i)
Definition: isonum.c:61
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
EXPORT int scan_sparc_boot(char *files)
Definition: boot.c:133
GLuint buffer
Definition: glext.h:5915
int transparent_compression
Definition: mkisofs.c:235
EXPORT int stat_filter(char *path, struct stat *st)
Definition: tree.c:232
siconvt_t * hfs_inls
unsigned int path_table_size
Definition: cdmake.c:202
int split_SL_component
Definition: mkisofs.c:257
BOOL long_rr_time
Definition: mkisofs.c:326
int iso9660_level
Definition: mkisofs.c:242
EXPORT char * e_strdup(char *s) const
Definition: mkisofs.c:3941
EXPORT UInt32_t get_732(void *vp)
Definition: isonum.c:203
struct output_fragment genboot_desc
Definition: boot.c:555
EXPORT void set_731(void *vp, UInt32_t i)
Definition: isonum.c:91
int debug
Definition: main.c:64
Definition: fs.h:235
const char * filename
Definition: ioapi.h:135
long uid_t
Definition: various.h:8
unsigned int ce_bytes
Definition: mkisofs.h:276
int donotwrite_macpart
Definition: mkisofs.c:298
BOOL ignerr
Definition: multi.c:92
unsigned int got_rr_name
Definition: mkisofs.h:137
int osecsize
Definition: mkisofs.c:112
unsigned int Uint
Definition: utypes.h:43
struct output_fragment sunboot_desc
Definition: boot.c:553
EXPORT struct directory_entry * search_tree_file(struct directory *node, char *filename)
Definition: tree.c:2885
Definition: fatfs.h:198
char * name
Definition: mkisofs.h:116
struct directory * subdir
Definition: mkisofs.h:268
int open_merge_image(char *path)
Definition: multi.c:1365
struct timesp timesp
int mxpart
Definition: mkisofs.h:113
struct output_fragment dirtree_clean
Definition: write.c:3028
unsigned int extent
Definition: mkisofs.h:280
EXPORT void init_boot_catalog(char *path) const
Definition: eltorito.c:67
int use_Joliet
Definition: mkisofs.c:113
struct output_fragment strpath_desc
Definition: stream.c:257
EXPORT int sunx86_boot_label(char *label)
Definition: boot.c:121
LOCAL void convert_to_unicode(unsigned char *buffer, int size, char *source, siconvt_t *inls)
Definition: joliet.c:247
ino_t inode
Definition: mkisofs.h:158
int not_bootable
Definition: mkisofs.h:314
struct directory * parent
Definition: mkisofs.h:269
EXPORT struct file_hash * find_hash(struct directory_entry *spnt)
Definition: hash.c:192
void * dir
Definition: mkisofs.h:80
#define dvd_aud_vid_flag
struct iso_directory_record root_record
Definition: mkisofs.c:87
struct output_fragment dirtree_desc
Definition: write.c:3027
UINT gid_t
Definition: types.h:89
gid_t gid_to_use
Definition: mkisofs.c:149
int ucs_level
Definition: mkisofs.c:171
char * table
Definition: mkisofs.h:298
struct iso_directory_record isorec
Definition: mkisofs.h:110
struct output_fragment end_vol
Definition: write.c:3024
int use_XA
Definition: mkisofs.c:111
struct directory_entry * parent_rec
Definition: mkisofs.h:120
char * preparer
Definition: mkisofs.c:159
struct output_fragment strdir_desc
Definition: stream.c:256
nlink_t nlink
Definition: mkisofs.h:160
int no_emul_boot
Definition: mkisofs.c:103
Definition: dirent.h:39
int goof
Definition: mkisofs.c:1637
dev_t dev
Definition: mkisofs.h:133
EXPORT UInt32_t get_733(void *vp)
Definition: isonum.c:219
LOCAL int joliet_strlen(char *string, size_t maxlen, siconvt_t *inls) const
Definition: joliet.c:375
EXPORT int sparc_boot_label(char *label)
Definition: boot.c:112
EXPORT int make_sun_label()
Definition: boot.c:243
unsigned int of_start_extent
Definition: mkisofs.h:196
char * boot_image
Definition: mkisofs.h:313
char * whole_name
Definition: mkisofs.h:118
EXPORT int iso9660_date(char *result, time_t crtime)
Definition: mkisofs.c:1868
UInt32_t null_inodes
Definition: mkisofs.c:323
int volume_sequence_number
Definition: mkisofs.c:173
attr_type
Definition: widltypes.h:69
int load_size
Definition: mkisofs.h:318
int use_graft_ptrs
Definition: mkisofs.c:230
BOOL archive_isreg
Definition: mkisofs.c:93
Uint RR_relocation_depth
Definition: mkisofs.c:239
int jhide_trans_tbl
Definition: mkisofs.c:232
UInt32_t extension_record_extent
Definition: mkisofs.c:91
char * volset_id
Definition: mkisofs.c:165
int no_emul_boot
Definition: mkisofs.h:315
struct directory_entry * contents
Definition: mkisofs.h:270
char * de_name
Definition: mkisofs.h:275
unsigned int total_rr_attr_size
Definition: mkisofs.h:136
int iso9660_file_length(char *name, struct directory_entry *sresult, int dirflag) const
Definition: name.c:105
struct output_fragment * out_list
Definition: write.c:75
int new_dir_mode
Definition: mkisofs.c:152
void iso9660_check(struct iso_directory_record *idr, struct directory_entry *ndr)
Definition: name.c:45
struct output_fragment joliet_desc
Definition: joliet.c:1454
__u16 ctime
Definition: mkdosfs.c:362
EXPORT int joliet_sort_tree(struct directory *node)
Definition: joliet.c:1317
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
unsigned int BOOL
Definition: ntddk_ex.h:94
GLsizeiptr size
Definition: glext.h:5919
GLenum GLclampf GLint GLenum GLuint GLenum GLenum GLsizei GLenum const GLvoid GLfloat GLfloat GLfloat GLfloat GLclampd GLint 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 GLboolean GLboolean GLboolean GLint GLenum GLsizei const GLvoid GLenum GLint GLenum GLint GLint GLsizei GLint GLenum GLint GLint GLint GLint GLsizei GLenum GLsizei const GLuint GLboolean flag
Definition: glfuncs.h:72
Definition: id3.c:18
EXPORT UInt32_t get_711(void *vp)
Definition: isonum.c:142
struct stat root_statbuf
Definition: tree.c:110
int hard_disk_boot
Definition: mkisofs.h:316
int allow_leading_dots
Definition: mkisofs.c:251
int split_SL_field
Definition: mkisofs.c:258
siconvt_t * in_nls
Definition: mkisofs.c:332
struct directory * reloc_dir
Definition: tree.c:111
ino_t archive_ino
Definition: mkisofs.c:95
int not_bootable
Definition: mkisofs.c:102
struct output_fragment voldesc_desc
Definition: write.c:3022
Definition: mkisofs.h:331
int rationalize
Definition: mkisofs.c:143
int volume_set_size
Definition: mkisofs.c:172
unsigned int jpath_table[4]
Definition: mkisofs.c:84
EXPORT void add_directory_hash(dev_t dev, ino_t inode)
Definition: hash.c:346
int create_udfsymlinks
unsigned char * parse_xa(unsigned char *pnt, int *lenp, struct directory_entry *dpnt)
Definition: multi.c:169
siconvt_t * out_nls
Definition: mkisofs.c:333
char * name
Definition: mkisofs.h:81
int split_output
Definition: mkisofs.c:156
Definition: mkisofs.h:79
struct directory_entry * jcontents
Definition: mkisofs.h:271
struct output_fragment interpad_desc
Definition: write.c:3031
EXPORT int iso9660_ldate(char *result, time_t crtime, int nsec, int gmtoff)
Definition: mkisofs.c:1907
GLuint GLuint GLsizei count
Definition: gl.h:1545
struct iso_directory_record jroot_record
Definition: mkisofs.c:88
dev_t dev
Definition: mkisofs.h:159
struct output_fragment torito_desc
Definition: eltorito.c:686
int close_merge_image()
Definition: multi.c:1387
char * jpath_table_l
Definition: mkisofs.c:1634
struct ldate ldate
char * extension_record
Definition: mkisofs.c:90
EXPORT int lstat_filter(char *path, struct stat *st)
Definition: tree.c:244
struct output_fragment strfile_desc
Definition: stream.c:255
UInt32_t last_extent_written
Definition: write.c:303
struct directory_entry * s_entry
Definition: mkisofs.h:302
int allow_lowercase
Definition: mkisofs.c:247
int hard_disk_boot
Definition: mkisofs.c:101
off_t size
Definition: mkisofs.h:162
EXPORT void dump_tree(struct directory *node)
Definition: tree.c:2863
int iso9660_namelen
Definition: mkisofs.c:243
unsigned int jextent
Definition: mkisofs.h:282
int check_session
Definition: mkisofs.c:99
static int state
Definition: maze.c:121
char * path_table_m
Definition: mkisofs.c:1632
struct eltorito_boot_entry_info * last_boot_entry
Definition: mkisofs.c:227
struct output_fragment * of_next
Definition: mkisofs.h:191
Definition: stat.h:55
int print_size
Definition: mkisofs.c:155
int no_rr
Definition: mkisofs.c:237
ino_t inode
Definition: mkisofs.h:132
struct directory_entry * next
Definition: mkisofs.h:108
int boot_platform
Definition: mkisofs.h:327
GLenum GLsizei len
Definition: glext.h:6722
unsigned short priority
Definition: mkisofs.h:114
off_t size
Definition: mkisofs.h:112
int nolimitpathtables
Definition: mkisofs.c:245
struct output_fragment sunlabel_desc
Definition: boot.c:554
int boot_info_table
Definition: mkisofs.c:106
GLenum mode
Definition: glext.h:6217
struct output_fragment endpad_desc
Definition: write.c:3032
struct eltorito_boot_entry_info * first_boot_entry
Definition: mkisofs.c:226
EXPORT int scan_sunx86_boot(char *files)
Definition: boot.c:182
off_t size
Definition: mkisofs.h:300
uint8_t label[11]
Definition: fsck.fat.h:65
char * volume_id
Definition: mkdosfs.c:361
int use_eltorito
Definition: mkisofs.c:100
EXPORT void finish_cl_pl_entries()
Definition: tree.c:1036
Int32_t tv_nsec
Definition: mkisofs.h:104
int rationalize_gid
Definition: mkisofs.c:145
void match_cl_re_entries()
Definition: multi.c:2131
unsigned short dir_nlink
Definition: mkisofs.h:286
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
UInt32_t last_extent
Definition: mkisofs.c:76
char * appid
Definition: mkisofs.c:161
struct output_fragment startpad_desc
Definition: write.c:3021
FILE * in_image
Definition: multi.c:91
EXPORT struct directory_entry * dup_directory_entry(struct directory_entry *s_entry)
Definition: tree.c:2429
int rationalize_dirmode
Definition: mkisofs.c:147
int iso_translate
Definition: mkisofs.c:250
char * de_path
Definition: mkisofs.h:274
EXPORT UInt32_t get_721(void *vp)
Definition: isonum.c:155
EXPORT void init_fstatbuf()
Definition: tree.c:2974
int load_size
Definition: mkisofs.c:105
int allow_multidot
Definition: mkisofs.c:249
int gui
Definition: mkisofs.c:130
EXPORT UInt32_t get_723(void *vp)
Definition: isonum.c:169
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
__u32 ino_t
Definition: types.h:27
static unsigned __int64 next
Definition: rand_nt.c:6
unsigned int jpath_blocks
Definition: mkisofs.c:85
EXPORT void insert_boot_cat()
Definition: eltorito.c:124
__kernel_dev_t dev_t
Definition: linux.h:197
__kernel_mode_t mode_t
Definition: linux.h:199
__kernel_time_t time_t
Definition: linux.h:252
struct eltorito_boot_entry_info * next
Definition: mkisofs.h:312
struct directory_entry * jnext
Definition: mkisofs.h:109
int rr_flags(struct iso_directory_record *idr)
Definition: multi.c:353
EXPORT void ex_boot_enoent(char *msg, char *pname)
Definition: eltorito.c:660
void add_hash(struct hash_table *table, unsigned char *name, int len, unsigned char *pointer)
Definition: hash.c:82
int all_files
Definition: mkisofs.c:132
EXPORT char * findgequal(char *s)
Definition: mkisofs.c:3642
Definition: services.c:325
unsigned int rr_attr_size
Definition: mkisofs.h:135
EXPORT void memcpy_max(char *to, char *from, int max)
Definition: write.c:1880
EXPORT void do_inode(struct directory *dpnt)
Definition: inode.c:55
struct directory_entry * mxroot
Definition: mkisofs.h:121
struct output_fragment pathtable_desc
Definition: write.c:3026
EXPORT int sort_tree(struct directory *node)
Definition: tree.c:2842
int check_oldnames
Definition: mkisofs.c:98
EXPORT void generate_iso9660_directories(struct directory *node, FILE *outfile)
Definition: tree.c:2458
time_t l_sec
Definition: mkisofs.h:332
UInt32_t next_extent
Definition: mkisofs.c:75
char * boot_catalog
Definition: mkisofs.c:168
EXPORT void * e_malloc(size_t size)
Definition: mkisofs.c:3921
struct output_fragment jdirtree_desc
Definition: joliet.c:1456
EXPORT char * generate_rr_extension_record(char *id, char *descriptor, char *source, int *size)
Definition: rock.c:903
EXPORT struct directory * find_or_create_directory(struct directory *parent, char *path, struct directory_entry *de, int flag)
Definition: tree.c:2508
struct output_fragment files_desc
Definition: write.c:3030
Definition: name.c:36
struct iso_directory_record * merge_isofs(char *path)
Definition: multi.c:1401
int use_RockRidge
Definition: mkisofs.c:110
EXPORT void flush_hash()
Definition: hash.c:240
int type
Definition: mkisofs.h:323
UINT msg
Definition: msvc.h:92
dev_t archive_dev
Definition: mkisofs.c:94
char * copyright
Definition: main.c:27
unsigned char * rr_attributes
Definition: mkisofs.h:134
int omit_version_number
Definition: mkisofs.c:236
EXPORT void add_file_hash(struct directory_entry *de)
Definition: hash.c:436
__kernel_nlink_t nlink_t
Definition: linux.h:200
int cache_inodes
Definition: mkisofs.c:141
EXPORT int new_boot_entry()
Definition: eltorito.c:650
struct output_fragment xvoldesc_desc
Definition: write.c:3023
unsigned int path_index
Definition: mkisofs.h:283
EXPORT int scan_directory_tree(struct directory *this_dir, char *path, struct directory_entry *de)
Definition: tree.c:1147
EXPORT int sort_directory(struct directory_entry **sort_dir, int rr)
Definition: write.c:814
int get_session_start(int *file_addr)
Definition: multi.c:1751
off_t maxnonlarge
Definition: mkisofs.c:241
int boot_info_table
Definition: mkisofs.h:317
CardRegion * from
Definition: spigame.cpp:19
uid_t uid_to_use
Definition: mkisofs.c:148
unsigned long Ulong
Definition: utypes.h:42
int rationalize_uid
Definition: mkisofs.c:144
char * trans_tbl
Definition: mkisofs.c:259
unsigned int pad
Definition: mkisofs.h:303
int merge_previous_session(struct directory *this_dir, struct iso_directory_record *mrootp, char *reloc_root, char *reloc_old_root)
Definition: multi.c:1811
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
#define apple_hyb
struct output_fragment * out_tail
Definition: write.c:74
int generate_tables
Definition: mkisofs.c:153
EXPORT void flush_file_hash()
Definition: hash.c:584
char * path_table_l
Definition: mkisofs.c:1631
int do_largefiles
Definition: mkisofs.c:240
siconvt_t * hfs_onls
int of_size __PR((UInt32_t))
int relaxed_filenames
Definition: mkisofs.c:246
void finish_cl_pl_for_prev_session()
Definition: multi.c:2167
int full_iso9660_filenames
Definition: mkisofs.c:244
EXPORT void set_723(void *vp, UInt32_t i)
Definition: isonum.c:76
unsigned short dir_flags
Definition: mkisofs.h:285
char * publisher
Definition: mkisofs.c:160
int l_gmtoff
Definition: mkisofs.h:334
int omit_period
Definition: mkisofs.c:234
unsigned int path_blocks
Definition: mkisofs.c:80
EXPORT void generate_one_directory(struct directory *dpnt, FILE *outfile)
Definition: write.c:1539
unsigned int dw_flags
Definition: mkisofs.h:305
Definition: mkisofs.h:311
EXPORT void set_733(void *vp, UInt32_t i)
Definition: isonum.c:125
struct directory * next
Definition: mkisofs.h:267
EXPORT void attach_dot_entries(struct directory *dirnode, struct stat *this_stat, struct stat *parent_stat)
Definition: tree.c:905
struct output_fragment version_desc
Definition: write.c:3025
struct eltorito_boot_entry_info * current_boot_entry
Definition: mkisofs.c:228
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:29
int l_usec
Definition: mkisofs.h:333
time_t tv_sec
Definition: mkisofs.h:103
Definition: fci.c:126