TLV: Add tv_fixed_put() and msgb_tv_fixed_put()

This is for a Tag-Value type with fixed-length value (len > 1)
This commit is contained in:
Harald Welte 2011-03-05 14:32:50 +01:00
parent 53b2096555
commit 63196de6d8
1 changed files with 15 additions and 0 deletions

View File

@ -132,6 +132,14 @@ static inline uint8_t *tv_put(uint8_t *buf, uint8_t tag,
return buf;
}
static inline uint8_t *tv_fixed_put(uint8_t *buf, uint8_t tag,
unsigned int len, const uint8_t *val)
{
*buf++ = tag;
memcpy(buf, val, len);
return buf + len;
}
/* 'val' is still in host byte order! */
static inline uint8_t *tv16_put(uint8_t *buf, uint8_t tag,
uint16_t val)
@ -160,6 +168,13 @@ static inline uint8_t *msgb_tv_put(struct msgb *msg, uint8_t tag, uint8_t val)
return tv_put(buf, tag, val);
}
static inline uint8_t *msgb_tv_fixed_put(struct msgb *msg, uint8_t tag,
unsigned int len, const uint8_t *val)
{
uint8_t *buf = msgb_put(msg, 1+len);
return tv_fixed_put(buf, tag, len, val);
}
static inline uint8_t *msgb_v_put(struct msgb *msg, uint8_t val)
{
uint8_t *buf = msgb_put(msg, 1);