You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2016/10/05 05:16:13 UTC

incubator-mynewt-core git commit: mgmt/mgmt; new package exposing system-wide management interfaces.

Repository: incubator-mynewt-core
Updated Branches:
  refs/heads/develop da33be79a -> 04318b86d


mgmt/mgmt; new package exposing system-wide management interfaces.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/04318b86
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/04318b86
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/04318b86

Branch: refs/heads/develop
Commit: 04318b86d83bc416f810660d7894af2c63384ae4
Parents: da33be7
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Tue Oct 4 22:12:47 2016 -0700
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Tue Oct 4 22:12:47 2016 -0700

----------------------------------------------------------------------
 boot/split/src/split_netmgr.c                   |  42 ++--
 libs/imgmgr/pkg.yml                             |   4 +-
 libs/imgmgr/src/imgmgr.c                        |  98 ++++----
 libs/imgmgr/src/imgmgr_boot.c                   |  26 +-
 libs/imgmgr/src/imgmgr_coredump.c               |  38 +--
 libs/imgmgr/src/imgmgr_priv.h                   |  18 +-
 mgmt/mgmt/include/mgmt/mgmt.h                   |  43 +++-
 mgmt/mgmt/pkg.yml                               |   3 -
 mgmt/mgmt/src/mgmt.c                            |  13 +-
 mgmt/newtmgr/include/newtmgr/newtmgr.h          |  59 +----
 mgmt/newtmgr/nmgr_os/pkg.yml                    |   4 +-
 mgmt/newtmgr/nmgr_os/src/newtmgr_os.c           | 134 +++++------
 mgmt/newtmgr/src/newtmgr.c                      | 239 +++++--------------
 .../transport/nmgr_shell/src/nmgr_shell.c       |   3 +-
 sys/config/pkg.yml                              |   4 +-
 sys/config/src/config_nmgr.c                    |  42 ++--
 sys/log/pkg.yml                                 |   4 +-
 sys/log/src/log_nmgr.c                          |  56 ++---
 sys/stats/pkg.yml                               |   4 +-
 sys/stats/src/stats_nmgr.c                      |  62 ++---
 test/crash_test/pkg.yml                         |   4 +-
 test/crash_test/src/crash_nmgr.c                |  24 +-
 test/crash_test/src/crash_test.c                |   4 +-
 test/crash_test/src/crash_test_priv.h           |   2 +-
 24 files changed, 396 insertions(+), 534 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/boot/split/src/split_netmgr.c
----------------------------------------------------------------------
diff --git a/boot/split/src/split_netmgr.c b/boot/split/src/split_netmgr.c
index 7d2e7dc..4ac9b4b 100644
--- a/boot/split/src/split_netmgr.c
+++ b/boot/split/src/split_netmgr.c
@@ -18,40 +18,40 @@
  */
 
 #include <json/json.h>
-#include <newtmgr/newtmgr.h>
+#include <mgmt/mgmt.h>
 #include <bootutil/bootutil_misc.h>
 #include <bootutil/image.h>
 #include <split/split.h>
 #include <split/split_priv.h>
 
 
-static int imgr_splitapp_read(struct nmgr_jbuf *njb);
-static int imgr_splitapp_write(struct nmgr_jbuf *njb);
+static int imgr_splitapp_read(struct mgmt_jbuf *njb);
+static int imgr_splitapp_write(struct mgmt_jbuf *njb);
 
-static const struct nmgr_handler split_nmgr_handlers[] = {
+static const struct mgmt_handler split_nmgr_handlers[] = {
     [SPLIT_NMGR_OP_SPLIT] = {
-        .nh_read = imgr_splitapp_read,
-        .nh_write = imgr_splitapp_write
+        .mh_read = imgr_splitapp_read,
+        .mh_write = imgr_splitapp_write
     },
 };
 
-static struct nmgr_group split_nmgr_group = {
-    .ng_handlers = (struct nmgr_handler *)split_nmgr_handlers,
-    .ng_handlers_count =
+static struct mgmt_group split_nmgr_group = {
+    .mg_handlers = (struct mgmt_handler *)split_nmgr_handlers,
+    .mg_handlers_count =
         sizeof(split_nmgr_handlers) / sizeof(split_nmgr_handlers[0]),
-    .ng_group_id = NMGR_GROUP_ID_SPLIT,
+    .mg_group_id = MGMT_GROUP_ID_SPLIT,
 };
 
 int
 split_nmgr_register(void)
 {
     int rc;
-    rc = nmgr_group_register(&split_nmgr_group);
+    rc = mgmt_group_register(&split_nmgr_group);
     return (rc);
 }
 
 int
-imgr_splitapp_read(struct nmgr_jbuf *njb)
+imgr_splitapp_read(struct mgmt_jbuf *njb)
 {
     int rc;
     int x;
@@ -59,7 +59,7 @@ imgr_splitapp_read(struct nmgr_jbuf *njb)
     struct json_encoder *enc;
     struct json_value jv;
 
-    enc = &njb->njb_enc;
+    enc = &njb->mjb_enc;
 
     json_encode_object_start(enc);
 
@@ -76,7 +76,7 @@ imgr_splitapp_read(struct nmgr_jbuf *njb)
     JSON_VALUE_INT(&jv, x)
     json_encode_object_entry(enc, "splitStatus", &jv);
 
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
     json_encode_object_entry(enc, "rc", &jv);
 
     json_encode_object_finish(enc);
@@ -85,7 +85,7 @@ imgr_splitapp_read(struct nmgr_jbuf *njb)
 }
 
 int
-imgr_splitapp_write(struct nmgr_jbuf *njb)
+imgr_splitapp_write(struct mgmt_jbuf *njb)
 {
     long long int split_mode;
     long long int send_split_status;  /* ignored */
@@ -121,29 +121,29 @@ imgr_splitapp_write(struct nmgr_jbuf *njb)
     struct json_value jv;
     int rc;
 
-    rc = json_read_object(&njb->njb_buf, split_write_attr);
+    rc = json_read_object(&njb->mjb_buf, split_write_attr);
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
     rc = split_write_split((split_mode_t) split_mode);
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
-    enc = &njb->njb_enc;
+    enc = &njb->mjb_enc;
 
     json_encode_object_start(enc);
 
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
     json_encode_object_entry(enc, "rc", &jv);
 
     json_encode_object_finish(enc);
 
     return 0;
 err:
-    nmgr_jbuf_setoerr(njb, rc);
+    mgmt_jbuf_setoerr(njb, rc);
     return 0;
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/libs/imgmgr/pkg.yml
----------------------------------------------------------------------
diff --git a/libs/imgmgr/pkg.yml b/libs/imgmgr/pkg.yml
index 248b065..a6fa9bc 100644
--- a/libs/imgmgr/pkg.yml
+++ b/libs/imgmgr/pkg.yml
@@ -26,9 +26,7 @@ pkg.keywords:
 pkg.deps:
     - boot/bootutil
     - encoding/base64
-
-pkg.req_apis:
-    - newtmgr
+    - mgmt/mgmt
 
 pkg.deps.IMGMGR_FS:
     - fs/fs

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/libs/imgmgr/src/imgmgr.c
----------------------------------------------------------------------
diff --git a/libs/imgmgr/src/imgmgr.c b/libs/imgmgr/src/imgmgr.c
index 3d193c6..a1020a5 100644
--- a/libs/imgmgr/src/imgmgr.c
+++ b/libs/imgmgr/src/imgmgr.c
@@ -29,69 +29,71 @@
 #include "base64/base64.h"
 #include "bootutil/image.h"
 #include "bootutil/bootutil_misc.h"
-#include "newtmgr/newtmgr.h"
+#include "mgmt/mgmt.h"
 
 #include "imgmgr/imgmgr.h"
 #include "imgmgr_priv.h"
 
-static int imgr_list2(struct nmgr_jbuf *);
-static int imgr_upload(struct nmgr_jbuf *);
+static int imgr_list2(struct mgmt_jbuf *);
+static int imgr_upload(struct mgmt_jbuf *);
 
-static const struct nmgr_handler imgr_nmgr_handlers[] = {
+static const struct mgmt_handler imgr_nmgr_handlers[] = {
     [IMGMGR_NMGR_OP_LIST] = {
-        .nh_read = NULL,
-        .nh_write = NULL
+        .mh_read = NULL,
+        .mh_write = NULL
     },
     [IMGMGR_NMGR_OP_UPLOAD] = {
-        .nh_read = NULL,
-        .nh_write = imgr_upload
+        .mh_read = NULL,
+        .mh_write = imgr_upload
     },
     [IMGMGR_NMGR_OP_BOOT] = {
-        .nh_read = NULL,
-        .nh_write = NULL
+        .mh_read = NULL,
+        .mh_write = NULL
     },
     [IMGMGR_NMGR_OP_FILE] = {
 #if MYNEWT_VAL(IMGMGR_FS)
-        .nh_read = imgr_file_download,
-        .nh_write = imgr_file_upload
+        .mh_read = imgr_file_download,
+        .mh_write = imgr_file_upload
 #else
-        .nh_read = NULL,
-        .nh_write = NULL
+        .mh_read = NULL,
+        .mh_write = NULL
 #endif
     },
     [IMGMGR_NMGR_OP_LIST2] = {
-        .nh_read = imgr_list2,
-        .nh_write = NULL
+        .mh_read = imgr_list2,
+        .mh_write = NULL
     },
     [IMGMGR_NMGR_OP_BOOT2] = {
-        .nh_read = imgr_boot2_read,
-        .nh_write = imgr_boot2_write
+        .mh_read = imgr_boot2_read,
+        .mh_write = imgr_boot2_write
     },
     [IMGMGR_NMGR_OP_CORELIST] = {
 #if MYNEWT_VAL(IMGMGR_COREDUMP)
-        .nh_read = imgr_core_list,
-        .nh_write = NULL
+        .mh_read = imgr_core_list,
+        .mh_write = NULL
 #else
-        .nh_read = NULL,
-        .nh_write = NULL
+        .mh_read = NULL,
+        .mh_write = NULL
 #endif
     },
     [IMGMGR_NMGR_OP_CORELOAD] = {
 #if MYNEWT_VAL(IMGMGR_COREDUMP)
-        .nh_read = imgr_core_load,
-        .nh_write = imgr_core_erase,
+        .mh_read = imgr_core_load,
+        .mh_write = imgr_core_erase,
 #else
-        .nh_read = NULL,
-        .nh_write = NULL
+        .mh_read = NULL,
+        .mh_write = NULL
 #endif
     }
 };
 
-static struct nmgr_group imgr_nmgr_group = {
-    .ng_handlers = (struct nmgr_handler *)imgr_nmgr_handlers,
-    .ng_handlers_count =
-    sizeof(imgr_nmgr_handlers) / sizeof(imgr_nmgr_handlers[0]),
-    .ng_group_id = NMGR_GROUP_ID_IMAGE,
+#define IMGR_HANDLER_CNT                                                \
+    sizeof(imgr_nmgr_handlers) / sizeof(imgr_nmgr_handlers[0])
+
+static struct mgmt_group imgr_nmgr_group = {
+    .mg_handlers = (struct mgmt_handler *)imgr_nmgr_handlers,
+    .mg_handlers_count = IMGR_HANDLER_CNT,
+    .mg_group_id = MGMT_GROUP_ID_IMAGE,
 };
 
 struct imgr_state imgr_state;
@@ -230,7 +232,7 @@ imgr_find_by_hash(uint8_t *find, struct image_version *ver)
 }
 
 static int
-imgr_list2(struct nmgr_jbuf *njb)
+imgr_list2(struct mgmt_jbuf *njb)
 {
     struct json_encoder *enc;
     int i;
@@ -243,7 +245,7 @@ imgr_list2(struct nmgr_jbuf *njb)
     char hash_str[IMGMGR_HASH_STR + 1];
     int ver_len;
 
-    enc = &njb->njb_enc;
+    enc = &njb->mjb_enc;
 
     json_encode_object_start(enc);
     json_encode_array_name(enc, "images");
@@ -278,7 +280,7 @@ imgr_list2(struct nmgr_jbuf *njb)
 }
 
 static int
-imgr_upload(struct nmgr_jbuf *njb)
+imgr_upload(struct mgmt_jbuf *njb)
 {
     char img_data[BASE64_ENCODE_SIZE(IMGMGR_NMGR_MAX_MSG)];
     long long unsigned int off = UINT_MAX;
@@ -313,16 +315,16 @@ imgr_upload(struct nmgr_jbuf *njb)
     int len;
     int i;
 
-    rc = json_read_object(&njb->njb_buf, off_attr);
+    rc = json_read_object(&njb->mjb_buf, off_attr);
     if (rc || off == UINT_MAX) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
     len = strlen(img_data);
     if (len) {
         len = base64_decode(img_data, img_data);
         if (len < 0) {
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
             goto err;
         }
     }
@@ -332,12 +334,12 @@ imgr_upload(struct nmgr_jbuf *njb)
             /*
              * Image header is the first thing in the image.
              */
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
             goto err;
         }
         hdr = (struct image_header *)img_data;
         if (hdr->ih_magic != IMAGE_MAGIC) {
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
             goto err;
         }
 
@@ -382,11 +384,11 @@ imgr_upload(struct nmgr_jbuf *njb)
             }
             rc = flash_area_open(best, &imgr_state.upload.fa);
             if (rc) {
-                rc = NMGR_ERR_EINVAL;
+                rc = MGMT_ERR_EINVAL;
                 goto err;
             }
 	    if (IMAGE_SIZE(hdr) > imgr_state.upload.fa->fa_size) {
-                rc = NMGR_ERR_EINVAL;
+                rc = MGMT_ERR_EINVAL;
                 goto err;
             }
             /*
@@ -398,7 +400,7 @@ imgr_upload(struct nmgr_jbuf *njb)
             /*
              * No slot where to upload!
              */
-            rc = NMGR_ERR_ENOMEM;
+            rc = MGMT_ERR_ENOMEM;
             goto err;
         }
     } else if (off != imgr_state.upload.off) {
@@ -410,14 +412,14 @@ imgr_upload(struct nmgr_jbuf *njb)
     }
 
     if (!imgr_state.upload.fa) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
     if (len) {
         rc = flash_area_write(imgr_state.upload.fa, imgr_state.upload.off,
           img_data, len);
         if (rc) {
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
             goto err_close;
         }
         imgr_state.upload.off += len;
@@ -428,11 +430,11 @@ imgr_upload(struct nmgr_jbuf *njb)
         }
     }
 out:
-    enc = &njb->njb_enc;
+    enc = &njb->mjb_enc;
 
     json_encode_object_start(enc);
 
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
     json_encode_object_entry(enc, "rc", &jv);
 
     JSON_VALUE_UINT(&jv, imgr_state.upload.off);
@@ -445,7 +447,7 @@ err_close:
     flash_area_close(imgr_state.upload.fa);
     imgr_state.upload.fa = NULL;
 err:
-    nmgr_jbuf_setoerr(njb, rc);
+    mgmt_jbuf_setoerr(njb, rc);
     return 0;
 }
 
@@ -454,7 +456,7 @@ imgmgr_module_init(void)
 {
     int rc;
 
-    rc = nmgr_group_register(&imgr_nmgr_group);
+    rc = mgmt_group_register(&imgr_nmgr_group);
     SYSINIT_PANIC_ASSERT(rc == 0);
 
 #if MYNEWT_VAL(IMGMGR_CLI)

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/libs/imgmgr/src/imgmgr_boot.c
----------------------------------------------------------------------
diff --git a/libs/imgmgr/src/imgmgr_boot.c b/libs/imgmgr/src/imgmgr_boot.c
index 1168278..296c09c 100644
--- a/libs/imgmgr/src/imgmgr_boot.c
+++ b/libs/imgmgr/src/imgmgr_boot.c
@@ -24,7 +24,7 @@
 #include <string.h>
 #include <stdio.h>
 
-#include <newtmgr/newtmgr.h>
+#include <mgmt/mgmt.h>
 #include <bootutil/image.h>
 #include <bootutil/bootutil_misc.h>
 #include <json/json.h>
@@ -46,7 +46,7 @@ imgr_hash_jsonstr(struct json_encoder *enc, char *key, uint8_t *hash)
 }
 
 int
-imgr_boot2_read(struct nmgr_jbuf *njb)
+imgr_boot2_read(struct mgmt_jbuf *njb)
 {
     int rc;
     struct json_encoder *enc;
@@ -55,7 +55,7 @@ imgr_boot2_read(struct nmgr_jbuf *njb)
     uint8_t hash[IMGMGR_HASH_LEN];
     int slot;
 
-    enc = &njb->njb_enc;
+    enc = &njb->mjb_enc;
 
     json_encode_object_start(enc);
 
@@ -80,7 +80,7 @@ imgr_boot2_read(struct nmgr_jbuf *njb)
         imgr_hash_jsonstr(enc, "active", hash);
     }
 
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
     json_encode_object_entry(enc, "rc", &jv);
 
     json_encode_object_finish(enc);
@@ -89,7 +89,7 @@ imgr_boot2_read(struct nmgr_jbuf *njb)
 }
 
 int
-imgr_boot2_write(struct nmgr_jbuf *njb)
+imgr_boot2_write(struct mgmt_jbuf *njb)
 {
     char hash_str[IMGMGR_HASH_STR + 1];
     uint8_t hash[IMGMGR_HASH_LEN];
@@ -109,9 +109,9 @@ imgr_boot2_write(struct nmgr_jbuf *njb)
     int rc;
     struct image_version ver;
 
-    rc = json_read_object(&njb->njb_buf, boot_write_attr);
+    rc = json_read_object(&njb->mjb_buf, boot_write_attr);
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
@@ -120,28 +120,28 @@ imgr_boot2_write(struct nmgr_jbuf *njb)
     if (rc >= 0) {
         rc = boot_vect_write_test(rc);
         if (rc) {
-            rc = NMGR_ERR_EUNKNOWN;
+            rc = MGMT_ERR_EUNKNOWN;
             goto err;
         }
         rc = 0;
     } else {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
-    enc = &njb->njb_enc;
+    enc = &njb->mjb_enc;
 
     json_encode_object_start(enc);
 
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
+    json_encode_object_entry(&njb->mjb_enc, "rc", &jv);
 
     json_encode_object_finish(enc);
 
     return 0;
 
 err:
-    nmgr_jbuf_setoerr(njb, rc);
+    mgmt_jbuf_setoerr(njb, rc);
 
     return 0;
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/libs/imgmgr/src/imgmgr_coredump.c
----------------------------------------------------------------------
diff --git a/libs/imgmgr/src/imgmgr_coredump.c b/libs/imgmgr/src/imgmgr_coredump.c
index 79ff608..f9fe240 100644
--- a/libs/imgmgr/src/imgmgr_coredump.c
+++ b/libs/imgmgr/src/imgmgr_coredump.c
@@ -24,7 +24,7 @@
 #include <limits.h>
 
 #include "hal/flash_map.h"
-#include "newtmgr/newtmgr.h"
+#include "mgmt/mgmt.h"
 #include "coredump/coredump.h"
 #include "base64/base64.h"
 
@@ -32,7 +32,7 @@
 #include "imgmgr_priv.h"
 
 int
-imgr_core_list(struct nmgr_jbuf *njb)
+imgr_core_list(struct mgmt_jbuf *njb)
 {
     const struct flash_area *fa;
     struct coredump_header hdr;
@@ -42,19 +42,19 @@ imgr_core_list(struct nmgr_jbuf *njb)
 
     rc = flash_area_open(FLASH_AREA_CORE, &fa);
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
     } else {
         rc = flash_area_read(fa, 0, &hdr, sizeof(hdr));
         if (rc != 0) {
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
         } else if (hdr.ch_magic != COREDUMP_MAGIC) {
-            rc = NMGR_ERR_ENOENT;
+            rc = MGMT_ERR_ENOENT;
         } else {
             rc = 0;
         }
     }
 
-    enc = &njb->njb_enc;
+    enc = &njb->mjb_enc;
 
     json_encode_object_start(enc);
     JSON_VALUE_INT(&jv, rc);
@@ -65,7 +65,7 @@ imgr_core_list(struct nmgr_jbuf *njb)
 }
 
 int
-imgr_core_load(struct nmgr_jbuf *njb)
+imgr_core_load(struct mgmt_jbuf *njb)
 {
     unsigned long long off = UINT_MAX;
     const struct json_attr_t dload_attr[2] = {
@@ -86,25 +86,25 @@ imgr_core_load(struct nmgr_jbuf *njb)
 
     hdr = (struct coredump_header *)data;
 
-    rc = json_read_object(&njb->njb_buf, dload_attr);
+    rc = json_read_object(&njb->mjb_buf, dload_attr);
     if (rc || off == UINT_MAX) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
     rc = flash_area_open(FLASH_AREA_CORE, &fa);
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
     rc = flash_area_read(fa, 0, hdr, sizeof(*hdr));
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err_close;
     }
     if (hdr->ch_magic != COREDUMP_MAGIC) {
-        rc = NMGR_ERR_ENOENT;
+        rc = MGMT_ERR_ENOENT;
         goto err_close;
     }
     if (off > hdr->ch_size) {
@@ -117,13 +117,13 @@ imgr_core_load(struct nmgr_jbuf *njb)
 
     rc = flash_area_read(fa, off, data, sz);
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err_close;
     }
 
     sz = base64_encode(data, sz, encoded, 1);
 
-    enc = &njb->njb_enc;
+    enc = &njb->mjb_enc;
 
     json_encode_object_start(enc);
     JSON_VALUE_INT(&jv, 0);
@@ -142,7 +142,7 @@ imgr_core_load(struct nmgr_jbuf *njb)
 err_close:
     flash_area_close(fa);
 err:
-    nmgr_jbuf_setoerr(njb, rc);
+    mgmt_jbuf_setoerr(njb, rc);
     return 0;
 }
 
@@ -150,7 +150,7 @@ err:
  * Erase the area if it has a coredump, or the header is empty.
  */
 int
-imgr_core_erase(struct nmgr_jbuf *njb)
+imgr_core_erase(struct mgmt_jbuf *njb)
 {
     struct coredump_header hdr;
     const struct flash_area *fa;
@@ -158,7 +158,7 @@ imgr_core_erase(struct nmgr_jbuf *njb)
 
     rc = flash_area_open(FLASH_AREA_CORE, &fa);
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
@@ -167,14 +167,14 @@ imgr_core_erase(struct nmgr_jbuf *njb)
       (hdr.ch_magic == COREDUMP_MAGIC || hdr.ch_magic == 0xffffffff)) {
         rc = flash_area_erase(fa, 0, fa->fa_size);
         if (rc) {
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
         }
     }
     rc = 0;
 
     flash_area_close(fa);
 err:
-    nmgr_jbuf_setoerr(njb, rc);
+    mgmt_jbuf_setoerr(njb, rc);
     return 0;
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/libs/imgmgr/src/imgmgr_priv.h
----------------------------------------------------------------------
diff --git a/libs/imgmgr/src/imgmgr_priv.h b/libs/imgmgr/src/imgmgr_priv.h
index 066ddce..1402cfb 100644
--- a/libs/imgmgr/src/imgmgr_priv.h
+++ b/libs/imgmgr/src/imgmgr_priv.h
@@ -101,15 +101,15 @@ struct imgr_state {
 extern struct imgr_state imgr_state;
 
 struct nmgr_jbuf;
-int imgr_boot2_read(struct nmgr_jbuf *);
-int imgr_boot2_write(struct nmgr_jbuf *);
-int imgr_file_upload(struct nmgr_jbuf *);
-int imgr_file_download(struct nmgr_jbuf *);
-int imgr_core_list(struct nmgr_jbuf *);
-int imgr_core_load(struct nmgr_jbuf *);
-int imgr_core_erase(struct nmgr_jbuf *);
-int imgr_splitapp_read(struct nmgr_jbuf *);
-int imgr_splitapp_write(struct nmgr_jbuf *);
+int imgr_boot2_read(struct mgmt_jbuf *);
+int imgr_boot2_write(struct mgmt_jbuf *);
+int imgr_file_upload(struct mgmt_jbuf *);
+int imgr_file_download(struct mgmt_jbuf *);
+int imgr_core_list(struct mgmt_jbuf *);
+int imgr_core_load(struct mgmt_jbuf *);
+int imgr_core_erase(struct mgmt_jbuf *);
+int imgr_splitapp_read(struct mgmt_jbuf *);
+int imgr_splitapp_write(struct mgmt_jbuf *);
 int imgr_find_by_ver(struct image_version *find, uint8_t *hash);
 int imgr_find_by_hash(uint8_t *find, struct image_version *ver);
 int imgr_cli_register(void);

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/mgmt/mgmt/include/mgmt/mgmt.h
----------------------------------------------------------------------
diff --git a/mgmt/mgmt/include/mgmt/mgmt.h b/mgmt/mgmt/include/mgmt/mgmt.h
index 3f4a1f6..01e1da5 100644
--- a/mgmt/mgmt/include/mgmt/mgmt.h
+++ b/mgmt/mgmt/include/mgmt/mgmt.h
@@ -23,6 +23,21 @@
 #include <inttypes.h>
 #include <json/json.h>
 
+#include <os/queue.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* MTU for newtmgr responses */
+#define MGMT_MAX_MTU 1024
+
+#ifndef STR
+/* Stringification of constants */
+#define STR(x) #x
+#endif
+
+
 /* First 64 groups are reserved for system level newtmgr commands.
  * Per-user commands are then defined after group 64.
  */
@@ -35,6 +50,17 @@
 #define MGMT_GROUP_ID_SPLIT     (6)
 #define MGMT_GROUP_ID_PERUSER   (64)
 
+/**
+ * Newtmgr JSON error codes
+ */
+#define MGMT_ERR_EOK      (0)
+#define MGMT_ERR_EUNKNOWN (1)
+#define MGMT_ERR_ENOMEM   (2)
+#define MGMT_ERR_EINVAL   (3)
+#define MGMT_ERR_ETIMEOUT (4)
+#define MGMT_ERR_ENOENT   (5)
+#define MGMT_ERR_EPERUSER (256)
+
 struct mgmt_jbuf {
     /* json_buffer must be first element in the structure */
     struct json_buffer mjb_buf;
@@ -49,8 +75,8 @@ struct mgmt_jbuf {
 typedef int (*mgmt_handler_func_t)(struct mgmt_jbuf *);
 
 struct mgmt_handler {
-    mgmt_handler_func_t nh_read;
-    mgmt_handler_func_t nh_write;
+    mgmt_handler_func_t mh_read;
+    mgmt_handler_func_t mh_write;
 };
 
 struct mgmt_group {
@@ -60,4 +86,17 @@ struct mgmt_group {
     STAILQ_ENTRY(mgmt_group) mg_next;
 };
 
+#define MGMT_GROUP_SET_HANDLERS(__group, __handlers)       \
+    (__group)->mg_handlers = (__handlers);                 \
+    (__group)->mg_handlers_count = (sizeof((__handlers)) / \
+            sizeof(struct mgmt_handler));
+
+int mgmt_group_register(struct mgmt_group *group);
+void mgmt_jbuf_setoerr(struct mgmt_jbuf *njb, int errcode);
+struct mgmt_handler *mgmt_find_handler(uint16_t group_id, uint16_t handler_id);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _MGMT_MGMT_H_ */

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/mgmt/mgmt/pkg.yml
----------------------------------------------------------------------
diff --git a/mgmt/mgmt/pkg.yml b/mgmt/mgmt/pkg.yml
index 3ceb659..bfe0435 100644
--- a/mgmt/mgmt/pkg.yml
+++ b/mgmt/mgmt/pkg.yml
@@ -25,6 +25,3 @@ pkg.keywords:
 
 pkg.deps:
     - kernel/os
-
-pkg.apis:
-    - newtmgr

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/mgmt/mgmt/src/mgmt.c
----------------------------------------------------------------------
diff --git a/mgmt/mgmt/src/mgmt.c b/mgmt/mgmt/src/mgmt.c
index 82e698b..5064fe3 100644
--- a/mgmt/mgmt/src/mgmt.c
+++ b/mgmt/mgmt/src/mgmt.c
@@ -62,7 +62,6 @@ err:
     return (rc);
 }
 
-
 int
 mgmt_group_register(struct mgmt_group *group)
 {
@@ -135,3 +134,15 @@ mgmt_find_handler(uint16_t group_id, uint16_t handler_id)
 err:
     return (NULL);
 }
+
+void
+mgmt_jbuf_setoerr(struct mgmt_jbuf *njb, int errcode)
+{
+    struct json_value jv;
+
+    json_encode_object_start(&njb->mjb_enc);
+    JSON_VALUE_INT(&jv, errcode);
+    json_encode_object_entry(&njb->mjb_enc, "rc", &jv);
+    json_encode_object_finish(&njb->mjb_enc);
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/mgmt/newtmgr/include/newtmgr/newtmgr.h
----------------------------------------------------------------------
diff --git a/mgmt/newtmgr/include/newtmgr/newtmgr.h b/mgmt/newtmgr/include/newtmgr/newtmgr.h
index 7b4f35f..8d6aaee 100644
--- a/mgmt/newtmgr/include/newtmgr/newtmgr.h
+++ b/mgmt/newtmgr/include/newtmgr/newtmgr.h
@@ -28,14 +28,6 @@
 extern "C" {
 #endif
 
-/* MTU for newtmgr responses */
-#define NMGR_MAX_MTU 1024
-
-#ifndef STR
-/* Stringification of constants */
-#define STR(x) #x
-#endif
-
 /* First 64 groups are reserved for system level newtmgr commands.
  * Per-user commands are then defined after group 64.
  */
@@ -55,17 +47,6 @@ extern "C" {
 
 #define NMGR_F_JSON_RSP_COMPLETE     (0x0001)
 
-/**
- * Newtmgr JSON error codes
- */
-#define NMGR_ERR_EOK      (0)
-#define NMGR_ERR_EUNKNOWN (1)
-#define NMGR_ERR_ENOMEM   (2)
-#define NMGR_ERR_EINVAL   (3)
-#define NMGR_ERR_ETIMEOUT (4)
-#define NMGR_ERR_ENOENT   (5)
-#define NMGR_ERR_EPERUSER (256)
-
 struct nmgr_hdr {
     uint8_t  nh_op;             /* NMGR_OP_XXX */
     uint8_t  nh_flags;
@@ -75,43 +56,8 @@ struct nmgr_hdr {
     uint8_t  nh_id;             /* message ID within group */
 };
 
-struct nmgr_jbuf {
-    /* json_buffer must be first element in the structure */
-    struct json_buffer njb_buf;
-    struct json_encoder njb_enc;
-    struct os_mbuf *njb_in_m;
-    struct os_mbuf *njb_out_m;
-    struct nmgr_hdr *njb_hdr;
-    uint16_t njb_off;
-    uint16_t njb_end;
-};
-void nmgr_jbuf_setoerr(struct nmgr_jbuf *njb, int errcode);
-
-typedef int (*nmgr_handler_func_t)(struct nmgr_jbuf *);
-
-#define NMGR_HANDLER_FUNC(__name)                                           \
-    int __name(struct nmgr_hdr *nmr, struct os_mbuf *req, uint16_t srcoff,  \
-            struct os_mbuf *rsp)
-
-struct nmgr_handler {
-    nmgr_handler_func_t nh_read;
-    nmgr_handler_func_t nh_write;
-};
-
-struct nmgr_group {
-    struct nmgr_handler *ng_handlers;
-    uint16_t ng_handlers_count;
-    uint16_t ng_group_id;
-    STAILQ_ENTRY(nmgr_group) ng_next;
-};
-
-#define NMGR_GROUP_SET_HANDLERS(__group, __handlers)       \
-    (__group)->ng_handlers = (__handlers);                 \
-    (__group)->ng_handlers_count = (sizeof((__handlers)) / \
-            sizeof(struct nmgr_handler)); 
-
 struct nmgr_transport;
-typedef int (*nmgr_transport_out_func_t)(struct nmgr_transport *nt, 
+typedef int (*nmgr_transport_out_func_t)(struct nmgr_transport *nt,
         struct os_mbuf *m);
 typedef uint16_t (*nmgr_transport_get_mtu_func_t)(struct os_mbuf *m);
 
@@ -121,14 +67,11 @@ struct nmgr_transport {
     nmgr_transport_get_mtu_func_t nt_get_mtu;
 };
 
-
 int nmgr_task_init(void);
 int nmgr_transport_init(struct nmgr_transport *nt,
         nmgr_transport_out_func_t output_func,
         nmgr_transport_get_mtu_func_t get_mtu_func);
 int nmgr_rx_req(struct nmgr_transport *nt, struct os_mbuf *req);
-int nmgr_rsp_extend(struct nmgr_hdr *, struct os_mbuf *, void *data, uint16_t);
-int nmgr_group_register(struct nmgr_group *group);
 
 #ifdef __cplusplus
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/mgmt/newtmgr/nmgr_os/pkg.yml
----------------------------------------------------------------------
diff --git a/mgmt/newtmgr/nmgr_os/pkg.yml b/mgmt/newtmgr/nmgr_os/pkg.yml
index fbed196..3de13de 100644
--- a/mgmt/newtmgr/nmgr_os/pkg.yml
+++ b/mgmt/newtmgr/nmgr_os/pkg.yml
@@ -29,6 +29,4 @@ pkg.deps:
     - encoding/json
     - libs/util
     - sys/reboot
-
-pkg.req_apis:
-    - newtmgr
+    - mgmt/mgmt

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/mgmt/newtmgr/nmgr_os/src/newtmgr_os.c
----------------------------------------------------------------------
diff --git a/mgmt/newtmgr/nmgr_os/src/newtmgr_os.c b/mgmt/newtmgr/nmgr_os/src/newtmgr_os.c
index 6c1a12f..e1fc156 100644
--- a/mgmt/newtmgr/nmgr_os/src/newtmgr_os.c
+++ b/mgmt/newtmgr/nmgr_os/src/newtmgr_os.c
@@ -25,7 +25,7 @@
 
 #include <hal/hal_system.h>
 
-#include <newtmgr/newtmgr.h>
+#include <mgmt/mgmt.h>
 
 #include <console/console.h>
 #include <util/datetime.h>
@@ -35,15 +35,15 @@
 
 static struct os_callout_func nmgr_reset_callout;
 
-static int nmgr_def_echo(struct nmgr_jbuf *);
-static int nmgr_def_console_echo(struct nmgr_jbuf *);
-static int nmgr_def_taskstat_read(struct nmgr_jbuf *njb);
-static int nmgr_def_mpstat_read(struct nmgr_jbuf *njb);
-static int nmgr_datetime_get(struct nmgr_jbuf *njb);
-static int nmgr_datetime_set(struct nmgr_jbuf *njb);
-static int nmgr_reset(struct nmgr_jbuf *njb);
+static int nmgr_def_echo(struct mgmt_jbuf *);
+static int nmgr_def_console_echo(struct mgmt_jbuf *);
+static int nmgr_def_taskstat_read(struct mgmt_jbuf *njb);
+static int nmgr_def_mpstat_read(struct mgmt_jbuf *njb);
+static int nmgr_datetime_get(struct mgmt_jbuf *njb);
+static int nmgr_datetime_set(struct mgmt_jbuf *njb);
+static int nmgr_reset(struct mgmt_jbuf *njb);
 
-static const struct nmgr_handler nmgr_def_group_handlers[] = {
+static const struct mgmt_handler nmgr_def_group_handlers[] = {
     [NMGR_ID_ECHO] = {
         nmgr_def_echo, nmgr_def_echo
     },
@@ -67,14 +67,14 @@ static const struct nmgr_handler nmgr_def_group_handlers[] = {
 #define NMGR_DEF_GROUP_SZ                                               \
     (sizeof(nmgr_def_group_handlers) / sizeof(nmgr_def_group_handlers[0]))
 
-static struct nmgr_group nmgr_def_group = {
-    .ng_handlers = (struct nmgr_handler *)nmgr_def_group_handlers,
-    .ng_handlers_count = NMGR_DEF_GROUP_SZ,
-    .ng_group_id = NMGR_GROUP_ID_DEFAULT
+static struct mgmt_group nmgr_def_group = {
+    .mg_handlers = (struct mgmt_handler *)nmgr_def_group_handlers,
+    .mg_handlers_count = NMGR_DEF_GROUP_SZ,
+    .mg_group_id = MGMT_GROUP_ID_DEFAULT
 };
 
 static int
-nmgr_def_echo(struct nmgr_jbuf *njb)
+nmgr_def_echo(struct mgmt_jbuf *njb)
 {
     uint8_t echo_buf[128];
     struct json_attr_t attrs[] = {
@@ -90,10 +90,10 @@ nmgr_def_echo(struct nmgr_jbuf *njb)
         goto err;
     }
 
-    json_encode_object_start(&njb->njb_enc);
+    json_encode_object_start(&njb->mjb_enc);
     JSON_VALUE_STRINGN(&jv, (char *) echo_buf, strlen((char *) echo_buf));
-    json_encode_object_entry(&njb->njb_enc, "r", &jv);
-    json_encode_object_finish(&njb->njb_enc);
+    json_encode_object_entry(&njb->mjb_enc, "r", &jv);
+    json_encode_object_finish(&njb->mjb_enc);
 
     return (0);
 err:
@@ -101,7 +101,7 @@ err:
 }
 
 static int
-nmgr_def_console_echo(struct nmgr_jbuf *njb)
+nmgr_def_console_echo(struct mgmt_jbuf *njb)
 {
     long long int echo_on = 1;
     int rc;
@@ -117,7 +117,7 @@ nmgr_def_console_echo(struct nmgr_jbuf *njb)
         }
     };
 
-    rc = json_read_object(&njb->njb_buf, attrs);
+    rc = json_read_object(&njb->mjb_buf, attrs);
     if (rc) {
         return OS_EINVAL;
     }
@@ -131,18 +131,18 @@ nmgr_def_console_echo(struct nmgr_jbuf *njb)
 }
 
 static int
-nmgr_def_taskstat_read(struct nmgr_jbuf *njb)
+nmgr_def_taskstat_read(struct mgmt_jbuf *njb)
 {
     struct os_task *prev_task;
     struct os_task_info oti;
     struct json_value jv;
 
-    json_encode_object_start(&njb->njb_enc);
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
+    json_encode_object_start(&njb->mjb_enc);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
+    json_encode_object_entry(&njb->mjb_enc, "rc", &jv);
 
-    json_encode_object_key(&njb->njb_enc, "tasks");
-    json_encode_object_start(&njb->njb_enc);
+    json_encode_object_key(&njb->mjb_enc, "tasks");
+    json_encode_object_start(&njb->mjb_enc);
 
     prev_task = NULL;
     while (1) {
@@ -151,48 +151,48 @@ nmgr_def_taskstat_read(struct nmgr_jbuf *njb)
             break;
         }
 
-        json_encode_object_key(&njb->njb_enc, oti.oti_name);
+        json_encode_object_key(&njb->mjb_enc, oti.oti_name);
 
-        json_encode_object_start(&njb->njb_enc);
+        json_encode_object_start(&njb->mjb_enc);
         JSON_VALUE_UINT(&jv, oti.oti_prio);
-        json_encode_object_entry(&njb->njb_enc, "prio", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "prio", &jv);
         JSON_VALUE_UINT(&jv, oti.oti_taskid);
-        json_encode_object_entry(&njb->njb_enc, "tid", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "tid", &jv);
         JSON_VALUE_UINT(&jv, oti.oti_state);
-        json_encode_object_entry(&njb->njb_enc, "state", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "state", &jv);
         JSON_VALUE_UINT(&jv, oti.oti_stkusage);
-        json_encode_object_entry(&njb->njb_enc, "stkuse", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "stkuse", &jv);
         JSON_VALUE_UINT(&jv, oti.oti_stksize);
-        json_encode_object_entry(&njb->njb_enc, "stksiz", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "stksiz", &jv);
         JSON_VALUE_UINT(&jv, oti.oti_cswcnt);
-        json_encode_object_entry(&njb->njb_enc, "cswcnt", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "cswcnt", &jv);
         JSON_VALUE_UINT(&jv, oti.oti_runtime);
-        json_encode_object_entry(&njb->njb_enc, "runtime", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "runtime", &jv);
         JSON_VALUE_UINT(&jv, oti.oti_last_checkin);
-        json_encode_object_entry(&njb->njb_enc, "last_checkin", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "last_checkin", &jv);
         JSON_VALUE_UINT(&jv, oti.oti_next_checkin);
-        json_encode_object_entry(&njb->njb_enc, "next_checkin", &jv);
-        json_encode_object_finish(&njb->njb_enc);
+        json_encode_object_entry(&njb->mjb_enc, "next_checkin", &jv);
+        json_encode_object_finish(&njb->mjb_enc);
     }
-    json_encode_object_finish(&njb->njb_enc);
-    json_encode_object_finish(&njb->njb_enc);
+    json_encode_object_finish(&njb->mjb_enc);
+    json_encode_object_finish(&njb->mjb_enc);
 
     return (0);
 }
 
 static int
-nmgr_def_mpstat_read(struct nmgr_jbuf *njb)
+nmgr_def_mpstat_read(struct mgmt_jbuf *njb)
 {
     struct os_mempool *prev_mp;
     struct os_mempool_info omi;
     struct json_value jv;
 
-    json_encode_object_start(&njb->njb_enc);
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
+    json_encode_object_start(&njb->mjb_enc);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
+    json_encode_object_entry(&njb->mjb_enc, "rc", &jv);
 
-    json_encode_object_key(&njb->njb_enc, "mpools");
-    json_encode_object_start(&njb->njb_enc);
+    json_encode_object_key(&njb->mjb_enc, "mpools");
+    json_encode_object_start(&njb->mjb_enc);
 
     prev_mp = NULL;
     while (1) {
@@ -201,26 +201,26 @@ nmgr_def_mpstat_read(struct nmgr_jbuf *njb)
             break;
         }
 
-        json_encode_object_key(&njb->njb_enc, omi.omi_name);
+        json_encode_object_key(&njb->mjb_enc, omi.omi_name);
 
-        json_encode_object_start(&njb->njb_enc);
+        json_encode_object_start(&njb->mjb_enc);
         JSON_VALUE_UINT(&jv, omi.omi_block_size);
-        json_encode_object_entry(&njb->njb_enc, "blksiz", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "blksiz", &jv);
         JSON_VALUE_UINT(&jv, omi.omi_num_blocks);
-        json_encode_object_entry(&njb->njb_enc, "nblks", &jv);
+        json_encode_object_entry(&njb->mjb_enc, "nblks", &jv);
         JSON_VALUE_UINT(&jv, omi.omi_num_free);
-        json_encode_object_entry(&njb->njb_enc, "nfree", &jv);
-        json_encode_object_finish(&njb->njb_enc);
+        json_encode_object_entry(&njb->mjb_enc, "nfree", &jv);
+        json_encode_object_finish(&njb->mjb_enc);
     }
 
-    json_encode_object_finish(&njb->njb_enc);
-    json_encode_object_finish(&njb->njb_enc);
+    json_encode_object_finish(&njb->mjb_enc);
+    json_encode_object_finish(&njb->mjb_enc);
 
     return (0);
 }
 
 static int
-nmgr_datetime_get(struct nmgr_jbuf *njb)
+nmgr_datetime_get(struct mgmt_jbuf *njb)
 {
     struct os_timeval tv;
     struct os_timezone tz;
@@ -228,9 +228,9 @@ nmgr_datetime_get(struct nmgr_jbuf *njb)
     struct json_value jv;
     int rc;
 
-    json_encode_object_start(&njb->njb_enc);
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
+    json_encode_object_start(&njb->mjb_enc);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
+    json_encode_object_entry(&njb->mjb_enc, "rc", &jv);
 
     /* Display the current datetime */
     rc = os_gettimeofday(&tv, &tz);
@@ -242,8 +242,8 @@ nmgr_datetime_get(struct nmgr_jbuf *njb)
     }
 
     JSON_VALUE_STRING(&jv, buf)
-    json_encode_object_entry(&njb->njb_enc, "datetime", &jv);
-    json_encode_object_finish(&njb->njb_enc);
+    json_encode_object_entry(&njb->mjb_enc, "datetime", &jv);
+    json_encode_object_finish(&njb->mjb_enc);
 
     return OS_OK;
 err:
@@ -251,7 +251,7 @@ err:
 }
 
 static int
-nmgr_datetime_set(struct nmgr_jbuf *njb)
+nmgr_datetime_set(struct mgmt_jbuf *njb)
 {
     struct os_timeval tv;
     struct os_timezone tz;
@@ -272,7 +272,7 @@ nmgr_datetime_set(struct nmgr_jbuf *njb)
         }
     };
 
-    rc = json_read_object(&njb->njb_buf, datetime_write_attr);
+    rc = json_read_object(&njb->mjb_buf, datetime_write_attr);
     if (rc) {
         rc = OS_EINVAL;
         goto out;
@@ -292,10 +292,10 @@ nmgr_datetime_set(struct nmgr_jbuf *njb)
     }
 
 out:
-    json_encode_object_start(&njb->njb_enc);
+    json_encode_object_start(&njb->mjb_enc);
     JSON_VALUE_INT(&jv, rc);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
-    json_encode_object_finish(&njb->njb_enc);
+    json_encode_object_entry(&njb->mjb_enc, "rc", &jv);
+    json_encode_object_finish(&njb->mjb_enc);
     return OS_OK;
 }
 
@@ -306,12 +306,12 @@ nmgr_reset_tmo(void *arg)
 }
 
 static int
-nmgr_reset(struct nmgr_jbuf *njb)
+nmgr_reset(struct mgmt_jbuf *njb)
 {
     log_reboot(SOFT_REBOOT);
     os_callout_reset(&nmgr_reset_callout.cf_c, OS_TICKS_PER_SEC / 4);
 
-    nmgr_jbuf_setoerr(njb, 0);
+    mgmt_jbuf_setoerr(njb, 0);
 
     return OS_OK;
 }
@@ -321,6 +321,6 @@ nmgr_os_groups_register(struct os_eventq *nmgr_evq)
 {
     os_callout_func_init(&nmgr_reset_callout, nmgr_evq, nmgr_reset_tmo, NULL);
 
-    return nmgr_group_register(&nmgr_def_group);
+    return mgmt_group_register(&nmgr_def_group);
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/mgmt/newtmgr/src/newtmgr.c
----------------------------------------------------------------------
diff --git a/mgmt/newtmgr/src/newtmgr.c b/mgmt/newtmgr/src/newtmgr.c
index 46f3d30..83ada60 100644
--- a/mgmt/newtmgr/src/newtmgr.c
+++ b/mgmt/newtmgr/src/newtmgr.c
@@ -25,137 +25,21 @@
 #include "os/os.h"
 #include "os/endian.h"
 
+#include <mgmt/mgmt.h>
+
 #include "newtmgr/newtmgr.h"
 #include "nmgr_os/nmgr_os.h"
 
 os_stack_t newtmgr_stack[OS_STACK_ALIGN(MYNEWT_VAL(NEWTMGR_STACK_SIZE))];
 
-struct os_mutex g_nmgr_group_list_lock;
-
 static struct os_eventq g_nmgr_evq;
 static struct os_task g_nmgr_task;
 
-STAILQ_HEAD(, nmgr_group) g_nmgr_group_list =
-    STAILQ_HEAD_INITIALIZER(g_nmgr_group_list);
-
 /* JSON buffer for NMGR task
  */
-static struct nmgr_jbuf nmgr_task_jbuf;
-
-int
-nmgr_group_list_lock(void)
-{
-    int rc;
-
-    if (!os_started()) {
-        return (0);
-    }
-
-    rc = os_mutex_pend(&g_nmgr_group_list_lock, OS_WAIT_FOREVER);
-    if (rc != 0) {
-        goto err;
-    }
-
-    return (0);
-err:
-    return (rc);
-}
-
-int
-nmgr_group_list_unlock(void)
-{
-    int rc;
-
-    if (!os_started()) {
-        return (0);
-    }
-
-    rc = os_mutex_release(&g_nmgr_group_list_lock);
-    if (rc != 0) {
-        goto err;
-    }
-
-    return (0);
-err:
-    return (rc);
-}
-
-
-int
-nmgr_group_register(struct nmgr_group *group)
-{
-    int rc;
-
-    rc = nmgr_group_list_lock();
-    if (rc != 0) {
-        goto err;
-    }
-
-    STAILQ_INSERT_TAIL(&g_nmgr_group_list, group, ng_next);
-
-    rc = nmgr_group_list_unlock();
-    if (rc != 0) {
-        goto err;
-    }
-
-
-    return (0);
-err:
-    return (rc);
-}
-
-static struct nmgr_group *
-nmgr_find_group(uint16_t group_id)
-{
-    struct nmgr_group *group;
-    int rc;
-
-    group = NULL;
-
-    rc = nmgr_group_list_lock();
-    if (rc != 0) {
-        goto err;
-    }
-
-    STAILQ_FOREACH(group, &g_nmgr_group_list, ng_next) {
-        if (group->ng_group_id == group_id) {
-            break;
-        }
-    }
-
-    rc = nmgr_group_list_unlock();
-    if (rc != 0) {
-        goto err;
-    }
+static struct mgmt_jbuf nmgr_task_jbuf;
 
-    return (group);
-err:
-    return (NULL);
-}
-
-static struct nmgr_handler *
-nmgr_find_handler(uint16_t group_id, uint16_t handler_id)
-{
-    struct nmgr_group *group;
-    struct nmgr_handler *handler;
-
-    group = nmgr_find_group(group_id);
-    if (!group) {
-        goto err;
-    }
-
-    if (handler_id >= group->ng_handlers_count) {
-        goto err;
-    }
-
-    handler = &group->ng_handlers[handler_id];
-
-    return (handler);
-err:
-    return (NULL);
-}
-
-int
+static int
 nmgr_rsp_extend(struct nmgr_hdr *hdr, struct os_mbuf *rsp, void *data,
         uint16_t len)
 {
@@ -175,21 +59,21 @@ err:
 static char
 nmgr_jbuf_read_next(struct json_buffer *jb)
 {
-    struct nmgr_jbuf *njb;
+    struct mgmt_jbuf *njb;
     char c;
     int rc;
 
-    njb = (struct nmgr_jbuf *) jb;
+    njb = (struct mgmt_jbuf *) jb;
 
-    if (njb->njb_off + 1 > njb->njb_end) {
+    if (njb->mjb_off + 1 > njb->mjb_end) {
         return '\0';
     }
 
-    rc = os_mbuf_copydata(njb->njb_in_m, njb->njb_off, 1, &c);
+    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, 1, &c);
     if (rc == -1) {
         c = '\0';
     }
-    ++njb->njb_off;
+    ++njb->mjb_off;
 
     return (c);
 }
@@ -197,18 +81,18 @@ nmgr_jbuf_read_next(struct json_buffer *jb)
 static char
 nmgr_jbuf_read_prev(struct json_buffer *jb)
 {
-    struct nmgr_jbuf *njb;
+    struct mgmt_jbuf *njb;
     char c;
     int rc;
 
-    njb = (struct nmgr_jbuf *) jb;
+    njb = (struct mgmt_jbuf *) jb;
 
-    if (njb->njb_off == 0) {
+    if (njb->mjb_off == 0) {
         return '\0';
     }
 
-    --njb->njb_off;
-    rc = os_mbuf_copydata(njb->njb_in_m, njb->njb_off, 1, &c);
+    --njb->mjb_off;
+    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, 1, &c);
     if (rc == -1) {
         c = '\0';
     }
@@ -219,17 +103,17 @@ nmgr_jbuf_read_prev(struct json_buffer *jb)
 static int
 nmgr_jbuf_readn(struct json_buffer *jb, char *buf, int size)
 {
-    struct nmgr_jbuf *njb;
+    struct mgmt_jbuf *njb;
     int read;
     int left;
     int rc;
 
-    njb = (struct nmgr_jbuf *) jb;
+    njb = (struct mgmt_jbuf *) jb;
 
-    left = njb->njb_end - njb->njb_off;
+    left = njb->mjb_end - njb->mjb_off;
     read = size > left ? left : size;
 
-    rc = os_mbuf_copydata(njb->njb_in_m, njb->njb_off, read, buf);
+    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, read, buf);
     if (rc != 0) {
         goto err;
     }
@@ -242,12 +126,14 @@ err:
 int
 nmgr_jbuf_write(void *arg, char *data, int len)
 {
-    struct nmgr_jbuf *njb;
+    struct mgmt_jbuf *njb;
+    struct nmgr_hdr *hdr;
     int rc;
 
-    njb = (struct nmgr_jbuf *) arg;
+    njb = (struct mgmt_jbuf *) arg;
+    hdr = (struct nmgr_hdr *)njb->mjb_arg;
 
-    rc = nmgr_rsp_extend(njb->njb_hdr, njb->njb_out_m, data, len);
+    rc = nmgr_rsp_extend(hdr, njb->mjb_out_m, data, len);
     if (rc != 0) {
         assert(0);
         goto err;
@@ -259,46 +145,35 @@ err:
 }
 
 static int
-nmgr_jbuf_init(struct nmgr_jbuf *njb)
+nmgr_jbuf_init(struct mgmt_jbuf *njb)
 {
     memset(njb, 0, sizeof(*njb));
 
-    njb->njb_buf.jb_read_next = nmgr_jbuf_read_next;
-    njb->njb_buf.jb_read_prev = nmgr_jbuf_read_prev;
-    njb->njb_buf.jb_readn = nmgr_jbuf_readn;
-    njb->njb_enc.je_write = nmgr_jbuf_write;
-    njb->njb_enc.je_arg = njb;
+    njb->mjb_buf.jb_read_next = nmgr_jbuf_read_next;
+    njb->mjb_buf.jb_read_prev = nmgr_jbuf_read_prev;
+    njb->mjb_buf.jb_readn = nmgr_jbuf_readn;
+    njb->mjb_enc.je_write = nmgr_jbuf_write;
+    njb->mjb_enc.je_arg = njb;
 
     return (0);
 }
 
 static void
-nmgr_jbuf_setibuf(struct nmgr_jbuf *njb, struct os_mbuf *m,
+nmgr_jbuf_setibuf(struct mgmt_jbuf *njb, struct os_mbuf *m,
         uint16_t off, uint16_t len)
 {
-    njb->njb_off = off;
-    njb->njb_end = off + len;
-    njb->njb_in_m = m;
-    njb->njb_enc.je_wr_commas = 0;
+    njb->mjb_off = off;
+    njb->mjb_end = off + len;
+    njb->mjb_in_m = m;
+    njb->mjb_enc.je_wr_commas = 0;
 }
 
 static void
-nmgr_jbuf_setobuf(struct nmgr_jbuf *njb, struct nmgr_hdr *hdr,
+nmgr_jbuf_setobuf(struct mgmt_jbuf *njb, struct nmgr_hdr *hdr,
         struct os_mbuf *m)
 {
-    njb->njb_out_m = m;
-    njb->njb_hdr = hdr;
-}
-
-void
-nmgr_jbuf_setoerr(struct nmgr_jbuf *njb, int errcode)
-{
-    struct json_value jv;
-
-    json_encode_object_start(&njb->njb_enc);
-    JSON_VALUE_INT(&jv, errcode);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
-    json_encode_object_finish(&njb->njb_enc);
+    njb->mjb_out_m = m;
+    njb->mjb_arg = hdr;
 }
 
 static struct nmgr_hdr*
@@ -332,10 +207,10 @@ nmgr_send_err_rsp(struct nmgr_transport *nt, struct os_mbuf *m,
     if (!hdr) {
         return;
     }
-    nmgr_jbuf_setoerr(&nmgr_task_jbuf, rc);
+    mgmt_jbuf_setoerr(&nmgr_task_jbuf, rc);
     hdr->nh_len = htons(hdr->nh_len);
     hdr->nh_flags = NMGR_F_JSON_RSP_COMPLETE;
-    nt->nt_output(nt, nmgr_task_jbuf.njb_out_m);
+    nt->nt_output(nt, nmgr_task_jbuf.mjb_out_m);
 }
 
 static int
@@ -350,7 +225,7 @@ nmgr_send_rspfrag(struct nmgr_transport *nt, struct nmgr_hdr *rsp_hdr,
 
     rspfrag = os_msys_get_pkthdr(len, OS_MBUF_USRHDR_LEN(req));
     if (!rspfrag) {
-        rc = NMGR_ERR_ENOMEM;
+        rc = MGMT_ERR_ENOMEM;
         goto err;
     }
 
@@ -358,12 +233,12 @@ nmgr_send_rspfrag(struct nmgr_transport *nt, struct nmgr_hdr *rsp_hdr,
     memcpy(OS_MBUF_USRHDR(rspfrag), OS_MBUF_USRHDR(req), OS_MBUF_USRHDR_LEN(req));
 
     if (os_mbuf_append(rspfrag, rsp_hdr, sizeof(struct nmgr_hdr))) {
-        rc = NMGR_ERR_ENOMEM;
+        rc = MGMT_ERR_ENOMEM;
         goto err;
     }
 
     if (os_mbuf_appendfrom(rspfrag, rsp, *offset, len)) {
-        rc = NMGR_ERR_ENOMEM;
+        rc = MGMT_ERR_ENOMEM;
         goto err;
     }
 
@@ -372,13 +247,13 @@ nmgr_send_rspfrag(struct nmgr_transport *nt, struct nmgr_hdr *rsp_hdr,
     len = htons(len);
 
     if (os_mbuf_copyinto(rspfrag, offsetof(struct nmgr_hdr, nh_len), &len, sizeof(len))) {
-        rc = NMGR_ERR_ENOMEM;
+        rc = MGMT_ERR_ENOMEM;
         goto err;
     }
 
     nt->nt_output(nt, rspfrag);
 
-    return NMGR_ERR_EOK;
+    return MGMT_ERR_EOK;
 err:
     if (rspfrag) {
         os_mbuf_free_chain(rspfrag);
@@ -417,7 +292,7 @@ nmgr_rsp_fragment(struct nmgr_transport *nt, struct nmgr_hdr *rsp_hdr,
     } while (!((rsp_hdr->nh_flags & NMGR_F_JSON_RSP_COMPLETE) ==
                 NMGR_F_JSON_RSP_COMPLETE));
 
-    return NMGR_ERR_EOK;
+    return MGMT_ERR_EOK;
 err:
     return rc;
 }
@@ -426,7 +301,7 @@ static void
 nmgr_handle_req(struct nmgr_transport *nt, struct os_mbuf *req)
 {
     struct os_mbuf *rsp;
-    struct nmgr_handler *handler;
+    struct mgmt_handler *handler;
     struct nmgr_hdr *rsp_hdr;
     struct nmgr_hdr hdr;
     int off;
@@ -455,15 +330,15 @@ nmgr_handle_req(struct nmgr_transport *nt, struct os_mbuf *req)
     while (off < len) {
         rc = os_mbuf_copydata(req, off, sizeof(hdr), &hdr);
         if (rc < 0) {
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
             goto err_norsp;
         }
 
         hdr.nh_len = ntohs(hdr.nh_len);
 
-        handler = nmgr_find_handler(ntohs(hdr.nh_group), hdr.nh_id);
+        handler = mgmt_find_handler(ntohs(hdr.nh_group), hdr.nh_id);
         if (!handler) {
-            rc = NMGR_ERR_ENOENT;
+            rc = MGMT_ERR_ENOENT;
             goto err;
         }
 
@@ -472,7 +347,7 @@ nmgr_handle_req(struct nmgr_transport *nt, struct os_mbuf *req)
          */
         rsp_hdr = nmgr_init_rsp(rsp, &hdr);
         if (!rsp_hdr) {
-            rc = NMGR_ERR_ENOMEM;
+            rc = MGMT_ERR_ENOMEM;
             goto err_norsp;
         }
 
@@ -482,19 +357,19 @@ nmgr_handle_req(struct nmgr_transport *nt, struct os_mbuf *req)
         nmgr_jbuf_setibuf(&nmgr_task_jbuf, req, off + sizeof(hdr), hdr.nh_len);
 
         if (hdr.nh_op == NMGR_OP_READ) {
-            if (handler->nh_read) {
-                rc = handler->nh_read(&nmgr_task_jbuf);
+            if (handler->mh_read) {
+                rc = handler->mh_read(&nmgr_task_jbuf);
             } else {
-                rc = NMGR_ERR_ENOENT;
+                rc = MGMT_ERR_ENOENT;
             }
         } else if (hdr.nh_op == NMGR_OP_WRITE) {
-            if (handler->nh_write) {
-                rc = handler->nh_write(&nmgr_task_jbuf);
+            if (handler->mh_write) {
+                rc = handler->mh_write(&nmgr_task_jbuf);
             } else {
-                rc = NMGR_ERR_ENOENT;
+                rc = MGMT_ERR_ENOENT;
             }
         } else {
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
         }
 
         if (rc != 0) {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/mgmt/newtmgr/transport/nmgr_shell/src/nmgr_shell.c
----------------------------------------------------------------------
diff --git a/mgmt/newtmgr/transport/nmgr_shell/src/nmgr_shell.c b/mgmt/newtmgr/transport/nmgr_shell/src/nmgr_shell.c
index efd4952..c6816fe 100644
--- a/mgmt/newtmgr/transport/nmgr_shell/src/nmgr_shell.c
+++ b/mgmt/newtmgr/transport/nmgr_shell/src/nmgr_shell.c
@@ -20,6 +20,7 @@
 #include <assert.h>
 
 #include <shell/shell.h>
+#include <mgmt/mgmt.h>
 #include <newtmgr/newtmgr.h>
 
 static struct nmgr_transport nmgr_shell_transport;
@@ -27,7 +28,7 @@ static struct nmgr_transport nmgr_shell_transport;
 static uint16_t
 nmgr_shell_get_mtu(struct os_mbuf *m)
 {
-    return NMGR_MAX_MTU;
+    return MGMT_MAX_MTU;
 }
 
 static int

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/sys/config/pkg.yml
----------------------------------------------------------------------
diff --git a/sys/config/pkg.yml b/sys/config/pkg.yml
index 84ea13d..8765597 100644
--- a/sys/config/pkg.yml
+++ b/sys/config/pkg.yml
@@ -30,13 +30,11 @@ pkg.deps.CONFIG_CLI:
     - sys/shell
 pkg.deps.CONFIG_NEWTMGR:
     - encoding/json
+    - mgmt/mgmt
 pkg.deps.CONFIG_FCB:
     - fs/fcb
 pkg.deps.CONFIG_NFFS:
     - fs/nffs
 
-pkg.req_apis.CONFIG_NEWTMGR:
-    - newtmgr
-
 pkg.init_function: config_pkg_init
 pkg.init_stage: 3

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/sys/config/src/config_nmgr.c
----------------------------------------------------------------------
diff --git a/sys/config/src/config_nmgr.c b/sys/config/src/config_nmgr.c
index a470975..2cccbb6 100644
--- a/sys/config/src/config_nmgr.c
+++ b/sys/config/src/config_nmgr.c
@@ -23,27 +23,27 @@
 
 #include <string.h>
 
-#include "newtmgr/newtmgr.h"
+#include "mgmt/mgmt.h"
 #include "json/json.h"
 
 #include "config/config.h"
 #include "config_priv.h"
 
-static int conf_nmgr_read(struct nmgr_jbuf *);
-static int conf_nmgr_write(struct nmgr_jbuf *);
+static int conf_nmgr_read(struct mgmt_jbuf *);
+static int conf_nmgr_write(struct mgmt_jbuf *);
 
-static const struct nmgr_handler conf_nmgr_handlers[] = {
+static const struct mgmt_handler conf_nmgr_handlers[] = {
     [CONF_NMGR_OP] = { conf_nmgr_read, conf_nmgr_write}
 };
 
-static struct nmgr_group conf_nmgr_group = {
-    .ng_handlers = (struct nmgr_handler *)conf_nmgr_handlers,
-    .ng_handlers_count = 1,
-    .ng_group_id = NMGR_GROUP_ID_CONFIG
+static struct mgmt_group conf_nmgr_group = {
+    .mg_handlers = (struct mgmt_handler *)conf_nmgr_handlers,
+    .mg_handlers_count = 1,
+    .mg_group_id = MGMT_GROUP_ID_CONFIG
 };
 
 static int
-conf_nmgr_read(struct nmgr_jbuf *njb)
+conf_nmgr_read(struct mgmt_jbuf *njb)
 {
     int rc;
     char name_str[CONF_MAX_NAME_LEN];
@@ -63,45 +63,45 @@ conf_nmgr_read(struct nmgr_jbuf *njb)
     };
     struct json_value jv;
 
-    rc = json_read_object(&njb->njb_buf, attr);
+    rc = json_read_object(&njb->mjb_buf, attr);
     if (rc) {
-        return OS_EINVAL;
+        return MGMT_ERR_EINVAL;
     }
 
     val = conf_get_value(name_str, val_str, sizeof(val_str));
     if (!val) {
-        return OS_EINVAL;
+        return MGMT_ERR_EINVAL;
     }
 
-    json_encode_object_start(&njb->njb_enc);
+    json_encode_object_start(&njb->mjb_enc);
     JSON_VALUE_STRING(&jv, val);
-    json_encode_object_entry(&njb->njb_enc, "val", &jv);
-    json_encode_object_finish(&njb->njb_enc);
+    json_encode_object_entry(&njb->mjb_enc, "val", &jv);
+    json_encode_object_finish(&njb->mjb_enc);
 
     return 0;
 }
 
 static int
-conf_nmgr_write(struct nmgr_jbuf *njb)
+conf_nmgr_write(struct mgmt_jbuf *njb)
 {
     int rc;
     char name_str[CONF_MAX_NAME_LEN];
     char val_str[CONF_MAX_VAL_LEN];
 
-    rc = conf_json_line(&njb->njb_buf, name_str, sizeof(name_str), val_str,
+    rc = conf_json_line(&njb->mjb_buf, name_str, sizeof(name_str), val_str,
       sizeof(val_str));
     if (rc) {
-        return OS_EINVAL;
+        return MGMT_ERR_EINVAL;
     }
 
     rc = conf_set_value(name_str, val_str);
     if (rc) {
-        return OS_EINVAL;
+        return MGMT_ERR_EINVAL;
     }
 
     rc = conf_commit(NULL);
     if (rc) {
-        return OS_EINVAL;
+        return MGMT_ERR_EINVAL;
     }
     return 0;
 }
@@ -109,6 +109,6 @@ conf_nmgr_write(struct nmgr_jbuf *njb)
 int
 conf_nmgr_register(void)
 {
-    return nmgr_group_register(&conf_nmgr_group);
+    return mgmt_group_register(&conf_nmgr_group);
 }
 #endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/sys/log/pkg.yml
----------------------------------------------------------------------
diff --git a/sys/log/pkg.yml b/sys/log/pkg.yml
index b0c856e..f3c1c79 100644
--- a/sys/log/pkg.yml
+++ b/sys/log/pkg.yml
@@ -33,8 +33,8 @@ pkg.deps.LOG_FCB:
 pkg.deps.LOG_CLI:
     - sys/shell
 
-pkg.req_apis.LOG_NEWTMGR:
-    - newtmgr
+pkg.deps.LOG_NEWTMGR:
+    - mgmt/mgmt
 
 pkg.init_function: log_init
 pkg.init_stage: 1

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/sys/log/src/log_nmgr.c
----------------------------------------------------------------------
diff --git a/sys/log/src/log_nmgr.c b/sys/log/src/log_nmgr.c
index fdf3f5b..1bcef46 100644
--- a/sys/log/src/log_nmgr.c
+++ b/sys/log/src/log_nmgr.c
@@ -25,7 +25,7 @@
 
 #if MYNEWT_VAL(LOG_NEWTMGR)
 
-#include "newtmgr/newtmgr.h"
+#include "mgmt/mgmt.h"
 #include "json/json.h"
 #include "log/log.h"
 
@@ -33,18 +33,18 @@
  * this file is compiled out for code size.
  */
 
-static int log_nmgr_read(struct nmgr_jbuf *njb);
-static int log_nmgr_clear(struct nmgr_jbuf *njb);
-static int log_nmgr_module_list(struct nmgr_jbuf *njb);
-static int log_nmgr_level_list(struct nmgr_jbuf *njb);
-static int log_nmgr_logs_list(struct nmgr_jbuf *njb);
-static struct nmgr_group log_nmgr_group;
+static int log_nmgr_read(struct mgmt_jbuf *njb);
+static int log_nmgr_clear(struct mgmt_jbuf *njb);
+static int log_nmgr_module_list(struct mgmt_jbuf *njb);
+static int log_nmgr_level_list(struct mgmt_jbuf *njb);
+static int log_nmgr_logs_list(struct mgmt_jbuf *njb);
+static struct mgmt_group log_nmgr_group;
 
 
 /* ORDER MATTERS HERE.
  * Each element represents the command ID, referenced from newtmgr.
  */
-static struct nmgr_handler log_nmgr_group_handlers[] = {
+static struct mgmt_handler log_nmgr_group_handlers[] = {
     [LOGS_NMGR_OP_READ] = {log_nmgr_read, log_nmgr_read},
     [LOGS_NMGR_OP_CLEAR] = {log_nmgr_clear, log_nmgr_clear},
     [LOGS_NMGR_OP_MODULE_LIST] = {log_nmgr_module_list, NULL},
@@ -108,7 +108,7 @@ log_nmgr_encode_entry(struct log *log, void *arg, void *dptr, uint16_t len)
                 sizeof(STR(UINT32_MAX)) + sizeof(",index:")  +
                 sizeof(STR(UINT16_MAX)) + sizeof(",module:}"));
 
-    if (rsp_len > NMGR_MAX_MTU) {
+    if (rsp_len > MGMT_MAX_MTU) {
         rc = OS_ENOMEM;
         goto err;
     }
@@ -173,7 +173,7 @@ log_encode_entries(struct log *log, struct json_encoder *encoder,
     rsp_len += (sizeof("entries") + 3);
     rsp_len += encode_off.rsp_len;
 
-    if (rsp_len > NMGR_MAX_MTU) {
+    if (rsp_len > MGMT_MAX_MTU) {
         rc = OS_ENOMEM;
         goto err;
     }
@@ -225,7 +225,7 @@ log_encode(struct log *log, struct json_encoder *encoder,
  * @return 0 on success; non-zero on failure
  */
 static int
-log_nmgr_read(struct nmgr_jbuf *njb)
+log_nmgr_read(struct mgmt_jbuf *njb)
 {
     struct log *log;
     int rc;
@@ -258,12 +258,12 @@ log_nmgr_read(struct nmgr_jbuf *njb)
         }
     };
 
-    rc = json_read_object(&njb->njb_buf, attr);
+    rc = json_read_object(&njb->mjb_buf, attr);
     if (rc) {
         return rc;
     }
 
-    encoder = (struct json_encoder *) &njb->njb_enc;
+    encoder = (struct json_encoder *) &njb->mjb_enc;
 
     json_encode_object_start(encoder);
     json_encode_array_name(encoder, "logs");
@@ -318,17 +318,17 @@ err:
  * @return 0 on success; non-zero on failure
  */
 static int
-log_nmgr_module_list(struct nmgr_jbuf *njb)
+log_nmgr_module_list(struct mgmt_jbuf *njb)
 {
     struct json_value jv;
     struct json_encoder *encoder;
     int module;
     char *str;
 
-    encoder = (struct json_encoder *) &njb->njb_enc;
+    encoder = (struct json_encoder *) &njb->mjb_enc;
 
     json_encode_object_start(encoder);
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
     json_encode_object_entry(encoder, "rc", &jv);
     json_encode_object_key(encoder, "module_map");
     json_encode_object_start(encoder);
@@ -360,16 +360,16 @@ log_nmgr_module_list(struct nmgr_jbuf *njb)
  * @return 0 on success; non-zero on failure
  */
 static int
-log_nmgr_logs_list(struct nmgr_jbuf *njb)
+log_nmgr_logs_list(struct mgmt_jbuf *njb)
 {
     struct json_value jv;
     struct json_encoder *encoder;
     struct log *log;
 
-    encoder = (struct json_encoder *) &njb->njb_enc;
+    encoder = (struct json_encoder *) &njb->mjb_enc;
 
     json_encode_object_start(encoder);
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
     json_encode_object_entry(encoder, "rc", &jv);
     json_encode_array_name(encoder, "log_list");
     json_encode_array_start(encoder);
@@ -401,17 +401,17 @@ log_nmgr_logs_list(struct nmgr_jbuf *njb)
  * @return 0 on success; non-zero on failure
  */
 static int
-log_nmgr_level_list(struct nmgr_jbuf *njb)
+log_nmgr_level_list(struct mgmt_jbuf *njb)
 {
     struct json_value jv;
     struct json_encoder *encoder;
     int level;
     char *str;
 
-    encoder = (struct json_encoder *) &njb->njb_enc;
+    encoder = (struct json_encoder *) &njb->mjb_enc;
 
     json_encode_object_start(encoder);
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
     json_encode_object_entry(encoder, "rc", &jv);
     json_encode_object_key(encoder, "level_map");
     json_encode_object_start(encoder);
@@ -442,7 +442,7 @@ log_nmgr_level_list(struct nmgr_jbuf *njb)
  * @return 0 on success; non-zero on failure
  */
 static int
-log_nmgr_clear(struct nmgr_jbuf *njb)
+log_nmgr_clear(struct mgmt_jbuf *njb)
 {
     struct log *log;
     int rc;
@@ -465,14 +465,14 @@ log_nmgr_clear(struct nmgr_jbuf *njb)
         }
     }
 
-    encoder = (struct json_encoder *) &njb->njb_enc;
+    encoder = (struct json_encoder *) &njb->mjb_enc;
 
     json_encode_object_start(encoder);
     json_encode_object_finish(encoder);
 
     return 0;
 err:
-    nmgr_jbuf_setoerr(njb, rc);
+    mgmt_jbuf_setoerr(njb, rc);
     return (rc);
 }
 
@@ -485,10 +485,10 @@ log_nmgr_register_group(void)
 {
     int rc;
 
-    NMGR_GROUP_SET_HANDLERS(&log_nmgr_group, log_nmgr_group_handlers);
-    log_nmgr_group.ng_group_id = NMGR_GROUP_ID_LOGS;
+    MGMT_GROUP_SET_HANDLERS(&log_nmgr_group, log_nmgr_group_handlers);
+    log_nmgr_group.mg_group_id = MGMT_GROUP_ID_LOGS;
 
-    rc = nmgr_group_register(&log_nmgr_group);
+    rc = mgmt_group_register(&log_nmgr_group);
     if (rc) {
         goto err;
     }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/sys/stats/pkg.yml
----------------------------------------------------------------------
diff --git a/sys/stats/pkg.yml b/sys/stats/pkg.yml
index 6785424..235ac91 100644
--- a/sys/stats/pkg.yml
+++ b/sys/stats/pkg.yml
@@ -29,8 +29,8 @@ pkg.deps:
     - libs/util
 pkg.deps.STATS_CLI:
     - sys/shell
-pkg.req_apis.STATS_NEWTMGR:
-    - newtmgr
+pkg.deps.STATS_NEWTMGR:
+    - mgmt/mgmt
 
 pkg.init_function: stats_module_init
 pkg.init_stage: 0

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/sys/stats/src/stats_nmgr.c
----------------------------------------------------------------------
diff --git a/sys/stats/src/stats_nmgr.c b/sys/stats/src/stats_nmgr.c
index cc38854..0b109f3 100644
--- a/sys/stats/src/stats_nmgr.c
+++ b/sys/stats/src/stats_nmgr.c
@@ -25,17 +25,17 @@
 #if MYNEWT_VAL(STATS_NEWTMGR)
 
 #include "os/os.h"
-#include "newtmgr/newtmgr.h"
+#include "mgmt/mgmt.h"
 #include "json/json.h"
 #include "stats/stats.h"
 
 /* Source code is only included if the newtmgr library is enabled.  Otherwise
  * this file is compiled out for code size.
  */
-static int stats_nmgr_read(struct nmgr_jbuf *njb);
-static int stats_nmgr_list(struct nmgr_jbuf *njb);
+static int stats_nmgr_read(struct mgmt_jbuf *njb);
+static int stats_nmgr_list(struct mgmt_jbuf *njb);
 
-static struct nmgr_group shell_nmgr_group;
+static struct mgmt_group shell_nmgr_group;
 
 #define STATS_NMGR_ID_READ  (0)
 #define STATS_NMGR_ID_LIST  (1)
@@ -43,7 +43,7 @@ static struct nmgr_group shell_nmgr_group;
 /* ORDER MATTERS HERE.
  * Each element represents the command ID, referenced from newtmgr.
  */
-static struct nmgr_handler shell_nmgr_group_handlers[] = {
+static struct mgmt_handler shell_nmgr_group_handlers[] = {
     [STATS_NMGR_ID_READ] = {stats_nmgr_read, stats_nmgr_read},
     [STATS_NMGR_ID_LIST] = {stats_nmgr_list, stats_nmgr_list}
 };
@@ -97,7 +97,7 @@ stats_nmgr_encode_name(struct stats_hdr *hdr, void *arg)
 }
 
 static int
-stats_nmgr_read(struct nmgr_jbuf *njb)
+stats_nmgr_read(struct mgmt_jbuf *njb)
 {
     struct stats_hdr *hdr;
 #define STATS_NMGR_NAME_LEN (32)
@@ -112,49 +112,49 @@ stats_nmgr_read(struct nmgr_jbuf *njb)
 
     rc = json_read_object((struct json_buffer *) njb, attrs);
     if (rc != 0) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
     hdr = stats_group_find(stats_name);
     if (!hdr) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
         goto err;
     }
 
-    json_encode_object_start(&njb->njb_enc);
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
+    json_encode_object_start(&njb->mjb_enc);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
+    json_encode_object_entry(&njb->mjb_enc, "rc", &jv);
     JSON_VALUE_STRINGN(&jv, stats_name, strlen(stats_name));
-    json_encode_object_entry(&njb->njb_enc, "name", &jv);
+    json_encode_object_entry(&njb->mjb_enc, "name", &jv);
     JSON_VALUE_STRINGN(&jv, "sys", sizeof("sys")-1);
-    json_encode_object_entry(&njb->njb_enc, "group", &jv);
-    json_encode_object_key(&njb->njb_enc, "fields");
-    json_encode_object_start(&njb->njb_enc);
-    stats_walk(hdr, stats_nmgr_walk_func, &njb->njb_enc);
-    json_encode_object_finish(&njb->njb_enc);
-    json_encode_object_finish(&njb->njb_enc);
+    json_encode_object_entry(&njb->mjb_enc, "group", &jv);
+    json_encode_object_key(&njb->mjb_enc, "fields");
+    json_encode_object_start(&njb->mjb_enc);
+    stats_walk(hdr, stats_nmgr_walk_func, &njb->mjb_enc);
+    json_encode_object_finish(&njb->mjb_enc);
+    json_encode_object_finish(&njb->mjb_enc);
 
     return (0);
 err:
-    nmgr_jbuf_setoerr(njb, rc);
+    mgmt_jbuf_setoerr(njb, rc);
 
     return (0);
 }
 
 static int
-stats_nmgr_list(struct nmgr_jbuf *njb)
+stats_nmgr_list(struct mgmt_jbuf *njb)
 {
     struct json_value jv;
 
-    json_encode_object_start(&njb->njb_enc);
-    JSON_VALUE_INT(&jv, NMGR_ERR_EOK);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
-    json_encode_array_name(&njb->njb_enc, "stat_list");
-    json_encode_array_start(&njb->njb_enc);
-    stats_group_walk(stats_nmgr_encode_name, &njb->njb_enc);
-    json_encode_array_finish(&njb->njb_enc);
-    json_encode_object_finish(&njb->njb_enc);
+    json_encode_object_start(&njb->mjb_enc);
+    JSON_VALUE_INT(&jv, MGMT_ERR_EOK);
+    json_encode_object_entry(&njb->mjb_enc, "rc", &jv);
+    json_encode_array_name(&njb->mjb_enc, "stat_list");
+    json_encode_array_start(&njb->mjb_enc);
+    stats_group_walk(stats_nmgr_encode_name, &njb->mjb_enc);
+    json_encode_array_finish(&njb->mjb_enc);
+    json_encode_object_finish(&njb->mjb_enc);
 
     return (0);
 }
@@ -167,10 +167,10 @@ stats_nmgr_register_group(void)
 {
     int rc;
 
-    NMGR_GROUP_SET_HANDLERS(&shell_nmgr_group, shell_nmgr_group_handlers);
-    shell_nmgr_group.ng_group_id = NMGR_GROUP_ID_STATS;
+    MGMT_GROUP_SET_HANDLERS(&shell_nmgr_group, shell_nmgr_group_handlers);
+    shell_nmgr_group.mg_group_id = MGMT_GROUP_ID_STATS;
 
-    rc = nmgr_group_register(&shell_nmgr_group);
+    rc = mgmt_group_register(&shell_nmgr_group);
     if (rc != 0) {
         goto err;
     }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/test/crash_test/pkg.yml
----------------------------------------------------------------------
diff --git a/test/crash_test/pkg.yml b/test/crash_test/pkg.yml
index c2ec845..8d406ed 100644
--- a/test/crash_test/pkg.yml
+++ b/test/crash_test/pkg.yml
@@ -26,8 +26,8 @@ pkg.deps.CRASH_TEST_CLI:
     - sys/shell
 pkg.req_apis.CRASH_TEST_CLI:
     - console
-pkg.req_apis.CRASH_TEST_NEWTMGR:
-    - newtmgr
+pkg.deps.CRASH_TEST_NEWTMGR:
+    - mgmt/mgmt
 
 pkg.deps.CRASH_TEST_NEWTMGR:
     - encoding/json

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/test/crash_test/src/crash_nmgr.c
----------------------------------------------------------------------
diff --git a/test/crash_test/src/crash_nmgr.c b/test/crash_test/src/crash_nmgr.c
index d9bf4b0..a388248 100644
--- a/test/crash_test/src/crash_nmgr.c
+++ b/test/crash_test/src/crash_nmgr.c
@@ -23,27 +23,27 @@
 
 #include <string.h>
 
-#include "newtmgr/newtmgr.h"
+#include "mgmt/mgmt.h"
 #include "json/json.h"
 #include "console/console.h"
 
 #include "crash_test/crash_test.h"
 #include "crash_test_priv.h"
 
-static int crash_test_nmgr_write(struct nmgr_jbuf *);
+static int crash_test_nmgr_write(struct mgmt_jbuf *);
 
-static const struct nmgr_handler crash_test_nmgr_handler[] = {
+static const struct mgmt_handler crash_test_nmgr_handler[] = {
     [0] = { crash_test_nmgr_write, crash_test_nmgr_write }
 };
 
-struct nmgr_group crash_test_nmgr_group = {
-    .ng_handlers = (struct nmgr_handler *)crash_test_nmgr_handler,
-    .ng_handlers_count = 1,
-    .ng_group_id = NMGR_GROUP_ID_CRASH
+struct mgmt_group crash_test_nmgr_group = {
+    .mg_handlers = (struct mgmt_handler *)crash_test_nmgr_handler,
+    .mg_handlers_count = 1,
+    .mg_group_id = MGMT_GROUP_ID_CRASH
 };
 
 static int
-crash_test_nmgr_write(struct nmgr_jbuf *njb)
+crash_test_nmgr_write(struct mgmt_jbuf *njb)
 {
     char tmp_str[64];
     const struct json_attr_t attr[2] = {
@@ -59,16 +59,16 @@ crash_test_nmgr_write(struct nmgr_jbuf *njb)
     };
     int rc;
 
-    rc = json_read_object(&njb->njb_buf, attr);
+    rc = json_read_object(&njb->mjb_buf, attr);
     if (rc) {
-        rc = NMGR_ERR_EINVAL;
+        rc = MGMT_ERR_EINVAL;
     } else {
         rc = crash_device(tmp_str);
         if (rc) {
-            rc = NMGR_ERR_EINVAL;
+            rc = MGMT_ERR_EINVAL;
         }
     }
-    nmgr_jbuf_setoerr(njb, rc);
+    mgmt_jbuf_setoerr(njb, rc);
     return 0;
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/test/crash_test/src/crash_test.c
----------------------------------------------------------------------
diff --git a/test/crash_test/src/crash_test.c b/test/crash_test/src/crash_test.c
index 89843a4..a194978 100644
--- a/test/crash_test/src/crash_test.c
+++ b/test/crash_test/src/crash_test.c
@@ -32,7 +32,7 @@
 #include "shell/shell.h"
 #endif
 #if MYNEWT_VAL(CRASH_TEST_NEWTMGR)
-#include "newtmgr/newtmgr.h"
+#include "mgmt/mgmt.h"
 #endif
 
 int
@@ -66,6 +66,6 @@ crash_test_init(void)
     shell_cmd_register(&crash_cmd_struct);
 #endif
 #if MYNEWT_VAL(CRASH_TEST_NEWTMGR)
-    nmgr_group_register(&crash_test_nmgr_group);
+    mgmt_group_register(&crash_test_nmgr_group);
 #endif
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04318b86/test/crash_test/src/crash_test_priv.h
----------------------------------------------------------------------
diff --git a/test/crash_test/src/crash_test_priv.h b/test/crash_test/src/crash_test_priv.h
index ef4ff67..2d01e65 100644
--- a/test/crash_test/src/crash_test_priv.h
+++ b/test/crash_test/src/crash_test_priv.h
@@ -27,7 +27,7 @@ extern "C" {
 extern struct shell_cmd crash_cmd_struct;
 #endif
 #if MYNEWT_VAL(CRASH_TEST_NEWTMGR)
-extern struct nmgr_group crash_test_nmgr_group;
+extern struct mgmt_group crash_test_nmgr_group;
 #endif
 
 int crash_device(char *how);