[rtems commit] bsp/tqm8xx: Use custom string to uint32_t

Sebastian Huber sebh at rtems.org
Mon Sep 17 06:58:59 UTC 2018


Module:    rtems
Branch:    master
Commit:    7916139eab8aacb8d865f739a069db2cc603f055
Changeset: http://git.rtems.org/rtems/commit/?id=7916139eab8aacb8d865f739a069db2cc603f055

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Sep 13 11:33:50 2018 +0200

bsp/tqm8xx: Use custom string to uint32_t

Avoid C locale support which is not available at this stage.

---

 bsps/powerpc/tqm8xx/start/bspstart.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/bsps/powerpc/tqm8xx/start/bspstart.c b/bsps/powerpc/tqm8xx/start/bspstart.c
index b42ce1c..09208ac 100644
--- a/bsps/powerpc/tqm8xx/start/bspstart.c
+++ b/bsps/powerpc/tqm8xx/start/bspstart.c
@@ -76,11 +76,28 @@ static const char *bsp_tqm_get_cib_string( const char *cib_id)
   }
 }
 
+static uint32_t str_to_u32(const char *s)
+{
+  uint32_t v = 0;
+
+  while (true) {
+    unsigned char digit = (unsigned char)*s - '0';
+
+    if (digit > 9) {
+      break;
+    }
+
+    v = (v * 10) + digit;
+    ++s;
+  }
+
+  return v;
+}
+
 static rtems_status_code  bsp_tqm_get_cib_uint32( const char *cib_id,
 					   uint32_t   *result)
 {
   const char *item_ptr;
-  char *end_ptr;
   item_ptr = bsp_tqm_get_cib_string(cib_id);
   if (item_ptr == NULL) {
     return RTEMS_INVALID_ID;
@@ -88,7 +105,7 @@ static rtems_status_code  bsp_tqm_get_cib_uint32( const char *cib_id,
   /*
    * convert string to uint32
    */
-  *result = strtoul(item_ptr,&end_ptr,10);
+  *result = str_to_u32(item_ptr);
   return RTEMS_SUCCESSFUL;
 }
 



More information about the vc mailing list