Merge pull request #1 from turon/pr/osal_fixes

[osal] Minor fixes to the os abstraction porting layer.
This commit is contained in:
mkiiskila
2018-01-12 14:59:03 +01:00
committed by GitHub
2 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -21,7 +21,7 @@
#define _OS_FAULT_H
#ifdef __cplusplus
extern "c" {
extern "C" {
#endif
void __assert_func(const char *, int, const char *, const char *)
+9 -9
View File
@@ -102,7 +102,7 @@ os_mempool_init(struct os_mempool *mp, int blocks, int block_size,
/* Blocks need to be sized properly and memory buffer should be
* aligned
*/
if (((uint32_t)membuf & (OS_ALIGNMENT - 1)) != 0) {
if (((uintptr_t)membuf & (OS_ALIGNMENT - 1)) != 0) {
return OS_MEM_NOT_ALIGNED;
}
}
@@ -113,7 +113,7 @@ os_mempool_init(struct os_mempool *mp, int blocks, int block_size,
mp->mp_num_free = blocks;
mp->mp_min_free = blocks;
mp->mp_num_blocks = blocks;
mp->mp_membuf_addr = (uint32_t)membuf;
mp->mp_membuf_addr = (uintptr_t)membuf;
mp->name = name;
os_mempool_poison(membuf, true_block_size);
SLIST_FIRST(mp) = membuf;
@@ -175,24 +175,24 @@ os_mempool_is_sane(const struct os_mempool *mp)
int
os_memblock_from(const struct os_mempool *mp, const void *block_addr)
{
uint32_t true_block_size;
uint32_t baddr32;
uint32_t end;
uint32_t true_block_size;
uintptr_t baddr_ptr;
uint32_t end;
_Static_assert(sizeof block_addr == sizeof baddr32,
_Static_assert(sizeof block_addr == sizeof baddr_ptr,
"Pointer to void must be 32-bits.");
baddr32 = (uint32_t)block_addr;
baddr_ptr = (uintptr_t)block_addr;
true_block_size = OS_MEMPOOL_TRUE_BLOCK_SIZE(mp);
end = mp->mp_membuf_addr + (mp->mp_num_blocks * true_block_size);
/* Check that the block is in the memory buffer range. */
if ((baddr32 < mp->mp_membuf_addr) || (baddr32 >= end)) {
if ((baddr_ptr < mp->mp_membuf_addr) || (baddr_ptr >= end)) {
return 0;
}
/* All freed blocks should be on true block size boundaries! */
if (((baddr32 - mp->mp_membuf_addr) % true_block_size) != 0) {
if (((baddr_ptr - mp->mp_membuf_addr) % true_block_size) != 0) {
return 0;
}