xref: /minix/minix/fs/isofs/super.h (revision 83133719)
1 /* This file contains the definitions of ISO9660 volume descriptors. */
2 #include "inode.h"
3 
4 #define VD_BOOT_RECORD 0
5 #define VD_PRIMARY 1
6 #define VD_SUPPL 2
7 #define VD_PART 3
8 #define VD_SET_TERM 255
9 
10 #define MAX_ATTEMPTS 20         /* # attempts to read the volume descriptors.
11                                  * After it gives up */
12 
13 /* Structure for the primary volume descriptor. */
14 struct iso9660_vol_pri_desc {
15 	/*
16 	 * On-disk structure format of the primary volume descriptor,
17 	 * 2048 bytes long. See ISO specs for details.
18 	 */
19 	u8_t vd_type;
20 	char standard_id[ISO9660_SIZE_STANDARD_ID];
21 	u8_t vd_version;
22 	u8_t pad1;
23 	char system_id[ISO9660_SIZE_SYS_ID];
24 	char volume_id[ISO9660_SIZE_VOLUME_ID];
25 	u8_t pad2[8];
26 	u32_t volume_space_size_l;
27 	u32_t volume_space_size_m;
28 	u8_t pad3[32];
29 	u16_t volume_set_size_l;
30 	u16_t volume_set_size_m;
31 	u16_t volume_sequence_number_l;
32 	u16_t volume_sequence_number_m;
33 	u16_t logical_block_size_l;
34 	u16_t logical_block_size_m;
35 	u32_t path_table_size_l;
36 	u32_t path_table_size_m;
37 	u32_t loc_l_occ_path_table;
38 	u32_t loc_opt_l_occ_path_table;
39 	u32_t loc_m_occ_path_table;
40 	u32_t loc_opt_m_occ_path_table;
41 	u8_t root_directory[34];
42 	char volume_set_id[ISO9660_SIZE_VOLUME_SET_ID];
43 	char publisher_id[ISO9660_SIZE_PUBLISHER_ID];
44 	char data_preparer_id[ISO9660_SIZE_DATA_PREP_ID];
45 	char application_id[ISO9660_SIZE_APPL_ID];
46 	char copyright_file_id[ISO9660_SIZE_COPYRIGHT_FILE_ID];
47 	char abstract_file_id[ISO9660_SIZE_ABSTRACT_FILE_ID];
48 	char bibl_file_id[ISO9660_SIZE_BIBL_FILE_ID];
49 	char volume_cre_date[ISO9660_SIZE_DATE17];
50 	char volume_mod_date[ISO9660_SIZE_DATE17];
51 	char volume_exp_date[ISO9660_SIZE_DATE17];
52 	char volume_eff_date[ISO9660_SIZE_DATE17];
53 	u8_t file_struct_ver;
54 	u8_t reserved1;
55 	u8_t application_use[512];
56 	u8_t reserved2[652];
57 
58 	/* End of the on-disk structure format. */
59 
60 	struct inode *inode_root;
61 	int i_count;
62 } __attribute__((packed)) v_pri;
63 
64