divers/vmeio.h

Go to the documentation of this file.
00001 /*-----------------------------------------------------------------------------
00002  * Copyright (c) 1996      TRIUMF Data Acquistion Group
00003  * Please leave this header in any reproduction of that distribution
00004  * 
00005  * TRIUMF Data Acquisition Group, 4004 Wesbrook Mall, Vancouver, B.C. V6T 2A3
00006  * Email: online@triumf.ca           Tel: (604) 222-1047  Fax: (604) 222-1074
00007  *        amaudruz@triumf.ca
00008  * ----------------------------------------------------------------------------
00009  *  
00010  * Description  : Header file for VMEIO triumf board
00011  *
00012  * Author:  Pierre-Andre Amaudruz Data Acquisition Group
00013   $Id: vmeio.h 2753 2005-10-07 14:55:31Z ritt $
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                          /* MIDAS_TYPE_DEFINED */
00055 
00056 #ifdef PPCxxx
00057 #define A32D24         0xfa000000       /* A32D24 camac base address */
00058 #else
00059 #define A32D24         0xf0000000       /* A32D24 camac base address */
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

Midas DOC Version 3.0.0 ---- PSI Stefan Ritt ----
Contributions: Pierre-Andre Amaudruz - Sergio Ballestrero - Suzannah Daviel - Doxygen - Peter Green - Qing Gu - Greg Hackman - Gertjan Hofman - Paul Knowles - Exaos Lee - Rudi Meier - Glenn Moloney - Dave Morris - John M O'Donnell - Konstantin Olchanski - Renee Poutissou - Tamsen Schurman - Andreas Suter - Jan M.Wouters - Piotr Adam Zolnierczuk