00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef VMEIO_INCLUDE
00016 #define VMEIO_INCLUDE
00017 #include "stdio.h"
00018 #include "string.h"
00019
00020 #ifdef OS_VXWORKS
00021 #include "vme.h"
00022 #include "vxWorks.h"
00023 #include "intLib.h"
00024 #include "sys/fcntlcom.h"
00025 #ifdef PPCxxx
00026 #include "arch/ppc/ivPpc.h"
00027 #else
00028 #include "arch/mc68k/ivMc68k.h"
00029 #endif
00030 #include "taskLib.h"
00031 #endif
00032
00033 #if defined( _MSC_VER )
00034 #define INLINE __inline
00035 #elif defined(__GNUC__)
00036 #define INLINE __inline__
00037 #else
00038 #define INLINE
00039 #endif
00040
00041 #define EXTERNAL extern
00042
00043 #ifndef MIDAS_TYPE_DEFINED
00044 #define MIDAS_TYPE_DEFINED
00045
00046 typedef unsigned short int WORD;
00047
00048 #ifdef __alpha
00049 typedef unsigned int DWORD;
00050 #else
00051 typedef unsigned long int DWORD;
00052 #endif
00053
00054 #endif
00055
00056 #ifdef PPCxxx
00057 #define A32D24 0xfa000000
00058 #else
00059 #define A32D24 0xf0000000
00060 #endif
00061
00062 #define ENABLE_INT 0x00
00063 #define SET_INT_SYNC 0x01
00064 #define SET_PULSE 0x02
00065 #define WRITE_PULSE 0x03
00066 #define WRITE_LATCH 0x04
00067 #define READ_SYNC 0x05
00068 #define READ_ASYNC 0x06
00069 #define READ_STATUS 0x07
00070 #define CLEAR_VMEIO 0x07
00071
00072 #define VMEIO_VECT_BASE 0x7f
00073
00074 void myStub(void);
00075 void vmeio(void);
00076 void vmeio_intsync_set(DWORD base_adr, DWORD pattern);
00077 void vmeio_pulse_set(const DWORD base_adr, DWORD pattern);
00078 void vmeio_sync_read(const DWORD base_adr, DWORD * data);
00079 void vmeio_async_read(const DWORD base_adr, DWORD * data);
00080 void vmeio_pulse_write(const DWORD base_adr, DWORD data);
00081 void vmeio_latch_write(const DWORD base_adr, DWORD data);
00082 void vmeio_clear(const DWORD base_adr);
00083 void vmeio_status_read(const DWORD base_adr, DWORD * data);
00084 void vmeio_int_clear(const DWORD base_adr);
00085 void vmeio_int_enable(const DWORD base_adr, int intnum);
00086 void vmeio_int_disable(const DWORD base_adr, int intnum);
00087 void vmeio_int_attach(const DWORD base_adr, DWORD base_vect, int intnum,
00088 void (*isr) (void));
00089 void vmeio_int_detach(const DWORD base_adr, DWORD base_vect, int intnum);
00090
00091 #endif