Commit e123b2a3 authored by danh-arm's avatar danh-arm
Browse files

Merge pull request #483 from soby-mathew/sm/rm_struct_padding

Rearrange fields in TF data structures to reduce padding
parents 0812d49c b313d755
...@@ -89,12 +89,12 @@ typedef struct rt_svc_desc { ...@@ -89,12 +89,12 @@ typedef struct rt_svc_desc {
#define DECLARE_RT_SVC(_name, _start, _end, _type, _setup, _smch) \ #define DECLARE_RT_SVC(_name, _start, _end, _type, _setup, _smch) \
static const rt_svc_desc_t __svc_desc_ ## _name \ static const rt_svc_desc_t __svc_desc_ ## _name \
__attribute__ ((section("rt_svc_descs"), used)) = { \ __attribute__ ((section("rt_svc_descs"), used)) = { \
_start, \ .start_oen = _start, \
_end, \ .end_oen = _end, \
_type, \ .call_type = _type, \
#_name, \ .name = #_name, \
_setup, \ .init = _setup, \
_smch } .handle = _smch }
/* /*
* Compile time assertions related to the 'rt_svc_desc' structure to: * Compile time assertions related to the 'rt_svc_desc' structure to:
......
...@@ -202,8 +202,9 @@ typedef struct param_header { ...@@ -202,8 +202,9 @@ typedef struct param_header {
* switching exception levels. The only two mechanisms to do so are * switching exception levels. The only two mechanisms to do so are
* ERET & SMC. Security state is indicated using bit zero of header * ERET & SMC. Security state is indicated using bit zero of header
* attribute * attribute
* NOTE: BL1 expects entrypoint followed by spsr while processing * NOTE: BL1 expects entrypoint followed by spsr at an offset from the start
* SMC to jump to BL31 from the start of entry_point_info * of this structure defined by the macro `ENTRY_POINT_INFO_PC_OFFSET` while
* processing SMC to jump to BL31.
*****************************************************************************/ *****************************************************************************/
typedef struct entry_point_info { typedef struct entry_point_info {
param_header_t h; param_header_t h;
...@@ -232,13 +233,13 @@ typedef struct image_info { ...@@ -232,13 +233,13 @@ typedef struct image_info {
typedef struct image_desc { typedef struct image_desc {
/* Contains unique image id for the image. */ /* Contains unique image id for the image. */
unsigned int image_id; unsigned int image_id;
image_info_t image_info;
entry_point_info_t ep_info;
/* /*
* This member contains Image state information. * This member contains Image state information.
* Refer IMAGE_STATE_XXX defined above. * Refer IMAGE_STATE_XXX defined above.
*/ */
unsigned int state; unsigned int state;
image_info_t image_info;
entry_point_info_t ep_info;
} image_desc_t; } image_desc_t;
/******************************************************************************* /*******************************************************************************
......
...@@ -48,8 +48,8 @@ ...@@ -48,8 +48,8 @@
*/ */
typedef struct auth_img_desc_s { typedef struct auth_img_desc_s {
unsigned int img_id; unsigned int img_id;
const struct auth_img_desc_s *parent;
img_type_t img_type; img_type_t img_type;
const struct auth_img_desc_s *parent;
auth_method_desc_t img_auth_methods[AUTH_METHOD_NUM]; auth_method_desc_t img_auth_methods[AUTH_METHOD_NUM];
auth_param_desc_t authenticated_data[COT_MAX_VERIFIED_PARAMS]; auth_param_desc_t authenticated_data[COT_MAX_VERIFIED_PARAMS];
} auth_img_desc_t; } auth_img_desc_t;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment