blob: 02fe82eaf1db867a6c6854339fd3257085234777 [file] [log] [blame]
/***********************************************************************
* FILE NAME : DC390.H *
* BY : C.L. Huang *
* Description: Device Driver for Tekram DC-390(T) PCI SCSI *
* Bus Master Host Adapter *
***********************************************************************/
/* $Id: dc390.h,v 2.43.2.22 2000/12/20 00:39:36 garloff Exp $ */
/*
* DC390/AMD 53C974 driver, header file
*/
#ifndef DC390_H
#define DC390_H
#include <linux/version.h>
#ifndef KERNEL_VERSION
# define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#endif
#define DC390_BANNER "Tekram DC390/AM53C974"
#define DC390_VERSION "2.0f 2000-12-20"
/* We don't have eh_abort_handler, eh_device_reset_handler,
* eh_bus_reset_handler, eh_host_reset_handler yet!
* So long: Use old exception handling :-( */
#define OLD_EH
#if LINUX_VERSION_CODE < KERNEL_VERSION (2,1,70) || defined (OLD_EH)
# define NEW_EH
#else
# define NEW_EH use_new_eh_code: 1,
# define USE_NEW_EH
#endif
#if defined(HOSTS_C) || defined(MODULE) || LINUX_VERSION_CODE > KERNEL_VERSION(2,3,99)
extern int DC390_detect(Scsi_Host_Template *psht);
extern int DC390_queue_command(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *));
extern int DC390_abort(Scsi_Cmnd *cmd);
extern int DC390_reset(Scsi_Cmnd *cmd, unsigned int resetFlags);
extern int DC390_bios_param(Disk *disk, kdev_t devno, int geom[]);
#ifdef MODULE
static int DC390_release(struct Scsi_Host *);
#else
# define DC390_release NULL
#endif
extern int DC390_proc_info(char *buffer, char **start, off_t offset, int length, int hostno, int inout);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,30)
#define DC390_T { \
proc_name: "tmscsim", \
proc_info: DC390_proc_info, \
name: DC390_BANNER " V" DC390_VERSION, \
detect: DC390_detect, \
release: DC390_release, \
queuecommand: DC390_queue_command, \
abort: DC390_abort, \
reset: DC390_reset, \
bios_param: DC390_bios_param, \
can_queue: 42, \
this_id: 7, \
sg_tablesize: SG_ALL, \
cmd_per_lun: 16, \
unchecked_isa_dma: 0, \
use_clustering: DISABLE_CLUSTERING \
}
#else
extern struct proc_dir_entry DC390_proc_scsi_tmscsim;
#define DC390_T { \
proc_dir: &DC390_proc_scsi_tmscsim, \
proc_info: DC390_proc_info, \
name: DC390_BANNER " V" DC390_VERSION, \
detect: DC390_detect, \
release: DC390_release, \
queuecommand: DC390_queue_command, \
abort: DC390_abort, \
reset: DC390_reset, \
bios_param: DC390_bios_param, \
can_queue: 42, \
this_id: 7, \
sg_tablesize: SG_ALL, \
cmd_per_lun: 16, \
NEW_EH \
unchecked_isa_dma: 0, \
use_clustering: DISABLE_CLUSTERING \
}
#endif
#endif /* defined(HOSTS_C) || defined(MODULE) */
#endif /* DC390_H */