/* * Copyright (c) 2016-2022, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #ifndef PARTITION_H #define PARTITION_H #include #include "efi.h" #include "uuid.h" #if !PLAT_PARTITION_MAX_ENTRIES #define PLAT_PARTITION_MAX_ENTRIES 16 #endif /* PLAT_PARTITION_MAX_ENTRIES */ #if !PLAT_PARTITION_BLOCK_SIZE #define PLAT_PARTITION_BLOCK_SIZE 512 #endif /* PLAT_PARTITION_BLOCK_SIZE */ #define LEGACY_PARTITION_BLOCK_SIZE 512 #define DEFAULT_GPT_HEADER_SIZE 92 typedef struct partition_entry { uint64_t start; uint64_t length; char name[EFI_NAMELEN]; struct efi_guid part_guid; struct efi_guid type_guid; } partition_entry_t; typedef struct partition_entry_list { partition_entry_t list[PLAT_PARTITION_MAX_ENTRIES]; int entry_count; } partition_entry_list_t; int load_partition_table(unsigned int image_id); const partition_entry_t *get_partition_entry(const char *name); const partition_entry_t *get_partition_entry_by_type(const uuid_t *type_guid); const partition_entry_t *get_partition_replica_by_type(const uuid_t *type_uuid); const partition_entry_t *get_partition_entry_by_uuid(const uuid_t *part_uuid); const partition_entry_list_t *get_partition_entry_list(void); void partition_init(unsigned int image_id); #endif /* PARTITION_H */