andrzej-kaczmarek closed pull request #96: porting: Add support for running on 
64-bit architectures
URL: https://github.com/apache/mynewt-nimble/pull/96
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/porting/nimble/include/os/os_mempool.h 
b/porting/nimble/include/os/os_mempool.h
index ab1ddc51..db80d4e4 100644
--- a/porting/nimble/include/os/os_mempool.h
+++ b/porting/nimble/include/os/os_mempool.h
@@ -65,7 +65,7 @@ struct os_mempool {
     /** Bitmap of OS_MEMPOOL_F_[...] values. */
     uint8_t mp_flags;
     /** Address of memory buffer used by pool */
-    uint32_t mp_membuf_addr;
+    uintptr_t mp_membuf_addr;
     STAILQ_ENTRY(os_mempool) mp_list;
     SLIST_HEAD(,os_memblock);
     /** Name for memory block */
diff --git a/porting/nimble/src/os_mempool.c b/porting/nimble/src/os_mempool.c
index d83697d3..fa223a7a 100644
--- a/porting/nimble/src/os_mempool.c
+++ b/porting/nimble/src/os_mempool.c
@@ -82,7 +82,7 @@ os_mempool_init(struct os_mempool *mp, uint16_t blocks, 
uint32_t 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;
         }
     }
@@ -94,7 +94,7 @@ os_mempool_init(struct os_mempool *mp, uint16_t blocks, 
uint32_t block_size,
     mp->mp_min_free = blocks;
     mp->mp_flags = 0;
     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;
@@ -155,24 +155,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;
+    uintptr_t true_block_size;
+    uintptr_t baddr_ptr;
+    uintptr_t end;
 
-    _Static_assert(sizeof block_addr == sizeof baddr32,
-                   "Pointer to void must be 32-bits.");
+    _Static_assert(sizeof block_addr == sizeof baddr_ptr,
+                   "Pointer to void must be native word size.");
 
-    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;
     }
 
diff --git a/porting/nimble/src/os_msys_init.c 
b/porting/nimble/src/os_msys_init.c
index 1daa9bf9..4d42d184 100644
--- a/porting/nimble/src/os_msys_init.c
+++ b/porting/nimble/src/os_msys_init.c
@@ -23,7 +23,7 @@
 
 #if MYNEWT_VAL(MSYS_1_BLOCK_COUNT) > 0
 #define SYSINIT_MSYS_1_MEMBLOCK_SIZE                \
-    OS_ALIGN(MYNEWT_VAL(MSYS_1_BLOCK_SIZE), 4)
+    OS_ALIGN(MYNEWT_VAL(MSYS_1_BLOCK_SIZE), OS_ALIGNMENT)
 #define SYSINIT_MSYS_1_MEMPOOL_SIZE                 \
     OS_MEMPOOL_SIZE(MYNEWT_VAL(MSYS_1_BLOCK_COUNT),  \
                     SYSINIT_MSYS_1_MEMBLOCK_SIZE)
@@ -34,7 +34,7 @@ static struct os_mempool os_msys_init_1_mempool;
 
 #if MYNEWT_VAL(MSYS_2_BLOCK_COUNT) > 0
 #define SYSINIT_MSYS_2_MEMBLOCK_SIZE                \
-    OS_ALIGN(MYNEWT_VAL(MSYS_2_BLOCK_SIZE), 4)
+    OS_ALIGN(MYNEWT_VAL(MSYS_2_BLOCK_SIZE), OS_ALIGNMENT)
 #define SYSINIT_MSYS_2_MEMPOOL_SIZE                 \
     OS_MEMPOOL_SIZE(MYNEWT_VAL(MSYS_2_BLOCK_COUNT),  \
                     SYSINIT_MSYS_2_MEMBLOCK_SIZE)


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to