/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _ISOFS_FS_H
#define _ISOFS_FS_H
#include <linux/types.h>
#include <linux/magic.h>
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ISODCL(from, to) (to - from + 1)
struct iso_volume_descriptor {
 char type[ISODCL(1,1)];
 char id[ISODCL(2,6)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char version[ISODCL(7,7)];
 char data[ISODCL(8,2048)];
};
#define ISO_VD_PRIMARY 1
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ISO_VD_SUPPLEMENTARY 2
#define ISO_VD_END 255
#define ISO_STANDARD_ID "CD001"
struct iso_primary_descriptor {
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char type [ISODCL ( 1, 1)];
 char id [ISODCL ( 2, 6)];
 char version [ISODCL ( 7, 7)];
 char unused1 [ISODCL ( 8, 8)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char system_id [ISODCL ( 9, 40)];
 char volume_id [ISODCL ( 41, 72)];
 char unused2 [ISODCL ( 73, 80)];
 char volume_space_size [ISODCL ( 81, 88)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char unused3 [ISODCL ( 89, 120)];
 char volume_set_size [ISODCL (121, 124)];
 char volume_sequence_number [ISODCL (125, 128)];
 char logical_block_size [ISODCL (129, 132)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char path_table_size [ISODCL (133, 140)];
 char type_l_path_table [ISODCL (141, 144)];
 char opt_type_l_path_table [ISODCL (145, 148)];
 char type_m_path_table [ISODCL (149, 152)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char opt_type_m_path_table [ISODCL (153, 156)];
 char root_directory_record [ISODCL (157, 190)];
 char volume_set_id [ISODCL (191, 318)];
 char publisher_id [ISODCL (319, 446)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char preparer_id [ISODCL (447, 574)];
 char application_id [ISODCL (575, 702)];
 char copyright_file_id [ISODCL (703, 739)];
 char abstract_file_id [ISODCL (740, 776)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char bibliographic_file_id [ISODCL (777, 813)];
 char creation_date [ISODCL (814, 830)];
 char modification_date [ISODCL (831, 847)];
 char expiration_date [ISODCL (848, 864)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char effective_date [ISODCL (865, 881)];
 char file_structure_version [ISODCL (882, 882)];
 char unused4 [ISODCL (883, 883)];
 char application_data [ISODCL (884, 1395)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char unused5 [ISODCL (1396, 2048)];
};
struct iso_supplementary_descriptor {
 char type [ISODCL ( 1, 1)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char id [ISODCL ( 2, 6)];
 char version [ISODCL ( 7, 7)];
 char flags [ISODCL ( 8, 8)];
 char system_id [ISODCL ( 9, 40)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char volume_id [ISODCL ( 41, 72)];
 char unused2 [ISODCL ( 73, 80)];
 char volume_space_size [ISODCL ( 81, 88)];
 char escape [ISODCL ( 89, 120)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char volume_set_size [ISODCL (121, 124)];
 char volume_sequence_number [ISODCL (125, 128)];
 char logical_block_size [ISODCL (129, 132)];
 char path_table_size [ISODCL (133, 140)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char type_l_path_table [ISODCL (141, 144)];
 char opt_type_l_path_table [ISODCL (145, 148)];
 char type_m_path_table [ISODCL (149, 152)];
 char opt_type_m_path_table [ISODCL (153, 156)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char root_directory_record [ISODCL (157, 190)];
 char volume_set_id [ISODCL (191, 318)];
 char publisher_id [ISODCL (319, 446)];
 char preparer_id [ISODCL (447, 574)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char application_id [ISODCL (575, 702)];
 char copyright_file_id [ISODCL (703, 739)];
 char abstract_file_id [ISODCL (740, 776)];
 char bibliographic_file_id [ISODCL (777, 813)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char creation_date [ISODCL (814, 830)];
 char modification_date [ISODCL (831, 847)];
 char expiration_date [ISODCL (848, 864)];
 char effective_date [ISODCL (865, 881)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char file_structure_version [ISODCL (882, 882)];
 char unused4 [ISODCL (883, 883)];
 char application_data [ISODCL (884, 1395)];
 char unused5 [ISODCL (1396, 2048)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
#define HS_STANDARD_ID "CDROM"
struct hs_volume_descriptor {
 char foo [ISODCL ( 1, 8)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char type [ISODCL ( 9, 9)];
 char id [ISODCL ( 10, 14)];
 char version [ISODCL ( 15, 15)];
 char data[ISODCL(16,2048)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
};
struct hs_primary_descriptor {
 char foo [ISODCL ( 1, 8)];
 char type [ISODCL ( 9, 9)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char id [ISODCL ( 10, 14)];
 char version [ISODCL ( 15, 15)];
 char unused1 [ISODCL ( 16, 16)];
 char system_id [ISODCL ( 17, 48)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char volume_id [ISODCL ( 49, 80)];
 char unused2 [ISODCL ( 81, 88)];
 char volume_space_size [ISODCL ( 89, 96)];
 char unused3 [ISODCL ( 97, 128)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char volume_set_size [ISODCL (129, 132)];
 char volume_sequence_number [ISODCL (133, 136)];
 char logical_block_size [ISODCL (137, 140)];
 char path_table_size [ISODCL (141, 148)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char type_l_path_table [ISODCL (149, 152)];
 char unused4 [ISODCL (153, 180)];
 char root_directory_record [ISODCL (181, 214)];
};
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
struct iso_path_table{
 unsigned char name_len[2];
 char extent[4];
 char parent[2];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char name[0];
} __attribute__((packed));
struct iso_directory_record {
 char length [ISODCL (1, 1)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char ext_attr_length [ISODCL (2, 2)];
 char extent [ISODCL (3, 10)];
 char size [ISODCL (11, 18)];
 char date [ISODCL (19, 25)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 char flags [ISODCL (26, 26)];
 char file_unit_size [ISODCL (27, 27)];
 char interleave [ISODCL (28, 28)];
 char volume_sequence_number [ISODCL (29, 32)];
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 unsigned char name_len [ISODCL (33, 33)];
 char name [0];
} __attribute__((packed));
#define ISOFS_BLOCK_BITS 11
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
#define ISOFS_BLOCK_SIZE 2048
#define ISOFS_BUFFER_SIZE(INODE) ((INODE)->i_sb->s_blocksize)
#define ISOFS_BUFFER_BITS(INODE) ((INODE)->i_sb->s_blocksize_bits)
#endif
/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
