[ Previous | Next | Contents | Home | Search ]
AIX Version 4.3 Kernel and Subsystems Technical Reference, Volume 1

d_slave Kernel Service


Initializes a block-mode direct memory access (DMA) transfer for a DMA slave.


#include <sys/types.h>
#include <sys/errno.h>
#include <sys/dma.h>
#include <sys/xmem.h>
void d_slave 
(channel_id, flags, baddr, 
count, dp)
int channel_id;
int flags;
caddr_t baddr;
size_t count;
struct xmem *dp;


channel_id Specifies the DMA channel identifier returned by the d_init service.
flags Control the DMA transfer. The /usr/include/sys/dma.h file contains valid values for these flags.
baddr Designates the address of the memory buffer.
count Specifies the length of the transfer in bytes.
dp Designates the address of the cross-memory descriptor.


The d_slave kernel service sets up the DMA channel specified by the channel_id parameter to perform a block-mode DMA transfer for a DMA slave. The flags parameter controls the operation of the d_slave service. "Understanding Direct Memory Access (DMA)" in AIX Kernel Extensions and Device Support Programming Concepts describes DMA slaves and masters.

The d_slave service does not initiate the DMA transfer. The device initiates all DMA memory references. The d_slave service sets up the system address-generation hardware to indicate the specified buffer.

The d_slave service supports three different buffer locations:

The d_unmask and d_mask services typically do not need to be called for the DMA slave transfers. The DMA channel is automatically enabled by the d_slave service and automatically disabled by the hardware when the last byte specified by the count parameter is transferred.

The d_slave service performs machine-dependent processing, including the following tasks:

Execution Environment

The d_slave kernel service can be called from either the process or interrupt environment.

Return Values

The d_slave service has no return values.

Implementation Specifics

The d_slave kernel service is part of Base Operating System (BOS) Runtime.

Related Information

The d_complete kernel service, d_init kernel service, d_mask kernel service, d_unmask kernel service, xmattach kernel service.

I/O Kernel Services and Understanding Direct Memory Access (DMA) Transfers in AIX Version 4.3 Kernel Extensions and Device Support Programming Concepts.

[ Previous | Next | Contents | Home | Search ]