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