![]() |
This is Unofficial EPICS BASE Doxygen Site
|
API for accessing hardware devices, originally over VMEbus. More...
#include "devLibVME.h"
Go to the source code of this file.
Macros | |
Macros for normalizing values | |
| |
#define | devCreateMask(NBITS) ((1<<(NBITS))-1) |
Create a bit mask for a given number of bits. More... | |
#define | devDigToNml(DIGITAL, NBITS) (((double)(DIGITAL))/devCreateMask(NBITS)) |
Normalize a raw integer value and convert it to type double. More... | |
#define | devNmlToDig(NORMAL, NBITS) (((long)(NORMAL)) * devCreateMask(NBITS)) |
Convert a normalized value to a raw integer. More... | |
Macros for pointer alignment | |
| |
#define | devCreateAlignmentMask(CTYPE) (sizeof(CTYPE)>sizeof(double)?sizeof(double)-1:sizeof(CTYPE)-1) |
Create an alignment mask for CTYPE. More... | |
#define | devPtrAlignTest(PTR) (!(devCreateAlignmentMask(*PTR)&(long)(PTR))) |
Check Pointer alignment, returns true if the pointer PTR is suitably aligned for its data type. More... | |
Error status values returned by devLib routines | |
#define | S_dev_success 0 |
#define | S_dev_vectorInUse (M_devLib| 1) /*Interrupt vector in use*/ |
Interrupt vector in use. More... | |
#define | S_dev_vecInstlFail (M_devLib| 2) /*Interrupt vector install failed*/ |
Interrupt vector install failed. More... | |
#define | S_dev_uknIntType (M_devLib| 3) /*Unrecognized interrupt type*/ |
Unrecognized interrupt type. More... | |
#define | S_dev_vectorNotInUse (M_devLib| 4) /*Interrupt vector not in use by caller*/ |
Interrupt vector not in use by caller. More... | |
#define | S_dev_badA16 (M_devLib| 5) /*Invalid VME A16 address*/ |
Invalid VME A16 address. More... | |
#define | S_dev_badA24 (M_devLib| 6) /*Invalid VME A24 address*/ |
Invalid VME A24 address. More... | |
#define | S_dev_badA32 (M_devLib| 7) /*Invalid VME A32 address*/ |
Invalid VME A32 address. More... | |
#define | S_dev_uknAddrType (M_devLib| 8) /*Unrecognized address space type*/ |
Unrecognized address space type. More... | |
#define | S_dev_addressOverlap (M_devLib| 9) /*Specified device address overlaps another device*/ |
Specified device address overlaps another device. More... | |
#define | S_dev_identifyOverlap (M_devLib| 10) /*This device already owns the address range*/ |
This device already owns the address range. More... | |
#define | S_dev_addrMapFail (M_devLib| 11) /*Unable to map address*/ |
Unable to map address. More... | |
#define | S_dev_intDisconnect (M_devLib| 12) /*Interrupt at vector disconnected from an EPICS device*/ |
Interrupt at vector disconnected from an EPICS device. More... | |
#define | S_dev_internal (M_devLib| 13) /*Internal failure*/ |
Internal failure. More... | |
#define | S_dev_intEnFail (M_devLib| 14) /*Unable to enable interrupt level*/ |
Unable to enable interrupt level. More... | |
#define | S_dev_intDissFail (M_devLib| 15) /*Unable to disable interrupt level*/ |
Unable to disable interrupt level. More... | |
#define | S_dev_noMemory (M_devLib| 16) /*Memory allocation failed*/ |
Memory allocation failed. More... | |
#define | S_dev_addressNotFound (M_devLib| 17) /*Specified device address unregistered*/ |
Specified device address unregistered. More... | |
#define | S_dev_noDevice (M_devLib| 18) /*No device at specified address*/ |
No device at specified address. More... | |
#define | S_dev_wrongDevice (M_devLib| 19) /*Wrong device type found at specified address*/ |
Wrong device type found at specified address. More... | |
#define | S_dev_badSignalNumber (M_devLib| 20) /*Signal number (offset) to large*/ |
Signal number (offset) to large. More... | |
#define | S_dev_badSignalCount (M_devLib| 21) /*Signal count to large*/ |
Signal count to large. More... | |
#define | S_dev_badRequest (M_devLib| 22) /*Device does not support requested operation*/ |
Device does not support requested operation. More... | |
#define | S_dev_highValue (M_devLib| 23) /*Parameter too high*/ |
Parameter too high. More... | |
#define | S_dev_lowValue (M_devLib| 24) /*Parameter too low*/ |
Parameter too low. More... | |
#define | S_dev_multDevice (M_devLib| 25) /*Specified address is ambiguous (more than one device responds)*/ |
Specified address is ambiguous (more than one device responds) More... | |
#define | S_dev_badSelfTest (M_devLib| 26) /*Device self test failed*/ |
Device self test failed. More... | |
#define | S_dev_badInit (M_devLib| 27) /*Device failed during initialization*/ |
Device failed during initialization. More... | |
#define | S_dev_hdwLimit (M_devLib| 28) /*Input exceeds Hardware Limit*/ |
Input exceeds Hardware Limit. More... | |
#define | S_dev_deviceDoesNotFit (M_devLib| 29) /*Unable to locate address space for device*/ |
Unable to locate address space for device. More... | |
#define | S_dev_deviceTMO (M_devLib| 30) /*Device timed out*/ |
Device timed out. More... | |
#define | S_dev_badFunction (M_devLib| 31) /*Bad function pointer*/ |
Bad function pointer. More... | |
#define | S_dev_badVector (M_devLib| 32) /*Bad interrupt vector*/ |
Bad interrupt vector. More... | |
#define | S_dev_badArgument (M_devLib| 33) /*Bad function argument*/ |
Bad function argument. More... | |
#define | S_dev_badISA (M_devLib| 34) /*Invalid ISA address*/ |
Invalid ISA address. More... | |
#define | S_dev_badCRCSR (M_devLib| 35) /*Invalid VME CR/CSR address*/ |
Invalid VME CR/CSR address. More... | |
#define | S_dev_vxWorksIntEnFail S_dev_intEnFail |
Synonym for S_dev_intEnFail. More... | |
API for accessing hardware devices, originally over VMEbus.
Support for allocation of common device resources
Definition in file devLib.h.
#define devCreateAlignmentMask | ( | CTYPE | ) | (sizeof(CTYPE)>sizeof(double)?sizeof(double)-1:sizeof(CTYPE)-1) |
#define devCreateMask | ( | NBITS | ) | ((1<<(NBITS))-1) |
#define devDigToNml | ( | DIGITAL, | |
NBITS | |||
) | (((double)(DIGITAL))/devCreateMask(NBITS)) |
#define devNmlToDig | ( | NORMAL, | |
NBITS | |||
) | (((long)(NORMAL)) * devCreateMask(NBITS)) |
#define devPtrAlignTest | ( | PTR | ) | (!(devCreateAlignmentMask(*PTR)&(long)(PTR))) |
#define S_dev_addressNotFound (M_devLib| 17) /*Specified device address unregistered*/ |
#define S_dev_addressOverlap (M_devLib| 9) /*Specified device address overlaps another device*/ |
#define S_dev_addrMapFail (M_devLib| 11) /*Unable to map address*/ |
#define S_dev_badA16 (M_devLib| 5) /*Invalid VME A16 address*/ |
#define S_dev_badA24 (M_devLib| 6) /*Invalid VME A24 address*/ |
#define S_dev_badA32 (M_devLib| 7) /*Invalid VME A32 address*/ |
#define S_dev_badArgument (M_devLib| 33) /*Bad function argument*/ |
#define S_dev_badInit (M_devLib| 27) /*Device failed during initialization*/ |
#define S_dev_badISA (M_devLib| 34) /*Invalid ISA address*/ |
#define S_dev_badSelfTest (M_devLib| 26) /*Device self test failed*/ |
#define S_dev_badSignalCount (M_devLib| 21) /*Signal count to large*/ |
#define S_dev_badSignalNumber (M_devLib| 20) /*Signal number (offset) to large*/ |
#define S_dev_badVector (M_devLib| 32) /*Bad interrupt vector*/ |
#define S_dev_deviceDoesNotFit (M_devLib| 29) /*Unable to locate address space for device*/ |
#define S_dev_deviceTMO (M_devLib| 30) /*Device timed out*/ |
#define S_dev_hdwLimit (M_devLib| 28) /*Input exceeds Hardware Limit*/ |
#define S_dev_highValue (M_devLib| 23) /*Parameter too high*/ |
#define S_dev_identifyOverlap (M_devLib| 10) /*This device already owns the address range*/ |
#define S_dev_intDisconnect (M_devLib| 12) /*Interrupt at vector disconnected from an EPICS device*/ |
#define S_dev_intDissFail (M_devLib| 15) /*Unable to disable interrupt level*/ |
#define S_dev_intEnFail (M_devLib| 14) /*Unable to enable interrupt level*/ |
#define S_dev_internal (M_devLib| 13) /*Internal failure*/ |
#define S_dev_lowValue (M_devLib| 24) /*Parameter too low*/ |
#define S_dev_multDevice (M_devLib| 25) /*Specified address is ambiguous (more than one device responds)*/ |
#define S_dev_noDevice (M_devLib| 18) /*No device at specified address*/ |
#define S_dev_noMemory (M_devLib| 16) /*Memory allocation failed*/ |
#define S_dev_vecInstlFail (M_devLib| 2) /*Interrupt vector install failed*/ |
#define S_dev_vectorInUse (M_devLib| 1) /*Interrupt vector in use*/ |
#define S_dev_vectorNotInUse (M_devLib| 4) /*Interrupt vector not in use by caller*/ |
#define S_dev_vxWorksIntEnFail S_dev_intEnFail |