newtmgr, mgmt; move newtmgr specific components out of mgmt_jbuf.

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/04a7e46f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/04a7e46f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/04a7e46f

Branch: refs/heads/develop
Commit: 04a7e46f6ed5b979eb8edc79743a7e20544a059e
Parents: 6b802d6
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Wed Oct 5 13:03:13 2016 -0700
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Wed Oct 5 14:53:03 2016 -0700

----------------------------------------------------------------------
 mgmt/mgmt/include/mgmt/mgmt.h |  7 +---
 mgmt/newtmgr/src/newtmgr.c    | 85 +++++++++++++++++++++-----------------
 2 files changed, 48 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04a7e46f/mgmt/mgmt/include/mgmt/mgmt.h
----------------------------------------------------------------------
diff --git a/mgmt/mgmt/include/mgmt/mgmt.h b/mgmt/mgmt/include/mgmt/mgmt.h
index 01e1da5..d176127 100644
--- a/mgmt/mgmt/include/mgmt/mgmt.h
+++ b/mgmt/mgmt/include/mgmt/mgmt.h
@@ -63,13 +63,10 @@ extern "C" {
 
 struct mgmt_jbuf {
     /* json_buffer must be first element in the structure */
-    struct json_buffer mjb_buf;
-    struct json_encoder mjb_enc;
+    struct json_buffer mjb_buf;  /* for input */
+    struct json_encoder mjb_enc; /* for output */
     struct os_mbuf *mjb_in_m;
     struct os_mbuf *mjb_out_m;
-    void *mjb_arg;
-    uint16_t mjb_off;
-    uint16_t mjb_end;
 };
 
 typedef int (*mgmt_handler_func_t)(struct mgmt_jbuf *);

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04a7e46f/mgmt/newtmgr/src/newtmgr.c
----------------------------------------------------------------------
diff --git a/mgmt/newtmgr/src/newtmgr.c b/mgmt/newtmgr/src/newtmgr.c
index 83ada60..feae036 100644
--- a/mgmt/newtmgr/src/newtmgr.c
+++ b/mgmt/newtmgr/src/newtmgr.c
@@ -35,9 +35,15 @@ os_stack_t 
newtmgr_stack[OS_STACK_ALIGN(MYNEWT_VAL(NEWTMGR_STACK_SIZE))];
 static struct os_eventq g_nmgr_evq;
 static struct os_task g_nmgr_task;
 
-/* JSON buffer for NMGR task
+/*
+ * JSON buffer for newtmgr
  */
-static struct mgmt_jbuf nmgr_task_jbuf;
+static struct nmgr_jbuf {
+    struct mgmt_jbuf n_b;
+    struct nmgr_hdr *n_hdr;
+    uint16_t n_off;
+    uint16_t n_end;
+} nmgr_task_jbuf;
 
 static int
 nmgr_rsp_extend(struct nmgr_hdr *hdr, struct os_mbuf *rsp, void *data,
@@ -59,21 +65,21 @@ err:
 static char
 nmgr_jbuf_read_next(struct json_buffer *jb)
 {
-    struct mgmt_jbuf *njb;
+    struct nmgr_jbuf *njb;
     char c;
     int rc;
 
-    njb = (struct mgmt_jbuf *) jb;
+    njb = (struct nmgr_jbuf *) jb;
 
-    if (njb->mjb_off + 1 > njb->mjb_end) {
+    if (njb->n_off + 1 > njb->n_end) {
         return '\0';
     }
 
-    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, 1, &c);
+    rc = os_mbuf_copydata(njb->n_b.mjb_in_m, njb->n_off, 1, &c);
     if (rc == -1) {
         c = '\0';
     }
-    ++njb->mjb_off;
+    ++njb->n_off;
 
     return (c);
 }
@@ -81,18 +87,18 @@ nmgr_jbuf_read_next(struct json_buffer *jb)
 static char
 nmgr_jbuf_read_prev(struct json_buffer *jb)
 {
-    struct mgmt_jbuf *njb;
+    struct nmgr_jbuf *njb;
     char c;
     int rc;
 
-    njb = (struct mgmt_jbuf *) jb;
+    njb = (struct nmgr_jbuf *) jb;
 
-    if (njb->mjb_off == 0) {
+    if (njb->n_off == 0) {
         return '\0';
     }
 
-    --njb->mjb_off;
-    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, 1, &c);
+    --njb->n_off;
+    rc = os_mbuf_copydata(njb->n_b.mjb_in_m, njb->n_off, 1, &c);
     if (rc == -1) {
         c = '\0';
     }
@@ -103,17 +109,17 @@ nmgr_jbuf_read_prev(struct json_buffer *jb)
 static int
 nmgr_jbuf_readn(struct json_buffer *jb, char *buf, int size)
 {
-    struct mgmt_jbuf *njb;
+    struct nmgr_jbuf *njb;
     int read;
     int left;
     int rc;
 
-    njb = (struct mgmt_jbuf *) jb;
+    njb = (struct nmgr_jbuf *) jb;
 
-    left = njb->mjb_end - njb->mjb_off;
+    left = njb->n_end - njb->n_off;
     read = size > left ? left : size;
 
-    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, read, buf);
+    rc = os_mbuf_copydata(njb->n_b.mjb_in_m, njb->n_off, read, buf);
     if (rc != 0) {
         goto err;
     }
@@ -126,14 +132,12 @@ err:
 int
 nmgr_jbuf_write(void *arg, char *data, int len)
 {
-    struct mgmt_jbuf *njb;
-    struct nmgr_hdr *hdr;
+    struct nmgr_jbuf *njb;
     int rc;
 
-    njb = (struct mgmt_jbuf *) arg;
-    hdr = (struct nmgr_hdr *)njb->mjb_arg;
+    njb = (struct nmgr_jbuf *) arg;
 
-    rc = nmgr_rsp_extend(hdr, njb->mjb_out_m, data, len);
+    rc = nmgr_rsp_extend(njb->n_hdr, njb->n_b.mjb_out_m, data, len);
     if (rc != 0) {
         assert(0);
         goto err;
@@ -145,35 +149,38 @@ err:
 }
 
 static int
-nmgr_jbuf_init(struct mgmt_jbuf *njb)
+nmgr_jbuf_init(struct nmgr_jbuf *njb)
 {
+    struct mgmt_jbuf *mj;
+
     memset(njb, 0, sizeof(*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;
+    mj = &njb->n_b;
+    mj->mjb_buf.jb_read_next = nmgr_jbuf_read_next;
+    mj->mjb_buf.jb_read_prev = nmgr_jbuf_read_prev;
+    mj->mjb_buf.jb_readn = nmgr_jbuf_readn;
+    mj->mjb_enc.je_write = nmgr_jbuf_write;
+    mj->mjb_enc.je_arg = njb;
 
     return (0);
 }
 
 static void
-nmgr_jbuf_setibuf(struct mgmt_jbuf *njb, struct os_mbuf *m,
+nmgr_jbuf_setibuf(struct nmgr_jbuf *njb, struct os_mbuf *m,
         uint16_t off, uint16_t len)
 {
-    njb->mjb_off = off;
-    njb->mjb_end = off + len;
-    njb->mjb_in_m = m;
-    njb->mjb_enc.je_wr_commas = 0;
+    njb->n_b.mjb_in_m = m;
+    njb->n_off = off;
+    njb->n_end = off + len;
 }
 
 static void
-nmgr_jbuf_setobuf(struct mgmt_jbuf *njb, struct nmgr_hdr *hdr,
+nmgr_jbuf_setobuf(struct nmgr_jbuf *njb, struct nmgr_hdr *hdr,
         struct os_mbuf *m)
 {
-    njb->mjb_out_m = m;
-    njb->mjb_arg = hdr;
+    njb->n_b.mjb_out_m = m;
+    njb->n_b.mjb_enc.je_wr_commas = 0;
+    njb->n_hdr = hdr;
 }
 
 static struct nmgr_hdr*
@@ -207,10 +214,10 @@ nmgr_send_err_rsp(struct nmgr_transport *nt, struct 
os_mbuf *m,
     if (!hdr) {
         return;
     }
-    mgmt_jbuf_setoerr(&nmgr_task_jbuf, rc);
+    mgmt_jbuf_setoerr(&nmgr_task_jbuf.n_b, rc);
     hdr->nh_len = htons(hdr->nh_len);
     hdr->nh_flags = NMGR_F_JSON_RSP_COMPLETE;
-    nt->nt_output(nt, nmgr_task_jbuf.mjb_out_m);
+    nt->nt_output(nt, nmgr_task_jbuf.n_b.mjb_out_m);
 }
 
 static int
@@ -358,13 +365,13 @@ nmgr_handle_req(struct nmgr_transport *nt, struct os_mbuf 
*req)
 
         if (hdr.nh_op == NMGR_OP_READ) {
             if (handler->mh_read) {
-                rc = handler->mh_read(&nmgr_task_jbuf);
+                rc = handler->mh_read(&nmgr_task_jbuf.n_b);
             } else {
                 rc = MGMT_ERR_ENOENT;
             }
         } else if (hdr.nh_op == NMGR_OP_WRITE) {
             if (handler->mh_write) {
-                rc = handler->mh_write(&nmgr_task_jbuf);
+                rc = handler->mh_write(&nmgr_task_jbuf.n_b);
             } else {
                 rc = MGMT_ERR_ENOENT;
             }

Reply via email to