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