summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2017-10-19 10:47:49 -0400
committerJan Kara <jack@suse.cz>2017-10-31 13:11:33 -0400
commitcb91775711b2f3f7adea8d33aa83104baf75ee07 (patch)
tree8363a93ce0fb625d92999c189342c638a987a2f5
parent34be4dbf87fc3e474a842305394534216d428f5d (diff)
isofs: use unsigned char types consistently
Based on the discussion about the signed character field for the year, I went through all fields in the iso9660 and rockridge standards to see whether they should used signed or unsigned characters. Only a single 8-bit value is defined as signed per 'section 7.1.2': the timezone offset in a timestamp, this has always been handled correctly through explicit sign-extension. All others are either '7.1.1 8-bit unsigned numerical values' or composite fields. I also read the linux source code and came to the same conclusion, also I could not find any other part of the implementation that actually behaves differently for signed or unsigned values. Since it is still ambigous to use plain 'char' in interface definitions, I'm changing all fields representing numbers and reserved bytes to the unambiguous '__u8'. Fields that hold actual strings are left as 'char' arrays. I built the code with '-Wpointer-sign -Wsign-compare' to see if anything got left out, but couldn't find anything wrong with the remaining warnings. This patch should not change runtime behavior and does not need to be backported. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r--fs/isofs/isofs.h20
-rw-r--r--fs/isofs/rock.h62
-rw-r--r--include/uapi/linux/iso_fs.h162
3 files changed, 122 insertions, 122 deletions
diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h
index bd4047585431..c882f207dd5c 100644
--- a/fs/isofs/isofs.h
+++ b/fs/isofs/isofs.h
@@ -72,36 +72,36 @@ static inline struct iso_inode_info *ISOFS_I(struct inode *inode)
72 return container_of(inode, struct iso_inode_info, vfs_inode); 72 return container_of(inode, struct iso_inode_info, vfs_inode);
73} 73}
74 74
75static inline int isonum_711(char *p) 75static inline int isonum_711(u8 *p)
76{ 76{
77 return *(u8 *)p; 77 return *p;
78} 78}
79static inline int isonum_712(char *p) 79static inline int isonum_712(s8 *p)
80{ 80{
81 return *(s8 *)p; 81 return *p;
82} 82}
83static inline unsigned int isonum_721(char *p) 83static inline unsigned int isonum_721(u8 *p)
84{ 84{
85 return get_unaligned_le16(p); 85 return get_unaligned_le16(p);
86} 86}
87static inline unsigned int isonum_722(char *p) 87static inline unsigned int isonum_722(u8 *p)
88{ 88{
89 return get_unaligned_be16(p); 89 return get_unaligned_be16(p);
90} 90}
91static inline unsigned int isonum_723(char *p) 91static inline unsigned int isonum_723(u8 *p)
92{ 92{
93 /* Ignore bigendian datum due to broken mastering programs */ 93 /* Ignore bigendian datum due to broken mastering programs */
94 return get_unaligned_le16(p); 94 return get_unaligned_le16(p);
95} 95}
96static inline unsigned int isonum_731(char *p) 96static inline unsigned int isonum_731(u8 *p)
97{ 97{
98 return get_unaligned_le32(p); 98 return get_unaligned_le32(p);
99} 99}
100static inline unsigned int isonum_732(char *p) 100static inline unsigned int isonum_732(u8 *p)
101{ 101{
102 return get_unaligned_be32(p); 102 return get_unaligned_be32(p);
103} 103}
104static inline unsigned int isonum_733(char *p) 104static inline unsigned int isonum_733(u8 *p)
105{ 105{
106 /* Ignore bigendian datum due to broken mastering programs */ 106 /* Ignore bigendian datum due to broken mastering programs */
107 return get_unaligned_le32(p); 107 return get_unaligned_le32(p);
diff --git a/fs/isofs/rock.h b/fs/isofs/rock.h
index f835976ce033..8780d67c6ca5 100644
--- a/fs/isofs/rock.h
+++ b/fs/isofs/rock.h
@@ -6,62 +6,62 @@
6 */ 6 */
7 7
8struct SU_SP_s { 8struct SU_SP_s {
9 unsigned char magic[2]; 9 __u8 magic[2];
10 unsigned char skip; 10 __u8 skip;
11} __attribute__ ((packed)); 11} __attribute__ ((packed));
12 12
13struct SU_CE_s { 13struct SU_CE_s {
14 char extent[8]; 14 __u8 extent[8];
15 char offset[8]; 15 __u8 offset[8];
16 char size[8]; 16 __u8 size[8];
17}; 17};
18 18
19struct SU_ER_s { 19struct SU_ER_s {
20 unsigned char len_id; 20 __u8 len_id;
21 unsigned char len_des; 21 __u8 len_des;
22 unsigned char len_src; 22 __u8 len_src;
23 unsigned char ext_ver; 23 __u8 ext_ver;
24 char data[0]; 24 __u8 data[0];
25} __attribute__ ((packed)); 25} __attribute__ ((packed));
26 26
27struct RR_RR_s { 27struct RR_RR_s {
28 char flags[1]; 28 __u8 flags[1];
29} __attribute__ ((packed)); 29} __attribute__ ((packed));
30 30
31struct RR_PX_s { 31struct RR_PX_s {
32 char mode[8]; 32 __u8 mode[8];
33 char n_links[8]; 33 __u8 n_links[8];
34 char uid[8]; 34 __u8 uid[8];
35 char gid[8]; 35 __u8 gid[8];
36}; 36};
37 37
38struct RR_PN_s { 38struct RR_PN_s {
39 char dev_high[8]; 39 __u8 dev_high[8];
40 char dev_low[8]; 40 __u8 dev_low[8];
41}; 41};
42 42
43struct SL_component { 43struct SL_component {
44 unsigned char flags; 44 __u8 flags;
45 unsigned char len; 45 __u8 len;
46 char text[0]; 46 __u8 text[0];
47} __attribute__ ((packed)); 47} __attribute__ ((packed));
48 48
49struct RR_SL_s { 49struct RR_SL_s {
50 unsigned char flags; 50 __u8 flags;
51 struct SL_component link; 51 struct SL_component link;
52} __attribute__ ((packed)); 52} __attribute__ ((packed));
53 53
54struct RR_NM_s { 54struct RR_NM_s {
55 unsigned char flags; 55 __u8 flags;
56 char name[0]; 56 char name[0];
57} __attribute__ ((packed)); 57} __attribute__ ((packed));
58 58
59struct RR_CL_s { 59struct RR_CL_s {
60 char location[8]; 60 __u8 location[8];
61}; 61};
62 62
63struct RR_PL_s { 63struct RR_PL_s {
64 char location[8]; 64 __u8 location[8];
65}; 65};
66 66
67struct stamp { 67struct stamp {
@@ -69,15 +69,15 @@ struct stamp {
69} __attribute__ ((packed)); 69} __attribute__ ((packed));
70 70
71struct RR_TF_s { 71struct RR_TF_s {
72 char flags; 72 __u8 flags;
73 struct stamp times[0]; /* Variable number of these beasts */ 73 struct stamp times[0]; /* Variable number of these beasts */
74} __attribute__ ((packed)); 74} __attribute__ ((packed));
75 75
76/* Linux-specific extension for transparent decompression */ 76/* Linux-specific extension for transparent decompression */
77struct RR_ZF_s { 77struct RR_ZF_s {
78 char algorithm[2]; 78 __u8 algorithm[2];
79 char parms[2]; 79 __u8 parms[2];
80 char real_size[8]; 80 __u8 real_size[8];
81}; 81};
82 82
83/* 83/*
@@ -93,9 +93,9 @@ struct RR_ZF_s {
93#define TF_LONG_FORM 128 93#define TF_LONG_FORM 128
94 94
95struct rock_ridge { 95struct rock_ridge {
96 char signature[2]; 96 __u8 signature[2];
97 unsigned char len; 97 __u8 len;
98 unsigned char version; 98 __u8 version;
99 union { 99 union {
100 struct SU_SP_s SP; 100 struct SU_SP_s SP;
101 struct SU_CE_s CE; 101 struct SU_CE_s CE;
diff --git a/include/uapi/linux/iso_fs.h b/include/uapi/linux/iso_fs.h
index 4688ac4284e2..07c4c6405b3c 100644
--- a/include/uapi/linux/iso_fs.h
+++ b/include/uapi/linux/iso_fs.h
@@ -12,10 +12,10 @@
12#define ISODCL(from, to) (to - from + 1) 12#define ISODCL(from, to) (to - from + 1)
13 13
14struct iso_volume_descriptor { 14struct iso_volume_descriptor {
15 char type[ISODCL(1,1)]; /* 711 */ 15 __u8 type[ISODCL(1,1)]; /* 711 */
16 char id[ISODCL(2,6)]; 16 char id[ISODCL(2,6)];
17 char version[ISODCL(7,7)]; 17 __u8 version[ISODCL(7,7)];
18 char data[ISODCL(8,2048)]; 18 __u8 data[ISODCL(8,2048)];
19}; 19};
20 20
21/* volume descriptor types */ 21/* volume descriptor types */
@@ -26,24 +26,24 @@ struct iso_volume_descriptor {
26#define ISO_STANDARD_ID "CD001" 26#define ISO_STANDARD_ID "CD001"
27 27
28struct iso_primary_descriptor { 28struct iso_primary_descriptor {
29 char type [ISODCL ( 1, 1)]; /* 711 */ 29 __u8 type [ISODCL ( 1, 1)]; /* 711 */
30 char id [ISODCL ( 2, 6)]; 30 char id [ISODCL ( 2, 6)];
31 char version [ISODCL ( 7, 7)]; /* 711 */ 31 __u8 version [ISODCL ( 7, 7)]; /* 711 */
32 char unused1 [ISODCL ( 8, 8)]; 32 __u8 unused1 [ISODCL ( 8, 8)];
33 char system_id [ISODCL ( 9, 40)]; /* achars */ 33 char system_id [ISODCL ( 9, 40)]; /* achars */
34 char volume_id [ISODCL ( 41, 72)]; /* dchars */ 34 char volume_id [ISODCL ( 41, 72)]; /* dchars */
35 char unused2 [ISODCL ( 73, 80)]; 35 __u8 unused2 [ISODCL ( 73, 80)];
36 char volume_space_size [ISODCL ( 81, 88)]; /* 733 */ 36 __u8 volume_space_size [ISODCL ( 81, 88)]; /* 733 */
37 char unused3 [ISODCL ( 89, 120)]; 37 __u8 unused3 [ISODCL ( 89, 120)];
38 char volume_set_size [ISODCL (121, 124)]; /* 723 */ 38 __u8 volume_set_size [ISODCL (121, 124)]; /* 723 */
39 char volume_sequence_number [ISODCL (125, 128)]; /* 723 */ 39 __u8 volume_sequence_number [ISODCL (125, 128)]; /* 723 */
40 char logical_block_size [ISODCL (129, 132)]; /* 723 */ 40 __u8 logical_block_size [ISODCL (129, 132)]; /* 723 */
41 char path_table_size [ISODCL (133, 140)]; /* 733 */ 41 __u8 path_table_size [ISODCL (133, 140)]; /* 733 */
42 char type_l_path_table [ISODCL (141, 144)]; /* 731 */ 42 __u8 type_l_path_table [ISODCL (141, 144)]; /* 731 */
43 char opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */ 43 __u8 opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */
44 char type_m_path_table [ISODCL (149, 152)]; /* 732 */ 44 __u8 type_m_path_table [ISODCL (149, 152)]; /* 732 */
45 char opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */ 45 __u8 opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */
46 char root_directory_record [ISODCL (157, 190)]; /* 9.1 */ 46 __u8 root_directory_record [ISODCL (157, 190)]; /* 9.1 */
47 char volume_set_id [ISODCL (191, 318)]; /* dchars */ 47 char volume_set_id [ISODCL (191, 318)]; /* dchars */
48 char publisher_id [ISODCL (319, 446)]; /* achars */ 48 char publisher_id [ISODCL (319, 446)]; /* achars */
49 char preparer_id [ISODCL (447, 574)]; /* achars */ 49 char preparer_id [ISODCL (447, 574)]; /* achars */
@@ -51,36 +51,36 @@ struct iso_primary_descriptor {
51 char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */ 51 char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */
52 char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */ 52 char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */
53 char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */ 53 char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */
54 char creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */ 54 __u8 creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */
55 char modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */ 55 __u8 modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */
56 char expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */ 56 __u8 expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */
57 char effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */ 57 __u8 effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */
58 char file_structure_version [ISODCL (882, 882)]; /* 711 */ 58 __u8 file_structure_version [ISODCL (882, 882)]; /* 711 */
59 char unused4 [ISODCL (883, 883)]; 59 __u8 unused4 [ISODCL (883, 883)];
60 char application_data [ISODCL (884, 1395)]; 60 __u8 application_data [ISODCL (884, 1395)];
61 char unused5 [ISODCL (1396, 2048)]; 61 __u8 unused5 [ISODCL (1396, 2048)];
62}; 62};
63 63
64/* Almost the same as the primary descriptor but two fields are specified */ 64/* Almost the same as the primary descriptor but two fields are specified */
65struct iso_supplementary_descriptor { 65struct iso_supplementary_descriptor {
66 char type [ISODCL ( 1, 1)]; /* 711 */ 66 __u8 type [ISODCL ( 1, 1)]; /* 711 */
67 char id [ISODCL ( 2, 6)]; 67 char id [ISODCL ( 2, 6)];
68 char version [ISODCL ( 7, 7)]; /* 711 */ 68 __u8 version [ISODCL ( 7, 7)]; /* 711 */
69 char flags [ISODCL ( 8, 8)]; /* 853 */ 69 __u8 flags [ISODCL ( 8, 8)]; /* 853 */
70 char system_id [ISODCL ( 9, 40)]; /* achars */ 70 char system_id [ISODCL ( 9, 40)]; /* achars */
71 char volume_id [ISODCL ( 41, 72)]; /* dchars */ 71 char volume_id [ISODCL ( 41, 72)]; /* dchars */
72 char unused2 [ISODCL ( 73, 80)]; 72 __u8 unused2 [ISODCL ( 73, 80)];
73 char volume_space_size [ISODCL ( 81, 88)]; /* 733 */ 73 __u8 volume_space_size [ISODCL ( 81, 88)]; /* 733 */
74 char escape [ISODCL ( 89, 120)]; /* 856 */ 74 __u8 escape [ISODCL ( 89, 120)]; /* 856 */
75 char volume_set_size [ISODCL (121, 124)]; /* 723 */ 75 __u8 volume_set_size [ISODCL (121, 124)]; /* 723 */
76 char volume_sequence_number [ISODCL (125, 128)]; /* 723 */ 76 __u8 volume_sequence_number [ISODCL (125, 128)]; /* 723 */
77 char logical_block_size [ISODCL (129, 132)]; /* 723 */ 77 __u8 logical_block_size [ISODCL (129, 132)]; /* 723 */
78 char path_table_size [ISODCL (133, 140)]; /* 733 */ 78 __u8 path_table_size [ISODCL (133, 140)]; /* 733 */
79 char type_l_path_table [ISODCL (141, 144)]; /* 731 */ 79 __u8 type_l_path_table [ISODCL (141, 144)]; /* 731 */
80 char opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */ 80 __u8 opt_type_l_path_table [ISODCL (145, 148)]; /* 731 */
81 char type_m_path_table [ISODCL (149, 152)]; /* 732 */ 81 __u8 type_m_path_table [ISODCL (149, 152)]; /* 732 */
82 char opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */ 82 __u8 opt_type_m_path_table [ISODCL (153, 156)]; /* 732 */
83 char root_directory_record [ISODCL (157, 190)]; /* 9.1 */ 83 __u8 root_directory_record [ISODCL (157, 190)]; /* 9.1 */
84 char volume_set_id [ISODCL (191, 318)]; /* dchars */ 84 char volume_set_id [ISODCL (191, 318)]; /* dchars */
85 char publisher_id [ISODCL (319, 446)]; /* achars */ 85 char publisher_id [ISODCL (319, 446)]; /* achars */
86 char preparer_id [ISODCL (447, 574)]; /* achars */ 86 char preparer_id [ISODCL (447, 574)]; /* achars */
@@ -88,54 +88,54 @@ struct iso_supplementary_descriptor {
88 char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */ 88 char copyright_file_id [ISODCL (703, 739)]; /* 7.5 dchars */
89 char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */ 89 char abstract_file_id [ISODCL (740, 776)]; /* 7.5 dchars */
90 char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */ 90 char bibliographic_file_id [ISODCL (777, 813)]; /* 7.5 dchars */
91 char creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */ 91 __u8 creation_date [ISODCL (814, 830)]; /* 8.4.26.1 */
92 char modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */ 92 __u8 modification_date [ISODCL (831, 847)]; /* 8.4.26.1 */
93 char expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */ 93 __u8 expiration_date [ISODCL (848, 864)]; /* 8.4.26.1 */
94 char effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */ 94 __u8 effective_date [ISODCL (865, 881)]; /* 8.4.26.1 */
95 char file_structure_version [ISODCL (882, 882)]; /* 711 */ 95 __u8 file_structure_version [ISODCL (882, 882)]; /* 711 */
96 char unused4 [ISODCL (883, 883)]; 96 __u8 unused4 [ISODCL (883, 883)];
97 char application_data [ISODCL (884, 1395)]; 97 __u8 application_data [ISODCL (884, 1395)];
98 char unused5 [ISODCL (1396, 2048)]; 98 __u8 unused5 [ISODCL (1396, 2048)];
99}; 99};
100 100
101 101
102#define HS_STANDARD_ID "CDROM" 102#define HS_STANDARD_ID "CDROM"
103 103
104struct hs_volume_descriptor { 104struct hs_volume_descriptor {
105 char foo [ISODCL ( 1, 8)]; /* 733 */ 105 __u8 foo [ISODCL ( 1, 8)]; /* 733 */
106 char type [ISODCL ( 9, 9)]; /* 711 */ 106 __u8 type [ISODCL ( 9, 9)]; /* 711 */
107 char id [ISODCL ( 10, 14)]; 107 char id [ISODCL ( 10, 14)];
108 char version [ISODCL ( 15, 15)]; /* 711 */ 108 __u8 version [ISODCL ( 15, 15)]; /* 711 */
109 char data[ISODCL(16,2048)]; 109 __u8 data[ISODCL(16,2048)];
110}; 110};
111 111
112 112
113struct hs_primary_descriptor { 113struct hs_primary_descriptor {
114 char foo [ISODCL ( 1, 8)]; /* 733 */ 114 __u8 foo [ISODCL ( 1, 8)]; /* 733 */
115 char type [ISODCL ( 9, 9)]; /* 711 */ 115 __u8 type [ISODCL ( 9, 9)]; /* 711 */
116 char id [ISODCL ( 10, 14)]; 116 __u8 id [ISODCL ( 10, 14)];
117 char version [ISODCL ( 15, 15)]; /* 711 */ 117 __u8 version [ISODCL ( 15, 15)]; /* 711 */
118 char unused1 [ISODCL ( 16, 16)]; /* 711 */ 118 __u8 unused1 [ISODCL ( 16, 16)]; /* 711 */
119 char system_id [ISODCL ( 17, 48)]; /* achars */ 119 char system_id [ISODCL ( 17, 48)]; /* achars */
120 char volume_id [ISODCL ( 49, 80)]; /* dchars */ 120 char volume_id [ISODCL ( 49, 80)]; /* dchars */
121 char unused2 [ISODCL ( 81, 88)]; /* 733 */ 121 __u8 unused2 [ISODCL ( 81, 88)]; /* 733 */
122 char volume_space_size [ISODCL ( 89, 96)]; /* 733 */ 122 __u8 volume_space_size [ISODCL ( 89, 96)]; /* 733 */
123 char unused3 [ISODCL ( 97, 128)]; /* 733 */ 123 __u8 unused3 [ISODCL ( 97, 128)]; /* 733 */
124 char volume_set_size [ISODCL (129, 132)]; /* 723 */ 124 __u8 volume_set_size [ISODCL (129, 132)]; /* 723 */
125 char volume_sequence_number [ISODCL (133, 136)]; /* 723 */ 125 __u8 volume_sequence_number [ISODCL (133, 136)]; /* 723 */
126 char logical_block_size [ISODCL (137, 140)]; /* 723 */ 126 __u8 logical_block_size [ISODCL (137, 140)]; /* 723 */
127 char path_table_size [ISODCL (141, 148)]; /* 733 */ 127 __u8 path_table_size [ISODCL (141, 148)]; /* 733 */
128 char type_l_path_table [ISODCL (149, 152)]; /* 731 */ 128 __u8 type_l_path_table [ISODCL (149, 152)]; /* 731 */
129 char unused4 [ISODCL (153, 180)]; /* 733 */ 129 __u8 unused4 [ISODCL (153, 180)]; /* 733 */
130 char root_directory_record [ISODCL (181, 214)]; /* 9.1 */ 130 __u8 root_directory_record [ISODCL (181, 214)]; /* 9.1 */
131}; 131};
132 132
133/* We use this to help us look up the parent inode numbers. */ 133/* We use this to help us look up the parent inode numbers. */
134 134
135struct iso_path_table{ 135struct iso_path_table{
136 unsigned char name_len[2]; /* 721 */ 136 __u8 name_len[2]; /* 721 */
137 char extent[4]; /* 731 */ 137 __u8 extent[4]; /* 731 */
138 char parent[2]; /* 721 */ 138 __u8 parent[2]; /* 721 */
139 char name[0]; 139 char name[0];
140} __attribute__((packed)); 140} __attribute__((packed));
141 141
@@ -143,16 +143,16 @@ struct iso_path_table{
143 there is an extra reserved byte after the flags */ 143 there is an extra reserved byte after the flags */
144 144
145struct iso_directory_record { 145struct iso_directory_record {
146 char length [ISODCL (1, 1)]; /* 711 */ 146 __u8 length [ISODCL (1, 1)]; /* 711 */
147 char ext_attr_length [ISODCL (2, 2)]; /* 711 */ 147 __u8 ext_attr_length [ISODCL (2, 2)]; /* 711 */
148 char extent [ISODCL (3, 10)]; /* 733 */ 148 __u8 extent [ISODCL (3, 10)]; /* 733 */
149 char size [ISODCL (11, 18)]; /* 733 */ 149 __u8 size [ISODCL (11, 18)]; /* 733 */
150 char date [ISODCL (19, 25)]; /* 7 by 711 */ 150 __u8 date [ISODCL (19, 25)]; /* 7 by 711 */
151 char flags [ISODCL (26, 26)]; 151 __u8 flags [ISODCL (26, 26)];
152 char file_unit_size [ISODCL (27, 27)]; /* 711 */ 152 __u8 file_unit_size [ISODCL (27, 27)]; /* 711 */
153 char interleave [ISODCL (28, 28)]; /* 711 */ 153 __u8 interleave [ISODCL (28, 28)]; /* 711 */
154 char volume_sequence_number [ISODCL (29, 32)]; /* 723 */ 154 __u8 volume_sequence_number [ISODCL (29, 32)]; /* 723 */
155 unsigned char name_len [ISODCL (33, 33)]; /* 711 */ 155 __u8 name_len [ISODCL (33, 33)]; /* 711 */
156 char name [0]; 156 char name [0];
157} __attribute__((packed)); 157} __attribute__((packed));
158 158