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