ienable(2)
NAME
ienable − enable a user-level interrupt routine
SYNOPSIS
#include <sys/types.h>
#include <sys/iconnect.h>
int ienable (vector)
int vector;
DESCRIPTION
A process must call ienable(2) to enable a user-level interrupt routine connection. The calling process should have already made an iconnect(2) system service call to define the user-level interrupt routine connection.
The vector parameter should be the same interrupt vector number that was specified on the previous ICON_CONN command to iconnect(2).
ienable(2) will put the calling process into a blocked state in the kernel, with all signals ignored, and will then enable the process’s interrupt connection. The process will no longer execute at normal program level, but will only execute at interrupt level in user mode, in the user-level interrupt routine when the connected interrupt becomes active.
The calling process will remain blocked in the kernel until another process makes an iconnect(2) system service call with the ICON_DISC command, specifying the interrupt vector that the blocked process is currently connected to. The uistat(1) program may be used to disconnect the process in this manner. See the uistat(1) man page for more details.
For more information on user-level interrupt routines, see the iconnect(2) man page.
RETURN VALUE
Upon successful completion, a value of zero is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
ERRORS
If any of the following conditions occur, then ienable(2) will return -1 and set errno to the corresponding value:
[ENOTCONN] The process has not previously made an iconnect(2) call to define a user-level interrupt routine connection for the specified vector.
[EBADSPACE] The process is atached to a shared memory region that is bound to local memory. See iconnect(2) RESTRICTIONS for more information on this error.
SEE ALSO
CX/UX Programmer’s Reference Manual