"bl1/git@web.lueluesay.top:root/arm-trusted-firmware.git" did not exist on "f999faca06e8ff5d6d23a08d844c6a4ad38e3000"
  • Antonio Nino Diaz's avatar
    Standardise header guards across codebase · c3cf06f1
    Antonio Nino Diaz authored
    
    All identifiers, regardless of use, that start with two underscores are
    reserved. This means they can't be used in header guards.
    
    The style that this project is now to use the full name of the file in
    capital letters followed by 'H'. For example, for a file called
    "uart_example.h", the header guard is UART_EXAMPLE_H.
    
    The exceptions are files that are imported from other projects:
    
    - CryptoCell driver
    - dt-bindings folders
    - zlib headers
    
    Change-Id: I50561bf6c88b491ec440d0c8385c74650f3c106e
    Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
    c3cf06f1
gpt.h 1.28 KB
/*
 * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef GPT_H
#define GPT_H

#include <partition.h>

#define PARTITION_TYPE_GPT		0xee
#define GPT_HEADER_OFFSET		PARTITION_BLOCK_SIZE
#define GPT_ENTRY_OFFSET		(GPT_HEADER_OFFSET +		\
					 PARTITION_BLOCK_SIZE)
#define GUID_LEN			16

#define GPT_SIGNATURE			"EFI PART"

typedef struct gpt_entry {
	unsigned char		type_uuid[GUID_LEN];
	unsigned char		unique_uuid[GUID_LEN];
	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;
	unsigned char		disk_uuid[16];
	/* 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 */