scsi_dmafree(9F)
NAME
scsi_dmaget, scsi_dmafree - SCSI dma utility routines
SYNOPSIS
#include <sys/scsi/scsi.h>
struct scsi_pkt *scsi_dmaget(struct scsi_pkt *pkt, opaque_t
dmatoken, int(*callback)(void));
void scsi_dmafree(struct scsi_pkt *pkt);
INTERFACE LEVEL
These interfaces are obsolete. Use scsi_init_pkt(9F) instead
of scsi_dmaget(). Use scsi_destroy_pkt(9F) instead of
scsi_dmafree().
PARAMETERS
pkt A pointer to a scsi_pkt(9S) structure.
dmatoken
Pointer to an implementation dependent object
callback
Pointer to a callback function, or NULL_FUNC or
SLEEP_FUNC.
DESCRIPTION
scsi_dmaget() allocates DMA resources for an already allo-
cated SCSI packet. pkt is a pointer to the previously allo-
cated SCSI packet (see scsi_pktalloc(9F)).
dmatoken is a pointer to an implementation dependent object
which defines the length, direction, and address of the data
transfer associated with this SCSI packet (command). The
dmatoken must be a pointer to a buf(9S) structure. If dmato-
ken is NULL, no resources are allocated.
callback indicates what scsi_dmaget() should do when
resources are not available:
NULL_FUNC
Do not wait for resources. Return a NULL pointer.
SLEEP_FUNC
Wait indefinitely for resources.
Other Values
callback points to a function which is called when
resources may have become available. callback must
return either 0 (indicating that it attempted to allo-
cate resources but failed to do so again), in which
case it is put back on a list to be called again
later, or 1 indicating either success in allocating
resources or indicating that it no longer cares for a
retry.
scsi_dmafree() frees the DMA resources associated with the
SCSI packet. The packet itself remains allocated.
RETURN VALUES
scsi_dmaget() returns a pointer to a scsi_pkt on success. It
returns NULL if resources are not available.
CONTEXT
If callback is SLEEP_FUNC, then this routine may only be
called from user-level code. Otherwise, it may be called
from either user or interrupt level. The callback function
may not block or call routines that block.
scsi_dmafree() can be called from user or interrupt context.
ATTRIBUTES
See attributes(5) for a description of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Stability Level | Obsolete |
|_____________________________|_____________________________|
SEE ALSO
attributes(5), scsi_pktalloc(9F), scsi_pktfree(9F),
scsi_resalloc(9F), scsi_resfree(9F), buf(9S), scsi_pkt(9S)
Writing Device Drivers
NOTES
The scsi_dmaget() and scsi_dmafree() functions are obsolete
and will be discontinued in a future release. These func-
tions have been replaced by, respectively, scsi_init_pkt(9F)
and scsi_destroy_pkt(9F).
Man(1) output converted with
man2html