Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
2 | #ifndef _SCSI_SCSI_DRIVER_H |
3 | #define _SCSI_SCSI_DRIVER_H | |
4 | ||
159b2cbf | 5 | #include <linux/blk_types.h> |
1da177e4 LT |
6 | #include <linux/device.h> |
7 | ||
8 | struct module; | |
a1b73fc1 | 9 | struct request; |
1da177e4 | 10 | struct scsi_cmnd; |
7f9a6bc4 | 11 | struct scsi_device; |
1da177e4 LT |
12 | |
13 | struct scsi_driver { | |
1da177e4 LT |
14 | struct device_driver gendrv; |
15 | ||
1da177e4 | 16 | void (*rescan)(struct device *); |
159b2cbf | 17 | blk_status_t (*init_command)(struct scsi_cmnd *); |
a1b73fc1 | 18 | void (*uninit_command)(struct scsi_cmnd *); |
7b3d9545 | 19 | int (*done)(struct scsi_cmnd *); |
2451079b | 20 | int (*eh_action)(struct scsi_cmnd *, int); |
7a38dc0b | 21 | void (*eh_reset)(struct scsi_cmnd *); |
1da177e4 LT |
22 | }; |
23 | #define to_scsi_driver(drv) \ | |
24 | container_of((drv), struct scsi_driver, gendrv) | |
25 | ||
26 | extern int scsi_register_driver(struct device_driver *); | |
27 | #define scsi_unregister_driver(drv) \ | |
28 | driver_unregister(drv); | |
29 | ||
30 | extern int scsi_register_interface(struct class_interface *); | |
31 | #define scsi_unregister_interface(intf) \ | |
32 | class_interface_unregister(intf) | |
33 | ||
34 | #endif /* _SCSI_SCSI_DRIVER_H */ |