cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

scsi_driver.h (1081B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _SCSI_SCSI_DRIVER_H
      3#define _SCSI_SCSI_DRIVER_H
      4
      5#include <linux/blk_types.h>
      6#include <linux/device.h>
      7#include <scsi/scsi_cmnd.h>
      8
      9struct module;
     10struct request;
     11
     12struct scsi_driver {
     13	struct device_driver	gendrv;
     14
     15	void (*rescan)(struct device *);
     16	blk_status_t (*init_command)(struct scsi_cmnd *);
     17	void (*uninit_command)(struct scsi_cmnd *);
     18	int (*done)(struct scsi_cmnd *);
     19	int (*eh_action)(struct scsi_cmnd *, int);
     20	void (*eh_reset)(struct scsi_cmnd *);
     21};
     22#define to_scsi_driver(drv) \
     23	container_of((drv), struct scsi_driver, gendrv)
     24
     25extern int scsi_register_driver(struct device_driver *);
     26#define scsi_unregister_driver(drv) \
     27	driver_unregister(drv);
     28
     29extern int scsi_register_interface(struct class_interface *);
     30#define scsi_unregister_interface(intf) \
     31	class_interface_unregister(intf)
     32
     33/* make sure not to use it with passthrough commands */
     34static inline struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd)
     35{
     36	return to_scsi_driver(cmd->device->sdev_gendev.driver);
     37}
     38
     39#endif /* _SCSI_SCSI_DRIVER_H */