• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef ISO9660_FS_H
2 #define ISO9660_FS_H
3 
4 #include <klibc/compiler.h>
5 #include <stdint.h>
6 
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 */
14 };
15 
16 extern struct iso_boot_info iso_boot_info; /* In isolinux.asm */
17 
18 /* The root dir entry offset in the primary volume descriptor */
19 #define ROOT_DIR_OFFSET   156
20 
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;
37 
38 struct iso_sb_info {
39     struct iso_dir_entry root;
40 
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.
43                      */
44     int susp_skip;   /* Skip length from SUSP entry SP */
45 };
46 
47 /*
48  * iso9660 private inode information
49  */
50 struct iso9660_pvt_inode {
51     uint32_t lba;		/* Starting LBA of file data area*/
52 };
53 
54 #define PVT(i) ((struct iso9660_pvt_inode *)((i)->pvt))
55 
56 #endif /* iso9660_fs.h */
57