HAL API change request

2018-01-12 Thread markus
I've been looking at hal_gpio_toggle and it's declaration could be improved by 
removing the return value:

void hal_gpio_toggle(int pin);

As it currently stands, by requiring a return value of the pin state one cannot 
use the HW support of most processors to toggle the pin, and it's also not 
possible to accomplish in an atomic manner.

If the underlying HW support for toggling a pin cannot be used it makes the API 
call redundant, it can be accomplished by a hal_gpio_read/hal_gpio_write combo.

Is there a chance the API can be changed? And how do we go about that?

Markus


[GitHub] mkiiskila closed pull request #1: [osal] Minor fixes to the os abstraction porting layer.

2018-01-12 Thread GitBox
mkiiskila closed pull request #1: [osal] Minor fixes to the os abstraction 
porting layer.
URL: https://github.com/apache/mynewt-nimble/pull/1
 
 
   

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/common/include/os/os_fault.h 
b/porting/common/include/os/os_fault.h
index 4ce34c26..60f5faa7 100644
--- a/porting/common/include/os/os_fault.h
+++ b/porting/common/include/os/os_fault.h
@@ -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 *)
diff --git a/porting/common/src/os/os_mempool.c 
b/porting/common/src/os/os_mempool.c
index 65e4f615..55a8f123 100644
--- a/porting/common/src/os/os_mempool.c
+++ b/porting/common/src/os/os_mempool.c
@@ -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;
 }
 


 


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