dimesdl.h
来自「国外开源的一个片上网络系统的源代码」· C头文件 代码 · 共 658 行 · 第 1/3 页
H
658 行
/*
**
** (c) Nallatech Ltd
**
** dimesdl.h 2001/02/03 14:59:12 Peter Rogers
**
** DIMESDL.h
**
** This is the header file for the developers interface with Nallatech hardware
**
** $Id: dimesdl.h,v 1.1 2003/10/31 11:45:10 aslusarc Exp $
*/
#ifndef _DIMESDL
#define _DIMESDL
#define DIME_SDL_VER 109
#ifdef LINUX
#include <winlinux.h>
#else
#include <windows.h>
#endif
#ifdef _NALLASYSTEM // This is defined for low level development only
#define NALLAEXPORT __declspec(dllexport)
#else //else for _NALLASYSTEM.
// Make function declarations imports for application builds
#define NALLAEXPORT __declspec(dllimport)
#endif // end if for _NALLASYSTEM
// This is used to stop name mangling
#ifdef __cplusplus
#define CMANGLE extern "C"
#else
#define CMANGLE
#endif //__cplusplus
// Define handle for use in applications
#define LOCATE_HANDLE void *
#define DIME_HANDLE void *
#define DIME_MEMHANDLE void *
#define DIME_DMAHANDLE void *
// These define which kind of DIME carrier card that has been detected
#define mbtNONE 0x00000000
#define mbtTHEBALLYNUEY 0x00000001
#define mbtTHEBALLYNUEY2 0x00000002
#define mbtTHEBALLYINX 0x00000003
#define mbtTHESTRATHNUEY 0x00000004
#define mbtTHEBENERAPROTOTYPE 0x00000005
#define mbtTHEBENADIC 0x00000006
#define mbtTHEBALLYNUEY3 0x00000007
#define mbtTHEBENERA 0x00000008
#define mbtTHEBENNUEY 0x00000009
#define mbtTHEBENONE 0x0000000A
#define mbtALL 0xffffffff
// Used when specifing the interface for the Locate functions.
#define dlPCI 0x00000001
#define dlUSB 0x00000002
#define dlTCPIP 0x00000004
#define dlCITRIX 0x00000005
// Locate functions
//Possible flags for DIME_LocateCard
#define dlSERIALNUM 0x00000001
#define dlDEFAULT 0x00000000
//Standard values for DriverVersion arguement
#define dldrDEFAULT 0x00000000
#define dldrALL 0xFFFFFFFF
//Defines for the Status and Control CommandMode arguement.
#define dlNUMCARDS 0x10000000 //Returns the number of cards located. No card number required.
#define dlMBTYPE 0x10000001 //Returns the Motherboard Type for the specified card.
#define dlINTERFACE 0x10000002 //Returns the LocateType for the card eg dlPCI,dlUSB.
#define dlSERIALNUMBER 0x10000003 //Returns the SerialNumber of the card.
#define dlDRIVERVERSION 0x10000004 //Returns the driver version number for the card.
#define dlDESCRIPTION 0x10000005 //Returns a short discription of the card driver. Only valid for StatusPtr function.
CMANGLE NALLAEXPORT LOCATE_HANDLE DIME_LocateCard(int LocateType, DWORD MBType, void* LocateTypeArgs, DWORD DriverVersion, DWORD Flags);
CMANGLE NALLAEXPORT void DIME_CloseLocate(LOCATE_HANDLE LocateHandle);
CMANGLE NALLAEXPORT DWORD DIME_LocateStatus(LOCATE_HANDLE handle, DWORD CardNumber, DWORD CmdMode);
CMANGLE NALLAEXPORT void *DIME_LocateStatusPtr(LOCATE_HANDLE handle, DWORD CardNumber, DWORD CmdMode);
CMANGLE NALLAEXPORT DWORD DIME_LocateControl(LOCATE_HANDLE handle, DWORD CardNumber, DWORD CmdMode, DWORD Value);
CMANGLE NALLAEXPORT DWORD DIME_LocateControlPtr(LOCATE_HANDLE handle, DWORD CardNumber, DWORD CmdMode, void *pValue);
// Card initialisation
// Used to define the flags that are used when opening up a card.
#define dccOPEN_DEFAULT 0x00000000
#define dccOPEN_NO_OSCILLATOR_SETUP 0x00000001
#define dccNOMAINPOWERON 0x00000002
CMANGLE NALLAEXPORT DIME_HANDLE OpenDIMEBoard(void); // OBSELETED
CMANGLE NALLAEXPORT DIME_HANDLE DIME_OpenCard(LOCATE_HANDLE LocateHandle, int CardNumber, DWORD Flags);
CMANGLE NALLAEXPORT void CloseDIMEBoard(DIME_HANDLE CardHandle); // OBSELETED
CMANGLE NALLAEXPORT void DIME_CloseCard(DIME_HANDLE CardHandle);
CMANGLE NALLAEXPORT DIME_HANDLE GetDIMEHandle(void); // NO LONGER SUPPORTED
//Defines for the return values of the SmartScan function (NO LONGER REQUIRED)
#define ssOK 0x00000000
#define ssINVALID_CARD 0x00000001
#define ssINITIAL_SCAN 0x00000002
#define ssZERO_DEVICES 0x00000003
#define ssZERO_IR 0x00000004
#define ssFILE_ERROR 0x00000005
#define ssSIZE_ERROR 0x00000006
#define ssBAD_MDF 0x00000007
CMANGLE NALLAEXPORT DWORD DIME_SmartScan(DIME_HANDLE handle); // NOT REQUIRED
// Oscillator Control
CMANGLE NALLAEXPORT DWORD DIME_SetOscillatorFrequency(DIME_HANDLE handle, DWORD OscillatorNum, double DesiredFrequency, double *ActualFrequency);
CMANGLE NALLAEXPORT DWORD DIME_OscillatorStatus(DIME_HANDLE handle, DWORD ClockNum, DWORD CmdMode);
CMANGLE NALLAEXPORT DWORD DIME_OscillatorControl(DIME_HANDLE handle, DWORD ClockNum, DWORD CmdMode, DWORD Value);
// LED control
#define DIME_ReadLEDs(x) DIME_ReadLEDS(x)
#define DIME_WriteLEDs(x,y) DIME_WriteLEDS(x,y)
CMANGLE NALLAEXPORT DWORD DIME_ReadLEDS(DIME_HANDLE handle);
CMANGLE NALLAEXPORT void DIME_WriteLEDS(DIME_HANDLE handle, DWORD Value);
// Reset Control
// Defines the constants used within the reset functions
// Used in control function
#define drDISABLE 0x00000000
#define drENABLE 0x00000001
#define drTOGGLE 0x00000002
// Returned from status function
#define drCONTROLABLE 0x00000003
#define drTOGGLEONLY 0x00000004
// Used in status and control function 'ResetNum' argument
#define drINTERFACE 0x00000001
#define drSYSTEM 0x00000002
#define drONBOARDFPGA 0x00000004
#define drMODULE1 0x00000008
#define drMODULE2 0x00000010
#define drMODULE3 0x00000020
#define drMODULE4 0x00000040
CMANGLE NALLAEXPORT DWORD DIME_CardResetControl(DIME_HANDLE handle,DWORD ResetNum, DWORD CmdMode, DWORD Value);
CMANGLE NALLAEXPORT DWORD DIME_CardResetStatus(DIME_HANDLE handle,DWORD ResetNum, DWORD CmdMode);
CMANGLE NALLAEXPORT void DIME_VirtexResetEnable(DIME_HANDLE handle); // OBSELETED
CMANGLE NALLAEXPORT void DIME_VirtexResetDisable(DIME_HANDLE handle); // OBSELETED
CMANGLE NALLAEXPORT void DIME_VirtexReset(DIME_HANDLE handle); // OBSELETED
CMANGLE NALLAEXPORT void DIME_SystemResetEnable(DIME_HANDLE handle); // OBSELETED
CMANGLE NALLAEXPORT void DIME_SystemResetDisable(DIME_HANDLE handle); // OBSELETED
CMANGLE NALLAEXPORT void DIME_SystemReset(DIME_HANDLE handle); // OBSELETED
CMANGLE NALLAEXPORT void DIME_PCIReset(DIME_HANDLE handle); // OBSELETED
// Digital IO Functions
// Used for the Bank arguement
#define dpioDIGITAL 0x00000000
CMANGLE NALLAEXPORT DWORD DIME_ReadPIO(DIME_HANDLE handle,DWORD Bank);
CMANGLE NALLAEXPORT DWORD DIME_WritePIO(DIME_HANDLE handle,DWORD Bank,DWORD Data);
CMANGLE NALLAEXPORT DWORD DIME_ReadPIODirection(DIME_HANDLE handle,DWORD Bank);
CMANGLE NALLAEXPORT DWORD DIME_WritePIODirection(DIME_HANDLE handle,DWORD Bank,DWORD Data);
CMANGLE NALLAEXPORT DWORD DIME_ReadDigitalIO(DIME_HANDLE handle); // OBSELETED
CMANGLE NALLAEXPORT DWORD DIME_WriteDigitalIO(DIME_HANDLE handle,DWORD Data); // OBSELETED
CMANGLE NALLAEXPORT DWORD DIME_ReadDigitalIODirection(DIME_HANDLE handle); // OBSELETED
CMANGLE NALLAEXPORT DWORD DIME_WriteDigitalIODirection(DIME_HANDLE handle,DWORD Data); // OBSELETED
// Interrupts
// Defines the constants used within the Interrupt functions
// used in wait function
#define dintBLOCKING 0x00000000
#define dintNONBLOCKING 0x00000001
// used as InterruptFlags arguement
#define dintONBOARDFPGA 0x00000001
#define dintMODULE1 0x00000002
#define dintMODULE2 0x00000004
#define dintMODULE3 0x00000008
#define dintMODULE4 0x00000010
#define dintALL 0xffffffff
// used as CmdMode arguement
#define dintFLAGS 0x10000001
#define dintWAIT 0x10000002
#define dintAVAILABLE 0x10000003
#define dintDISABLE 0x10000004
#define dintENABLE 0x10000005
#define dintPINVALUE 0x10000006
#define dintSETHANDLER 0x10000007
CMANGLE NALLAEXPORT DWORD DIME_InterruptStatus(DIME_HANDLE handle, DWORD InterruptFlags,DWORD CmdMode);
CMANGLE NALLAEXPORT DWORD DIME_InterruptControl(DIME_HANDLE handle, DWORD InterruptFlags, DWORD CmdMode, DWORD Value);
CMANGLE NALLAEXPORT void *DIME_InterruptStatusPtr(DIME_HANDLE handle, DWORD InterruptFlags,DWORD CmdMode);
CMANGLE NALLAEXPORT DWORD DIME_InterruptControlPtr(DIME_HANDLE handle, DWORD InterruptFlags, DWORD CmdMode, void *pValue);
CMANGLE NALLAEXPORT DWORD DIME_VirtexIntPin(DIME_HANDLE handle); // OBSELETE
// MEMORY This handles the locking of memory
CMANGLE NALLAEXPORT DIME_MEMHANDLE DIME_LockMemory(DIME_HANDLE handle, DWORD *Data, DWORD Length); //Length in bytes
CMANGLE NALLAEXPORT DWORD DIME_UnLockMemory(DIME_HANDLE handle, DIME_MEMHANDLE MemHandle);
// DMA
#define ddmaALLDMACHANNELS NULL // Used in Status/Control to operate on all DMA Channels
#define ddmaNUMCHANNELS 0x10000000 // Only used with ddmaALLDMACHANNELS CmdMode
#define ddmaREADFLAGS 0x10000001 // Only used with ddmaALLDMACHANNELS CmdMode
#define ddmaWRITEFLAGS 0x10000002 // Only used with ddmaALLDMACHANNELS CmdMode
#define ddmaREADANDWRITE 0x10000003 // Only used with ddmaALLDMACHANNELS CmdMode
#define ddmaREADABLE 0x10000004 // Returns Flag if DMA channel can read
#define ddmaWRITABLE 0x10000005 // Returns Flag if DMA channel can write
#define ddmaINTERUPTABLE 0x10000006 // Returns Flag if interrupts can be used for transfer
#define ddmaACTIVE 0x10000007 // Returns flag if DMA channel is active in a transfer
#define ddmaNONBLOCKINGSUPPORT 0x10000008 // Returns if non blocking support is available
#define ddmaLOCALNOINC 0x10000009 // Sets that the local addressing is not incremented during transfers
// In status returns true if DMA can do no incrementing on local addresses
#define ddmaREMOTENOINC 0x1000000A // Sets that the remote addressing is not incremented during transfers
// In status returns true if DMA can do no incrementing on remote addresses
#define ddmaLOCALINC 0x1000000B // Sets that the local addressing is incremented during transfers
#define ddmaREMOTEINC 0x1000000C // Sets that the remote addressing is incremented during transfers
#define ddmaREMOTEINCFLAG 0x1000000D // Used in status to return current setting of remote addressing inc status
#define ddmaLOCALINCFLAG 0x1000000E // Used in status to return current setting of local addressing inc status
#define ddmaTIMEOUT 0x1000000F // Sets the timeout for future transfers
// In status returns current value of time for transfers in msec
#define ddmaCURRCOUNT 0x10000010 // Sets Address where the current count is stored
// In status returns the number of words currently transfered
#define ddmaTERMINATE 0x10000011 // DMAChannel=validhandle, DMA Transfer is terminated
// DMAChannel=NULL. All DMA Transfers on card are terminated
#define ddmaWAITFORFINISH 0x10000012 // Control blocks until DMA transfer is complete
#define ddmaPOLLED 0x10000013 // Set all future DMAs on this channel to be polled rather than use interrupts
#define ddmaINTERRUPTS 0x10000014 // Set all future DMAs on this channel to use interrupt
#define ddmaEMPTYFLAG 0x10000015 // This returns the state of the empty signal on the Nallatech Interface
#define ddmaBUSYFLAG 0x10000016 // This returns the state of the busy signal on the Nallatech Interface
#define ddmaREADEMPTY 0x10000017 // This returns a 1 if the read FIFO is empty
#define ddmaWRITEFULL 0x10000018 // This returns a 1 if the write FIFO is full
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?