xref: /aosp_15_r20/external/arm-trusted-firmware/include/common/param_header.h (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong Park /*
2*54fd6939SJiyong Park  * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
3*54fd6939SJiyong Park  *
4*54fd6939SJiyong Park  * SPDX-License-Identifier: BSD-3-Clause
5*54fd6939SJiyong Park  */
6*54fd6939SJiyong Park 
7*54fd6939SJiyong Park #ifndef PARAM_HEADER_H
8*54fd6939SJiyong Park #define PARAM_HEADER_H
9*54fd6939SJiyong Park 
10*54fd6939SJiyong Park #include <stdbool.h>
11*54fd6939SJiyong Park 
12*54fd6939SJiyong Park #ifndef __ASSEMBLER__
13*54fd6939SJiyong Park #include <stdint.h>
14*54fd6939SJiyong Park #endif /*__ASSEMBLER__*/
15*54fd6939SJiyong Park 
16*54fd6939SJiyong Park #include <export/common/param_header_exp.h>
17*54fd6939SJiyong Park 
18*54fd6939SJiyong Park #define VERSION_1	PARAM_VERSION_1
19*54fd6939SJiyong Park #define VERSION_2	PARAM_VERSION_2
20*54fd6939SJiyong Park 
21*54fd6939SJiyong Park #define SET_PARAM_HEAD(_p, _type, _ver, _attr) do { \
22*54fd6939SJiyong Park 	(_p)->h.type = (uint8_t)(_type); \
23*54fd6939SJiyong Park 	(_p)->h.version = (uint8_t)(_ver); \
24*54fd6939SJiyong Park 	(_p)->h.size = (uint16_t)sizeof(*(_p)); \
25*54fd6939SJiyong Park 	(_p)->h.attr = (uint32_t)(_attr) ; \
26*54fd6939SJiyong Park 	} while (false)
27*54fd6939SJiyong Park 
28*54fd6939SJiyong Park /* Following is used for populating structure members statically. */
29*54fd6939SJiyong Park #define SET_STATIC_PARAM_HEAD(_p, _type, _ver, _p_type, _attr)	\
30*54fd6939SJiyong Park 	._p.h.type = (uint8_t)(_type), \
31*54fd6939SJiyong Park 	._p.h.version = (uint8_t)(_ver), \
32*54fd6939SJiyong Park 	._p.h.size = (uint16_t)sizeof(_p_type), \
33*54fd6939SJiyong Park 	._p.h.attr = (uint32_t)(_attr)
34*54fd6939SJiyong Park 
35*54fd6939SJiyong Park #endif /* PARAM_HEADER_H */
36