Go to main content

man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

ddi_device_zero(9F)

Name

ddi_device_zero - zero fill the device

Synopsis

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

int ddi_device_zero(ddi_acc_handle_t handle, caddr_t dev_addr, 
     size_t bytecount, ssize_t dev_advcnt, uint_t dev_datasz);

Interface Level

Solaris DDI specific (Solaris DDI).

Parameters

handle

The data access handle returned from setup calls, such as ddi_regs_map_setup(9F).

dev_addr

Beginning of the device address.

bytecount

Number of bytes to zero.

dev_advcnt

Number of dev_datasz units to advance on every access.

dev_datasz

The size of each data word. Possible values are defined as:

DDI_DATA_SZ01_ACC

1 byte data size

DDI_DATA_SZ02_ACC

2 bytes data size

DDI_DATA_SZ04_ACC

4 bytes data size

DDI_DATA_SZ08_ACC

8 bytes data size

Description

ddi_device_zero() function fills the given, bytecount, number of byte of zeroes to the device register or memory.

The dev_advcnt argument determines the value of the device address, dev_addr, on each access. A value of 0 will use the same device address, dev_addr, 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 dev_datasz units.

The dev_datasz argument determines the size of data word on each access.

Return Values

ddi_device_zero() returns:

DDI_SUCCESS

Successfully zeroed the data.

DDI_FAILURE

The byte count is not a multiple of dev_datasz.

Context

ddi_device_zero() can be called from user, kernel, or interrupt context.

See Also

ddi_regs_map_free(9F), ddi_regs_map_setup(9F)

Writing Device Drivers in Oracle Solaris 11.4