summaryrefslogtreecommitdiff
path: root/com32/include/syslinux
diff options
context:
space:
mode:
authorShao Miller <shao.miller@yrdsb.edu.on.ca>2010-06-28 06:16:27 -0400
committerShao Miller <shao.miller@yrdsb.edu.on.ca>2010-07-10 01:03:07 -0400
commita3e5be2ccec7c50e771f4807c8d3156c2c97330c (patch)
treedc96c6da5a07a6b6bae9331385b115e766a5cdff /com32/include/syslinux
parent2cb2149a7c579ad8732053bd3391512daf253502 (diff)
downloadsyslinux-a3e5be2ccec7c50e771f4807c8d3156c2c97330c.tar.gz
chain.c32, libcom32: Move struct gpt as disk_gpt_header
Also moved gpt_sig_magic as disk_gpt_sig_magic. Moving portions of chain.c32 into libcom32. Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
Diffstat (limited to 'com32/include/syslinux')
-rw-r--r--com32/include/syslinux/disk.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/com32/include/syslinux/disk.h b/com32/include/syslinux/disk.h
index 7c4e276f..37641d06 100644
--- a/com32/include/syslinux/disk.h
+++ b/com32/include/syslinux/disk.h
@@ -112,6 +112,33 @@ struct disk_gpt_part_entry {
char name[72];
} __attribute__ ((packed));
+/* A GPT header */
+struct disk_gpt_header {
+ char sig[8];
+ union {
+ struct {
+ uint16_t minor;
+ uint16_t major;
+ } fields __attribute__ ((packed));
+ uint32_t uint32;
+ char raw[4];
+ } rev __attribute__ ((packed));
+ uint32_t hdr_size;
+ uint32_t chksum;
+ char reserved1[4];
+ uint64_t lba_cur;
+ uint64_t lba_alt;
+ uint64_t lba_first_usable;
+ uint64_t lba_last_usable;
+ struct guid disk_guid;
+ uint64_t lba_table;
+ uint32_t part_count;
+ uint32_t part_size;
+ uint32_t table_chksum;
+ char reserved2[1];
+} __attribute__ ((packed));
+static const char disk_gpt_sig_magic[] = "EFI PART";
+
extern int disk_int13_retry(const com32sys_t * inreg, com32sys_t * outreg);
extern int disk_get_params(int disk, struct disk_info *const diskinfo);
extern void *disk_read_sectors(const struct disk_info *const diskinfo,