Operating systems, development tools, and professional services
for connected embedded systems
for connected embedded systems
![]() |
![]() |
![]() |
![]() |
Appendix: What's New in this Reference?
This appendix includes:
- What's new in QNX Neutrino 6.3.2?
- What's new in the QNX Neutrino Core OS 6.3.2?
- What's new in QNX Neutrino 6.3.0 Service Pack 2?
- What's new in QNX Neutrino 6.3.0 Service Pack 1?
- What's new in QNX Neutrino 6.3.0?
- What's new in QNX Neutrino 6.2.1?
- What's new in QNX Neutrino 6.2?
- What's new in the QNX Neutrino 6.1.0 docs?
What's new in QNX Momentics 6.3.2?
Errata
- clock()
- This function returns the number of clock ticks, or (clock_t) -1 if the number of ticks couldn't be determined or exceeds the maximum value that the clock_t type can represent.
- GETIOVBASE(),
GETIOVLEN()
- The argument to these macros is a pointer to an iov_t structure.
What's new in the QNX Neutrino Core OS 6.3.2?
Significant changes:
New Content
- posix_typed_mem_get_info(), posix_typed_mem_open()
- New functions for POSIX support of memory-mapping.
- pthread_getname_np(), pthread_setname_np()
- The pthread_getname_np() function retrieves the name of a thread. The pthread_setname_np() function names a thread in your application.
- pthread_attr_getstackprealloc(), pthread_attr_setstackprealloc()
- Get and set the memory to preallocate for a MAP_LAZY stack.
- munmap_flags()
- New function to unmap previously mapped addresses exercising more control.
- SchedCtl()
- Control the adaptive partitioning scheduler
- SIGEV_CLEAR_CRITICAL()
- In adaptive partitioning, make a thread run as noncritical. See sigevent.
- SIGEV_GET_TYPE()
- Determine the type of a sigevent event. See sigevent.
- SIGEV_MAKE_CRITICAL()
- In adaptive partitioning, make a thread run as critical. See sigevent.
Changed Content
- ChannelCreate()
- If you're using adaptive partitioning and you set _NTO_CHF_FIXED_PRIORITY, the receiving thread won't run in the sending thread's partition.
- getrlimit(), getrlimit64(), setrlimit(), setrlimit64()
- Added the following resources:
- RLIMIT_MEMLOCK
- RLIMIT_NPROC
- RLIMIT_NTHR
- RLIMIT_OFILE
- RLIMIT_RSS
- iofunc_open_default()
- The documentation now describes the extra argument.
- mlock(), mlockall(), munlock()
- The documentation now describes the POSIX support for memory mapping.
- mmap()
- The documentation now includes a new MAP_NOINIT flag.
- msync()
- The documentation now describes new MS_CACHE_ONLY flag.
- posix_mem_offset(), posix_mem_offset64()
- The documentation now describes the POSIX support for memory-mapping.
- sigevent
- In the future, the library might use hidden bits in the sigev_notify member of the sigevent structure. Don't compare this member directly to values such as SIGEV_PULSE; use the SIGEV_GET_TYPE() macro.
- spawn()
- The documentation now describes the SPAWN_EXPLICIT_CPU flag and the runmask member of the inheritance structure.
- ThreadCtl()
- The documentation now contains the following commands:
- _NTO_TCTL_NAME
- _NTO_TCTL_ONE_THREAD_HOLD
- _NTO_TCTL_ONE_THREAD_CONT
- _NTO_TCTL_RUNMASK_GET_AND_SET
- _NTO_TCTL_RUNMASK_GET_AND_SET_INHERIT
What's new in QNX Neutrino 6.3.0 Service Pack 2?
New Content
- cache_fini()
- Free cache-coherency resources when the driver is unloaded.
- CACHE_FLUSH()
- Flush cache line associated to a data buffer.
- cache_init()
- Register with the cache coherency library.
- CACHE_INVAL()
- Invalidate cache line associated to a data buffer.
Changed Content
- mq_close(), mq_getattr(), mq_notify(), mq_open(), mq_receive(), mq_send(), mq_setattr(), mq_timedreceive(), mq_timedsend(), mq_unlink()
- Added information about the traditional (mqueue) and alternate (mq) implementations of message queues.
- nanospin(), nanospin_calibrate(), nanospin_count(), nanospin_ns(), nanospin_ns_to_count()
- The nanospin*() functions are designed for use with hardware that requires short time delays between accesses. You should use them to delay only for times less than a few milliseconds. For longer delays, use the POSIX timer_*() functions.
- pci_attach_device(), pci_find_class(), pci_find_device()
- For a list of supported device and vendor IDs, see <hw/pci_devices.h>; for a list of class and subclass codes, see <hw/pci.h>.
Errata
- _cmdname()
- Corrected the information about what this function returns.
- openlog()
- Corrected the name of the LOG_FTP facility.
- pci_attach_device()
- The BusNumber and DevFunc members of the pci_dev_info structure are input/output.
- pci_irq_routing_options()
- This function is for x86 only.
- sem_close(), sem_open(), sem_unlink()
- Named semaphores are now managed by procnto, not mqueue.
- thread_pool_create()
- The description of the block_func member of the thread_pool_attr_t structure has been corrected.
- vfprintf(), vprintf()
- The code samples now compile without warnings.
What's new in QNX Neutrino 6.3.0 Service Pack 1?
New content
- asyncmsg_channel_create()
- Create an asynchronous message channel.
- asyncmsg_channel_destroy()
- Destroy an asynchronous message channel.
- asyncmsg_connect_attach()
- Establish a connection between a process and a channel.
- asyncmsg_connect_attr()
- Return the original connection attributes.
- asyncmsg_connect_detach()
- Break a connection between a process and a channel.
- asyncmsg_flush()
- Flush the messages sent through the connection.
- asyncmsg_free()
- Free a message buffer.
- asyncmsg_get()
- Receive an asynchronous message.
- asyncmsg_malloc()
- Allocate a message buffer for sending.
- asyncmsg_put(), asyncmsg_putv()
- Send asynchronous messages to a connection.
- shm_ctl_special()
- Give special attributes to a shared memory object
Changed content
- getdomainname()
- If the buffer isn't large enough, getdomainname() truncates the domain name.
- getgrouplist()
- The Neutrino implementation of this function ignores the basegid argument.
- mallopt()
- The MALLOC_CKACCESS, MALLOC_FILLAREA, and MALLOC_CKCHAIN options were added to this call.
- MsgReply(), MsgReply_r(), MsgReplyv(), MsgReplyv_r()
- The MsgSend*_r() functions use negative errno values to indicate failure, so you shouldn't pass a negative value for the status to MsgReply*(), because the MsgSend*_r() functions could interpret it as an error code.
- name_attach()
- The example now handles an _IO_CONNECT message.
- nanospin(), nanospin_ns(), and nanospin_ns_to_count()
- The first time that you call these functions, the C library invokes nanospin_calibrate() with an argument of 0 (interrupts enabled), unless you call it directly first.
- pci_attach_device()
- Added PCI_MASTER_ENABLE to the flags.
- procmgr_daemon()
- The data in the siginfo_t structure for the SIGCHLD signal that the parent receives isn't useful in this case.
- rsrcdbmgr_create()
- Added RSRCDBMGR_FLAG_NOREMOVE to the flags.
- setenv()
- This function doesn't free any memory. If you want to change the value of an existing environment variable, you should use putenv() instead.
- sigevent
- If you don't want to modify the priority of the thread that receives the pulse, specify SIGEV_PULSE_PRIO_INHERIT for the priority when you call SIGEV_PULSE_INIT().
- spawn(), spawnp()
- Added descriptions of the rest of the flags for the inheritance structure.
- If you set SPAWN_EXEC in the flags member of the inheritance structure, these functions don't return, unless an error occurred.
Errata
- getsubopt()
- Corrected the example.
- mq_notify()
- Don't use SIGEV_INTR as an event type.
- pause()
- This function suspends the calling thread, not the process, until delivery of a signal.
- pthread_setschedparam()
- The timeslice for round-robin scheduling (SCHED_RR) is 4 * the clock period.
- You can specify sporadic scheduling at any time, not just when you create a thread.
- regexec()
- Corrected the description of the regmatch_t structure.
- sched_get_priority_max(), sched_get_priority_min(), sched_setscheduler(), SchedInfo(), SchedSet()
- The timeslice for round-robin scheduling (SCHED_RR) is 4 * the clock period.
- sched_setscheduler(), SchedSet()
- You can specify sporadic scheduling at any time, not just when you create a thread.
- spawn(), spawnl(), spawnle(), spawnlp(), spawnlpe(), spawnp(), spawnv(), spawnve(), spawnvp(), spawnvpe()
- The child process can't access the parent process's environment, only its own.
What's new in QNX Neutrino 6.3.0?
New content
- fopen64()
- Large-file support for fopen().
- freopen64()
- Large-file support for freopen().
- ftw64()
- Large-file support for ftw().
- getnameinfo()
- Perform address-to-nodename translation.
- inet6_option_*()
- Manipulate IPv6 hop-by-hop and destination options.
- inet6_rthdr_*()
- manipulate IPv6 Router header options.
- ipsec_dump_policy()
- Generate a readable string from an IPsec policy specification.
- ipsec_get_policylen()
- Get the length of the IPsec policy.
- ipsec_set_policy()
- Generate an IPsec policy specification structure from a readable string.
- nftw(), nftw64()
- Walk a file tree and its large-file support.
- poll()
- Input/output multiplexing.
- resmgr_handle_tune()
- Tune aspects of client fd-to-OCB mapping
- sctp_bindx()
- Add or remove one or more addresses from a given association.
- sctp_connectx()
- Help associate an endpoint that is multi-homed.
- sctp_freeladdrs()
- Free all resources allocated by sctp_getladdrs().
- sctp_freepaddrs()
- Free all resources allocated by sctp_getpaddrs().
- sctp_getladdrs()
- Return all locally bound addresses on a socket.
- sctp_getpaddrs()
- Return all peer addresses in an association.
- sctp_peeloff()
- Branch off an association into a separate socket.
- SCTP
- Stream Control Transmission Protocol.
- sctp_recvmsg()
- Receive message using advanced SCTP features.
- sctp_sendmag()
- Send message using advanced SCTP features.
- tmpfile64()
- Large-file support for tmpfile().
What's new in QNX Neutrino 6.2.1?
New content
- dispatch_unblock()
- Unblock all of the threads that are blocked on a dispatch handle
- errno
- Each thread in a multi-threaded program has its own error value in its thread local storage. No matter which thread you're in, you can simply refer to errno -- it's defined in such a way that it refers to the correct variable for the thread. For more information, see "Local storage for private data" in the documentation for ThreadCreate().
- pthread_attr_setschedpolicy().
- Sporadic scheduling (SCHED_SPORADIC) is a new feature of QNX Neutrino 6.2.0.
- sched_param
- Structure of scheduling parameters
- va_copy()
- Make a copy of a variable argument list
Changed content
- bind(), bindresvport()
- These functions aren't cancellation points any more, because this conflicted with POSIX.
- htonl(), htons(), inet_ntop(), inet_pton(), isfdtype(), ntohl(), ntohs()
- These functions have been moved from libsocket to libc.
Errata
- alphasort()
- This function compares two directory entries; it doesn't sort an array of entries.
- execlpe(), execvpe()
- You can now execute a shell script.
- fgetc(), fgetchar(), fgets(), fgetwc(), fgetws(), getc(), getc_unlocked(), getchar(), getchar_unlocked(), gets(), getw(), getwc(), getwchar()
- Use feof() or ferror() to distinguish an end-of-file condition from an error.
- fstat(), fstat64()
- These functions return -1 if an error occurs.
- iofunc_mmap(),
iofunc_mmap_default()
- These functions return a nonpositive value on success.
- InterruptAttach(), InterruptAttachEvent()
- You should always set _NTO_INTR_FLAGS_TRK_MSK.
- mq_getattr(), mq_setattr()
- The mq_flags member of the mq_attr structure applies to the message-queue description (i.e. locally), not to the queue as a whole.
- mq_open()
- Corrected the interpretation of the name argument.
- MsgError(), MsgError_r()
- If the error argument is EOK, the MsgSend*() call returns EOK; if error is any other value, the MsgSend*() call returns -1.
- MsgSendPulse(), MsgSendPulse_r()
- You can now send pulses across the network.
You can send a pulse to any process -- not just to a process in the same process group -- if your process has the appropriate permission.
- name_open()
- This function returns a nonnegative integer representing a side-channel connection ID, or -1 if an error occurred.
- printf()
- The exponent produced for the e and E formats is
at least two digits long.
Clarified what happens if the format string includes invalid multibyte characters.
- pthread_mutex_timedlock(), pthread_rwlock_timedrdlock(), pthread_rwlock_timedwrlock()
- The timeout is based on the CLOCK_REALTIME clock.
- _resmgr_ocb()
- Corrected the name.
- select()
- This function and the associated macros are now defined in <sys/select.h>, instead of <sys/time.h> (which includes <sys/select.h>).
- sem_open()
- Corrected the interpretation of the sem_name argument.
- sem_timedwait()
- The timeout is based on the CLOCK_REALTIME clock.
- send()
- The list of errors now includes EPIPE.
- shm_open()
- Corrected the interpretation of the name argument.
- sigaction()
- Corrected the example (it isn't safe to call printf() in a signal handler).
- spawn(), spawnl(), spawnle(), spawnlp(), spawnlpe(), spawnp(), spawnv(), spawnve(), spawnvp(), spawnvpe()
- You can now execute a shell script.
The child process's tms_utime, tms_stime, tms_cutime, and tms_cstime are now calculated.
- timer_create()
- Don't use SIGEV_INTR or SIGEV_UNBLOCK for the event type.
- vsnprintf()
- Corrected the returned values.
What's new in QNX Neutrino 6.2?
Significant changes:
New Content
- addrinfo
- TCP/IP address information
- dircntl()
- Control an open directory
- freeaddrinfo()
- Free an address information structure
- freeifaddrs()
- Free an address information structure
- gai_strerror()
- Return the getaddrinfo() error code
- getaddrinfo()
- Get address information
- getdomainname()
- Get the domain name of the current host
- gethostbyname2()
- Get a network host entry, given a name
- getifaddrs()
- Get a network interface address
- hwi_find_item()
- Find an item in the hwi_item structure
- hwi_find_tag()
- Find a tag in the hwi_item structure
- hwi_off2tag()
- Return a pointer to the start of a tag in the hwinfo area of the system page
- hwi_tag2off()
- Return the offset from the start of the hwinfo area of the system page
- ICMP6
- Internet Control Message Protocol for IPv6
- if_freenameindex()
- Free dynamic memory allocated by if_nameindex()
- if_indextoname()
- Map an interface index to its name
- if_nameindex()
- Return a list of interfaces
- if_nametoindex()
- Map an interface name to its index
- ifaddrs()
- Structure that describes an Internet host
- INET6
- Internet Protocol version 6 family
- inet_net_ntop()
- Convert an Internet network number to CIDR format
- inet_net_pton()
- Convert an Internet network number from CIDR format to network format
- IPv6
- Internet Protocol version 6
- IPsec
- Internet security protocol
- mallinfo()
- Get memory allocation information
- mallopt()
- Control the memory allocation
- mcheck()
- Enable memory allocation routine consistency checks
- memalign()
- Allocate aligned memory
- mprobe()
- Perform consistency check on memory
- posix_memalign()
- Allocate aligned memory
- procmgr_session()
- Provide process manager session support
- _resmgr_handle_grow()
- Expand the capacity of the device manager database
- _resmgr_io_func()
- Retrieve an I/O function from an I/O function table
- resmgr_iofuncs()
- Extract the I/O function pointers associated with c connection
- _resmgr_ocb()
- Retrieve an Open Control Block
- sched_get_priority_adjust()
- Calculate the allowable priority for the scheduling policy
- seekdir()
- Set the position for the next read of the directory stream
- _sleepon_broadcast()
- Wake up multiple threads
- _sleepon_destroy()
- Destroy a sleepon
- _sleepon_init()
- Initialize a sleepon
- _sleepon_lock()
- Lock a sleepon
- _sleepon_signal()
- Wake up a single thread
- _sleepon_unlock()
- Unlock a sleepon
- _sleepon_wait()
- Wait on a sleepon
- tcsetsid()
- Make a terminal device a controlling device
- strtoimax(), strtoumax()
- Convert a string to an integer type
- telldir()
- Get the location associated with the directory stream
- valloc()
- Allocate a heap block aligned on a page boundary
- wcstoimax(), wcstoumax()
- Convert a wide-character string to an integer type
Deprecated Content
- getpriority() -- use getprio() or SchedGet() instead.
- setpriority() -- use setprio() or SchedSet() instead.
Errata
- snprintf()
- Corrected the Returns section and Classifications
What's new in the QNX Neutrino 6.1.0 docs?
Significant changes:
New content
The following functions have been added:
- Wide-character functions
- Wide-character versions of many functions
- InterruptHookTrace()
- Attach the pseudo interrupt handler that's used by the instrumented module
- iofdinfo()
- Retrieve server attributes
- iofunc_fdinfo()
- Handle an _IO_FDINFO message
- iofunc_fdinfo_default()
- Default handler for _IO_FDINFO messages
- MsgVerifyEvent(), MsgVerifyEvent_r()
- Check the validity of a receive ID and an event configuration
- resmgr_unbind()
- Remove an OCB
- straddstr()
- Concatenate one string on to the end of another
- SyncCtl(), SyncCtl_r()
- Perform an operation on a synchronization object
- SyncMutexEvent(), SyncMutexEvent_r()
- Attach an event to a mutex
- SyncMutexRevive(), SyncMutexRevive_r()
- Revive a mutex
- thread_pool_control()
- Control the thread pool behavior
- thread_pool_limits()
- Wrapper function for thread_pool_control()
- TraceEvent()
- Trace kernel events
Deprecated content
- matherr()
- Handle errors in math library functions
![]() |
![]() |
![]() |
![]() |

![[Previous]](prev.gif)
![[Contents]](contents.gif)
![[Index]](keyword_index.gif)
![[Next]](next.gif)