3.1.1 PIO_DriverInit
PIO_DriverInit(&wBoards, wSubVendor,wSubDevice,wSubAux)
• wBoards=0 to N Æ number of boards found in this PC
• wSubVendor Æ subVendor ID of board to find
• wSubDevice Æ subDevice ID of board to find
• wSubAux Æ subAux ID of board to find
This function can detect all OME-PIO/PISO series card in the system. It is
implemented based on the PCI plug & play mechanism. It will find all OME-
PIO/PISO series cards installed in this system & save all their resources in the library.
Sample program 1: find all OME-PIO-D96 installed in the PC
wSubVendor=0x80; wSubDevice=1; wSubAux=0x10; /* for PIO_D96 */
wRetVal=PIO_DriverInit(&wBoards, wSubVendor,wSubDevice,wSubAux);
printf("Threr are %d OME-PIO-D96 Cards in this PC\n",wBoards);
/* step2: save resource of all OME-PIO-D96 cards installed in this PC */
for (i=0; i<wBoards; i++)
{
PIO_GetConfigAddressSpace(i,&wBase,&wIrq,&wID1,&wID2,&wID3,
&wID4,&wID5);
printf("\nCard_%d: wBase=%x, wIrq=%x", i,wBase,wIrq);
wConfigSpace[i][0]=wBaseAddress; /* save all resource of this card */
wConfigSpace[i][1]=wIrq; /* save all resource of this card */
}
Sample program 2: find all OME-PIO/PISO installed in the PC (refer to Sec. 4.1 for
more information)
wRetVal=PIO_DriverInit(&wBoards,0xff,0xff,0xff); /*find all PIO_PISO*/
printf("\nThrer are %d PIO_PISO Cards in this PC",wBoards);
if (wBoards==0 ) exit(0);
printf("\n-----------------------------------------------------");
for(i=0; i<wBoards; i++)
{
PIO_GetConfigAddressSpace(i,&wBase,&wIrq,&wSubVendor,
&wSubDevice,&wSubAux,&wSlotBus,&wSlotDevice);
printf("\nCard_%d:wBase=%x,wIrq=%x,subID=[%x,%x,%x],
SlotID=[%x,%x]",i,wBase,wIrq,wSubVendor,wSubDevice,
wSubAux,wSlotBus,wSlotDevice);
printf(" --> ");
ShowPioPiso(wSubVendor,wSubDevice,wSubAux);
}
OME-PIO-D96 User Manual (Ver.1.1, Mar/2003) ---- 25