"backend/vscode:/vscode.git/clone" did not exist on "c48795a948943e1baafda552523fc7a95b219c8c"
Commit b313d755 authored by Soby Mathew's avatar Soby Mathew
Browse files

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
parent 7b3aabc0
...@@ -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