Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
wireless
ath
ath5k
base.h
Go to the documentation of this file.
1
/*-
2
* Copyright (c) 2002-2007 Sam Leffler, Errno Consulting
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer,
10
* without modification.
11
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
12
* similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any
13
* redistribution must be conditioned upon including a substantially
14
* similar Disclaimer requirement for further binary redistribution.
15
* 3. Neither the names of the above-listed copyright holders nor the names
16
* of any contributors may be used to endorse or promote products derived
17
* from this software without specific prior written permission.
18
*
19
* Alternatively, this software may be distributed under the terms of the
20
* GNU General Public License ("GPL") version 2 as published by the Free
21
* Software Foundation.
22
*
23
* NO WARRANTY
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
* LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY
27
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
28
* THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY,
29
* OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
32
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
34
* THE POSSIBILITY OF SUCH DAMAGES.
35
*
36
*/
37
38
/*
39
* Definitions for the Atheros Wireless LAN controller driver.
40
*/
41
#ifndef _DEV_ATH5K_BASE_H
42
#define _DEV_ATH5K_BASE_H
43
44
struct
ieee80211_vif
;
45
struct
ieee80211_hw
;
46
struct
ath5k_hw
;
47
struct
ath5k_txq
;
48
struct
ieee80211_channel
;
49
struct
ath_bus_ops
;
50
enum
nl80211_iftype
;
51
52
enum
ath5k_srev_type
{
53
AR5K_VERSION_MAC
,
54
AR5K_VERSION_RAD
,
55
};
56
57
struct
ath5k_srev_name
{
58
const
char
*
sr_name
;
59
enum
ath5k_srev_type
sr_type
;
60
u_int
sr_val
;
61
};
62
63
struct
ath5k_buf
{
64
struct
list_head
list
;
65
struct
ath5k_desc
*
desc
;
/* virtual addr of desc */
66
dma_addr_t
daddr
;
/* physical addr of desc */
67
struct
sk_buff
*
skb
;
/* skbuff for buf */
68
dma_addr_t
skbaddr
;
/* physical addr of skb data */
69
};
70
71
struct
ath5k_vif
{
72
bool
assoc
;
/* are we associated or not */
73
enum
nl80211_iftype
opmode
;
74
int
bslot
;
75
struct
ath5k_buf
*
bbuf
;
/* beacon buffer */
76
};
77
78
struct
ath5k_vif_iter_data
{
79
const
u8
*
hw_macaddr
;
80
u8
mask
[
ETH_ALEN
];
81
u8
active_mac
[
ETH_ALEN
];
/* first active MAC */
82
bool
need_set_hw_addr
;
83
bool
found_active
;
84
bool
any_assoc
;
85
enum
nl80211_iftype
opmode
;
86
int
n_stas
;
87
};
88
89
void
ath5k_vif_iter
(
void
*
data
,
u8
*
mac
,
struct
ieee80211_vif
*vif);
90
bool
ath5k_any_vif_assoc
(
struct
ath5k_hw
*
ah
);
91
92
int
ath5k_start
(
struct
ieee80211_hw
*
hw
);
93
void
ath5k_stop
(
struct
ieee80211_hw
*
hw
);
94
95
void
ath5k_beacon_update_timers
(
struct
ath5k_hw
*
ah
,
u64
bc_tsf);
96
int
ath5k_beacon_update
(
struct
ieee80211_hw
*
hw
,
struct
ieee80211_vif
*vif);
97
void
ath5k_beacon_config
(
struct
ath5k_hw
*
ah
);
98
void
ath5k_set_beacon_filter
(
struct
ieee80211_hw
*
hw
,
bool
enable
);
99
100
void
ath5k_update_bssid_mask_and_opmode
(
struct
ath5k_hw
*
ah
,
101
struct
ieee80211_vif
*vif);
102
int
ath5k_chan_set
(
struct
ath5k_hw
*
ah
,
struct
ieee80211_channel
*
chan
);
103
void
ath5k_txbuf_free_skb
(
struct
ath5k_hw
*
ah
,
struct
ath5k_buf
*
bf
);
104
void
ath5k_rxbuf_free_skb
(
struct
ath5k_hw
*
ah
,
struct
ath5k_buf
*
bf
);
105
void
ath5k_tx_queue
(
struct
ieee80211_hw
*
hw
,
struct
sk_buff
*
skb
,
106
struct
ath5k_txq
*txq);
107
108
const
char
*
ath5k_chip_name
(
enum
ath5k_srev_type
type
,
u_int16_t
val
);
109
110
int
ath5k_init_ah
(
struct
ath5k_hw
*
ah
,
const
struct
ath_bus_ops
*bus_ops);
111
void
ath5k_deinit_ah
(
struct
ath5k_hw
*
ah
);
112
113
/* Check whether BSSID mask is supported */
114
#define ath5k_hw_hasbssidmask(_ah) (ah->ah_version == AR5K_AR5212)
115
116
/* Check whether virtual EOL is supported */
117
#define ath5k_hw_hasveol(_ah) (ah->ah_version != AR5K_AR5210)
118
119
#endif
/* _DEV_ATH5K_BASE_H */
Generated on Thu Jan 10 2013 13:09:45 for Linux Kernel by
1.8.2