Servicio de kernel d_unmap_slave

Finalidad

Desasigna recursos asignados anteriormente en una llamada de d_map_slave .

Sintaxis

#include <sys/dma.h>
int d_unmap_slave (*handle)
struct d_handle *handle;

Parámetros

Elemento Descripción
descriptor de contexto Indica el descriptor de contexto exclusivo devuelto por el servicio de kernel de d_map_init .

Descripción

El servicio de kernel de d_unmap_slave desasigna los recursos asignados anteriormente en una llamada d_map_slave , inhabilita el canal DMA físico y devuelve información de estado y error tras la transferencia DMA. El servicio de kernel de d_unmap_slave no es un servicio de kernel exportado, sino una rutina de programa de utilidad específica de bus determinada por el servicio de kernel de d_map_init y proporcionada al llamante a través de la estructura d_handle .

Nota: Puede utilizar la macro D_UNMAP_ESCLAVO proporcionada en el archivo /usr/include/sys/dma.h para codificar llamadas al servicio de kernel d_unmap_esclavo . Si no es así, debe asegurarse de que el puntero de función d_unmap_slave no seaNULL antes de intentar llamar. No todas las plataformas requieren el servicio de descorrelación.

El controlador de dispositivo debe llamar a d_unmap_slave cuando la E/S se haya completado con una correlación anterior mediante el servicio de kernel de d_map_slave .

Nota: El kernel de d_unmap_slave se debe emparejar con una llamada d_map_slave anterior. No se da soporte a varias transferencias DMA de trabajadores pendientes. Este servicio de kernel presupone que no hay DMA en progreso en el canal afectado y desasigna la correlación de canal actual.

Valores de retorno

Elemento Descripción
DMA_SUCC Indica una transferencia satisfactoria. El controlador DMA no ha presentado ningún error y se ha alcanzado el Recuento de terminales.
DMA_TC_NOTREACHED Indica una transferencia parcial satisfactoria. El controlador DMA ha informado del Recuento de terminales alcanzado para la transferencia prevista establecida por la llamada d_map_slave . Los dispositivos de bloques consideran esto un erro; sin embargo, para dispositivos de longitud variable esto puede no ser un error.
DMA_FAIL Indica que la transferencia ha fallado. El controlador DMA ha informado de un error. El controlador de dispositivo asume que la transferencia no ha sido satisfactoria.