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
iwlwifi
iwl-notif-wait.h
Go to the documentation of this file.
1
/******************************************************************************
2
*
3
* This file is provided under a dual BSD/GPLv2 license. When using or
4
* redistributing this file, you may do so under either license.
5
*
6
* GPL LICENSE SUMMARY
7
*
8
* Copyright(c) 2007 - 2012 Intel Corporation. All rights reserved.
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of version 2 of the GNU General Public License as
12
* published by the Free Software Foundation.
13
*
14
* This program is distributed in the hope that it will be useful, but
15
* WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
22
* USA
23
*
24
* The full GNU General Public License is included in this distribution
25
* in the file called LICENSE.GPL.
26
*
27
* Contact Information:
28
* Intel Linux Wireless <
[email protected]
>
29
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
30
*
31
* BSD LICENSE
32
*
33
* Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
34
* All rights reserved.
35
*
36
* Redistribution and use in source and binary forms, with or without
37
* modification, are permitted provided that the following conditions
38
* are met:
39
*
40
* * Redistributions of source code must retain the above copyright
41
* notice, this list of conditions and the following disclaimer.
42
* * Redistributions in binary form must reproduce the above copyright
43
* notice, this list of conditions and the following disclaimer in
44
* distribution.
45
* * Neither the name Intel Corporation nor the names of its
46
* contributors may be used to endorse or promote products derived
47
* from this software without specific prior written permission.
48
*
49
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
50
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
51
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
52
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
53
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
54
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
55
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
57
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
58
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
59
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
60
*
61
*****************************************************************************/
62
#ifndef __iwl_notif_wait_h__
63
#define __iwl_notif_wait_h__
64
65
#include <linux/wait.h>
66
67
#include "
iwl-trans.h
"
68
69
struct
iwl_notif_wait_data
{
70
struct
list_head
notif_waits
;
71
spinlock_t
notif_wait_lock
;
72
wait_queue_head_t
notif_waitq
;
73
};
74
75
#define MAX_NOTIF_CMDS 5
76
101
struct
iwl_notification_wait
{
102
struct
list_head
list
;
103
104
bool
(*
fn
)(
struct
iwl_notif_wait_data
*notif_data,
105
struct
iwl_rx_packet
*pkt,
void
*
data
);
106
void
*
fn_data
;
107
108
u8
cmds
[
MAX_NOTIF_CMDS
];
109
u8
n_cmds
;
110
bool
triggered
,
aborted
;
111
};
112
113
114
/* caller functions */
115
void
iwl_notification_wait_init
(
struct
iwl_notif_wait_data
*notif_data);
116
void
iwl_notification_wait_notify
(
struct
iwl_notif_wait_data
*notif_data,
117
struct
iwl_rx_packet
*pkt);
118
void
iwl_abort_notification_waits
(
struct
iwl_notif_wait_data
*notif_data);
119
120
/* user functions */
121
void
__acquires
(
wait_entry
)
122
iwl_init_notification_wait
(
struct
iwl_notif_wait_data
*notif_data,
123
struct
iwl_notification_wait
*
wait_entry
,
124
const
u8
*
cmds
,
int
n_cmds
,
125
bool
(*
fn
)(
struct
iwl_notif_wait_data
*notif_data,
126
struct
iwl_rx_packet
*pkt,
void
*
data
),
127
void
*
fn_data
);
128
129
int
__must_check
__releases
(wait_entry)
130
iwl_wait_notification
(
struct
iwl_notif_wait_data
*notif_data,
131
struct
iwl_notification_wait
*wait_entry,
132
unsigned
long
timeout);
133
134
void
__releases
(wait_entry)
135
iwl_remove_notification
(
struct
iwl_notif_wait_data
*notif_data,
136
struct
iwl_notification_wait
*wait_entry);
137
138
#endif
/* __iwl_notif_wait_h__ */
Generated on Thu Jan 10 2013 14:11:50 for Linux Kernel by
1.8.2