12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /*
- * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #ifndef GPT_H
- #define GPT_H
- #include <drivers/partition/efi.h>
- #include <drivers/partition/partition.h>
- #include <tools_share/uuid.h>
- #define PARTITION_TYPE_GPT 0xee
- #define GPT_HEADER_OFFSET PLAT_PARTITION_BLOCK_SIZE
- #define GPT_ENTRY_OFFSET (GPT_HEADER_OFFSET + \
- PLAT_PARTITION_BLOCK_SIZE)
- #define GPT_SIGNATURE "EFI PART"
- typedef struct gpt_entry {
- struct efi_guid type_uuid;
- struct efi_guid unique_uuid;
- unsigned long long first_lba;
- unsigned long long last_lba;
- unsigned long long attr;
- unsigned short name[EFI_NAMELEN];
- } gpt_entry_t;
- typedef struct gpt_header {
- unsigned char signature[8];
- unsigned int revision;
- unsigned int size;
- unsigned int header_crc;
- unsigned int reserved;
- unsigned long long current_lba;
- unsigned long long backup_lba;
- unsigned long long first_lba;
- unsigned long long last_lba;
- struct efi_guid disk_uuid;
- /* starting LBA of array of partition entries */
- unsigned long long part_lba;
- /* number of partition entries in array */
- unsigned int list_num;
- /* size of a single partition entry (usually 128) */
- unsigned int part_size;
- unsigned int part_crc;
- } gpt_header_t;
- int parse_gpt_entry(gpt_entry_t *gpt_entry, partition_entry_t *entry);
- #endif /* GPT_H */
|