DDI_DEVICE_ZERO(9F) Kernel Functions for Drivers DDI_DEVICE_ZERO(9F)

ddi_device_zero - zero fill the device

#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);

illumos DDI specific (illumos DDI).

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

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.

ddi_device_zero() returns:

DDI_SUCCESS

Successfully zeroed the data.

DDI_FAILURE

The byte count is not a multiple of dev_datasz.

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

ddi_regs_map_free(9F), ddi_regs_map_setup(9F)

Writing Device Drivers

September 25, 1996 OmniOS