"OS?"sys.c
6189A
Die Dateien "OS?"sys.c (ntsys.c, vxwsys.c sowie bald auch "IhrOS"sys.c)
stellen die Schnittstelle zum jeweiligen Betriebssystem dar. Hier finden die
Aufrufe der Systemfunktionen statt. Ebenso werden die Datenstrukturen
an das Betriebssystem angepasst.
Hier einige Funktionen, die in "OS?"sys.c bearbeitet werden:
IBD_IoConnectInterrupt(PT_BOARD_INFO pBoardInfo);
–
Verbindet den Interrupt mit dem Betriebssystem
VxWorks-Funktion:
if ((pciIntConnect(INUM_TO_IVEC (((int) pBoardInfo->queryInfo.uInterrupt) +
INT_NUM_IRQ0), IbsInterruptServiceRoutine, (int)pBoardInfo)) == ERROR)
{
printf("Connect interrupt failed\n");
return(RETURN_ERR);
}
sysIntEnablePIC((int) pBoardInfo->queryInfo.uInterrupt) ;
Windows NT-Funktion:
status = IoConnectInterrupt(&pBoardInfo->pInterruptObject,
IbsInterruptServiceRoutine,
pBoardInfo, NULL, pBoardInfo->uMappedIrqVector,
pBoardInfo->Irql, pBoardInfo->Irql, LevelSensitive,
TRUE, /* share interrupt */ pBoardInfo->Affinity, FALSE);
ReadIOAddressBoardNumber(PT_PCI_INFO PciInfo);
–
Liest das erste IO-Register der PCI-Anschaltbaugruppe. Hier steht die
Board-Nummer, die mit den DIP-Switches eingestellt wird. Alle 8 mög-
lichen Board-Nummern werden verglichen und sollten zwei Boards
doppelt adressiert sein, so werden diese als „invalid" gekennzeichnet.
IbsInterruptServiceRoutine(PT_BOARD_INFO pBoardInfo);
–
Link zu der InterruptServiceRoutine
ScanPciDevices(PT_PCI_INFO PciInfo);
–
Sucht im PCI-Adressraum nach der IBS-PCI-Anschaltbaugruppe und
füllt die entsprechende Datenstruktur
ToDo (Anpassung an Betriebssysteme)
6-5