Date of this edition: July 08, 2010
Target OS: This development platform produces software that's compatible with targets that are running QNX® Neutrino® 6.5.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 on VMware Workstation 6.5 or 7.0, VMware Player 3.0, and Microsoft VirtualPC 2007. We provide a VMware image of a runtime installation of QNX Neutrino; for more information, see “Using the VMware image of a QNX Neutrino runtime system,” below.
If you intend to use the QNX SDP on VMware, to ensure that VMware is supported for your host, search the compatibility guide located at http://www.vmware.com/resources/compatibility/search.php.
If you find problems with any virtualization environment, please post your findings in one of the forums on our Foundry27 community website.
|
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 key improvements in 6.5.0 include:
You need to rebuild BSPs and QNX Aviage middleware to use the ARM Cortex A9 variant. |
For more details, see the following sections:
This release provides better support for Advanced Programmable Interrupt Controller (APIC) chipsets. Some newer systems contain APIC chipsets and may not run with the provided release package. If you are using a computer that supports APIC chipsets, you should download and install the APIC-enabled Neutrino ISO from the QNX Software Development Platform 6.5.X folder in download center located at: http://www.qnx.com/download/group.html?programid=20905
The APIC-enabled CD is known to work on x86 ICH4/5/7/8/9/10-based systems as well as VMware Workstation (6.5.4 Windows host), and Fusion (3.x). We are currently in the process of testing and providing support for additional platforms.
This ISO image boots using startup-apic and pci-bios-v2 and will install a new boot image called qnxbasesmp-apic.ifs. This is the default image for normal booting. |
If you've installed the SDP from the x86-only CD, or if you've installed using the APIC-enabled version of the x86-only CD from the download center and you want to target non-X86 platforms for development, you must manually install the non-x86 targets. To install the non-x86 targets:
Use /fs/cd0/repository as the source path below; otherwise you must manually transfer the packages from the DVD. Place the files in a location on your local file system. This is your source path. |
qinst d /fs/cd0/repository/FN | tar -zx -f-
where FN is a qnx6xxx.tarx file above.
There's a new -T option for all startup programs that prevents the setting of this field, so that the kernel will set it the first time you call ClockTime() to change the time of day. This is useful if the RTC hardware isn't in UTC. (Ref# 67285)
The kernel now uses a variable to tell if it's still handling a previous decrementer interrupt when a new one comes in. If this happens, the kernel just skips the processing of this interrupt.
If you use the interrupt_id_dec(), interrupt_id_dec_smp(), or interrupt_eoi_dec() callouts, you must now specify the INTR_GENFLAG_LOAD_SYSPAGE flag in the genflags field of the intrinfo_entry structure in the board-specific code. |
(Ref# 69528)
If you plan to use more than 8 CPUs on an x86 platform, you must use the 6.5 version of procnto-smp and startup-bios or startup-apic. (Ref# 75180) |
The Freescale e500mc is currently the only PPC to implement these features; it's the only processor for which you should set this flag. Setting it on other processors will have unpredictable results. |
For more information, see the QNX Neutrino for ARMv7 Cortex A-8 and A-9 Processors technote in the online documentation.
Persistent Publish/Subscribe (PPS) is a resource manager that takes control of part of the file namespace to make information available to interested processes:
For more information, see the PPS Developer's Guide in the online documentation.
QNX SDP 6.5.0 introduces a new licensing scheme:
Once you've installed the QNX Software Development Platform, you can find all the license agreements in base_dir/install/qnxsdp/6.5.0, where base_dir is where you installed SDP (see the output from the qconfig command).
For more information about license agreements, see the Licensing area of http://www.qnx.com, or email licensing@qnx.com.
New utilities include:
|
As part of the update to BIND 9.6.1-P2 (see “What's new: Security,” below), we now support:
Other changes include the following:
We've redesigned the buffer cache subsystem of io-blk.so, in order to improve performance. The main changes include:
Performance gains were measured on all platforms: on desktop x86 systems, where the bottleneck was the device, the same throughput is observed but using less CPU load (e.g. 10-25%); on low-end ARM systems, where the bottleneck was OS and memory overheads, the same CPU load achieves greater filesystem throughput (e.g. 2-10 MB/s). Larger cache granularity may require more cache to be allocated at the lower-end (reduced hit density during random operations) although this is mitigated by lower control/overheads (same overall usage).
As a result of this redesign, the following options to io-blk.so are no longer supported:
The following options are new:
Other changes include:
(Ref# 69116, 69788, 72369, 74621, 75622)
Other changes to the filesystems include:
The blacklist for the verify option now includes some bad ISO9660:1999 SVD-mastering utilities.
New features include:
Other changes include:
After 6.5.0, QNX Composition Manager will no longer be included as part of QNX SDP. The current version of QNX Composition Manager will be deprecated. A replacement product will be provided as part of a separate product suite called QNX Screen.
New features include:
phook=ph-rotate-*.so
where * is 90, 180, or 270.
There's a new -C command-line option for io-graphics that causes all client-side surfaces to be allocated for CPU Fast Access. This is important in a system that will use a rotation module, since access to the framebuffer is required, and without this option, access will be made over the bus, introducing serious latency.
There's also a new -L option for io-graphics that forces a PHOOK module to initialize, even if the GPU driver was written with non-linear framebuffer access.
If you're using the ph script to start Photon, you can easily apply this option before Photon is started, by overriding the PHGFX environment variable like this:
export PHGFX="/usr/photon/bin/io-graphics -C"
To load a hook module “on the fly”, use the new PgPHookRegister() function. No surface or layer data is lost during the installation of a hook module. (Ref# 57091, 72066)
Other changes include:
(Ref# 69322, 69235)
As of QNX SDP 6.5.0, the PhAB image library no longer converts JPEGS to palettized images. If you wish to edit a JPEG using PhAB, you must first convert it to a palettized image (such as a GIF) using an external image-editing utility. (Ref# 68393, 68427; Ticket ID 88275)
New functions include:
This function also supports the following flags, which are NetBSD extensions:
(Ref# 74975, 75625)
In order to make it possible to do this, we've appropriated the list field of iofunc_attr_t. Since it was marked as being reserved, this should be no problem, but if you were using this for your own semantics, then you'll have to make sure that you install your own attribute-locking routines. (Ref# 48722, 71135, 71244)
Other changes include:
If your application uses the .a versions of the libasyncmsg library, you must relink it, or else it will hang when used with the new kernel. If your application uses the .so versions of the library, you don't have to relink it. |
You'll need to update and recompile any code that calls this function. |
As a result of this change, ioctl() can now indicate an error of ENOBUFS if there isn't enough memory available to copy the data that the embedded pointers refer to. (Ref# 59556, 71066)
The audio libraries now support:
For more information, see the Audio Developer's Guide.
New drivers:
Other changes:
(Ref# 73847, 75536)
The new drivers include:
Other changes include:
The new drivers include:
Other changes include:
Don't use this option unless you're certain that the default protocol your controller is using is the Egalax protocol. |
If you're using this driver with the USB (devh-usb.so) module, you must specify the igndev option to devh-usb.so, specifying the Egalax vendor and device IDs. (Ref# 74940, 75400)
The new drivers include:
We've also addressed the following:
The What Time is It? technote is now part of the Tick, Tock: Understanding the Neutrino Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide. (Ref# 71500)
procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.3
instead of this:
procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2
That is, you should name the link ldqnx.so.3 instead of ldqnx.so.2. (Ref# 71087)
If the info argument is NULL, ConnectServerInfo() ignores connections with dead servers and skips to the next coid. If info is non-NULL, the function fills in the _server_info structure; for connections with dead servers, it turns on the _NTO_COF_DEAD bit in the flags field of the structure. (Ref# 18264)
(as the shutdown and phshutdown utilities do) to override the default behavior. (Ref# 67819)
See also the “What's New” appendix in the QNX Neutrino Library Reference.
Individual startup programs can override these options and may support
additional board-specific options.
The order of precedence is as follows:
|
See also the “What's New” appendix in the Utilities Reference.
This release addresses the following security concerns:
(Ref# 62889)
We provide a VMware image of a QNX Neutrino runtime system in target/QNX_Eval_RT.zip on the installation DVD; it's also available in the Download area of our website.
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 changes to the QNX Momentics Tool Suite include the following:
For more details, see the following sections:
The QNX Momentics Tool Suite 6.5.0 includes the following versions of the compiler and tools:
We've also implemented lazy binding, RTLD_LAZY, and lazy loading; For more information, see the Compiling and Debugging chapter of the QNX Neutrino Programmer's Guide. (Ref# 69098, 69752)
New utilities include:
Other changes include:
bind ^i=complete
to your ksh profile.
This change might cause problems with existing scripts that assume the old behavior still occurs. |
(Ref# 72014)
You can specify these attributes in the buildfile or in the bootfile. (Ref 71850, 71961)
We've updated the bootfiles for ARM targets to include the big_pages and pagesizes attributes. (Ref# 71962)
Other changes include:
The usage message and documentation now include the following options:
(Ref# 69794, 69803)
By default, pdebug sets LD_BIND_NOW to 1 to force the loading of all lazy-load dependencies. You can prevent pdebug from setting LD_BIND_NOW by specifying the -l (“el”) option. (Ref# 75695)
The QNX Momentics Tool Suite 6.5.0 includes version 4.7 of the IDE, which includes the following new features:
The website for updates and maintenance releases — which you access via
in the IDE — is https://www.qnx.com/account/updates/ide/4.7/.For more information about changes to the IDE, see the What's New in the IDE appendix of the IDE User's Guide.
We generate the QNX SDP binaries with debugging information (-g) and map files. With few exceptions, all binaries are available with debugging information, but this data as well as the .ident information are stripped and stored in a separate binaryName.sym file. These files are linked together, so gdb understands where to find the symbol data.
There's now no need for a separate debug version of all the binaries. There's a separate tar file containing all the .sym files that will untarred alongside each binary. This file is available in the Download area of our website, as well as in the debugging_info directory on the QNX SDP DVD.
What it means to you:
These *-buildid.sym files are in CPU-specific tar files. The usage of these tar files is straightforward. Suppose you want to debug the ls command for x86. You could just add the entire set of debug files to your target (you need to be root, of course):
Then ntox86-gdb $QNX_TARGET/bin/ls would load the debugging symbols from the .sym file automatically. Since this is the full debugging information, you can point gdb at the location of source for ls.
You don't have to extract the entire tar file. In fact all that matters is that the .sym file be in the same directory as the binary. So you could simply copy $QNX_TARGET/x86/bin/ls and the x86/bin/ls-*.sym file (from the debug tar file) to your current directory, and then run gdb there.
In order to get a list of the source files used to build a binary (e.g. to determine the associated licensing), use the .sym file instead of the binary. So continuing with the example above, to get a list of the source files used in building ls, type:
use -s $QNX_TARGET/x86/bin/ls-*.sym
The following items will be removed from the next release of QNX SDP and will become part of a separate product:
The Web Browser Engine in 6.5.0 doesn't include any ARMv7 binaries. |
We've deprecated the CMU version of SNMP that's currently included in QNX SDP, and we'll remove it from the next release. We recommend that you use NuDesign's SNMP instead. For more information, see the Partners area of our website. (Ref# 70524)
Starting with this release, graphics drivers for chipsets that have been out of production for five years will be deprecated. Where possible, the source code for these graphics drivers will be posted on Foundry27.
The following graphics drivers have been deprecated and will be removed from the next release (Ref# 77562):
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.5.0 are:
We've deprecated asynchronous messaging and will discontinue it in a future
release.
(Ref# 69138, 69784)
Nevertheless, we've corrected various bugs in this software. If your application uses the .a versions of the libasyncmsg library, you must relink it, or else it will hang when used with the new kernel. If your application uses the .so versions of the library, you don't have to relink it. |
QNX SDP 6.5.0 contains known issues in these areas:
We're actively investigating all known issues. |
HEAD_LEGACY=1 ./aviage_installer.sh
Workaround: Manually update your PATH, so that it contains only the 6.5.0 version of $QNX_HOST/usr/bin.
sudo apt-get install ia32-libs
Answer “yes” to all the questions. (Ref# 70567)
chmod a+rw /etc/qnx/license/licenses
(Ref# 62419)
Workaround: To display the text correctly, open a web browser and view the license agreement .txt files located in base_dir/install/qnxsdp/6.5.0, where base_dir is where you installed SDP.
If you uninstall 6.5.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.5.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/650foryou.
Workaround: Start procnto with the -mL option.
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: Bind all threads that mask and unmask interrupts so that the threads run only on CPU 0.
Workaround: Reduce the number and size of the environment variables and/or number of file descriptors being manipulated with the posix_spawn_file_actions_t object.
mount -tqnx4 /home/myfs.img /fs/test
and you'll get a mountpoint called /fs/test, which is the size of the file and is formatted as a QNX 4 filesystem.
If you used fs-qnx6.so as the real filesystem on the hardware, and then created a QNX 4 or DOS filesystem inside a file residing on the Power-Safe filesystem, the host filesystem formerly could become damaged by the modifications to the hosted filesystem. We've fixed that, but the host filesystem might not be able to confer full power-loss safety to the (by design) not power-loss-safe QNX 4 or DOS filesystem. (Ref# 74580)
Workaround: Specify the flags again using the -o option for the mount command. For example:
mount -u -o noatime ...
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.
The default value of W is 0.1 (100 millisecs) and, given this value, the following constraints apply:
(Ref# 74128)
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: Use the -R command-line option to diskboot (if you're booting from a CD, press Space when the “Hit space...” appears, and then press F3). Using this option 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: Relink any SH4 binaries that you linked with QNX Neutrino 6.2.1 or earlier.
# uname -a QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle # uname -a | grep renesas QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle # uname -a | grep shle QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle # uname -a | grep renesas | grep shle #
(Ref# 62242)
Workaround: Rebuild the startup binary using QNX SDP 6.5.0. The resulting startup will work with 6.2.1 or later.
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.5.0. For updated source code, see Foundry 27 on our website, or contact Technical Support.
(Ref# 41600)
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: If you encounter problems with this driver, use the io-net driver devn-asix.so instead.
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:
See also the list of host-specific issues, later in these notes.
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: If you're profiling an application on a multiprocessor system, bind all the threads so that they run on processor 0.
Workaround: When you disable Mudflap and enable Application Profiling in the Launch configuration, click Apply, then Close, and then run the application.
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: Use a unique file for MAT output (device or filesystem).
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.
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.
(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.
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: Use the setconf _CS_DOMAIN command to change the domain name to something else, and then change it back to its original value.
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: Relink the applications against the newer version of imglib.a.
Workaround: Do the following:
For more information about display.conf, see io-display in the Utilities Reference.
slay io-display
and then at the prompt type:
io-display -dvid=0x8086,did=MypciDeviceID
where MypciDeviceID is the PCI device ID for your specific device.
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: Use nondirect map mode instead.
Workaround: Do the following:
eval `qconfig -n "Installation_name" -e`
For example, to switch to 6.3.2, run this command:
eval `qconfig -n "QNX Momentics Development Suite 6.3.2" -e`
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
In order to install or use Automated License Management, you must have logged in as an administrator and disable UAC. (Ref# 77791)
Workaround: To disable UAC on your Windows Vista configuration:
You can reenable User Account Control by selecting the Enable UAC line and then clicking the Launch button.
Disabling UAC bypasses some 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, and then start the activation program manually:
/etc/qnx/bin/qnxactivate -a
Workaround: Back up your 6.4.1 licensing library, and then replace it with the 6.5.0 version. For example:
cp /opt/qnx641/host/linux/x86/usr/lib/libqnxlic.so /opt/qnx641/host/linux/x86/usr/lib/libqnxlic.so.original cp /opt/qnx650/host/linux/x86/usr/lib/libqnxlic.so /opt/qnx641/host/linux/x86/usr/lib/libqnxlic.so
gtk-alternative-button-order=1
(Ref# 74831)
Workaround: Turn on the Show icons in menus option (for example, under
on Ubuntu 9.10).someUser@ubu90464bit:~$ qde Gtk-Message: Failed to load module "canberra-gtk-module": /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so: wrong ELF class: ELFCLASS64
(Ref# 71246)
Workaround: In the IDE, select
, and then specify an external browser.Workaround: Do the following:
sudo apt-get install xulrunner
-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner/xulrunner
Workaround: Edit /etc/nsswitch.conf. On the hosts line, move dns from the end to between files and mdns4_minimal.
After you've installed QNX SDP 6.5.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 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.5.0 include the following:
Change | Ref# |
---|---|
The strtol() now correctly parses whitespace in the given string; it now rejects strings in which whitespace appears between the sign and the number. (Ticket ID 00102345) | 77187 |
The devg-i810.so graphics driver now includes a workaround for Intel Errata concerning draw command ring-buffer that could lead to driver lockup on some systems. | 76200 |
The img_load_resize_file() function no longer inverts BMP images. (Case# 101717) | 75766 |
In certain cases, with unaligned clusters on DOS, partial cluster updates could be lost. This has been fixed. | 75712 |
We've fixed certain cases in the IDE where the common.mk file for a QNX Project was corrupted when the properties were saved. (Ticket ID 67456) | 75694 |
wint_t is now declared in the correct C++ namespace. | 75647 |
HAM no longer generates duplicate pulse notifications when you register for both CONDDEATH (which is a superset of CONDDEATH and CONDABNORMALDEATH) and CONDABNORMALDEATH separately. | 75380 |
When thread dies during debugging, the IDE's debugger no longer shows it in the thread list as a duplicate of the previous thread; it's now removed from the list. (Ticket ID 101323) | 75273 |
In the IDE, if you profile a process where multiple threads call the same function, the samples are now assigned to the correct threads. | 75186 |
GLOB_QUOTE is now the default for glob(), as per POSIX. To revert to the former behavior, specify the POSIX GLOB_NOESCAPE flag. | 74975 |
Graphics support for the Intel G35 chipset has been added to devg-i830.so. | 74926 |
Some systems have been found to lock up when using the vsync interrupt for devg-radeon.so. The default behavior of the driver has been changed to poll for vsync.(This was the behavior prior to 6.4.0) A new driver option has been added to allow a user to try to use the vsync interrupt; set use_irq=1 in radeon.conf. | 74853 |
Hardware cursor support has been fixed for the Dell Latitude E5x00. The devg-i830.so driver also restores settings correctly on exit to properly return to the previous graphics mode. | 74817 |
A removable media relearn race condition was corrected. | 74723 |
In a multithreaded application, where one thread is a resmgr thread and another thread calls resmgr_detach(_RESMGR_DETACH_CLOSE), the resmgr thread no longer gets stuck waiting on condvar. | 74691 |
We've updated to OpenSSL version 0.9.8m, which addresses an issue with the SSL 3.0+ and TLS 1.0+ protocols that made them vulnerable to a set of related attacks that allow a man-in-the-middle (MITM) operating at or below the TCP layer to inject a chosen plaintext prefix into the encrypted data stream, often without detection by either end of the connection. (VU#120154) | 74597 |
We've increased the default timeout that devb-umass uses for its initial SCSI inquiry, so that the device has enough time to respond. | 74501 |
Mounting a QNX 4 or DOS filesystem on top of a Power-Safe filesystem (fs-qnx6.so) partition no longer corrupts the Power-Safe filesystem partition. | 74495 |
Breakpoints on constructors and some other C++ methods can cause the IDE's debugger to insert multiple breakpoints per location. These breakpoints are now displayed correctly in the Breakpoints view. (Ticket ID 101196) | 74430 |
The resource manager io-blk would crash when calling xpt_bus_deregister() during eject. This has been fixed. (Case# 100869) | 74385 |
If a low priority thread (Thread A) holds a mutex, and thread A is SEND/RECEIVE blocked on a thread (Thread B), while a high priority thread (Thread C) is waiting on the mutex from Thread A, the priority (from Thread C) is now propagated to both Thread A AND Thread B (note: when the priority is propagated to Thread B, both the current priority and actual priority of the thread change). | 74248 |
Unplugging a USB cable while any process had /dev/serusbX device nodes open caused a memory leak. This has been fixed. | 74077 |
If the _NTO_CHF_GLOBAL flag is set on a channel, and MsgSend() returns success without blocking, the timeout is now correctly cleared. | 74017 |
The mtu command line option for the pppd utility now works as expected. | 73775 |
We've resolved a problem that existed with the vmm_map_xfer() function special-casing xfer_diff()/xfer_prp() based only on the first iov. A multi-iov transfer (where some iovs specify normal user addresses but others specify global addresses) now work correctly. An adjustment was made to the iov base on on individual basis, and the cpu_vmm_fault() handler now checks whether xfer_diff() applies to the faulting address. | 73614 |
The filesystem relearning/remounting activity is now properly locked with respect to client operations. | 73586 |
We've updated the low-level atomicity GCC functions so that they no longer use spinlocks, which failed under certain circumstances (Ticket ID 89892) | 73495 |
A race condition was causing an inconsistent mutex state. This has been fixed. | 73428 |
In calib, the default region size has been increased to support 16-bit touchscreen devices. | 73426 |
We've corrected a problem with Code Coverage in the IDE that caused an internal error. | 73332 |
The io-graphics command no longer faults if you set up your system to not display the cursor by adding cursor=none to the photon section of display.conf. | 73285 |
We've corrected a problem with ARM global mappings that used to cause a SIGSEGV. | 73208 |
We've corrected a problem that existed when there was a pending pthread_mutex_timedlock(), and the mutex owner no longer existed. The cleanup code entered into an infinite loop because it attempted to clear out all of the blocked entries, but instead did nothing for timed locks. We now ensure that the user code is forced out with an EOWNERDEAD error (meaning that the owner of the lock died while holding it). | 73133 |
io-pkt threads are now properly named to better reflect their function. | 73098 |
The macros in <cpuinline.h> use some compiler-specific extensions. We've added __extension__ to the declarations so that you can now use these macros with the -ansi and -pedantic compiler options. | 73061 |
The io-pkt networking stack no longer crashes when you create at least three instances of pppd and then terminate them in the order in which you created them. (Case# 00100180) | 73053 |
We've upgraded BIND to version 9.6.1.-P2 to address the Security SA37426 ISC BIND DNSSEC Cache vulnerability issue. A vulnerability was reported in ISC BIND, where a validating recursive nameserver may incorrectly cache records from the additional section of a query response. If the nameserver is authoritative-only this will not occur. The vulnerability is caused by BIND caching records from the data section of a response without proper DNSSEC verification when resolving recursive client requests with checking disabled (CD), but asking for DNSSEC records (DO). (CERT VU#418861, CVE-2009-4022) | 73038 |
Message passing using global memory on ARMv4 targets no longer causes intermittent failures. | 73036 |
The floating point register F0 no longer gets corrupted on multiprocessor MIPS systems. | 72861 |
We've corrected a race condition that existed on PPC SMP targets when two threads on different CPUs simultaneously called floating point instructions. The calls used to corrupt register f0 on one of the CPUs. | 72860 |
The socklen_t data type is now unsigned to conform with common practice. | 72839 |
Users can now set the force flag when unmounting an io-net driver under io-pkt. | 72826 |
The snmpd agent no longer reports incorrect interface addresses to clients. (Ticket ID 89734) | 72801 |
When a PPP link is shut down, the close() of the TTY is now done in the context of the main io-pkt thread, instead of in the context of the TCP/IP stack thread. If the TTY manager blocks the close(), the TCP/IP stack thread no longer becomes blocked, and so can still service TCP/IP requests. | 72789 |
You can now successfully run the devg-poulsbo.so driver with a resolution of 640x480. | 72768 |
The fs-udfs filesystem now converts invalid filename characters to underscore characters. In addition, we've added the charset= option to allow the overriding of this behavior by specifying a character set mapping of 8-bit characters to Unicode. (Ticket ID 90422) | 72722 |
We corrected a function, which the kernel uses internally to get information about a particular virtual address, so that it works correctly if the address space used in the request is something other than the active address space. | 72699 |
We've addressed a denial of service vulnerability affecting any system using ntpd from xntp2 (1989), such as high CPU usage, excessive disk use due to logging, and significantly increased network traffic. (CERT VU#568372, CVE-2009-3563) | 72603 |
Partial corruption of message data no longer occurs on the PowerPC 440EP. The corruption would take the form of some message data being zeroed. This was as a result of uninitialized memory not being completely zeroed before the message pass was performed; upon first access of the memory by the process, the data would be zeroed. The full destination message area is now fully zeroed and initialized before the message pass is performed. (Ticket ID 90399) | 72554 |
The PPCBE C++ libraries no longer use lwsync instructions to work on E500 targets. (Ticket ID 90375) | 72502 |
The kernel no longer crashes while flashing targets. The error was in the interrupt code generated at run time on the SH family of processors, which led to an incorrect jump if all interrupt ID routines indicated that they didn't own the interrupt; we've corrected the generated interrupt code. | 72386 |
The io-graphics subsystem now has an -a option that enables anti-aliasing on polylines for displays (CRT/LCD).It currently applies only to diagonal lines of width 1. (Ticket ID 89891) | 72316 |
In the IDE, if you copy data from the Application Profiler's Execution Time view to a clipboard, the data for fields that contain both data and an image is now copied correctly. | 72249 |
Added support for getpagesizes(). This feature allows an application to optimize its usage of large pages. | 71950 |
An exception at the wrong time on PowerPC SMP systems no longer causes messages to be truncated. (Ticket ID 88273) | 71289 |
We've addressed a race condition in pathmgr_open(), so that a double free() can no longer occur on an open_entry(). | 71287 |
The IDE's Problems view no longer contains stale or inaccurate information when a project contains files that are linked to files in another project. | 71277 |
We've fixed the SERCTL devctl() to allow multi-line toggles. | 71275 |
Recovery code was causing partition corruption. (Ticket ID 89005) | 71120 |
In-kernel emulation of floating point load/store operations no longer crashes the kernel when multiple load/store instructions are present and cross a page boundary, and the next page's pagetable attributes are invalid. Only the current page is now assumed to be valid; upon reaching a page boundary, the emulation is completed, which means that the next page is validated before the next instruction is emulated. | 71065 |
We've fixed the dial-on-demand feature so that pppd is notified to begin the connection procedure when a packet is sent on the interface and to clean up on disconnection. If the serial device resource manager returns 0 for a disconnected link, we now notify pppd so that it can see the link disconnection even if it isn't the session leader for the controlling terminal (i.e. it was started with the nodetach option). | 71018 |
The io-display manager no longer constantly creates and destroys threads when more than two clients are connected. | 70956 |
The io-display manager no longer leaks memory when more than two applications are running simultaneously. | 70898 |
The following integer types are now defined in <sys/types.h> for System V compatibility if Unix extensions are enabled (i.e. if __EXT_UNIX_MISC is defined): typedef unsigned short ushort |
70892 |
Alpha map processing for rectangles is now processed faster on non-linear access GPUs. | 70526 |
The IDE's System Builder now uses relative paths (or variables) instead of absolute paths where possible in the search paths. (Ticket ID 89203) | 70401 |
Slinger now provides the correct MIME types for cascading style sheets and Javascript files. | 70351 |
If you export the bin and band events from the IDE's Memory Analysis, the data is now sorted by event ID. (Ticket ID 89309) | 70333 |
You can find the cpu_mdriver.c and mdriver.c files (used for Instant Device Activation) in $QNX_TARGET/usr/src/archives/qnx/mdriver-base.zip. | 70278 |
tracelogger no longer causes a kernel crash when run twice in direct mapped mode. | 70265 |
We've updated BIND to version 9.6.1-P2 to address an issue whereby the receipt of a specially-crafted dynamic update message to a zone for which the server is the master could cause BIND 9 servers to exit. (VU#725188; CVE-2009-0696) | 70243 |
The wave utility now correctly checks the value returned by snd_pcm_plugin_set_disable(). We've also incorporated the updated source code in the Audio Developer's Guide. | 70219 |
The devg-flat.so driver now has a configuration file. One of the options in it lets you indicate that the memory is byte-swapped, so that the driver will run properly on a big-endian system. | 70110 |
The io-pkt manager no longer misses some interrupt events. | 70093 |
We've corrected an internal function such that calling (for example) chdir( "/") no longer causes memory corruption in the caller's address space. | 69961 |
The devg-flat.so driver is now functional in 6.5.0 (Ticket ID 88856) | 69792 |
You can now set the tracing mode to fast or wide for specific events in the _NTO_TRACE_THREAD class. You can also do this for events in the _NTO_TRACE_PROCESS and _NTO_TRACE_VTHREAD classes, but there's currently no difference between the data for fast and wide mode for these classes. | 69613 |
Signal delivery while the thread stack is unmapped will no longer cause a kernel crash. | 69586 |
The size of the read buffer was increased to 32 KB in devf to improve the file reading throughput. | 69578 |
Board-specific startup code using the interrupt_id_dec(), interrupt_id_dec_smp(), or interrupt_eoi_dec() callouts must now have the INTR_GENFLAG_LOAD_SYSPAGE flag specified in the genflags field of the intrinfo_entry structure. | 69528 |
The kernel no longer crashes when there are two threads blocked on a channel -- the first one being a local thread, the second being a remote thread -- and you destroy the channel. | 69500 |
The correct Pg_LAYER_FORMAT_* value is now returned in the PgLayerCaps_t format member. | 69322 |
In the IDE, you can now disable a builder for a QNX Project. | 69291 |
In the IDE's System Profiler, it is now possible to have two or more editors operating independently of each other based on the filters selection. | 69249 |
OTF (OpenType Font) types are supported now. Users should discontinue using T2K-fm and T2K-cache libraries as they have been merged into the T2K library. The T2K_BorderFilerParams structure has changed. The R,G,B members have been renamed into Red, Green, Blue respectively. |
69112 |
You can now set the source viewport of a layer (for panning/scrolling) in devg-gma9xx.so. | 69038 |
PpPrintWidget() no longer faults when reading a file into a stack buffer. (Ticket ID 88599) | 68995 |
Threads are no longer left in the STOPPED state when a process dumps core. | 68948 |
The etfsctl utility can now read raw partitions at a specified offset. | 68911 |
The statvfs() function now reports the correct number of free files on an ETFS when long filenames are used. | 68898 |
The make command on Windows XP now correctly parses the MAKEFLAGS. | 68853 |
We've corrected the options in the usage message for devi-microtouch. | 68795 |
Mounting Qnet over IP caused an undetached thread to be listed as 'dead' in the list of active threads. This has been fixed. (Ticket ID 88501) | 68794 |
Improvements have been made to gf_draw_finish() and gf_draw_flush() with respect to drivers that don't require layer_flushrect() updates. If your application is linked statically against libgf.a, we strongly recommend that you relink it. | 68760 |
Fixed an issue where pppd used to fault when passing an environment to a /etc/ppp/ip_up script. | 68688 |
The etfsctl utility can now write a file into a raw etfs partition at a specified offset. | 68671 |
Line joins are now supported in Photon's dashed thick lines. Previously the joins were ignored, even if they were set. If you have erroneously set the line join with dashed thick lines, and had not intend to, you will have to change your code. | 68641 |
The /var/chroot/sshd directory is now correctly owned by root:root with permissions of 0755. | 68628 |
We've updated our port of the HP APDK to a newer version to fix a number of bugs and add new printer support. | 68586 |
Photon applications no longer SIGSEGV if the font manager isn't running. | 68517 |
In situations where a thread with sporadic scheduling policy called MsgSend() and its budget was exhausted, internal kernel data structures were left in an inconsistent state. Note that this only happened if sporadic scheduling was used. |
68512 |
If the priority of every server thread in devf-generic is boosted because of a SEND-blocked client, the original priorities are now correctly restored upon receipt of the client's message; as a result, low-priority threads no longer perform long, time-consuming tasks at a high priority. (Ticket ID 88359) | 68497 |
The io-pkt manager no longer becomes reply-blocked when you use pppd with a serial port. | 68456 |
For floating point emulation, faults that used to be reported in the emulator are now reported against the instruction that caused the fault. (Ticket ID 88277) | 68330 |
If both ppc variants (spe and regular) are created in the same project and at least of them enabled both would be build. | 68221 |
The hardware cursor is now functional on some newer Intel chipsets with devg-i830.so. | 68190 |
The applypatch utility no longer tries to apply .tar files that aren't structured as a standard patch. | 67764 |
In the PPC floating point emulation library, we've corrected the emulation of the mcrfs opcode, and we've completed the emulation of the mffs, mtfsb0, mtfsb1, mtfsfi, and mtfsf opcodes (the L, W, and Rc fields weren't handled). (Ticket ID 87996) | 67553 |
The entry for devn-micrel8841.so in the Utilities Reference now points out that this driver supports only PCI versions of the Micrel 8841 (1 port) and 8842 (2 port) Ethernet controllers. | 67333 |
Paletted PNGs are now supported by the Advanced Graphics Imaging Library PNG codec. (Ticket ID 87663) | 66799 |
If a server calls ConnectClientInfo() on a disconnected coid, the function now gives an error of EINVAL instead of EFAULT. | 66687 |
The devg-matroxg.so driver no longer enables the vsync IRQ when the “wait for vsync” function is configured to poll for vsync. | 66613 |
The Rx and Tx counts are no longer reported as 0 after you slay pppd. | 66127 |
In the IDE, the File Navigator was updated to include an address bar so that you can enter or copy a path. | 65003 |
We've updated the devg-vmware.so driver so that certain applications are now displayed correctly. | 64787 |
We've added a simple LRU buffer cache to inflator, to improve random seeking within a file. (Ticket ID 86706) | 64569 |
If you use direct mode with the devg-i830.so driver, images now all appear correctly on the display. | 63977 |
The same timing resolution rate that was used for io-net is now used for io-pkt. As a result, io-pkt now uses less CPU time that it used to when performing background maintenance operations. (Ticket ID 86055) | 63007 |
Issues have been found with the version of OpenSSH that ships with NetBSD 3.x, NetBSD 4.x, and NetBSD-current. The two known security issues include X11 session hijacking (CVE-2008-1483) and a bypass of the ForceCommand directive (CVE-2008-1657). We now use OpenSSH 5.2, which contains the appropriate fixes. | 62889 |
We've suppressed an informational message concerning truncation that appears when you start an ETFS. Since this message doesn't indicate an unrecoverable error, it's now displayed only if you start the filesystem with a verbosity of one or greater. (Ticket ID 84762) | 61433 |
We've fixed a race condition between kernel no-op processing and pthread_cancel(). | 59261 |
We've renamed the -n option for the cp command to be -u, to be consistent with other platforms. The -n option is still recognized. (Ticket ID 83753) | 57828 |
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 |
When you're unmapping memory, a mutex is no longer identified as an item to destroy if the process has another mapping to the same page. (Ticket ID 82614) | 55518 |
The IDE's Expression view now lets you format variables as hexadecimal and other formats. | 52773 |
The High Availability Manager now automatically switches to monitoring the new process that daemon() creates, if the original process was a self-attached entity. (Ticket ID 80845) | 52131 |
In the IDE, the Memory view as ASCII now supports 64 and 128 columns. | 46977 |
The IDE's Text Editor now supports block selection. Press Alt-Shift-A to toggle block selection on and off, or alternatively use the Toggle Block Selection toolbar button. After that, you can use Ctrl-C to copy text in the selected rectangle. | 44183 |
You can now get and set the Pt_ARG_CWELL_SWATCH_DIM resource for a PtColorWell widget. | 41596 |
The netmanager utility now correctly honors the disabled parameter. | 40445 |
We've corrected a race condition that could have occurred when the Adaptive Partitioning Scheduler detected that a partition became bankrupt on an SMP system. | 38762 |
A new PxRotateImage() function for rotating images 0, 90, 180, or 270 degrees has been added. PNG images containing palettes with alpha information are now processed properly by Photon image routines. | 37475 |
gf_display_devctl(), gf_i2c_read(), gf_i2c_writeread(), and gf_i2c_write() now return GF_ERR_TOOBIG when internal limits are exceeded. | 29568 |
slinger can now write form variables to a dataserver. (Ticket ID 69008) | 24555 |
On SMP systems, the functions that lock mutexes -- such as pthread_mutex_lock(), and pthread_cond_wait() (when the thread is woken up by a pthread_cond_signal() or pthread_cond_broadcast() -- no longer unblock threads in the wrong order. | 24522 |
The serial (devc-*) drivers now check to make sure that memory allocations were successful. | 24309 |
Palette matching has improved. (Ticket ID 68240) | 24289 |
Change | Ref# |
---|---|
The default USB stack is /dev/io-usb/io-usb, not /dev/usb. We've corrected the documentation for devh-usb.so, devb-umass, devh-touchintl.so, devh-egalax.so, devn-asix.so, devu-prn, devu-mouse, devu-kbd, and devh-microtouch.so. | 77612 |
The documentation for ThreadCreate() now says that you can use __tls() to get a pointer to thread local storage. | 77345 |
An error of EINVAL from clock_settime() could mean that tv_sec is -1. We've updated the entry for clock_settime() in the QNX Neutrino Library Reference. | 76708 |
A VLAN tag is a 12-bit number, not a 16-bit number; we've corrected the documentation for ifconfig. | 76665 |
We've corrected the names of SCHED_APS_SCHEDPOL_FREETIME_BY_RATIO and SCHED_APS_SEC_OFF in the Adaptive Partitioning User's Guide and the QNX Neutrino Library Reference. | 76632 |
The PRE_TARGET and POST_TARGET variables in a recursive makefile are lists of targets, not commands; we've corrected the description of them in the QNX Neutrino Programmer's Guide. | 76394 |
We've corrected the instructions for getting information about running drivers in the Working with Filesystems chapter of the QNX Neutrino User's Guide. | 76375 |
In order to unlink a file, you need the appropriate permissions, but you don't have to be root. We've corrected the entry for unlink in the Utilities Reference. | 76289 |
The documentation for ham_action_handle() and ham_condition_handle() now explains how to get a handle for a global entity. | 76201 |
We've added entries for fseeko64() and ftello64() to the QNX Neutrino Library Reference. | 76186 |
In the IDE User's Guide, information was added to the documentation to describe how to instrument a static library with code coverage enabled. You either have to instrument your binary with code coverage, or link with the code coverage library using the -lgcov option. | 76035 |
In the Resource Managers chapter of Getting Started with QNX Neutrino, we've corrected the calculation of the size of the dirent structure so that it takes into account the null character at the end of the name. | 76003 |
Previously, if you started the IDE, it used your current qconfig choice as the default version of the OS. Now, the IDE uses the last installed version of the QNX software that appears in the Select Install list on the Global QNX Preferences page. | 75898 |
The documentation now points out that if inetd encounters any errors, it sends messages to slogger. | 75717 |
The documentation for pthread_rwlock_rdlock() now warns that a deadlock can occur if a thread attempts to recursively acquire a read-write lock for reading, while another thread is trying to acquire it for writing. | 75710 |
The documentation now emphasizes that it isn't safe to use floating-point operations in Interrupt Service Routines (ISRs) or signal handlers. | 75691 |
For the QNX Momentics IDE, the cheat sheet for the Application Profiler example was renamed from “QNX Example Application Profiling Project” to “Call Count and Sampling Profiling”, and a few other updates were made to the instructions to reflect changes made to the user interface. | 75439 |
We've corrected the synopsis for tell64() in its entry in the QNX Neutrino Library Reference. | 75296 |
For the topic “Interpreting Tree mode column information by profiling type”, in the IDE User's Guide, all references to Time were renamed to Deep Time, and Own Time were renamed to Shallow Time. | 75189 |
The documentation for ham now notes that to stop the high-availability manager, you should use either the ham_stop() function or the hamctrl utility. | 75108 |
We've corrected the name of the cfg_file_path option in the example in the documentation for enum-usb. | 75071 |
We've corrected the synopsis of putenv() in the QNX Neutrino Library Reference. | 74976 |
The documentation for mq_open() and mq_unlink() now mentions that these functions indicate an error of ENOSYS if neither mq nor mqueue is running. | 74946 |
The documentation for pci now warns that this utility is intended for debugging purposes; running it on an active system may cause some devices to hang. | 74893 |
For regexec(), we've corrected the naming of the members from rm_sp and rm_ep to be rm_so and rm_eo respectively. | 74884 |
The documentation for fs-dos.so now says that the default value of the fat option is nonrmv. | 74682 |
The QNX Neutrino User's Guide and the documentation for mount now include examples of how to remount a filesystem as read-only and read-write. | 74680 |
The documentation for usbd_string() now points out that the returned string includes a terminating null character, and that the function returns NULL if the string table doesn't exist. | 74659 |
We've added an entry for devb-mvSata to the Utilities Reference. | 74531 |
If you specify SHMCTL_PHYS in the flags to shm_ctl() or shm_ctl_special(), then paddr and size must be even multiples of the page size (sysconf(_SC_PAGE_SIZE)). | 74502 |
The alignment argument to posix_memalign() must be a multiple of size( void * ) that's also a power of 2; we've corrected the documentation. | 74482 |
The gf-calib option for specifying the layer index is -l (“el”), not -I. We've corrected the documentation. | 74316 |
The snd_pcm_plugin_read(), snd_pcm_plugin_write(), and snd_pcm_read() functions indicate an error of EIO if the channel isn't in the prepared or running state. | 74217 |
All x86 startups support a -B option, which you can use (if the BIOS is buggy) to prevent the startup from using the ACPI table to determine the number of logical CPUs. We've updated the entries for the startups in the Utilities Reference. | 74159 |
We've corrected the spelling and description of SHMCTL_HIGHUSAGE in the entries for shm_ctl() and shm_ctl_special() in the QNX Neutrino Library Reference. | 74070 |
The versions of zip and unzip that we ship are for x86 targets only. We don't ship them for Linux hosts. | 73951 |
We've corrected the documentation for wordexp(): word expansion isn't implemented, so this function returns WRDE_NOSYS; it doesn't set errno. | 73799 |
The QNX Neutrino User's Guide now says that devc-con-hid supports USB keyboards in text mode. | 73776 |
The entry for procnto* in the Utilities Reference now describes procnto-booke-smp. | 73236 |
The Composition Manager Developer's Guide now directs you to the Graphics project on Foundry27 for the demonstration programs and tutorials. | 73195 |
In the IDE, for the Memory Analysis Tool, the Trace Details and Statistics views were removed as well as the corresponding documentation. The functionality that these views provided is now available by using the filters on the Memory Events view. In addition, although you can continue to use libmalloc_g.so, use librcheck.so to obtain memory statistics. | 73187 |
In the “Using Mudflap” topic in the Analyzing Memory Usage and Finding Memory Errors chapter in the IDE User's Guide, we've added a warning regarding the use of Mudflap together with Memory Analysis. If your binary is instrumented with Mudflap, you can't run Memory Analysis on it because there'll be a conflict (trying to overload the same functions), and it will cause the program to crash. | 73184 |
The entries for send(), sendmsg(), and sendto() in the QNX Neutrino Library Reference now describe the MSG_NOSIGNAL flag. | 73177 |
We've corrected the description of MALLOC_MMAP_NOZERO. If this environment variable is nonzero, then when malloc() needs to expand the heap, it specifies the MAP_NOINIT flag when it calls mmap(); if the physical memory being mapped was previously unmapped with UNMAP_INIT_OPTIONAL, then the POSIX requirement that the memory be zeroed is relaxed. This environment variable has been supported on all architectures since QNX Neutrino 6.3.2. | 72765 |
We've corrected the documentation for PhCancelDrag(); this function returns a non-negative number (≥ 0), not a positive number (> 0), to indicate success. | 72724 |
The Utilities Reference now includes an entry for startup-bios-32, the startup for PC-compatible systems with a BIOS, using 32-bit physical addresses. | 72656 |
The entry for phs-to-escp2 in the Utilities Reference now lists the supported printer models. The phs-to-* utilities all send any error messages to slogger; some may also send messages to standard error. | 72522 |
We've added some options that were missing from the entry for nfsd in the Utilities Reference. | 72286 |
The documentation now mentions that if you call MsgCurrent() on the rcvid pertaining to a low-priority client, then the priority boost given to your thread by a blocked high-priority thread can be lost. | 72103 |
The entry for gf_draw_spanlist() in the Advanced Graphics Developer's Guide now includes GF_ERR_PARM as a possible error code. | 71972 |
The documentation for the Graphics DDK now explains how you can download the source code for graphics drivers from Foundry27. | 71811 |
The documentation for mq_open() and sem_open() now correctly describe how these functions handle the name argument. | 71752 |
The documentation for mkdir and mkdir() now points out that not all filesystems (such as /dev/shmem, which isn't really a filesystem) support the creation of directories. | 71638 |
The feature to build a System Builder EFS Project type was temporarily removed from the IDE. However, the documentation was updated to include instructions about how to create an EFS project. Follow the workaround instructions found in the topic “Creating a new QNX System Builder project for an OS image” in the Building OS and Flash Images chapter in the IDE User's Guide. | 71607 |
The default value for the MALLOC_ARENA_CACHE_MAXBLK environment variable is 12, not 8; we've corrected the documentation for malloc(). | 71606 |
The devnp-bcm1250.so, devnp-e1000.so, devnp-mpc85xx.so, devnp-rtl8169.so, and devnp-speedo.so no longer accept the promiscuous option because promiscuous mode is controlled by the stack itself. To enable promiscuous mode, use a BIOCPROMISC ioctl() command; there's currently no way to do this from the command line. | 71463 |
POSIX doesn't define any errors for the sleep() functions. | 71356 |
The documentation for sopen() now says that this function gives an error of EEXIST if the O_CREAT and O_EXCL flags are set, and the named file exists. | 71265 |
The SQE (Squelch Test Errors) counter isn't applicable to devnp-e1000.so and devnp-i82544.so, so they use it to track the number of internal Rx FIFO overruns. For more information, see the Utilities Reference. | 71191 |
The MsgSend*() functions can indicate an error of EHOSTDOWN or EHOSTUNREACH if (for example) a send across Qnet failed. | 71131 |
The documentation now states that the name of the runtime linker for MIPS is ldqnx.so.3, instead of ldqnx.so.2 (as it is for other targets). | 71087 |
We've documented the -A and -a options for traceroute, and the -I option for traceroute6. | 71064 |
The entries for aio_cancel(), aio_read(), and aio_write() in the QNX Neutrino Library Reference now include more details about these functions' behavior. | 71049 |
We've corrected the description in the System Architecture guide of how a thread's effective priority is adjusted when it unlocks a mutex. | 70960 |
The documentation for getconf and sysconf() now describes _SC_TZNAME_MAX. | 70875 |
In QNX Neutrino 6.4.0 and later, unsetenv() returns 0 for success, or -1 if an error occurred. We've corrected the documentation. | 70792 |
The QNX Neutrino Library Reference now includes an entry for llabs(). | 70791 |
We've corrected the prototype for pthread_cond_init() in the QNX Neutrino Library Reference. | 70790 |
The QNX Neutrino Library Reference now has an entry for strerror_r(). | 70789 |
We've corrected the prototype for mprotect() in the QNX Neutrino Library Reference. | 70788 |
We've corrected the prototype for timer_settime() in the QNX Neutrino Library Reference. | 70787 |
The freopen() function indicates an error of EBADF if the underlying file descriptor is invalid or doesn't support the requested mode change. | 70786 |
The documentation for fseek() and fseeko() now describes the error codes that these functions can indicate. | 70785 |
The documentation for fcntl() now says that this function indicates an error of EINVAL if the cmd argument is invalid. | 70784 |
The documentation for pthread_mutexattr_getprotocol() and pthread_mutexattr_setprotocol() now describes the PTHREAD_PRIO_NONE protocol instead of saying that it isn't supported. | 70783 |
We've documented munlockall(), which was implemented in the QNX Neutrino Core OS 6.3.2. | 70697 |
The Multicore Processing chapter of the System Architecture guide now explains why a multicore system with n processors might not always run the n threads with the highest priorities. | 70688 |
The documentation for InterruptDetach() now mentions that the thread that detaches an interrupt handler must be in the same process as the thread that attached it, or else the function indicates an error of EPERM. | 70642 |
The devn-asix.so driver now supports the AX88178 chip. | 70621 |
The pthread_mutex_lock() function's behavior when you try to lock a mutex that you already own depends on the type of the mutex, as described in the documentation for pthread_mutexattr_settype(). Note that pthread_mutexattr_settype() provides a more portable way to make a mutex recursive than pthread_mutexattr_setrecursive() does. | 70613 |
The System Analysis Toolkit User's Guide and the documentation for tracelogger now warn you that if the clocks on a multicore system aren't synchronized, then the timestamps will be inconsistent, and the IDE's System Profiler will be unable to load the data. | 70573 |
We've corrected the lists of options and field names in the documentation for ps. | 70527 |
The documentation for diskboot now includes the -f, -i, and -R options. | 70502 |
Before using the CACHE_FLUSH() or CACHE_INVAL() macros on ARM and MIPS platforms, a thread must call ThreadCtl( _NTO_TCTL_IO, 0 ); in order to obtain I/O privileges. | 70432 |
The documentation for hogs now points out that the numbers reported are approximate; for precise data, use tracelogger and the System Analysis Toolkit. | 70390 |
The Clocks, Timers, and Getting a Kick Every So Often chapter of Getting Started with QNX Neutrino referred to pthread_mutex_timedlock() in the section on CLOCK_MONOTONIC, but this function uses only CLOCK_REALTIME. This section now refers to timer_create(), which lets you choose the clock source. | 70328 |
The Process Manager chapter of the System Architecture guide now includes a section on locking and superlocking memory. | 70211 |
The documentation for mem_offset() now emphasizes that if the offset is greater than INT_MAX, mem_offset() gives an error of EOVERFLOW. Use mem_offset64() if this happens. | 70207 |
We've corrected the descriptions of snd_pcm_capture_flush() and snd_pcm_playback_flush() in the Audio Developer's Guide. Don't mix and match plugin- and nonplugin-aware functions in your application, or you may get undefined behavior and misleading results. | 70196 |
We've corrected the name of the memopts option in the documentation for devg-flat.so. | 70133 |
MsgSendPulse() indicates an error of EINVAL if the priority is invalid (e.g. 0). | 69851 |
The description in Building Embedded Systems of the qtime field of the system page now recommends that if the clock on your system drifts, you should make sure that the startup code specifies the correct clock frequency. | 69812 |
The Understanding System Limits chapter of the QNX Neutrino User's Guide now includes a section on the limits for Embedded Transaction Filesystems (ETFS). | 69786 |
In the IDE User's Guide, the documentation in the Analyzing Memory Usage and Finding Errors chapter was updated to describe the new support for grouping, search, and column preferences in the Memory Analysis Tooling views. | 69772 |
In the QNX Momentics IDE, the Memory Events, Memory, Memory Backtrace, and Memory Problems views are now independent views that aren't included in the Sessions view. | 69771 |
The IDE was updated to store its files in the following locations: $HOME/ide-4.7-workspace is the default location, $HOME/ide-4.7-workspace.metadata for the .metadata folder (for personal settings), and $HOME/ide-4.7-workspace/.metadata/.log for the error log. | 69757 |
The section in the Neutrino Programmer's Guide on the /proc filesystem now points out that if you ask for information about a specific thread, and that thread no longer exists, the process manager gives you information about the thread with the next higher thread ID. If all the process's threads have exited, the thread ID in the procfs_status structure is set to 0. | 69739 |
If you call SyncMutexEvent() with a NULL event, the function deletes any existing event registration. | 69639 |
Before calling bind() on an AF_INET socket, set the af_family member of the sockaddr structure to AF_INET. Up until QNX Neutrino 6.4.0, a value of 0 was accepted and assumed to be this value. | 69460 |
If you use MsgSendPulse() to send a pulse across Qnet, the calling thread is blocked (STATE_NET_SEND) while the pulse is delivered to the local Qnet manager, which transmits it to the remote Qnet. The remote Qnet does a MsgSendPulse() on behalf of the caller, and the return value is transmitted back, at which point the calling thread is unblocked. | 69256 |
The default value of Pt_ARG_CBOX_BUTTON_WIDTH is 13, not 17; we've corrected the documentation for PtComboBox. | 68983 |
The syntax for mkdir isn't the same on Windows as on QNX Neutrino. | 68912 |
We've added the -h and -U options to the documentation for telnetd. | 68727 |
We've clarified some of the comparisons between Photon and the Graphics Framework in the Advanced Graphics Developer's Guide. | 68724 |
We've updated the options in the entry for devi-microtouch in the Utilities Reference. | 68712 |
We've corrected the diagram of thread states in the QNX Neutrino Microkernel chapter of the System Architecture guide. | 68711 |
We've corrected some numbers that should have been 2nn, not 2nn in the documentation for random() and srandom(). | 68648 |
We've corrected the syntax for applypatch in the Utilities Reference. | 68568 |
The documentation now mentions that if you call MsgSendPulse() with a priority of -1, the function uses the calling thread's priority as the pulse's priority. | 68542 |
We've added more information about the -u option for devf-generic. | 68507 |
We've corrected the example for the mkifs raw attribute: you don't need to specify this attribute in order to keep PhAB resources in an executable. | 68428 |
In the documentation for the IDE User's Guide, the Finding Memory Errors chapter was renamed to “Analyzing Memory Usage and Finding Memory Errors.” In addition, the topics in this chapter were reordered and modified for technical accuracy; many of the topic titles were renamed as well. | 68303 |
The documentation for unzip and zip now includes the -P option, which you can use to specify a password to use to encrypt and unencrypt archive entries. (Ticket ID 88241) | 68246 |
The documentation for devc-serpci driver now says that the board must use PCI I/O space for the registers, and the ports must be contiguous in memory. | 68128 |
The entry for qconn in the Utilities Reference now describes the -v option, which makes qconn display its version number and then exit. | 68036 |
The section on updating disk drivers in the Controlling How Neutrino Starts chapter of the QNX Neutrino User's Guide now includes instructions for building a new boot image if you're using the Power-Safe (fs-qnx6.so) filesystem. | 67841 |
The entry for PtTreeChangeItem() in the Widget Reference now points out that this function can return a pointer to a new item that your application must maintain. | 67655 |
The documentation now explains that native io-pkt and ported NetBSD drivers don't put entries into the /dev/io-net namespace, so a waitfor command for such an entry won't work properly in buildfiles or scripts. Use if_up -p instead; for example, instead of waitfor /dev/io-net/en0, use if_up -p en0. | 67527 |
The documentation now mentions that the malloc implementation uses signed, 32-bit integers to represent the size internally, and hence you can't allocate more than 2 GB in a single allocation. If the size is greater than 2 GB, functions such as calloc(), malloc(), and realloc() indicate an error of ENOMEM. | 67335 |
The Sample Buildfiles appendix in Building Embedded Systems now describes how to use ldd, objdump, and the DL_DEBUG environment variable to determine which shared objects to include in an OS image. | 66845 |
It's safe to call tti() from an interrupt handler, but it isn't safe to call ttc() from one; we've updated the documentation for the Character DDK. | 66797 |
The documentation for pthread_cond_timedwait() now recommends that you use CLOCK_MONOTONIC, which isn't affected by changes to the system time that way that CLOCK_REALTIME is. The documentation for sigtimedwait() now mentions that this function uses CLOCK_MONOTONIC to measure the time interval. | 66425 |
We've corrected the information in the Audio Developer's Guide about what snd_pcm_plugin_write() returns. | 66265 |
VMWare sessions default to resolution 1024x768 with color depth argb8888. This setting is forced in the enumerator file located in /etc/system/enum/devices/graphics. | 66154 |
The shm_open() function indicates an error of EINVAL if an underlying call to resmgr_open_bind() fails. | 66150 |
The IP Tunneling (Generic Routing Encapsulation) technote now mentions that you need to run io-pkt-v4-hc or io-pkt-v6-hc in order to use GRE. | 65815 |
The Utilities Reference now includes entries for the SSH suite (scp, sftp, sftp-server, ssh, ssh-add, ssh-agent, ssh-keygen, ssh-keyscan, ssh-keysign, and sshd) and its configuration files (/etc/moduli, /etc/ssh/sshd_config, and /etc/ssh/ssh_config). | 65699 |
If you use the tail utility with both -c and the deprecated -l option, the order in which you specify the options is important. For more information, see the Utilities Reference. | 65660 |
The Using the Photon microGUI chapter of the Neutrino User's Guide and the entry for pwmopts in the Utilities Reference now correctly refer to wframe_updated.so, instead of wframe_update.so. | 65310 |
Many reference links in the IDE User's Guide were updated to go to more specific places in the guide. | 64550 |
We've expanded the description of tracelogger's modes of operation, in the Utilities Reference and in the System Analysis Toolkit User's Guide. | 64536 |
You can't call Photon functions from a signal handler; we've corrected the example in the documentation for PgShmemCleanup(). | 63797 |
We've corrected the buildfile that starts TCP/IP with a network filesystem, in the Sample Buildfiles appendix of Building Embedded Systems. | 61535 |
The Utilities Reference now includes an entry for tsort. | 59588 |
In the topic “Importing gcc code coverage data from a project” in the IDE User's Guide, references to .da were updated to .gcda to reflect the gcc files that the IDE currently supports. | 59432 |
We've expanded the list of errors that the spawn*() functions can give. | 59186 |
The documentation for mallopt() now includes more information about the MALLOC_FREE_CHECK, MALLOC_STATS, and MALLOC_VERIFY_ON options. | 58401 |
The Utilities Reference now explains how the DHCP settings you make in phlip are passed to dhcp.client. | 55975 |
The Backtraces technote now mentions that if you're using gdb on a program that uses libbacktrace, you need to tell gdb to pass SIGSEGV and SIGBUS signals to the program for correct operation. | 55283 |
We've documented the return codes for gf_dev_register_thread(). | 54930 |
We've corrected the server.c part of the example for MsgDeliverEvent() so that it handles the IO_CONNECT message sent because of the usage of name_attach(). | 51181 |
The Character DDK documentation now describes how io-char handles read and write requests without blocking the hardware. | 45335 |
We've expanded the description of the arguments to the ttc() function in the documentation for the Character DDK. | 41780 |
The Customizing Image Startup Programs chapter of Building Embedded Systems now describes callout_io_map() and callout_memory_map(). We've also corrected the synopsis of the indirect forms of these callouts. | 40834 |
The Adaptive Partitioning User's Guide now describes how to launch programs in /etc/rc.d/rc.local, specifying the partitions in which they're to run. | 40816 |
The entry for fs-cifs in the Utilities Reference now includes the -o option, which you can use to specify various options concerning the handling of passwords, reconnection timeouts, and the handling of 64-bit filesystems. | 39884 |
The documentation for seekdir() now says that if you call rewinddir() on the directory stream, or if you close and reopen the directory, an offset previously returned by telldir() becomes invalid. | 39492 |
The documentation now says that the off argument to mmap() can be a physical address (e.g. for mapping a device's registers in a resource manager). | 38626 |
The System Analysis Toolkit User's Guide now describes the NTO_TRACE_COMM_* events. | 38156 |
The documentation for syslogd now explains when the log entry includes a host name, and when it includes nto (indicating the local host). | 29965 |
The High Availability Framework Developer's Guide now explains how to get a handle for a global entity. | 29655 |
We've corrected the information about the trace events for MsgSendv() in the System Analysis Toolkit User's Guide. | 29638 |
The kernel now reaps zombies, even if you run a foreground process that doesn't exit in your OS image's startup script. However, running a foreground process that never exits still prevents the rest of the script from being executed. | 29186 |
The documentation for if_up now describes the -l option. | 28321 |
The documentation for devf-generic now describes the output produced if you specify the -v option. | 27874 |
The exec*() and spawn*() functions can give an error of ETXTBSY if the text file that you're trying to execute is busy (e.g. it might be open for writing). | 27277 |
The documentation for tftp now mentions that remote file names must start with a slash. | 26065 |
InterruptAttach() currently ignores the size argument. | 25754 |
The entry for getsockopt() in the QNX Neutrino Library Reference now has a section on setting keepalive timing. | 25719 |
We've corrected the “Returns” section of the entry for getopt() in the QNX Neutrino Library Reference. | 24654 |
We've added the lan option to the documentation for devn-dm9102.so, devn-el509.so, devn-el900.so, devn-epic.so, devn-fd.so, devn-i82544.so, devn-micrel8841.so, devn-ne2000.so, and devn-tigon3.so, and the lan2 option to the documentation for devn-micrel8841.so. devn-tulip.so, and | 23557 |
The QNX Neutrino Library Reference now describes strtof() and strtold(). | 23031 |
We've corrected the documentation for SignalAction() to say that the default action for SIGTSTP, SIGTTIN, and SIGTTOU is to stop the process, and that you can't ignore or catch SIGCONT. We've also described the special QNX Neutrino signals, which you can't unmask. | 22588 |
If you call a spawn*() function and pass NULL for argv[0] or arg0 (depending on which function you use), the function indicates an error of EINVAL. | 22197 |
The PtFlash was deprecated in QNX Neutrino 6.4.0, but its entry in the Widget Reference wasn't completely removed. We've now fully removed it. | 21954 |
We've corrected the list of error codes for pwrite(), send(), sendmsg(), sendto(), and write(). | 21617 |
We've updated and corrected the Making Multiple Images technote. | 20754 |
The documentation for message_attach() now points out that although the low and high arguments are of type int, the function stores the values internally as short. | 20022 |
The default scheduling priority and policy for processes launched from the script file in a mkifs buildfile are specified by procnto, and could change in future versions of QNX Neutrino. If the priority and scheduling policy of the processes are important to you, be sure to use the pri= modifier. | 1834 |
Since signal-catching functions are invoked asynchronously with process execution, you need to take into account the same sort of things that you would in a multithreaded program when inspecting or manipulating shared resources. | 17738 |
We've added EINVAL, EMFILE, and ENOREMOTE to the list of error codes for ConnectAttach(). | 17408 |
We've added more information about the dirent_extra and dirent_extra_stat structures that filesystems can provide as extra data when you call readdir(). | 16157 |