1/* @title: GUID Partition Table */
2#include <compiler.h>
3#include <stdint.h>
4#pragma once
5
6struct gpt_header {
7 uint64_t signature;
8 uint32_t revision;
9 uint32_t header_size;
10 uint32_t header_crc32;
11 uint32_t reserved;
12 uint64_t current_lba;
13 uint64_t backup_lba;
14 uint64_t first_usable_lba;
15 uint64_t last_usable_lba;
16 uint8_t disk_guid[16];
17 uint64_t partition_entry_lba;
18 uint32_t num_partition_entries;
19 uint32_t size_of_partition_entry;
20 uint32_t partition_crc32;
21 uint8_t reserved2[420];
22} __packed;
23
24struct gpt_partition_entry {
25 uint8_t type_guid[16];
26 uint8_t unique_guid[16];
27 uint64_t first_lba;
28 uint64_t last_lba;
29 uint64_t attributes;
30 uint16_t name[36]; // UTF-16
31} __packed;
32