1 // SPDX-License-Identifier: ISC 2 /* 3 * Copyright (c) 2012 Broadcom Corporation 4 */ 5 6 #ifndef CYW_FWIL_TYPES_H_ 7 #define CYW_FWIL_TYPES_H_ 8 9 #include <fwil_types.h> 10 11 enum brcmf_event_msgs_ext_command { 12 CYW_EVENTMSGS_NONE = 0, 13 CYW_EVENTMSGS_SET_BIT = 1, 14 CYW_EVENTMSGS_RESET_BIT = 2, 15 CYW_EVENTMSGS_SET_MASK = 3, 16 }; 17 18 #define EVENTMSGS_VER 1 19 #define EVENTMSGS_EXT_STRUCT_SIZE offsetof(struct eventmsgs_ext, mask[0]) 20 21 /** 22 * struct brcmf_eventmsgs_ext - structure used with "eventmsgs_ext" iovar. 23 * 24 * @ver: version. 25 * @command: requested operation (see &enum event_msgs_ext_command). 26 * @len: length of the @mask array. 27 * @maxgetsize: indicates maximum mask size that may be returned by firmware 28 * upon iovar GET. 29 * @mask: array where each bit represents firmware event. 30 */ 31 struct brcmf_eventmsgs_ext { 32 u8 ver; 33 u8 command; 34 u8 len; 35 u8 maxgetsize; 36 u8 mask[] __counted_by(len); 37 }; 38 39 #define BRCMF_EXTAUTH_START 1 40 #define BRCMF_EXTAUTH_ABORT 2 41 #define BRCMF_EXTAUTH_FAIL 3 42 #define BRCMF_EXTAUTH_SUCCESS 4 43 44 /** 45 * struct brcmf_auth_req_status_le - external auth request and status update 46 * 47 * @flags: flags for external auth status 48 * @peer_mac: peer MAC address 49 * @ssid_len: length of ssid 50 * @ssid: ssid characters 51 * @pmkid: PMKSA identifier 52 */ 53 struct brcmf_auth_req_status_le { 54 __le16 flags; 55 u8 peer_mac[ETH_ALEN]; 56 __le32 ssid_len; 57 u8 ssid[IEEE80211_MAX_SSID_LEN]; 58 u8 pmkid[WLAN_PMKID_LEN]; 59 }; 60 61 /** 62 * struct brcmf_mf_params_le - management frame parameters for mgmt_frame iovar 63 * 64 * @version: version of the iovar 65 * @dwell_time: dwell duration in ms 66 * @len: length of frame data 67 * @frame_control: frame control 68 * @channel: channel 69 * @da: peer MAC address 70 * @bssid: BSS network identifier 71 * @packet_id: packet identifier 72 * @data: frame data 73 */ 74 struct brcmf_mf_params_le { 75 __le32 version; 76 __le32 dwell_time; 77 __le16 len; 78 __le16 frame_control; 79 __le16 channel; 80 u8 da[ETH_ALEN]; 81 u8 bssid[ETH_ALEN]; 82 __le32 packet_id; 83 u8 data[] __counted_by_le(len); 84 }; 85 86 #endif /* CYW_FWIL_TYPES_H_ */ 87 88