#ifndef _WIENVME_DLL_H
 
#define _WIENVME_DLL_H
 
 
 
#include "libxxusb.h"
 
 
 
extern usb_dev_handle *udev;
 
 
 
 
 
 
 
int VME_start (char*);
 
int VME_close (int);
 
int VME_stop (void);
 
int VME_reset (void);
 
 
 
 
 
int VME_read16 (Uint32_t, void*);
 
int VME_read32 (Uint32_t, void*);
 
 
 
int VME_write16 ( Uint32_t, void*);
 
int VME_write32 ( Uint32_t, void*);
 
 
 
#define VME_START(NODE) VME_start((NODE))
 
#define VME_STOP() VME_stop()
 
#define VME_RESET() VME_reset()
 
 
 
#define VME_A24D16_R(VME,DATA) VME_read16( (VME), (DATA))
 
#define VME_A24D32_R(VME,DATA) VME_read32( (VME), (DATA))
 
 
 
#define VME_A24D16_W(VME,DATA) VME_write16( (VME), (DATA))
 
#define VME_A24D32_W(VME,DATA) VME_write32( (VME), (DATA))
 
 
 
#define VME_A32D16_R(VME,DATA) VME_read16( (VME), (DATA))
 
#define VME_A32D32_R(VME,DATA) VME_read32( (VME), (DATA))
 
 
 
#define VME_A32D16_W(VME,DATA) VME_write16( (VME), (DATA))
 
#define VME_A32D32_W(VME,DATA) VME_write32( (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