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
scsi
scsi_dh.h
Go to the documentation of this file.
1
/*
2
* Header file for SCSI device handler infrastruture.
3
*
4
* Modified version of patches posted by Mike Christie <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License as published by the
8
* Free Software Foundation; either version 2 of the License, or (at your
9
* option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License along
17
* with this program; if not, write to the Free Software Foundation, Inc.,
18
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
*
20
* Copyright IBM Corporation, 2007
21
* Authors:
22
* Chandra Seetharaman <
[email protected]
>
23
* Mike Anderson <
[email protected]
>
24
*/
25
26
#include <
scsi/scsi_device.h
>
27
28
enum
{
29
SCSI_DH_OK
= 0,
30
/*
31
* device errors
32
*/
33
SCSI_DH_DEV_FAILED
,
/* generic device error */
34
SCSI_DH_DEV_TEMP_BUSY
,
35
SCSI_DH_DEV_UNSUPP
,
/* device handler not supported */
36
SCSI_DH_DEVICE_MAX
,
/* max device blkerr definition */
37
38
/*
39
* transport errors
40
*/
41
SCSI_DH_NOTCONN
=
SCSI_DH_DEVICE_MAX
+ 1,
42
SCSI_DH_CONN_FAILURE
,
43
SCSI_DH_TRANSPORT_MAX
,
/* max transport blkerr definition */
44
45
/*
46
* driver and generic errors
47
*/
48
SCSI_DH_IO
=
SCSI_DH_TRANSPORT_MAX
+ 1,
/* generic error */
49
SCSI_DH_INVALID_IO
,
50
SCSI_DH_RETRY
,
/* retry the req, but not immediately */
51
SCSI_DH_IMM_RETRY
,
/* immediately retry the req */
52
SCSI_DH_TIMED_OUT
,
53
SCSI_DH_RES_TEMP_UNAVAIL
,
54
SCSI_DH_DEV_OFFLINED
,
55
SCSI_DH_NOSYS
,
56
SCSI_DH_DRIVER_MAX
,
57
};
58
#if defined(CONFIG_SCSI_DH) || defined(CONFIG_SCSI_DH_MODULE)
59
extern
int
scsi_dh_activate
(
struct
request_queue
*,
activate_complete
,
void
*);
60
extern
int
scsi_dh_handler_exist
(
const
char
*);
61
extern
int
scsi_dh_attach
(
struct
request_queue
*,
const
char
*);
62
extern
void
scsi_dh_detach
(
struct
request_queue
*);
63
extern
const
char
*
scsi_dh_attached_handler_name
(
struct
request_queue
*,
gfp_t
);
64
extern
int
scsi_dh_set_params
(
struct
request_queue
*,
const
char
*);
65
#else
66
static
inline
int
scsi_dh_activate
(
struct
request_queue
*
req
,
67
activate_complete
fn
,
void
*
data
)
68
{
69
fn
(data, 0);
70
return
0;
71
}
72
static
inline
int
scsi_dh_handler_exist
(
const
char
*
name
)
73
{
74
return
0;
75
}
76
static
inline
int
scsi_dh_attach
(
struct
request_queue
*
req
,
const
char
*
name
)
77
{
78
return
SCSI_DH_NOSYS
;
79
}
80
static
inline
void
scsi_dh_detach
(
struct
request_queue
*
q
)
81
{
82
return
;
83
}
84
static
inline
const
char
*
scsi_dh_attached_handler_name
(
struct
request_queue
*
q
,
85
gfp_t
gfp)
86
{
87
return
NULL
;
88
}
89
static
inline
int
scsi_dh_set_params
(
struct
request_queue
*
req
,
const
char
*
params
)
90
{
91
return
-
SCSI_DH_NOSYS
;
92
}
93
#endif
Generated on Thu Jan 10 2013 14:53:28 for Linux Kernel by
1.8.2