blob: cbe547ded19e49e3ddc99fef677959a9dc66bd5f [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _ISOFS_FS_H
8#define _ISOFS_FS_H
9#include <linux/types.h>
10#include <linux/magic.h>
Tao Baod7db5942015-01-28 10:07:51 -080011#define ISODCL(from,to) (to - from + 1)
Ben Cheng655a7c02013-10-16 16:09:24 -070012struct iso_volume_descriptor {
Christopher Ferris934ec942018-01-31 15:29:16 -080013 __u8 type[ISODCL(1, 1)];
Tao Baod7db5942015-01-28 10:07:51 -080014 char id[ISODCL(2, 6)];
Christopher Ferris934ec942018-01-31 15:29:16 -080015 __u8 version[ISODCL(7, 7)];
16 __u8 data[ISODCL(8, 2048)];
Ben Cheng655a7c02013-10-16 16:09:24 -070017};
18#define ISO_VD_PRIMARY 1
Ben Cheng655a7c02013-10-16 16:09:24 -070019#define ISO_VD_SUPPLEMENTARY 2
20#define ISO_VD_END 255
21#define ISO_STANDARD_ID "CD001"
22struct iso_primary_descriptor {
Christopher Ferris934ec942018-01-31 15:29:16 -080023 __u8 type[ISODCL(1, 1)];
Tao Baod7db5942015-01-28 10:07:51 -080024 char id[ISODCL(2, 6)];
Christopher Ferris934ec942018-01-31 15:29:16 -080025 __u8 version[ISODCL(7, 7)];
26 __u8 unused1[ISODCL(8, 8)];
Tao Baod7db5942015-01-28 10:07:51 -080027 char system_id[ISODCL(9, 40)];
28 char volume_id[ISODCL(41, 72)];
Christopher Ferris934ec942018-01-31 15:29:16 -080029 __u8 unused2[ISODCL(73, 80)];
30 __u8 volume_space_size[ISODCL(81, 88)];
31 __u8 unused3[ISODCL(89, 120)];
32 __u8 volume_set_size[ISODCL(121, 124)];
33 __u8 volume_sequence_number[ISODCL(125, 128)];
34 __u8 logical_block_size[ISODCL(129, 132)];
35 __u8 path_table_size[ISODCL(133, 140)];
36 __u8 type_l_path_table[ISODCL(141, 144)];
37 __u8 opt_type_l_path_table[ISODCL(145, 148)];
38 __u8 type_m_path_table[ISODCL(149, 152)];
39 __u8 opt_type_m_path_table[ISODCL(153, 156)];
40 __u8 root_directory_record[ISODCL(157, 190)];
Tao Baod7db5942015-01-28 10:07:51 -080041 char volume_set_id[ISODCL(191, 318)];
42 char publisher_id[ISODCL(319, 446)];
Tao Baod7db5942015-01-28 10:07:51 -080043 char preparer_id[ISODCL(447, 574)];
44 char application_id[ISODCL(575, 702)];
45 char copyright_file_id[ISODCL(703, 739)];
46 char abstract_file_id[ISODCL(740, 776)];
Tao Baod7db5942015-01-28 10:07:51 -080047 char bibliographic_file_id[ISODCL(777, 813)];
Christopher Ferris934ec942018-01-31 15:29:16 -080048 __u8 creation_date[ISODCL(814, 830)];
49 __u8 modification_date[ISODCL(831, 847)];
50 __u8 expiration_date[ISODCL(848, 864)];
51 __u8 effective_date[ISODCL(865, 881)];
52 __u8 file_structure_version[ISODCL(882, 882)];
53 __u8 unused4[ISODCL(883, 883)];
54 __u8 application_data[ISODCL(884, 1395)];
55 __u8 unused5[ISODCL(1396, 2048)];
Ben Cheng655a7c02013-10-16 16:09:24 -070056};
57struct iso_supplementary_descriptor {
Christopher Ferris934ec942018-01-31 15:29:16 -080058 __u8 type[ISODCL(1, 1)];
Tao Baod7db5942015-01-28 10:07:51 -080059 char id[ISODCL(2, 6)];
Christopher Ferris934ec942018-01-31 15:29:16 -080060 __u8 version[ISODCL(7, 7)];
61 __u8 flags[ISODCL(8, 8)];
Tao Baod7db5942015-01-28 10:07:51 -080062 char system_id[ISODCL(9, 40)];
Tao Baod7db5942015-01-28 10:07:51 -080063 char volume_id[ISODCL(41, 72)];
Christopher Ferris934ec942018-01-31 15:29:16 -080064 __u8 unused2[ISODCL(73, 80)];
65 __u8 volume_space_size[ISODCL(81, 88)];
66 __u8 escape[ISODCL(89, 120)];
67 __u8 volume_set_size[ISODCL(121, 124)];
68 __u8 volume_sequence_number[ISODCL(125, 128)];
69 __u8 logical_block_size[ISODCL(129, 132)];
70 __u8 path_table_size[ISODCL(133, 140)];
71 __u8 type_l_path_table[ISODCL(141, 144)];
72 __u8 opt_type_l_path_table[ISODCL(145, 148)];
73 __u8 type_m_path_table[ISODCL(149, 152)];
74 __u8 opt_type_m_path_table[ISODCL(153, 156)];
75 __u8 root_directory_record[ISODCL(157, 190)];
Tao Baod7db5942015-01-28 10:07:51 -080076 char volume_set_id[ISODCL(191, 318)];
77 char publisher_id[ISODCL(319, 446)];
78 char preparer_id[ISODCL(447, 574)];
Tao Baod7db5942015-01-28 10:07:51 -080079 char application_id[ISODCL(575, 702)];
80 char copyright_file_id[ISODCL(703, 739)];
81 char abstract_file_id[ISODCL(740, 776)];
82 char bibliographic_file_id[ISODCL(777, 813)];
Christopher Ferris934ec942018-01-31 15:29:16 -080083 __u8 creation_date[ISODCL(814, 830)];
84 __u8 modification_date[ISODCL(831, 847)];
85 __u8 expiration_date[ISODCL(848, 864)];
86 __u8 effective_date[ISODCL(865, 881)];
87 __u8 file_structure_version[ISODCL(882, 882)];
88 __u8 unused4[ISODCL(883, 883)];
89 __u8 application_data[ISODCL(884, 1395)];
90 __u8 unused5[ISODCL(1396, 2048)];
Ben Cheng655a7c02013-10-16 16:09:24 -070091};
92#define HS_STANDARD_ID "CDROM"
93struct hs_volume_descriptor {
Christopher Ferris934ec942018-01-31 15:29:16 -080094 __u8 foo[ISODCL(1, 8)];
95 __u8 type[ISODCL(9, 9)];
Tao Baod7db5942015-01-28 10:07:51 -080096 char id[ISODCL(10, 14)];
Christopher Ferris934ec942018-01-31 15:29:16 -080097 __u8 version[ISODCL(15, 15)];
98 __u8 data[ISODCL(16, 2048)];
Ben Cheng655a7c02013-10-16 16:09:24 -070099};
100struct hs_primary_descriptor {
Christopher Ferris934ec942018-01-31 15:29:16 -0800101 __u8 foo[ISODCL(1, 8)];
102 __u8 type[ISODCL(9, 9)];
103 __u8 id[ISODCL(10, 14)];
104 __u8 version[ISODCL(15, 15)];
105 __u8 unused1[ISODCL(16, 16)];
Tao Baod7db5942015-01-28 10:07:51 -0800106 char system_id[ISODCL(17, 48)];
Tao Baod7db5942015-01-28 10:07:51 -0800107 char volume_id[ISODCL(49, 80)];
Christopher Ferris934ec942018-01-31 15:29:16 -0800108 __u8 unused2[ISODCL(81, 88)];
109 __u8 volume_space_size[ISODCL(89, 96)];
110 __u8 unused3[ISODCL(97, 128)];
111 __u8 volume_set_size[ISODCL(129, 132)];
112 __u8 volume_sequence_number[ISODCL(133, 136)];
113 __u8 logical_block_size[ISODCL(137, 140)];
114 __u8 path_table_size[ISODCL(141, 148)];
115 __u8 type_l_path_table[ISODCL(149, 152)];
116 __u8 unused4[ISODCL(153, 180)];
117 __u8 root_directory_record[ISODCL(181, 214)];
Ben Cheng655a7c02013-10-16 16:09:24 -0700118};
Tao Baod7db5942015-01-28 10:07:51 -0800119struct iso_path_table {
Christopher Ferris934ec942018-01-31 15:29:16 -0800120 __u8 name_len[2];
121 __u8 extent[4];
122 __u8 parent[2];
Christopher Ferris7447a1c2022-10-04 18:24:44 -0700123 char name[];
Ben Cheng655a7c02013-10-16 16:09:24 -0700124} __attribute__((packed));
125struct iso_directory_record {
Christopher Ferris934ec942018-01-31 15:29:16 -0800126 __u8 length[ISODCL(1, 1)];
127 __u8 ext_attr_length[ISODCL(2, 2)];
128 __u8 extent[ISODCL(3, 10)];
129 __u8 size[ISODCL(11, 18)];
130 __u8 date[ISODCL(19, 25)];
131 __u8 flags[ISODCL(26, 26)];
132 __u8 file_unit_size[ISODCL(27, 27)];
133 __u8 interleave[ISODCL(28, 28)];
134 __u8 volume_sequence_number[ISODCL(29, 32)];
135 __u8 name_len[ISODCL(33, 33)];
Christopher Ferris7447a1c2022-10-04 18:24:44 -0700136 char name[];
Ben Cheng655a7c02013-10-16 16:09:24 -0700137} __attribute__((packed));
138#define ISOFS_BLOCK_BITS 11
Ben Cheng655a7c02013-10-16 16:09:24 -0700139#define ISOFS_BLOCK_SIZE 2048
140#define ISOFS_BUFFER_SIZE(INODE) ((INODE)->i_sb->s_blocksize)
141#define ISOFS_BUFFER_BITS(INODE) ((INODE)->i_sb->s_blocksize_bits)
142#endif