From b313d755a7fe92ab5e576376a10051db1ba1c92f Mon Sep 17 00:00:00 2001 From: Soby Mathew Date: Tue, 12 Jan 2016 10:30:59 +0000 Subject: [PATCH] Rearrange fields in TF data structures to reduce padding This patch rearranges fields of the `image_desc_t` & `auth_img_desc_t` data structures to reduce padding between the fields and thereby save memory. NOTE: Platform ports which anonymously initialize these structures should be aware of the rearrangement and do the required modification. Change-Id: I428b5429632797b31d5bd306174599c07e24c060 --- include/common/bl_common.h | 9 +++++---- include/drivers/auth/auth_mod.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/common/bl_common.h b/include/common/bl_common.h index 0ec7a8d8..e5e6717b 100644 --- a/include/common/bl_common.h +++ b/include/common/bl_common.h @@ -202,8 +202,9 @@ typedef struct param_header { * switching exception levels. The only two mechanisms to do so are * ERET & SMC. Security state is indicated using bit zero of header * attribute - * NOTE: BL1 expects entrypoint followed by spsr while processing - * SMC to jump to BL31 from the start of entry_point_info + * NOTE: BL1 expects entrypoint followed by spsr at an offset from the start + * of this structure defined by the macro `ENTRY_POINT_INFO_PC_OFFSET` while + * processing SMC to jump to BL31. *****************************************************************************/ typedef struct entry_point_info { param_header_t h; @@ -232,13 +233,13 @@ typedef struct image_info { typedef struct image_desc { /* Contains unique image id for the image. */ unsigned int image_id; - image_info_t image_info; - entry_point_info_t ep_info; /* * This member contains Image state information. * Refer IMAGE_STATE_XXX defined above. */ unsigned int state; + image_info_t image_info; + entry_point_info_t ep_info; } image_desc_t; /******************************************************************************* diff --git a/include/drivers/auth/auth_mod.h b/include/drivers/auth/auth_mod.h index c00b2565..4ed4684d 100644 --- a/include/drivers/auth/auth_mod.h +++ b/include/drivers/auth/auth_mod.h @@ -48,8 +48,8 @@ */ typedef struct auth_img_desc_s { unsigned int img_id; - const struct auth_img_desc_s *parent; img_type_t img_type; + const struct auth_img_desc_s *parent; auth_method_desc_t img_auth_methods[AUTH_METHOD_NUM]; auth_param_desc_t authenticated_data[COT_MAX_VERIFIED_PARAMS]; } auth_img_desc_t; -- 2.30.2