• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  *  Copyright (C) 2002 Intersil Americas Inc.
4  */
5 
6 #ifndef _ISLPCI_ETH_H
7 #define _ISLPCI_ETH_H
8 
9 #include "isl_38xx.h"
10 #include "islpci_dev.h"
11 
12 struct rfmon_header {
13 	__le16 unk0;		/* = 0x0000 */
14 	__le16 length;		/* = 0x1400 */
15 	__le32 clock;		/* 1MHz clock */
16 	u8 flags;
17 	u8 unk1;
18 	u8 rate;
19 	u8 unk2;
20 	__le16 freq;
21 	__le16 unk3;
22 	u8 rssi;
23 	u8 padding[3];
24 } __packed;
25 
26 struct rx_annex_header {
27 	u8 addr1[ETH_ALEN];
28 	u8 addr2[ETH_ALEN];
29 	struct rfmon_header rfmon;
30 } __packed;
31 
32 /* wlan-ng (and hopefully others) AVS header, version one.  Fields in
33  * network byte order. */
34 #define P80211CAPTURE_VERSION 0x80211001
35 
36 struct avs_80211_1_header {
37 	__be32 version;
38 	__be32 length;
39 	__be64 mactime;
40 	__be64 hosttime;
41 	__be32 phytype;
42 	__be32 channel;
43 	__be32 datarate;
44 	__be32 antenna;
45 	__be32 priority;
46 	__be32 ssi_type;
47 	__be32 ssi_signal;
48 	__be32 ssi_noise;
49 	__be32 preamble;
50 	__be32 encoding;
51 };
52 
53 void islpci_eth_cleanup_transmit(islpci_private *, isl38xx_control_block *);
54 netdev_tx_t islpci_eth_transmit(struct sk_buff *, struct net_device *);
55 int islpci_eth_receive(islpci_private *);
56 void islpci_eth_tx_timeout(struct net_device *, unsigned int txqueue);
57 void islpci_do_reset_and_wake(struct work_struct *);
58 
59 #endif				/* _ISL_GEN_H */
60