Subversion Repositories f9daq

Rev

Blame | Last modification | View Log | RSS feed

#ifndef _WIENVME_DLL_H
#define _WIENVME_DLL_H

extern int VMEerrors;
extern int hHandle24, hHandle32, hHandle16;

void VME_load (char*);
int VME_open (int*, unsigned char, char*, unsigned short);
int VME_open24 (void);
int VME_open32 (void);
int VME_open16 (void);
int VME_start (char*);
void VME_unload (void);
int VME_close (int);
int VME_close24 (void);
int VME_close32 (void);
int VME_close16 (void);
int VME_stop (void);
int VME_reset (void);

int VME_read8 (int, unsigned long, unsigned long, void*);
int VME_read16 (int, unsigned long, unsigned long, void*);
int VME_read32 (int, unsigned long, unsigned long, void*);
int VME_write8 (int, unsigned long, unsigned long, void*);
int VME_write16 (int, unsigned long, unsigned long, void*);
int VME_write32 (int, unsigned long, unsigned long, void*);

#define VME_START(NODE) VME_start((NODE))
#define VME_STOP() VME_stop()
#define VME_RESET() VME_reset()
#define VME_A24D8_R(VME,DATA) VME_read8(hHandle24, 1, (VME), (DATA))
#define VME_A24D16_R(VME,DATA) VME_read16(hHandle24, 1, (VME), (DATA))
#define VME_A24D32_R(VME,DATA) VME_read32(hHandle24, 1, (VME), (DATA))
#define VME_A24D8_W(VME,DATA) VME_write8(hHandle24, 1, (VME), (DATA))
#define VME_A24D16_W(VME,DATA) VME_write16(hHandle24, 1, (VME), (DATA))
#define VME_A24D32_W(VME,DATA) VME_write32(hHandle24, 1, (VME), (DATA))
#define VME_A32D8_R(VME,DATA) VME_read8(hHandle32, 1, (VME), (DATA))
#define VME_A32D16_R(VME,DATA) VME_read16(hHandle32, 1, (VME), (DATA))
#define VME_A32D32_R(VME,DATA) VME_read32(hHandle32, 1, (VME), (DATA))
#define VME_A32D8_W(VME,DATA) VME_write8(hHandle32, 1, (VME), (DATA))
#define VME_A32D16_W(VME,DATA) VME_write16(hHandle32, 1, (VME), (DATA))
#define VME_A32D32_W(VME,DATA) VME_write32(hHandle32, 1, (VME), (DATA))

typedef unsigned short ADDRESS_MODIFIER;

#define Std_Sup_Data        (ADDRESS_MODIFIER)0x3d
#define Std_Sup_Prog        (ADDRESS_MODIFIER)0x3e
#define Std_NoPriv_Data     (ADDRESS_MODIFIER)0x39
#define Std_NoPriv_Prog     (ADDRESS_MODIFIER)0x3a

#define Short_Sup           (ADDRESS_MODIFIER)0x2d
#define Short_NoPriv        (ADDRESS_MODIFIER)0x29

#define Ext_Sup_Data        (ADDRESS_MODIFIER)0x0d
#define Ext_Sup_Prog        (ADDRESS_MODIFIER)0x0e
#define Ext_NoPriv_Data     (ADDRESS_MODIFIER)0x09
#define Ext_NoPriv_Prog     (ADDRESS_MODIFIER)0x0a

#endif