ISO9660
struct iso9660_datetime { uint8_t year; uint8_t month; uint8_t day; uint8_t hour; uint8_t minute; uint8_t second; int8_t gmt_offset;};struct iso9660_dir_record { uint8_t length; uint8_t ext_attr_length; uint32_t extent_lba_le; uint32_t extent_lba_be; uint32_t size_le; uint32_t size_be; struct iso9660_datetime datetime; uint8_t flags; uint8_t file_unit_size; uint8_t interleave_gap_size; uint16_t vol_seq_num_le; uint16_t vol_seq_num_be; uint8_t name_len; char name[];};struct iso9660_dir_record referenced types:
struct iso9660_pvd { uint8_t type; char id[5]; uint8_t version; uint8_t unused1; char system_id[32]; char volume_id[32]; uint8_t unused2[8]; uint32_t volume_space_le; uint32_t volume_space_be; uint8_t unused3[32]; uint16_t vol_set_size_le; uint16_t vol_set_size_be; uint16_t vol_seq_num_le; uint16_t vol_seq_num_be; uint16_t logical_block_size_le; uint16_t logical_block_size_be; uint32_t path_table_size_le; uint32_t path_table_size_be; uint32_t l_path_table_loc; uint32_t opt_l_path_table_loc; uint32_t m_path_table_loc; uint32_t opt_m_path_table_loc; struct iso9660_dir_record root_dir_record;};struct iso9660_pvd referenced types:
struct iso9660_fs { struct generic_partition *partition; struct generic_disk *disk; struct iso9660_pvd *pvd; uint32_t root_lba; uint32_t root_size; uint32_t block_size;};struct iso9660_fs referenced types:
Defines
Section titled “Defines”#define ISO9660_PVD_SECTOR 16#define ISO9660_SECTOR_SIZE 2048