gdth.h

来自「linux 内核源代码」· C头文件 代码 · 共 1,023 行 · 第 1/4 页

H
1,023
字号
        unchar          event;                  /* release event */        unchar          unused3[3];        unchar          irqdel;                 /* acknowledge board int. */        unchar          unused4[3];    } PACKED io;} PACKED gdt6_dpram_str;/* PLX register structure (new PCI controllers) */typedef struct {    unchar              cfg_reg;        /* DPRAM cfg.(2:below 1MB,0:anywhere)*/    unchar              unused1[0x3f];    unchar volatile     sema0_reg;              /* command semaphore */    unchar volatile     sema1_reg;              /* status semaphore */    unchar              unused2[2];    ushort volatile     status;                 /* command status */    ushort              service;                /* service */    ulong32             info[2];                /* additional info */    unchar              unused3[0x10];    unchar              ldoor_reg;              /* PCI to local doorbell */    unchar              unused4[3];    unchar volatile     edoor_reg;              /* local to PCI doorbell */    unchar              unused5[3];    unchar              control0;               /* control0 register(unused) */    unchar              control1;               /* board interrupts enable */    unchar              unused6[0x16];} PACKED gdt6c_plx_regs;/* DPRAM new PCI controllers */typedef struct {    union {        gdt_dpr_if      ic;                     /* interface area */        unchar          if_area[0x4000-sizeof(gdt_pci_sram)];    } u;    gdt_pci_sram        gdt6sr;                 /* SRAM structure */} PACKED gdt6c_dpram_str;/* i960 register structure (PCI MPR controllers) */typedef struct {    unchar              unused1[16];    unchar volatile     sema0_reg;              /* command semaphore */    unchar              unused2;    unchar volatile     sema1_reg;              /* status semaphore */    unchar              unused3;    ushort volatile     status;                 /* command status */    ushort              service;                /* service */    ulong32             info[2];                /* additional info */    unchar              ldoor_reg;              /* PCI to local doorbell */    unchar              unused4[11];    unchar volatile     edoor_reg;              /* local to PCI doorbell */    unchar              unused5[7];    unchar              edoor_en_reg;           /* board interrupts enable */    unchar              unused6[27];    ulong32             unused7[939];             ulong32             severity;           char                evt_str[256];           /* event string */} PACKED gdt6m_i960_regs;/* DPRAM PCI MPR controllers */typedef struct {    gdt6m_i960_regs     i960r;                  /* 4KB i960 registers */    union {        gdt_dpr_if      ic;                     /* interface area */        unchar          if_area[0x3000-sizeof(gdt_pci_sram)];    } u;    gdt_pci_sram        gdt6sr;                 /* SRAM structure */} PACKED gdt6m_dpram_str;/* PCI resources */typedef struct {    struct pci_dev      *pdev;    ulong               dpmem;                  /* DPRAM address */    ulong               io;                     /* IO address */    ulong               io_mm;                  /* IO address mem. mapped */    unchar              irq;                    /* IRQ */} gdth_pci_str;/* controller information structure */typedef struct {    struct Scsi_Host    *shost;    struct list_head    list;    ushort      	hanum;    ushort              oem_id;                 /* OEM */    ushort              type;                   /* controller class */    ulong32             stype;                  /* subtype (PCI: device ID) */    ushort              fw_vers;                /* firmware version */    ushort              cache_feat;             /* feat. cache serv. (s/g,..)*/    ushort              raw_feat;               /* feat. raw service (s/g,..)*/    ushort              screen_feat;            /* feat. raw service (s/g,..)*/    ushort              bmic;                   /* BMIC address (EISA) */    void __iomem        *brd;                   /* DPRAM address */    ulong32             brd_phys;               /* slot number/BIOS address */    gdt6c_plx_regs      *plx;                   /* PLX regs (new PCI contr.) */    gdth_cmd_str        cmdext;    gdth_cmd_str        *pccb;                  /* address command structure */    ulong32             ccb_phys;               /* phys. address */#ifdef INT_COAL    gdth_coal_status    *coal_stat;             /* buffer for coalescing int.*/    ulong64             coal_stat_phys;         /* phys. address */#endif    char                *pscratch;              /* scratch (DMA) buffer */    ulong64             scratch_phys;           /* phys. address */    unchar              scratch_busy;           /* in use? */    unchar              dma64_support;          /* 64-bit DMA supported? */    gdth_msg_str        *pmsg;                  /* message buffer */    ulong64             msg_phys;               /* phys. address */    unchar              scan_mode;              /* current scan mode */    unchar              irq;                    /* IRQ */    unchar              drq;                    /* DRQ (ISA controllers) */    ushort              status;                 /* command status */    ushort              service;                /* service/firmware ver./.. */    ulong32             info;    ulong32             info2;                  /* additional info */    Scsi_Cmnd           *req_first;             /* top of request queue */    struct {        unchar          present;                /* Flag: host drive present? */        unchar          is_logdrv;              /* Flag: log. drive (master)? */        unchar          is_arraydrv;            /* Flag: array drive? */        unchar          is_master;              /* Flag: array drive master? */        unchar          is_parity;              /* Flag: parity drive? */        unchar          is_hotfix;              /* Flag: hotfix drive? */        unchar          master_no;              /* number of master drive */        unchar          lock;                   /* drive locked? (hot plug) */        unchar          heads;                  /* mapping */        unchar          secs;        ushort          devtype;                /* further information */        ulong64         size;                   /* capacity */        unchar          ldr_no;                 /* log. drive no. */        unchar          rw_attribs;             /* r/w attributes */        unchar          cluster_type;           /* cluster properties */        unchar          media_changed;          /* Flag:MOUNT/UNMOUNT occured */        ulong32         start_sec;              /* start sector */    } hdr[MAX_LDRIVES];                         /* host drives */    struct {        unchar          lock;                   /* channel locked? (hot plug) */        unchar          pdev_cnt;               /* physical device count */        unchar          local_no;               /* local channel number */        unchar          io_cnt[MAXID];          /* current IO count */        ulong32         address;                /* channel address */        ulong32         id_list[MAXID];         /* IDs of the phys. devices */    } raw[MAXBUS];                              /* SCSI channels */    struct {        Scsi_Cmnd       *cmnd;                  /* pending request */        ushort          service;                /* service */    } cmd_tab[GDTH_MAXCMDS];                    /* table of pend. requests */    struct gdth_cmndinfo {                      /* per-command private info */        int index;        int internal_command;                   /* don't call scsi_done */        dma_addr_t sense_paddr;                 /* sense dma-addr */        unchar priority;        int timeout;        volatile int wait_for_completion;        ushort status;        ulong32 info;        enum dma_data_direction dma_dir;        int phase;                              /* ???? */        int OpCode;    } cmndinfo[GDTH_MAXCMDS];                   /* index==0 is free */    unchar              bus_cnt;                /* SCSI bus count */    unchar              tid_cnt;                /* Target ID count */    unchar              bus_id[MAXBUS];         /* IOP IDs */    unchar              virt_bus;               /* number of virtual bus */    unchar              more_proc;              /* more /proc info supported */    ushort              cmd_cnt;                /* command count in DPRAM */    ushort              cmd_len;                /* length of actual command */    ushort              cmd_offs_dpmem;         /* actual offset in DPRAM */    ushort              ic_all_size;            /* sizeof DPRAM interf. area */    gdth_cpar_str       cpar;                   /* controller cache par. */    gdth_bfeat_str      bfeat;                  /* controller features */    gdth_binfo_str      binfo;                  /* controller info */    gdth_evt_data       dvr;                    /* event structure */    spinlock_t          smp_lock;    struct pci_dev      *pdev;    char                oem_name[8];#ifdef GDTH_DMA_STATISTICS    ulong               dma32_cnt, dma64_cnt;   /* statistics: DMA buffer */#endif    struct scsi_device         *sdev;} gdth_ha_str;static inline struct gdth_cmndinfo *gdth_cmnd_priv(struct scsi_cmnd* cmd){	return (struct gdth_cmndinfo *)cmd->host_scribble;}/* INQUIRY data format */typedef struct {    unchar      type_qual;    unchar      modif_rmb;    unchar      version;    unchar      resp_aenc;    unchar      add_length;    unchar      reserved1;    unchar      reserved2;    unchar      misc;    unchar      vendor[8];    unchar      product[16];    unchar      revision[4];} PACKED gdth_inq_data;/* READ_CAPACITY data format */typedef struct {    ulong32     last_block_no;    ulong32     block_length;} PACKED gdth_rdcap_data;/* READ_CAPACITY (16) data format */typedef struct {    ulong64     last_block_no;    ulong32     block_length;} PACKED gdth_rdcap16_data;/* REQUEST_SENSE data format */typedef struct {    unchar      errorcode;    unchar      segno;    unchar      key;    ulong32     info;    unchar      add_length;    ulong32     cmd_info;    unchar      adsc;    unchar      adsq;    unchar      fruc;    unchar      key_spec[3];} PACKED gdth_sense_data;/* MODE_SENSE data format */typedef struct {    struct {        unchar  data_length;        unchar  med_type;        unchar  dev_par;        unchar  bd_length;    } PACKED hd;    struct {        unchar  dens_code;        unchar  block_count[3];        unchar  reserved;        unchar  block_length[3];    } PACKED bd;} PACKED gdth_modep_data;/* stack frame */typedef struct {    ulong       b[10];                          /* 32/64 bit compiler ! */} PACKED gdth_stackframe;/* function prototyping */int gdth_proc_info(struct Scsi_Host *, char *,char **,off_t,int,int);#endif

⌨️ 快捷键说明

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