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
include
linux
blk-iopoll.h
Go to the documentation of this file.
1
#ifndef BLK_IOPOLL_H
2
#define BLK_IOPOLL_H
3
4
struct
blk_iopoll
;
5
typedef
int
(
blk_iopoll_fn
)(
struct
blk_iopoll
*,
int
);
6
7
struct
blk_iopoll
{
8
struct
list_head
list
;
9
unsigned
long
state
;
10
unsigned
long
data
;
11
int
weight
;
12
int
max
;
13
blk_iopoll_fn
*
poll
;
14
};
15
16
enum
{
17
IOPOLL_F_SCHED
= 0,
18
IOPOLL_F_DISABLE
= 1,
19
};
20
21
/*
22
* Returns 0 if we successfully set the IOPOLL_F_SCHED bit, indicating
23
* that we were the first to acquire this iop for scheduling. If this iop
24
* is currently disabled, return "failure".
25
*/
26
static
inline
int
blk_iopoll_sched_prep(
struct
blk_iopoll
*iop)
27
{
28
if
(!
test_bit
(
IOPOLL_F_DISABLE
, &iop->
state
))
29
return
test_and_set_bit
(
IOPOLL_F_SCHED
, &iop->
state
);
30
31
return
1;
32
}
33
34
static
inline
int
blk_iopoll_disable_pending(
struct
blk_iopoll
*iop)
35
{
36
return
test_bit
(
IOPOLL_F_DISABLE
, &iop->
state
);
37
}
38
39
extern
void
blk_iopoll_sched
(
struct
blk_iopoll
*);
40
extern
void
blk_iopoll_init
(
struct
blk_iopoll
*,
int
,
blk_iopoll_fn
*);
41
extern
void
blk_iopoll_complete
(
struct
blk_iopoll
*);
42
extern
void
__blk_iopoll_complete
(
struct
blk_iopoll
*);
43
extern
void
blk_iopoll_enable
(
struct
blk_iopoll
*);
44
extern
void
blk_iopoll_disable
(
struct
blk_iopoll
*);
45
46
extern
int
blk_iopoll_enabled
;
47
48
#endif
Generated on Thu Jan 10 2013 14:51:05 for Linux Kernel by
1.8.2