blob: 4cb3930cd3a54232f3d2369cfc7aac506761b4db [file] [log] [blame]
#ifndef CPQFCTS_H
#define CPQFCTS_H
#include "cpqfcTSstructs.h"
// These functions are required by the Linux SCSI layers
extern int cpqfcTS_detect(Scsi_Host_Template *);
extern int cpqfcTS_release(struct Scsi_Host *);
extern const char * cpqfcTS_info(struct Scsi_Host *);
extern int cpqfcTS_proc_info(char *, char **, off_t, int, int, int);
extern int cpqfcTS_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
extern int cpqfcTS_abort(Scsi_Cmnd *);
extern int cpqfcTS_reset(Scsi_Cmnd *, unsigned int);
extern int cpqfcTS_eh_abort(Scsi_Cmnd *Cmnd);
extern int cpqfcTS_eh_device_reset(Scsi_Cmnd *);
extern int cpqfcTS_biosparam(struct scsi_device *, struct block_device *,
sector_t, int[]);
extern int cpqfcTS_ioctl( Scsi_Device *ScsiDev, int Cmnd, void *arg);
// note: since Tachyon TS supports an extended scatter/gather
// linked list of infinite length (with linked Ext S/G pages,
// limited only by available physical memory) we use SG_ALL.
#define CPQFCTS { \
.detect = cpqfcTS_detect, \
.release = cpqfcTS_release, \
.info = cpqfcTS_info, \
.proc_info = cpqfcTS_proc_info, \
.ioctl = cpqfcTS_ioctl, \
.queuecommand = cpqfcTS_queuecommand, \
.eh_device_reset_handler = cpqfcTS_eh_device_reset, \
.eh_abort_handler = cpqfcTS_eh_abort, \
.bios_param = cpqfcTS_biosparam, \
.can_queue = CPQFCTS_REQ_QUEUE_LEN, \
.this_id = -1, \
.sg_tablesize = SG_ALL, \
.cmd_per_lun = CPQFCTS_CMD_PER_LUN, \
.present = 0, \
.unchecked_isa_dma = 0, \
.use_clustering = ENABLE_CLUSTERING, \
}
#endif /* CPQFCTS_H */