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 + -
显示快捷键?