| /* |
| * $Copyright Open Broadcom Corporation$ |
| * |
| * Fundamental types and constants relating to WFA P2P (aka WiFi Direct) |
| * |
| * $Id: p2p.h 444066 2013-12-18 12:49:24Z $ |
| */ |
| |
| #ifndef _P2P_H_ |
| #define _P2P_H_ |
| |
| #ifndef _TYPEDEFS_H_ |
| #include <typedefs.h> |
| #endif |
| #include <wlioctl.h> |
| #include <proto/802.11.h> |
| |
| |
| #include <packed_section_start.h> |
| |
| |
| |
| #define P2P_OUI WFA_OUI |
| #define P2P_VER WFA_OUI_TYPE_P2P |
| |
| #define P2P_IE_ID 0xdd |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_ie { |
| uint8 id; |
| uint8 len; |
| uint8 OUI[3]; |
| uint8 oui_type; |
| uint8 subelts[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_ie wifi_p2p_ie_t; |
| |
| #define P2P_IE_FIXED_LEN 6 |
| |
| #define P2P_ATTR_ID_OFF 0 |
| #define P2P_ATTR_LEN_OFF 1 |
| #define P2P_ATTR_DATA_OFF 3 |
| |
| #define P2P_ATTR_ID_LEN 1 |
| #define P2P_ATTR_LEN_LEN 2 |
| #define P2P_ATTR_HDR_LEN 3 |
| |
| |
| #define P2P_SEID_STATUS 0 |
| #define P2P_SEID_MINOR_RC 1 |
| #define P2P_SEID_P2P_INFO 2 |
| #define P2P_SEID_DEV_ID 3 |
| #define P2P_SEID_INTENT 4 |
| #define P2P_SEID_CFG_TIMEOUT 5 |
| #define P2P_SEID_CHANNEL 6 |
| #define P2P_SEID_GRP_BSSID 7 |
| #define P2P_SEID_XT_TIMING 8 |
| #define P2P_SEID_INTINTADDR 9 |
| #define P2P_SEID_P2P_MGBTY 10 |
| #define P2P_SEID_CHAN_LIST 11 |
| #define P2P_SEID_ABSENCE 12 |
| #define P2P_SEID_DEV_INFO 13 |
| #define P2P_SEID_GROUP_INFO 14 |
| #define P2P_SEID_GROUP_ID 15 |
| #define P2P_SEID_P2P_IF 16 |
| #define P2P_SEID_OP_CHANNEL 17 |
| #define P2P_SEID_INVITE_FLAGS 18 |
| #define P2P_SEID_VNDR 221 |
| |
| #define P2P_SE_VS_ID_SERVICES 0x1b |
| |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_info_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 dev; |
| uint8 group; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_info_se_s wifi_p2p_info_se_t; |
| |
| |
| #define P2P_CAPSE_DEV_SERVICE_DIS 0x1 |
| #define P2P_CAPSE_DEV_CLIENT_DIS 0x2 |
| #define P2P_CAPSE_DEV_CONCURRENT 0x4 |
| #define P2P_CAPSE_DEV_INFRA_MAN 0x8 |
| #define P2P_CAPSE_DEV_LIMIT 0x10 |
| #define P2P_CAPSE_INVITE_PROC 0x20 |
| |
| |
| #define P2P_CAPSE_GRP_OWNER 0x1 |
| #define P2P_CAPSE_PERSIST_GRP 0x2 |
| #define P2P_CAPSE_GRP_LIMIT 0x4 |
| #define P2P_CAPSE_GRP_INTRA_BSS 0x8 |
| #define P2P_CAPSE_GRP_X_CONNECT 0x10 |
| #define P2P_CAPSE_GRP_PERSISTENT 0x20 |
| #define P2P_CAPSE_GRP_FORMATION 0x40 |
| |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_intent_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 intent; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_intent_se_s wifi_p2p_intent_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_cfg_tmo_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 go_tmo; |
| uint8 client_tmo; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_cfg_tmo_se_s wifi_p2p_cfg_tmo_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_listen_channel_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 country[3]; |
| uint8 op_class; |
| uint8 channel; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_listen_channel_se_s wifi_p2p_listen_channel_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_grp_bssid_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 mac[6]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_grp_bssid_se_s wifi_p2p_grp_bssid_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_grp_id_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 mac[6]; |
| uint8 ssid[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_grp_id_se_s wifi_p2p_grp_id_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_intf_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 mac[6]; |
| uint8 ifaddrs; |
| uint8 ifaddr[1][6]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_intf_se_s wifi_p2p_intf_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_status_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 status; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_status_se_s wifi_p2p_status_se_t; |
| |
| |
| #define P2P_STATSE_SUCCESS 0 |
| |
| #define P2P_STATSE_FAIL_INFO_CURR_UNAVAIL 1 |
| |
| #define P2P_STATSE_PASSED_UP P2P_STATSE_FAIL_INFO_CURR_UNAVAIL |
| |
| #define P2P_STATSE_FAIL_INCOMPAT_PARAMS 2 |
| |
| #define P2P_STATSE_FAIL_LIMIT_REACHED 3 |
| |
| #define P2P_STATSE_FAIL_INVALID_PARAMS 4 |
| |
| #define P2P_STATSE_FAIL_UNABLE_TO_ACCOM 5 |
| |
| #define P2P_STATSE_FAIL_PROTO_ERROR 6 |
| |
| #define P2P_STATSE_FAIL_NO_COMMON_CHAN 7 |
| |
| #define P2P_STATSE_FAIL_UNKNOWN_GROUP 8 |
| |
| #define P2P_STATSE_FAIL_INTENT 9 |
| |
| #define P2P_STATSE_FAIL_INCOMPAT_PROVIS 10 |
| |
| #define P2P_STATSE_FAIL_USER_REJECT 11 |
| |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_ext_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 avail[2]; |
| uint8 interval[2]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_ext_se_s wifi_p2p_ext_se_t; |
| |
| #define P2P_EXT_MIN 10 |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_intintad_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 mac[6]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_intintad_se_s wifi_p2p_intintad_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_channel_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 band; |
| uint8 channel; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_channel_se_s wifi_p2p_channel_se_t; |
| |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_chanlist_entry_s { |
| uint8 band; |
| uint8 num_channels; |
| uint8 channels[WL_NUMCHANNELS]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_chanlist_entry_s wifi_p2p_chanlist_entry_t; |
| #define WIFI_P2P_CHANLIST_SE_MAX_ENTRIES 2 |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_chanlist_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 country[3]; |
| uint8 num_entries; |
| wifi_p2p_chanlist_entry_t entries[WIFI_P2P_CHANLIST_SE_MAX_ENTRIES]; |
| |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_chanlist_se_s wifi_p2p_chanlist_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_pri_devtype_s { |
| uint16 cat_id; |
| uint8 OUI[3]; |
| uint8 oui_type; |
| uint16 sub_cat_id; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_pri_devtype_s wifi_p2p_pri_devtype_t; |
| |
| |
| #define P2P_DISE_SUBCATEGORY_MINVAL 1 |
| #define P2P_DISE_CATEGORY_COMPUTER 1 |
| #define P2P_DISE_SUBCATEGORY_COMPUTER_MAXVAL 8 |
| #define P2P_DISE_CATEGORY_INPUT_DEVICE 2 |
| #define P2P_DISE_SUBCATEGORY_INPUT_DEVICE_MAXVAL 9 |
| #define P2P_DISE_CATEGORY_PRINTER 3 |
| #define P2P_DISE_SUBCATEGORY_PRINTER_MAXVAL 5 |
| #define P2P_DISE_CATEGORY_CAMERA 4 |
| #define P2P_DISE_SUBCATEGORY_CAMERA_MAXVAL 4 |
| #define P2P_DISE_CATEGORY_STORAGE 5 |
| #define P2P_DISE_SUBCATEGORY_STORAGE_MAXVAL 1 |
| #define P2P_DISE_CATEGORY_NETWORK_INFRA 6 |
| #define P2P_DISE_SUBCATEGORY_NETWORK_INFRA_MAXVAL 4 |
| #define P2P_DISE_CATEGORY_DISPLAY 7 |
| #define P2P_DISE_SUBCATEGORY_DISPLAY_MAXVAL 4 |
| #define P2P_DISE_CATEGORY_MULTIMEDIA 8 |
| #define P2P_DISE_SUBCATEGORY_MULTIMEDIA_MAXVAL 6 |
| #define P2P_DISE_CATEGORY_GAMING 9 |
| #define P2P_DISE_SUBCATEGORY_GAMING_MAXVAL 5 |
| #define P2P_DISE_CATEGORY_TELEPHONE 10 |
| #define P2P_DISE_SUBCATEGORY_TELEPHONE_MAXVAL 5 |
| #define P2P_DISE_CATEGORY_AUDIO 11 |
| #define P2P_DISE_SUBCATEGORY_AUDIO_MAXVAL 6 |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_devinfo_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 mac[6]; |
| uint16 wps_cfg_meths; |
| uint8 pri_devtype[8]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_devinfo_se_s wifi_p2p_devinfo_se_t; |
| |
| #define P2P_DEV_TYPE_LEN 8 |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_cid_fixed_s { |
| uint8 len; |
| uint8 devaddr[ETHER_ADDR_LEN]; |
| uint8 ifaddr[ETHER_ADDR_LEN]; |
| uint8 devcap; |
| uint8 cfg_meths[2]; |
| uint8 pridt[P2P_DEV_TYPE_LEN]; |
| uint8 secdts; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_cid_fixed_s wifi_p2p_cid_fixed_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_devid_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| struct ether_addr addr; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_devid_se_s wifi_p2p_devid_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_mgbt_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 mg_bitmap; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_mgbt_se_s wifi_p2p_mgbt_se_t; |
| |
| #define P2P_MGBTSE_P2PDEVMGMT_FLAG 0x1 |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_grpinfo_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_grpinfo_se_s wifi_p2p_grpinfo_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_op_channel_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 country[3]; |
| uint8 op_class; |
| uint8 channel; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_op_channel_se_s wifi_p2p_op_channel_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_invite_flags_se_s { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 flags; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_invite_flags_se_s wifi_p2p_invite_flags_se_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_action_frame { |
| uint8 category; |
| uint8 OUI[3]; |
| uint8 type; |
| uint8 subtype; |
| uint8 dialog_token; |
| uint8 elts[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_action_frame wifi_p2p_action_frame_t; |
| #define P2P_AF_CATEGORY 0x7f |
| |
| #define P2P_AF_FIXED_LEN 7 |
| |
| |
| #define P2P_AF_NOTICE_OF_ABSENCE 0 |
| #define P2P_AF_PRESENCE_REQ 1 |
| #define P2P_AF_PRESENCE_RSP 2 |
| #define P2P_AF_GO_DISC_REQ 3 |
| |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_pub_act_frame { |
| uint8 category; |
| uint8 action; |
| uint8 oui[3]; |
| uint8 oui_type; |
| uint8 subtype; |
| uint8 dialog_token; |
| uint8 elts[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_pub_act_frame wifi_p2p_pub_act_frame_t; |
| #define P2P_PUB_AF_FIXED_LEN 8 |
| #define P2P_PUB_AF_CATEGORY 0x04 |
| #define P2P_PUB_AF_ACTION 0x09 |
| |
| |
| #define P2P_PAF_GON_REQ 0 |
| #define P2P_PAF_GON_RSP 1 |
| #define P2P_PAF_GON_CONF 2 |
| #define P2P_PAF_INVITE_REQ 3 |
| #define P2P_PAF_INVITE_RSP 4 |
| #define P2P_PAF_DEVDIS_REQ 5 |
| #define P2P_PAF_DEVDIS_RSP 6 |
| #define P2P_PAF_PROVDIS_REQ 7 |
| #define P2P_PAF_PROVDIS_RSP 8 |
| #define P2P_PAF_SUBTYPE_INVALID 255 |
| |
| |
| #define P2P_TYPE_MNREQ P2P_PAF_GON_REQ |
| #define P2P_TYPE_MNRSP P2P_PAF_GON_RSP |
| #define P2P_TYPE_MNCONF P2P_PAF_GON_CONF |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_noa_desc { |
| uint8 cnt_type; |
| uint32 duration; |
| uint32 interval; |
| uint32 start; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_noa_desc wifi_p2p_noa_desc_t; |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2p_noa_se { |
| uint8 eltId; |
| uint8 len[2]; |
| uint8 index; |
| uint8 ops_ctw_parms; |
| wifi_p2p_noa_desc_t desc[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2p_noa_se wifi_p2p_noa_se_t; |
| |
| #define P2P_NOA_SE_FIXED_LEN 5 |
| |
| #define P2P_NOA_SE_MAX_DESC 2 |
| |
| |
| #define P2P_NOA_DESC_CNT_RESERVED 0 |
| #define P2P_NOA_DESC_CNT_REPEAT 255 |
| #define P2P_NOA_DESC_TYPE_PREFERRED 1 |
| #define P2P_NOA_DESC_TYPE_ACCEPTABLE 2 |
| |
| |
| #define P2P_NOA_CTW_MASK 0x7f |
| #define P2P_NOA_OPS_MASK 0x80 |
| #define P2P_NOA_OPS_SHIFT 7 |
| |
| #define P2P_CTW_MIN 10 |
| |
| |
| #define P2PSD_ACTION_CATEGORY 0x04 |
| |
| #define P2PSD_ACTION_ID_GAS_IREQ 0x0a |
| |
| #define P2PSD_ACTION_ID_GAS_IRESP 0x0b |
| |
| #define P2PSD_ACTION_ID_GAS_CREQ 0x0c |
| |
| #define P2PSD_ACTION_ID_GAS_CRESP 0x0d |
| |
| #define P2PSD_AD_EID 0x6c |
| |
| #define P2PSD_ADP_TUPLE_QLMT_PAMEBI 0x00 |
| |
| #define P2PSD_ADP_PROTO_ID 0x00 |
| |
| #define P2PSD_GAS_OUI P2P_OUI |
| |
| #define P2PSD_GAS_OUI_SUBTYPE P2P_VER |
| |
| #define P2PSD_GAS_NQP_INFOID 0xDDDD |
| |
| #define P2PSD_GAS_COMEBACKDEALY 0x00 |
| |
| |
| |
| typedef enum p2psd_svc_protype { |
| SVC_RPOTYPE_ALL = 0, |
| SVC_RPOTYPE_BONJOUR = 1, |
| SVC_RPOTYPE_UPNP = 2, |
| SVC_RPOTYPE_WSD = 3, |
| SVC_RPOTYPE_VENDOR = 255 |
| } p2psd_svc_protype_t; |
| |
| |
| typedef enum { |
| P2PSD_RESP_STATUS_SUCCESS = 0, |
| P2PSD_RESP_STATUS_PROTYPE_NA = 1, |
| P2PSD_RESP_STATUS_DATA_NA = 2, |
| P2PSD_RESP_STATUS_BAD_REQUEST = 3 |
| } p2psd_resp_status_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_adp_tpl { |
| uint8 llm_pamebi; |
| uint8 adp_id; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_adp_tpl wifi_p2psd_adp_tpl_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_adp_ie { |
| uint8 id; |
| uint8 len; |
| wifi_p2psd_adp_tpl_t adp_tpl; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_adp_ie wifi_p2psd_adp_ie_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_nqp_query_vsc { |
| uint8 oui_subtype; |
| uint16 svc_updi; |
| uint8 svc_tlvs[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_nqp_query_vsc wifi_p2psd_nqp_query_vsc_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_qreq_tlv { |
| uint16 len; |
| uint8 svc_prot; |
| uint8 svc_tscid; |
| uint8 query_data[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_qreq_tlv wifi_p2psd_qreq_tlv_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_qreq_frame { |
| uint16 info_id; |
| uint16 len; |
| uint8 oui[3]; |
| uint8 qreq_vsc[1]; |
| |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_qreq_frame wifi_p2psd_qreq_frame_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_gas_ireq_frame { |
| wifi_p2psd_adp_ie_t adp_ie; |
| uint16 qreq_len; |
| uint8 qreq_frm[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_gas_ireq_frame wifi_p2psd_gas_ireq_frame_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_qresp_tlv { |
| uint16 len; |
| uint8 svc_prot; |
| uint8 svc_tscid; |
| uint8 status; |
| uint8 query_data[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_qresp_tlv wifi_p2psd_qresp_tlv_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_qresp_frame { |
| uint16 info_id; |
| uint16 len; |
| uint8 oui[3]; |
| uint8 qresp_vsc[1]; |
| |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_qresp_frame wifi_p2psd_qresp_frame_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_gas_iresp_frame { |
| uint16 status; |
| uint16 cb_delay; |
| wifi_p2psd_adp_ie_t adp_ie; |
| uint16 qresp_len; |
| uint8 qresp_frm[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_gas_iresp_frame wifi_p2psd_gas_iresp_frame_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_gas_cresp_frame { |
| uint16 status; |
| uint8 fragment_id; |
| uint16 cb_delay; |
| wifi_p2psd_adp_ie_t adp_ie; |
| uint16 qresp_len; |
| uint8 qresp_frm[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_gas_cresp_frame wifi_p2psd_gas_cresp_frame_t; |
| |
| |
| BWL_PRE_PACKED_STRUCT struct wifi_p2psd_gas_pub_act_frame { |
| uint8 category; |
| uint8 action; |
| uint8 dialog_token; |
| uint8 query_data[1]; |
| } BWL_POST_PACKED_STRUCT; |
| typedef struct wifi_p2psd_gas_pub_act_frame wifi_p2psd_gas_pub_act_frame_t; |
| |
| |
| #include <packed_section_end.h> |
| |
| #endif |