| Current File : //usr/share/man/man9f/ddi_mem_rep_put8.9f |
'\" te
.\" Copyright (c) 2005, Sun Microsystems, Inc. All Rights Reserved
.TH ddi_mem_rep_put8 9F "1 Nov 2005" "SunOS 5.11" "Kernel Functions for Drivers"
.SH NAME
ddi_mem_rep_put8, ddi_mem_rep_put16, ddi_mem_rep_put32, ddi_mem_rep_put64, ddi_mem_rep_putb, ddi_mem_rep_putl, ddi_mem_rep_putll, ddi_mem_rep_putw \- write multiple data to mapped device in the memory space or allocated DMA memory
.SH SYNOPSIS
.LP
.nf
#include <sys/ddi.h>
#include <sys/sunddi.h>
\fBvoid\fR \fBddi_mem_rep_put8\fR(\fBddi_acc_handle_t\fR \fIhandle\fR, \fBuint8_t *\fR\fIhost_addr\fR,
\fBuint8_t *\fR\fIdev_addr\fR, \fBsize_t\fR \fIrepcount\fR, \fBuint_t\fR \fIflags\fR);
.fi
.LP
.nf
\fBvoid\fR \fBddi_mem_rep_put16\fR(\fBddi_acc_handle_t\fR \fIhandle\fR, \fBuint16_t *\fR\fIhost_addr\fR,
\fBuint16_t *\fR\fIdev_addr\fR, \fBsize_t\fR \fIrepcount\fR, \fBuint_t\fR \fIflags\fR);
.fi
.LP
.nf
\fBvoid\fR \fBddi_mem_rep_put32\fR(\fBddi_acc_handle_t\fR \fIhandle\fR, \fBuint32_t *\fR\fIhost_addr\fR,
\fBuint32_t *\fR\fIdev_addr\fR, \fBsize_t\fR \fIrepcount\fR, \fBuint_t\fR \fIflags\fR);
.fi
.LP
.nf
\fBvoid\fR \fBddi_mem_rep_put64\fR(\fBddi_acc_handle_t\fR \fIhandle\fR, \fBuint64_t *\fR\fIhost_addr\fR,
\fBuint64_t *\fR\fIdev_addr\fR, \fBsize_t\fR \fIrepcount\fR, \fBuint_t\fR \fIflags\fR);
.fi
.SH INTERFACE LEVEL
.sp
.LP
Solaris DDI specific (Solaris DDI). The \fBddi_mem_rep_put8()\fR, \fBddi_mem_rep_put16()\fR, \fBddi_mem_rep_put32()\fR, \fBddi_mem_rep_put64()\fR, \fBddi_mem_rep_putb()\fR, \fBddi_mem_rep_putl()\fR, \fBddi_mem_rep_putll()\fR, and \fBddi_mem_rep_putw()\fR functions are obsolete. The \fBddi_rep_put8\fR(9F) function replaces \fBddi_mem_rep_put8()\fR. The \fBddi_rep_put16\fR(9F) function replaces \fBddi_mem_rep_put16()\fR. The \fBddi_rep_put32\fR(9F) function replaces \fBddi_mem_rep_put32()\fR. The \fBddi_rep_put64\fR(9F) function replaces \fBddi_mem_rep_put64()\fR. The \fBddi_rep_put8\fR(9F) function replaces \fBddi_mem_rep_putb()\fR. The \fBddi_rep_put32\fR(9F) function replaces \fBddi_mem_rep_putl()\fR. The \fBddi_rep_put64\fR(9F) function replaces \fBddi_mem_rep_putll()\fR. The \fBddi_rep_put16\fR(9F) function replaces \fBddi_mem_rep_putw()\fR.
.SH PARAMETERS
.sp
.ne 2
.mk
.na
\fB\fIhandle\fR\fR
.ad
.RS 13n
.rt
The data access handle returned from setup calls, such as \fBddi_regs_map_setup\fR(9F).
.RE
.sp
.ne 2
.mk
.na
\fB\fIhost_addr\fR\fR
.ad
.RS 13n
.rt
Base host address.
.RE
.sp
.ne 2
.mk
.na
\fB\fIdev_addr\fR\fR
.ad
.RS 13n
.rt
Base device address.
.RE
.sp
.ne 2
.mk
.na
\fB\fIrepcount\fR\fR
.ad
.RS 13n
.rt
Number of data accesses to perform.
.RE
.sp
.ne 2
.mk
.na
\fB\fIflags\fR\fR
.ad
.RS 13n
.rt
Device address flags:
.sp
.ne 2
.mk
.na
\fB\fBDDI_DEV_AUTOINCR\fR\fR
.ad
.RS 23n
.rt
Automatically increment the device address, \fIdev_addr\fR, during data accesses.
.RE
.sp
.ne 2
.mk
.na
\fB\fBDDI_DEV_NO_AUTOINCR\fR\fR
.ad
.RS 23n
.rt
Do not advance the device address, \fIdev_addr\fR, during data accesses.
.RE
.RE
.SH DESCRIPTION
.sp
.LP
These routines generate multiple writes to memory space or allocated \fBDMA \fRmemory. \fIrepcount\fR data is copied from the host address, \fIhost_addr\fR, to the device address, \fIdev_addr\fR, in memory space. For each input datum, the \fBddi_mem_rep_put8()\fR, \fBddi_mem_rep_put16()\fR, \fBddi_mem_rep_put32()\fR, and \fBddi_mem_rep_put64()\fR functions write 8 bits, 16 bits, 32 bits and 64 bits of data, respectively, to the device address. \fIdev_addr\fR and \fIhost_addr\fR must be aligned to the datum boundary described by the function.
.sp
.LP
Each individual datum will automatically be translated to maintain a consistent view between the host and the device based on the encoded information in the data access handle. The translation may involve byte-swapping if the host and the device have incompatible endian characteristics.
.sp
.LP
When the \fIflags\fR argument is set to \fBDDI_DEV_AUTOINCR\fR, these functions will treat the device address, \fIdev_addr\fR, as a memory buffer location on the device and increments its address on the next input datum. However, when the \fIflags\fR argument is set to \fBDDI_DEV_NO_AUTOINCR\fR, the same device address will be used for every datum access. For example, this flag may be useful when writing from a data register.
.SH CONTEXT
.sp
.LP
These functions can be called from user, kernel, or interrupt context.
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i)
lw(2.75i) |lw(2.75i)
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
Interface StabilityObsolete
.TE
.SH SEE ALSO
.sp
.LP
\fBddi_mem_get8\fR(9F), \fBddi_mem_put8\fR(9F), \fBddi_mem_rep_get8\fR(9F), \fBddi_regs_map_setup\fR(9F), \fBddi_rep_put8\fR(9F), \fBddi_rep_put16\fR(9F), \fBddi_rep_put32\fR(9F), \fBddi_rep_put64\fR(9F), \fBddi_device_acc_attr\fR(9S)