📄 mkisofs.h
字号:
extern char *hfs_boot_file; /* name of HFS boot file */extern char *magic_file; /* magic file for CREATOR/TYPE matching */extern int hfs_last; /* order in which to process map/magic files */extern char *deftype; /* default Apple TYPE */extern char *defcreator; /* default Apple CREATOR */extern int gen_pt; /* generate HFS partition table */extern char *autoname; /* Autostart filename */extern int afe_size; /* Apple File Exchange block size */extern char *hfs_volume_id; /* HFS volume ID */extern int icon_pos; /* Keep Icon position */extern int hfs_lock; /* lock HFS volume (read-only) */extern char *hfs_bless; /* name of folder to 'bless' (System Folder) */extern char *hfs_parms; /* low level HFS parameters */#define MAP_LAST 1 /* process magic then map file */#define MAG_LAST 2 /* process map then magic file */#ifndef PREP_BOOT#define PREP_BOOT#endif /* PREP_BOOT */#ifdef PREP_BOOTextern char *prep_boot_image[4];extern int use_prep_boot;#endif /* PREP_BOOT */#endif /* APPLE_HYB */#ifdef SORTINGextern int do_sort;#endif /* SORTING *//* tree.c */extern int is_rrmoved;extern int stat_filter __PR((char *, struct stat *));extern int lstat_filter __PR((char *, struct stat *));extern int sort_tree __PR((struct directory *));extern struct directory * find_or_create_directory __PR((struct directory *, const char *, struct directory_entry * self, int));extern void finish_cl_pl_entries __PR((void));extern int scan_directory_tree __PR((struct directory * this_dir, char *path, struct directory_entry * self));#ifdef APPLE_HYBextern int insert_file_entry __PR((struct directory *, char *, char *, int));#elseextern int insert_file_entry __PR((struct directory *, char *, char *));#endif /* APPLE_HYB */extern void generate_iso9660_directories __PR((struct directory *, FILE *));extern void dump_tree __PR((struct directory * node));extern struct directory_entry *search_tree_file __PR((struct directory * node, char *filename));extern void update_nlink_field __PR((struct directory * node));extern void init_fstatbuf __PR((void));extern struct stat root_statbuf;extern struct stat fstatbuf;/* eltorito.c */extern void init_boot_catalog __PR((const char *path));extern void insert_boot_cat __PR((void));extern void get_boot_entry __PR((void));extern void new_boot_entry __PR((void));/* boot.c */extern void sparc_boot_label __PR((char *label));extern void scan_sparc_boot __PR((char *files));extern int make_sun_label __PR((void));/* write.c */extern int get_731 __PR((char *));extern int get_732 __PR((char *));extern int get_733 __PR((char *));extern int isonum_733 __PR((unsigned char *));extern void set_723 __PR((char *, unsigned int));extern void set_731 __PR((char *, unsigned int));extern void set_721 __PR((char *, unsigned int));extern void set_733 __PR((char *, unsigned int));extern int sort_directory __PR((struct directory_entry **, int));extern void generate_one_directory __PR((struct directory *, FILE *));extern void memcpy_max __PR((char *, char *, int));extern int oneblock_size __PR((int starting_extent));extern struct iso_primary_descriptor vol_desc;extern void xfwrite __PR((void *buffer, int count, int size, FILE * file));extern void set_732 __PR((char *pnt, unsigned int i));extern void set_722 __PR((char *pnt, unsigned int i));extern void outputlist_insert __PR((struct output_fragment * frag));#ifdef APPLE_HYBextern Ulong get_adj_size __PR((int Csize));extern int adj_size __PR((int Csize, int start_extent, int extra));extern void adj_size_other __PR((struct directory * dpnt));extern int insert_padding_file __PR((int size));extern int gen_mac_label __PR((struct deferred_write *));#ifdef PREP_BOOTextern void gen_prepboot_label __PR((unsigned char *));#endif /* PREP_BOOT */#endif /* APPLE_HYB *//* multi.c */extern FILE *in_image;extern int open_merge_image __PR((char *path));extern int close_merge_image __PR((void));extern struct iso_directory_record * merge_isofs __PR((char *path));extern int free_mdinfo __PR((struct directory_entry **, int len));extern unsigned char *parse_xa __PR((unsigned char *pnt, int *lenp, struct directory_entry * dpnt));extern int rr_flags __PR((struct iso_directory_record *idr));extern int parse_rrflags __PR((Uchar *pnt, int len, int cont_flag));extern void find_rr __PR((struct iso_directory_record *idr, Uchar **pntp, int *lenp));extern struct directory_entry ** read_merging_directory __PR((struct iso_directory_record *, int *));extern void merge_remaining_entries __PR((struct directory *, struct directory_entry **, int));extern int merge_previous_session __PR((struct directory *, struct iso_directory_record *));extern int get_session_start __PR((int *));/* joliet.c */#ifdef UDFextern void convert_to_unicode __PR((unsigned char *buffer, int size, char *source, struct nls_table *inls, int flag));extern int joliet_strlen __PR((const char *string, int flag));#endifextern unsigned char conv_charset __PR((unsigned char, struct nls_table *, struct nls_table *));extern int joliet_sort_tree __PR((struct directory * node));/* match.c */extern int matches __PR((char *));extern int add_match __PR((char *));/* files.c */struct dirent *readdir_add_files __PR((char **, char *, DIR *));/* name.c */extern void iso9660_check __PR((struct iso_directory_record *idr, struct directory_entry *ndr)); extern int iso9660_file_length __PR((const char *name, struct directory_entry * sresult, int flag));/* various */extern int iso9660_date __PR((char *, time_t));extern void add_hash __PR((struct directory_entry *));extern struct file_hash *find_hash __PR((dev_t, ino_t));extern void flush_hash __PR((void));extern void add_directory_hash __PR((dev_t, ino_t));extern struct file_hash *find_directory_hash __PR((dev_t, ino_t));extern void flush_file_hash __PR((void));extern int delete_file_hash __PR((struct directory_entry *));extern struct directory_entry *find_file_hash __PR((char *));extern void add_file_hash __PR((struct directory_entry *));extern int generate_rock_ridge_attributes __PR((char *, char *, struct directory_entry *, struct stat *, struct stat *, int deep_flag));extern char *generate_rr_extension_record __PR((char *id, char *descriptor, char *source, int *size));extern int check_prev_session __PR((struct directory_entry **, int len, struct directory_entry *, struct stat *, struct stat *, struct directory_entry **));extern void match_cl_re_entries __PR((void));extern void finish_cl_pl_for_prev_session __PR((void));extern char *find_rr_attribute __PR((unsigned char *pnt, int len, char *attr_type));#ifdef USE_SCG/* scsi.c */extern int readsecs __PR((int startsecno, void *buffer, int sectorcount));extern int scsidev_open __PR((char *path));extern int scsidev_close __PR((void));#endif#ifdef APPLE_HYB/* volume.c */extern int make_mac_volume __PR((struct directory * dpnt, int start_extent));extern int write_fork __PR((hfsfile * hfp, long tot));/* apple.c */extern void del_hfs_info __PR((struct hfs_info *));extern int get_hfs_dir __PR((char *, char *, struct directory_entry *));extern int get_hfs_info __PR((char *, char *, struct directory_entry *));extern int get_hfs_rname __PR((char *, char *, char *));extern int hfs_exclude __PR((char *));extern void print_hfs_info __PR((struct directory_entry *));extern void hfs_init __PR((char *, unsigned short, unsigned int));extern void delete_rsrc_ent __PR((struct directory_entry *));extern void clean_hfs __PR((void));extern void perr __PR((char *));extern void set_root_info __PR((char *));/* desktop.c */extern int make_desktop __PR((hfsvol *, int));/* mac_label.c */#ifdef _MAC_LABEL_H#ifdef PREP_BOOTextern void gen_prepboot_label __PR((MacLabel * mac_label));#endifextern int gen_mac_label __PR((defer *));#endifextern int autostart __PR((void));/* libfile */extern char *get_magic_match __PR((const char *));extern void clean_magic __PR((void));#endif /* APPLE_HYB */extern char *extension_record;extern int extension_record_extent;extern int n_data_extents;/* * These are a few goodies that can be specified on the command line, and are * filled into the root record */extern char *preparer;extern char *publisher;extern char *copyright;extern char *biblio;extern char *abstract;extern char *appid;extern char *volset_id;extern char *system_id;extern char *volume_id;extern char *boot_catalog;extern char *boot_image;extern char *genboot_image;extern int ucs_level;extern int volume_set_size;extern int volume_sequence_number;extern struct eltorito_boot_entry_info *first_boot_entry;extern struct eltorito_boot_entry_info *last_boot_entry;extern struct eltorito_boot_entry_info *current_boot_entry;extern char *findgequal __PR((char *));extern void *e_malloc __PR((size_t));/* * Note: always use these macros to avoid problems. * * ISO_ROUND_UP(X) may cause an integer overflow and thus give * incorrect results. So avoid it if possible. * * ISO_BLOCKS(X) is overflow safe. Prefer this when ever it is possible. */#define SECTOR_SIZE (2048)#define ISO_ROUND_UP(X) (((X) + (SECTOR_SIZE - 1)) & ~(SECTOR_SIZE - 1))#define ISO_BLOCKS(X) (((X) / SECTOR_SIZE) + (((X)%SECTOR_SIZE)?1:0))#define ROUND_UP(X,Y) (((X + (Y - 1)) / Y) * Y)#ifdef APPLE_HYB/* * ISO blocks == 2048, HFS blocks == 512 */#define HFS_BLK_CONV (SECTOR_SIZE/HFS_BLOCKSZ)#define HFS_ROUND_UP(X) ISO_ROUND_UP(((X)*HFS_BLOCKSZ)) /* XXX ??? */#define HFS_BLOCKS(X) (ISO_BLOCKS(X) * HFS_BLK_CONV)#define USE_MAC_NAME(E) (use_mac_name && ((E)->hfs_ent != NULL) && (E)->hfs_type)#endif /* APPLE_HYB */#define NEED_RE 1#define NEED_PL 2#define NEED_CL 4#define NEED_CE 8#define NEED_SP 16#define PREV_SESS_DEV (sizeof(dev_t) >= 4 ? 0x7ffffffd : 0x7ffd)#define TABLE_INODE (sizeof(ino_t) >= 4 ? 0x7ffffffe : 0x7ffe)#define UNCACHED_INODE (sizeof(ino_t) >= 4 ? 0x7fffffff : 0x7fff)#define UNCACHED_DEVICE (sizeof(dev_t) >= 4 ? 0x7fffffff : 0x7fff)#ifdef VMS#define STAT_INODE(X) (X.st_ino[0])#define PATH_SEPARATOR ']'#define SPATH_SEPARATOR ""#else#define STAT_INODE(X) (X.st_ino)#define PATH_SEPARATOR '/'#define SPATH_SEPARATOR "/"#endif/* * When using multi-session, indicates that we can reuse the * TRANS.TBL information for this directory entry. If this flag * is set for all entries in a directory, it means we can just * reuse the TRANS.TBL and not generate a new one. */#define SAFE_TO_REUSE_TABLE_ENTRY 0x01 /* de_flags only */#define DIR_HAS_DOT 0x02 /* dir_flags only */#define DIR_HAS_DOTDOT 0x04 /* dir_flags only */#define INHIBIT_JOLIET_ENTRY 0x08#define INHIBIT_RR_ENTRY 0x10 /* not used */#define RELOCATED_DIRECTORY 0x20 /* de_flags only */#define INHIBIT_ISO9660_ENTRY 0x40#define MEMORY_FILE 0x80 /* de_flags only */#define HIDDEN_FILE 0x100 /* de_flags only */#define DIR_WAS_SCANNED 0x200 /* dir_flags only *//* * Volume sequence number to use in all of the iso directory records. */#define DEF_VSN 1/* * Make sure we have a definition for this. If not, take a very conservative * guess. * POSIX requires the max pathname component lenght to be defined in limits.h * If variable, it may be undefined. If undefined, there should be * a definition for _POSIX_NAME_MAX in limits.h or in unistd.h * As _POSIX_NAME_MAX is defined to 14, we cannot use it. * XXX Eric's wrong comment: * XXX From what I can tell SunOS is the only one with this trouble. */#ifdef HAVE_LIMITS_H#include <limits.h>#endif#ifndef NAME_MAX#ifdef FILENAME_MAX#define NAME_MAX FILENAME_MAX#else#define NAME_MAX 256#endif#endif#ifndef PATH_MAX#ifdef FILENAME_MAX#define PATH_MAX FILENAME_MAX#else#define PATH_MAX 1024#endif#endif/* * XXX JS: Some structures have odd lengths! * Some compilers (e.g. on Sun3/mc68020) padd the structures to even length. * For this reason, we cannot use sizeof (struct iso_path_table) or * sizeof (struct iso_directory_record) to compute on disk sizes. * Instead, we use offsetof(..., name) and add the name size. * See iso9660.h */#ifndef offsetof#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -