Repository: incubator-mynewt-larva Updated Branches: refs/heads/master f52685853 -> 4989659ff
Fix os_msys_get_pkthdr bug where the size of the os mbuf pkthdr was not taken into account. Also, we now use the term 'user header' instead of 'extra packet header' Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/commit/c216090c Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/tree/c216090c Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/diff/c216090c Branch: refs/heads/master Commit: c216090cb252e63031c1d31d2ea488f58cf39c05 Parents: f526858 Author: wes3 <w...@micosa.io> Authored: Fri Feb 5 13:11:05 2016 -0800 Committer: wes3 <w...@micosa.io> Committed: Fri Feb 5 13:25:40 2016 -0800 ---------------------------------------------------------------------- libs/os/include/os/os_mbuf.h | 3 +-- libs/os/src/os_mbuf.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/c216090c/libs/os/include/os/os_mbuf.h ---------------------------------------------------------------------- diff --git a/libs/os/include/os/os_mbuf.h b/libs/os/include/os/os_mbuf.h index 09d13fb..16180a2 100644 --- a/libs/os/include/os/os_mbuf.h +++ b/libs/os/include/os/os_mbuf.h @@ -237,8 +237,7 @@ int os_msys_register(struct os_mbuf_pool *); struct os_mbuf *os_msys_get(uint16_t dsize, uint16_t leadingspace); /* Return a packet header mbuf from the system pool */ -struct os_mbuf *os_msys_get_pkthdr(uint16_t dsize, uint16_t pkthdr_len); - +struct os_mbuf *os_msys_get_pkthdr(uint16_t dsize, uint16_t user_hdr_len); /* Initialize a mbuf pool */ int os_mbuf_pool_init(struct os_mbuf_pool *, struct os_mempool *mp, http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/c216090c/libs/os/src/os_mbuf.c ---------------------------------------------------------------------- diff --git a/libs/os/src/os_mbuf.c b/libs/os/src/os_mbuf.c index 844af80..bb6d458 100644 --- a/libs/os/src/os_mbuf.c +++ b/libs/os/src/os_mbuf.c @@ -185,17 +185,19 @@ err: struct os_mbuf * -os_msys_get_pkthdr(uint16_t dsize, uint16_t pkthdr_len) +os_msys_get_pkthdr(uint16_t dsize, uint16_t user_hdr_len) { + uint16_t total_pkthdr_len; struct os_mbuf *m; struct os_mbuf_pool *pool; - pool = _os_msys_find_pool(dsize + pkthdr_len); + total_pkthdr_len = user_hdr_len + sizeof(struct os_mbuf_pkthdr); + pool = _os_msys_find_pool(dsize + total_pkthdr_len); if (!pool) { goto err; } - m = os_mbuf_get_pkthdr(pool, pkthdr_len); + m = os_mbuf_get_pkthdr(pool, user_hdr_len); return (m); err: return (NULL); @@ -257,15 +259,15 @@ err: /* Allocate a new packet header mbuf out of the os_mbuf_pool */ struct os_mbuf * -os_mbuf_get_pkthdr(struct os_mbuf_pool *omp, uint8_t extra_pkthdr_len) +os_mbuf_get_pkthdr(struct os_mbuf_pool *omp, uint8_t user_pkthdr_len) { struct os_mbuf_pkthdr *pkthdr; struct os_mbuf *om; om = os_mbuf_get(omp, 0); if (om) { - om->om_pkthdr_len = extra_pkthdr_len + sizeof(struct os_mbuf_pkthdr); - om->om_data += extra_pkthdr_len + sizeof(struct os_mbuf_pkthdr); + om->om_pkthdr_len = user_pkthdr_len + sizeof(struct os_mbuf_pkthdr); + om->om_data += user_pkthdr_len + sizeof(struct os_mbuf_pkthdr); pkthdr = OS_MBUF_PKTHDR(om); pkthdr->omp_len = 0;