Using Kernel Extensions for 64–bit Processes

Kernel extensions in a 64-bit kernel run in 64-bit mode. Therefore, only 64-bit kernel extensions can run on AIX® 6.1 and later. You can program kernel extensions for both 32-bit and 64-bit applications.

System calls can be made available to 32- or 64-bit processes, selectively. If an application invokes a system call that is not exported to processes running in the current mode, the call fails.

Because only 64-bit kernel extensions can run on AIX® 6.1 and later, the interaction between kernel extensions and user address space is simplified. To examine and manipulate user address space, use kernel services such as the as_att64, as_det64, as_puth64, as_seth64, and as_getsrval64 kernel services.

Address space remapping is no longer necessary for kernel extensions running on AIX® 6.1 and later. 64-bit pointers or 64-bit data values of the long type can be used directly by the kernel without manipulation because the kernel always runs in 64-bit mode. The 64-bit kernel can also handle 64-bit addresses without mapping them to 32-bit values.

32-bit: Do not use the as_att, as_det, as_seth, as_geth, as_puth, and as_getsrval kernel services; they are obsolete. The as_remap64, as_unremap64, get64bitparm, and saveretval64 kernel services are also obsolete.