scsi_host_template
Regular
4.4
: ✅struct scsi_host_template {
struct module *module;
const char *name;
int (*detect)(struct scsi_host_template *);
int (*release)(struct Scsi_Host *);
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, int, void *);
int (*compat_ioctl)(struct scsi_device *, int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
long unsigned int dma_boundary;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int use_clustering;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int no_async_abort;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
struct list_head legacy_hosts;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
bool disable_blk_mq;
};
4.8
: ✅struct scsi_host_template {
struct module *module;
const char *name;
int (*detect)(struct scsi_host_template *);
int (*release)(struct Scsi_Host *);
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, int, void *);
int (*compat_ioctl)(struct scsi_device *, int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
long unsigned int dma_boundary;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int use_clustering;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int no_async_abort;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
struct list_head legacy_hosts;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
4.10
: ✅struct scsi_host_template {
struct module *module;
const char *name;
int (*detect)(struct scsi_host_template *);
int (*release)(struct Scsi_Host *);
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, int, void *);
int (*compat_ioctl)(struct scsi_device *, int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
long unsigned int dma_boundary;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int use_clustering;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int no_async_abort;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
struct list_head legacy_hosts;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
4.13
: ✅struct scsi_host_template {
struct module *module;
const char *name;
int (*detect)(struct scsi_host_template *);
int (*release)(struct Scsi_Host *);
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, int, void *);
int (*compat_ioctl)(struct scsi_device *, int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
long unsigned int dma_boundary;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int use_clustering;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
struct list_head legacy_hosts;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
4.15
: ✅struct scsi_host_template {
struct module *module;
const char *name;
int (*detect)(struct scsi_host_template *);
int (*release)(struct Scsi_Host *);
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, int, void *);
int (*compat_ioctl)(struct scsi_device *, int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
long unsigned int dma_boundary;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int use_clustering;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
struct list_head legacy_hosts;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
4.18
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, int, void *);
int (*compat_ioctl)(struct scsi_device *, int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
long unsigned int dma_boundary;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int use_clustering;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
5.0
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, int, void *);
int (*compat_ioctl)(struct scsi_device *, int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
5.3
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
5.4
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
5.8
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
int rpm_autosuspend_delay;
};
5.11
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int host_tagset;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
int rpm_autosuspend_delay;
};
5.13
: ✅struct scsi_host_template {
unsigned int cmd_size;
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*mq_poll)(struct Scsi_Host *, unsigned int);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int host_tagset;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
struct scsi_host_cmd_pool *cmd_pool;
int rpm_autosuspend_delay;
};
5.15
: ✅struct scsi_host_template {
unsigned int cmd_size;
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*mq_poll)(struct Scsi_Host *, unsigned int);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int host_tagset;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
struct scsi_host_cmd_pool *cmd_pool;
int rpm_autosuspend_delay;
};
5.19
: ✅struct scsi_host_template {
unsigned int cmd_size;
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*mq_poll)(struct Scsi_Host *, unsigned int);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int host_tagset;
unsigned int max_host_blocked;
const struct attribute_group **shost_groups;
const struct attribute_group **sdev_groups;
u64 vendor_id;
int rpm_autosuspend_delay;
};
6.2
: ✅struct scsi_host_template {
unsigned int cmd_size;
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
void (*map_queues)(struct Scsi_Host *);
int (*mq_poll)(struct Scsi_Host *, unsigned int);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *);
bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int host_tagset;
unsigned int max_host_blocked;
const struct attribute_group **shost_groups;
const struct attribute_group **sdev_groups;
u64 vendor_id;
int rpm_autosuspend_delay;
};
6.5
: ✅struct scsi_host_template {
unsigned int cmd_size;
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
void (*map_queues)(struct Scsi_Host *);
int (*mq_poll)(struct Scsi_Host *, unsigned int);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *);
bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int host_tagset;
unsigned int queuecommand_may_block;
unsigned int max_host_blocked;
const struct attribute_group **shost_groups;
const struct attribute_group **sdev_groups;
u64 vendor_id;
int rpm_autosuspend_delay;
};
6.8
: ✅struct scsi_host_template {
unsigned int cmd_size;
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
void (*map_queues)(struct Scsi_Host *);
int (*mq_poll)(struct Scsi_Host *, unsigned int);
bool (*dma_need_drain)(struct request *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *);
bool (*eh_should_retry_cmd)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int host_tagset;
unsigned int queuecommand_may_block;
unsigned int max_host_blocked;
const struct attribute_group **shost_groups;
const struct attribute_group **sdev_groups;
u64 vendor_id;
int rpm_autosuspend_delay;
};
arm64
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
armhf
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
ppc64el
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
riscv64
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
aws
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
azure
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
gcp
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
lowlatency
: ✅struct scsi_host_template {
struct module *module;
const char *name;
const char * (*info)(struct Scsi_Host *);
int (*ioctl)(struct scsi_device *, unsigned int, void *);
int (*compat_ioctl)(struct scsi_device *, unsigned int, void *);
int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *);
void (*commit_rqs)(struct Scsi_Host *, u16);
int (*eh_abort_handler)(struct scsi_cmnd *);
int (*eh_device_reset_handler)(struct scsi_cmnd *);
int (*eh_target_reset_handler)(struct scsi_cmnd *);
int (*eh_bus_reset_handler)(struct scsi_cmnd *);
int (*eh_host_reset_handler)(struct scsi_cmnd *);
int (*slave_alloc)(struct scsi_device *);
int (*slave_configure)(struct scsi_device *);
void (*slave_destroy)(struct scsi_device *);
int (*target_alloc)(struct scsi_target *);
void (*target_destroy)(struct scsi_target *);
int (*scan_finished)(struct Scsi_Host *, long unsigned int);
void (*scan_start)(struct Scsi_Host *);
int (*change_queue_depth)(struct scsi_device *, int);
int (*map_queues)(struct Scsi_Host *);
int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *);
void (*unlock_native_capacity)(struct scsi_device *);
int (*show_info)(struct seq_file *, struct Scsi_Host *);
int (*write_info)(struct Scsi_Host *, char *, int);
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *);
int (*host_reset)(struct Scsi_Host *, int);
const char *proc_name;
struct proc_dir_entry *proc_dir;
int can_queue;
int this_id;
short unsigned int sg_tablesize;
short unsigned int sg_prot_tablesize;
unsigned int max_sectors;
unsigned int max_segment_size;
long unsigned int dma_boundary;
long unsigned int virt_boundary_mask;
short int cmd_per_lun;
unsigned char present;
int tag_alloc_policy;
unsigned int track_queue_depth;
unsigned int supported_mode;
unsigned int unchecked_isa_dma;
unsigned int emulated;
unsigned int skip_settle_delay;
unsigned int no_write_same;
unsigned int force_blk_mq;
unsigned int max_host_blocked;
struct device_attribute **shost_attrs;
struct device_attribute **sdev_attrs;
const struct attribute_group **sdev_groups;
u64 vendor_id;
unsigned int cmd_size;
struct scsi_host_cmd_pool *cmd_pool;
};
Regular
4.4
and 4.8
⚠️bool disable_blk_mq
4.8
and 4.10
⚠️int (*map_queues)(struct Scsi_Host *)
4.10
and 4.13
⚠️unsigned int no_async_abort
struct scsi_host_cmd_pool *cmd_pool
➡️ struct scsi_host_cmd_pool *cmd_pool
4.13
and 4.15
✅
4.15
and 4.18
⚠️unsigned int force_blk_mq
const struct attribute_group **sdev_groups
int (*detect)(struct scsi_host_template *)
int (*release)(struct Scsi_Host *)
struct list_head legacy_hosts
4.18
and 5.0
⚠️unsigned int max_segment_size
unsigned int use_clustering
5.0
and 5.3
⚠️long unsigned int virt_boundary_mask
int (*ioctl)(struct scsi_device *, int, void *)
➡️ int (*ioctl)(struct scsi_device *, unsigned int, void *)
int (*compat_ioctl)(struct scsi_device *, int, void *)
➡️ int (*compat_ioctl)(struct scsi_device *, unsigned int, void *)
5.3
and 5.4
⚠️void (*commit_rqs)(struct Scsi_Host *, u16)
5.4
and 5.8
⚠️int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *)
int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *)
bool (*dma_need_drain)(struct request *)
int rpm_autosuspend_delay
unsigned int force_blk_mq
5.8
and 5.11
⚠️unsigned int host_tagset
5.11
and 5.13
⚠️int (*mq_poll)(struct Scsi_Host *, unsigned int)
bool (*eh_should_retry_cmd)(struct scsi_cmnd *)
unsigned int unchecked_isa_dma
5.13
and 5.15
✅
5.15
and 5.19
⚠️const struct attribute_group **shost_groups
struct device_attribute **shost_attrs
struct device_attribute **sdev_attrs
struct scsi_host_cmd_pool *cmd_pool
5.19
and 6.2
⚠️struct proc_dir_entry *proc_dir
unsigned char present
int (*map_queues)(struct Scsi_Host *)
➡️ void (*map_queues)(struct Scsi_Host *)
enum blk_eh_timer_return (*eh_timed_out)(struct scsi_cmnd *)
➡️ enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *)
6.2
and 6.5
⚠️unsigned int queuecommand_may_block
6.5
and 6.8
✅
amd64
and arm64
✅
amd64
and armhf
⚠️int (*compat_ioctl)(struct scsi_device *, unsigned int, void *)
amd64
and ppc64el
✅
amd64
and riscv64
⚠️int (*compat_ioctl)(struct scsi_device *, unsigned int, void *)
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅