summaryrefslogtreecommitdiffstats
path: root/contrib/syslinux-4.02/core/fs/iso9660/iso9660_fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/syslinux-4.02/core/fs/iso9660/iso9660_fs.h')
-rw-r--r--contrib/syslinux-4.02/core/fs/iso9660/iso9660_fs.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/core/fs/iso9660/iso9660_fs.h b/contrib/syslinux-4.02/core/fs/iso9660/iso9660_fs.h
new file mode 100644
index 0000000..a365fa1
--- /dev/null
+++ b/contrib/syslinux-4.02/core/fs/iso9660/iso9660_fs.h
@@ -0,0 +1,51 @@
+#ifndef ISO9660_FS_H
+#define ISO9660_FS_H
+
+#include <klibc/compiler.h>
+#include <stdint.h>
+
+/* Boot info table */
+struct iso_boot_info {
+ uint32_t pvd; /* LBA of primary volume descriptor */
+ uint32_t file; /* LBA of boot file */
+ uint32_t length; /* Length of boot file */
+ uint32_t csum; /* Checksum of boot file */
+ uint32_t reserved[10]; /* Currently unused */
+};
+
+extern struct iso_boot_info iso_boot_info; /* In isolinux.asm */
+
+/* The root dir entry offset in the primary volume descriptor */
+#define ROOT_DIR_OFFSET 156
+
+struct iso_dir_entry {
+ uint8_t length; /* 00 */
+ uint8_t ext_attr_length; /* 01 */
+ uint32_t extent_le; /* 02 */
+ uint32_t extent_be; /* 06 */
+ uint32_t size_le; /* 0a */
+ uint32_t size_be; /* 0e */
+ uint8_t date[7]; /* 12 */
+ uint8_t flags; /* 19 */
+ uint8_t file_unit_size; /* 1a */
+ uint8_t interleave; /* 1b */
+ uint16_t volume_sequence_number_le; /* 1c */
+ uint16_t volume_sequence_number_be; /* 1e */
+ uint8_t name_len; /* 20 */
+ char name[0]; /* 21 */
+} __packed;
+
+struct iso_sb_info {
+ struct iso_dir_entry root;
+};
+
+/*
+ * iso9660 private inode information
+ */
+struct iso9660_pvt_inode {
+ uint32_t lba; /* Starting LBA of file data area*/
+};
+
+#define PVT(i) ((struct iso9660_pvt_inode *)((i)->pvt))
+
+#endif /* iso9660_fs.h */