📄 pciini.cpp
字号:
#include<vxworks.h>
#include<syslib.h>
#include"pciini.h"
//#include"xdefine.h"
static unsigned char _cBus;
static unsigned char _cDeviceNO;
static unsigned char _funID;
//static WORD _wDeviceIndex= NULL;
WORD PCI_ReadDWORD ( UINT nREG, DWORD * pdwVal )
{
if(pciConfigInLong(_cBus,_cDeviceNO,/*_funID*/PCI_FUNCTION_ID,nREG,pdwVal)==TRUE){
printf(" inok ");
return TRUE;}
else{
printf(" inerr ");
return FALSE;}
// (*pdwVal)=sysInByte(nREG);
/*unsigned char cc;
DWORD dd, dwTemp;
WORD ll, hh;
nREG &= 0xFFFC;
_asm
{
mov ah, PCI_FUNCTION_ID
mov al, READ_CONFIG_DWORD
mov bh, _cBus
mov bl, _cDeviceNO
mov di, nREG
int 1Ah
mov cc, ah
; mov dd, ecx
}
_getecx ( & dwTemp );
PCI_ReadWORD ( nREG, & ll );
PCI_ReadWORD ( nREG+ 2, & hh );
dd= MAKELONG ( ll, hh );
if ( dd != dwTemp )
assert ( NULL );
_PCI_CheckStatus ( cc );
* pdwVal= dwTemp;
/// * pDword= dd;
return cc;*/
}
//***************************************************************************
// Function : ::PCI_GetIOBaseIdx
// Abstract :
// Arguments : bIdx : bIdxth IO-Port, Read first if bIdx= NULL.
// Return : FALSE : if failure
// Side Effect :
// Notes :
//***************************************************************************
WORD PCI_GetIOBaseIdx ( BYTE bIdx, DWORD * pdwWord )
{
DWORD dwTemp;
WORD nAddr;
int i, iCount;
unsigned char cc;
if(pciFindDevice(0x1050,0x9921,0,&_cBus,&_cDeviceNO,&_funID/*PCI_FUNCTION_ID*/)!=OK)
return FALSE;
nAddr= 0x10;
iCount= NULL;
for ( i= 0; i< 6; i++ )
{
cc= PCI_ReadDWORD ( (UINT)nAddr, & dwTemp );
printf(" %x",dwTemp);
if ( ! dwTemp )
continue;
if ( dwTemp & 0x00000001 )
{
iCount++;
dwTemp &= 0xFFFFFFFE;
printf ( "Get IO base%d= %lx;\n", iCount, dwTemp );
printf("******%x,%x,%x\n",_cBus,_cDeviceNO,_funID);
if ( iCount == bIdx )
break;
if ( ! bIdx )
break;
}
nAddr+= 0x04;
dwTemp= NULL; // clear it
}
* pdwWord= dwTemp;
if ( dwTemp )
return TRUE;
else
return FALSE;
}
WORD PCI_GetIOBase ( DWORD * pdwWord )
{
return PCI_GetIOBaseIdx ( NULL, pdwWord );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -