lmb: Move enum lmb_flags to a u32

LMB flags is not an enum anymore. It's currently used as a bitmask
in various places of our code. So make it a u32 which is more
appropriate when dealing with masks.

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
(cherry picked from commit 3d56c06551)
This commit is contained in:
Ilias Apalodimas
2024-12-18 09:02:31 +02:00
committed by Simon Glass
parent bfd75a7f81
commit 65a9881993
4 changed files with 24 additions and 25 deletions

View File

@@ -70,7 +70,7 @@ static const struct legacy_img_hdr *image_get_fdt(ulong fdt_addr)
}
#endif
static void boot_fdt_reserve_region(u64 addr, u64 size, enum lmb_flags flags)
static void boot_fdt_reserve_region(u64 addr, u64 size, u32 flags)
{
long ret;
@@ -102,7 +102,7 @@ void boot_fdt_add_mem_rsv_regions(void *fdt_blob)
int i, total, ret;
int nodeoffset, subnode;
struct fdt_resource res;
enum lmb_flags flags;
u32 flags;
if (fdt_check_header(fdt_blob) != 0)
return;

View File

@@ -19,18 +19,17 @@
#define LMB_ALIST_INITIAL_SIZE 4
/**
* enum lmb_flags - Definition of memory region attributes
* @LMB_NONE: No special request
* @LMB_NOMAP: Don't add to MMU configuration
* @LMB_NOOVERWRITE: The memory region cannot be overwritten/re-reserved
* @LMB_NONOTIFY: Do not notify other modules of changes to this memory region
* DOC: Memory region attribute flags.
*
* %LMB_NONE: No special request
* %LMB_NOMAP: Don't add to MMU configuration
* %LMB_NOOVERWRITE: The memory region cannot be overwritten/re-reserved
* %LMB_NONOTIFY: Do not notify other modules of changes to this memory region
*/
enum lmb_flags {
LMB_NONE = 0,
LMB_NOMAP = BIT(1),
LMB_NOOVERWRITE = BIT(2),
LMB_NONOTIFY = BIT(3),
};
#define LMB_NONE 0
#define LMB_NOMAP BIT(0)
#define LMB_NOOVERWRITE BIT(1)
#define LMB_NONOTIFY BIT(2)
/**
* struct lmb_region - Description of one region
@@ -41,7 +40,7 @@ enum lmb_flags {
struct lmb_region {
phys_addr_t base;
phys_size_t size;
enum lmb_flags flags;
u32 flags;
};
/**
@@ -101,7 +100,7 @@ long lmb_reserve(phys_addr_t base, phys_size_t size);
* * %-1 - Failure
*/
long lmb_reserve_flags(phys_addr_t base, phys_size_t size,
enum lmb_flags flags);
u32 flags);
#if CONFIG_IS_ENABLED(LMB)
phys_addr_t lmb_alloc(phys_size_t size, ulong align);

View File

@@ -187,7 +187,7 @@ static long lmb_resize_regions(struct alist *lmb_rgn_lst,
* * %-1 - Failure
*/
static long lmb_add_region_flags(struct alist *lmb_rgn_lst, phys_addr_t base,
phys_size_t size, enum lmb_flags flags)
phys_size_t size, u32 flags)
{
unsigned long coalesced = 0;
long ret, i;
@@ -200,7 +200,7 @@ static long lmb_add_region_flags(struct alist *lmb_rgn_lst, phys_addr_t base,
for (i = 0; i < lmb_rgn_lst->count; i++) {
phys_addr_t rgnbase = rgn[i].base;
phys_size_t rgnsize = rgn[i].size;
enum lmb_flags rgnflags = rgn[i].flags;
u32 rgnflags = rgn[i].flags;
ret = lmb_addrs_adjacent(base, size, rgnbase, rgnsize);
if (ret > 0) {
@@ -429,14 +429,14 @@ long io_lmb_free(struct lmb *io_lmb, phys_addr_t base, phys_size_t size)
static struct lmb lmb;
static bool lmb_should_notify(enum lmb_flags flags)
static bool lmb_should_notify(u32 flags)
{
return !lmb.test && !(flags & LMB_NONOTIFY) &&
CONFIG_IS_ENABLED(EFI_LOADER);
}
static int lmb_map_update_notify(phys_addr_t addr, phys_size_t size, u8 op,
enum lmb_flags flags)
u32 flags)
{
u64 pages;
efi_status_t status;
@@ -466,7 +466,7 @@ static int lmb_map_update_notify(phys_addr_t addr, phys_size_t size, u8 op,
return 0;
}
static void lmb_print_region_flags(enum lmb_flags flags)
static void lmb_print_region_flags(u32 flags)
{
const char * const flag_str[] = { "none", "no-map", "no-overwrite",
"no-notify" };
@@ -491,7 +491,7 @@ static void lmb_dump_region(struct alist *lmb_rgn_lst, char *name)
{
struct lmb_region *rgn = lmb_rgn_lst->data;
unsigned long long base, size, end;
enum lmb_flags flags;
u32 flags;
int i;
printf(" %s.count = %#x\n", name, lmb_rgn_lst->count);
@@ -666,7 +666,7 @@ long lmb_free(phys_addr_t base, phys_size_t size)
return lmb_free_flags(base, size, LMB_NONE);
}
long lmb_reserve_flags(phys_addr_t base, phys_size_t size, enum lmb_flags flags)
long lmb_reserve_flags(phys_addr_t base, phys_size_t size, u32 flags)
{
long ret = 0;
struct alist *lmb_rgn_lst = &lmb.used_mem;
@@ -684,7 +684,7 @@ long lmb_reserve(phys_addr_t base, phys_size_t size)
}
static phys_addr_t _lmb_alloc_base(phys_size_t size, ulong align,
phys_addr_t max_addr, enum lmb_flags flags)
phys_addr_t max_addr, u32 flags)
{
int ret;
long i, rgn;
@@ -771,7 +771,7 @@ phys_addr_t lmb_alloc_base_flags(phys_size_t size, ulong align,
}
static phys_addr_t _lmb_alloc_addr(phys_addr_t base, phys_size_t size,
enum lmb_flags flags)
u32 flags)
{
long rgn;
struct lmb_region *lmb_memory = lmb.free_mem.data;

View File

@@ -103,7 +103,7 @@ static int lmb_test_dump_region(struct unit_test_state *uts,
{
struct lmb_region *rgn = lmb_rgn_lst->data;
unsigned long long base, size, end;
enum lmb_flags flags;
u32 flags;
int i;
ut_assert_nextline(" %s.count = %#x", name, lmb_rgn_lst->count);