NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <exec/chTrap.h>int svSysTrapHandlerConnect(unsigned int trapnumber, KnLapDesc * newhandler);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
CORE
The svSysTrapHandler() calls are used to manage system trap handlers. These calls are restricted to SUPERVISOR threads.
The trapnumber parameter identifies the trap number to which the handler must be connected.
Trap handlers are specified in the form of LAP descriptors (see svLapCreate(2K) ).
When a thread executes a hardware trap instruction, the system invokes the trap handler connected to the trap number, specified by the trap instruction (see lapInvoke(2K) ).
The argument of the LAP trap handler is a pointer to a KnSysTrapDesc data structure. This structure has the following fields:
KnThreadCtx *threadCtx ; unsigned int trapNumber ;
The threadCtx field gives access to the register context of the thread saved immediatly after it performed the hardware trap instruction. This context is processor-dependent and may be modified by the trap handler.
The trapNumber field is a processor-dependent trap number.
The svSysTrapHandlerConnect() system call duplicates the LAP descriptor pointed to by newhandler into the LAP descriptor associated with trapNumber .
The svSysTrapHandlerDisconnect() system call clears the LAP descriptor associated with trapNumber . If curhandler is not equal to K_CONNECTED_LAP , it must point to a LAP descriptor identical to the LAP descriptor currently installed.
The svSysTrapHandlerGetConnected() system call copies the lap descriptor associated with trapNumber at the location pointed to by curhandler .
On successful completion, the calls return K_OK . Otherwise, a negative error code is returned.
svSysTrapHandlerConnect() is called and there is already a valid LAP descriptor installed for the trap trapnumber .
trapnumber is invalid. The curhandler LAP descriptor specified to svSysTrapHandlerDisconnect() is not equal to K_CONNECTED_LAP and does not match the LAP descriptor currently installed.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO