mvmestd.h

Go to the documentation of this file.
00001 /*********************************************************************
00002 
00003   Name:         mvmestd.h
00004   Created by:   Stefan Ritt
00005 
00006   Cotents:      MIDAS VME standard routines. Have to be combined
00007                 with bt617.c
00008                 
00009   $Log: mvmestd.h,v $
00010   Revision 1.7  2004/01/08 08:40:09  midas
00011   Implemented standard indentation
00012 
00013   Revision 1.6  2003/11/24 08:22:45  midas
00014   Changed timeouts from INT to DWORD, added ignore_timeout to cm_cleanup, adde '-f' flag to ODBEdit 'cleanup'
00015 
00016   Revision 1.5  2001/06/27 12:16:30  midas
00017   Added OS_IRIX
00018 
00019   Revision 1.4  2001/04/05 05:51:36  midas
00020   Added VME_LM
00021 
00022   Revision 1.3  2000/09/28 11:12:15  midas
00023   Added DMA flag to vme_read/vme_write
00024 
00025   Revision 1.2  2000/09/26 07:45:19  midas
00026   Added vme_write
00027 
00028   Revision 1.1  2000/09/26 07:26:56  midas
00029   Added file
00030 
00031 
00032 *********************************************************************/
00033 
00034 /*---- replacements if not running under MIDAS ---------------------*/
00035 
00036 #ifndef MIDAS_TYPE_DEFINED
00037 #define MIDAS_TYPE_DEFINED
00038 
00039 typedef unsigned short int WORD;
00040 
00041 #ifdef __alpha
00042 typedef unsigned int DWORD;
00043 #else
00044 typedef unsigned long int DWORD;
00045 #endif
00046 
00047 #define SUCCESS  1
00048 
00049 #endif                          /* MIDAS_TYPE_DEFINED */
00050 
00051 /* make functions under WinNT dll exportable */
00052 #if defined(_MSC_VER) && defined(MIDAS_DLL)
00053 #define EXPRT __declspec(dllexport)
00054 #else
00055 #define EXPRT
00056 #endif
00057 
00058 /*---- constants ---------------------------------------------------*/
00059 
00060 /* data modes */
00061 #define VME_A16D16    1
00062 #define VME_A16D32    2
00063 #define VME_A24D16    3
00064 #define VME_A24D32    4
00065 #define VME_A32D16    5
00066 #define VME_A32D32    6
00067 #define VME_RAMD16    7         /* RAM memory of VME adapter */
00068 #define VME_RAND32    8
00069 #define VME_LM        9         /* local memory mapped to VME */
00070 
00071 /* vme_ioctl commands */
00072 #define VME_IOCTL_AMOD_SET           0
00073 #define VME_IOCTL_AMOD_GET           1
00074 
00075 /* vme bus address modifiers */
00076 #define VME_AMOD_A32_SB     (0x0F)      /* A32 Extended Supervisory Block */
00077 #define VME_AMOD_A32_SP     (0x0E)      /* A32 Extended Supervisory Program */
00078 #define VME_AMOD_A32_SD     (0x0D)      /* A32 Extended Supervisory Data */
00079 #define VME_AMOD_A32_NB     (0x0B)      /* A32 Extended Non-Privileged Block */
00080 #define VME_AMOD_A32_NP     (0x0A)      /* A32 Extended Non-Privileged Program */
00081 #define VME_AMOD_A32_ND     (0x09)      /* A32 Extended Non-Privileged Data */
00082 #define VME_AMOD_A32_SMBLT  (0x0C)      /* A32 Multiplexed Block Transfer (D64) */
00083 #define VME_AMOD_A32_NMBLT  (0x08)      /* A32 Multiplexed Block Transfer (D64) */
00084 
00085 #define VME_AMOD_A32     VME_AMOD_A32_SD
00086 #define VME_AMOD_A32_D64 VME_AMOD_A32_SMBLT
00087 
00088 #define VME_AMOD_A24_SB     (0x3F)      /* A24 Standard Supervisory Block Transfer      */
00089 #define VME_AMOD_A24_SP     (0x3E)      /* A24 Standard Supervisory Program Access      */
00090 #define VME_AMOD_A24_SD     (0x3D)      /* A24 Standard Supervisory Data Access         */
00091 #define VME_AMOD_A24_NB     (0x3B)      /* A24 Standard Non-Privileged Block Transfer   */
00092 #define VME_AMOD_A24_NP     (0x3A)      /* A24 Standard Non-Privileged Program Access   */
00093 #define VME_AMOD_A24_ND     (0x39)      /* A24 Standard Non-Privileged Data Access      */
00094 #define VME_AMOD_A24_SMBLT  (0x3C)      /* A24 Multiplexed Block Transfer (D64) */
00095 #define VME_AMOD_A24_NMBLT  (0x38)      /* A24 Multiplexed Block Transfer (D64) */
00096 
00097 #define VME_AMOD_A24     VME_AMOD_A24_SD
00098 #define VME_AMOD_A24_D64 VME_AMOD_A24_SMBLT
00099 
00100 #define VME_AMOD_A16_SD  (0x2D) /* A16 Short Supervisory Data Access            */
00101 #define VME_AMOD_A16_ND  (0x29) /* A16 Short Non-Privileged Data Access         */
00102 
00103 #define VME_AMOD_A16     BT_AMOD_A16_SD
00104 
00105 /*---- function declarations ---------------------------------------*/
00106 
00107 /* make functions callable from a C++ program */
00108 #ifdef __cplusplus
00109 extern "C" {
00110 #endif
00111 
00112    int EXPRT vme_open(int device, int mode);
00113    int EXPRT vme_ioctl(int vh, int req, int *parm);
00114    int EXPRT vme_close(int vh);
00115    int EXPRT vme_read(int vh, void *dst, int vme_addr, int size, int dma);
00116    int EXPRT vme_write(int vh, void *src, int vme_addr, int size, int dma);
00117    int EXPRT vme_mmap(int vh, void **ptr, int vme_addr, int size);
00118    int EXPRT vme_unmap(int vh, void *ptr, int size);
00119 
00120 
00121 #ifdef __cplusplus
00122 }
00123 #endif

Midas DOC Version 1.9.3 ---- PSI Stefan Ritt ----
Contributions: Pierre-Andre Amaudruz - Suzannah Daviel - Doxygen - Peter Green - Greg Hackman - Gertjan Hofman - Paul Knowles - Rudi Meier - Glenn Moloney - Dave Morris - Konstantin Olchanski - Renee Poutissou - Andreas Suter - Piotr Adam Zolnierczuk