From 59a9ebf8b8f465589b40eb58aeb839bdaadb7009 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 15 Apr 2017 19:04:34 +0200 Subject: 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 --- include/osmocom/core/msgb.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'include/osmocom') 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 -- cgit v1.2.3