blob: d94c7824a63f6cba6c233e7195c736be982566fa [file] [log] [blame]
Haojian Zhuang91f56462016-07-28 14:19:36 +08001/*
Antonio Nino Diaz4b32e622018-08-16 16:52:57 +01002 * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved.
Haojian Zhuang91f56462016-07-28 14:19:36 +08003 *
dp-armfa3cf0b2017-05-03 09:38:09 +01004 * SPDX-License-Identifier: BSD-3-Clause
Haojian Zhuang91f56462016-07-28 14:19:36 +08005 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef PARTITION_H
8#define PARTITION_H
Haojian Zhuang91f56462016-07-28 14:19:36 +08009
Antonio Nino Diaz4b32e622018-08-16 16:52:57 +010010#include <stdint.h>
Haojian Zhuang91f56462016-07-28 14:19:36 +080011
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000012#include <lib/cassert.h>
13
Haojian Zhuang91f56462016-07-28 14:19:36 +080014#if !PLAT_PARTITION_MAX_ENTRIES
15# define PLAT_PARTITION_MAX_ENTRIES 128
16#endif /* PLAT_PARTITION_MAX_ENTRIES */
17
18CASSERT(PLAT_PARTITION_MAX_ENTRIES <= 128, assert_plat_partition_max_entries);
19
20#define PARTITION_BLOCK_SIZE 512
21
22#define EFI_NAMELEN 36
23
24typedef struct partition_entry {
25 uint64_t start;
26 uint64_t length;
27 char name[EFI_NAMELEN];
28} partition_entry_t;
29
30typedef struct partition_entry_list {
31 partition_entry_t list[PLAT_PARTITION_MAX_ENTRIES];
32 int entry_count;
33} partition_entry_list_t;
34
35int load_partition_table(unsigned int image_id);
36const partition_entry_t *get_partition_entry(const char *name);
37const partition_entry_list_t *get_partition_entry_list(void);
38void partition_init(unsigned int image_id);
39
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000040#endif /* PARTITION_H */