All PIO access by a driver must use Solaris DDI access functions from the following families of routines:
ddi_getX
ddi_putX
ddi_rep_getX
ddi_rep_putX
The driver should not directly access the mapped registers by the address that is returned from ddi_regs_map_setup(9F). Avoid the ddi_peek(9F) and ddi_poke(9F) routines because these routines do not use access handles.
The DDI access mechanism is important because DDI access provides an opportunity to control how data is read into the kernel.