64-Bit Architecture

QNX SDP 7.0 supports 64-bit versions of ARM (aarch64) and x86 (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 new _NTO_PF_64BIT bit in the flags of the procfs_info or debug_process_t structure. For more information, see the Processes chapter of the QNX Neutrino Programmer's Guide, as well as the section on DCMD_PROC_INFO in the appendix on the /procfs filesystem in The QNX Neutrino Cookbook.