EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  <20012002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  <20012002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: devLib.c vs devLibVxWorks.c
From: "Jeff Hill" <[email protected]>
To: <[email protected]>, <[email protected]>
Cc: <[email protected]>
Date: Mon, 14 May 2001 15:39:22 -0600
> I'm attempting to use V4.0 of the Motor Record with EPICS R3.13.1.
> 
> The driver is looking for devConnectInterruptVME(), which is in
> base/src/db/devLibVxWorks.c, which is not built into iocCore by default.
> The release notes state that this function is used instead of
> devConnectInterrupt() for "EPICS base 3.13.1 compatibility".
> 
> I see that devLibVxWorks.c duplicates some functions in devLib.c, so it
> doesn't look correct to include both.
> 
> Can anyone explain what the approach is ?
> 

There is a library provided with R3.13 EPICS that attempts to make it 
easier to write portable device support. The library provides an operating 
system independent interface to memory mapping and interrupts.

When I was attempting to move an application to a very difficult NI VXI CPU
board I improved the organization of devLib.c, but I did not install my changes
into EPICS R3.13. Nevertheless, a new source file resulting from this project 
does show up in recent R3.13 releases, but this source file is not built and 
the object code is not installed there.  Perhaps this file shows up on the R3.13
CVS branch due to direct manipulation of files in the CVS repository? 

Here are the organizational improvements I made to the library.
1) I separated vxWorks dependent code and generic code into two different 
source files. This allows support for new OS dependent interfaces without
maintaining endless #if/#elif OS dependent chains.
2) I recognized that multiplexing all bus types through one routine was, in
hindsight, unnecessary. To remain backwards compatible I still call the bus
dependent routines from a single multiplexing routine, but this interface
is no-longer required. The function devConnectInterruptVME() is part of the 
new bus specific interface that is not built or installed into EPICS R3.13.

I should also mention that my changes show up for the first time in EPICS 
R3.14. All of this code including the generic portions were moved into a 
vxWorks specific portion of the distribution. Based on recent discussions 
this spring I expect that both the generic and the OS dependent portions of 
devLib will be moved out of the R3.14 base distribution at some point in 
the near future. 

Jeff



References:
devLib.c vs devLibVxWorks.c Brian McAllister

Navigate by Date:
Prev: devLib.c vs devLibVxWorks.c Brian McAllister
Next: Re: devLib.c vs devLibVxWorks.c Ronald L. Sluiter
Index: 1994  1995  1996  1997  1998  1999  2000  <20012002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: devLib.c vs devLibVxWorks.c Brian McAllister
Next: Re: devLib.c vs devLibVxWorks.c Ronald L. Sluiter
Index: 1994  1995  1996  1997  1998  1999  2000  <20012002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·