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