forked from OERV-BSP/u-boot
x86: Add a function to find the size of an mrccache record
Move the code to determine the size of a cache record into a function so we can use it elsewhere in this file. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -17,19 +17,20 @@
|
|||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
static uint mrc_block_size(uint data_size)
|
||||||
|
{
|
||||||
|
uint mrc_size = sizeof(struct mrc_data_container) + data_size;
|
||||||
|
|
||||||
|
return ALIGN(mrc_size, MRC_DATA_ALIGN);
|
||||||
|
}
|
||||||
|
|
||||||
static struct mrc_data_container *next_mrc_block(
|
static struct mrc_data_container *next_mrc_block(
|
||||||
struct mrc_data_container *cache)
|
struct mrc_data_container *cache)
|
||||||
{
|
{
|
||||||
/* MRC data blocks are aligned within the region */
|
/* MRC data blocks are aligned within the region */
|
||||||
u32 mrc_size = sizeof(*cache) + cache->data_size;
|
|
||||||
u8 *region_ptr = (u8 *)cache;
|
u8 *region_ptr = (u8 *)cache;
|
||||||
|
|
||||||
if (mrc_size & (MRC_DATA_ALIGN - 1UL)) {
|
region_ptr += mrc_block_size(cache->data_size);
|
||||||
mrc_size &= ~(MRC_DATA_ALIGN - 1UL);
|
|
||||||
mrc_size += MRC_DATA_ALIGN;
|
|
||||||
}
|
|
||||||
|
|
||||||
region_ptr += mrc_size;
|
|
||||||
|
|
||||||
return (struct mrc_data_container *)region_ptr;
|
return (struct mrc_data_container *)region_ptr;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user