This is an automated email from the ASF dual-hosted git repository.

benmccrea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 7e4c027  sys/id: Add optional id/serial_mfg field for storing 
manufacturer serial numbers
     new c418c0c  Merge pull request #2257 from JuulLabs/id-serial_mfg
7e4c027 is described below

commit 7e4c02772b3d91f21a199f0cfd835f85d5e11120
Author: Ben McCrea <bmcc...@juul.com>
AuthorDate: Tue Mar 31 19:46:13 2020 -0700

    sys/id: Add optional id/serial_mfg field for storing manufacturer serial 
numbers
---
 sys/id/include/id/id.h |  8 ++++++++
 sys/id/src/id.c        | 15 +++++++++++++++
 sys/id/syscfg.yml      |  7 +++++++
 3 files changed, 30 insertions(+)

diff --git a/sys/id/include/id/id.h b/sys/id/include/id/id.h
index d730e93..8e20124 100644
--- a/sys/id/include/id/id.h
+++ b/sys/id/include/id/id.h
@@ -32,6 +32,14 @@ extern "C" {
 extern char id_serial[];
 #endif
 
+#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
+/*
+ * Maximum expected serial_mfg number string length.
+ */
+#define ID_SERIAL_MFG_MAX_LEN       MYNEWT_VAL(ID_SERIAL_MFG_MAX_LEN)
+extern char id_serial_mfg[];
+#endif
+
 #if MYNEWT_VAL(ID_MANUFACTURER_LOCAL)
 /*
  * Maximum expected manufacturer string length.
diff --git a/sys/id/src/id.c b/sys/id/src/id.c
index 79a7c87..4a6a2e5 100644
--- a/sys/id/src/id.c
+++ b/sys/id/src/id.c
@@ -51,6 +51,9 @@ const char *id_app_str = "";
 #if MYNEWT_VAL(ID_SERIAL_PRESENT)
 char id_serial[ID_SERIAL_MAX_LEN];
 #endif
+#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
+char id_serial_mfg[ID_SERIAL_MFG_MAX_LEN];
+#endif
 #if MYNEWT_VAL(ID_MANUFACTURER_LOCAL)
 char id_manufacturer[ID_MANUFACTURER_MAX_LEN];
 #endif
@@ -88,6 +91,10 @@ id_conf_get(int argc, char **argv, char *val, int 
val_len_max)
         } else if (!strcmp(argv[0], "serial")) {
             return (char *)id_serial;
 #endif
+#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
+        } else if (!strcmp(argv[0], "serial_mfg")) {
+            return (char *)id_serial_mfg;
+#endif
 #if MYNEWT_VAL(ID_MANUFACTURER_PRESENT)
         } else if (!strcmp(argv[0], "mfger")) {
             return (char *)id_manufacturer;
@@ -116,6 +123,11 @@ id_conf_set(int argc, char **argv, char *val)
             return CONF_VALUE_SET(val, CONF_STRING, id_serial);
         }
 #endif
+#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
+        if (!strcmp(argv[0], "serial_mfg")) {
+            return CONF_VALUE_SET(val, CONF_STRING, id_serial_mfg);
+        }
+#endif
 #if MYNEWT_VAL(ID_MANUFACTURER_LOCAL)
         if (!strcmp(argv[0], "mfger")) {
             return CONF_VALUE_SET(val, CONF_STRING, id_manufacturer);
@@ -154,6 +166,9 @@ id_conf_export(void (*export_func)(char *name, char *val),
 #if MYNEWT_VAL(ID_SERIAL_PRESENT)
     export_func("id/serial", id_serial);
 #endif /* ID_SERIAL_PRESENT */
+#if MYNEWT_VAL(ID_SERIAL_MFG_PRESENT)
+    export_func("id/serial_mfg", id_serial_mfg);
+#endif /* ID_SERIAL_MFG_PRESENT */
 #if MYNEWT_VAL(ID_MANUFACTURER_PRESENT)
 #if MYNEWT_VAL(ID_MANUFACTURER_LOCAL)
     export_func("id/mfger", id_manufacturer);
diff --git a/sys/id/syscfg.yml b/sys/id/syscfg.yml
index 107b804..3248708 100644
--- a/sys/id/syscfg.yml
+++ b/sys/id/syscfg.yml
@@ -24,6 +24,13 @@ syscfg.defs:
         description: Maximum length of id/serial value
         value: 64
 
+    ID_SERIAL_MFG_PRESENT:
+        description: 'Device manufacturing serial number exported as 
sys/id/serial_mfg.'
+        value: 0
+    ID_SERIAL_MFG_MAX_LEN:
+        description: Maximum length of id/serial_mfg value
+        value: 32
+
     ID_MANUFACTURER_PRESENT:
         description: 'Device manufacturer string exported as sys/id/mfger.'
         value: 0

Reply via email to