core/msgb.h: introduce msgb_l4len() helper

There is already a group of similar functions for L1, L2 and L3,
but L4 was missing. The L4 is usually used for parsing of complex
L3 messages, such as SS/USSD and SMS.

This change introduces a similar halper for L4.

Change-Id: I755f2d654bbdad2a8b4f94df9023bdd370b07ae6
This commit is contained in:
Vadim Yanitskiy 2018-11-07 03:53:03 +07:00
parent fa3b482277
commit e521edefda
2 changed files with 13 additions and 0 deletions

View File

@ -10,3 +10,4 @@
libosmogsm gsm0480_l3hdr_push() removed from gsm/gsm0480.h (was not exposed) libosmogsm gsm0480_l3hdr_push() removed from gsm/gsm0480.h (was not exposed)
libosmogsm gsm48_push_l3hdr() (re)introduced in gsm/gsm48.h (GSM 04.08 API) libosmogsm gsm48_push_l3hdr() (re)introduced in gsm/gsm48.h (GSM 04.08 API)
libosmogsm gsm48_push_l3hdr_tid() a wrapper around gsm48_push_l3hdr() libosmogsm gsm48_push_l3hdr_tid() a wrapper around gsm48_push_l3hdr()
libosmocore msgb_l4len new symbol (exposed as 'static inline' in msgb.h)

View File

@ -169,6 +169,18 @@ static inline unsigned int msgb_l3len(const struct msgb *msgb)
return msgb->tail - (uint8_t *)msgb_l3(msgb); return msgb->tail - (uint8_t *)msgb_l3(msgb);
} }
/*! determine length of L4 message
* \param[in] msgb message buffer
* \returns size of L4 message in bytes
*
* This function computes the number of bytes between the tail of the
* message and the layer 4 header.
*/
static inline unsigned int msgb_l4len(const struct msgb *msgb)
{
return msgb->tail - (uint8_t *)msgb_sms(msgb);
}
/*! determine the length of the header /*! determine the length of the header
* \param[in] msgb message buffer * \param[in] msgb message buffer
* \returns number of bytes between start of buffer and start of msg * \returns number of bytes between start of buffer and start of msg