brintos

brintos / linux-shallow public Read only

0
0
Text · 3.8 KiB · be1e518 Raw
185 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.4 * All rights reserved.5 *6 * Purpose:7 *8 * Author: Jerry Chen9 *10 * Date: Jun. 27, 200211 *12 */13 14#ifndef __RXTX_H__15#define __RXTX_H__16 17#include "device.h"18 19#define DEFAULT_MSDU_LIFETIME_RES_64us	8000 /* 64us */20#define DEFAULT_MGN_LIFETIME_RES_64us	125  /* 64us */21 22/*---------------------  Export Definitions -------------------------*/23 24/*---------------------  Export Variables  --------------------------*/25 26/*---------------------  Export Functions  --------------------------*/27 28/* MIC HDR data header */29struct vnt_mic_hdr {30	u8 id;31	u8 tx_priority;32	u8 mic_addr2[ETH_ALEN];33	u8 ccmp_pn[IEEE80211_CCMP_PN_LEN];34	__be16 payload_len;35	__be16 hlen;36	__le16 frame_control;37	u8 addr1[ETH_ALEN];38	u8 addr2[ETH_ALEN];39	u8 addr3[ETH_ALEN];40	__le16 seq_ctrl;41	u8 addr4[ETH_ALEN];42	u16 packing; /* packing to 48 bytes */43} __packed;44 45/* RsvTime buffer header */46struct vnt_rrv_time_rts {47	__le16 rts_rrv_time_ba;48	__le16 rts_rrv_time_aa;49	__le16 rts_rrv_time_bb;50	u16 reserved;51	__le16 rrv_time_b;52	__le16 rrv_time_a;53} __packed;54 55struct vnt_rrv_time_cts {56	__le16 cts_rrv_time_ba;57	u16 reserved;58	__le16 rrv_time_b;59	__le16 rrv_time_a;60} __packed;61 62struct vnt_rrv_time_ab {63	__le16 rts_rrv_time;64	__le16 rrv_time;65} __packed;66 67/* TX data header */68struct vnt_tx_datahead_g {69	struct vnt_phy_field b;70	struct vnt_phy_field a;71	__le16 duration_b;72	__le16 duration_a;73	__le16 time_stamp_off_b;74	__le16 time_stamp_off_a;75} __packed;76 77struct vnt_tx_datahead_g_fb {78	struct vnt_phy_field b;79	struct vnt_phy_field a;80	__le16 duration_b;81	__le16 duration_a;82	__le16 duration_a_f0;83	__le16 duration_a_f1;84	__le16 time_stamp_off_b;85	__le16 time_stamp_off_a;86} __packed;87 88struct vnt_tx_datahead_ab {89	struct vnt_phy_field ab;90	__le16 duration;91	__le16 time_stamp_off;92} __packed;93 94struct vnt_tx_datahead_a_fb {95	struct vnt_phy_field a;96	__le16 duration;97	__le16 time_stamp_off;98	__le16 duration_f0;99	__le16 duration_f1;100} __packed;101 102/* RTS buffer header */103struct vnt_rts_g {104	struct vnt_phy_field b;105	struct vnt_phy_field a;106	__le16 duration_ba;107	__le16 duration_aa;108	__le16 duration_bb;109	u16 reserved;110	struct ieee80211_rts data;111} __packed __aligned(2);112 113struct vnt_rts_g_fb {114	struct vnt_phy_field b;115	struct vnt_phy_field a;116	__le16 duration_ba;117	__le16 duration_aa;118	__le16 duration_bb;119	u16 wReserved;120	__le16 rts_duration_ba_f0;121	__le16 rts_duration_aa_f0;122	__le16 rts_duration_ba_f1;123	__le16 rts_duration_aa_f1;124	struct ieee80211_rts data;125} __packed __aligned(2);126 127struct vnt_rts_ab {128	struct vnt_phy_field ab;129	__le16 duration;130	u16 reserved;131	struct ieee80211_rts data;132} __packed __aligned(2);133 134struct vnt_rts_a_fb {135	struct vnt_phy_field a;136	__le16 duration;137	u16 reserved;138	__le16 rts_duration_f0;139	__le16 rts_duration_f1;140	struct ieee80211_rts data;141} __packed __aligned(2);142 143/* CTS buffer header */144struct vnt_cts {145	struct vnt_phy_field b;146	__le16 duration_ba;147	u16 reserved;148	struct ieee80211_cts data;149	u16 reserved2;150} __packed __aligned(2);151 152struct vnt_cts_fb {153	struct vnt_phy_field b;154	__le16 duration_ba;155	u16 reserved;156	__le16 cts_duration_ba_f0;157	__le16 cts_duration_ba_f1;158	struct ieee80211_cts data;159	u16 reserved2;160} __packed __aligned(2);161 162struct vnt_tx_fifo_head {163	u8 tx_key[WLAN_KEY_LEN_CCMP];164	__le16 fifo_ctl;165	__le16 time_stamp;166	__le16 frag_ctl;167	__le16 current_rate;168} __packed;169 170struct vnt_tx_short_buf_head {171	__le16 fifo_ctl;172	u16 time_stamp;173	struct vnt_phy_field ab;174	__le16 duration;175	__le16 time_stamp_off;176} __packed;177 178int vnt_generate_fifo_header(struct vnt_private *priv, u32 dma_idx,179			     struct vnt_tx_desc *head_td, struct sk_buff *skb);180int vnt_beacon_make(struct vnt_private *priv, struct ieee80211_vif *vif);181int vnt_beacon_enable(struct vnt_private *priv, struct ieee80211_vif *vif,182		      struct ieee80211_bss_conf *conf);183 184#endif /* __RXTX_H__ */185