vec_init Kernel Service

Purpose

Defines a virtual interrupt handler.

Syntax

#include <sys/types.h>
#include <sys/errno.h>

int vec_init ( level,  routine,  arg)
int level;
void (*routine) ();
int arg;

Parameters

Item Description
level Specifies the virtual interrupt level. This level value is not used by the vec_init kernel service and implies no relative priority. However, it is returned with the sublevel assigned for the registered virtual interrupt handler.
routine Identifies the routine to call when a virtual interrupt occurs on a given interrupt sublevel.
arg Specifies a value that is passed to the virtual interrupt handler.

Description

The vec_init kernel service is not part of the base kernel but provided by the device queue management kernel extension. This queue management kernel extension must be loaded into the kernel before loading any kernel extensions referencing these services.

The vec_init kernel service associates a virtual interrupt handler with a level and sublevel. This service searches the available sublevels to find the first unused one. The routine and arg parameters are used to initialize the open sublevel. The vec_init kernel service then returns the level and assigned sublevel.

There is a maximum number of available sublevels. If this number is exceeded, the vec_init service halts the system. This service should be called to initialize a virtual interrupt before any device queues using the virtual interrupt are created.

The level parameter is not used by the vec_init service. It is provided for compatibility reasons only. However, its value is passed back intact with the sublevel.

Execution Environment

The vec_init kernel service can be called from the process environment only.

Return Values

The vec_init kernel service returns a value that identifies the virtual interrupt level and assigned sublevel. The low-order 8 bits of this value specify the sublevel, and the high-order 8 bits specify the level. The attchq kernel service uses the same format. This level value is the same value as that supplied by the level parameter.