⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gdth.h

📁 GNU Mach 微内核源代码, 基于美国卡内基美隆大学的 Mach 研究项目
💻 H
📖 第 1 页 / 共 3 页
字号:
#ifndef _GDTH_H#define _GDTH_H/* * Header file for the GDT ISA/EISA/PCI Disk Array Controller driver for Linux *  * gdth.h Copyright (C) 1995-98 ICP vortex Computersysteme GmbH, Achim Leubner * See gdth.c for further informations and  * below for supported controller types * * <achim@vortex.de> * * $Id: gdth.h,v 1.1 1999/04/26 05:54:37 tb Exp $ */#include <linux/version.h>#include <linux/types.h>#ifndef NULL#define NULL 0#endif#ifndef TRUE#define TRUE 1#endif#ifndef FALSE#define FALSE 0#endif/* defines, macros *//* driver version */#define GDTH_VERSION_STR        "1.07"#define GDTH_VERSION            1#define GDTH_SUBVERSION         7/* protocol version */#define PROTOCOL_VERSION        1/* controller classes */#define GDT_ISA         0x01                    /* ISA controller */#define GDT_EISA        0x02                    /* EISA controller */#define GDT_PCI         0x03                    /* PCI controller */#define GDT_PCINEW      0x04                    /* new PCI controller */#define GDT_PCIMPR      0x05                    /* PCI MPR controller *//* GDT_EISA, controller subtypes EISA */#define GDT3_ID         0x0130941c              /* GDT3000/3020 */#define GDT3A_ID        0x0230941c              /* GDT3000A/3020A/3050A */#define GDT3B_ID        0x0330941c              /* GDT3000B/3010A *//* GDT_ISA */#define GDT2_ID         0x0120941c              /* GDT2000/2020 *//* vendor ID, device IDs (PCI) *//* these defines should already exist in <linux/pci.h> */#ifndef PCI_VENDOR_ID_VORTEX#define PCI_VENDOR_ID_VORTEX            0x1119  /* PCI controller vendor ID */#endif#ifndef PCI_DEVICE_ID_VORTEX_GDT60x0/* GDT_PCI */#define PCI_DEVICE_ID_VORTEX_GDT60x0    0       /* GDT6000/6020/6050 */#define PCI_DEVICE_ID_VORTEX_GDT6000B   1       /* GDT6000B/6010 *//* GDT_PCINEW */#define PCI_DEVICE_ID_VORTEX_GDT6x10    2       /* GDT6110/6510 */#define PCI_DEVICE_ID_VORTEX_GDT6x20    3       /* GDT6120/6520 */#define PCI_DEVICE_ID_VORTEX_GDT6530    4       /* GDT6530 */#define PCI_DEVICE_ID_VORTEX_GDT6550    5       /* GDT6550 *//* GDT_PCINEW, wide/ultra SCSI controllers */#define PCI_DEVICE_ID_VORTEX_GDT6x17    6       /* GDT6117/6517 */#define PCI_DEVICE_ID_VORTEX_GDT6x27    7       /* GDT6127/6527 */#define PCI_DEVICE_ID_VORTEX_GDT6537    8       /* GDT6537 */#define PCI_DEVICE_ID_VORTEX_GDT6557    9       /* GDT6557/6557-ECC *//* GDT_PCINEW, wide SCSI controllers */#define PCI_DEVICE_ID_VORTEX_GDT6x15    10      /* GDT6115/6515 */#define PCI_DEVICE_ID_VORTEX_GDT6x25    11      /* GDT6125/6525 */#define PCI_DEVICE_ID_VORTEX_GDT6535    12      /* GDT6535 */#define PCI_DEVICE_ID_VORTEX_GDT6555    13      /* GDT6555/6555-ECC */#endif#ifndef PCI_DEVICE_ID_VORTEX_GDT6x17RP/* GDT_MPR, RP series, wide/ultra SCSI */#define PCI_DEVICE_ID_VORTEX_GDT6x17RP  0x100   /* GDT6117RP/GDT6517RP */#define PCI_DEVICE_ID_VORTEX_GDT6x27RP  0x101   /* GDT6127RP/GDT6527RP */#define PCI_DEVICE_ID_VORTEX_GDT6537RP  0x102   /* GDT6537RP */#define PCI_DEVICE_ID_VORTEX_GDT6557RP  0x103   /* GDT6557RP *//* GDT_MPR, RP series, narrow/ultra SCSI */#define PCI_DEVICE_ID_VORTEX_GDT6x11RP  0x104   /* GDT6111RP/GDT6511RP */#define PCI_DEVICE_ID_VORTEX_GDT6x21RP  0x105   /* GDT6121RP/GDT6521RP *//* GDT_MPR, RP1 series, wide/ultra SCSI */#define PCI_DEVICE_ID_VORTEX_GDT6x17RP1 0x110   /* GDT6117RP1/GDT6517RP1 */#define PCI_DEVICE_ID_VORTEX_GDT6x27RP1 0x111   /* GDT6127RP1/GDT6527RP1 */#define PCI_DEVICE_ID_VORTEX_GDT6537RP1 0x112   /* GDT6537RP1 */#define PCI_DEVICE_ID_VORTEX_GDT6557RP1 0x113   /* GDT6557RP1 *//* GDT_MPR, RP1 series, narrow/ultra SCSI */#define PCI_DEVICE_ID_VORTEX_GDT6x11RP1 0x114   /* GDT6111RP1/GDT6511RP1 */#define PCI_DEVICE_ID_VORTEX_GDT6x21RP1 0x115   /* GDT6121RP1/GDT6521RP1 *//* GDT_MPR, RP2 series, wide/ultra SCSI */#define PCI_DEVICE_ID_VORTEX_GDT6x17RP2 0x120   /* GDT6117RP2/GDT6517RP2 */#define PCI_DEVICE_ID_VORTEX_GDT6x27RP2 0x121   /* GDT6127RP2/GDT6527RP2 */#define PCI_DEVICE_ID_VORTEX_GDT6537RP2 0x122   /* GDT6537RP2 */#define PCI_DEVICE_ID_VORTEX_GDT6557RP2 0x123   /* GDT6557RP2 *//* GDT_MPR, RP2 series, narrow/ultra SCSI */#define PCI_DEVICE_ID_VORTEX_GDT6x11RP2 0x124   /* GDT6111RP2/GDT6511RP2 */#define PCI_DEVICE_ID_VORTEX_GDT6x21RP2 0x125   /* GDT6121RP2/GDT6521RP2 */#endif#ifndef PCI_DEVICE_ID_VORTEX_GDT6519RD/* GDT_MPR, Fibre Channel */#define PCI_DEVICE_ID_VORTEX_GDT6519RD  0x210   /* GDT6519RD */#define PCI_DEVICE_ID_VORTEX_GDT6529RD  0x211   /* GDT6529RD */#endif#ifndef PCI_DEVICE_ID_VORTEX_GDTMAXRP/* GDT_MPR, last device ID */#define PCI_DEVICE_ID_VORTEX_GDTMAXRP  	0x2ff   #endif/* limits */#define GDTH_SCRATCH    4096                    /* 4KB scratch buffer */#define GDTH_MAXCMDS    124#define GDTH_MAXC_P_L   16                      /* max. cmds per lun */#define MAXOFFSETS      128#define MAXHA           8#define MAXID           16#define MAXLUN          8#define MAXBUS          6#define MAX_HDRIVES     35                      /* max. host drive count */#define MAX_EVENTS      100                     /* event buffer count */#define MAXCYLS         1024#define HEADS           64#define SECS            32                      /* mapping 64*32 */#define MEDHEADS        127#define MEDSECS         63                      /* mapping 127*63 */#define BIGHEADS        255#define BIGSECS         63                      /* mapping 255*63 *//* special command ptr. */#define UNUSED_CMND     ((Scsi_Cmnd *)-1)#define INTERNAL_CMND   ((Scsi_Cmnd *)-2)#define SCREEN_CMND     ((Scsi_Cmnd *)-3)#define SPECIAL_SCP(p)  (p==UNUSED_CMND || p==INTERNAL_CMND || p==SCREEN_CMND)/* device types */#define EMPTY_DTYP      0#define CACHE_DTYP      1#define RAW_DTYP        2#define SIOP_DTYP       3                       /* the SCSI processor *//* controller services */#define SCSIRAWSERVICE  3#define CACHESERVICE    9#define SCREENSERVICE   11/* screenservice defines */#define MSG_INV_HANDLE  -1                      /* special message handle */#define MSGLEN          16                      /* size of message text */#define MSG_SIZE        34                      /* size of message structure */#define MSG_REQUEST     0                       /* async. event: message *//* cacheservice defines */#define SECTOR_SIZE     0x200                   /* always 512 bytes per sector *//* DPMEM constants */#define DPMEM_MAGIC	0xC0FFEE11#define IC_HEADER_BYTES 48#define IC_QUEUE_BYTES  4#define DPMEM_COMMAND_OFFSET    IC_HEADER_BYTES+IC_QUEUE_BYTES*MAXOFFSETS/* service commands */#define GDT_INIT        0                       /* service initialization */#define GDT_READ        1                       /* read command */#define GDT_WRITE       2                       /* write command */#define GDT_INFO        3                       /* information about devices */#define GDT_FLUSH       4                       /* flush dirty cache buffers */#define GDT_IOCTL       5                       /* ioctl command */#define GDT_DEVTYPE     9                       /* additional information */#define GDT_MOUNT       10                      /* mount cache device */#define GDT_UNMOUNT     11                      /* unmount cache device */#define GDT_SET_FEAT    12                      /* set feat. (scatter/gather) */#define GDT_GET_FEAT    13                      /* get features */#define GDT_RESERVE     14                      /* reserve dev. to raw service */#define GDT_WRITE_THR   16                      /* write through */#define GDT_EXT_INFO    18                      /* extended info */#define GDT_RESET       19                      /* controller reset *//* IOCTL command defines */#define SCSI_CHAN_CNT   5                       /* subfunctions */#define GET_IOCHAN_DESC	0x5e#define L_CTRL_PATTERN  0x20000000L#define CACHE_INFO      4#define CACHE_CONFIG    5#define BOARD_INFO	0x28#define IO_CHANNEL      0x00020000L             /* channels */#define INVALID_CHANNEL 0x0000ffffL     /* IOCTLs */#define GDTIOCTL_MASK       ('J'<<8)#define GDTIOCTL_GENERAL    (GDTIOCTL_MASK | 0) /* general IOCTL */#define GDTIOCTL_DRVERS     (GDTIOCTL_MASK | 1) /* get driver version */#define GDTIOCTL_CTRTYPE    (GDTIOCTL_MASK | 2) /* get controller type */#define GDTIOCTL_CTRCNT     (GDTIOCTL_MASK | 5) /* get controller count */#define GDTIOCTL_LOCKDRV    (GDTIOCTL_MASK | 6) /* lock host drive */#define GDTIOCTL_LOCKCHN    (GDTIOCTL_MASK | 7) /* lock channel */#define GDTIOCTL_EVENT      (GDTIOCTL_MASK | 8) /* read controller events *//* service errors */#define S_OK            1                       /* no error */#define S_BSY           7                       /* controller busy */#define S_RAW_SCSI      12                      /* raw serv.: target error */#define S_RAW_ILL       0xff                    /* raw serv.: illegal *//* timeout values */#define INIT_RETRIES    10000                   /* 10000 * 1ms = 10s */#define INIT_TIMEOUT    100000                  /* 1000 * 1ms = 1s */#define POLL_TIMEOUT    10000                   /* 10000 * 1ms = 10s *//* priorities */#define DEFAULT_PRI     0x20#define IOCTL_PRI       0x10/* data directions */#define DATA_IN         0x01000000L             /* data from target */#define DATA_OUT        0x00000000L             /* data to target *//* BMIC registers (EISA controllers) */#define ID0REG          0x0c80                  /* board ID */#define EINTENABREG     0x0c89                  /* interrupt enable */#define SEMA0REG        0x0c8a                  /* command semaphore */#define SEMA1REG        0x0c8b                  /* status semaphore */#define LDOORREG        0x0c8d                  /* local doorbell */#define EDENABREG       0x0c8e                  /* EISA system doorbell enable */#define EDOORREG        0x0c8f                  /* EISA system doorbell */#define MAILBOXREG      0x0c90                  /* mailbox reg. (16 bytes) */#define EISAREG         0x0cc0                  /* EISA configuration *//* other defines */#define LINUX_OS        8                       /* used for cache optim. */#define SCATTER_GATHER  1                       /* s/g feature */#define GDTH_MAXSG      32                      /* max. s/g elements */#define SECS32          0x1f                    /* round capacity */#define BIOS_ID_OFFS    0x10                    /* offset contr. ID in ISABIOS */#define LOCALBOARD      0                       /* board node always 0 */#define ASYNCINDEX      0                       /* cmd index async. event */#define SPEZINDEX       1                       /* cmd index unknown service */#define GDT_WR_THROUGH  0x100                   /* WRITE_THROUGH supported *//* typedefs */#pragma pack(1)typedef struct {    char        buffer[GDTH_SCRATCH];           /* scratch buffer */} gdth_scratch_str;/* screenservice message */typedef struct {                                   ulong       msg_handle;                     /* message handle */    ulong       msg_len;                        /* size of message */    ulong       msg_alen;                       /* answer length */    unchar      msg_answer;                     /* answer flag */    unchar      msg_ext;                        /* more messages */    unchar      msg_reserved[2];    char        msg_text[MSGLEN+2];             /* the message text */} gdth_msg_str;/* get channel count IOCTL */typedef struct {    ulong       channel_no;                     /* number of channel */    ulong       drive_cnt;                      /* number of drives */    unchar      siop_id;                        /* SCSI processor ID */    unchar      siop_state;                     /* SCSI processor state */ } gdth_getch_str;/* get raw channel count IOCTL (NEW!) */typedef struct {    ulong	version;			/* version of information (-1UL: newest) */    unchar	list_entries;			/* list entry count */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -