I'm starting to look at epics (again) now that Linux ioccore support is
further along.
Unlike VXworks, the Linux ioc runs as a process in user space. Linux does
let
us talk directly to hardware from user space, but interrupt servicing needs
to
be done in the kernel. For polling hardware, this is usually more than
enough.
This is also straight forward in Linux. However, we will need interrupt
drivers at some point
just to avoid polling and get latency within ioccore down and deal with fast
hardware.
So the question comes, how do we communicate between the Linux device
drivers (usually a character
device that one can use select and poll on) and ioccore. Basically, we need
a
workaround to the flat address space of VXworks. Is there a way to tie in
to the
EPICS event loop and provide a callback function to a simulation of an
interrupt
service routine in user space when there is a change to a file descriptor?
The
simulated ISR really just goes out and reads the information
from the device using read since the kernal driver will have already
serviced
the interrupt. It then triggers the rest of ioccore using callbackRequest.
Is there
a way to do this in the current framework or do we have to invent something
like liboop running in its own
thread to take care of this?
Or am I just really confused.
Cheers,
John
--
John P.G. Quintana [email protected]
Northwestern University Phone: 630-252-0221
DND-CAT FAX: 630-252-0226
Building 432/A008 http://www.dnd.aps.anl.gov
9700 South Cass Avenue
Argonne, IL 60439
- Navigate by Date:
- Prev:
Re: tcl/tk error Kazuro FURUKAWA
- Next:
Extensions problem Krishna
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
<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: tcl/tk error Kazuro FURUKAWA
- Next:
Extensions problem Krishna
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
<2002>
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|