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