32- and 64-Bit Architectures

QNX Neutrino 7.0 or later supports 32- and 64-bit versions of ARM (armle-v7 and aarch64le) and x86 (x86 and x86_64).

The 64-bit architecture provides a 64-bit virtual address space seen by programs. Current hardware supports only 48 bits; the top bits have to be a sign extension of bit 48, and the QNX Neutrino implementation allows user programs to use 39 bits.

The difference between 32- and 64-bit architectures is basically an artifact of compiling, but there are different versions of the kernel for 32- and 64-bit architectures (similar to ARM vs ARMv7 in earlier releases).

To determine whether a process is for a 64-bit architecture, use the DCMD_PROC_INFO devctl() command and look for the _NTO_PF_64BIT bit in the flags of the procfs_info or debug_process_t structure. For more information, see the Processes chapter in this guide, as well as the section on DCMD_PROC_INFO in the appendix on the /procfs filesystem in The QNX Neutrino Cookbook.