| Current File : //usr/share/man/man9f/ddi_device_zero.9f |
'\" te
.\" Copyright (c) 1996, Sun Microsystems, Inc All Rights Reserved
.TH ddi_device_zero 9F "25 Sep 1996" "SunOS 5.11" "Kernel Functions for Drivers"
.SH NAME
ddi_device_zero \- zero fill the device
.SH SYNOPSIS
.LP
.nf
#include <sys/ddi.h>
#include <sys/sunddi.h>
\fBint\fR \fBddi_device_zero\fR(\fBddi_acc_handle_t\fR \fIhandle\fR, \fBcaddr_t\fR \fIdev_addr\fR,
\fBsize_t\fR \fIbytecount\fR, \fBssize_t\fR \fIdev_advcnt\fR, \fBuint_t\fR \fIdev_datasz\fR);
.fi
.SH INTERFACE LEVEL
.sp
.LP
Solaris DDI specific (Solaris DDI).
.SH PARAMETERS
.sp
.ne 2
.mk
.na
\fB\fIhandle\fR \fR
.ad
.RS 15n
.rt
The data access handle returned from setup calls, such as \fBddi_regs_map_setup\fR(9F).
.RE
.sp
.ne 2
.mk
.na
\fB\fIdev_addr\fR \fR
.ad
.RS 15n
.rt
Beginning of the device address.
.RE
.sp
.ne 2
.mk
.na
\fB\fIbytecount\fR \fR
.ad
.RS 15n
.rt
Number of bytes to zero.
.RE
.sp
.ne 2
.mk
.na
\fB\fIdev_advcnt\fR \fR
.ad
.RS 15n
.rt
Number of \fIdev_datasz\fR units to advance on every access.
.RE
.sp
.ne 2
.mk
.na
\fB\fIdev_datasz\fR \fR
.ad
.RS 15n
.rt
The size of each data word. Possible values are defined as:
.sp
.ne 2
.mk
.na
\fB\fBDDI_DATA_SZ01_ACC\fR \fR
.ad
.RS 22n
.rt
1 byte data size
.RE
.sp
.ne 2
.mk
.na
\fB\fBDDI_DATA_SZ02_ACC\fR \fR
.ad
.RS 22n
.rt
2 bytes data size
.RE
.sp
.ne 2
.mk
.na
\fB\fBDDI_DATA_SZ04_ACC\fR \fR
.ad
.RS 22n
.rt
4 bytes data size
.RE
.sp
.ne 2
.mk
.na
\fB\fBDDI_DATA_SZ08_ACC\fR \fR
.ad
.RS 22n
.rt
8 bytes data size
.RE
.RE
.SH DESCRIPTION
.sp
.LP
\fBddi_device_zero()\fR function fills the given, \fIbytecount\fR, number of byte of zeroes to the device register or memory.
.sp
.LP
The \fIdev_advcnt\fR argument determines the value of the device address, \fIdev_addr\fR, on each access. A value of \fB0\fR will use the same device address, \fIdev_addr\fR, on every access. A positive value increments the device address in the next access while a negative value decrements the address. The device address is incremented and decremented in \fIdev_datasz\fR units.
.sp
.LP
The \fIdev_datasz\fR argument determines the size of data word on each access.
.SH RETURN VALUES
.sp
.LP
\fBddi_device_zero()\fR returns:
.sp
.ne 2
.mk
.na
\fB\fBDDI_SUCCESS\fR \fR
.ad
.RS 16n
.rt
Successfully zeroed the data.
.RE
.sp
.ne 2
.mk
.na
\fB\fBDDI_FAILURE\fR \fR
.ad
.RS 16n
.rt
The byte count is not a multiple of \fIdev_datasz\fR.
.RE
.SH CONTEXT
.sp
.LP
\fBddi_device_zero()\fR can be called from user, kernel, or interrupt context.
.SH SEE ALSO
.sp
.LP
\fBddi_regs_map_free\fR(9F), \fBddi_regs_map_setup\fR(9F)
.sp
.LP
\fIWriting Device Drivers for Oracle Solaris 11.2\fR