Servicio de kernel eeh_clear

Finalidad

Este servicio desregistra una ranura para una función EEH y elimina los recursos asignados por el servicio de kernel de eeh_init o eeh_init_multifunc .

Sintaxis

#include <sys/eeh.h>

void eeh_clear(handle)
eeh_handle_t handle;

Parámetros

Elemento Descripción
descriptor de contexto Manejador EEH obtenido de los servicios de kernel deeeh_init o eeh_init_multifunc

Descripción

Controladores De Función Única: Este servicio inhabilita la función EEH en la ranura y libera su eeh_handle.

Controladores multifunción: Para un controlador de adaptador multifunción, este servicio elimina el controlador de una lista de controladores registrados bajo el mismo bus padre. Este servicio también inhabilita la función EEH en la ranura si este es el último controlador en anular el registro y el estado de la ranura es NORMAL.

Todos los controladores de dispositivo deben llamar a eh_clear antes de que se eliminen del sistema, de modo que no haya conflictos de conexión en caliente. Un adaptador posterior puede fallar en eeh_init_multifunc () en la ranura si el servicio de kernel de eh_clear no ha borrado los controladores de dispositivo anteriores en esa ranura. Un controlador puede anular el registro a la hora de desconfigurar/descargar. El kernel comprueba el estado de la ranura cuando se llama a este servicio. Si el estado de la ranura no es NORMAL ni DEAD, eh_clear duerme hasta que el estado vuelva a uno de ellos.

La macro EEH_CLEAR(handle) se proporciona para que los controladores de dispositivo llamen a este servicio. Este servicio se llama mediante un puntero de función en el descriptor de contexto de EEH.

Entorno de ejecución

Este servicio de kernel sólo se puede llamar desde el entorno de proceso.

Valores de retorno

Este servicio no tiene valores de retorno.