Provides a means for cleaning up queue element-related resources when a pending queue element is eliminated from the queue.
#include <sys/types.h> #include <sys/errno.h> #include <sys/deviceq.h>
void cancel (ptr) struct req_qe *ptr;
|Specifies the address of the queue element.
The kernel calls the cancel routine to clean up resources associated with a queue element. Each device queue can have a cancel routine. This routine is optional and must be specified when the device queue is created with the creatq service.
The cancel routine is called when a pending queue element is eliminated from the queue. This occurs when the path is destroyed or when the canclq service is called. The device manager should unpin any data and detach any cross-memory descriptor.
Any operations started as a result of examining the queue with the peekq service must be stopped.
The cancel routine is also called when a queue is destroyed to get rid of any pending or active queue elements.
The cancel-queue-element routine can be called from the process environment only.
The cancel routine is part of the Device Queue Management Kernel extension.