📄 hfctlpmcdrvsetup.c
字号:
/* file number */
/*
modification history
-, 2004, November, 23th Release
-, 2005, March, 11th fix device name string variable pHfctlDevName's Bug.
-, 2005, March, 11th add HFCtlPmcDevUninstall().
-, 2005, April, 1st add removing installed ISR operation in HFCtlPmcDevUninstall()
*/
/****************************************************************
Module: HFCtlPmcDrvSetup.c
Author:
Description: driver setup for Hop-Freq controller PMC card
****************************************************************/
/* included file */
#include <vxworks.h>
#include <stdio.h>
#include <taskLib.h>
#include <syslib.h>
#include <fioLib.h>
#include "../../../include/drv/hF1394Pmc/hFCtlPmc.h"
/* define some macro */
/* Global Variables */
char pHfctlDevName[20] = "";
int iDrvNum = 0;
HFCTL_DEV HFCtlPmcDev;
HFCTL_DEV HFCtlPmcDevTemp;
int iDebugEnable = 1;
/* Forward Declaration */
/******************************************************************************
TITLE: HFCtlPmcDevSetup
DESC: routine to setup Hop-Freq controller PMC card device and driver
PARAM: none
RETURN: OK - operation runs successfully
ERROR - operation runs failed
******************************************************************************/
STATUS HFCtlPmcDevSetup(void)
{
int iStatus;
sprintf(pHfctlDevName, "/HFCtlPmc/0");
iDrvNum = HFCtlDrv();
if (iDebugEnable)
{
printf("HFCtlPmcDevSetup: iDrvNum = %d\n", iDrvNum);
}
iStatus = HFCtlDevCreate(pHfctlDevName, &HFCtlPmcDev);
return(iStatus);
}
/******************************************************************************
TITLE: HFCtlPmcDevUninstall
DESC: routine to Uninstall Hop-Freq controller PMC card device and driver
PARAM: none
RETURN: OK - operation runs successfully
ERROR - operation runs failed
******************************************************************************/
STATUS HFCtlPmcDevUninstall(void)
{
int iStatus;
DEV_HDR *pDevHdrRem = NULL;
char **pTempNameTail = NULL;
if (pHfctlDevName[0] == '\0')
{
printf("HFCtlPmcDevUninstall: device name ERROR.\n");
return(ERROR);
}
pDevHdrRem = iosDevFind(pHfctlDevName, pTempNameTail);
if (pDevHdrRem == NULL)
{
printf("HFCtlPmcDevUninstall: No device found.\n");
return(ERROR);
}
iosDevDelete(pDevHdrRem);
iStatus = iosDrvRemove(iDrvNum, TRUE);
if (iStatus == ERROR)
{
printf("HFCtlPmcDevUninstall: the driver has open files.\n");
}
iStatus = HFCtlIntRemove();
if (iStatus == ERROR)
{
printf("HFCtlPmcDevUninstall: can't remove installed ISR.\n");
}
HFCtlDrvParmReset();
return(iStatus);
}
STATUS PciBaseAddrReadTest(void)
{
int iStatus;
iStatus = PciBaseAddrRead(&HFCtlPmcDevTemp, 0);
return(iStatus);
}
/******************************************************************************
TITLE: hfCtlDevDataRdWrTest
DESC: test routine to read / write Local address space in HFCTL device
PARAM: iOffset - offset address
iReadTime - number of DW to read
iDebug - switch to list Debug info
RETURN: OK - operation was successful
ERROR - operation Failed
******************************************************************************/
STATUS hfCtlDevDataRdWrTest(int iOffset, int iReadTime, int iDebug, int iRdWrOn)
{
int i;
int iStatus;
unsigned long ulRegData;
unsigned char ucRegCharData;
unsigned long *pTempData;
unsigned char *pTempCharData;
unsigned long *pLocalSpace0Adrs;
unsigned long *pLocalSpace1Adrs;
if (iRdWrOn & 0x1)
{
/* start a direct slave read */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0 + iOffset);
if (iDebug)
{
printf("hfCtlDevLAS0Config1Test: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
}
for(i = 0; i < iReadTime; i++)
{
printf("hfCtlDevLAS0Config1Test: 0x%.8x = 0x%.8x\n", &pLocalSpace0Adrs[i], pLocalSpace0Adrs[i]);
}
}
if (iRdWrOn & 0x2)
{
/* start a direct slave write */
pLocalSpace0Adrs = (unsigned long *)(HFCtlPmcDev.boardDataSpace0 + iOffset);
if (iDebug)
{
printf("hfCtlDevLAS0Config1Test: pLocalSpace0Adrs = 0x%.8x\n", pLocalSpace0Adrs);
}
for(i = 0; i < iReadTime; i++)
{
pLocalSpace0Adrs[i] = 0xaaaa8888 + i * 5;
}
}
return(OK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -