32 lines · c
1// SPDX-License-Identifier: ISC2/*3 * Copyright (c) 2019 Broadcom4 */5#ifndef __BRCMF_XTLV_H6#define __BRCMF_XTLV_H7 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 below12 * is nominal, and is used to support variable length id and type. See13 * 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 */32