1/****************************************************************************** 2** Device driver for the PCI-SCSI NCR538XX controller family. 3** 4** Copyright (C) 1994 Wolfgang Stanglmeier 5** 6** This program is free software; you can redistribute it and/or modify 7** it under the terms of the GNU General Public License as published by 8** the Free Software Foundation; either version 2 of the License, or 9** (at your option) any later version. 10** 11** This program is distributed in the hope that it will be useful, 12** but WITHOUT ANY WARRANTY; without even the implied warranty of 13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14** GNU General Public License for more details. 15** 16** You should have received a copy of the GNU General Public License 17** along with this program; if not, write to the Free Software 18** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19** 20**----------------------------------------------------------------------------- 21** 22** This driver has been ported to Linux from the FreeBSD NCR53C8XX driver 23** and is currently maintained by 24** 25** Gerard Roudier <groudier@free.fr> 26** 27** Being given that this driver originates from the FreeBSD version, and 28** in order to keep synergy on both, any suggested enhancements and corrections 29** received on Linux are automatically a potential candidate for the FreeBSD 30** version. 31** 32** The original driver has been written for 386bsd and FreeBSD by 33** Wolfgang Stanglmeier <wolf@cologne.de> 34** Stefan Esser <se@mi.Uni-Koeln.de> 35** 36** And has been ported to NetBSD by 37** Charles M. Hannum <mycroft@gnu.ai.mit.edu> 38** 39******************************************************************************* 40*/ 41 42#ifndef NCR53C8XX_H 43#define NCR53C8XX_H 44 45#include "sym53c8xx_defs.h" 46 47/* 48** Define Scsi_Host_Template parameters 49** 50** Used by hosts.c and ncr53c8xx.c with module configuration. 51*/ 52 53#if (LINUX_VERSION_CODE >= 0x020400) || defined(HOSTS_C) || defined(MODULE) 54 55#include <scsi/scsicam.h> 56 57int ncr53c8xx_abort(Scsi_Cmnd *); 58int ncr53c8xx_detect(Scsi_Host_Template *tpnt); 59const char *ncr53c8xx_info(struct Scsi_Host *host); 60int ncr53c8xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); 61int ncr53c8xx_reset(Scsi_Cmnd *, unsigned int); 62 63#ifdef MODULE 64int ncr53c8xx_release(struct Scsi_Host *); 65#else 66#define ncr53c8xx_release NULL 67#endif 68 69 70#if LINUX_VERSION_CODE >= LinuxVersionCode(2,1,75) 71 72#define NCR53C8XX { name: "", \ 73 detect: ncr53c8xx_detect, \ 74 release: ncr53c8xx_release, \ 75 info: ncr53c8xx_info, \ 76 queuecommand: ncr53c8xx_queue_command,\ 77 abort: ncr53c8xx_abort, \ 78 reset: ncr53c8xx_reset, \ 79 bios_param: scsicam_bios_param, \ 80 can_queue: SCSI_NCR_CAN_QUEUE, \ 81 this_id: 7, \ 82 sg_tablesize: SCSI_NCR_SG_TABLESIZE, \ 83 cmd_per_lun: SCSI_NCR_CMD_PER_LUN, \ 84 use_clustering: DISABLE_CLUSTERING} 85 86#else 87 88#define NCR53C8XX { NULL, NULL, NULL, NULL, \ 89 NULL, ncr53c8xx_detect, \ 90 ncr53c8xx_release, ncr53c8xx_info, NULL, \ 91 ncr53c8xx_queue_command,ncr53c8xx_abort, \ 92 ncr53c8xx_reset, NULL, scsicam_bios_param, \ 93 SCSI_NCR_CAN_QUEUE, 7, \ 94 SCSI_NCR_SG_TABLESIZE, SCSI_NCR_CMD_PER_LUN, \ 95 0, 0, DISABLE_CLUSTERING} 96 97#endif /* LINUX_VERSION_CODE */ 98 99#endif /* defined(HOSTS_C) || defined(MODULE) */ 100 101#endif /* NCR53C8XX_H */ 102