Home | History | Annotate | Download | only in iso9660
      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