Rearrange fields in TF data structures to reduce padding
authorSoby Mathew <soby.mathew@arm.com>
Tue, 12 Jan 2016 10:30:59 +0000 (10:30 +0000)
committerSoby Mathew <soby.mathew@arm.com>
Wed, 13 Jan 2016 09:39:40 +0000 (09:39 +0000)
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
include/drivers/auth/auth_mod.h

index 0ec7a8d8600c02a07d03fe01f601fa24a8524415..e5e6717b610f85b4827c0ff4a765391080d37627 100644 (file)
@@ -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;
 
 /*******************************************************************************
index c00b2565adc97410af8672660a40d885411db37d..4ed4684d0c37fc7811045367f438a56a0258d1ef 100644 (file)
@@ -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;