Date of this edition: August 11, 2010
Target OS: This development platform produces software that's compatible with targets that are running QNX® Neutrino® 6.4.0.
Host OS: You can install this package as a self-hosted QNX Neutrino® development system, or on one of the following development hosts:
You can also install the QNX Neutrino RTOS as a virtual machine:
If you find problems with any virtualization environment, please let us know.
![]() |
|
![]() |
If you installed an alpha version of this software, uninstall it before installing the production version. |
Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.
For the most up-to-date version of these release notes, go to our website, www.qnx.com, log into your myQNX account, and then go to the Download area.
![]() |
Make sure that Plug and Play OS is disabled in the BIOS before you run QNX Neutrino self-hosted. |
The QNX Software Development Platform bundles the QNX Momentics Tool Suite, the QNX Neutrino RTOS, or both, as shown below:
| On Linux and Windows: | On QNX Neutrino: |
|---|---|
| QNX Momentics Tool Suite | QNX Momentics Tool Suite QNX Neutrino RTOS |
The QNX Momentics Tool Suite includes the following:
| On Linux and Windows: | On QNX Neutrino: |
|---|---|
| Command-line tools Libraries, documentation, and other development components Integrated Development Environment |
Command-line tools Libraries, documentation, and other development components |
We no longer include the IDE on self-hosted QNX Neutrino systems.
The key improvements in 6.4 include:
For more details, see the following sections:
For more information about the changes to the audio drivers, see “What's new: Audio device drivers (deva-*),” below.
We no longer support ARMBE, MIPSBE, MIPSLE, or Intel 386 targets. (Ref# 58190, 58192, 58193)
We've made the changes described below in order to conform to PSE52, a subset of POSIX intended for realtime controllers.
Any code that explicitly references the old field names will no longer compile. You should modify those references to use a leading __ before the field name. This issue affects only the compilation of code with the latest system header files; binary compatibility isn't affected. (Ref# 46088, 46089, 46090, 51558)
In order to satisfy this requirement, we need to change the value of EALREADY; its current value is 16 (same as EBUSY), but the new (POSIX-compliant) value is 237. However, this change would cause incompatibility problems because code that currently uses EALREADY will be compiled to use the old value.
In order to allow applications to safely make the transition to the new value, we've modified <errno.h> to define the following symbolic values:
For QNX SDP 6.4.0, EALREADY is defined as EALREADY_OLD in order to allow programs by default to be compatible with existing binaries. In a future release, we'll change EALREADY to EALREADY_NEW.
You should modify your code as follows:
#if defined(EALREADY_NEW) && defined(EALREADY_OLD)
if (error == EALREADY_NEW || error == EALREADY_OLD) {
// deal with EALREADY error cases
}
#else
if (error == EALREADY) {
// deal with EALREADY error cases
}
#endif
This will ensure that the code handles EALREADY error cases from any API that returns either the old or new value of EALREADY.
The value of EALREADY_DYNAMIC is determined by a procnto option:
The default for 6.4.0 is -eo (EALREADY ==EALREADY_OLD). We'll change this in a future release so that the default is -en (EALREADY == EALREADY_NEW).
instead of in <pthread.h>. (Ref# 42977)
This change shouldn't affect any code that examines inode values, because the only meaningful operation is to compare for equality.
If your code constructs 64-bit inode numbers from 32-bit ones, you should make sure that you don't extend the sign into the top 32 bits.
You should examine all code that uses mmap(), to ensure that it uses MAP_PRIVATE if required. The most common example of code that requires this change is a call to mmap() using only MAP_ANON. You should change these calls to use MAP_PRIVATE|MAP_ANON.
![]() |
In order to provide time for you to make this change, the procnto -m~b option still implicitly sets MAP_PRIVATE if you use MAP_ANON without it. However, we might remove this transitional behavior in a future release. |
(Ref# 56889, 58977)
We now support the SH-4a 32-bit physical address model (in addition to the SH-4 29-bit model), but with restrictions. There must be sufficient RAM within the physical address range of 0 to 512 MB for the kernel to operate. The startup and kernel can now support RAM above the 512-MB boundary, but that RAM is available only to user-level processes. Ideally large memory systems will have at least 256 MB of RAM available below the 512-MB physical address boundary. (Ref# 47671)
To avoid this problem on these processors, procnto must first issue a dummy lwarx (Load Word And Reserved Indexed) command to a specific address, and then issue the dummy stwcx. to the same address. We've created a system page cpuinfo flag, PPC_CPU_STWCX_BUG, to indicate which CPUs are affected and, on those processors, adds the dummy lwarx to the context switch code. (Ref# 45538)
![]() |
Any PROT_EXEC in a 256 MB region turns off the N bit and allows code execution throughout the whole region. |
There's a new -m[~]x option to procnto that enables or disables the PROT_EXEC flag for system-allocated threads. It's enabled by default. (Ref# 58299, 58434)
The documentation doesn't yet include this change. (Ref# 62293)
QNX Neutrino has a new core networking stack that's based on NetBSD 4.0 stack. The main features include:
There are three variants of the networking manager:
![]() |
In our documentation, we use “io-pkt” to refer to all the stack variants. When you start the stack, use the appropriate variant; io-pkt isn't a symbolic link to any of them. |
We've discontinued the following:
| Instead of using: | Use: |
|---|---|
| io-net | io-pkt* |
| ipf, ipfs, ipfstat, ipmon, ipnat | pf, /etc/pf.conf, pfctl |
| lsm-ipfilter-v4.so, lsm-ipfilter-v4.so | lsm-pf-v4.so, lsm-pf-v6.so |
| lsm-sctp.so | N/A; not currently supported by io-pkt* |
| nfm-autoip.so | lsm-autoip.so |
| npm-pppmgr.so | Now included in io-pkt* |
| npm-pppoe.so | Now included in io-pkt* |
| npm-qnet.so, npm-qnet-l4_lite.so | lsm-qnet.so |
| npm-qnet-compat.so | N/A |
| npm-tcpip.so | N/A |
| npm-tcpip-v4.so, npm-tcpip-v6.so | Now included in io-pkt* |
| npm-ttcpip.so | N/A |
We also no longer ship the SRI SNMP suite or the Network DDK.
The new, related binaries include:
The other changes of note include the following:
ifconfig lo0 ip4csum tcp4csum udp4csum
With io-pkt, you control this via sysctl:
# sysctl -a | grep do_loopback_cksum net.inet.ip.do_loopback_cksum = 0 net.inet.tcp.do_loopback_cksum = 0 net.inet.udp.do_loopback_cksum = 0
(Ref# 44227)
QNX Neutrino 6.4.0 introduces the Power-safe “copy on write” filesystem. It's the default filesystem for self-hosted Neutrino systems. FFSv3 and ETFS are included in base runtime.
The new filesystems and the related utilities include:
For more information, see the Filesystems chapters in the System Architecture and the Neutrino User's Guide, as well as the entries in the Utilities Reference.
Other changes include:
The Power-Safe filesystem was designed for and is intended for traditional rotating hard disk drive media. It operates by moving the on-disk filesystem state from one stable view to another stable view using copy-on-write (COW) to relocate modified blocks. To finalize this transition, all dirty blocks involved in the new view must be committed to persistent storage, and then a new filesystem superblock/root referencing the relocated blocks is committed.
This provides power-safe robustness, because at any point in time either the old version is completely accessible or the new version is completely accessible (with no live data being overwritten in between). Thus to mount as read-write on a given device, that device must have the following properties:
or:
and:
The new binaries include:
When you want to run both GF/OpenGL ES and Photon applications, you must start io-display before starting the Photon graphics server, io-graphics. In this situation, io-graphics queries io-display for the display's settings rather than its own command-line settings.
For more information on io-display and Photon, refer to Appendix: Photon in Embedded Systems in the Photon Programmer's Guide.
![]() |
We strongly recommend that you use the Advanced Graphics layering API instead of the Photon layering API, due to increased functionality and ease of use. (Ref# 60878) |
There are two changes that were made to gcc:
You need to update your buildfiles as follows to use the new version of libc.so:
procmgr_symlink ../../proc/boot/libc.so.2 /usr/lib/ldqnx.so.2
to this:
procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2
# Include the current libc.so. It will be created as a real
# file using its internal SONAME, with libc.so being a
# symlink to it. The symlink will point to the last libc.so.*,
# so if an earlier libc is needed (e.g. libc.so.2), add it
# before libc.so.
libc.so.2
libc.so
(Ref# 58590, 59482)
![]() |
If your code calls the internal (and undocumented) _dispatch_create() function, you should modify it to call dispatch_create_channel() instead. |
The new drivers and DLLs include:
Other changes include:
The changes to the Audio DDK include:
The changes to the software PCM mixer include:
We've deprecated the drivers for Creative Sblive and Cyberpro5.
The new drivers include:
The new drivers include:
The new drivers include:
The new drivers include:
![]() |
This driver supports only PCI versions of the Micrel 8841 (1 port) or 8842 (2 port) Ethernet controllers. (Ref# 67333) |
The new binaries include:
The updates include:
The new binaries include:
We continue to work on other browser-related offerings that are planned for future releases or available separately from SDP. Please contact QNX directly for more information.
We provide a VMware image of a QNX Neutrino runtime system in target/QNX_Eval_RT.zip on the installation DVD. To install this image, do the following:
Or:
If you find problems with any virtualization environment, please post your findings in one of the forums on our Foundry27 community website.
The QNX Momentics Tool Suite features:
For more details, see the following sections:
The changes include:
-I $QNX_HOST/usr/lib/gcc-lib/powerpc-unknown-nto-qnx6.3.0/3.3.5/include
to the qcc command line. (Ref# 26109)
New utilities include:
![]() |
We don't support Python on Linux or Windows. If you need Python on these hosts, you should download it from http://www.python.org. (Ref# 60935, 60940) |
We've deprecated the following items:
In addition, the UI has been greatly improved, and profiling sessions are now saved in your workspace — and you can now compare different sessions.
For more information, see the IDE User's Guide.
This version of the IDE includes the following fixes for previously reported issues:
Severity and Description Path Resource Location
Creation Time Id
Error launching external scanner info generator (gcc -E -P -v -dD
C:/QNX640/ide4-workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c)
code_cov Unknown 1157739187750 23
In this case, the project no longer includes a warning symbol beside the project name. (Ref# 41424)
#include <iostream>
the Code Coverage tool no longer fails. (Ref# 26376; Ticket ID 70067)
Various bug fixes
The QNX Momentics Tool Suite lets you install and work with multiple versions of Neutrino (from 6.2.1 and later). Whether you're using the command line or the IDE, you can choose which version of the OS to build programs for.
![]() |
Only versions of Momentics with different medial version numbers can coexist. For example, 6.3.2 can coexist with 6.2.1, but not with 6.3.0. Coexistence with 6.2.1 is supported only on Windows hosts. |
When you install QNX Momentics, you get a set of configuration files that indicate where you've installed the software. The QNX_CONFIGURATION environment variable stores the location of the configuration files for the installed versions of Neutrino; on a self-hosted Neutrino machine, the default is /etc/qnx.
On Windows hosts, you'll find a configuration program called QWinCfg for switching between versions of QNX Momentics. You launch QWinCfg via the start menu (e.g. ).
For details on using QWinCfg, see its entry in the Utilities Reference.
If you're using the command-line tools, use the qconfig utility to configure your machine to use a specific version of Neutrino:
eval `qconfig -n "QNX Software Development Platform 6.4.0" -e`
![]() |
In the above command, you must use the “back tick” character (`), not the single quote character ('). The string that you pass to the -n option is the Installation Name field as printed by qconfig. |
This command affects only the shell in which you ran qconfig. Other windows, for example, will be unaffected. To change environments in all your windows, you can run the command in your shell-initialization script or in your .profile. You can also define separate users who use different coexisting versions.
When you start the IDE, it uses your current qconfig choice as the default version of the OS; if you haven't chosen a version, the IDE chooses an entry from the directory identified by QNX_CONFIGURATION. If you want to override the IDE's choice, you can choose the appropriate build target. (For more information, see the section “Version coexistence” in the IDE Concepts chapter of the IDE User's Guide.)
Although QNX SDP 6.4.0 no longer includes qnxinstall, you can still install QNX package (.qpr) files. The QPR format is really nothing more than a tar file. Within it are separate packages which are themselves tar files (*.qpk) and description files (*.qpm).
The *.qpm files are package manifests, XML files describing where qnxinstall should install the files. You can ignore these files.
If you untar the .qpk files, you'll notice a directory structure usually starting with a vendor name, then a package name, and then a version. Inside the version directory, you'll see a directory structure that's basically the root of the package. Just copy everything from this root to the appropriate destination directory.
If the .qpr contains more than one package, repeat this process for each.
![]() |
Experimental software is primarily provided for customers and the community to try out, and perhaps to get a glimpse of what might be in store for the future. For information about the use of experimental software, see the Commercial Software License Agreement (CSLA) or Partner Software License Agreement (PSLA) in the Licensing area of our website, http://www.qnx.com/legal/licensing/. |
The experimental items in QNX SDP 6.4.0 are:
QNX SDP 6.4.0 contains known issues in these areas:
![]() |
We're actively investigating all known issues. |
Workaround: Here are the correct instructions:
Go to the directory where you installed QNX SDP 6.4.0 and run _uninstall/qnxsdp/6.4.0/uninstaller.exe.
base_dir/_uninstall/qnxsdp/6.4.0/uninstaller.bin
Workaround: To display the text correctly, open a web browser and view the license agreement .txt files located in base_dir/install/qnxsdp/6.4.0, where base_dir is where you installed SDP.
If you uninstall 6.4.0, the uninstaller checks to see if 6.3.2 is present. If so, it moves the cleanup utility back to its original location.
./uninstaller.bin -W beanDeleteConfigDir.active="False"
If you uninstall 6.4.0, the uninstaller checks to see if 6.3.2 is present. If so, it restores uninstaller.bin.
(Ref# 58784, 60037)
Workaround: Remove the extra qconfig string from the value of QNX_CONFIGURATION.
qnx632_base_dir/_uninstall/qnx632/uninstaller.bin -W beanDeleteConfigDir.active="False"
(Ref# 56879)
It does let you boot off an IDE CDROM, but won't let you install to an IDE disk; even if the real physical storage is an IDE device, VMware presents it virtually as one of the two aforementioned devices. (Ref# 51509)
Workaround: In order to install Neutrino on a VMware VM using the BusLogic SCSI controller emulation, you must first apply a driver update. We've included this update on the installation media:
For more information on installing driver updates, see “Updating disk drivers” in the Controlling How Neutrino Starts chapter of the QNX Neutrino User's Guide.
Workaround: Open the QNX SDP Activation dialog by selecting from the Start menu, or by entering the following at the command prompt:
drive:\Program Files\QNX Software Systems\bin\qnxactivate -a
Workaround: Launch a web browser and go to http://www.qnx.com/640foryou.
For example, the problem could occur when io-pkt replies to a client and becomes WAITPAGE-blocked because the client's memory isn't faulted in. The procnto thread that's dispatched to handle it then gets blocked waiting on the address space lock of the client process, which is currently owned by a procnto thread that was already trying to satisfy a page fault request that involved talking to NFS, which can't finish because io-pkt is blocked waiting for the lock to be released. (Ref# 62483)
Workaround: Disable lazy page faulting by specifying the -mL option to procnto.
cd /net/remote_machine/tmp
find . -type f | xargs grep FAIL > report.txt
/bin/sh: cannot fork - try again
It seems to be a problem with permissions. Piping the output of xargs to less works. (Ref# 29834)
Workaround: Log in as root.
(Ref# 29440, 29380)
Workaround: Do the following:
Here's an example:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>
#include <errno.h>
void print_cwd() {
char* cwd;
char buff[PATH_MAX + 1];
buff[0]=0;
cwd = getcwd( buff, PATH_MAX + 1 );
if( cwd != NULL ) {
printf( "mycwd: My working directory is %s.\n", cwd );
} else {
printf("mycwd: getcwd returned Null\n");
}
}
int main( void )
{
char* cwd;
int rc;
char buff[PATH_MAX + 1];
printf("before running this, you should 'export DIR_KEEP_SYMLINK=1' \n");
chdir("/home/ftp");
printf("mycwd: initial cwd:\n");
print_cwd();
printf("mycwd changing chroot to /home/ftp/\n");
rc=chroot("/home/ftp/");
printf("mycwd: chroot rc=%d\n",rc);
print_cwd();
printf("mycwd: chdir to ad\n");
rc=chdir("ad");
printf("mycwd: chdir rc=%d\n",rc);
print_cwd();
return EXIT_SUCCESS;
}
Workaround: Specify this attribute in the mkifs buildfile:
[image=0x700000]
Workaround: A requirement of startup code for PowerPC-based boards is to configure the DBAT0 register. The register is currently configured for a minimum size of 256 MB. Initializing DBAT0U[BL] to the exact (power of 2) size of physical memory will eliminate this situation from producing a machine check exception. Alternatively, if possible on the particular board, disabling the assertion of TEA will also prevent the errant (speculative load for a branch not taken) machine check when this specific situation occurs. This option should be considered in the context of the entire system. Please contact QNX for specific questions about these and other workarounds.
Workaround: Press F5 to start the debug shell; it simply starts fesh just after mounting the filesystems. If you want to run a consistency check a filesystem, run /sbin/chkfsys after the shell starts.
Workaround: Run the driver in PIO mode.
Workaround: Replace the partition boot loader. From a working system, run:
dloader /dev/part pc2
where part is the device name of the partition you need to boot.
Workaround: We've added an -R command-line option to diskboot and a new “Hit space...” option, F3. Using these prevents diskboot from restarting a devb- driver. The drivers are restarted if only a CD-ROM is found. In the case of this issue, the restart means devb-ahci and devb-eide compete for the same bus, which results in a hang.
Workaround: Contact Technical Support to get a customized utility that enables the interrupts.
Workaround: Disable legacy USB support in the BIOS.
Workaround: Look for this line in the source code:
mattr.flags = PTHREAD_RECURSIVE_ENABLE;
and change it to this:
pthread_mutexattr_setrecursive( &mattr, PTHREAD_RECURSIVE_ENABLE);
Workaround: Relink any SH4 binaries that you linked with QNX Neutrino 6.2.1 or earlier.
ksh C:/QNX640/host/win32/x86/usr/bin/setupbsp installation_dir archive
(Ref# 50723)
Workaround: If you see problems (such as relocation-truncation errors) at link time when building shared objects, consider splitting your shared object into multiple shared objects.
Workaround: Rebuild the startup binary using QNX Momentics 6.4.0. The resulting startup will work with 6.2.1, 6.3, and 6.4.0.
The PCI server code allocates one byte low of PCI memory and one byte high of PCI memory and keeps these values as the range of low and high PCI memory. It does the same for I/O space. The server then scans all devices in PCI space and checks the I/O and memory ranges for each device against the stored range values to see whether they're valid or not. If a range check fails, the device is placed in the disabled state and is initialized when an application calls pci_attach_device(). The PCI server code is standard across all platforms and only the low-level, hardware specific portion changes, so there is a generic portion to all the drivers. (Ref# 50790)
(Ref# 61821)
Workaround: Relink the driver binaries on Neutrino 6.4.0. For updated source code, see Foundry 27 on our website, or contact Technical Support.
Workaround: Use the on command to adjust the priorities of the audio and graphics drivers.
(Ref# 41600)
Workaround: Use the devc-con-hid console manager instead.
Workaround: Use the devg-svga.so or devg-vesabios.so graphics driver instead, or manually edit /etc/system/config/display.conf to find a display mode that works with devg-radeon.so.
Workaround: Use phgrafx to change the driver to devg-i830.so. You can also avoid the problem by exiting to text mode, and then typing shutdown at the command prompt.
Workaround: Use the onboard graphics controller instead. If you set the onboard display as the primary controller, any installed PCI graphics cards will still be detected / trapped.
If you also have a Microsoft USB mouse connected, you get a “devh-usb.so - Unable to attach to USB device 1 (10)” message. (Ref# 41122)
Workaround: Force the driver to use speed and duplex settings that it supports (10 and 100 Mbit/s).
Workaround: We've temporarily changed the PPC version of this driver to use 64 Tx descriptors by default (on other targets, the default is 128). This may result in lost packets for high-throughput transmit operations.
Workaround: Use kill -9 instead to kill io-net.
Workaround: Fully specify the vendor ID, device ID, bus number, and device number to the driver when starting (e.g. vid=0x0bda,did=0x8150,busnum=1,devnum=2,lan=2).
Workaround: If you encounter problems with this driver, use the io-net driver devn-asix.so instead.
(Ref# 62229)
Unable to find remove id ###
may appear on the console. This error message comes from the enumerator and is not an indication of an error condition. (Ref# 61971)
In this release, umount() sets errno to EBUSY if any pending or in-progress flash filesystem operations exist on the filesystem unless you specify _MOUNT_FORCE. The same applies for scripts that call the umount utility without the -f option. This has implications for applications that expect _MOUNT_FORCE behavior but don't specify it.
The IDE contains the following known issues:
Subscription License Expired - Your QNX License could not be obtained, some QNX functionality will be disabled.
This message appears only if QNX Software Systems has a contract with you to support server-based licenses. It indicates one of the following:
(Ref# 51688)
Workaround: Close any project that you created on a remote drive before disconnecting the drive.
An exception occurred while launching help. Refer to the log for more details.
The problem could be that the IDE couldn't find your default browser. Check the web browser listed in your preferences (see ) to make sure it's a browser that's installed on your system.
If this doesn't fix the problem, check the log file; see . If you've installed the Eclipse SDK, use the Error Log view. (Ref# 29971)
Workaround: Build everything with debugging information, or use -gdwarf-2 instead of -gstabs.
Workaround: For priority labels, you need to generate the log file in wide mode.
Workaround: Close and then reopen the System Profiler perspective to restore the summary information.
Workaround: Run the process as the root. If the process is launched using qconn, then qconn should be run as root.
Workaround: Run only one Memory Analysis Tooling session and one IDE client at a time on the same target machine.
Workaround: If your program uses fork, you must disable the control thread of the Memory Analysis Tool (from the Launch Configuration, select and disable Create control thread).
In addition, it is not possible to attach to this type of process because the Memory Analysis Tool needs to run a control thread.
Copy operation error: ....\.boot Remove Permission denied
Copying of the boot image using drag-and-drop fails. (Ref# 46882; Ticket ID 77863)
Workaround: Use the new Terminal view to run the telnet session.
Workaround: You can't use a target directory of /. Instead, map boot onto /boot, lib onto /lib, and so on.
ld: cannot find -lmy_lib
This error occurs because the build that the IDE performs from the Project Settings dialog doesn't re-build any dependent projects.
Workaround: Select your project from the Projects view, right-click and build your project by selecting Build Project from the context menu. (Ref# 45556)
Workaround: Don't disable the setting Always clear before each build.
all : cc2 cc2 : cc2.o cc2.o : cc2.cpp
then the link stage doesn't work properly. (Ref# 62006)
Workaround: To avoid this, use an explicit rule for linking:
cc2 : cc2.o
$(CXX) -o cc2 cc2.o -lang-c++
Workaround: Use an explicit target in the make command.
Workaround:
To check out an existing PhAB project from CVS:
If you choose an existing location, select Use existing repository location.
Workaround: Do the following:
(Ref# 42437)
Workaround: Change the memory location to 8c004000 from 8c002000 (e.g. [image=0x8c004000]).
Workaround: If you need a mini serial port driver for the Media5200b, you can modify the one for the Lite5200B. You need to change the interrupt number to 68 and use PSC6, GPIO6.
Workaround: You need change the baud rate to the correct one below:
Workaround: Change the following code so that it doesn't disable Rx (SH_SCIF_SCSCR_RE).
In mini_serial.c:
if (state == MDRIVER_INTR_ATTACH) {
set_port16(mdata->port + SH_SCIF_SCSCR_OFF,
SH_SCIF_SCSCR_RE|SH_SCIF_SCSCR_RIE, 0);
return 1;
}
In minidriver-serscif.c, change this:
out16(port + SH_SCIF_SCSCR_OFF, SH_SCIF_SCSCR_RE|SH_SCIF_SCSCR_RIE);
to this:
out16(port + SH_SCIF_SCSCR_OFF, in16(port +
SH_SCIF_SCSCR_OFF)|SH_SCIF_SCSCR_RIE);
The baud rate and clock for Biscayne should be 57600 and 33333333.
Workaround: Use the -ae option to procnto to enable alignment fault emulation.
ifconfig iface_name up
ifconfig iface_name scan
don't work individually for Wi-Fi drivers. (Ref# 61246)
Workaround: Combine the commands:
ifconfig iface_name up scan
Workaround: When you're using Qnet with an Ethernet driver that's enabled to use jumbo packets, you should set the cluster size (the mclbytes option to io-pkt*) to be the same as the packet size (the ifconfig if_name mtu command for the driver). This ensures that the packet buffers that Qnet uses are contiguous in memory.
If you specify a jumbo packet size larger than 4 KB (the default page size), you must additionally specify the pagesize=X option to io-pkt, with the same value as the mclbytes=X option. For example, to use 8100-byte packets with devnp-i82544.so, do the following:
io-pkt-v4 -d i82544 -p tcpip pagesize=8192,mclbytes=8192
ifconfig wm0 mtu 8100
mount -T io-pkt lsm-qnet.so
![]() |
Be sure to mount Qnet after you change the MTU of the interface with ifconfig. |
If you now type:
cat /proc/qnetstats
you can see that the Qnet L4 has an MTU of 8096, which it learned from the driver (remember the 4 bytes for the trailing CRC).
![]() |
All the Qnets on your LAN must have exactly the same MTU. |
You can specify a particular MTU to Qnet (which can be the same or less than the driver-advertised value) with the mtu_en=X option.
Workaround: Start separate client (fs-nfs2, fs-nfs3) processes for each server you wish to mount.
Workaround: Your resource manager must handle the raw QNX messages until this is corrected.
Workaround: Drivers must accommodate for this by checking the length of the data in the mbuf and ignoring the mbuf if the length is zero.
Workaround: Disable hardware flow control by clearing ihflow and ohflow:
stty -ihflow -ohflow < /dev/ser1
Workaround: You can increase the timeout to 3 seconds by using pppoectl:
pppoectl pppeo0 lcp-timeout=3000
Workaround: Relink the applications against the newer version of imglib.a.
Workaround: Use Windows Security Properties to set the file permissions to give other users access.
Workaround: Configure Windows to unblock. Once you've done this, Windows won't display the security warnings when you restart PhAB.
PhAB: Can't open: "clipboard.phab" (Permission denied).
Please resolve the problem and re-try this operation. (No error)
Thus, copying and pasting is impossible. (Ref# 39879)
Workaround: Make sure that your HOMEDRIVE and HOMEPATH environment variables are set to point to a directory that you have permission to write into.
PhAB for Windows uses the HOME environment variable if it's set, otherwise it internally sets HOME to HOMEDRIVE followed by HOMEPATH. If these aren't valid, then PhAB will encounter difficulties.
Workaround: Set QNX_HELP_HOME_PAGE to /usr/qnx640/target/qnx6/usr/help/product/momentics/bookset.html, and QNX_HELP_PATH to /usr/qnx640/target/qnx6/usr/help/product (assuming you installed QNX Momentics in the default location).
Workaround: Click the Options button, click the Others tab, and then increase the size of the image cache. Alternatively, you can view the documentation in a web browser.
Workaround: Either use a flat fill (i.e. set Pt_FLAT_FILL in Pt_ARG_BASIC_FLAGS), or use an image-based button.
Workaround: Use nondirect map mode instead.
Workaround: Kill the running qnxactivate command:
slay -s SIGKILL qnxactivate
and then run qnxactivate manually to complete the activation:
/usr/bin/qnxactivate
Workaround: This may be related to Phindows and PhAB's use of Direct3D double buffering, which is redundant when the Vista Aero compositing is enabled. To disable double buffering:
Workaround: If you want to work with Microsoft Visual Studio (MSVS) after installing QNX Momentics on the same system, do the following:
set MAKEFLAGS=saved_makeflags_value
Workaround: To disable UAC on your Windows Vista configuration:
You can reenable User Access Control by selecting the Enable UAC line and then clicking the Launch button.
![]() |
Disabling UAC bypasses some of Vista's security features. |
Workaround: Modify your user permissions. For instructions about changing these permissions, see the steps in the workaround for the problem (Ref# 44027) above.
Workaround: If you want to use the QNX utilities for find, sort, and split from a command prompt or shell prompt, specify a fully qualified path to any of the QNX executables.
Workaround: See the detailed documentation at http://ctags.sourceforge.net/ctags.html.
Input file specified
ctags: cannot sort tag file : No error
The ctags utility still generates tag files; however, they won't be sorted. (Ref# 43530)
Workaround: Manually call the QNX sort on the tags file.
Workaround: Log out and back in again before trying to activate.
After you've installed QNX SDP 6.4.0, you'll find an extensive set of HTML documentation:
${QNX_TARGET}/usr/help/product/momentics/bookset.html
The “roadmap” page contains links to the various HTML booksets that accompany the OS (e.g. System Architecture, Programmer's Guide, Library Reference, Utilities Reference, etc.).
![]() |
For the most up-to-date version of the installation and release notes, go to our website, www.qnx.com, log into your myQNX account, and then go to the Download area. |
To obtain technical support for any QNX product, visit the Support + Services area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.
The problems fixed in QNX SDP 6.4.0 include the following:
| Change | Ref# |
|---|---|
| The static libc now includes strptime(), which converts a string into a time. | 9132 |
| RAD and DEG now work correctly in phcalc. | 8710 |
| fs-cd will non longer crash when accessing a CD that has directory data at very high offsets. | 7807 |
| The flashcmp utility now properly removes the file extension, as documented. | 7636 |
| The current version of devg-poulsbo.so functions properly only in resolutions of 800 X 600, 1024 X 768, and 1280 X 1024. | 62118 |
| dev-tvia.so can have display artifacts, or cease to operate correctly, if the data bandwith if pushed to hard. It is not recommended to run higher than 800x600 resolution, or to use multiple layers at high resolution. | 61711 |
| Support for USB serial dongles has been added | 61665 |
| Phindows and phditto sessions to ppcbe targets now render offscreen contexts such at PtOSContainer correctly. | 61541 |
| For 6.4.0, the all installation documentation will be found under qconfig's base directory then under the subdirectory: install/qnxsdp/6.4.0. The old location, $QNX_TARGET/etc/readme directory, has been removed. | 61318 |
| Closed a window where the filesystem read code could be running before the entire partition is mounted. | 61292 |
| If the proportions of your background image are incompatible with the current display resolution, it is possible to end up your image not covering the entire backdrop. If you wish, you can configure Appearance, and deselect the 'Maintain Proportions' option, so that the image fills the entire backdrop. | 61184 |
| The on utility now has a -P option that spawns a process, setting the SPAWN_PADDR64_SAFE flag to indicate that the process is known to be 64-bit safe or doesn't care about the physical memory location. | 61053 |
| The <string.h> header file now brings in <strings.h> if _POSIX_C_SOURCE isn't set, as this is common practice on other platforms. | 60983 |
| A PpPrintContext_t job control (0xF2) subcommand (0x05 - Pp_ABORTED) has been implemented in libphrinter. As a result of this, older applications that continued to run when processing particular .phs files might now exit. This condition is triggered when the PpPrintContext_t resource Pp_PC_MAX_DEST_SIZE is set via PpSetPC(), and the current draw stream being rendered exceeds that set value. If the Pp_PC_MAX_DEST_SIZE isn't set (the default), this condition will not be encountered. When Pp_PC_MAX_DEST_SIZE isn't set, memory is allocated to accomodate the current draw stream (the default). The preview utility now sets verbosity level so that an error message will be sent to stderr and sloginfo if libphrinter encounters an error condition. |
60888 |
| We strongly recommend that you use the Advanced Graphics layering API instead of the Photon layering API, due to increased functionality and ease of use. | 60878 |
| Floating point OpenGLES is now available for ARM11 platforms. You can now build and run floating point OpenGLES applications. However our sample applications aren't included in this release and will be available in an upcoming patch. | 60648 |
| devg-poulsbo.so is now included in distribution. | 60612 |
| The qcc utility no longer needs a space between the -A option and its argument. | 60511 |
| Compiling C source with GCC now works when the source is hosted on a Linux Ext2 filesystem. | 6049 |
| Advanced Graphics now includes a touchscreen calibration tool called gf-calib. | 60462 |
| If you build a container project in the IDE, you've set the “stop on error” option on in the build configuration, and an error occurs in one of the projects, the build now stops correctly. | 60281 |
| The SMP version of the kernel now works properly on the Freescale MPC8572DS board. | 60178 |
| To prevent the rebuilding of projects in the incorrect order, we've added a Build referenced projects before rebuild? option in a “QNX C/C++ Project settings changed” dialog that appears after you've changed the QNX project properties. This option is checked by default. (Ticket ID 80054) | 59992 |
| The maximum number of threads for flash (devf-*) drivers has increased from 4 to 100. You can use the -t option to specify the number of threads. | 59876 |
| The usage message for mount now includes the -a option. | 59722 |
| There used to be a very small window in which the monotonic clock might by calculated incorrectly on an SMP system, causing the clock to move backwards instead of forwards. We've corrected this problem. (Ticket ID 84567) | 59650 |
| The shm_ctl() and shm_ctl_special() functions have a new flag, SHMCTL_LAZY. Setting this flag delays allocating memory until it's referenced. Calling mmap() with flags of MAP_ANON | MAP_LAZY | MAP_SHARED implicitly sets SHMCTL_LAZY on the underlying object. | 59589 |
| Running deflate on an empty file no longer causes a floating-point exception. | 59515 |
| The IDE now includes support for parallel building for QNX Projects. | 59489 |
| The _cmdname() function now correctly gives the full path that the current process was invoked from. Not only does this change make _cmdname() behave as documented, but it's necessary to make _cmdfd() work correctly. | 59299 |
| The License Guide can be found in base_dir/install/qnxsdp/6.4.0, where base_dir is where you installed QNX SDP. | 59264 |
| There's a new dispatch_create_channel() function that's similar to dispatch_create() but lets you specify the ID of the channel to use. | 59009 |
| QNX SDP 6.4.0 includes a Media Content Detector utility, mcd. | 58826 |
| We now support Windows XP SP3 as a development host. | 58548 |
| The PtMultiText widget no longer displays CR and LF characters. (Ticket ID 83992) | 58416 |
| In the IDE on Linux, if you aren't logged in as root, and you try to start the tftp server and bind to port 67 (which requires root privileges), the IDE now displays an error message. If you want to run tftp as a non-root user, change the port (e.g. to 6700), or make the proxy program set its user ID to root. For example: su (The actual commands may depend on the distro.) |
58265 |
| The phin utility now has -C, -p, and -r options that control which processes or regions to display information about. | 58214 |
| The PhAB language editor, phablang now correctly saves your translations. | 58212 |
| We've corrected a memory leak in io_close(), io_stream_read(), and io_stream_skip() for image_load_surface(). (Ticket ID 83864) | 58086 |
| PxConfigReadString() now terminates the string with a NULL character. (Ticket ID 83833) | 57996 |
| The atof() and strtod() functions no longer lose precision on certain values (e.g. 1000.00 to 1024.00). | 57895 |
| The IDE's Code Coverage tool now correctly shows covered lines as being covered. (Ticket ID 83755) | 57852 |
| Running code coverage on a binary with a shared library no longer causes the tool to crash. (Ticket ID 83759) | 57851 |
| We've deprecated psin. | 57719 |
| The IDE's Code Coverage tool can now import results when the source files and the makefile are located in different directories. | 57708 |
| We've fixed the parsing that the IDE does when you import a buildfile, so that it always recognizes a # character as the beginning of a comment. | 57510 |
| PgDrawGradientBevelBox*(), PgContrastBevelBox*(), and PgBevelBox*() now strictly constrain the incoming parameters as described in the documentation. The width parameter is inclusive, i.e. the inline, depth, and outline are constrained within the width. | 57454 |
| PgSetVideoMode() returns an error if more than one layer is active via the Pg layer family of calls. By default, io-graphics is already using one layer. | 56988 |
| The L2 cache on i.MX31 targets can now be enabled without causing intermittent kernel crashes when using procnto-v6 variants. | 56856 |
| The flash (devf-*) filesystems now have an extent cache to speed up random seeking within a file. | 56650 |
| The <termcap.h> file now defines the standard termcap variables, PC, BC, UP, and ospeed. The prototype to tputs() is now the standard: extern int tputs(char *, int, int (*)(int)); rather than the previous, extern int tputs(char *, int, int (*)(char));. | 56632 |
| The color model is now set correctly during multi-pass drawstream rendering. ARGB issues are now addressed correctly in OSC. (Ticket ID 82983) | 56426 |
| You no longer have to start setupbsp with "ksh setupbsp" | 56178 |
| Both phditto and phindows now have a dialog for confirming that you want to close the window. | 56162 |
| The IDE's Code Coverage tool now works with C/C++ Managed Projects. (Ticket ID 82862) | 56075 |
| Previously the application of a driver update would succeed and allow an installation but the subsequent rebuild of the customized boot image would fail under certain circumstances (VMware with a SCSI adapter as an example). This has now been resolved. | 56042 |
| MultiMedia v1.x support has been removed from 6.4. MultiMedia v1.x-dependent applications will not resolve symbols or execute under 6.4. Inquire of QNX regarding the Aviage MultiMedia Suite for multimedia support. | 55967 |
| The IDE now lets you edit the line number for a breakpoint. Right-click on the breakpoint, select Properties..., select the Common tab, and then edit the line number. (Ticket ID 82835) | 55861 |
| We created a function for properly converting encoded baud speeds (in termio and sgtty) into unencoded baud speeds for termios, as well as a function for properly converting unencoded baud speeds into encoded baud speeds. The functions were then employed in conversion functions between the non-POSIX sgtty and termio structs to the POSIX termios struct. | 55791 |
| The pidin mem command now correctly displays information about direct physical mappings. (Ticket ID 82035) | 55718 |
| GCC 4.2.* replaces calls to some functions such as strcpy() with calls to other functions such as memcpy(). As a result, memory analysis can show a different trap function name. To turn off this behavior, specify the -fno-builtin option when compiling. | 55514 |
| Duplicated projects showing up in "From Project..." dialog in Launch configuration Download tab is now fixed. | 55453 |
| We've discontinued 8-bit drivers and display modes in Photon. The phgrafx binary is for x86 only; we previously shipped it on other platforms, but crttrap, which it relies on, was an x86-only application, so phgrafx was never usable on non-x86 platforms. | 55260 |
| The Windows tools no longer have a dependency on Cygwin. You can no longer use Cygwin mountpoints or Cygwin-style path names. The toolchain (gcc, binutils and gdb) accepts only native Windows-style paths. Command-line users can build from either the Windows command shell or use an emulated shell such as ksh or sh. Under the emulated shells, the backslash character is treated as an escape character, so pathnames should use forward slashes, or they should have an additional backslash character. | 55190 |
| MsgCurrent() no longer causes a priority inversion. | 55141 |
| The PPC 600 startup library now ensures that the BAT settings used to map device memory are as small as possible. This ensures that a speculative prefetch can't hit an area of memory that is mapped but does not exist on the bus. (Ticket ID 82106) | 55105 |
| The mkifs command writes a minimum of 4 bytes for the image header mountpoint. If the mountpoint is less than 4 bytes long (e.g. the default value of /), mkifs now writes zeroes for the remaining bytes. | 55091 |
| The PtOSContainer widget now correctly translates coordinates. | 55060 |
| The static libc now includes insque() and remque(), which you can use to add and remove elements of a doubly linked queue. | 54815 |
| The phauxrender library (used by some print filters) now renders Bezier curves better. | 54688 |
| If you use the -w option, etfsctl now writes the image to the correct location in flash, whether a raw partition is present or not. | 54677 |
| When the IDE is parsing a project tree to collect variants, it no longer interprets paths for header files such as public/ppc as a CPU - class directory. (Ticket ID 81806) | 54545 |
| In the IDE's Breakpoints view, the breakpoints are now sorted by default first by file, then by line. (Ticket ID 81602) | 53934 |
| If you view STL string variables in the IDE's Variables view, the view no longer becomes inactive. (Ticket ID 81536) | 53928 |
| The IDE's Debugger can now display 64-bit variables in hexadecimal. | 53871 |
| PgDrawTextAreaCx() now properly processes the number of bytes. (Ticket ID 81546) | 53733 |
| The nto.link linker script has been updated to work with gcc 4.2. | 53712 |
| We provide utilities to completely remove a QNX installation from your system. This may be required in the event of an interrupted or failed installation. Utilities for Linux and Windows have been provided on the DVD in the Utilities folder. | 53536 |
| The chapter Debugging in the IDE in the IDE User's Guide contains information about the added support for GDB catchpoints, such that you can set event breakpoints for these types of events: exception caught and exception thrown. For more information, see “Adding event breakpoints”. | 53300 |
| When you're doing postmortem debugging in the IDE using a core file, and the application has a shared library object, the symbols for the shared library are now loaded. | 53210 |
| When you duplicate an image in the IDE's System Builder, all properties are now copied properly. | 53164 |
| We now support Linux SuSE 10.3 as a development host. | 52938 |
| In the IDE's Variable view, if you cast a variable from a base class to a derived class, the cast variable is now displayed correctly; the extra members added by the derived class are now displayed. (Ticket ID 81276) | 52907 |
| The IDE's Variable view no longer shows the private/public subgrouping for member variables. (Ticket ID 81267) | 52895 |
| In order to conform to POSIX, pthread_cond_timedwait() and pthread_cond_wait() now return EPERM instead of EINVAL if the current thread doesn't own the mutex. | 52798 |
| The IDE now lets you select a variable in the Variables view, and then do a “show memory”, which opens the Memory view for that location. | 52686 |
| The IDE's Debugger now supports Event Breakpoints (which correspond to gdb catchpoints). The number of types of event breakpoints actually supported depends on the version of gdb you're using. | 52683 |
| The IDE's Debugger now lets you attach gdb commands to a breakpoint. These commands are executed automatically when the breakpoint is hit. | 52682 |
| The IDE's Disassembly view has a new feature that lets you jump to an arbitrary address and show the disassembly of that code. | 52680 |
| The IDE's C/C++ editor now has a context menu that lets you add watch expressions. | 52679 |
| The IDE's Debugger is now better at locating source code. | 52658 |
| We've addressed some issues with drivers/frameworks software that assume physical addresses of memory are less than 4 GB (or aren't 64-bit paddr-safe ). We've also added a new -m[~]P option to procnto, as well as a new SPAWN_PADDR64_SAFE flag for spawn*(). The new procnto -m option variant is -mP, which turns on full allocation of high memory for all processes (the default is to limit anonymous allocation below the 4 gigabyte mark - i.e. -m~P). This is mostly useful only for testing. The new spawn flag is SPAWN_PADDR64_SAFE which allows the selective spawn of an application that is known to be 64-bit safe or that doesn't care about the physical memory location. (Ticket ID 80995) |
52392 |
| The system monitor in Photon's shelf now correctly displays memory usage on machines with 4 GB of RAM. | 52342 |
| We've updated the phs-to-pcl filter so that it's based on the new HP APDK library, and hence supports more printers. For more information, see the entry for phs-to-pcl in the Utilities Reference. | 52331 |
| You can now drag lines, words, and text blocks in the IDE's editor. | 51890 |
| POSIX doesn't specify what should happen if you call getcwd( NULL, 0). The Neutrino version (like many others) now allocates a buffer for the name of the directory; it's up to your application to free the buffer when you no longer need it. | 51435 |
| The shm_ctl_special() function now lets you set some hardware-specific cache attribute bits in the page table entries. For more information, see the QNX Neutrino Library Reference. | 51227 |
| The IDE's System Builder now determines the format of a BSP's IPL. If it's in binary format, the System Builder doesn't needlessly convert it. (Ticket ID 80149) | 50938 |
| We've fixed a bug in the construction of Pg_SET_USER_CLIP draw commands that used to corrupt the draw stream. (Ticket ID 79669) | 50581 |
| The Photon file manager, pfm, now properly handles character encoding when creating files. | 50536 |
| PhAB no longer crashes when you paste PtBitmap widgets. (Ticket ID 79943) | 50322 |
| The fdisk utility now attempts to determine the type of loader (if any) on the disk. | 50293 |
| You can now access /dev/shmem on ARM targets over Qnet. (Ticket ID 79776) | 49874 |
| The Memory view of IDE's System Information perspective displays better information about anonymous memory mapped by a process. | 49751 |
| The Malloc Information view in the IDE's System Information now displays the maximum allocatible memory for a process, instead of the number of outstanding blocks multiplied by the maximum size of the range. | 49703 |
| There's a new -c option to slogger that you can use to open the log file with O_SYNC to commit the log events to disk. (Ticket ID 78782) | 49153 |
| We've corrected the unmasking of interrupts in the SH version of the kernel, significantly reducing the latency times. | 49127 |
| In the IDE, if you build a debug variant of a project that's in a Container project, and the debug folder is missing, you now get a message in the output for the container project that the debug variant doesn't exist and that the release variant won't be built. | 48887 |
| The IDE now includes a Full Trace Event Log view that shows more events and lets you use the scrollbar to view more events. You can open this view via the dialog. | 48847 |
| Square caps on the end of thick lines now always match the thickness of the line itself. (Ticket ID 79056) | 48674 |
| The rpcgen utility now looks for the C preprocessor in the right place on QNX Neutrino hosts. (Ticket ID 76034) | 48650 |
| The rpcgen compiler now correctly handles arrays of booleans. (Ticket ID 79034) | 48648 |
| The makefiles for new QNX projects in the IDE now work correctly with new versions of make on Linux. | 48365 |
| PgDrawEllipse() no longer experiences a sign inversion when the radius is greater than 1000. (Ticket ID 78772) | 48313 |
| When you create a new QNX project, the IDE now prompts you if the default file will overwrite an existing file in the project directory. The New Project wizard now also lets you disable the generation of a default file. (Ticket ID 78551) | 48298 |
| The kernel no longer hangs when you start procnto with the -ml~i option and then use ftruncate() to reduce the size of a shared memory object. (Ticket ID 77976) | 48061 |
| The Extreme2 graphics driver no longer displays the initial TV output as a pink or light blue screen. It's now black. (Ticket ID 78491) | 48019 |
| We've added a QCONN_ALT_MALLOC environment variable that you should use when starting qconn to specify the name of any special version of libc that you're using (e.g. QCONN_ALT_MALLOC=libspecialLib.so.2 qconn). Without this name, the IDE's System Information perspective shows incorrect memory information because it can't find the right malloc() information. (Ticket ID 78507) | 47976 |
| In the IDE's System Profiler, you can now synchronize trace events with the time from the Neutrino target's hardware clock. | 47816 |
| The UNALIGNED_RET64() macro now works correctly on PPC targets. (Ticket ID 78366) | 47759 |
| The Print selection button in the print dialog for Photon applications now functions correctly. (Ticket ID 77972) | 47747 |
| The kernel can now support more than 256 MB of RAM on SH systems. For more information, see “What's new: Kernel” earlier in the release notes. | 47671 |
You will notice performance improvements with the Memory Analysis Tooling application if you use "Memory Errors" options. There are no performance improvements in the area of memory events collection. However, you will notice the following caveats:
In addition, a new option to remove all optimizations has been added that sets the MALLOC_USE_CACHE environment variable to 0. You can also change the malloc cache size (using the save variable). The default is value is 32. This value should be power a of 2, and should be between 1 and 2048. |
47353 |
| Memory errors are now flushed out from qconn into the IDE even if memory tracing is disabled. | 47352 |
| In the IDE's Memory Analysis, there's now a backtrace for memory errors even if memory tracing is disabled. | 47351 |
| Fill patterns now function correctly with the phs-to-ps filter. (Ticket ID 78087) | 47330 |
| Phindows now detects when the target has disconnected unexpectedly. | 47183 |
| Error and Memory allocation backtracing in the IDE now work properly for non-x86 targets and for C++ code. | 47072 |
| The name_open() function once again gives an error of ENOENT instead of ENOSYS if the given name doesn't exist. (Ticket ID 77801) | 47032 |
| You can now copy and paste projects using the IDE's Project Explorer view. | 47010 |
| The IDE now supports parallel builds for QNX projects. | 47003 |
| You can now drag and drop files from the filesystem into the IDE and edit them there. | 46998 |
| When you import a container project, the IDE now remembers the project's previous location. | 46989 |
| The IDE's Problems view now shows line numbers for assembly errors. To enable assembly error parsing,enable Assembly Error Parser in the project properties. | 46980 |
| The IDE now remembers whether local variables were expanded or collapsed in the Variables view. | 46979 |
| The macro _DEXTRA_VALID() in <dirent.h> no longer generates a “comparison between signed and unsigned integer expressions” warning. (Ticket ID 77874) | 46757 |
| When you copy scripts in the IDE's Target Filesystem Navigator, execute permissions are retained if the host system allows it. (Ticket ID 77855) | 46726 |
| You can now use the update site for the IDE over an HTTPS proxy. | 46580 |
| On PPC targets, if dlopen() reports a missing symbol after loading a DLL, it now correctly returns and indicates a failure, instead of calling exit(). (Ticket ID 83069) | 46504 |
| The system logger, slogger, no longer displays a message on the console when it switches between log files, unless you start it in verbose mode. | 46349 |
| POSIX requires that mmap() fail with EINVAL if the flags argument doesn't contain either MAP_SHARED or MAP_PRIVATE. This now happens unless you request that the memory manager use backward-compatibility mode. For more information, see the section on POSIX PSE52 conformance in these notes. | 46288 |
| The libmalloc library (and the librcheck replacement library) now use less stack memory for operations. | 46266 |
| The IDE now lets you disassemble any piece of code starting with known address. You have to obtain the address of the function and use the Disassembly view action Go to address to jump to the specific function. | 46197 |
| The pidin mem command no longer shows more than one entry of memory usage for shared libraries. | 46114 |
| We've improved support for unnamed namespaces in the IDE's Debugger. | 46107 |
| The gf_display_set_mode() function now returns GF_ERR_OK on success (as documented). | 46077 |
| You can now use gzip to compress and expand files in a RAM (/dev/shmem) filesystem, but you need to specify the -f option. | 46076 |
| The gf_cursor_t structure formerly used an anonymous enum for the cursor type, but this caused errors when you compiled C++ programs. The enumerated type is now called gf_cursor_type_t. (Ticket ID 77430) | 46045 |
| Added checking in FFS(devf) filesystem recovery to support new cleanup mechanism. | 45992 |
| The fprintf() and fscanf() functions now use the given stream's _Flock mutex instead of the one belonging to stdout or stdin. (Ticket ID 77106) | 45900 |
| We've fixed some issues with profiling large applications with more than 6 shared libraries in the IDE. | 45767 |
| We've improved the IDE's C/C++ indexer (used in code navigation). | 45765 |
| By default, the IDE now uploads the stripped versions of shared libraries. The Upload tab in the Launch Configuration dialog has an option for changing this behavior. | 45764 |
| The IDE's Application Profiler can now load symbols for a shared library when explicitly set in the Shared Library path field in the Launch Configuration dialog. | 45711 |
| If you use the shortcut icon for preferences in the IDE's TFTP view, you no longer get an error message when you save your changes by clicking the Apply and then the OK button. | 45704 |
| An EBADFSYS error will now fall-through opens on a union filesystem (as ENOENT, ENOSYS, ENXIO, ESRCH, EROFS currently do) and allow pathname resolution to another mountpoint. | 45631 |
| In the Statistics window of the IDE's Memory Analysis Tool, the number of errors reported is now the actual number of errors that occurred as displayed in the Errors view. | 45443 |
| The Extra Libraries dialog that is available in the IDE by right-clicking on Properties, and then selecting now includes Up and Down buttons for reordering the libraries, and it provides a scrollbar if the list of extra libraries becomes too long to display. (Ticket ID 75996) | 45353 |
| In the IDE, if you change a QNX C/C++ Project indexer setting for a container project, the C/C++ index and a progress icon in bottom right of the Workbench window are now displayed. | 45081 |
| PhAB now preserves the grid position of icons in its workspace. (Ticket ID 76763) | 44951 |
| On Windows Vista, the IDE's Memory Analysis Tooling perspective now displays the actual Vista host's time, not UTC. | 44861 |
| The phs-to-pcl filter can now print on PPCBE targets. | 44845 |
| The IDE's launch configuration now lets you use binaries that are located outside the workspace. | 44808 |
| We've added extern "C" {...} to <sys/cache.h>, so libcache now works with C++ code. | 44679 |
| Clipping is now processed correctly when multiple PtOSContainer widgets are children of a common parent widget. | 44677 |
| The ph script now uses waitfor to test for existence of devices. | 44675 |
| The IDE's System Profiler now includes a Thread Call Stack view that shows the call stack of the currently selected timeframe. If address translation is enabled, you will get the actual function name instead of the address. For this feature to work, you need to instrument the binary with Functions Instrumentation. It supports navigation to the source code if address translation is enabled. | 44593 |
| If you pass mmap() a suggested result address and size parameters that, when added together, are a value that exceed what can fit into a pointer (i.e. the addition wrapped around), the system now adjusts the suggested result address so that no wraparound occurs before seeing if it can use the value. | 44567 |
| PgConfigScalerChannel() can now set the brightness and contrast. It previously ignored them. | 44564 |
| The debugging messages from the shared library loader in libc.so when DL_DEBUG is set are now clearer. | 44495 |
| PgGetScalerCapabilities() now indicates Pg_SCALER_CAP_BRIGHTNESS_ADJUST and/or Pg_SCALER_CAP_CONTRAST_ADJUST capabilities if supported by the driver. | 44492 |
| When performing memory analysis in the IDE, if you use a time-based collection method for memory leaks, you no longer get results that show duplicate memory leaks. | 44473 |
| We no longer ship the x86 Runtime Kit, but we provide a technote that describes how you can create your own CD based on an existing QNX Neutrino 6.4.0 CD. | 44103 |
| Phindows now draws thick lines in the correct position. (Ticket ID 76189) | 44028 |
| The system monitor in Photon's shelf now displays large RAM values correctly. (Ticket ID 76001) | 44014 |
| When you create a QNX project in the IDE, a static+shared+debug dependency now results in the correct library name. | 43844 |
| The timeouts for waitfor across /net are now more accurate. (Ticket ID 75782) | 43696 |
| Timeouts for on -W across /net are now more accurate. (Ticket ID 75782) | 43695 |
| In the IDE's System Profiler, if you open a .kev file and select a timeline with obvious activity, and you then zoom in, the thread timelines and events no longer disappear. | 43684 |
| In the IDE's Memory Analysis Tool, if you select a region that has only one allocation, (e.g., a region in the Usage view) and select Show in Trace to obtain a graphical representation, the graph now displays a single bar that corresponds to the only allocation. | 43494 |
| Dual graphics display configuration is essentially a manual procedure. By default, the graphics subsystems attempts to disable any secondary graphics device. This is done for several reasons: 1) Particular graphics cards, when activated, can lock up the system, and there's no safeguard to protect against such incompatibilities. 2) Particular graphics cards, even when just installed in the same system, will lock up the system when powered on. 3) Special configuration of the secondary device is often required, especially on BIOS equiped boards. Usually this special configuration is accomplished via a graphics configuration file (they reside in /usr/photon/config). Although several examples are provided, many will require altering for the specific chipset being utilized. One thing to ensure is that the memory window specified in the configuration file is correct for the particular card being utilized. The use of a graphics configuration file is specified in /etc/system/config/display.conf, with the modeopts option to the driver. |
43357 |
| Our libsocket.so no longer uses a QNX-specific itoa(), so if an application defines its own itoa(), the application's version no longer causes calls to socket() to fail. | 43281 |
| In the Image Combine dialog box in the IDE's System Builder, the fields are automatically populated with information from the IFS properties. If you change the information for the fields in this dialog box, the values are now correctly saved and the IFS properties are updated. | 43188 |
| The IDE's System Builder now lets you add the contents of an entire directory from the host site into the image. | 43118 |
| We've added dependency checking for libraries to the IDE. If a library changes, the main application is relinked (QNX projects). | 43028 |
| POSIX requires that the error numbers in <errno.h> have unique values. In order to satisfy this requirement we're changing the value of EALREADY. For details, see the section on POSIX PSE52 conformance in these notes. | 42983 |
| In the IDE, if you delete a target, you can now reuse the name. | 42778 |
| There's a new Advanced Graphics flag, GF_SURFACE_CREATE_SHAREABLE, that allows server side surfaces to be allocated via gf_surface_create(). | 42774 |
| Postmortem debugging in the IDE now works correctly with multiple shared libraries. (Ticket ID 75316) | 42678 |
| When running io-display, you can now prevent a display from shutting down when all applications exit by setting the noautoshutdown option to 1 in the display.conf configuration file. | 42650 |
| We've added two functions, mq_timedsend_monotonic() and mq_timedreceive_monotonic() (defined in <mqueue.h>), that let you set monotonic kernel timeouts. Note that the timeout parameter is an absolute time relative to the montonic clock. For example: ClockTime(CLOCK_MONOTONIC, NULL, &timenow); |
42549 |
| There is now a shared version of the libgf library. | 42530 |
| You can now use the SOFT3D_NAME environment variable to specify a software fallback library for 3D rendering. This allows you to use a library other than devg-soft3d.so. | 42529 |
| The pidin utility now displays dashes instead of zeroes for the code, data, and stack sizes if no memory information for the process is available from procnto. | 42519 |
| If you choose a debugger other than gdb, the IDE no longer gives you an “Invalid debugger type” message. | 42127 |
| Self-hosted Neutrino systems no longer include two different versions of qconfig. | 42105 |
| In the IDE, the System Profiler's Inter CPU Communication chart now has a heading of “Cross CPU Messages” instead of “Total Migrations.” | 42037 |
| FPU is supported on the AMCC440EP processors with the appropriate startup | 41996 |
| The kernel no longer crashes if you call TraceEvent() with unaligned data, although the kernel call will fail with EFAULT. | 41995 |
| We've added a gf_context_unset_surface() function that lets you remove a surface from a context. | 41972 |
| Prior to 6.4.0 there was no way to track pulse leaks -- that is, a process not receiving pulses. This can cause a growth in kernel memory usage, since pulse structures are allocated in the kernel. With 6.4.0 a pidin channels command will show the length of the send/receive/reply and pulse queues. | 41882 |
| An ETFS filesystem is no longer mounted by default; you can use the -m option or mount -tetfs /dev/etfs2. (Ticket ID 74912) | 41841 |
| We've added a devn-rtl8169.so driver that supports the Realtek 8110SB (GigE) Network Interface. This driver is currently available only for x86 platforms. | 41800 |
| Advanced Graphics now supports 32-bit ARGB ordered surface formats (GF_FORMAT_ARGB8888). | 41663 |
| The tinit utility now has an -f option that lets you specify the file that lists the commands to start. The default is /etc/config/ttys. | 41658 |
| The phrelay utility now uses wframe_updated.so from /usr/photon/dll. | 41547 |
| The Photon file manager, pfm can now execute applications from other locations than /usr/photon/bin. (Ticket ID 74650) | 41318 |
| The -V (verbose) option now works for phs-to-ps. | 41194 |
| Printer filters no longer run ready when they encounter broken .phs files. | 41180 |
| We've fixed fs-dos so that it doesn't continually recalculate the free cluster count for removable devices. | 41085 |
| In the IDE, you can now create a project whose name includes a number sign (#). | 40957 |
| In the IDE, if you stop a build, a subsequent build is now an incremental one instead of a complete rebuild. (Ticket ID 74311) | 40927 |
| You can now import an EFS buildfile into a project in the IDE. | 40682 |
| For conformance to POSIX, pthread_create() and pthread_join() can no longer be interrupted by a signal (i.e. they can no longer fail with an error of EINTR). | 40666 |
| The libphrender library's spanlist processing no longer suffers from 16-bit overflow. (Ticket ID 73681) | 39888 |
| The lsm-qnet.so module has a max_num_l4s option that lets you specify the number of interfaces. | 39728 |
| Continuously calling select() with a timeout of 0 no longer causes an internal signal queue to grow in an unbounded manner. | 39687 |
| The dumper utility now has a -z option that you can use to compress the core files. | 39662 |
| You can now profile shared libraries without needing to specify -Wl,-E to the linker when building the application. | 39600 |
| Repeatedly running tracelogger in ring mode no longer makes the system leak memory. | 39178 |
| Phindows now correctly displays window titles that contain non-ASCII characters, specified by the -s option. | 38770 |
| The tracelogger utility now exits properly in ring mode, even when you specify -n0. | 38753 |
| If you use the mount command to mount an NFS server, and you specify the argument -o ver3, and fs-nfs3 isn't running, fs-nfs2 no longer accepts the mount request. | 38640 |
| Pt_ARG_MENU_TEXT_FONT widget resource has been added to PtPanelGroup for the popup menu in single-tab mode. (Ticket ID 73009) | 38582 |
| Photon now supports a user-defined event type, Ph_EV_USER. (Ticket ID 73092) | 38579 |
| The fs-cifs filesystem now returns the errno when the mkdir() function call fails as those returned by the local filesystem. | 38573 |
| If you perform a socket operation on a file descriptor of a file on a fs-cifs mountpoint, the operation fails, and the errno returned is now correctly ENOTSOCK. | 38572 |
| Both fs-nfs2 and fs-nfs3 now support fchdir(). | 38548 |
| The exit status for fs-nfs3 is now correct. | 38512 |
| The debug path note is no longer automatically added when use messages are added and effect the program name of the executable. | 38408 |
| Long executable names no longer cause a buffer overflow. | 38199 |
| If you use the instrumented kernel to trace events while you're using mq, emitting _NTO_TRACE_COMM_SMSG communication-class events no longer causes your application to crash with an EFAULT when it calls mq_send(). | 38082 |
| The devc-con[-hid] console driver now supports international keyboard layouts. By default, the original US101-layout is used. If at startup time the file /etc/kbd.tbl is present, it's loaded and used instead. You can reload this file at runtime by pressing Ctrl-Alt-Space. The default US-101- and a DE-102- (German) layouts are provided as ${QNX_TARGET}/etc/kbd.tbl.*. | 37638 |
| We now provide an optimized version of memcpy() for all platforms. | 37231 |
| The libPtWeb.so shared object now processes Pp_PC_MAX_DEST_SIZE correctly as a ulong_t, which prevents printer drawstreams from being corrupted or truncated. | 30040 |
| phs-to-ps no longer runs READY or segfaults when processing aborted printer jobs. | 29940 |
| The gf_display_snapshot() function provides screen snapshots on Carmine cards. | 29893 |
| FIFO scheduling is now honored correctly with SMP. | 29847 |
| We've corrected our recursive makefiles to clear and later reset the NAME environment variable (if it exists), so they no longer use its value to name the resulting binary. | 29843 |
| Trying to slay something on a node in a domain other than your own now works. | 29840 |
| The kernel no longer crashes when you use ClockPeriod() to set the ticksize to a very small value and you then invoke the SCHED_APS_PARTITION_STATS command to SchedCtl() at a very high frequency. | 29827 |
| You can now configure the memory allocator using various options and tuning parameters. These options are described in the Heap Analysis chapter of the QNX Neutrino Programmer's Guide. | 29730 |
| If you have multiple writable mappings to the same region of a memory-mapped file (in different processes, for example), then calling msync() with MS_SYNC no longer causes a deadlock. | 29574 |
| The pidin command no longer crashes when you specify -F "%M" and a process has no memory objects. | 29522 |
| The PtMultiText widget no longer leaks memory for text attribute font strings. (Ticket ID 72352) | 29421 |
| If you use QWinCfg on Windows to switch to QNX Momentics 6.2.1, the value of the QNX_HOST environment variable now correctly contains backslashes (“\”). | 29368 |
| The devg-radeon.so driver now works, even when you have more than 512 MB of system RAM. | 29339 |
| When you're using tr, you can now specify ranges of characters with or without square brackets. | 28971 |
| The PtWebClient widget now has a new Pt_CB_WEB_STATUS type called Pt_WEB_STATUS_CONTENTS. The information passed in the description field for this new status type is the string contents of the PtText or PtMultiText type-in field that just got focus. The contents string is preceded by an ordinal number identifying the control on the web page, and a colon. Currently only FORM-EDIT, FORM-PASS and FORM-TEXTAREA controls are supported. | 28874 |
| PxLoadImage() no longer misreads ARGB1555 as RGB565. | 28821 |
| The snapshot utility now works with phrelay (phditto, phindows). | 28671 |
| The devn-speedo.so driver now has a probe_phy option that controls automatic probing of the PHY device. | 28648 |
| The tracelogger utility now reports additional attributes, and you can add attributes to the log. For more information, see the Utilities Reference. | 28612 |
| devc-con[-hid] now supports international keyboard layouts. By default, the original US101-layout is used. If at startup time the file /etc/kbd.tbl is present, it is loaded and used instead. You can re-load this file at runtime by pressing Ctrl+Alt+Space (If using VMWare, you may need to press this twice). The default US-101- and a DE-102- (German) layouts are provided as ${QNX_TARGET}/etc/kbd.tbl.* | 28465 |
| Umounting removable or not present filesystems no longer causes a devno leak. | 28376 |
| We've removed a potential deadlock from the malloc library that could have occurred when you used vfork() and exec() if the vforked child received a termination signal while holding the malloc library mutex. | 28161 |
| The kernel will no longer report a crash in "vmm_fault" if you happen to pass in an address in that is a particular address range to a kernel call. The range is unique to each architecture, but is always outside of the normal user space addresses. | 28048 |
| When using high warning levels on the compiler, you no longer get duplicate prototype warnings when including <stdio.h>. | 27983 |
| In order to conform to POSIX, we've changed the ino_t type from signed to unsigned. For more information, see the section on POSIX PSE52 conformance in these notes. | 27903 |
| Prior to 6.4.0 the -m option to dumper would create a core file that didn't contain any non-stack memory. This prevented gdb from determining which shared libraries were loaded at the time of the core. Now, dumper -m dumps just enough of the non-stack memory to allow gdb to determine the loaded shared objects. |
27412 |
| The phlocale utility now lets you specify up to three different keyboard layouts, as well as a key combination for switching between them. (Ticket ID 70693) | 27351 |
| The PgDrawArc() function, when you use the Pg_ARC_PIE flag, now gives more consistent results when using thick lines. (Ticket ID 70706) | 27266 |
| The phlogin2 utility now scrolls user icons when there are more than 8 users registered in the system. (Ticket ID 70499) | 26944 |
| Phditto now properly reads the length field from incoming message headers, and so no longer runs READY. | 26824 |
| There's a new showmem utility that displays memory information. For more information, see the Utilities Reference. | 26719 |
| PhAB grouping no longer breaks widget anchoring. (Ticket ID 69002) | 26634 |
| Horizontal scrolling now works properly in the IDE's System Profiler. | 26628 |
| We've added more information to the “Out of interrupt events” message. If you suspect that you have an issue with too many interrupts, add the -vv option to procnto in your buildfile in order to get the additional details. | 26545 |
| Blocked resources in PtCompoundClass_t are now properly defined as Pt_ARG_IS_POINTER. (Ticket ID 70199) | 26522 |
| PhAB no longer displays the Pt_ARG_ARM_COLOR and Pt_ARG_ARM_FILL resources for PtNumericInteger and PtNumericFloat widgets. (Ticket ID 70195) | 26494 |
| The performance of large block writes to /dev/shmem has improved. | 26280 |
| The PtMTrend widget now properly renders when data is added via PtMTrendAddData(). (Ticket ID 70044) | 26155 |
| You no longer lose your keyboard configuration when you change the machine's hostname. | 26052 |
| PfGenerateFontName() now returns a mapped font entry if the requested font name, and/or size isn't available. (Ticket ID 69964) | 26043 |
| Backtraces in the IDE's Memory Analysis now work reliably on ARM targets. | 26035 |
| Focus is now processed correctly in the PhAB resource editor when a widget was instantiated via Ctrl-W. (Ticket ID 69636) | 25790 |
| PtGenList column formatting now works correctly via phrelay. | 25733 |
| Black-box regression tests for watchpoints in gdb no longer fail for ARM targets. | 25599 |
| The PhAB resource palette no longer overrides the default count for PtTimer. (Ticket ID 69508) | 25494 |
| The PtScrollbar is now updated correctly when you remove an item from a PtList or PtTree. (Ticket ID 69522) | 25472 |
| The phabmsg now generates the filename extension during a “Save as ...” operation. (Ticket ID 69427) | 25308 |
| If you reset your target board while you're debugging from the Windows-hosted IDE, and you've clicked Terminate and remove in the IDE Debug view, the ntoCPU-gdb.exe process no longer runs ready, consuming 100% of CPU. | 25174 |
| Photon has two new functions: PgGetSurfaceGFSid() and PdCreateOffscreenContextGF(). | 24996 |
| The Korean input method, kpim, no longer displays “illegal option” if you use the -x or -y command-line option. | 24827 |
| PtTreeModifyItemString() no longer truncates the string to the longest displayed string length. (Ticket ID 69249) | 24819 |
| The PhAB color editor's custom color palette is now saved between edits and between sessions. The information is stored in the user's photon configuration area, in a file called $HOME/.ph/phab/abcpal.cfg. A new Reset button under the custom color palette lets you reset it to its default state. If there is no color information stored in your configuration area, PhAB looks for an abcpal.cfg file in the system directory where the PhAB executable (ab) is running from. It will also look in this system area when you press the Reset button. |
24705 |
| The phrelay utility now supports the display of offscreen contexts. | 24530 |
| The mkifs utility now adds a dummy startup header that indicates the compression type to compressed, non-bootable image filesystems. | 24471 |
| PtNumericInteger and PtNumericFloat no longer render focus if the Pt_FOCUS_RENDER flag bit is cleared from Pt_ARG_FLAGS. (Ticket ID 68900) | 24345 |
| The Pt_ARG_NUMERIC_TEXT_FONT resource is deprecated, and so is no longer displayed in the editor in PhAB. (Ticket ID 68691) | 24111 |
| Pt_ARG_FILL_COLOR is now shown correctly as grey for PtNumericInteger and PtNumericFloat in PhAB. (Ticket ID 68680) | 24093 |
| The PtNumericInteger and PtNumericFloat widgets' up and down keys are now properly mapped when the widget orientation is Pt_HORIZONTAL. (Ticket ID 68647) | 24063 |
| The phfont server now processes fontext rules in the order they're entered. (Ticket ID 68193) | 24002 |
| The pwm hooks now draw borders correctly. (Ticket ID 68475) | 23992 |
| PtConnection now works over QNET. | 23906 |
| 24-bit images are now displayed correctly on PPCBE. (Ticket ID 67709) | 23825 |
| Compose sequences now work for Phindows and PhAB for Windows. (Ticket ID 68354) | 23810 |
| The pppd daemon now uses the /etc/ppp/options.ttyname option file. | 23743 |
| PtMultiText now honors the setting of Pt_ARG_MARGIN_WIDTH. (Ticket ID 68038) | 23280 |
| If you pipe the output of pidin to another command, it no longer displays couldn't fill_info messages. | 22989 |
| Phindows now processes mouse wheel scroll events. | 22835 |
| Filled polygons have an improved filling algorithmn. | 22383 |
| Rounded rectangles are now rendered correctly when the fill color is Pg_TRANSPARENT. | 22177 |
| The rint() function no longer crashes with a SIGFPE on ARMLE targets. (Ticket ID 67292) | 22165 |
| Added ISO9660 Interchange Level 3 support to fs-cd. | 22087 |
| The cp utility no longer crashes when you give it a source path that's longer than the maximum allowed. | 22002 |
| Certain tools, such as bindres and usemsg, which are needed for building PhAB applications, now work correctly on Windows, even if you don't have write permission in the root of your local drive. (Ticket ID 66893) | 21849 |
| We've fixed some heap memory leaks in snapshot, and we've made the program use shared memory more efficiently. (Ticket ID 66820) | 21776 |
| The tinit utility now has a -t option that makes tinit not mask the suspend signal (SIGTSTP) in spawned processes. | 21751 |
| Chinese and Korean are now listed as supported languages in phlocale. (Ticket ID 66783) | 21685 |
| The PtRect widget now handles thick lines stroke outlines properly. (Ticket IDs 66784, 75898) | 21684 |
| The phditto program now functions the same way Phindows does in when handling -x and -y region offsets when the -u option is passed. (Ticket ID 66776) | 21659 |
| On the SH4 platform, gdb no longer sometimes displays “finish meaningless on outermost frame” when trying to step out of a DLL when stop-on-solib-events is on. | 21502 |
| If you have a C/C++ project that returns a value of 10, and you run it in the IDE, the Console window reports the correct return value. (Ticket ID 66347) | 21300 |
| Spawning a process remotely no longer causes the remote procnto to leak file descriptors. | 21182 |
| The pv utility now displays images correctly on PPCBE. | 20732 |
| The gdb debugger no longer displays a “Compiled with unknown debugging format” warning. | 20658 |
| The tftp utility no longer terminates with a floating-point exception when printing statistics from a get or put command when you're using verbose mode. | 20615 |
| Setting the Pt_ARG_SCROLLBAR_WIDTH resource for a PtList or for a compound widget that includes a PtList now has the correct effect. | 20431 |
| The tftp utility no longer faults if you press Enter at the “To” prompt without supplying the host parameter. | 20064 |
| The IDE's Debug Variables view no longer lists the this pointer twice. | 20063 |
| The open dropdown list for a PtComboBox is longer displayed in front of the “blank” screensaver. | 19767 |
| We now ship comm, a POSIX utility that selects or rejects the lines that are common to two files. | 19760 |
| Signals are no longer left pending on SMP systems. | 19321 |
| If you use PpSetPC() with Pp_PC_FILTER or Pp_PC_DRIVER, the print context now correctly uses the specified print filter. (Ticket ID 64836) | 19182 |
| The nto*-* binutils are now built for specific targets; there are no more ntomulti- variants. | 19174 |
| The getcwd() function now follows POSIX, which states that the returned path won't contain components that are symbolic links. You can revert to the old behavior by exporting the DIR_KEEP_SYMLINK environment variable. example (new default POSIX behaviour): # cd /tmp # mkdir adir # ln -s adir alink # cd alink # /bin/pwd /tmp/adir example (old behaviour) # DIR_KEEP_SYMLINK=1 sh # cd /tmp # mkdir adir # ln -s adir alink # cd alink # /bin/pwd /tmp/alink | 18912 |
| Multiple concurrent calls to shm_unlink() for the same shared memory object no longer cause kernel corruption and crash the kernel. | 18121 |
| Phindows now supports alpha-blended images with a global source value (i.e. a constant alpha multiplier for all pixels). (Ticket ID 63678) | 17548 |
| The IDE now supports extensions of cpp and cxx for C++ source files. | 17409 |
| The micro-embedded shell, uesh now accepts a script file as an argument. | 17048 |
| Photon has improved window moving performance on SMP machines. | 17017 |
| The phditto program now flushes serial connections after an open(). (Ticket ID 62119) | 16733 |
| Phrelay message headers now support 32-bit sizes, eliminating draw buffer overflows. | 16565 |
| The mountpoint specification is optional for fs-cifs, fs-nfs2, and fs-nfs3. | 15446 |
| You can no longer link a program that doesn't have a main() function. | 15055 |
| Our implementation of dlopen() now supports RTLD_NEXT. | 13416 |
| You can now use the Tab key to complete the names of files and commands in ksh. | 13090 |
| The snapshot utility now works in a phditto session. | 11487 |
| We've changed the message send/signal pending/sync waiting queues to a new data structure so that we can quickly find the proper insertion point for new items, maintaining a priority-ordered list. This improves performance when (for example) many pulses are queued. | 10963 |
| 24-bit memory contexts now work correctly on PPCBE. | 10751 |
| Change | Ref# |
|---|---|
| The n argument to the mbsrtowcs() and mbstowcs() functions is the number of wide characters, not the number of bytes. | 62130 |
| We've added posix_spawn() to the description of process primitives in the Process Manager chapter of the System Architecture guide. | 61972 |
| We've removed pthread_once(), pthread_testcancel(), pthread_setcancelstate(), and pthread_setcanceltype() from the list of POSIX pthread*() functions that don't involve any microkernel thread calls. See the QNX Neutrino Microkernel chapter of the System Architecture guide for the corrected list. | 61870 |
| In the Profiling an Application chapter in the IDE User's Guide, various procedural steps and their corresponding figures were updated to reflect the new and updated features in the Application Profiler tool. For information about these enhancements, see the What's New chapter. | 61269 |
| The Common Wizards Reference chapter in the IDE User's Guide contains information about the new option Use parallel builds on the Behavior tab that lets you determine whether the IDE can perform builds in parallel, and if so, how many can occur. | 61092 |
| A returned value of NULL from readdir() is ambiguous; if you need to determine if it indicates an error (as opposed to the end of the directory stream), set errno to EOK before each call to this function. | 60916 |
| We now package BSPs as zip files (as well as putting them in a repository on Foundry27). We've updated the Working with a BSP chapter of Building Embedded Systems to suit. | 60886 |
| The rtsold daemon now has an -a option that lets you autoprobe the outgoing interface. | 60742 |
| The rwhod daemon now has -i and -u options for setting the broadcast interval and the user to run as. | 60701 |
| The data files that ruptime, rwho, and rwhod use are now in /var/rwho instead of /usr/spool/rwho, to conform to the Filesystem Hierarchy Standard. | 60700 |
| In the chapter Developing C/C++ Programs in the IDE User's Guide, instructions were added to “Creating the equivalent of a make project” that describes how to create a Makefile that can be launched outside the IDE. | 60679 |
| The Migrating from Earlier Releases chapter in the IDE User's Guide was updated to include the steps required to upgrade the IDE for this release. | 60506 |
| QNX SDP 6.4.0 includes a new On-line Technical Support guide that will help you set up your myQNX account, register your support plans, and help you send files to QNX Technical Support. | 60374 |
| We've deprecated crttrap, and it's no longer used by the current architecture. It's been replaced by dispconf and the OS enumerator. | 60303 |
| If you're using Instant Device Activation on an ARM platform, your minidriver handler function must be written as Position Independent Code (PIC). This means that when your handler is in the MDRIVER_KERNEL, MDRIVER_PROCESS, or MDRIVER_INTR_ATTACH state, you must not use global or static variables. | 60274 |
| The What's New chapter in the IDE User's Guide was updated to include the new features and improvements made to the IDE for this release. | 59949 |
| The msync() function sets errno to EINTR if the call is interrupted by a signal. (Ticket ID 84291) | 59870 |
| All references to MIPS were removed from the IDE User's Guide. | 59845 |
| If the number of elements on the specified message queue is equal to its mq_maxmsg, and O_NONBLOCK wasn't set (in the oflag argument to mq_open()), the call to mq_send() blocks. We've corrected the documentation. (Ticket ID 84498) | 59814 |
| The entry for random in the Utilities Reference now describes /dev/urandom in addition to /dev/random. This server sends any error messages to slogger, not to stderr. | 59021 |
| We've updated the description of the default thread attributes in the entry for pthread_attr_init() in the Neutrino Library Reference. | 58991 |
| We've corrected the synopsis for img_load_resize_file() in the Advanced Graphics Developer's Guide. | 58926 |
| The section on time zones in the Neutrino User's Guide now reflects the changes to North American time zones that went into effect March 1, 2007. Note that the libraries interpret short specifications of a time zone (e.g. EST5EDT) according to the new rules. | 58906 |
| We've corrected the prototype for end_of_draw() in the entry for disp_draw_miscfuncs_t in the Graphics DDK documentation. | 58763 |
| We've removed references to Pg_IMAGE_DIRECT_555 from the documentation. It's identical programatically to Pg_IMAGE_DIRECT_1555, but ensure the alpha bit is set accordingly if you're modifying offscreen memory directly. | 58719 |
| The wcstol(), wcstoll(), wcstoul(), and wcstoull() functions are declared in <wchar.h>, not <stdlib.h>. | 58697 |
| If you destroy a mutex by calling pthread_mutex_destroy(), don't reuse it without reinitializing it first by calling pthread_mutex_init(). | 58491 |
| We've removed the lists of entries arranged by category from the Neutrino Library Reference and Utilities Reference. For information about the types of entries, see the index in each book. | 58365 |
| The jtag_reserve_memory() function in the startup library clears the memory only if the resmem_flag argument is zero. We've corrected the description in Building Embedded Systems. | 58131 |
| We've updated the platform-specific limits for SH and ARMv6 in the Understanding System Limits chapter of the Neutrino User's Guide. | 58102 |
| We've corrected the example in the entry for PtFileSel in the Widget Reference. | 57928 |
| In the Building OS and Flash Images chapter in the IDE User's Guide, a workaround was added in “Creating a project for an OS image” to describe how to create an EFS project, because the QNX System Builder EFS Project is no longer available in the Import wizard. | 57853 |
| The chapter Managing Source Code in the IDE User's Guide contains information about the included support for Subversion (the SVN Team Provider and Subversive SVN connectors). For information about using SVN, see “SVN and the IDE.” | 57519 |
| We've removed references to the deprecated flashcmp utility from the documentation, and we updated the “Building a flash filesystem image” section of the Making an OS Image chapter of Building Embedded Systems. | 57499 |
| The kernel keeps an array of the running threads (one per processor); the running thread isn't at the front of the Ready queue. We've corrected the System Architecture guide and the Neutrino Programmer's Guide. | 57392 |
| The start, requires, and driver clauses in the scripting language for enum-devices now support a /wait option that makes the enumerator pause until the command associated with the clause terminates. | 57346 |
| The chapter Using Code Coverage in the IDE User's Guide contains various updates for the new features and improvements made to the IDE for this release. For a list of these enhancements, see the What's New chapter. | 57345 |
| Throughout the IDE User's Guide, many updates were made to include changes based on the integration with the Eclipse 3.3 Platform, and the integration with CDT 4.0. For a list of changes, see the http://www.eclipse.org website. | 57342 |
| We've corrected the descriptions of the bwidth and ileave values for the -s option for the flash filesystem (devf-*) drivers in the Utilities Reference. These values must be powers of 2, but you don't specify them as powers of 2. For example, if the width of the data bus is 8, specify a bwidth of 8, not 3 (for 23). | 57300 |
| We've corrected the information about the alignment of struct stat structures in the data returned by a resource manager. See the “Returning directory entries from _IO_READ” section in the Writing a Resource Manager chapter of the Neutrino Programmer's Guide. | 57274 |
| It's safe to call snprintf(), sprintf(), sscanf(), swprintf(), and swscanf() from a signal handler if you aren't printing or scanning floating-point data. | 57261 |
| We've added the -o option to the entry for traceprinter in the Utilities Reference. You can use this option to send the output to a file. | 57173 |
| Neutrino supports two new filesystem utilities: chattr for changing filesystem attributes, and fsysinfo for displaying filesystem statistics. | 57169 |
| We've updated the sections on limits for the CD-ROM and DOS filesystems in the Neutrino User's Guide. | 56945 |
| We've corrected the note about valid dates in the System Architecture guide. Valid dates on a QNX Neutrino system range from January 1970 to at least 2038. The time_t data type is an unsigned 32-bit number, which extends this range for many applications through 2106. The kernel itself uses unsigned 64-bit numbers to count the nanoseconds since January 1970, and so can handle dates through 2554. | 56749 |
| The System Architecture guide and the Neutrino Programmer's Guide now describe the automatic unmasking and masking of interrupts as handlers are attached and detached. | 56704 |
| The resmgr_handle_tune() and resmgr_iofuncs() functions are declared in <sys/resmgr.h>; we've corrected the documentation. | 56558 |
| It is safe to call ClockCycles() from an interrupt handler. | 56293 |
| We've corrected an example of using message queues with Photon so that it correctly uses mq_notify(). (Ticket ID 82904) | 56130 |
| The Utilities Reference now includes an entry for devn-micrel8841.so. | 56090 |
| If you specify the -V option, the devf-* drivers display the filesystem and MTD version information, and then exit. | 55958 |
| In the Debugging in the IDE chapter in the IDE User's Guide, documentation was added for the Debugger tab to describe the new option Use full path to set breakpoints that lets you set breakpoints for files with the same name in the project, but their paths are different, and you want to ensure that the breakpoints are set for the appropriate file. (Ticket ID 82239) | 55779 |
| The example in the documentation for socketpair() now points out that if you write to fd[0], you read from fd[1], and vice versa. | 55765 |
| The table of UNIX commands and their Neutrino equivalents in the Neutrino User's Guide now includes the Linux dmesg command and its equivalent, slogger. | 55503 |
| It does matter whether or not the name of a typed memory object starts with a slash. We've corrected the documentation for posix_typed_mem_open(). | 55385 |
| The documentation for chkfsys no longer says that the utility prevents itself from operating when files are open for writing on the drive. | 55247 |
| We've updated the default linker specification in the documentation for mkifs. (Ticket ID 82413) | 55150 |
| The bind() function sets errno to ENOTSOCK if the given file descriptor isn't for a socket. | 55103 |
| The handler function that you attach using ado_attach_interrupt() runs in user space, not in the kernel space. | 54999 |
| We've corrected the list of where dlopen() looks for shared objects. | 54951 |
| We've added more details to the documentation for pidin about the information that the fds argument gives. | 54781 |
| The len argument to PgDrawTextArea() specifies the number of bytes required to store the string. | 54218 |
| We've added entries for devh-egalax.so and devh-touchintl.so to the Utilities Reference. | 53593 |
| Resource managers use the _IO_FLAG_* bits internally to indicate permissions; we've updated the documentation. | 53463 |
| The Message Passing chapter of Getting Started with QNX Neutrino no longer says that priority inheritance happens only one level deep. | 53452 |
| We've corrected the description of the SPAWN_CHECK_SCRIPT flag in the inheritance structure in the documentation for spawn(). | 53327 |
| The chapter Debugging in the IDE in the IDE User's Guide contains updated information about the new features in this release. For a list of these changes, see the What's New chapter. | 53306 |
| The Debugging in the IDE chapter in the IDE User's Guide contains information about how to use the Abatron BDI2000 JTAG Debugger, the Lauterbach Trace32 In-Circuit, and the Macraigor Usb2Demon Debugger with a QNX Neutrino kernel image. For more information, see “Using JTAG debugging.” | 53277 |
| The chapter Profiling an Application in the IDE User's Guide contains detailed information about the many new feature updates made to the Application Profiler tool. For a list of these features, see the What's New chapter. | 53262 |
| The chapter Finding Memory Errors in the IDE User's Guide contains information about how to export trace data session information in either CSV or XML format, and how to import memory analysis sessions from a trace file or XML format. | 53241 |
| The Debugging in the IDE chapter in the IDE User's Guide contains information about how to use various JTAG debuggers to write a QNX Neutrino image directly into RAM. | 53222 |
| The Utilities Reference now includes an entry for devn-rtl8169.so. | 52783 |
| We've updated the phs-to-pcl filter to be based on HP's Appliance Printing Development Kit (APDK), a library that generates PCL output for a wide range of HP printers. | 52595 |
| ConnectAttach() can give an error of ENXIO; we've updated the documentation. | 52523 |
| We've corrected the example in the documentation for pthread_cond_timedwait() so that it will work for timeouts of less than one second. | 52174 |
| The System Architecture guide, the Neutrino User's Guide, and the Utilities Reference now describe the Power-Safe filesystem, fs-qnx6.so. | 52024 |
| We've corrected the list of options in the entry for calib in the Utilities Reference. | 51964 |
| The accept() function gives an error of EINVAL if you called it on a socket that you hadn't called listen() on. | 51915 |
| The mem_offset() function gives an error of EOVERFLOW (not E2BIG) if the address is too large for the 32-bit off_t. | 51779 |
| The ntpd daemon adjusts the operating system's time, but doesn't set the hardware clock; you can use rtc to do this. | 51161 |
| The timeout value starts timing out when you call TimerTimeout(), not when the blocking state is entered. It might be possible to get preempted after calling TimerTimeout() but before the blocking kernel call. We've mentioned this in the documentation. | 50428 |
| We now support a read-only Universal Disk Format filesystem, via fs-udf.so. | 50246 |
| We've corrected the description of CLOCK_SOFTTIME in the entry for timer_create() in the Neutrino Library Reference. | 50115 |
| We've updated the entries in the Neutrino Library Reference for _RESMGR_NPARTS() and _RESMGR_PTR() to clarify that these macros return the negative of the number of parts (to distinguish the number of parts from error codes that the resource manager's handler functions might return. A return of -1 from iofunc_notify() thus indicates success. (Ticket ID 79542) | 50026 |
| The I2C framework currently implements only a single-threaded resource manager; we've corrected the I2C (Inter-Integrated Circuit) Framework technote. | 49900 |
| The phshutdown utility has a new -u option for “unattended” shutdown. This initiates system shut down without displaying the shut down type dialog. | 48161 |
| Our documentation for pppd now links to the NetBSD documentation, which includes the exit codes for the daemon. (Ticket IDs 78436, 83868) | 47882 |
| In the chapter Finding Memory Errors in the IDE User's Guide, a note was added to “Analyzing a running program” to describe that if a program uses fork, the control thread of the Memory Analysis tool must be disabled because attaching the Memory Analysis tool creates a second thread, and fork only works with single-threaded programs. In addition, steps were added to show how to disable the control thread option for memory analysis. | 47858 |
| Qnet doesn't support the combination of bind=ip and resolve=file. (Ticket ID 77285) | 47612 |
| We've documented the retries, timeout, and verbose options for cam-cdrom.so, cam-disk.so, and cam-optical.so. | 46821 |
| The Help icon for the Introduction step in the “Neutrino Inter Process Communication” cheat sheet now correctly links to the help topic about “Inter Process Communication.” | 46147 |
| The chapter on Qnet in the System Architecture guide now describes how you can use the tx_retries option to control how long it takes Qnet to decide that a link is down. | 46000 |
| We're now using the NetBSD 3.0 version of tftpd, so we've updated its entry in the Utilities Reference. | 45378 |
| The description of disp_mode_info_t in the Graphics DDK documentation now describes the max_virtual_height and max_virtual_width fields. | 42401 |
| The entry for devi-hid in the Utilities Reference no longer refers to calib; you need a calibration file only for touchscreens. | 42252 |
| We've corrected the description of the abort() function in the Neutrino Library Reference. | 41794 |
| We've corrected the description of the %a and %A formatting codes for the -fprintf and -printf arguments to the find command. | 41544 |
| The socket() function sets errno to EAFNOSUPPORT if the specified address family isn't supported. | 41440 |
| We've corrected the information about returning struct stat structures from a resource manager. See the “Returning directory entries from _IO_READ” section in the Writing a Resource Manager chapter of the Neutrino Programmer's Guide. | 41335 |
| The Interprocess Communication chapter of the System Architecture guide now includes a section on typed memory. | 41310 |
| The qconfig utility doesn't list the packages in any particular order. | 40881 |
| The documentation now mentions that if you use slay to change the runmask for a process, the processor for blocked threads doesn't change until the threads become unblocked (or never if the threads remain blocked). | 40730 |
| The documentation for InterruptAttach() no longer implies that Neutrino supports paging. | 40135 |
| The entry for malloc() in the Neutrino Library Reference now describes the environment variables that you can use to control memory allocation. You can also set these variables with mallopt(). | 39608 |
| We've corrected the descriptions in the Neutrino Library Reference of what iofunc_fdinfo_default(), iofunc_lseek(), and iofunc_lseek_default() return. | 39595 |
| The Writing an Interrupt Handler chapter of the Neutrino Programmer's Guide now has a section on the potential problems of using shared interrupts. | 39363 |
| The entry for mkifs in the Utilities Reference now includes the -s option, which you can use to specify which sections of an ELF binary not to strip. | 39285 |
| We've now documented the asynchronous I/O (aio_*) functions. | 39104 |
| Asynchronous I/O (aio_*()) works across Qnet, but asynchronous messaging (asyncmsg_*()) doesn't. | 39103 |
| If you ask pidin to display thread names, and a thread doesn't have a name, pidin displays the thread's ID instead. | 39027 |
| You don't have to be root in order to set or get a thread name. We've corrected the documentation for pthread_getname_np() and pthread_setname_np(). | 39026 |
| The entry for mount in the Utilities Reference now describes the -a option, which you can use to mount all the devices listed in /etc/fstab. | 38763 |
| We've corrected the description of the MS_CACHE_ONLY flag (a QNX Neutrino extension) in the entry for msync() in the Neutrino Library Reference. | 38584 |
| We've updated the section on multimedia in the System Architecture guide to describe what's in the QNX Aviage Multimedia Suite. | 38498 |
| The Writing Shell Scripts chapter of the Neutrino User's Guide now has a section on the handling of the #! line of a script. | 38464 |
| For portability, use pthread_sigprocmask() instead of sigprocmask() in multithreaded processes. | 38215 |
| We've expanded the entries for posix_typed_mem_get_info() and posix_typed_mem_open() in the Neutrino Library Reference. | 38122 |
| We've corrected the description of the contig_len argument in the entry for posix_mem_offset() in the Neutrino Library Reference. | 38121 |
| We've updated the sample programs in the Audio Developer's Guide. | 29922 |
| We've corrected the example in the documentation for mq_timedreceive(). | 29795 |
| The documentation for ham_action_control() now says that when an action item is enabled (the default), it's executed when the condition associated with it is triggered. | 29791 |
| The entry for SchedCtl() and SchedCtl_r() in the Neutrino Library Reference now mentions that the SCHED_APS_JOIN_PARTITION command indicates an error of EINVAL if the partition with the given ID doesn't exist. | 29298 |
| The depth member of the AOAudioFormat_t structure is in bytes, not bits. | 28572 |
| The entry for devc-sersci in the Utilities Reference now lists the FIFO and RTS trigger values for the SH7760, 7770, and 7780. | 27945 |
| The documentation for flashctl now describes the filesystem information that it displays if you specify the -i option. | 27875 |
| The documentation for phrelay now mentions the /etc/system/config/noditto file. If this files exists, then users aren't allowed to ditto existing Photon sessions. | 27146 |
| If io-pkt runs out of threads, it sends a message to slogger, and anything that requires a thread blocks until one becomes available. | 26568 |
| We've updated the usage message and documentation for tracelogger to reflect the current options. (Ticket ID 73381) | 26514 |
| In PhAB, you can now hold down Shift and drag a widget by its resize handle. | 26437 |
| If an Ethernet packet is shorter than ETHERMIN bytes, padding can be added to the packet to reach the required minimum length. In the interests of performance, the driver software doesn't automatically pad the packets, but leaves it to the hardware to do so if supported. If hardware pads the packets, the contents of the padding depend on the hardware implementation. We've mentioned this in the Core Networking User's Guide. (Ticket ID 66506) | 25338 |
| The entry for _amblksize in the Neutrino Library Reference now describes how and when you can change the value of this variable. | 25273 |
| The entry for tinit in the Utilities Reference now describes how the utility parses its configuration file. | 24931 |
| If name_attach() creates a channel, the channel will have the _NTO_CHF_DISCONNECT, _NTO_CHF_COID_DISCONNECT, and _NTO_CHF_UNBLOCK flags set. | 24908 |
| There are now entries for ham and hamctrl in the Utilities Reference. | 24739 |
| The df utility rounds its figures into 512- or 1024-byte blocks (depending on the options), and it always rounds down. If the filesystem doesn't use a block size that's a multiple of 512 bytes, some rounding errors will occur. We've noted this in the entry for df in the Utilities Reference. | 23715 |
| PtWebClient now supports three new Pt_ARG_WEB_OPTION options to control how Javascript displays dialogs: "fDisableJavascriptAlert", "fDisableJavascriptConfirm" and "fDisableJavascriptPrompt". These options are supported in Netfront only. | 23297 |
| We've corrected the list of flags that you can specify when you call the experimental asyncmsg_channel_create() function. | 23137 |
| We've updated some examples in Building Embedded Systems to use fs-nfs3 instead of fs-nfs2. | 22936 |
| Specifying the -as option to procnto on SH platforms is the same as specifying -ad, not -ae. | 22858 |
| The documentation for pidin now describes the syspage argument. | 22599 |
| We've updated the list of supported adapters in the entry for devb-ncr8 in the Utilities Reference. | 22482 |
| We've added some information about enabling and disabling hardware checksumming to the entries for devn* in the Utilities Reference. | 22051 |
| If a name server isn't responding, there's a timeout of 1.5 minutes per name server. You can't change this timeout, but many TCP/IP utilities have a -n option that you can use to prevent name lookups. (Ref# 21660; Ticket ID 66749) | 21660 |
| A note was added to “Controlling your profiling sessions” in the Profiling an Application chapter in the IDE User's Guide to define the meaning of the term Unknown, and to describe the circumstances when binaries and libraries would appear in the Tree view. | 21177 |
| We've added the pauseignore and pausesuppress options to the entry for devn-i82544.so in the Utilities Reference, and updated the default values for the receive and transmit options. | 20893 |
| There's now an entry for phrelaycfg in the Utilities Reference. | 20709 |
| We've made some minor corrections to the entry for slogger in the Utilities Reference, including the description of /dev/console, what happens when multiple applications open /dev/slog for reading, and the example of alternating between files. | 18978 |
| We've corrected the description of _amblksiz in the documentation for malloc(). | 18003 |
| The entry for phuser in the Utilities Reference now explains how to choose an icon to represent a user in the login screen. | 17889 |
| The thread that receives a sigevent of type SIGEV_SIGNAL_THREAD depends on the functions associated with the sigevent. The documentation now specifies which thread gets the sigevent. | 17720 |
| The documentation for the resource database manager (rsrcdbmgr_*) functions now describes the use of names for resources. | 16828 |
| The Dynamic Linking chapter of the System Architecture guide now gives the correct order of locations where the runtime linker searches for shared libraries. | 16407 |
| The bootfile in a mkifs buildfile typically sets the _CS_PATH configuration string, and might set _CS_LIBPATH. The documentation now states that you can set environment variables, such as PATH and LD_LIBRARY_PATH, in a script file. | 16063 |
| We recommend that you use dinit to initialize the filesystem, and dloader to make it bootable. The dinit bootloader options are for backwards compatibility reasons, but aren't generally used anymore. | 15828 |
| The entry for pppd in the Utilities Reference now refers you to the NetBSD documentation for most of the information. Our documentation describes the Neutrino-specific options. | 15616 |
| The description of the rsrc_request_t structure in the documentation for rsrcdbmgr_attach() now includes the RSRCDBMGR_FLAG_NAME and RSRCDBMGR_FLAG_LIST flags, and the name member. | 14438 |
| We've removed the entries for the board-specific devf-* drivers from the Utilities Reference. All the flash filesystem drivers use the same options as devf-generic. | 12749 |
| We've added more details about thread priorities and how to change them. See “Scheduling algorithms” in the Programming Overview chapter of the Neutrino Programmer's Guide, as well as the System Architecture guide and the entries for the associated functions in the Neutrino Library Reference. | 12218 |
| The PtBarGraph widget is now documented. | 10082 |