/*************************************************************************\ * Copyright (c) 2010 Brookhaven Science Associates, as Operator of * Brookhaven National Laboratory. * devLib2 is distributed subject to a Software License Agreement found * in file LICENSE that is included with this distribution. \*************************************************************************/ /* * Author: Michael Davidsaver */ #include #include #include #include #include #include #include #include void vmeread(epicsUInt32 addr, int amod, int dmod, int count) { epicsUInt32 tval; epicsAddressType atype; volatile void* mptr; volatile char* dptr; short dbytes; int i; if(count<1) count=1; switch(dmod){ case 8: case 16: case 32: break; default: epicsPrintf("Invalid data width %d\n",dmod); return; } switch(amod){ case 16: atype=atVMEA16; break; case 24: atype=atVMEA24; break; case 32: atype=atVMEA32; break; default: epicsPrintf("Invalid address width %d\n",amod); return; } dbytes=dmod/8; if(dmod%8) dbytes++; if(dbytes <=0 || dbytes>4){ epicsPrintf("Invalid data width\n"); return; } if( (addr > ((1<= ((1<