将内核扩展用于 64–bit 进程
在 64 位内核中,内核扩展以 64 位方式运行。 因此,只有 64 位内核扩展可以在 AIX® 6.1 和更高版本上运行。 您可以对 32 位和 64 位应用程序的内核扩展进行编程。
可以选择性地将系统调用提供给 32 位或 64 位进程。 如果应用程序调用未导出到以当前方式运行的进程的系统调用,那么该调用将失败。
由于只能在 AIX® 6.1 和更高版本上运行 64 位内核扩展,因此内核扩展与用户地址空间之间的交互已简化。 要检查和处理用户地址空间,请使用内核服务,例如 as_att64, as_det64, as_puth64, as_seth64和 as_getsrval64 内核服务。
在 AIX® 6.1 和更高版本上运行的内核扩展不再需要地址空间重新映射。 长 类型的 64 位指针或 64 位数据值可以由内核直接使用而不需要进行操作,因为内核始终以 64 位方式运行。 64 位内核还可以处理 64 位地址,而不会将其映射到 32 位值。
32 位: 请不要使用 as_att, as_det, as_seth, as_geth, as_puth和 as_getsrval 内核服务; 这些服务已过时。 此外, as_remap64, as_unremap64, get64bitparm和 saveretval64 内核服务也已过时。