mirror of https://gerrit.osmocom.org/libosmocore
tlv: Add tlvp_val{16,32}be() to get TLV values in unaligned host byte order
Change-Id: I3749e1e4974742bc8c32722e0e998775b5394829
This commit is contained in:
parent
95871dadbd
commit
50ef73377c
|
@ -4,6 +4,8 @@
|
|||
#include <string.h>
|
||||
|
||||
#include <osmocom/core/msgb.h>
|
||||
#include <osmocom/core/bit16gen.h>
|
||||
#include <osmocom/core/bit32gen.h>
|
||||
|
||||
/*! \defgroup tlv GSM L3 compatible TLV parser
|
||||
* @{
|
||||
|
@ -436,6 +438,27 @@ static inline uint32_t tlvp_val32_unal(const struct tlv_parsed *tp, int pos)
|
|||
return res;
|
||||
}
|
||||
|
||||
/*! \brief Retrieve (possibly unaligned) TLV element and convert to host byte order
|
||||
* \param[in] tp pointer to \ref tlv_parsed
|
||||
* \param[in] pos element to return
|
||||
* \returns aligned 16 bit value in host byte order
|
||||
*/
|
||||
static inline uint16_t tlvp_val16be(const struct tlv_parsed *tp, int pos)
|
||||
{
|
||||
return osmo_load16be(TLVP_VAL(tp, pos));
|
||||
}
|
||||
|
||||
/*! \brief Retrieve (possibly unaligned) TLV element and convert to host byte order
|
||||
* \param[in] tp pointer to \ref tlv_parsed
|
||||
* \param[in] pos element to return
|
||||
* \returns aligned 32 bit value in host byte order
|
||||
*/
|
||||
static inline uint32_t tlvp_val32be(const struct tlv_parsed *tp, int pos)
|
||||
{
|
||||
return osmo_load32be(TLVP_VAL(tp, pos));
|
||||
}
|
||||
|
||||
|
||||
struct tlv_parsed *osmo_tlvp_copy(const struct tlv_parsed *tp_orig, void *ctx);
|
||||
int osmo_tlvp_merge(struct tlv_parsed *dst, const struct tlv_parsed *src);
|
||||
int osmo_shift_v_fixed(uint8_t **data, size_t *data_len,
|
||||
|
|
Loading…
Reference in New Issue