mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-04 20:26:13 +02:00
abuf: Provide a way to get the buffer address
In many cases it is useful to get the address of a buffer, e.g. when booting from it. Add a function to handle this. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
864106f3c4
commit
c487381d50
@ -42,6 +42,14 @@ static inline size_t abuf_size(const struct abuf *abuf)
|
||||
return abuf->size;
|
||||
}
|
||||
|
||||
/**
|
||||
* abuf_addr() - Get the address of a buffer's data
|
||||
*
|
||||
* @abuf: Buffer to check
|
||||
* Return: address of buffer
|
||||
*/
|
||||
ulong abuf_addr(const struct abuf *abuf);
|
||||
|
||||
/**
|
||||
* abuf_set() - set the (unallocated) data in a buffer
|
||||
*
|
||||
|
||||
@ -26,6 +26,12 @@ void abuf_map_sysmem(struct abuf *abuf, ulong addr, size_t size)
|
||||
{
|
||||
abuf_set(abuf, map_sysmem(addr, size), size);
|
||||
}
|
||||
|
||||
ulong abuf_addr(const struct abuf *abuf)
|
||||
{
|
||||
return map_to_sysmem(abuf->data);
|
||||
}
|
||||
|
||||
#else
|
||||
/* copied from lib/string.c for convenience */
|
||||
static char *memdup(const void *src, size_t len)
|
||||
|
||||
@ -46,7 +46,7 @@ static int lib_test_abuf_set(struct unit_test_state *uts)
|
||||
}
|
||||
LIB_TEST(lib_test_abuf_set, 0);
|
||||
|
||||
/* Test abuf_map_sysmem() */
|
||||
/* Test abuf_map_sysmem() and abuf_addr() */
|
||||
static int lib_test_abuf_map_sysmem(struct unit_test_state *uts)
|
||||
{
|
||||
struct abuf buf;
|
||||
@ -60,6 +60,8 @@ static int lib_test_abuf_map_sysmem(struct unit_test_state *uts)
|
||||
ut_asserteq(TEST_DATA_LEN, buf.size);
|
||||
ut_asserteq(false, buf.alloced);
|
||||
|
||||
ut_asserteq(addr, abuf_addr(&buf));
|
||||
|
||||
return 0;
|
||||
}
|
||||
LIB_TEST(lib_test_abuf_map_sysmem, 0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user