nxdrvlinux/examples/tcpserver/Marshaller/cifXAPI_Wrapper.h

174 lines
12 KiB
C
Raw Permalink Normal View History

/**************************************************************************************
Copyright (c) Hilscher GmbH. All Rights Reserved.
**************************************************************************************
Filename:
$Workfile: OS_CifXModul.h $
Last Modification:
$Author: AlexanderMinor $
$Modtime: $
$Revision: 12813 $
Targets:
Win32/ANSI : yes
Win32/Unicode: yes (define _UNICODE)
WinCE : yes
Description:
cifX function pointers for cifX marshalling module
Changes:
Version Date Author Description
----------------------------------------------------------------------------------
3 26.09.2013 SS Added support for xDriverRestartDevice call
2 25.06.2010 SD Change:
- changed types of driver functions (for 64-bit support)
1 25.05.2009 PL intitial version
**************************************************************************************/
#ifndef __CIFXAPI_WRAPPPER__H
#define __CIFXAPI_WRAPPPER__H
/*****************************************************************************/
/*! \file cifXAPI_Wrapper.h
* cifX function pointers for cifX marshalling module */
/*****************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
#include "cifXUser.h"
/*****************************************************************************/
/*! \addtogroup NETX_MARSHALLER_CIFX
* \{ */
/*****************************************************************************/
/* Global driver functions */
typedef int32_t(APIENTRY *PFN_xDriverOpen )( CIFXHANDLE* phDriver);
typedef int32_t(APIENTRY *PFN_xDriverClose )( CIFXHANDLE hDriver);
typedef int32_t(APIENTRY *PFN_xDriverGetInformation )( CIFXHANDLE hDriver, uint32_t ulSize, void* pvDriverInfo);
typedef int32_t(APIENTRY *PFN_xDriverGetErrorDescription )( int32_t lError, char* szBuffer, uint32_t ulBufferLen);
typedef int32_t(APIENTRY *PFN_xDriverEnumBoards )( CIFXHANDLE hDriver, uint32_t ulBoard, uint32_t ulSize, void* pvBoardInfo);
typedef int32_t(APIENTRY *PFN_xDriverEnumChannels )( CIFXHANDLE hDriver, uint32_t ulBoard, uint32_t ulChannel, uint32_t ulSize, void* pvChannelInfo);
typedef int32_t(APIENTRY *PFN_xDriverMemoryPointer )( CIFXHANDLE hDriver, uint32_t ulBoard, uint32_t ulCmd,void* pvMemoryInfo);
typedef int32_t(APIENTRY *PFN_xDriverRestartDevice )( CIFXHANDLE hDriver, char* szBoardName, void* pvData);
/* System device depending functions */
typedef int32_t(APIENTRY *PFN_xSysdeviceOpen )( CIFXHANDLE hDriver, char* szBoard, CIFXHANDLE* phSysdevice);
typedef int32_t(APIENTRY *PFN_xSysdeviceClose )( CIFXHANDLE hSysdevice);
typedef int32_t(APIENTRY *PFN_xSysdeviceGetMBXState )( CIFXHANDLE hSysdevice, uint32_t* pulRecvPktCount, uint32_t* pulSendPktCount);
typedef int32_t(APIENTRY *PFN_xSysdevicePutPacket )( CIFXHANDLE hSysdevice, CIFX_PACKET* ptSendPkt, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xSysdeviceGetPacket )( CIFXHANDLE hSysdevice, uint32_t ulSize, CIFX_PACKET* ptRecvPkt, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xSysdeviceInfo )( CIFXHANDLE hSysdevice, uint32_t ulCmd, uint32_t ulSize, void* pvInfo);
typedef int32_t(APIENTRY *PFN_xSysdeviceFindFirstFile )( CIFXHANDLE hSysdevice, uint32_t ulChannel, CIFX_DIRECTORYENTRY* ptDirectoryInfo, PFN_RECV_PKT_CALLBACK pfnRecvPktCallback, void* pvUser);
typedef int32_t(APIENTRY *PFN_xSysdeviceFindNextFile )( CIFXHANDLE hSysdevice, uint32_t ulChannel, CIFX_DIRECTORYENTRY* ptDirectoryInfo, PFN_RECV_PKT_CALLBACK pfnRecvPktCallback, void* pvUser);
typedef int32_t(APIENTRY *PFN_xSysdeviceDownload )( CIFXHANDLE hSysdevice, uint32_t ulChannel, uint32_t ulMode, char* szFileName, uint8_t* pabFileData, uint32_t ulFileSize,
PFN_PROGRESS_CALLBACK pfnCallback, PFN_RECV_PKT_CALLBACK pfnRecvPktCallback, void* pvUser);
typedef int32_t(APIENTRY *PFN_xSysdeviceReset )( CIFXHANDLE hSysdevice, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xSysdeviceResetEx )( CIFXHANDLE hSysdevice, uint32_t ulTimeout, uint32_t ulMode);
/* Channel depending functions */
typedef int32_t(APIENTRY *PFN_xChannelOpen )( CIFXHANDLE hDriver, char* szBoard, uint32_t ulChannel, CIFXHANDLE* phChannel);
typedef int32_t(APIENTRY *PFN_xChannelClose )( CIFXHANDLE hChannel);
typedef int32_t(APIENTRY *PFN_xChannelFindFirstFile )( CIFXHANDLE hChannel, CIFX_DIRECTORYENTRY* ptDirectoryInfo, PFN_RECV_PKT_CALLBACK pfnRecvPktCallback, void* pvUser);
typedef int32_t(APIENTRY *PFN_xChannelFindNextFile )( CIFXHANDLE hChannel, CIFX_DIRECTORYENTRY* ptDirectoryInfo, PFN_RECV_PKT_CALLBACK pfnRecvPktCallback, void* pvUser);
typedef int32_t(APIENTRY *PFN_xChannelDownload )( CIFXHANDLE hChannel, uint32_t ulMode, char* szFileName, uint8_t* pabFileData, uint32_t ulFileSize,
PFN_PROGRESS_CALLBACK pfnCallback, PFN_RECV_PKT_CALLBACK pfnRecvPktCallback, void* pvUser);
typedef int32_t(APIENTRY *PFN_xChannelGetMBXState )( CIFXHANDLE hChannel, uint32_t* pulRecvPktCount, uint32_t* pulSendPktCount);
typedef int32_t(APIENTRY *PFN_xChannelPutPacket )( CIFXHANDLE hChannel, CIFX_PACKET* ptSendPkt, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xChannelGetPacket )( CIFXHANDLE hChannel, uint32_t ulSize, CIFX_PACKET* ptRecvPkt, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xChannelGetSendPacket )( CIFXHANDLE hChannel, uint32_t ulSize, CIFX_PACKET* ptRecvPkt);
typedef int32_t(APIENTRY *PFN_xChannelConfigLock )( CIFXHANDLE hChannel, uint32_t ulCmd, uint32_t* pulState, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xChannelReset )( CIFXHANDLE hChannel, uint32_t ulResetMode, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xChannelInfo )( CIFXHANDLE hChannel, uint32_t ulSize, void* pvChannelInfo);
typedef int32_t(APIENTRY *PFN_xChannelWatchdog )( CIFXHANDLE hChannel, uint32_t ulCmd, uint32_t* pulTrigger);
typedef int32_t(APIENTRY *PFN_xChannelHostState )( CIFXHANDLE hChannel, uint32_t ulCmd, uint32_t* pulState, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xChannelBusState )( CIFXHANDLE hChannel, uint32_t ulCmd, uint32_t* pulState, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xChannelIOInfo )( CIFXHANDLE hChannel, uint32_t ulCmd, uint32_t ulAreaNumber, uint32_t ulSize, void* pvData);
typedef int32_t(APIENTRY *PFN_xChannelIORead )( CIFXHANDLE hChannel, uint32_t ulAreaNumber, uint32_t ulOffset, uint32_t ulDataLen, void* pvData, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xChannelIOWrite )( CIFXHANDLE hChannel, uint32_t ulAreaNumber, uint32_t ulOffset, uint32_t ulDataLen, void* pvData, uint32_t ulTimeout);
typedef int32_t(APIENTRY *PFN_xChannelIOReadSendData )( CIFXHANDLE hChannel, uint32_t ulAreaNumber, uint32_t ulOffset, uint32_t ulDataLen, void* pvData);
typedef int32_t(APIENTRY *PFN_xChannelControlBlock )( CIFXHANDLE hChannel, uint32_t ulCmd, uint32_t ulOffset, uint32_t ulDataLen, void* pvData);
typedef int32_t(APIENTRY *PFN_xChannelCommonStatusBlock )( CIFXHANDLE hChannel, uint32_t ulCmd, uint32_t ulOffset, uint32_t ulDataLen, void* pvData);
typedef int32_t(APIENTRY *PFN_xChannelExtendedStatusBlock )( CIFXHANDLE hChannel, uint32_t ulCmd, uint32_t ulOffset, uint32_t ulDataLen, void* pvData);
typedef int32_t(APIENTRY *PFN_xChannelUserBlock )( CIFXHANDLE hChannel, uint32_t ulAreaNumber, uint32_t ulCmd, uint32_t ulOffset, uint32_t ulDataLen, void* pvData);
typedef int32_t(APIENTRY *PFN_xChannelPLCMemoryPtr )( CIFXHANDLE hChannel, uint32_t ulCmd, void* pvMemoryInfo);
typedef int32_t(APIENTRY *PFN_xChannelPLCIsReadReady )( CIFXHANDLE hChannel, uint32_t ulAreaNumber, uint32_t * pulReadState);
typedef int32_t(APIENTRY *PFN_xChannelPLCIsWriteReady )( CIFXHANDLE hChannel, uint32_t ulAreaNumber, uint32_t * pulWriteState);
typedef int32_t(APIENTRY *PFN_xChannelPLCActivateWrite )( CIFXHANDLE hChannel, uint32_t ulAreaNumber);
typedef int32_t(APIENTRY *PFN_xChannelPLCActivateRead )( CIFXHANDLE hChannel, uint32_t ulAreaNumber);
typedef struct DRIVER_FUNCTIONStag
{
PFN_xDriverOpen pfnxDriverOpen;
PFN_xDriverClose pfnxDriverClose;
PFN_xDriverGetInformation pfnxDriverGetInformation;
PFN_xDriverGetErrorDescription pfnxDriverGetErrorDescription;
PFN_xDriverEnumBoards pfnxDriverEnumBoards;
PFN_xDriverEnumChannels pfnxDriverEnumChannels;
PFN_xDriverMemoryPointer pfnxDriverMemoryPointer;
PFN_xDriverRestartDevice pfnxDriverRestartDevice;
PFN_xSysdeviceOpen pfnxSysdeviceOpen;
PFN_xSysdeviceClose pfnxSysdeviceClose;
PFN_xSysdeviceReset pfnxSysdeviceReset;
PFN_xSysdeviceResetEx pfnxSysdeviceResetEx;
PFN_xSysdeviceGetMBXState pfnxSysdeviceGetMBXState;
PFN_xSysdevicePutPacket pfnxSysdevicePutPacket;
PFN_xSysdeviceGetPacket pfnxSysdeviceGetPacket;
PFN_xSysdeviceDownload pfnxSysdeviceDownload;
PFN_xSysdeviceInfo pfnxSysdeviceInfo;
PFN_xSysdeviceFindFirstFile pfnxSysdeviceFindFirstFile;
PFN_xSysdeviceFindNextFile pfnxSysdeviceFindNextFile;
PFN_xChannelOpen pfnxChannelOpen;
PFN_xChannelClose pfnxChannelClose;
PFN_xChannelDownload pfnxChannelDownload;
PFN_xChannelGetMBXState pfnxChannelGetMBXState;
PFN_xChannelPutPacket pfnxChannelPutPacket;
PFN_xChannelGetPacket pfnxChannelGetPacket;
PFN_xChannelGetSendPacket pfnxChannelGetSendPacket;
PFN_xChannelConfigLock pfnxChannelConfigLock;
PFN_xChannelReset pfnxChannelReset;
PFN_xChannelInfo pfnxChannelInfo;
PFN_xChannelFindFirstFile pfnxChannelFindFirstFile;
PFN_xChannelFindNextFile pfnxChannelFindNextFile;
PFN_xChannelWatchdog pfnxChannelWatchdog;
PFN_xChannelHostState pfnxChannelHostState;
PFN_xChannelBusState pfnxChannelBusState;
PFN_xChannelIOInfo pfnxChannelIOInfo;
PFN_xChannelIORead pfnxChannelIORead;
PFN_xChannelIOWrite pfnxChannelIOWrite;
PFN_xChannelIOReadSendData pfnxChannelIOReadSendData;
PFN_xChannelControlBlock pfnxChannelControlBlock;
PFN_xChannelCommonStatusBlock pfnxChannelCommonStatusBlock;
PFN_xChannelExtendedStatusBlock pfnxChannelExtendedStatusBlock;
PFN_xChannelUserBlock pfnxChannelUserBlock;
PFN_xChannelPLCMemoryPtr pfnxChannelPLCMemoryPtr;
PFN_xChannelPLCIsReadReady pfnxChannelPLCIsReadReady;
PFN_xChannelPLCIsWriteReady pfnxChannelPLCIsWriteReady;
PFN_xChannelPLCActivateWrite pfnxChannelPLCActivateWrite;
PFN_xChannelPLCActivateRead pfnxChannelPLCActivateRead;
} DRIVER_FUNCTIONS, *PDRIVER_FUNCTIONS;
#ifdef __cplusplus
}
#endif
/*****************************************************************************/
/*! \} */
/*****************************************************************************/
#endif /* __CIFXAPI_WRAPPPER__H */