In addition to general code cleanup to support the data model changes for LP64, driver writers have several driver-specific issues to consider:
In the 64-bit environment, new common access functions that use fixed-width data types have been provided so that drivers can clearly specify the size of the data they are requesting. Drivers that use the old common access routines (for example, ddi_getw(9F)) will need to be changed to use the fixed-width equivalent (ddi_get16(9F)).
A driver may need to be updated to support data sharing between 64-bit drivers and 32-bit applications. The ioctl(9E), devmap(9E), and mmap(9E) entry points must be written so that the driver can determine whether the data model of the application is the same as that of the kernel. If the data models differ, data structures may need to be adjusted. This usually means converting a 64-bit driver to accept a 32-bit application structure.