On Tue, Aug 03, 2004 at 06:56:10PM +0200, Marc Kleine-Budde wrote:
> Hmm - After winding though about 4-5 layers[1]....this function calls
> the svctable.faulthandler, only if a xnthread is active.

> [1] From there fault to the handling.....
> 
> 1)
> rthal catches all HW faults from adeos:
> adeos_catch_event(trapnr,&rthal_trap_fault);
> 
> 2)
> rthal_trap_fault calls rthal_trap_handler if in RT-mode
> note: rthal_trap_handler is a functionpointer
> 
> 3)
> rthal_trap_handler is set by rthal_set_trap_handler
> 
> 4)
> during xnarch_init():
> rthal_set_trap_handler(&xnarch_trap_fault);
> 
> 5)
> in xnarch_trap_fault():
> xnpod_trap_fault() is called
> 
> 6)
> xnpod_trap_fault() finally calls the faulthandler defined in the
> svctable
> 
> note: steps 1, 3, 4 are done during system-setup, not runtime
> 
> during faul-runtime its:
> adeos -> rthal_trap_fault -> xnarch_trap_fault -> xnpod_trap_fault -> 
> svctable.faulthandler

I thought you would have said sth to this....

The exception of the faults is very labyrinthic :) It goes through
several 'real' layers. This was needed in RTAI 3.0 and 3.1 but I think
If somebody has enough/too much :) time, it should be redesigned...
xnpod_trap_fault should be directly registered within the Adeos layer.

At least something for someones TODO list :)

just my 2 cent - Marc

-- 
#!/bin/sh
set - `type $0` 'tr "[a-zA-Z]" "[n-za-mN-ZA-M]"';while [ "$2" != "" ];do \
shift;done; echo 'frq -a -rc '`echo "$0"| $1 `'>$UBZR/.`rpub signature|'`\
echo $1|$1`'`;rpub "Jr ner fvtangher bs obet. Erfvfgnapr vf shgvyr!"'|$1|sh

Reply via email to