iso9660: Add support for Rock Ridge filenames
[syslinux.git] / core / fs / iso9660 / iso9660_fs.h
blob402656428eb117e6ee34b09d23386948303a017c
1 #ifndef ISO9660_FS_H
2 #define ISO9660_FS_H
4 #include <klibc/compiler.h>
5 #include <stdint.h>
7 /* Boot info table */
8 struct iso_boot_info {
9 uint32_t pvd; /* LBA of primary volume descriptor */
10 uint32_t file; /* LBA of boot file */
11 uint32_t length; /* Length of boot file */
12 uint32_t csum; /* Checksum of boot file */
13 uint32_t reserved[10]; /* Currently unused */
16 extern struct iso_boot_info iso_boot_info; /* In isolinux.asm */
18 /* The root dir entry offset in the primary volume descriptor */
19 #define ROOT_DIR_OFFSET 156
21 struct iso_dir_entry {
22 uint8_t length; /* 00 */
23 uint8_t ext_attr_length; /* 01 */
24 uint32_t extent_le; /* 02 */
25 uint32_t extent_be; /* 06 */
26 uint32_t size_le; /* 0a */
27 uint32_t size_be; /* 0e */
28 uint8_t date[7]; /* 12 */
29 uint8_t flags; /* 19 */
30 uint8_t file_unit_size; /* 1a */
31 uint8_t interleave; /* 1b */
32 uint16_t volume_sequence_number_le; /* 1c */
33 uint16_t volume_sequence_number_be; /* 1e */
34 uint8_t name_len; /* 20 */
35 char name[0]; /* 21 */
36 } __packed;
38 struct iso_sb_info {
39 struct iso_dir_entry root;
41 int do_rr; /* 1 , 2 = try to process Rock Ridge info , 0 = do not.
42 2 indicates that the id of RRIP 1.12 was found.
44 int susp_skip; /* Skip length from SUSP entry SP */
48 * iso9660 private inode information
50 struct iso9660_pvt_inode {
51 uint32_t lba; /* Starting LBA of file data area*/
54 #define PVT(i) ((struct iso9660_pvt_inode *)((i)->pvt))
56 #endif /* iso9660_fs.h */