
On 4/29/21 6:10 PM, Simon Glass wrote:
Hi Patrick,
On Wed, 28 Apr 2021 at 03:23, Patrick Delaunay patrick.delaunay@foss.st.com wrote:
Add a new function lmb_is_reserved_flags to check is a address is reserved with a specific flags.
This function can be used to check if an address was reserved with no-map flags with:
lmb_is_reserved_flags(lmb, addr, LMB_NOMAP);
Signed-off-by: Patrick Delaunay patrick.delaunay@foss.st.com
(no changes since v1)
include/lmb.h | 1 + lib/lmb.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/include/lmb.h b/include/lmb.h index aa196c63bf..6537d56e18 100644 --- a/include/lmb.h +++ b/include/lmb.h @@ -91,6 +91,7 @@ extern phys_addr_t lmb_alloc_addr(struct lmb *lmb, phys_addr_t base, phys_size_t size); extern phys_size_t lmb_get_free_size(struct lmb *lmb, phys_addr_t addr); extern int lmb_is_reserved(struct lmb *lmb, phys_addr_t addr); +extern int lmb_is_reserved_flags(struct lmb *lmb, phys_addr_t addr, int flags);
drop extern and please add a function comment
I chosed to use extern to by aligned with other function and the linux memblock library.
But I will drop them in v4
extern long lmb_free(struct lmb *lmb, phys_addr_t base, phys_size_t size);
extern void lmb_dump_all(struct lmb *lmb); diff --git a/lib/lmb.c b/lib/lmb.c index 69700bf9ba..e270e86186 100644 --- a/lib/lmb.c +++ b/lib/lmb.c @@ -443,7 +443,7 @@ phys_size_t lmb_get_free_size(struct lmb *lmb, phys_addr_t addr) return 0; }
-int lmb_is_reserved(struct lmb *lmb, phys_addr_t addr) +int lmb_is_reserved_flags(struct lmb *lmb, phys_addr_t addr, int flags) { int i;
@@ -451,11 +451,17 @@ int lmb_is_reserved(struct lmb *lmb, phys_addr_t addr) phys_addr_t upper = lmb->reserved.region[i].base + lmb->reserved.region[i].size - 1; if ((addr >= lmb->reserved.region[i].base) && (addr <= upper))
return 1;
return !!((lmb->reserved.region[i].flags & flags)
== flags);
I don't know what flags is since there is no comment, but it seems that you should drop the !!()
Yes, it is a old C-coding habit.
} return 0;
}
+int lmb_is_reserved(struct lmb *lmb, phys_addr_t addr) +{
return lmb_is_reserved_flags(lmb, addr, LMB_NONE);
+}
- __weak void board_lmb_reserve(struct lmb *lmb) { /* please define platform specific board_lmb_reserve() */
-- 2.17.1
Regards, Simon