next up previous contents
Next: 2.7 WD_PcmciaConfigDump() Up: 2. WD_xxx PCI/PCMCIA/ISA Functions Previous: 2.5 WD_PcmciaScanCards()   Contents


2.6 WD_PcmciaGetCardInfo()


PURPOSE

$\bullet$Retrieves PCMCIA device's resource information (i.e. memory ranges, version, manufacturer and model strings, type of device, interrupt information).


PROTOTYPE

DWORD WD_PcmciaGetCardInfo(
    HANDLE hWD,
    WD_PCMCIA_CARD_INFO *pPcmciaCard);


PARAMETERS

Name Type Input/Output
$\bullet$hWD HANDLE Input
$\bullet$pPcmciaCard WD_PCMCIA_CARD_INFO*  
$\gg$pcmciaSlot WD_PCMCIA_SLOT  
$\diamond$uBus BYTE Input
$\diamond$uSocket BYTE Input
$\diamond$uFunction BYTE Input
$\diamond$uPadding BYTE N/A
$\gg$Card WD_CARD  
$\diamond$dwItems DWORD Output
$\diamond$Item WD_ITEMS[WD_CARD_ITEMS]  
$\triangleright$item DWORD Output
$\triangleright$fNotSharable DWORD Output
$\triangleright$dwReserved DWORD N/A
$\triangleright$dwOptions DWORD N/A
$\triangleright$I union  
$\rightarrow$Mem struct  
$\star$dwPhysicalAddr DWORD Output
$\star$dwBytes DWORD Output
$\star$dwTransAddr DWORD N/A
$\star$dwUserDirectAddr DWORD N/A
$\star$dwCpuPhysicalAddr DWORD N/A
$\star$dwBar DWORD Output
$\rightarrow$IO struct  
$\star$dwAddr KPTR Output
$\star$dwBytes DWORD Output
$\star$dwBar DWORD Output
$\rightarrow$Int struct  
$\star$dwInterrupt DWORD Output
$\star$dwOptions DWORD Output
$\star$hInterrupt DWORD N/A
$\rightarrow$Bus WD_BUS  
$\star$dwBusType WD_BUS_TYPE Output
$\star$dwBusNum DWORD Output
$\star$dwSlotFunc DWORD Output
$\rightarrow$Val struct N/A
$\gg$cVersion CHAR
Output
$\gg$cManufacturer CHAR [WD_PCMCIA_
MANUFACTURER_LEN]
Output
$\gg$cProductName CHAR[WD_PCMCIA_
PRODUCTNAME_LEN]
Output
$\gg$wManufacturerId WORD Input
$\gg$wCardId WORD Input
$\gg$wFuncId WORD Input
$\gg$dwOptions DWORD N/A


DESCRIPTION

Name Description
hWD The handle to WinDriver's kernel-mode driver received from WD_Open() [5.2]
pPcmciaCard Pointer to a PCMCIA card information structure:
PcmciaSlot PCMCIA slot information structure:
cardSlot.uBus Bus number (0 based)
cardSlot.uSocket Socket number (0 based)
cardSlot.uFunction Function number (0 based)
Card Card information structure:
dwItems Number of items detected on the card
Item Card items information structure:
item Type of item. Can be ITEM_MEMORY, ITEM_IO, ITEM_INTERRUPT or ITEM_BUS.
fNotSharable If TRUE, only one application at a time can access the mapped memory range, or monitor this card's interrupts
I Specific data according to the item type:
I.Mem Describes a memory item (item = ITEM_MEMORY):
I.Mem.dwPhysicalAddr First address of the physical memory range
I.Mem.dwBytes Length of the memory range, in bytes
I.Mem.dwBar Base Address Register (BAR) number of the memory range
I.IO Describes an I/O item (item = ITEM_IO):
I.IO.dwAddr First address of the I/O range
I.IO.dwBytes Length of the I/O range, in bytes
I.IO.dwBar Base Address Register (BAR) number for the I/O range
I.Int Describes an interrupt item (item = ITEM_INTERRUPT):
I.Int.dwInterrupt Physical interrupt request (IRQ) number
I.Int.dwOptions Interrupt bit-mask, which includes the interrupt type (e.g. INTERRUPT_LEVEL_SENSITIVE for level sensitive interrupts). The default type is edge triggered.
I.Bus Describes a bus item (item = ITEM_BUS):
I.Bus.dwBusType The card's bus type. For a PCMCIA card the bus type is WD_BUS_PCMCIA
I.Bus.dwBusNum The card's bus number
I.Bus.dwSlotFunc A combination of the card's bus socket and function numbers: the lower three bits represent the function number and the remaining bits represent the socket number. For example: a value of 0x80 (<=> 10000000 binary) corresponds to a function number of 0 (lower 3 bits: 000) and a socket number of 0x10 (remaining bits: 10000).
cVersion Card version string
cManufacturer Card manufacturer string
cProductName Card product name string
wManufacturerId Card manufacturer ID
wCardId Card type and model ID
wFuncId Card function ID
dwOptions Should always be set to 0 (reserved for future use)


RETURN VALUE

Returns WD_STATUS_SUCCESS (0) on success, or an appropriate error code otherwise [A].


REMARKS


EXAMPLE

WD_PCMCIA_CARD_INFO pcmciaCardInfo;
WD_CARD Card;

BZERO(pcmciaCardInfo);
pcmciaCardInfo.pcmciaSlot = pcmciaSlot;
WD_PcmciaGetCardInfo(hWD, &pcmciaCardInfo);
if (pcmciaCardInfo.Card.dwItems!=0) /* At least one item was found */
{
    Card = pcmciaCardInfo.Card;
}
else
{
    printf("Failed fetching PCMCIA card information\n");
}


next up previous contents
Next: 2.7 WD_PcmciaConfigDump() Up: 2. WD_xxx PCI/PCMCIA/ISA Functions Previous: 2.5 WD_PcmciaScanCards()   Contents