Go to main content

man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: July 2017
 
 

ddi_dma_buf_setup(9F)

Name

ddi_dma_buf_setup - easier DMA setup for use with buffer structures

Synopsis

#include <sys/ddi.h>
#include <sys/sunddi.h>

int ddi_dma_buf_setup(dev_info_t *dip, struct buf *bp, uint_t flags,
     int (*waitfp) (caddr_t),, caddr_t arg, ddi_dma_lim_t *lim, 
     ddi_dma_handle_t *handlep);

Interface Level

This interface is obsolete. ddi_dma_buf_bind_handle(9F) should be used instead.

Parameters

dip

A pointer to the device's dev_info structure.

bp

A pointer to a system buffer structure (see buf(9S)).

flags

Flags that go into a ddi_dma_req structure (see ddi_dma_req(9S)).

waitfp

The address of a function to call back later if resources aren't available now. The special function addresses DDI_DMA_SLEEP and DDI_DMA_DONTWAIT (see ddi_dma_req(9S)) are taken to mean, respectively, wait until resources are available, or do not wait at all and do not schedule a callback.

arg

Argument to be passed to a callback function, if such a function is specified.

lim

A pointer to a DMA limits structure for this device (see ddi_dma_lim_sparc(9S) or ddi_dma_lim_x86(9S)). If this pointer is NULL, a default set of DMA limits is assumed.

handlep

Pointer to a DMA handle. See ddi_dma_setup(9F) for a discussion of handle.

Description

The ddi_dma_buf_setup() function is an interface to ddi_dma_setup(9F). It uses its arguments to construct an appropriate ddi_dma_req structure and calls ddi_dma_setup() with it.

Return Values

See ddi_dma_setup(9F) for the possible return values for this function.

Context

The ddi_dma_buf_setup() function can be called from user, interrupt, or kernel context, except when waitfp is set to DDI_DMA_SLEEP, in which case it cannot be called from interrupt context.

Attributes

See attributes(5) for a description of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Stability Level
Obsolete

See Also

attributes(5), ddi_dma_addr_setup(9F), ddi_dma_free(9F), ddi_dma_htoc(9F), ddi_dma_setup(9F), ddi_dma_sync(9F), physio(9F), buf(9S), ddi_dma_lim_sparc(9S), ddi_dma_lim_x86(9S), ddi_dma_req(9S)

Writing Device Drivers for Oracle Solaris 11.3