scsi_dmaget(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