QNX® SDP 8.0.1 Documentation Update

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


Date of this edition: August 16, 2024

Updates and fixed issues

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

General

Description Jira reference
We've removed the references to discontinued thread states such as STATE_WAITCTX, STATE_WAITTHREAD, and STATE_STACK. We've also removed the references to their related kernel events. 2943968, 2945193
We've added a new section that describes how to migrate io-sock networking drivers with PTP to QNX SDP 8.0.1 io-sock. 2925944
We've replaced the inaccurate term thread affinity with processor affinity to describe the association of a thread with a cluster of processors. 2962615
We've updated the Glossary and added several new terms relevant for QNX SDP 8.0, and spelled out the keyphrases before each acronym to make the terms easier to find within the alphabetical ordering. We've also updated the documentation to remove unconscious bias. 2878294, 2956365
We've revised the thread state transition diagram, and discussion for the READY, RUNNING, STOPPED, and NANOSLEEP thread states to reflect QNX SDP 8.0. 2951226
We've renamed the topic Thread affinity to Processor affinity, clusters, runmasks, and inherit masks. We've rewritten it to explain how runmasks can be set for existing or newly created threads. 2958833
We've updated the Memory management topic of the System Architecture Guide to describe dynamic memory behavior with Virtual Memory Manager (VMM). 2961947
We've added the Performance Tuning User's Guide. 2936153
  • We've added License checking to the following utilities:
    • coreinfo
    • disimage
    • dumpefs
    • dumpifs
    • use
2964241
We've removed all the instances of the /dev/tymem path. 2950165

QNX Momentics IDE User's Guide

Description Jira reference
We've removed the -auxbase-strip option from the References section. 2961191
We've added the following pages in the IDE User's Guide:
  • Formatting user events with the System Profiler
  • Updating the IDE
331227
We've updated a note on the Supported target types page. 2875449
We've fixed the breadcrumbs in the search for the QNX® Momentics IDE User's Guide. 2951525
We've updated the sample code for handling interrupts in the Writing a resource manager chapter. 2951744

Software Development Platform

System Architecture

Description Jira reference
We've added a note that the default action is always performed for handling signals that can't be blocked or caught, such as SIGKILL and SIGSTOP. 2951785
We've improved the Server boost topic to explain better why a server sometimes must pick one thread among many to boost in priority. 2951993
We've added a new topic, External code invoked by the scheduler to describe the external code used by the scheduler, including callouts and tracing code. 2939788

OS Components and Operations

The following OS components are updated:

Building Embedded Systems
Description Jira reference
We've removed the following deprecated functions from the Startup Library chapter:
  • armv_cache
  • armv_pte
  • as_set_checker
  • init_nanospin
  • pcnet_reset
  • tulip_reset
2953513
We’ve added the zero[1] and addr_off variables in the The startup header chapter. 2953606
Device Publishers Developer's Guide
Description Jira reference
We've updated the following:
  • Replaced the Persistent Publish/Subscribe (PPS) service with the Resource Manager Publisher/Subscriber (RMPS) service.
  • Deprecated the mmcsdpub and cdpub device publishers.
  • Removed the -e option for the usblauncher_otg command.
2962381
High Availability Framework Developer's Guide
Description Jira reference
We've edited the text of the attachprefix argument in the following functions:
  • ham_action_log()
  • ham_action_fail_log()
2963480
We've added the ham_action_fail_remove() function. 2958838
We've removed the deprecated ham_action_control(), ham_condition_control(), and ham_entity_control() functions. 2958724
High-Performance Networking Stack (io-sock) User's Guide
Description Jira reference
The Starting io-sock and Driver Management chapter now describes how to configure applications to use an alternative stack. 2959849
We've added the extensions to Berkeley Packet Filtering (BPF) ioctl() commands that support sending multiple packets on one API call in the Packet Filtering page. 2926538
Performance Tuning User's Guide
Description Jira reference
We've revised the instructions for implementing PTP in networking drivers to reflect that 64-bit timestamps are now supported. We've revised instructions for adding PTP to a driver and a new PTP Module Library API reference. 2961412
We've added information on the following methods for improving networking performance:
  • Improving throughput by enabling the TCP ACK threshold settings.
  • Scaling the network interface driver framework (iflib).
2961537, 2958938
System Analysis Toolkit (SAT) User's Guide
Description Jira reference
We've clarified the summaries of the following tracing event classes:
  • _NTO_TRACE_SETCLASSPID
  • _NTO_TRACE_SETCLASSTID
  • _NTO_TRACE_SETEVENTPID
  • _NTO_TRACE_SETEVENTTID
2965063
Technotes
Description Jira reference
We've included instructions for creating application code to perform the mounting in the Manually mounting an in-memory IFS section. This is useful if you can’t use the mount or mount_ifs utilities (as they are not safety certified). 2960829

Programming

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

Programmer's Guide
Description Jira reference
  • We've removed the text for the _NTO_TCTL_IO and _NTO_TCTL_IO_PRIV commands.
  • We’ve also removed the caution warning since the preferred method for requesting an I/O privilege level is to use _NTO_TCTL_IO_LEVEL command which requires the additional usage of the _NTO_TCTL_IO_LEVEL_INHERIT flag.
2958898
We've added a new topic, Thread displacement on multicore systems to describe the thread scheduling scenarios in which displacement will and won't occur. We've also explained how some running threads might have lower priorities than some ready threads. 2939780

System Security Guide

Description Jira reference
We've added error code information to the secpol_transition_type() documentation. 2959117
We've added a section to the “Security Features for Developers” chapter that discusses permission checking. It recommends treating read and write permissions as equivalent to low and high privileges when performing checks. 2933021
We've clarified when is the -fstack-protector-strong compiler option implicitly applied in the discussion of compiler defenses in the Security Features for Developers chapter. 2959861

Utilities and Libraries

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

Utilities Reference
Description Jira reference
We've added the -m and -G options and removed the -v option from the slogger2 utility. 2962948
We’ve updated the default value to 0 for the nto-inherit-env extension in the GNU debugger (gdb). 2959062
We've removed the io utility. 2958275
We've added the -p n option to the server monitor utility. 2950437
We've added the qlicense utility. 2948226
We've updated the description for the -M option in the tracelogger utility. 2955095
We've added the strongSwan utility. 2925944
We’ve added the -V verbosity option in the slog2info utility. 2963524
We've updated the bpf utility to include a discussion and example code of multi-packet writes. 2926538
We've included pages for the following utilities, which are ported from FreeBSD:
  • etherswitchcfg
  • jexec
  • jls
2959893
We've updated the ChannelCreate() function to say that the _NTO_CHF_INHERIT_RUNMASK flag causes a runmask replacement to happen, instead of the receiver (server) thread being further restricted in terms of which processors it can run on. 2958833
We've updated the mkxfs entry to recommend the use of the image-generating utilities dedicated to specific filesystem types. 2956444
We've corrected the documentation to describe the slogger2 -U option by suggesting that supplementary group IDs (gids) can be specified. The only proper form for this option's argument is: -U uid:gid. The use message for this utility correctly describes this option. 2930150
We've improved the descriptions of the login and logout utilities for clarity and accuracy. 2956444
We've documented the following option in the procnto entry:
  • -iu - Specifies how the system responds to an unexpected interrupt; ignores it (-iu), or goes into a Design Safe State (-i~u). The current default behavior is to ignore the unexpected interrupt.
2949626
We've updated the following utilities to reference OpenBSD/OpenSSH documentation, not NetBSD:
  • /etc/ssh/moduli
  • scp
  • sftp-server
  • sftp
  • ssh-add
  • ssh-agent
  • ssh-keygen
  • ssh-keyscan
  • ssh-keysign
  • ssh
  • ~/.ssh/ssh_config, /etc/ssh/ssh_config
  • sshd
  • /etc/ssh/sshd_config
2922038
We've updated the table that describes the command-line options for the /proc/config file in the procnto entry. 2948004
We've removed the following discontinued options from the procnto entry:
  • -c
  • -f*
  • -mx
  • -m~x
  • -p
  • -s
  • -t
2958246
We've updated the text for the -l filename option in the slog2info utility. 2963951
We've removed the following deprecated entries:
  • tsort
  • sort (host)
2964240
We've updated the gnu versions and the supported language standards for the q++, qcc entry. 2964075
We've updated the startup-* options entry to ensure that the -c option does not accept user defined cluster names with a leading underscore as those are reserved as QNX defined. For now, the list includes the following cluster names:
  • _all
  • _cpu-num
2953297
C Library Reference
Description Jira reference
We have added two new kernel calls in the following functions:
  • CacheControl
  • ChannelCtl
  • ConnectDupFd
  • MsgQueueClose
  • MsgQueueCtl
  • MsgQueueOpen
  • MsgQueueReceive
  • MsgQueueSend
  • SyncBarrierWait
  • SyncRWLock
  • TimerDelegate(), TimerDelegate_r()
2950367, 2947878, 2964866
We've removed the following events and classes:

Events

  • _NTO_TRACE_SYS_IPI
  • __KER_SCHED_WAYPOINT
  • __KER_CACHE_FLUSH
  • __KER_CHANCON_ATTR
  • __KER_THREAD_DESTROYALL

Classes

  • _NTO_TRACE_INTENTER
  • _NTO_TRACE_INTEXIT
  • _NTO_TRACE_INT_HANDLER_ENTER
  • _NTO_TRACE_INT_HANDLER_EXIT
2949981
We’ve updated the Examples section for the call_once() function. 2951804
We’ve updated the description for the EFAULT error in the Errors section for the dupfd_getinfo() function. 2957396
We’ve updated the list to include the ENXIO error in the Errors section for the fork() function. 2957677
  • We’ve added a new RLIMIT_SHM_HANDLES_NP resource in the following functions:
    • getrlimit(), getrlimit64()
    • setrlimit(), setrlimit64()
    • prlimit(), prlimit64()
  • We've updated the list to include the EAGAIN error in the shm_create_handle() function.
2952059
We’ve updated the Returns section of the initstate() function. 2961009
We’ve updated the list to include the EBADF and ENOSYS errors in the Errors section in the login_tty() function. 2957288
We’ve updated the description for the ETXTBUSY error in the Errors section for the posix_spawn(), posix_spawnp() function. 2947893
We’ve removed the EAGAIN error from the Errors section for the pthread_setconccurency() function. 2955952
We’ve updated the description in the Arguments section for the rguments function. 2951905
We've removed the ESRCH error and updated the description of the EPERM error in the SignalAction(), SignalAction_r() function. 2959316
We’ve added the _S_TRUST_EXT mode and S_ISTRUSTED(m) macro in the struct stat structure. 2959946
We've added a note to the ThreadCtl(), ThreadCtl_r(), ThreadCtlExt(), ThreadCtlExt_r() thread. 2952840
We’ve updated the text for the tv_nsec variable in the Descriptions section for the Timespec structure. 2952487
We’ve removed the ENOSYS error from the Errors section of the utimensat() function. 2961363
We’ve updated the flags argument to reflect the upper limit of the registrations in the dupfd_register() function. 2942272
We’ve updated the errors list to include the EINVAL in the Errors section for the pathmgr_link() function. 2953037
We've updated the description for the ENOTSUP error in the posix_spawn(), posix_spawnp() function. 2946467
We've added a code example to demonstrate how the MsgReceiveEvent() function must be called before the procmgr_value_notify_add() function. We've updated the description for the procmgr_event_notify_add() function also. 2941837
We've added the SyncTypeDestroy() function to replace the deprecated SyncDestroy() function. 2959460
We've added a clarification that the notify argument can take the SIGEV_UNBLOCK type of the SIGEV struct structure only for the timertimeout() entry. 2944437
We've updated the mmap(), mem_offset(), and posix_mem_offset() arguments to explain how the input address and offset don't have to be aligned to page boundaries but to each other. We've also updated:
  • The mmap() entry - added an important warning to MAP_PHYS to advise readers that direct mapping of physical memory is extremely dangerous, and a note to MAP_LAZY to inform readers that lazy mapping is disabled in this release.
  • The posix_mem_offset() function - added a reference to mention how the QNX OS implementation doesn't follow POSIX behavior.
  • The mem_offset() and posix_memoffset() functions - added descriptions to explain how they report the length of physical contiguous memory.
2953820
We've updated the mlock(), mlockall(), munlock(), and munlockall() functions:
  • Updated the MS_ASYNC flag description to say that it behaves the same as MS_SYNC, which is allowed by POSIX.
  • Removed the descriptions and references to the discontinued _NTO_TCTL_LOW_LATENCY, _NTO_TCTL_RCM_GET_AND_SET, and _NTO_TCTL_SHR_MUTEX commands in the ThreadCtl() function.
  • Mentioned that the n and ~n options do nothing because lazy stack allocation is disabled in the procnto entry.
2961947
We've updated the pidin entry to say that the _NTO_CHF_INHERIT_RUNMASK flag causes a runmask replacement, instead of the receiver (server) thread being further restricted in terms of which processors it can run on. 2958833
We've added a note that the default action is always performed for handling signals that can't be blocked or caught, such as SIGKILL and SIGSTOP. 2951785
We've corrected the errors list for the iofunc_read_default() function. 2947560
We've added the shm_open_handle_pid() and mmap_handle_pid() functions. 2947438
Devctl and Ioctl Commands
Description Jira reference
We've added a new BIOC* chapter and pages for BIOCGMMWRITE and BIOCSMMWRITE. 2926538

Migrating to QNX OS 8.0

Description Jira reference
We've revised the instructions for implementing PTP in networking drivers to reflect that 64-bit timestamps are now supported, including revised instructions for adding PTP to a driver and a new PTP Module Library API reference. 2961412
We've added the following information to the Graphics and Screen section of the Migration Guide:

QNX SDP 8 does not include FreeType 1.x. Applications need to migrate to FreeType 2.x.

The required headers are in the freetype2 folder. The following example common.mk entry adds the freetype2 headers:

EXTRA_INCVPATH += $(addsuffix /freetype2,$(USE_ROOT_INCLUDE))

2951494

QNX Toolkit for Visual Studio Code

Description Jira reference
We've updated the name of the extension as Trace Viewer for VSCode. 2963538
We've updated the Quickstart guide to include the following sections:
  • Prerequisites
  • Installation
  • Getting Started
2964897

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 (System Architecture, QNX Neutrino Programmer's Guide, C Library Reference, Utilities Reference, and so on).
Page updated: