Lines Matching refs:tlv
685 static struct rocker_tlv *rocker_tlv_next(const struct rocker_tlv *tlv, in rocker_tlv_next() argument
688 int totlen = ROCKER_TLV_ALIGN(tlv->len); in rocker_tlv_next()
691 return (struct rocker_tlv *) ((char *) tlv + totlen); in rocker_tlv_next()
694 static int rocker_tlv_ok(const struct rocker_tlv *tlv, int remaining) in rocker_tlv_ok() argument
697 tlv->len >= ROCKER_TLV_HDRLEN && in rocker_tlv_ok()
698 tlv->len <= remaining; in rocker_tlv_ok()
706 #define rocker_tlv_for_each_nested(pos, tlv, rem) \ argument
707 rocker_tlv_for_each(pos, rocker_tlv_data(tlv), \
708 rocker_tlv_len(tlv), rem)
725 static int rocker_tlv_type(const struct rocker_tlv *tlv) in rocker_tlv_type() argument
727 return tlv->type; in rocker_tlv_type()
730 static void *rocker_tlv_data(const struct rocker_tlv *tlv) in rocker_tlv_data() argument
732 return (char *) tlv + ROCKER_TLV_HDRLEN; in rocker_tlv_data()
735 static int rocker_tlv_len(const struct rocker_tlv *tlv) in rocker_tlv_len() argument
737 return tlv->len - ROCKER_TLV_HDRLEN; in rocker_tlv_len()
740 static u8 rocker_tlv_get_u8(const struct rocker_tlv *tlv) in rocker_tlv_get_u8() argument
742 return *(u8 *) rocker_tlv_data(tlv); in rocker_tlv_get_u8()
745 static u16 rocker_tlv_get_u16(const struct rocker_tlv *tlv) in rocker_tlv_get_u16() argument
747 return *(u16 *) rocker_tlv_data(tlv); in rocker_tlv_get_u16()
750 static __be16 rocker_tlv_get_be16(const struct rocker_tlv *tlv) in rocker_tlv_get_be16() argument
752 return *(__be16 *) rocker_tlv_data(tlv); in rocker_tlv_get_be16()
755 static u32 rocker_tlv_get_u32(const struct rocker_tlv *tlv) in rocker_tlv_get_u32() argument
757 return *(u32 *) rocker_tlv_data(tlv); in rocker_tlv_get_u32()
760 static u64 rocker_tlv_get_u64(const struct rocker_tlv *tlv) in rocker_tlv_get_u64() argument
762 return *(u64 *) rocker_tlv_data(tlv); in rocker_tlv_get_u64()
768 const struct rocker_tlv *tlv; in rocker_tlv_parse() local
774 rocker_tlv_for_each(tlv, head, buf_len, rem) { in rocker_tlv_parse()
775 u32 type = rocker_tlv_type(tlv); in rocker_tlv_parse()
778 tb[type] = tlv; in rocker_tlv_parse()
783 const struct rocker_tlv *tlv) in rocker_tlv_parse_nested() argument
785 rocker_tlv_parse(tb, maxtype, rocker_tlv_data(tlv), in rocker_tlv_parse_nested()
786 rocker_tlv_len(tlv)); in rocker_tlv_parse_nested()
807 struct rocker_tlv *tlv; in rocker_tlv_put() local
812 tlv = rocker_tlv_start(desc_info); in rocker_tlv_put()
814 tlv->type = attrtype; in rocker_tlv_put()
815 tlv->len = rocker_tlv_attr_size(attrlen); in rocker_tlv_put()
816 memcpy(rocker_tlv_data(tlv), data, attrlen); in rocker_tlv_put()
817 memset((char *) tlv + tlv->len, 0, rocker_tlv_padlen(attrlen)); in rocker_tlv_put()