diff --git a/src/libCom/osi/devLib.h b/src/libCom/osi/devLib.h index 88c4ebc1f..648cadd35 100644 --- a/src/libCom/osi/devLib.h +++ b/src/libCom/osi/devLib.h @@ -18,8 +18,9 @@ #ifndef INCdevLibh #define INCdevLibh 1 -#include -#include +#include "dbDefs.h" +#include "osdVME.h" +#include "shareLib.h" #ifdef __cplusplus extern "C" { @@ -44,14 +45,14 @@ typedef enum { */ extern const char *epicsAddressTypeName[]; -long devAddressMap(void); /* print an address map */ +epicsShareFunc long devAddressMap(void); /* print an address map */ /* * devBusToLocalAddr() * * OSI routine to translate bus addresses their local CPU address mapping */ -long devBusToLocalAddr ( +epicsShareFunc long devBusToLocalAddr ( epicsAddressType addrType, size_t busAddr, volatile void **ppLocalAddr); @@ -61,7 +62,8 @@ long devBusToLocalAddr ( * a bus error safe "wordSize" read at the specified address which returns * unsuccessful status if the device isnt present */ -long devReadProbe (unsigned wordSize, volatile const void *ptr, void *pValueRead); +epicsShareFunc long devReadProbe ( + unsigned wordSize, volatile const void *ptr, void *pValueRead); /* * devNoResponseProbe() @@ -73,7 +75,7 @@ long devReadProbe (unsigned wordSize, volatile const void *ptr, void *pValueRead * Checks all naturally aligned word sizes between char and long for * the entire specified range of bytes. */ -long devNoResponseProbe( +epicsShareFunc long devNoResponseProbe( epicsAddressType addrType, size_t base, size_t size @@ -85,16 +87,17 @@ long devNoResponseProbe( * a bus error safe "wordSize" write at the specified address which returns * unsuccessful status if the device isnt present */ -long devWriteProbe (unsigned wordSize, volatile void *ptr, const void *pValueWritten); +epicsShareFunc long devWriteProbe ( + unsigned wordSize, volatile void *ptr, const void *pValueWritten); -long devRegisterAddress( +epicsShareFunc long devRegisterAddress( const char *pOwnerName, epicsAddressType addrType, size_t logicalBaseAddress, size_t size, /* bytes */ volatile void **pPhysicalAddress); -long devUnregisterAddress( +epicsShareFunc long devUnregisterAddress( epicsAddressType addrType, size_t logicalBaseAddress, const char *pOwnerName); @@ -102,7 +105,7 @@ long devUnregisterAddress( /* * allocate and register an unoccupied address block */ -long devAllocAddress( +epicsShareFunc long devAllocAddress( const char *pOwnerName, epicsAddressType addrType, size_t size, @@ -112,7 +115,7 @@ long devAllocAddress( /* * connect ISR to a VME interrupt vector */ -long devConnectInterruptVME( +epicsShareFunc long devConnectInterruptVME( unsigned vectorNumber, void (*pFunction)(void *), void *parameter); @@ -122,7 +125,7 @@ long devConnectInterruptVME( * (not implemented) * (API should be reviewed) */ -long devConnectInterruptISA( +epicsShareFunc long devConnectInterruptISA( unsigned interruptLevel, void (*pFunction)(void *), void *parameter); @@ -132,7 +135,7 @@ long devConnectInterruptISA( * (not implemented) * (API should be reviewed) */ -long devConnectInterruptPCI( +epicsShareFunc long devConnectInterruptPCI( unsigned bus, unsigned device, unsigned function, @@ -146,7 +149,7 @@ long devConnectInterruptPCI( * was connected. It is used as a key to prevent a driver from inadvertently * removing an interrupt handler that it didn't install */ -long devDisconnectInterruptVME( +epicsShareFunc long devDisconnectInterruptVME( unsigned vectorNumber, void (*pFunction)(void *)); @@ -159,7 +162,7 @@ long devDisconnectInterruptVME( * was connected. It is used as a key to prevent a driver from inadvertently * removing an interrupt handler that it didn't install */ -long devDisconnectInterruptISA( +epicsShareFunc long devDisconnectInterruptISA( unsigned interruptLevel, void (*pFunction)(void *)); @@ -172,7 +175,7 @@ long devDisconnectInterruptISA( * was connected. It is used as a key to prevent a driver from inadvertently * removing an interrupt handler that it didn't install */ -long devDisconnectInterruptPCI( +epicsShareFunc long devDisconnectInterruptPCI( unsigned bus, unsigned device, unsigned function, @@ -183,7 +186,7 @@ long devDisconnectInterruptPCI( * * returns boolean */ -int devInterruptInUseVME (unsigned vectorNumber); +epicsShareFunc int devInterruptInUseVME (unsigned vectorNumber); /* * determine if an ISA interrupt level is in use @@ -191,7 +194,7 @@ int devInterruptInUseVME (unsigned vectorNumber); * * returns boolean */ -int devInterruptLevelInUseISA (unsigned interruptLevel); +epicsShareFunc int devInterruptLevelInUseISA (unsigned interruptLevel); /* * determine if a PCI interrupt is in use @@ -199,7 +202,7 @@ int devInterruptLevelInUseISA (unsigned interruptLevel); * * returns boolean */ -int devInterruptInUsePCI (unsigned bus, unsigned device, +epicsShareFunc int devInterruptInUsePCI (unsigned bus, unsigned device, unsigned function); typedef enum {intVME, intVXI, intISA} epicsInterruptType; @@ -207,42 +210,42 @@ typedef enum {intVME, intVXI, intISA} epicsInterruptType; /* * enable VME interrupt level */ -long devEnableInterruptLevelVME (unsigned level); +epicsShareFunc long devEnableInterruptLevelVME (unsigned level); /* * enable ISA interrupt level */ -long devEnableInterruptLevelISA (unsigned level); +epicsShareFunc long devEnableInterruptLevelISA (unsigned level); /* * not implemented - API needs to be reviewed */ -long devEnableInterruptLevelPCI (unsigned level, +epicsShareFunc long devEnableInterruptLevelPCI (unsigned level, unsigned bus, unsigned device, unsigned function); /* * disable VME interrupt level */ -long devDisableInterruptLevelVME (unsigned level); +epicsShareFunc long devDisableInterruptLevelVME (unsigned level); /* * disable ISA interrupt level */ -long devDisableInterruptLevelISA (unsigned level); +epicsShareFunc long devDisableInterruptLevelISA (unsigned level); /* * not implemented - API needs to be reviewed */ -long devDisableInterruptLevelPCI (unsigned level, +epicsShareFunc long devDisableInterruptLevelPCI (unsigned level, unsigned bus, unsigned device, unsigned function); /* * Routines to allocate and free memory in the A24 memory region. * */ -void *devLibA24Malloc(size_t); -void *devLibA24Calloc(size_t); -void devLibA24Free(void *pBlock); +epicsShareFunc void *devLibA24Malloc(size_t); +epicsShareFunc void *devLibA24Calloc(size_t); +epicsShareFunc void devLibA24Free(void *pBlock); /* * Normalize a digital value and convert it to type TYPE @@ -327,7 +330,7 @@ typedef struct devLibVirtualOS { void (*pDevA24Free)(void *pBlock); long (*pDevInit)(void); }devLibVirtualOS; -extern devLibVirtualOS *pdevLibVirtualOS; +epicsShareExtern devLibVirtualOS *pdevLibVirtualOS; /* * error codes (and messages) associated with devLib.c @@ -378,7 +381,7 @@ extern devLibVirtualOS *pdevLibVirtualOS; * devConnectInterruptISA etc. devConnectInterrupt will be removed * in a future release. */ -long devConnectInterrupt( +epicsShareFunc long devConnectInterrupt( epicsInterruptType intType, unsigned vectorNumber, void (*pFunction)(void *), @@ -392,10 +395,10 @@ long devConnectInterrupt( * devDisconnectInterruptISA etc. devDisconnectInterrupt will be removed * in a future release. */ -long devDisconnectInterrupt( +epicsShareFunc long devDisconnectInterrupt( epicsInterruptType intType, unsigned vectorNumber, - void (*pFunction)(void *)); + void (*pFunction)(void *)); /* * NOTE: this routine has been deprecated. It exists @@ -405,7 +408,8 @@ long devDisconnectInterrupt( * devEnableInterruptLevelISA etc. devEnableInterruptLevel will be removed * in a future release. */ -long devEnableInterruptLevel(epicsInterruptType intType, unsigned level); +epicsShareFunc long devEnableInterruptLevel( + epicsInterruptType intType, unsigned level); /* * NOTE: this routine has been deprecated. It exists @@ -415,7 +419,8 @@ long devEnableInterruptLevel(epicsInterruptType intType, unsigned level); * devDisableInterruptLevelPCI etc. devDisableInterruptLevel will be removed * in a future release. */ -long devDisableInterruptLevel (epicsInterruptType intType, unsigned level); +epicsShareFunc long devDisableInterruptLevel ( + epicsInterruptType intType, unsigned level); /* * NOTE: this routine has been deprecated. It exists @@ -424,7 +429,7 @@ long devDisableInterruptLevel (epicsInterruptType intType, unsigned level); * Please use devNoResponseProbe(). locationProbe() will be removed * in a future release. */ -long locationProbe (epicsAddressType addrType, char *pLocation); +epicsShareFunc long locationProbe (epicsAddressType addrType, char *pLocation); /* * Some vxWorks convenience routines