xtlv.h (707B)
1// SPDX-License-Identifier: ISC 2/* 3 * Copyright (c) 2019 Broadcom 4 */ 5#ifndef __BRCMF_XTLV_H 6#define __BRCMF_XTLV_H 7 8#include <linux/types.h> 9#include <linux/bits.h> 10 11/* bcm type(id), length, value with w/16 bit id/len. The structure below 12 * is nominal, and is used to support variable length id and type. See 13 * xtlv options below. 14 */ 15struct brcmf_xtlv { 16 u16 id; 17 u16 len; 18 u8 data[]; 19}; 20 21enum brcmf_xtlv_option { 22 BRCMF_XTLV_OPTION_ALIGN32 = BIT(0), 23 BRCMF_XTLV_OPTION_IDU8 = BIT(1), 24 BRCMF_XTLV_OPTION_LENU8 = BIT(2), 25}; 26 27int brcmf_xtlv_data_size(int dlen, u16 opts); 28void brcmf_xtlv_pack_header(struct brcmf_xtlv *xtlv, u16 id, u16 len, 29 const u8 *data, u16 opts); 30 31#endif /* __BRCMF_XTLV_H */