Skip to content

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:

#define ISO9660_PVD_SECTOR 16
#define ISO9660_SECTOR_SIZE 2048