#ifndef NDTSCOMMONHAL_PLX_V44_H
#define NDTSCOMMONHAL_PLX_V44_H

#ifdef __cplusplus
extern "C" {
#endif

#pragma warning(push)
#pragma warning(disable : 4214)			// PLX SDK uses non-ANSI standard bitfields
#include "plxpci4.4\sw\inc\PlxApi.h"
#pragma warning(pop)

#include "NDTSCommonHALInternal.h"
#include "NDTSCommonHALProtected.h"


NDTS_Boolean NDTS_HAL_PLX_v44_GetHALID(NDTS_HAL_ID *pHALID) ;
NDTS_Boolean NDTS_HAL_PLX_v44_InitialiseHAL(NDTS_HAL_Funcs *pHALFuncs) ;
NDTS_Boolean NDTS_HAL_PLX_v44_GetBoardsIDs(unsigned short vendorID, unsigned short deviceID, NDTS_CardSecondaryIDs cardID, NDTS_HAL_BoardID **ppBoardIDs, unsigned long numberOfBufferedBoardIDs, unsigned long *pNumberOfBoards) ;
NDTS_Boolean NDTS_HAL_PLX_v44_AddBoard(NDTS_HAL_BoardID *pBoardID) ;
NDTS_Boolean NDTS_HAL_PLX_v44_RemoveBoard(NDTS_HAL_BoardID *pBoardID) ;

NDTS_Boolean NDTS_HAL_PLX_v44_OpenDMAChannel(unsigned long internalCardIndex) ;
NDTS_Boolean NDTS_HAL_PLX_v44_CloseDMAChannel(unsigned long internalCardIndex) ;
NDTS_Boolean NDTS_HAL_PLX_v44_GetCommonBufferInfo(unsigned long internalCardIndex, void **ppPhysicalAddress, unsigned long *pNumberOfBufferBytes) ;
NDTS_Boolean NDTS_HAL_PLX_v44_PerformDMARead(unsigned long internalCardIndex, unsigned long localAddress, unsigned long numberOfBytes) ;
NDTS_Boolean NDTS_HAL_PLX_v44_PerformDMAWrite(unsigned long internalCardIndex, unsigned long localAddress, unsigned long numberOfBytes) ;

NDTS_Boolean NDTS_HAL_PLX_v44_SetWord(unsigned long internalCardIndex, unsigned long address, unsigned long value) ;
NDTS_Boolean NDTS_HAL_PLX_v44_GetWord(unsigned long internalCardIndex, unsigned long address, unsigned long *pValue) ;

NDTS_Boolean NDTS_HAL_PLX_v44_WriteSecondaryDeviceID(unsigned long busIndex, unsigned long slotIndex, NDTS_CardSecondaryIDs cardID) ;

NDTS_Boolean NDTS_HAL_PLX_v44_BoardByteCopy(unsigned long internalCardIndex, unsigned long localAddress, void *pOut, unsigned long numberOfBytes) ;

NDTS_Boolean NDTS_HAL_PLX_v44_CheckCardIndexState(unsigned long internalCardIndex) ;


#ifdef __cplusplus
}
#endif

#endif