mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 16:41:58 +00:00
62ac5aedc5
This is the code to actually support 64 bit platforms. 64 bit DMA is enabled on both x86_32 PAE and 64 bit platforms. This code is based in part on the unofficial adaptec 64-bit dpt_i2o driver update that I got from Mark Salyzyn at Adaptec. Signed-off-by: Miquel van Smoorenburg <miquels@cistron.nl> Acked-by: Mark Salyzyn <Mark_Salyzyn@adaptec.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
140 lines
5.2 KiB
C
140 lines
5.2 KiB
C
/***************************************************************************
|
|
dpti_ioctl.h - description
|
|
-------------------
|
|
begin : Thu Sep 7 2000
|
|
copyright : (C) 2001 by Adaptec
|
|
|
|
See Documentation/scsi/dpti.txt for history, notes, license info
|
|
and credits
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* This file is generated from osd_unix.h *
|
|
* *************************************************************************/
|
|
|
|
#ifndef _dpti_ioctl_h
|
|
#define _dpti_ioctl_h
|
|
|
|
// IOCTL interface commands
|
|
|
|
#ifndef _IOWR
|
|
# define _IOWR(x,y,z) (((x)<<8)|y)
|
|
#endif
|
|
#ifndef _IOW
|
|
# define _IOW(x,y,z) (((x)<<8)|y)
|
|
#endif
|
|
#ifndef _IOR
|
|
# define _IOR(x,y,z) (((x)<<8)|y)
|
|
#endif
|
|
#ifndef _IO
|
|
# define _IO(x,y) (((x)<<8)|y)
|
|
#endif
|
|
/* EATA PassThrough Command */
|
|
#define EATAUSRCMD _IOWR('D',65,EATA_CP)
|
|
/* Set Debug Level If Enabled */
|
|
#define DPT_DEBUG _IOW('D',66,int)
|
|
/* Get Signature Structure */
|
|
#define DPT_SIGNATURE _IOR('D',67,dpt_sig_S)
|
|
#if defined __bsdi__
|
|
#define DPT_SIGNATURE_PACKED _IOR('D',67,dpt_sig_S_Packed)
|
|
#endif
|
|
/* Get Number Of DPT Adapters */
|
|
#define DPT_NUMCTRLS _IOR('D',68,int)
|
|
/* Get Adapter Info Structure */
|
|
#define DPT_CTRLINFO _IOR('D',69,CtrlInfo)
|
|
/* Get Statistics If Enabled */
|
|
#define DPT_STATINFO _IO('D',70)
|
|
/* Clear Stats If Enabled */
|
|
#define DPT_CLRSTAT _IO('D',71)
|
|
/* Get System Info Structure */
|
|
#define DPT_SYSINFO _IOR('D',72,sysInfo_S)
|
|
/* Set Timeout Value */
|
|
#define DPT_TIMEOUT _IO('D',73)
|
|
/* Get config Data */
|
|
#define DPT_CONFIG _IO('D',74)
|
|
/* Get Blink LED Code */
|
|
#define DPT_BLINKLED _IOR('D',75,int)
|
|
/* Get Statistical information (if available) */
|
|
#define DPT_STATS_INFO _IOR('D',80,STATS_DATA)
|
|
/* Clear the statistical information */
|
|
#define DPT_STATS_CLEAR _IO('D',81)
|
|
/* Get Performance metrics */
|
|
#define DPT_PERF_INFO _IOR('D',82,dpt_perf_t)
|
|
/* Send an I2O command */
|
|
#define I2OUSRCMD _IO('D',76)
|
|
/* Inform driver to re-acquire LCT information */
|
|
#define I2ORESCANCMD _IO('D',77)
|
|
/* Inform driver to reset adapter */
|
|
#define I2ORESETCMD _IO('D',78)
|
|
/* See if the target is mounted */
|
|
#define DPT_TARGET_BUSY _IOR('D',79, TARGET_BUSY_T)
|
|
|
|
|
|
/* Structure Returned From Get Controller Info */
|
|
|
|
typedef struct {
|
|
uCHAR state; /* Operational state */
|
|
uCHAR id; /* Host adapter SCSI id */
|
|
int vect; /* Interrupt vector number */
|
|
int base; /* Base I/O address */
|
|
int njobs; /* # of jobs sent to HA */
|
|
int qdepth; /* Controller queue depth. */
|
|
int wakebase; /* mpx wakeup base index. */
|
|
uINT SGsize; /* Scatter/Gather list size. */
|
|
unsigned heads; /* heads for drives on cntlr. */
|
|
unsigned sectors; /* sectors for drives on cntlr. */
|
|
uCHAR do_drive32; /* Flag for Above 16 MB Ability */
|
|
uCHAR BusQuiet; /* SCSI Bus Quiet Flag */
|
|
char idPAL[4]; /* 4 Bytes Of The ID Pal */
|
|
uCHAR primary; /* 1 For Primary, 0 For Secondary */
|
|
uCHAR eataVersion; /* EATA Version */
|
|
uINT cpLength; /* EATA Command Packet Length */
|
|
uINT spLength; /* EATA Status Packet Length */
|
|
uCHAR drqNum; /* DRQ Index (0,5,6,7) */
|
|
uCHAR flag1; /* EATA Flags 1 (Byte 9) */
|
|
uCHAR flag2; /* EATA Flags 2 (Byte 30) */
|
|
} CtrlInfo;
|
|
|
|
typedef struct {
|
|
uSHORT length; // Remaining length of this
|
|
uSHORT drvrHBAnum; // Relative HBA # used by the driver
|
|
uINT baseAddr; // Base I/O address
|
|
uSHORT blinkState; // Blink LED state (0=Not in blink LED)
|
|
uCHAR pciBusNum; // PCI Bus # (Optional)
|
|
uCHAR pciDeviceNum; // PCI Device # (Optional)
|
|
uSHORT hbaFlags; // Miscellaneous HBA flags
|
|
uSHORT Interrupt; // Interrupt set for this device.
|
|
# if (defined(_DPT_ARC))
|
|
uINT baseLength;
|
|
ADAPTER_OBJECT *AdapterObject;
|
|
LARGE_INTEGER DmaLogicalAddress;
|
|
PVOID DmaVirtualAddress;
|
|
LARGE_INTEGER ReplyLogicalAddress;
|
|
PVOID ReplyVirtualAddress;
|
|
# else
|
|
uINT reserved1; // Reserved for future expansion
|
|
uINT reserved2; // Reserved for future expansion
|
|
uINT reserved3; // Reserved for future expansion
|
|
# endif
|
|
} drvrHBAinfo_S;
|
|
|
|
typedef struct TARGET_BUSY
|
|
{
|
|
uLONG channel;
|
|
uLONG id;
|
|
uLONG lun;
|
|
uLONG isBusy;
|
|
} TARGET_BUSY_T;
|
|
|
|
#endif
|
|
|