QNX Neutrino 6.5.0 Service Pack 1

New entries

InterruptStatus()
Determine whether or not interrupts are enabled
procmgr_event_notify_add(), procmgr_event_notify_delete()
Add or remove a request to be notified of system-wide events.
round(), roundf(), roundl()
Round a number to the closest integer

Changed content

alloca()
The documentation now describes how the builtin and non-builtin versions of this function behave.
chroot()
This entry now points out that the path argument can include a network root (e.g., /net/node_name).
dladdr()
This function now provides the full path (instead of the base name) of the object, in order to match the behavior on other OSs.
dlopen()
For security reasons, the use of LD_DEBUG_OUTPUT with setuid binaries is disabled.
fcntl()
This function indicates an error of ENOSYS if the filesystem doesn't support the operation.
flock()
This function indicates an error of ENOSYS if the filesystem doesn't support file locks.
flockfile(), ftrylockfile(), funlockfile()
We've clarified the relationship between these functions.
_intr_v86()
We've expanded the list of possible errors.
lockf()
This function indicates an error of ENOSYS if the filesystem doesn't support file locks.
mmap()
  • We've clarified the circumstances under which this function can give an error of ENXIO.
  • The calling process must be running as root in order to map physical memory.
mmap_device_io()
On non-x86 systems, the calling process must be running as root in order to map device I/O memory.
mmap_device_memory()
The calling process must be running as root in order to map device memory.
mount()
Note that updating a mount resets the other mount flags to their default values.
mount_parse_generic_args()
We've added implied to the list of options that this function processes.
MsgCurrent()
Calling MsgCurrent() on the rcvid pertaining to a low-priority client no longer causes a priority boost given to your thread by a blocked high-priority thread to be lost.
nanospin_calibrate()
In order to make startup faster and reduce jitter, nanospin_calibrate() now tries to read the calibration data from values stored in the system page. The startup for some boards includes an -o option that you can use to specify the calibration data (100 loop time and overhead) to store in the system page.
pci_attach_device()
This entry now describes the PCI_USE_MSI and PCI_USE_MSIX flags and includes an example that shows how you can detect whether or not a device supports MSI or MSI-X.
pci_read_config(), pci_read_config8(), pci_read_config16(), pci_read_config32()
Note that the pci_read_config*() functions can return inconsistent data if another process is extensively using the PCI bus.
posix_spawn(), posix_spawn_file_actions_addclose(), posix_spawn_file_actions_adddup2(), posix_spawn_file_actions_destroy(), posix_spawn_file_actions_init(), posix_spawnattr_addpartid(), posix_spawnattr_addpartition(), posix_spawnattr_destroy(), posix_spawnattr_getcred(), posix_spawnattr_getflags(), posix_spawnattr_getnode(), posix_spawnattr_getpartid(), posix_spawnattr_getpgroup(), posix_spawnattr_getrunmask(), posix_spawnattr_getschedparam(), posix_spawnattr_getschedpolicy(), posix_spawnattr_getsigdefault(), posix_spawnattr_getsigignore(), posix_spawnattr_getsigmask(), posix_spawnattr_getstackmax(), posix_spawnattr_getxflags(), posix_spawnattr_init(), posix_spawnattr_setcred(), posix_spawnattr_setflags(), posix_spawnattr_setnode(), posix_spawnattr_setpgroup(), posix_spawnattr_setrunmask(), posix_spawnattr_setschedparam(), posix_spawnattr_setschedpolicy(), posix_spawnattr_setsigdefault(), posix_spawnattr_setsigignore(), posix_spawnattr_setsigmask(), posix_spawnattr_setstackmax(), posix_spawnattr_setxflags(), posix_spawnp()
We've revised and expanded the documentation for these functions.
pthread_setname_np()
_NTO_THREAD_NAME_MAX is defined in <sys/neutrino.h>.
readdir()
Note that you can use ftw() as a different way to walk a file tree.
resmgr_attach()
This function indicates an error of EBUSY if an internal resource isn't available.
shm_ctl(), shm_ctl_special()
We've documented the SHMCTL_ISADMA and SHMCTL_NOX64K flags.
spawn(), spawnl(), spawnle(), spawnlp(), spawnlpe(), spawnp(), spawnv(), spawnve(), spawnvp(), spawnvpe()
If you use the P_WAIT flag, you need to use a status macro such as WEXITSTATUS() to extract information from value returned by the spawn*() functions; see "Status macros" in the documentation for wait().
straddstr()
We've added more details about how this function handles null characters.

Errata

ChannelCreate()
Typically your program calls ChannelCreate() only once, and all threads block on that channel. We've corrected a call to MsgReplyv() in one of the examples.
clock_getcpuclockid(), clock_gettime(), ClockId(), ClockId_r(), ClockTime(), ClockTime_r()
We've corrected the description of these functions.
dircntl()
We've corrected the description of what this function returns.
dirname()
If you pass a string of "/usr/" to dirname(), the string returned is "/", not "usr".
execl(), execle(), execlp(), execlpe(), execv(), execve(), execvp(), execvpe()
We've corrected the spelling of EACCES.
ftruncate(), ftruncate64()
These functions can indicate an error of ENOMEM if there wasn't enough memory to change the size of a shared memory object.
ftw()
We've corrected the spelling of EACCES.
getrlimit()
RLIMIT_FSIZE and RLIMIT_MEMLOCK aren't supported.
getsockopt()
We've corrected the call to memset() in the example.
iofunc_check_access()
We've corrected the spelling of EACCES.
iofunc_stat_default()
This function returns -1, to indicate to the resource manager library that it should return one part from the ctp->iov structure (see resmgr_context_t) to the client.
mem_offset(), mem_offset64()
We've corrected the description of these functions. You must specify NOFD for the fd argument; to get the offset and length of a mapped typed memory block, use posix_mem_offset() or posix_mem_offset64().
mount_parse_generic_args()
We've corrected the names of the _MOUNT_NOATIME, _MOUNT_NOCREAT, and _MOUNT_NOSUID flags.
mq_open()
You need to include <fcntl.h> if you want to use O_CREAT, O_EXCL, or O_NONBLOCK when you call this function.
munmap()
The ability to munmap() just a part of an area mapped with mmap() was introduced in QNX Neutrino 6.3.2.
nftw(), nftw64()
  • We've corrected the spelling of EACCES.
  • We've corrected the name of the <ftw.h> header file.
posix_spawn(), posix_spawn_file_actions_addclose(), posix_spawn_file_actions_adddup2(), posix_spawn_file_actions_destroy(), posix_spawn_file_actions_init(), posix_spawnattr_addpartid(), posix_spawnattr_addpartition(), posix_spawnattr_destroy(), posix_spawnattr_getcred(), posix_spawnattr_getflags(), posix_spawnattr_getnode(), posix_spawnattr_getpartid(), posix_spawnattr_getpgroup(), posix_spawnattr_getrunmask(), posix_spawnattr_getschedparam(), posix_spawnattr_getschedpolicy(), posix_spawnattr_getsigdefault(), posix_spawnattr_getsigignore(), posix_spawnattr_getsigmask(), posix_spawnattr_getstackmax(), posix_spawnattr_getxflags(), posix_spawnattr_init(), posix_spawnattr_setcred(), posix_spawnattr_setflags(), posix_spawnattr_setnode(), posix_spawnattr_setpgroup(), posix_spawnattr_setrunmask(), posix_spawnattr_setschedparam(), posix_spawnattr_setschedpolicy(), posix_spawnattr_setsigdefault(), posix_spawnattr_setsigignore(), posix_spawnattr_setsigmask(), posix_spawnattr_setstackmax(), posix_spawnattr_setxflags(), posix_spawnp()
  • We've corrected the synopsis for posix_spawn() and posix_spawnp(), and corrected the list of reasons why these functions might indicate an error of EINVAL.
  • These functions return error codes instead of setting errno.
  • These functions are declared in <spawn.h>.
  • It isn't safe to call posix_spawn() or posix_spawnp() from an interrupt handler.
posix_typed_mem_open()
You need to include <fcntl.h> in order to get the definitions of O_RDONLY, etc.
pthread_getcpuclockid()
We've corrected the description of this function.
rename()
We've corrected the spelling of EACCES.
SchedGet()
This routine returns an actual scheduling policy value, not SCHED_ADJTOHEAD or SCHED_ADJTOTAIL.
sem_open()
You need to include <fcntl.h> if you want to use O_CREAT or O_EXCL when you call this function.
sem_unlink()
We've corrected the spelling of EACCES.
setdomainame()
It isn't safe to call this function from an interrupt handler.
setrlimit()
RLIMIT_FSIZE and RLIMIT_MEMLOCK aren't supported.
shm_ctl_special()
Calling shm_ctl_special() with a special argument of 0 isn't equivalent to calling shm_ctl().
spawn(), spawnl(), spawnle(), spawnlp(), spawnlpe(), spawnp(), spawnv(), spawnve(), spawnvp(), spawnvpe()
We've corrected the spelling of EACCES.
stat()
S_IFMT is a mask for the file-type bits in st_mode.
SyncTypeCreate()
We've corrected the name of the _sync_attr structure.
tmpfile()
We've corrected the spelling of EACCES.
trace_logf(), trace_nlogf(), trace_vnlogf()
It isn't safe to call these functions from an interrupt handler if the formatting codes or parameters include floating-point elements.
wcscpy(), wcsncpy(), wcstoul(), wcstoull(), wcsxfrm(), wprintf(), wscanf()
We've corrected the synopsis.