in aha152x.c [2521:2778]
static void get_ports(struct seq_file *m, struct Scsi_Host *shpnt)
{
int s;
seq_printf(m, "\n%s: %s(%s) ", CURRENT_SC ? "on bus" : "waiting", states[STATE].name, states[PREVSTATE].name);
s = GETPORT(SCSISEQ);
seq_puts(m, "SCSISEQ( ");
if (s & TEMODEO)
seq_puts(m, "TARGET MODE ");
if (s & ENSELO)
seq_puts(m, "SELO ");
if (s & ENSELI)
seq_puts(m, "SELI ");
if (s & ENRESELI)
seq_puts(m, "RESELI ");
if (s & ENAUTOATNO)
seq_puts(m, "AUTOATNO ");
if (s & ENAUTOATNI)
seq_puts(m, "AUTOATNI ");
if (s & ENAUTOATNP)
seq_puts(m, "AUTOATNP ");
if (s & SCSIRSTO)
seq_puts(m, "SCSIRSTO ");
seq_puts(m, ");");
seq_puts(m, " SCSISIG(");
s = GETPORT(SCSISIG);
switch (s & P_MASK) {
case P_DATAO:
seq_puts(m, "DATA OUT");
break;
case P_DATAI:
seq_puts(m, "DATA IN");
break;
case P_CMD:
seq_puts(m, "COMMAND");
break;
case P_STATUS:
seq_puts(m, "STATUS");
break;
case P_MSGO:
seq_puts(m, "MESSAGE OUT");
break;
case P_MSGI:
seq_puts(m, "MESSAGE IN");
break;
default:
seq_puts(m, "*invalid*");
break;
}
seq_puts(m, "); ");
seq_printf(m, "INTSTAT (%s); ", TESTHI(DMASTAT, INTSTAT) ? "hi" : "lo");
seq_puts(m, "SSTAT( ");
s = GETPORT(SSTAT0);
if (s & TARGET)
seq_puts(m, "TARGET ");
if (s & SELDO)
seq_puts(m, "SELDO ");
if (s & SELDI)
seq_puts(m, "SELDI ");
if (s & SELINGO)
seq_puts(m, "SELINGO ");
if (s & SWRAP)
seq_puts(m, "SWRAP ");
if (s & SDONE)
seq_puts(m, "SDONE ");
if (s & SPIORDY)
seq_puts(m, "SPIORDY ");
if (s & DMADONE)
seq_puts(m, "DMADONE ");
s = GETPORT(SSTAT1);
if (s & SELTO)
seq_puts(m, "SELTO ");
if (s & ATNTARG)
seq_puts(m, "ATNTARG ");
if (s & SCSIRSTI)
seq_puts(m, "SCSIRSTI ");
if (s & PHASEMIS)
seq_puts(m, "PHASEMIS ");
if (s & BUSFREE)
seq_puts(m, "BUSFREE ");
if (s & SCSIPERR)
seq_puts(m, "SCSIPERR ");
if (s & PHASECHG)
seq_puts(m, "PHASECHG ");
if (s & REQINIT)
seq_puts(m, "REQINIT ");
seq_puts(m, "); ");
seq_puts(m, "SSTAT( ");
s = GETPORT(SSTAT0) & GETPORT(SIMODE0);
if (s & TARGET)
seq_puts(m, "TARGET ");
if (s & SELDO)
seq_puts(m, "SELDO ");
if (s & SELDI)
seq_puts(m, "SELDI ");
if (s & SELINGO)
seq_puts(m, "SELINGO ");
if (s & SWRAP)
seq_puts(m, "SWRAP ");
if (s & SDONE)
seq_puts(m, "SDONE ");
if (s & SPIORDY)
seq_puts(m, "SPIORDY ");
if (s & DMADONE)
seq_puts(m, "DMADONE ");
s = GETPORT(SSTAT1) & GETPORT(SIMODE1);
if (s & SELTO)
seq_puts(m, "SELTO ");
if (s & ATNTARG)
seq_puts(m, "ATNTARG ");
if (s & SCSIRSTI)
seq_puts(m, "SCSIRSTI ");
if (s & PHASEMIS)
seq_puts(m, "PHASEMIS ");
if (s & BUSFREE)
seq_puts(m, "BUSFREE ");
if (s & SCSIPERR)
seq_puts(m, "SCSIPERR ");
if (s & PHASECHG)
seq_puts(m, "PHASECHG ");
if (s & REQINIT)
seq_puts(m, "REQINIT ");
seq_puts(m, "); ");
seq_puts(m, "SXFRCTL0( ");
s = GETPORT(SXFRCTL0);
if (s & SCSIEN)
seq_puts(m, "SCSIEN ");
if (s & DMAEN)
seq_puts(m, "DMAEN ");
if (s & CH1)
seq_puts(m, "CH1 ");
if (s & CLRSTCNT)
seq_puts(m, "CLRSTCNT ");
if (s & SPIOEN)
seq_puts(m, "SPIOEN ");
if (s & CLRCH1)
seq_puts(m, "CLRCH1 ");
seq_puts(m, "); ");
seq_puts(m, "SIGNAL( ");
s = GETPORT(SCSISIG);
if (s & SIG_ATNI)
seq_puts(m, "ATNI ");
if (s & SIG_SELI)
seq_puts(m, "SELI ");
if (s & SIG_BSYI)
seq_puts(m, "BSYI ");
if (s & SIG_REQI)
seq_puts(m, "REQI ");
if (s & SIG_ACKI)
seq_puts(m, "ACKI ");
seq_puts(m, "); ");
seq_printf(m, "SELID(%02x), ", GETPORT(SELID));
seq_printf(m, "STCNT(%d), ", GETSTCNT());
seq_puts(m, "SSTAT2( ");
s = GETPORT(SSTAT2);
if (s & SOFFSET)
seq_puts(m, "SOFFSET ");
if (s & SEMPTY)
seq_puts(m, "SEMPTY ");
if (s & SFULL)
seq_puts(m, "SFULL ");
seq_printf(m, "); SFCNT (%d); ", s & (SFULL | SFCNT));
s = GETPORT(SSTAT3);
seq_printf(m, "SCSICNT (%d), OFFCNT(%d), ", (s & 0xf0) >> 4, s & 0x0f);
seq_puts(m, "SSTAT4( ");
s = GETPORT(SSTAT4);
if (s & SYNCERR)
seq_puts(m, "SYNCERR ");
if (s & FWERR)
seq_puts(m, "FWERR ");
if (s & FRERR)
seq_puts(m, "FRERR ");
seq_puts(m, "); ");
seq_puts(m, "DMACNTRL0( ");
s = GETPORT(DMACNTRL0);
seq_printf(m, "%s ", s & _8BIT ? "8BIT" : "16BIT");
seq_printf(m, "%s ", s & DMA ? "DMA" : "PIO");
seq_printf(m, "%s ", s & WRITE_READ ? "WRITE" : "READ");
if (s & ENDMA)
seq_puts(m, "ENDMA ");
if (s & INTEN)
seq_puts(m, "INTEN ");
if (s & RSTFIFO)
seq_puts(m, "RSTFIFO ");
if (s & SWINT)
seq_puts(m, "SWINT ");
seq_puts(m, "); ");
seq_puts(m, "DMASTAT( ");
s = GETPORT(DMASTAT);
if (s & ATDONE)
seq_puts(m, "ATDONE ");
if (s & WORDRDY)
seq_puts(m, "WORDRDY ");
if (s & DFIFOFULL)
seq_puts(m, "DFIFOFULL ");
if (s & DFIFOEMP)
seq_puts(m, "DFIFOEMP ");
seq_puts(m, ")\n");
seq_puts(m, "enabled interrupts( ");
s = GETPORT(SIMODE0);
if (s & ENSELDO)
seq_puts(m, "ENSELDO ");
if (s & ENSELDI)
seq_puts(m, "ENSELDI ");
if (s & ENSELINGO)
seq_puts(m, "ENSELINGO ");
if (s & ENSWRAP)
seq_puts(m, "ENSWRAP ");
if (s & ENSDONE)
seq_puts(m, "ENSDONE ");
if (s & ENSPIORDY)
seq_puts(m, "ENSPIORDY ");
if (s & ENDMADONE)
seq_puts(m, "ENDMADONE ");
s = GETPORT(SIMODE1);
if (s & ENSELTIMO)
seq_puts(m, "ENSELTIMO ");
if (s & ENATNTARG)
seq_puts(m, "ENATNTARG ");
if (s & ENPHASEMIS)
seq_puts(m, "ENPHASEMIS ");
if (s & ENBUSFREE)
seq_puts(m, "ENBUSFREE ");
if (s & ENSCSIPERR)
seq_puts(m, "ENSCSIPERR ");
if (s & ENPHASECHG)
seq_puts(m, "ENPHASECHG ");
if (s & ENREQINIT)
seq_puts(m, "ENREQINIT ");
seq_puts(m, ")\n");
}