Servicio de kernel
Finalidad
Planifica una función que se debe llamar después de un intervalo especificado.
Sintaxis
Parámetros
| Elemento | Descripción |
|---|---|
| func | Indica la función que se debe llamar. |
| arg | Indica el parámetro que se debe suministrar a la función especificada por el parámetro func . |
| tictacs | Especifica el número de marcas de temporizador que deben producirse antes de que se llame a la función especificada por el parámetro func . Se pueden producir muchas marcas de temporizador por segundo. La etiqueta HZ que se encuentra en el archivo /usr/include/sys/m_param.h se puede utilizar para determinar el número de marcas por segundo. |
Descripción
El servicio tiempo de espera no forma parte del kernel. Sin embargo, es un servicio de compatibilidad que se proporciona en la biblioteca libsys.a . Para utilizar el servicio timeout , se debe enlazar una extensión de kernel con la biblioteca libsys.a . El servicio tiempo de espera , como los servicios de kernel asociados untimeout y timeoutcf, se puede enlazar y utilizar sólo en la parte marcada de una extensión de kernel o la mitad inferior de un controlador de dispositivo porque estos servicios utilizan la inhabilitación de interrupción para la serialización.
El servicio tiempo de espera planifica la función señalada por el parámetro func que se debe llamar con el parámetro arg después del número de marcas de temporizador especificadas por el parámetro Garrapatas . Utilice la rutina timeoutcf para asignar suficientes elementos de reclamo para el número máximo de salidas de tiempo activas simultáneas que espera.
Llamar al servicio de tiempo de espera sin asignar suficientes entradas de tabla de reclamo puede dar lugar a un pánico de kernel debido a la falta de elementos de tabla inmovilizados. El valor de una marca de temporizador depende de la capacidad del hardware. Puede utilizar la subrutina restimer para determinar la granularidad mínima.
No se permiten varias solicitudes tiempo de espera pendientes con los mismos parámetros func y arg .
El parámetro func
La función especificada por el parámetro func se debe declarar como se indica a continuación:
void func (arg)
void *arg;Entorno de ejecución
La rutina tiempo de espera se puede llamar desde el entorno proceso o interrupción .
La función especificada por el parámetro func se llama en el entorno de interrupción. Por lo tanto, debe seguir los convenios para los manejadores de interrupciones.
Valores de retorno
El servicio tiempo de espera no tiene valores de retorno.