diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-04-15 19:04:34 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-04-15 19:04:34 +0200 |
commit | 59a9ebf8b8f465589b40eb58aeb839bdaadb7009 (patch) | |
tree | a0362340f8a1339df184ad83c4899af27835fcb1 | |
parent | b522740be59beeed388c0d74f2a7641dc8cb5b11 (diff) |
msgb: Add msgb_pull_to_l2() analogous to msgb_pull_to_l3()
Introduce msgb_pull_to_l2() which pulls (removes) any msgb contents in
front of the L2 header (msg->l2h).
Change-Id: I7786a1b30f9e7eaa3dcdb3cbb2a85a126588f6cd
-rw-r--r-- | include/osmocom/core/msgb.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/osmocom/core/msgb.h b/include/osmocom/core/msgb.h index 9cb1c24d..afb887c0 100644 --- a/include/osmocom/core/msgb.h +++ b/include/osmocom/core/msgb.h @@ -350,6 +350,21 @@ static inline unsigned char *msgb_pull_to_l3(struct msgb *msg) return ret; } +/*! \brief remove (pull) all headers in front of l2h from the message buffer. + * \param[in] msgb message buffer with a valid l2h + * \returns pointer to new start of msgb (l2h) + * + * This function moves the \a data pointer of the \ref msgb further back + * in the message, thereby shrinking the size of the message. + * l1h will be cleared. + */ +static inline unsigned char *msgb_pull_to_l2(struct msgb *msg) +{ + unsigned char *ret = msgb_pull(msg, msg->l2h - msg->data); + msg->l1h = NULL; + return ret; +} + /*! \brief remove uint8 from front of message * \param[in] msgb message buffer * \returns 8bit value taken from end of msgb |