Interface
33 TIA-102 Project 25 Common Air Interface (CAI) [Jeff Anderson, Telecommunications Industry of America (TIA) TR-8.5 Formulating Group, <cja015&motorola.com>, June 2004]
34 Wiegand Interface [Scott_Guthery_2]
struct _Sac *Interface = sc->sc_dr;
CtlWas = Interface->CONTROLREG;
Interface->CONTROLREG = CFGCMD | SAC_CFGRESET;
Interface->CONTROLREG = CFGCMD;
Status = Interface->STATUS;
nBytes, nWords, Interface));
Status = Interface->ERRORREG;
Status = Interface->STATUS;
Interface->DATABUFREG[0] = Data32;
Interface->CONTROLREG = CtlWas;
SysaceDumpRegisters(Interface);
Interface->CONTROLREG = CtlWas;
static void SysaceDumpRegisters(struct _Sac *Interface)
printf("Sysace@%p:\n", Interface);
printf("\tTag %x\n", Interface->Tag);
SysacePrintRegister(&Control_Names, Interface->Control);
printf("\tBUSMODEREG %x\n", Interface->BUSMODEREG);
SysacePrintRegister(&STATUS_Names, Interface->STATUS);
SysacePrintRegister(&ERRORREG_Names, Interface->ERRORREG);
printf("\tCFGLBAREG %x\n", Interface->CFGLBAREG);
printf("\tMPULBAREG %x\n", Interface->MPULBAREG);
printf("\tVERSIONREG %x\n", Interface->VERSIONREG);
printf("\tSECCNTCMDREG %x = %s cnt=%d\n", Interface->SECCNTCMDREG,
CommandNames[(Interface->SECCNTCMDREG >> 8)&7],
Interface->SECCNTCMDREG & SAC_SECCCNT);
SysacePrintRegister(&CONTROLREG_Names, Interface->CONTROLREG);
SysacePrintRegister(&FATSTATREG_Names, Interface->FATSTATREG);
static int SysaceInitialize(struct _Sac *Interface)
Interface->Control = SAC_RST;
Interface->BUSMODEREG = SAC_MODE16 | (SAC_MODE16 << 8);
Control = Interface->Control;
BusMode = Interface->BUSMODEREG;
Interface->Control = Control | SAC_BUS16;
Interface->Control = Interface->Control & ~SAC_BUS8;
Interface->Control = Control | SAC_BUS8;
Interface->Control = Interface->Control & ~SAC_BUS16;
BusMode = Interface->BUSMODEREG;
Control = Interface->Control;
Interface->Control &= ~SAC_INTMASK;
Control = Interface->CONTROLREG;
Interface->CONTROLREG = Control;
Interface->CONTROLREG = Control & ~SAC_RESETIRQ;
Interface->MPULBAREG = 0;
static int SysaceLock(struct _Sac *Interface)
Status = Interface->STATUS;
Interface->CONTROLREG |= SAC_LOCKREQ;
Status = Interface->STATUS;
SysaceDumpRegisters(Interface);
static int SysaceUnlock(struct _Sac *Interface)
Interface->CONTROLREG &= ~SAC_CFGRESET;
Status = Interface->STATUS;
Interface->CONTROLREG &= ~SAC_LOCKREQ;
Status = Interface->STATUS;
SysaceDumpRegisters(Interface);
static int SysaceStartCommand(struct _Sac *Interface,
if (!SysaceLock(Interface)) {
if (! (Interface->STATUS & SAC_CFDETECT)) {
DBGME(2,printf("Sysace:: no media (st=%x)\n",Interface->STATUS));
if (!SysaceReadyForCommand(Interface)) {
DBGME(3,printf("Sysace:: not ready (st=%x)\n",Interface->STATUS));
SysaceDumpRegisters(Interface);
Interface->MPULBAREG = Lba;
Interface->SECCNTCMDREG = (uint16_t)(Command | (nSectors & SAC_SECCCNT));
Interface->CONTROLREG |= SAC_CFGRESET;
static void SysAce_isr ( struct _Sac *Interface )
SysaceIntoff(Interface);
Control = Interface->CONTROLREG & (~(SAC_RESETIRQ|SAC_INTERRUPTS));
Interface->CONTROLREG = Control | SAC_RESETIRQ;
Interface->CONTROLREG = Control;
static int SysAce_wait(struct _Sac *Interface)
if (Interface->STATUS & SAC_DATABUFRDY) {
SysAce_isr(Interface);
static int SysAce_read(struct _Sac * Interface, char *Buffer, uint32_t StartSector, uint32_t nBlocks)
SysaceInton(Interface);
sc = SysaceStartCommand(Interface,
sc = SysAce_wait(Interface);
Status = Interface->STATUS;
Data32 = Interface->DATABUFREG[0];
SysaceDumpRegisters(Interface);
SysaceUnlock(Interface);
unsigned char Interface; /* See pnp.h for bit definitions */
int SubType, int Interface, int n);
pna->interface = id->Interface;
return dev->DeviceId.Interface;
q = id->Interface >= NELEMS(IDEController_tabel)
? NULL : IDEController_tabel[id->Interface];
q = id->Interface >= NELEMS(FloppyController_table)
? NULL : FloppyController_table[id->Interface];
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
q = id->Interface >= NELEMS(AudioController_table)
? NULL : AudioController_table[id->Interface];
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
q = id->Interface >= NELEMS(PCIBridge_table)
? NULL : PCIBridge_table[id->Interface];
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
q = id->Interface >= NELEMS(RS232Device_table)
? NULL : RS232Device_table[id->Interface];
q = id->Interface >= NELEMS(ATCompatibleParallelPort_table)
? NULL : ATCompatibleParallelPort_table[id->Interface];
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
q = id->Interface >= NELEMS(PIC_table)
? NULL : PIC_table[id->Interface];
q = id->Interface >= NELEMS(DMAController_table)
? NULL : DMAController_table[id->Interface];
q = id->Interface >= NELEMS(SystemTimer_table)
? NULL : SystemTimer_table[id->Interface];
q = id->Interface >= NELEMS(RealTimeClock_table)
? NULL : RealTimeClock_table[id->Interface];
q = id->Interface >= NELEMS(L2Cache_table)
? NULL : L2Cache_table[id->Interface];
q = id->Interface >= NELEMS(NVRAM_table)
? NULL : NVRAM_table[id->Interface];
q = id->Interface >= NELEMS(PowerManagement_table)
? NULL : PowerManagement_table[id->Interface];
q = id->Interface >= NELEMS(OperatorPanel_table)
? NULL : OperatorPanel_table[id->Interface];
q = id->Interface >= NELEMS(GraphicAssist_table)
? NULL : GraphicAssist_table[id->Interface];
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
printf(" Interface = %s (%d)\n", q ? q : "None", id->Interface);
Interface *find_interface(u_int32_t addr, Node *node)
Interface *ifc;
ifc = (Interface *) malloc(sizeof(Interface));
Interface *ifc;
Interface *ifc;
Interface *ifc_i, *next_ifc_i;
Interface *ifc_n = find_interface(ifc_i->addr, node);
Interface *ifc;
Interface *ifc_i, *next_ifc_i;
Interface *ifc_n = find_interface(ifc_i->addr, node);
Interface *ifc;
Interface *ifc;
Interface *ifc;
Interface * find_interface(u_int32_t addr, Node *node);