QNX SDP 8.0.4 Documentation Update

Release notes for documentation updates associated with the QNX SDP 8.0.4 release. This document lists the reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, quote the relevant reference number.


Date of this edition: April 08, 2026

Updates and fixed issues

This update includes enhancements, fixed issues, and clarifications to the following QNX SDP documents:

General

Description Reference Number
The references to the rcvid data type have been changed from int to rcvid_t on the following pages:
  • the resmgr_context_t entry in C Library Reference
  • the resmgr_context_t internal context block and time1.c sections of the Getting Started with the QNX OS guide
3008063
  • The OS documentation no longer describes Bound Multiprocessing (BMP) as a third option to Symmetric Multiprocessing (SMP) and Asymmetric Multiprocessing (AMP), but rather as a special case of SMP. The glossary entry for BMP mentions that it's a QNX OS feature that lets you bind threads to specific CPUs in an SMP environment.
  • There are new glossary entries for the multicore processing and system on a chip (SoC) topics in the documentation.
  • The explanation about BMP in relation to SMP has been clarified in the Multicore Processing chapter of the Programmer's Guide.
2981475
Several documents now use the term thread persona to describe the differences in a thread’s behavior when it makes a kernel call. 3001824
The Security Features Overview chapter now includes a section that describes fundamental system security, and the chapters for developers and system integrators start with a checklist of security-related recommendations. 3003494
New Abilities and Abilities Reference chapters have been added to improve the organization and visibility of the security policy abilities information in the System Security guide. 3013103
The version for the WiFi driver (wpa_supplicant-2.11) has been updated to 2.11. 2998477

Software Development Platform

This section includes updates pertaining to the QNX SDP.

System Architecture

Description Reference Number
In the System Architecture guide, the The vmstat files section now cautions that /proc/vm/stats doesn't have a defined size and doesn't support incremental or repeated reads. 2999317
From the io-blk.so page, the obsolete spacenotifydelay option has been removed. 3020290
The QNX OS Microkernel chapter has a new Thread personas section which discusses the two modes a thread can run in. These personas help describe the change in privilege, address space access, and stack use that occurs when a thread makes a kernel call. 2996604
The Memory accounting section now starts with an overview of the counters that provide statistics about system and process memory usage. 3009159
The CPU offlining section has been updated to clarify the required order of operations when a thread takes a CPU offline, and to describe which library calls that thread is allowed to make while running at high priority. 3017523

OS Components and Operations

The following OS components are updated:

Building Embedded Systems
Description Reference Number
From the Kernel callout categories page, the Timer and clock section has been deleted. 3003307
In the System Page chapter, in the description of the intrinfo area, the information about INTR_* flags has been updated, and information on which specific registers are populated when the INTR_GENFLAG_LOAD_* flags are in use has been added. 3006363, 3006364, 3012336
SMMUMAN User's Guide
Description Reference Number
All the references to QNX SMMUMAN for Safety or binaries with the suffix -safety have been removed from the documentation. 2996683
System Analysis Toolkit (SAT) User's Guide
Description Reference Number
The description about the The static rules filter now explains that sometimes multiple external classes map to the same internal class. For example, when a client subscribes to the _NTO_TRACE_THREAD event class, it can also receive events from the _NTO_TRACE_PROCESS class. 3000556
The guide has been updated to accurately show and describe the SAT components used by QNX OS 8.0. The diagrams now show one ring of buffers per CPU, and the accompanying text states the relevant implementation details, including the new number of per-CPU buffers (8), the new buffer size (128 KB), and how events are captured independently on the different CPUs. The text also mentions how only the registered trace-logging process can allocate or free the trace buffers. 2999176
Technotes
Description Jira reference
The description for the PF flag in the Reading a Shutdown Message page has been updated. 2996673
User's Guide
Description Jira reference
The Sample buildfile page has been updated. 2948026

Sensor Framework

The following guides have been updated:

Sensor Framework Libraries
Description Reference Number
The Compiler defences section now includes the requirement to include libstdc++.so in the IFS to support sanitizer options. 3007372

System Security Guide

The following guides have been updated:

Security for System Integrators
Description Reference Number
The Process manager abilities section now has a sub-section that discusses how each process has two separate sets of process manager abilities: root and non-root. 2992016
Security Policies
Description Reference Number
The start of the Security Features chapter now includes a discussion and detailed illustration of the security policy development process. 3005121
Fortified System Functions
Description Reference Number
A new section has been added that discusses the requirement to include relevant standard header files in your source code when fortified functions are used. 2999160
Using mkqnximage to Display Security Features
Description Reference Number
References to Persistent Publish/Subscribe (PPS) service, which is discontinued, have been removed. 3002529

Utilities and Libraries

The following utilities, functions, and structures have been updated:

C Library Reference
Description Reference Number
The description for the RLIMIT_NPROC flag in the plimit() reference has been updated to mention that the limit applies to the current number of child processes, rather than the number of potential processes. 3014185
The thread safety status has been corrected to 'No' for the resmgr_ocb(), resmgr_iofuncs(), and resmgr_ocb_iofuncs() functions. 3014120
The documentation for the timer_settime() and TimerSettime() functions has been updated to explain that adjustments to CLOCK_REALTIME don't affect expiry times for timers based on this clock, and that setting the TIMER_TOLERANCE flag means that the TIMER_ABSTIME flag is ignored. 3012175
In the size argument of the shmctl() function, a note has been added that the function will be called again to extend existing objects. 3008746
In the dlopen() function, the description has been updated to mention that the library search path specified by the ld utility for the -rpath option is used to search for immediate dependencies only. 3005425
The description for the RLIMIT_FREEMEM flag has been updated for the prlimit() function to describe QNX-specific implementation. 2997471
The error listings for the pthread_spin_init(), pthread_spin_lock(), and pthread_spin_trylock() functions have been corrected. 2997314
In the sigevent function, the order of sigevent field descriptions for SIGEV_SIGNAL_CODE cases has been fixed and the signatures and descriptions of the SIGEV_SIGNAL_CODE_INIT(), SIGEV_SIGNAL_CODE_INT_INIT(), and SIGEV_SIGNAL_CODE_PTR_INIT() macro functions are updated. 2995085
On the ,the new EBADRUNMASK error has been documented under the errno entry. 2995345
A new dispatch_set_hash_size() API has been documented. 2991888
A new documentation page has been created for the wcsdup() API. 3009188
A new documentation page has been created for the toascii() API. 3009187
The example code for the wctomb() API has been updated. 3006349
The following APIs have been updated:
  • mlock_r()
  • mlockall_r()
  • msync_r()
  • munlock_r()
  • munlockall_r()
  • munmap_r()
  • mprotect()
3002429, 3002622, 3002630, 3002631, 3002633, 3002635, 3002628
The sigwait() and sigwaitinfo() entries now explain the preferred design in which certain threads call these functions and indicate which signals they are handling while all other threads block these same signals. 3019845
The documentation for the MsgQueueReceive() API has been added. 3017894
In the printf() API page, the description for the p conversion type specifier has been corrected for accuracy. 3017224
In the _NTO_TRACE_GET*(), _NTO_TRACE_SET*() entry, an explanation about the external and internal classes has been added, and the argument names for the macro functions, the event number adjustments for the _NTO_TRACE_THREAD class, and the code sample have been fixed to be accurate for QNX SDP 8.0. 3000556
The inaccurate and misleading caveats statement has been removed from the pthread_setspecific() function, and the description has been updated to mention that calling the function from a destructor with a non-NULL value can cause lost storage. 3001307
The TraceEvent() API description now explains that in the ring mode the kernel attempts to store all the events for the threads running on a given CPU in the ring of buffers reserved for that CPU (without flushing the buffers). 2999176
In the procmgr_ability_create() entry, a change to how the function behaves after the initial call has been documented. Error information has been added as well. 3001746
The system() entry now states that commands executed via system() do not inherit the SIG_IGN and SIG_DFL signal actions from the calling process (instead, they are reset to the default signal action). 3000420
The TraceEvent() entry now includes information about the 32-bit counter seq_buff_num, which is part of the tracebuf_t structure. 2999002
The TimerDelegate () entry now states that the function with the _NTO_TIMER_DELEGATE action stops the timer hardware of the owner (delegator) CPU, and the example now includes code that places the CPUs offline. 3007900, 3007903
The SCHED_PROCESSORS_STATUS control command has been added to the SchedCtl(), SchedCtl_r() entry. An Examples section has also been added. 3006969
The sigqueue() reference has been updated to describe the order of delivery for realtime and nonrealtime signals. The description of the incorrect ENOSYS error code has also been removed. 3021034
Devctl and Ioctl Commands
Description Reference Number
From the About page, the RND* section has been removed as it is obsolete. 2994268
PAM Reference
Description Reference Number
In the pam_secpol section, a statement that the module has a default configuration file has been removed. 3014935
Utilities Reference
Description Reference Number
The description for the ring mode has been updated for the tracelogger entry. 3016642
In the Commonly Used Environment Variables page, a description has been included for the MM_CLEANUP_PRIO flag. 2988440
The descriptions for the new mm_cleanup_prio and mmflags fields have been added to the procnto* entry. 2970866
The description for the wpa_supplicant-version entry has been updated to include legacy.so. 3001151
In the use entry, the description for the q has been added. 2993222
The description for the pted entry has been updated. 2995663
From the io-blk.so page, the obsolete fse-period, fse-size, and fsn-device options have been removed. The FSNOTIFY_PREFIX environment variable, which replaces fsn-device, has been described in the fsevmgr manager reference. 3014836
The mkqnximage entry now has a section that discusses building an image to act as a QNX hypervisor host or guest. 2988041
The pidin entry no longer refers to the /dev/mem discontinued device. 2995084

The sysctl entry now documents the qnx.max_stack_size variable, which allows you to set stack size of the threads that io-sock creates.

2986720
The g++, gcc entry now correctly states that you can use qcc or q++ with the -V option to invoke the C (qcc) or C+ (q++) compiler. It also includes revised and additional examples. 3008029

Getting started with the documentation

To access the updated documents, perform the following quick steps:
  1. Refer to https://blackberry.qnx.com/en.
  2. Under the Developers tab, select Product Documentation. The roadmap page contains links (WebHelp) to the set of books that accompany the OS.
For a short tutorial, check the Quickstart Guide, then refer to the other documents (QNX OS System Architecture, Programmer's Guide, C Library Reference, Utilities Reference, and so on).
Page updated: