⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hfctlpmclow.c

📁 vxworks下跳频控制的驱动
💻 C
📖 第 1 页 / 共 5 页
字号:



/****************************************************************
Module:       HFCtlPmcLow.c
Author:      
Description:  lower function for access to HFCtl PMC card 

       
****************************************************************/
/* Included Files */
#include <vxWorks.h>
#include <iv.h>
#include <ioLib.h>
#include <iosLib.h>
#include <intLib.h>
#include <errnoLib.h>
#include <smObjLib.h>
#include <semLib.h>
#include <sysLib.h>
#include <stdlib.h>
#include <stdio.h>
#include "../../../include/drv/hF1394Pmc/hFCtlPmc.h"
#include "../../../include/drv/hF1394Pmc/HFCtlPmcLow.h"
#include "../../../include/drv/hF1394Pmc/plx9656.h"

/* define some macro */

/* Global Variables */

/* Forward Declaration */

/******************************************************************************
TITLE:  	HFCtlPmcRead
DESC:   	routine to read dada from HFCTL PMC card
PARAM:  	fd       -  file descriptor
         data     -  pointer to the data buffer
         count    -  number of longwords to read 

RETURN:  numRead  - number of longwords read 
         ERROR    - operation Failed
******************************************************************************/
int HFCtlPmcRead(int fd, int *data, int count)
{
    int numRead;

    numRead = read(fd, (char*)data, count*4);
    return(numRead/4);
}

/******************************************************************************
TITLE:  	HFCtlPmcWrite
DESC:   	routine to write data to HFCTL PMC card
PARAM:  	fd    -  file descriptor
         data  -  pointer to the data buffer
         count -  number of longwords to read 

RETURN:  count -  number of longwords to write
         ERROR -  operation Failed
******************************************************************************/
int HFCtlPmcWrite(int fd, int *data, int count)
{
    if (write(fd, (char*)data, count*4) != (count*4))
      {
      return(ERROR);
      }
    else
      {
      return(count);
      }
}

/******************************************************************************
TITLE:  	HFCtlPmcSetMemSpc2LSpc0
DESC:   	routine to Set Memory space to Local Memory Space 0 for HFCTL PMC card
PARAM:  	fd    -  file descriptor

RETURN:  OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
STATUS HFCtlPmcSetMemSpc2LSpc0(int fd)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_SET_MEM_TO_LSPACE0, 0);

   return(OK);
}

/******************************************************************************
TITLE:  	HFCtlPmcSetMemSpc2LSpc1
DESC:   	routine to Set Memory space to Local Memory Space 1 for HFCTL PMC card
PARAM:  	fd    -  file descriptor

RETURN:  OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
STATUS HFCtlPmcSetMemSpc2LSpc1(int fd)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_SET_MEM_TO_LSPACE1, 0);

   return(OK);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetMemSpc
DESC:   	routine to get Memory space for HFCTL PMC card
PARAM:  	fd          -  file descriptor
         pMemSpace   -  pointer to hold data

RETURN:  OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
STATUS HFCtlPmcGetMemSpc(int fd, unsigned long *pMemSpace)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_GET_MEM_SPACE, (int)pMemSpace);

   return(OK);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetRegPCIHIDRDevID
DESC:   	routine to get value of PLX9656 register PCIHIDR.DeviceID
PARAM:  	fd       -  file descriptor
         pRegData -  pointer to hold register data
RETURN: 	OK       -  operation was successful
         ERROR    -  operation Failed
******************************************************************************/
int HFCtlPmcGetRegPCIHIDRDevID(int fd, unsigned long *pRegData)
{
   int iStatus;

#if 0
   printf("HFCtlPmcGetRegPCIHIDRDevID: begin\n");
   printf("HFCtlPmcGetRegPCIHIDRDevID: pRegData = 0x%.8x\n", pRegData);
#endif /* if 0 */

   iStatus = ioctl(fd, HFCTL_GET_RT_DEVID, (int)pRegData);
   
#if 0
   printf("HFCtlPmcGetRegPCIHIDRDevID: *pRegData = 0x%.8x\n", *pRegData);
#endif /* if 0 */
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetRegPCIHIDRVenID
DESC:   	routine to get value of PLX9656 register PCIHIDR.VendorID
PARAM:  	fd       -  file descriptor
         pRegData -  pointer to hold register data
RETURN: 	OK       -  operation was successful
         ERROR    -  operation Failed
******************************************************************************/
int HFCtlPmcGetRegPCIHIDRVenID(int fd, unsigned long *pRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_GET_RT_VENID, (int)pRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetRegMailbox0
DESC:   	routine to get value of PLX9656 register MBOX0
PARAM:  	fd       -  file descriptor
         pRegData -  pointer to hold register data
RETURN: 	OK       -  operation was successful
         ERROR    -  operation Failed
******************************************************************************/
int HFCtlPmcGetRegMailbox0(int fd, unsigned long *pRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_GET_MAILBOX0, (int)pRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcSetRegMailbox0
DESC:   	routine to set PLX9656 register MBOX0
PARAM:  	fd          -  file descriptor
         ulRegData   -  data to write to register
RETURN: 	OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
int HFCtlPmcSetRegMailbox0(int fd, unsigned long ulRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_SET_MAILBOX0, (int)ulRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetRegMailbox1
DESC:   	routine to get value of PLX9656 register MBOX1
PARAM:  	fd       -  file descriptor
         pRegData -  pointer to hold register data
RETURN: 	OK       -  operation was successful
         ERROR    -  operation Failed
******************************************************************************/
int HFCtlPmcGetRegMailbox1(int fd, unsigned long *pRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_GET_MAILBOX1, (int)pRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcSetRegMailbox1
DESC:   	routine to set PLX9656 register MBOX1
PARAM:  	fd          -  file descriptor
         ulRegData   -  data to write to register
RETURN: 	OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
int HFCtlPmcSetRegMailbox1(int fd, unsigned long ulRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_SET_MAILBOX1, (int)ulRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetRegMailbox2
DESC:   	routine to get value of PLX9656 register MBOX2
PARAM:  	fd       -  file descriptor
         pRegData -  pointer to hold register data
RETURN: 	OK       -  operation was successful
         ERROR    -  operation Failed
******************************************************************************/
int HFCtlPmcGetRegMailbox2(int fd, unsigned long *pRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_GET_MAILBOX2, (int)pRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcSetRegMailbox2
DESC:   	routine to set PLX9656 register MBOX2
PARAM:  	fd          -  file descriptor
         ulRegData   -  data to write to register
RETURN: 	OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
int HFCtlPmcSetRegMailbox2(int fd, unsigned long ulRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_SET_MAILBOX2, (int)ulRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetRegMailbox3
DESC:   	routine to get value of PLX9656 register MBOX3
PARAM:  	fd       -  file descriptor
         pRegData -  pointer to hold register data
RETURN: 	OK       -  operation was successful
         ERROR    -  operation Failed
******************************************************************************/
int HFCtlPmcGetRegMailbox3(int fd, unsigned long *pRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_GET_MAILBOX3, (int)pRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcSetRegMailbox3
DESC:   	routine to set PLX9656 register MBOX3
PARAM:  	fd          -  file descriptor
         ulRegData   -  data to write to register
RETURN: 	OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
int HFCtlPmcSetRegMailbox3(int fd, unsigned long ulRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_SET_MAILBOX3, (int)ulRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetRegMailbox4
DESC:   	routine to get value of PLX9656 register MBOX4
PARAM:  	fd       -  file descriptor
         pRegData -  pointer to hold register data
RETURN: 	OK       -  operation was successful
         ERROR    -  operation Failed
******************************************************************************/
int HFCtlPmcGetRegMailbox4(int fd, unsigned long *pRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_GET_MAILBOX4, (int)pRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcSetRegMailbox4
DESC:   	routine to set PLX9656 register MBOX4
PARAM:  	fd          -  file descriptor
         ulRegData   -  data to write to register
RETURN: 	OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
int HFCtlPmcSetRegMailbox4(int fd, unsigned long ulRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_SET_MAILBOX4, (int)ulRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcGetRegMailbox5
DESC:   	routine to get value of PLX9656 register MBOX5
PARAM:  	fd       -  file descriptor
         pRegData -  pointer to hold register data
RETURN: 	OK       -  operation was successful
         ERROR    -  operation Failed
******************************************************************************/
int HFCtlPmcGetRegMailbox5(int fd, unsigned long *pRegData)
{
   int iStatus;

   iStatus = ioctl(fd, HFCTL_GET_MAILBOX5, (int)pRegData);
   
   return(iStatus);
}

/******************************************************************************
TITLE:  	HFCtlPmcSetRegMailbox5
DESC:   	routine to set PLX9656 register MBOX5
PARAM:  	fd          -  file descriptor
         ulRegData   -  data to write to register
RETURN: 	OK          -  operation was successful
         ERROR       -  operation Failed
******************************************************************************/
int HFCtlPmcSetRegMailbox5(int fd, unsigned long ulRegData)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -