04.08: add inline funcs for transaction id bits

Various users of gsm48_hdr apply the same hardcoded shifts/bitmasks to obtain
the transaction ID encoded in the upper nibble of the protocol discriminator.
Centralize. Patch for openbsc.git will follow.
This commit is contained in:
Neels Hofmeyr 2016-03-14 16:06:48 +01:00 committed by Holger Hans Peter Freyther
parent c656faed12
commit da7bf4d55a
1 changed files with 19 additions and 0 deletions

View File

@ -763,6 +763,25 @@ static inline uint8_t gsm48_hdr_pdisc(const struct gsm48_hdr *hdr)
return pdisc;
}
static inline uint8_t gsm48_hdr_trans_id(const struct gsm48_hdr *hdr)
{
/*
* 3GPP TS 24.007 version 12.0.0 Release 12,
* 11.2.3.1.3 Transaction identifier
*/
return (hdr->proto_discr & 0xf0) >> 4;
}
static inline uint8_t gsm48_hdr_trans_id_flip_ti(const struct gsm48_hdr *hdr)
{
return gsm48_hdr_trans_id(hdr) ^ 0x08;
}
static inline uint8_t gsm48_hdr_trans_id_no_ti(const struct gsm48_hdr *hdr)
{
return gsm48_hdr_trans_id(hdr) & 0x07;
}
static inline uint8_t gsm48_hdr_msg_type_r98(const struct gsm48_hdr *hdr)
{
/*