[PATCH] rtems: Parameter types in rtems_partition_create()

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Aug 6 08:54:37 UTC 2018


Use uintptr_t to specify the length of the partition buffer area instead
of uint32_t.  This is in line with rtems_region_create().  On 64-bit
targets, the length may exceed 4GiB.  Use size_t for the buffer size,
since on some targets the single object size is less than the overall
address range, e.g. m32c sizeof(uintptr_t) > sizeof(size_t).

Update #3486.
---
 cpukit/include/rtems/rtems/part.h | 10 +++++-----
 cpukit/rtems/src/partcreate.c     |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/cpukit/include/rtems/rtems/part.h b/cpukit/include/rtems/rtems/part.h
index 5b840cc96c..769f3c6904 100644
--- a/cpukit/include/rtems/rtems/part.h
+++ b/cpukit/include/rtems/rtems/part.h
@@ -61,13 +61,13 @@ typedef struct {
   /** This field is the physical starting address of the Partition. */
   void               *starting_address;
   /** This field is the size of the Partition in bytes. */
-  intptr_t            length;
+  uintptr_t           length;
   /** This field is the size of each buffer in bytes */
-  uint32_t            buffer_size;
+  size_t              buffer_size;
   /** This field is the attribute set provided at create time. */
   rtems_attribute     attribute_set;
   /** This field is the of allocated buffers. */
-  uint32_t            number_of_used_blocks;
+  uintptr_t           number_of_used_blocks;
   /** This field is the chain used to manage unallocated buffers. */
   Chain_Control       Memory;
 }   Partition_Control;
@@ -88,8 +88,8 @@ typedef struct {
 rtems_status_code rtems_partition_create(
   rtems_name       name,
   void            *starting_address,
-  uint32_t         length,
-  uint32_t         buffer_size,
+  uintptr_t        length,
+  size_t           buffer_size,
   rtems_attribute  attribute_set,
   rtems_id        *id
 );
diff --git a/cpukit/rtems/src/partcreate.c b/cpukit/rtems/src/partcreate.c
index 2134b99e19..1a7304efa3 100644
--- a/cpukit/rtems/src/partcreate.c
+++ b/cpukit/rtems/src/partcreate.c
@@ -47,8 +47,8 @@
 rtems_status_code rtems_partition_create(
   rtems_name       name,
   void            *starting_address,
-  uint32_t         length,
-  uint32_t         buffer_size,
+  uintptr_t        length,
+  size_t           buffer_size,
   rtems_attribute  attribute_set,
   rtems_id        *id
 )
-- 
2.13.7



More information about the devel mailing list