diff options
author | Luca Melette <luca@srlabs.de> | 2012-05-03 02:21:08 +0200 |
---|---|---|
committer | Luca Melette <luca@srlabs.de> | 2012-05-03 02:21:08 +0200 |
commit | 1e9d9f4c080e283298a2dce2e48019428914fa10 (patch) | |
tree | c793b796b4f795277a5311916c5af1037fe8120a /src/shared/libosmocore/include/osmocom/core/msgb.h | |
parent | 1fc5ab1d396b91e7983e8529208aa1cd21d9629c (diff) | |
parent | 186fefcc76294e69c367b2eb8796bb824927248d (diff) |
Merge branch 'master' into luca/gsmmap
Introduced code for DSP auto-reset in error conditions
Disabled by default US bands (not working yet)
Diffstat (limited to 'src/shared/libosmocore/include/osmocom/core/msgb.h')
-rw-r--r-- | src/shared/libosmocore/include/osmocom/core/msgb.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/shared/libosmocore/include/osmocom/core/msgb.h b/src/shared/libosmocore/include/osmocom/core/msgb.h index 9f46e6c6..e465ec2b 100644 --- a/src/shared/libosmocore/include/osmocom/core/msgb.h +++ b/src/shared/libosmocore/include/osmocom/core/msgb.h @@ -312,6 +312,32 @@ static inline void msgb_reserve(struct msgb *msg, int len) msg->tail += len; } +/*! \brief Trim the msgb to a given absolute length + * \param[in] msg message buffer + * \param[in] len new total length of buffer + * \returns 0 in case of success, negative in case of error + */ +static inline int msgb_trim(struct msgb *msg, int len) +{ + if (len > msg->data_len) + return -1; + + msg->len = len; + msg->tail = msg->data + len; + + return 0; +} + +/*! \brief Trim the msgb to a given layer3 length + * \pram[in] msg message buffer + * \param[in] l3len new layer3 length + * \returns 0 in case of success, negative in case of error + */ +static inline int msgb_l3trim(struct msgb *msg, int l3len) +{ + return msgb_trim(msg, (msg->l3h - msg->data) + l3len); +} + /*! \brief Allocate message buffer with specified headroom * \param[in] size size in bytes, including headroom * \param[in] headroom headroom in bytes |