mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-23 04:48:14 +00:00

This patch adds a new include/export/ directory meant for inclusion in third-party code. This is useful for cases where third-party code needs to interact with TF-A interfaces and data structures (such as a custom BL2-implementation like coreboot handing off to BL31). Directly including headers from the TF-A repository avoids having to duplicate all these definitions (and risk them going stale), but with the current header structure this is not possible because handoff API definitions are too deeply intertwined with other TF code/headers and chain-include other headers that will not be available in the other environment. The new approach aims to solve this by separating only the parts that are really needed into these special headers that are self-contained and will not chain-include other (non-export) headers. TF-A code should never include them directly but should instead always include the respective wrapper header, which will include the required prerequisites (like <stdint.h>) before including the export header. Third-party code can include the export headers via its own wrappers that make sure the necessary definitions are available in whatever way that environment can provide them. Change-Id: Ifd769320ba51371439a8e5dd5b79c2516c3b43ab Signed-off-by: Julius Werner <jwerner@chromium.org>
42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
/*
|
|
* Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef ARM_TRUSTED_FIRMWARE_EXPORT_COMMON_PARAM_HEADER_EXP_H
|
|
#define ARM_TRUSTED_FIRMWARE_EXPORT_COMMON_PARAM_HEADER_EXP_H
|
|
|
|
/* EXPORT HEADER -- See include/export/README for details! -- EXPORT HEADER */
|
|
|
|
#include "../lib/utils_def_exp.h"
|
|
|
|
/* Param header types */
|
|
#define PARAM_EP U(0x01)
|
|
#define PARAM_IMAGE_BINARY U(0x02)
|
|
#define PARAM_BL31 U(0x03)
|
|
#define PARAM_BL_LOAD_INFO U(0x04)
|
|
#define PARAM_BL_PARAMS U(0x05)
|
|
#define PARAM_PSCI_LIB_ARGS U(0x06)
|
|
#define PARAM_SP_IMAGE_BOOT_INFO U(0x07)
|
|
|
|
/* Param header version */
|
|
#define PARAM_VERSION_1 U(0x01)
|
|
#define PARAM_VERSION_2 U(0x02)
|
|
|
|
#ifndef __ASSEMBLER__
|
|
|
|
/***************************************************************************
|
|
* This structure provides version information and the size of the
|
|
* structure, attributes for the structure it represents
|
|
***************************************************************************/
|
|
typedef struct param_header {
|
|
uint8_t type; /* type of the structure */
|
|
uint8_t version; /* version of this structure */
|
|
uint16_t size; /* size of this structure in bytes */
|
|
uint32_t attr; /* attributes: unused bits SBZ */
|
|
} param_header_t;
|
|
|
|
#endif /*__ASSEMBLER__*/
|
|
|
|
#endif /* ARM_TRUSTED_FIRMWARE_EXPORT_COMMON_PARAM_HEADER_EXP_H */
|