taglinefilesource code
sh308drivers/scsi/eata.cstatic struct Scsi_Host * sh[MAX_BOARDS + 1];
sh312drivers/scsi/eata.c#define HD(board) ((struct hostdata *) &sh[board]->hostdata)
sh469drivers/scsi/eata.csh[j] = scsi_register(tpnt, sizeof(struct hostdata));
sh471drivers/scsi/eata.cif (sh[j] == NULL) {
sh481drivers/scsi/eata.csh[j]->io_port = *port_base;
sh482drivers/scsi/eata.csh[j]->n_io_port = REGION_SIZE;
sh483drivers/scsi/eata.csh[j]->dma_channel = dma_channel;
sh484drivers/scsi/eata.csh[j]->irq = irq;
sh485drivers/scsi/eata.csh[j]->sg_tablesize = (ushort) ntohs(info.scatt_size);
sh486drivers/scsi/eata.csh[j]->this_id = (ushort) info.host_addr[3];
sh487drivers/scsi/eata.csh[j]->can_queue = (ushort) ntohs(info.queue_size);
sh488drivers/scsi/eata.csh[j]->cmd_per_lun = MAX_CMD_PER_LUN;
sh491drivers/scsi/eata.crequest_region(sh[j]->io_port, REGION_SIZE, driver_name);
sh500drivers/scsi/eata.csh[j]->unchecked_isa_dma = FALSE;
sh502drivers/scsi/eata.csh[j]->wish_block = TRUE;
sh503drivers/scsi/eata.csh[j]->unchecked_isa_dma = TRUE;
sh514drivers/scsi/eata.csh[j]->this_id, sh[j]->io_port, sh[j]->irq, sh[j]->dma_channel,
sh515drivers/scsi/eata.csh[j]->sg_tablesize, sh[j]->can_queue, sh[j]->cmd_per_lun);
sh518drivers/scsi/eata.cif (sh[j]->sg_tablesize > MAX_SGLIST || sh[j]->sg_tablesize < 2) {
sh520drivers/scsi/eata.csh[j]->sg_tablesize = MAX_SGLIST;
sh524drivers/scsi/eata.cif (sh[j]->can_queue > MAX_MAILBOXES || sh[j]->can_queue  < 2) {
sh526drivers/scsi/eata.csh[j]->can_queue = MAX_MAILBOXES;
sh562drivers/scsi/eata.cfor (k = 0; k < MAX_BOARDS + 1; k++) sh[k] = NULL;
sh615drivers/scsi/eata.cfor (k = 0; k < sh[j]->can_queue; k++, i++) {
sh617drivers/scsi/eata.cif (i >= sh[j]->can_queue) i = 0;
sh625drivers/scsi/eata.cif (k == sh[j]->can_queue) {
sh689drivers/scsi/eata.cif (do_dma(sh[j]->io_port, (unsigned int) cpp, SEND_CP_DMA)) {
sh721drivers/scsi/eata.cif (i >= sh[j]->can_queue)
sh724drivers/scsi/eata.cif (wait_on_busy(sh[j]->io_port)) {
sh782drivers/scsi/eata.cif (wait_on_busy(sh[j]->io_port)) {
sh792drivers/scsi/eata.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh822drivers/scsi/eata.cif (do_dma(sh[j]->io_port, 0, RESET_PIO)) {
sh841drivers/scsi/eata.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh893drivers/scsi/eata.cfor (j = 0; sh[j] != NULL; j++) {
sh895drivers/scsi/eata.cif (sh[j]->irq != irq) continue;
sh900drivers/scsi/eata.cwhile (inb(sh[j]->io_port + REG_AUX_STATUS) & IRQ_ASSERTED) {
sh908drivers/scsi/eata.cinb(sh[j]->io_port + REG_STATUS);
sh911drivers/scsi/eata.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh1073drivers/scsi/eata.cfor (j = 0; sh[j] != NULL; j++)
sh1075drivers/scsi/eata.ccalls[(sh[j]->irq)], HD(j)->iocount, HD(j)->multicount);
sh121drivers/scsi/eata_dma.cint eata_release(struct Scsi_Host *sh)
sh123drivers/scsi/eata_dma.cif (sh->irq && reg_IRQ[sh->irq] == 1) free_irq(sh->irq);
sh124drivers/scsi/eata_dma.celse reg_IRQ[sh->irq]--;
sh128drivers/scsi/eata_dma.cif (SD(sh)->channel == 0) {
sh129drivers/scsi/eata_dma.cif (sh->dma_channel != 0xff) free_dma(sh->dma_channel);
sh130drivers/scsi/eata_dma.cif (sh->io_port && sh->n_io_port)
sh131drivers/scsi/eata_dma.crelease_region(sh->io_port, sh->n_io_port);
sh152drivers/scsi/eata_dma.cstruct Scsi_Host *sh;
sh157drivers/scsi/eata_dma.cfor (x = 1, sh = first_HBA; x <= registered_HBAs; x++, sh = SD(sh)->prev) {
sh158drivers/scsi/eata_dma.cif (sh->irq != irq)
sh160drivers/scsi/eata_dma.cif (!(inb((uint)sh->base + HA_RAUXSTAT) & HA_AIRQ))
sh165drivers/scsi/eata_dma.csp=&SD(sh)->sp;
sh298drivers/scsi/eata_dma.cstruct Scsi_Host *sh;
sh315drivers/scsi/eata_dma.csh = cmd->host;
sh318drivers/scsi/eata_dma.cfor (y = hd->last_ccb + 1, x = 0; x < sh->can_queue; x++, y++) { 
sh319drivers/scsi/eata_dma.cif (y >= sh->can_queue)
sh327drivers/scsi/eata_dma.cif (x == sh->can_queue) { 
sh329drivers/scsi/eata_dma.cDBG(DBG_QUEUE, printk("can_queue %d, x %d, y %d\n",sh->can_queue,x,y));
sh404drivers/scsi/eata_dma.cif(eata_send_command((ulong) cp, (uint) sh->base, EATA_CMD_DMA_SEND_CP) == FALSE) {
sh413drivers/scsi/eata_dma.c(long)sh->base, cmd->pid, cmd->target, cmd->lun, y, sh->irq));
sh747drivers/scsi/eata_dma.cstruct Scsi_Host *sh;
sh831drivers/scsi/eata_dma.csh = scsi_register(tpnt, size);
sh833drivers/scsi/eata_dma.cif(sh == NULL) {
sh844drivers/scsi/eata_dma.chd = SD(sh);                   
sh850drivers/scsi/eata_dma.cstrncpy(SD(sh)->vendor, &buff[8], 8);
sh851drivers/scsi/eata_dma.cSD(sh)->vendor[8] = 0;
sh852drivers/scsi/eata_dma.cstrncpy(SD(sh)->name, &buff[16], 17);
sh853drivers/scsi/eata_dma.cSD(sh)->name[17] = 0;
sh854drivers/scsi/eata_dma.cSD(sh)->revision[0] = buff[32];
sh855drivers/scsi/eata_dma.cSD(sh)->revision[1] = buff[33];
sh856drivers/scsi/eata_dma.cSD(sh)->revision[2] = buff[34];
sh857drivers/scsi/eata_dma.cSD(sh)->revision[3] = '.';
sh858drivers/scsi/eata_dma.cSD(sh)->revision[4] = buff[35];
sh859drivers/scsi/eata_dma.cSD(sh)->revision[5] = 0;
sh862drivers/scsi/eata_dma.cSD(sh)->EATA_revision = 'a';
sh865drivers/scsi/eata_dma.cSD(sh)->EATA_revision = 'b';
sh868drivers/scsi/eata_dma.cSD(sh)->EATA_revision = 'c';
sh871drivers/scsi/eata_dma.cSD(sh)->EATA_revision = '?';
sh873drivers/scsi/eata_dma.csh->base = (char *) base;
sh874drivers/scsi/eata_dma.csh->io_port = (ushort) base;
sh875drivers/scsi/eata_dma.csh->n_io_port = 9;
sh876drivers/scsi/eata_dma.csh->irq = gc->IRQ;
sh877drivers/scsi/eata_dma.csh->dma_channel = dma_channel;
sh878drivers/scsi/eata_dma.csh->this_id = gc->scsi_id[3 - i];
sh879drivers/scsi/eata_dma.csh->can_queue = ntohs(gc->queuesiz) / (gc->MAX_CHAN + 1);
sh882drivers/scsi/eata_dma.csh->cmd_per_lun = sh->can_queue/C_P_L_DIV; 
sh884drivers/scsi/eata_dma.cif (sh->cmd_per_lun > C_P_L_CURRENT_MAX)
sh885drivers/scsi/eata_dma.csh->cmd_per_lun = C_P_L_CURRENT_MAX;
sh888drivers/scsi/eata_dma.csh->cmd_per_lun = 1;
sh890drivers/scsi/eata_dma.csh->sg_tablesize = ntohs(gc->SGsiz);
sh891drivers/scsi/eata_dma.cif (sh->sg_tablesize > SG_SIZE || sh->sg_tablesize == 0) {
sh892drivers/scsi/eata_dma.csh->sg_tablesize = SG_SIZE;
sh913drivers/scsi/eata_dma.csh->unchecked_isa_dma = FALSE;
sh914drivers/scsi/eata_dma.csh->wish_block = FALSE;        
sh917drivers/scsi/eata_dma.csh->unchecked_isa_dma = TRUE;   /* We're doing ISA DMA */
sh918drivers/scsi/eata_dma.csh->wish_block = TRUE;          /* This will reduce performance */
sh939drivers/scsi/eata_dma.cSD(hd->prev)->next = sh;
sh940drivers/scsi/eata_dma.clast_HBA = sh;
sh942drivers/scsi/eata_dma.cfirst_HBA = sh;
sh217drivers/scsi/hosts.cscsi_unregister(struct Scsi_Host * sh){
sh220drivers/scsi/hosts.cif(scsi_hostlist == sh)
sh221drivers/scsi/hosts.cscsi_hostlist = sh->next;
sh224drivers/scsi/hosts.cwhile(shpnt->next != sh) shpnt = shpnt->next;
sh234drivers/scsi/hosts.cscsi_init_free((char *) sh, sizeof(struct Scsi_Host) + sh->extra_bytes);
sh214drivers/scsi/scsi.cstruct Scsi_Host * sh[128], * shpnt;
sh249drivers/scsi/scsi.cif (shpnt->wish_block) sh[block_count++] = shpnt;
sh252drivers/scsi/scsi.cif (block_count == 1) sh[0]->block = NULL;
sh257drivers/scsi/scsi.csh[index]->block = sh[index + 1];
sh259drivers/scsi/scsi.csh[index]->host_no);
sh262drivers/scsi/scsi.csh[block_count - 1]->block = sh[0];
sh264drivers/scsi/scsi.csh[index]->host_no);
sh268drivers/scsi/u14-34f.cstatic struct Scsi_Host * sh[MAX_BOARDS + 1];
sh272drivers/scsi/u14-34f.c#define HD(board) ((struct hostdata *) &sh[board]->hostdata)
sh300drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh308drivers/scsi/u14-34f.coutb(CMD_CLR_INTR, sh[j]->io_port + REG_SYS_INTR);
sh311drivers/scsi/u14-34f.coutl((unsigned int)cpp, sh[j]->io_port + REG_OGM);
sh314drivers/scsi/u14-34f.coutb(CMD_OGM_INTR, sh[j]->io_port + REG_LCL_INTR);
sh407drivers/scsi/u14-34f.csh[j] = scsi_register(tpnt, sizeof(struct hostdata));
sh409drivers/scsi/u14-34f.cif (sh[j] == NULL) {
sh419drivers/scsi/u14-34f.csh[j]->io_port = *port_base;
sh420drivers/scsi/u14-34f.csh[j]->n_io_port = REGION_SIZE;
sh421drivers/scsi/u14-34f.csh[j]->base = bios_segment_table[config_1.bios_segment];
sh422drivers/scsi/u14-34f.csh[j]->irq = irq;
sh423drivers/scsi/u14-34f.csh[j]->sg_tablesize = MAX_SGLIST;
sh424drivers/scsi/u14-34f.csh[j]->this_id = config_2.ha_scsi_id;
sh425drivers/scsi/u14-34f.csh[j]->can_queue = MAX_MAILBOXES;
sh426drivers/scsi/u14-34f.csh[j]->cmd_per_lun = MAX_CMD_PER_LUN;
sh432drivers/scsi/u14-34f.csys_mask = inb(sh[j]->io_port + REG_SYS_MASK);
sh433drivers/scsi/u14-34f.clcl_mask = inb(sh[j]->io_port + REG_LCL_MASK);
sh439drivers/scsi/u14-34f.cif (sh[j]->base == 0) outb(CMD_ENA_INTR, sh[j]->io_port + REG_SYS_MASK);
sh442drivers/scsi/u14-34f.crequest_region(sh[j]->io_port, REGION_SIZE, driver_name);
sh452drivers/scsi/u14-34f.csh[j]->dma_channel = NO_DMA;
sh453drivers/scsi/u14-34f.csh[j]->unchecked_isa_dma = FALSE;
sh457drivers/scsi/u14-34f.csh[j]->wish_block = TRUE;
sh460drivers/scsi/u14-34f.csh[j]->hostt->use_clustering = DISABLE_CLUSTERING;
sh461drivers/scsi/u14-34f.csh[j]->sg_tablesize = MAX_SAFE_SGLIST;
sh464drivers/scsi/u14-34f.csh[j]->dma_channel = dma_channel;
sh465drivers/scsi/u14-34f.csh[j]->unchecked_isa_dma = TRUE;
sh480drivers/scsi/u14-34f.csh[j]->hostt->use_clustering = DISABLE_CLUSTERING;
sh481drivers/scsi/u14-34f.csh[j]->sg_tablesize = MAX_SAFE_SGLIST;
sh486drivers/scsi/u14-34f.c"Mbox %d, CmdLun %d, C%d.\n", BN(j), sh[j]->io_port, 
sh487drivers/scsi/u14-34f.c(int)sh[j]->base, sh[j]->irq, 
sh488drivers/scsi/u14-34f.csh[j]->dma_channel, sh[j]->sg_tablesize, 
sh489drivers/scsi/u14-34f.csh[j]->can_queue, sh[j]->cmd_per_lun,
sh490drivers/scsi/u14-34f.csh[j]->hostt->use_clustering);
sh511drivers/scsi/u14-34f.cfor (k = 0; k < MAX_BOARDS + 1; k++) sh[k] = NULL;
sh559drivers/scsi/u14-34f.cfor (k = 0; k < sh[j]->can_queue; k++, i++) {
sh561drivers/scsi/u14-34f.cif (i >= sh[j]->can_queue) i = 0;
sh569drivers/scsi/u14-34f.cif (k == sh[j]->can_queue) {
sh616drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh627drivers/scsi/u14-34f.coutl((unsigned int)cpp, sh[j]->io_port + REG_OGM);
sh630drivers/scsi/u14-34f.coutb(CMD_OGM_INTR, sh[j]->io_port + REG_LCL_INTR);
sh654drivers/scsi/u14-34f.cif (i >= sh[j]->can_queue)
sh657drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh715drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh725drivers/scsi/u14-34f.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh755drivers/scsi/u14-34f.cif (wait_on_busy(sh[j]->io_port)) {
sh761drivers/scsi/u14-34f.coutb(CMD_RESET, sh[j]->io_port + REG_LCL_INTR);
sh775drivers/scsi/u14-34f.cfor (i = 0; i < sh[j]->can_queue; i++) {
sh836drivers/scsi/u14-34f.cfor (j = 0; sh[j] != NULL; j++) {
sh838drivers/scsi/u14-34f.cif (sh[j]->irq != irq) continue;
sh843drivers/scsi/u14-34f.cwhile (inb(sh[j]->io_port + REG_SYS_INTR) & IRQ_ASSERTED) {
sh850drivers/scsi/u14-34f.cspp = (struct mscp *)inl(sh[j]->io_port + REG_ICM);
sh853drivers/scsi/u14-34f.coutb(CMD_CLR_INTR, sh[j]->io_port + REG_SYS_INTR);
sh857drivers/scsi/u14-34f.cif (i >= sh[j]->can_queue)
sh1008drivers/scsi/u14-34f.cfor (j = 0; sh[j] != NULL; j++)
sh1010drivers/scsi/u14-34f.ccalls[(sh[j]->irq)], HD(j)->iocount, HD(j)->multicount);
sh159drivers/scsi/wd7000.cstruct Scsi_Host *sh;             /* Pointer to Scsi_Host structure */
sh1099drivers/scsi/wd7000.cstruct Scsi_Host *sh;
sh1130drivers/scsi/wd7000.csh = scsi_register(tpnt, sizeof(Adapter) );
sh1131drivers/scsi/wd7000.chost = (Adapter *) sh->hostdata;
sh1137drivers/scsi/wd7000.chost->sh = sh;
sh1144drivers/scsi/wd7000.cscsi_unregister (sh);
sh1162drivers/scsi/wd7000.cif (host->rev1 < 6)  sh->sg_tablesize = SG_NONE;