Hi Mark,
On 10/01/2015 09:53 AM, Mark Rivers wrote:
> I have another question. What does EPICS base do when the process()
> routine for an input record returns an error? Is there a specific
> error code it should return, or is any non-zero value OK?
The return value should be a status code which gets passed back to
whatever triggered the processing. Unfortunately it is not uniformly
handled inside the IOC at the moment; in some places it gets ignored
completely (callback.c), but in others it gets turned into a message
string and printed (e.g. by the iocsh dbtr command) and may even be
passed back to the CA client that triggered the processing as a CA
exception.
The status codes are the S_* macros defined in various header files such
as devSup.h drvSup.h and recSup.h. The message string is the comment
that immediately follows the macro definition which gets extracted from
the header file at IOC build-time. Support modules can add their own
status codes but the interface for doing that has not been revised for
many years and might not work too well (I have looked at it a little but
haven't done much work to improve it yet).
HTH,
- Andrew
--
Light thinks it travels faster than anything but it is wrong.
No matter how fast light travels, it finds the darkness has
always got there first, and is waiting for it.
-- Terry Pratchett, Reaper Man
- References:
- ASYN Device Support Issue Ralph Lange
- RE: ASYN Device Support Issue Mark Rivers
- RE: ASYN Device Support Issue Mark Rivers
- Navigate by Date:
- Prev:
RE: ASYN Device Support Issue Mark Rivers
- Next:
RE: ASYN Device Support Issue Mark Rivers
- Index:
2002
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:
RE: ASYN Device Support Issue Mark Rivers
- Next:
RE: ASYN Device Support Issue Mark Rivers
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
<2015>
2016
2017
2018
2019
2020
2021
2022
2023
2024
|