linux/drivers/scsi/dpt/dpti_ioctl.h
<<
>>
Prefs
   1/***************************************************************************
   2                          dpti_ioctl.h  -  description
   3                             -------------------
   4    begin                : Thu Sep 7 2000
   5    copyright            : (C) 2001 by Adaptec
   6
   7    See Documentation/scsi/dpti.txt for history, notes, license info
   8    and credits
   9 ***************************************************************************/
  10
  11/***************************************************************************
  12 *                                                                         *
  13 *   This program is free software; you can redistribute it and/or modify  *
  14 *   it under the terms of the GNU General Public License as published by  *
  15 *   the Free Software Foundation; either version 2 of the License, or     *
  16 *   (at your option) any later version.                                   *
  17 *                                                                         *
  18 ***************************************************************************/
  19
  20/***************************************************************************
  21 * This file is generated from  osd_unix.h                                 *
  22 * *************************************************************************/
  23
  24#ifndef _dpti_ioctl_h
  25#define _dpti_ioctl_h
  26
  27// IOCTL interface commands
  28
  29#ifndef _IOWR
  30# define _IOWR(x,y,z)   (((x)<<8)|y)
  31#endif
  32#ifndef _IOW
  33# define _IOW(x,y,z)    (((x)<<8)|y)
  34#endif
  35#ifndef _IOR
  36# define _IOR(x,y,z)    (((x)<<8)|y)
  37#endif
  38#ifndef _IO
  39# define _IO(x,y)       (((x)<<8)|y)
  40#endif
  41/* EATA PassThrough Command     */
  42#define EATAUSRCMD      _IOWR('D',65,EATA_CP)
  43/* Set Debug Level If Enabled   */
  44#define DPT_DEBUG       _IOW('D',66,int)
  45/* Get Signature Structure      */
  46#define DPT_SIGNATURE   _IOR('D',67,dpt_sig_S)
  47#if defined __bsdi__
  48#define DPT_SIGNATURE_PACKED   _IOR('D',67,dpt_sig_S_Packed)
  49#endif
  50/* Get Number Of DPT Adapters   */
  51#define DPT_NUMCTRLS    _IOR('D',68,int)
  52/* Get Adapter Info Structure   */
  53#define DPT_CTRLINFO    _IOR('D',69,CtrlInfo)
  54/* Get Statistics If Enabled    */
  55#define DPT_STATINFO    _IO('D',70)
  56/* Clear Stats If Enabled       */
  57#define DPT_CLRSTAT     _IO('D',71)
  58/* Get System Info Structure    */
  59#define DPT_SYSINFO     _IOR('D',72,sysInfo_S)
  60/* Set Timeout Value            */
  61#define DPT_TIMEOUT     _IO('D',73)
  62/* Get config Data              */
  63#define DPT_CONFIG      _IO('D',74)
  64/* Get Blink LED Code           */
  65#define DPT_BLINKLED    _IOR('D',75,int)
  66/* Get Statistical information (if available) */
  67#define DPT_STATS_INFO        _IOR('D',80,STATS_DATA)
  68/* Clear the statistical information          */
  69#define DPT_STATS_CLEAR       _IO('D',81)
  70/* Get Performance metrics */
  71#define DPT_PERF_INFO        _IOR('D',82,dpt_perf_t)
  72/* Send an I2O command */
  73#define I2OUSRCMD       _IO('D',76)
  74/* Inform driver to re-acquire LCT information */
  75#define I2ORESCANCMD    _IO('D',77)
  76/* Inform driver to reset adapter */
  77#define I2ORESETCMD     _IO('D',78)
  78/* See if the target is mounted */
  79#define DPT_TARGET_BUSY _IOR('D',79, TARGET_BUSY_T)
  80
  81
  82  /* Structure Returned From Get Controller Info                             */
  83
  84typedef struct {
  85        uCHAR    state;            /* Operational state               */
  86        uCHAR    id;               /* Host adapter SCSI id            */
  87        int      vect;             /* Interrupt vector number         */
  88        int      base;             /* Base I/O address                */
  89        int      njobs;            /* # of jobs sent to HA            */
  90        int      qdepth;           /* Controller queue depth.         */
  91        int      wakebase;         /* mpx wakeup base index.          */
  92        uINT     SGsize;           /* Scatter/Gather list size.       */
  93        unsigned heads;            /* heads for drives on cntlr.      */
  94        unsigned sectors;          /* sectors for drives on cntlr.    */
  95        uCHAR    do_drive32;       /* Flag for Above 16 MB Ability    */
  96        uCHAR    BusQuiet;         /* SCSI Bus Quiet Flag             */
  97        char     idPAL[4];         /* 4 Bytes Of The ID Pal           */
  98        uCHAR    primary;          /* 1 For Primary, 0 For Secondary  */
  99        uCHAR    eataVersion;      /* EATA Version                    */
 100        uINT     cpLength;         /* EATA Command Packet Length      */
 101        uINT     spLength;         /* EATA Status Packet Length       */
 102        uCHAR    drqNum;           /* DRQ Index (0,5,6,7)             */
 103        uCHAR    flag1;            /* EATA Flags 1 (Byte 9)           */
 104        uCHAR    flag2;            /* EATA Flags 2 (Byte 30)          */
 105} CtrlInfo;
 106
 107typedef struct {
 108        uSHORT length;          // Remaining length of this
 109        uSHORT drvrHBAnum;      // Relative HBA # used by the driver
 110        uINT baseAddr;          // Base I/O address
 111        uSHORT blinkState;      // Blink LED state (0=Not in blink LED)
 112        uCHAR pciBusNum;        // PCI Bus # (Optional)
 113        uCHAR pciDeviceNum;     // PCI Device # (Optional)
 114        uSHORT hbaFlags;        // Miscellaneous HBA flags
 115        uSHORT Interrupt;       // Interrupt set for this device.
 116#   if (defined(_DPT_ARC))
 117        uINT baseLength;
 118        ADAPTER_OBJECT *AdapterObject;
 119        LARGE_INTEGER DmaLogicalAddress;
 120        PVOID DmaVirtualAddress;
 121        LARGE_INTEGER ReplyLogicalAddress;
 122        PVOID ReplyVirtualAddress;
 123#   else
 124        uINT reserved1;         // Reserved for future expansion
 125        uINT reserved2;         // Reserved for future expansion
 126        uINT reserved3;         // Reserved for future expansion
 127#   endif
 128} drvrHBAinfo_S;
 129
 130typedef struct TARGET_BUSY
 131{
 132  uLONG channel;
 133  uLONG id;
 134  uLONG lun;
 135  uLONG isBusy;
 136} TARGET_BUSY_T;
 137
 138#endif
 139
 140