QNX Momentics IDE User's Guide
  Overview of the IDE
    Get to know Eclipse
    Start the IDE
    Setting IDE Preferences
    Where Files Are Stored
    Environment variables
    Version coexistence
    Utilities used by the IDE
  Preparing Your Target
    Create a QNX Target System Project
    Move files between the host and target
      Move files to the target
      Move files from the target to the host
    Host-target communications
      IP communications
      Serial communications
        Configure a target for serial communication
      qconn over Qnet
      Securing qconn
      Install the qconn update
      Copy a new version of qconn to a target system
    Network QNX Neutrino using PPP
      Verify a serial connection
      Prepare an embedded system for a Windows target
      QNX Neutrino Networking
      Link an embedded system running QNX Neutrino to a Windows network connection
      Verify a network connection
  Managing projects
    Supported project types in the IDE
    How the IDE characterizes projects using natures
    Considerations for project development
    Creating a project in the IDE
      Scenarios for creating a project for the first time
      Creating a C/C++ project
        Create a C/C++ project
      Create a Makefile project with existing code
      Create an empty Makefile project
      Allow a Makefile project to be launched outside the IDE
      QNX C/C++ container projects
        Create a container project
        Set up a build configuration
        Edit existing configurations
        Edit using project properties
        Edit using Build Container Configuration
        Build a container project
      Converting projects
        Convert a QNX project to a Managed Project
        Convert a regular project to a C/C++ Project
        Convert to a QNX project
        Convert a project to a different type
    Importing and exporting projects
      Import an existing container project into a workspace
      Import a QNX Source Package and BSP (archive)
      Import a QNX mkifs Buildfile
      Projects within projects
        Step 1: Create a project for your source code
        Step 2: Create a new project for each existing project or component in your source code tree
        Step 3: Link the projects to a directory in the source tree
        Step 4: Build the component project in the linked folder
    Setting build properties for a project
    Share projects
    Opening header files
      Set the include paths and define directives (C/C++ Makefile project)
    Project and Wizard Properties Reference
      Introduction
      Wizard properties
        Options tab
        Build Variants tab
        General tab
        Library tab
        Compiler tab
        Linker tab
          General options
          Extra library paths
          Extra libraries
          Extra object files
          Post-build actions
      Make Builder tab
      Error Parsers tab
      Project properties
        Projects tab
        Resource panel
        Builders panel
        C/C++ Build panel
        Behaviour tab
        Discovery options tab
        Environment tab
        Settings panel
          Tool settings tab
          Build steps tab
          Build artifact tab
          Binary Parser tab
          Error parsers tab
        Indexer tab
  Writing Code in the C/C++ Perspective
    Build projects
    Configure automated builds
    Add a use message
      Add a usage message when using a QNX C/C++ Project
      Add a usage message when using a Makefile Project
  Preparing to Run or Debug Projects
    Create a QNX Target System Project
    Create and run a launch configuration
      Launch configuration types
      Create a launch configuration
      Import launch configurations
      Manage launch configurations
      Launch Group type
      Launch configuration options
        Main tab
        Arguments tab
        Environment tab
        Upload tab
        Debugger tab
        Source tab
        Common tab
        Tools tab
  Debugging a Program in the IDE
    Build an executable for debugging
    Debugging frameworks
    Interact with GDB
    Debug a child process
  Using Code Coverage
    Enable code coverage for a project
      Enable code coverage for Makefile projects
    Create a launch configuration to start a coverage-enabled program
    Save code coverage data to an XML file
    Import gcc code coverage data from a project
    Associated views
      Code Coverage Sessions view
      Combine Code Coverage sessions
      Examine data line-by-line
      Code Coverage Properties view
      Code Coverage Report view
  Getting System Information
    What the System Information perspective reveals
      Associated views
    Control your system information session
      Send a signal
      Log system information
    Examine your target system's attributes
      System Specifications pane
      System Memory pane
      Processes panes
    Managing Processes
      Thread Details pane
      Environment Variables pane
      Process Properties pane
    Examine target system memory (inspect virtual address space)
    Track heap usage
      Observe changes in memory usage (allocations and deallocations)
        Outstanding allocations
        Allocation deltas
        Deallocation deltas
        Outstanding allocation deltas
    Examine process signals
    Get channel information
    Track file descriptors
    Track resource usage
    Track the use of adaptive partitions
  Using JTAG Debugging
    JTAG: Using the Abatron BDI2000 JTAG Debugger with a QNX Neutrino kernel image
      Prerequisites
      Connect the Abatron BDI2000 JTAG Debugger to your host
      Update the Abatron firmware
      Connect the Abatron BDI2000 Debugger to your target
      Build a system image
      Create a launch configuration
      Debug the startup binary
    JTAG: Using the Lauterbach Trace32 In-Circuit Debugger with a QNX Neutrino kernel image
      Prerequisites
      Install the Lauterbach Trace32 In-Circuit Debugger software
      Install the Lauterbach Trace32 Eclipse plug-in software
      Connect the Lauterbach Trace32 In-Circuit Debugger
      Configure the Lauterbach Trace32 In-Circuit Debugger
      Create a launch configuration for the target hardware
      Create a startup script for the Lauterbach Trace32 In-Circuit software
        Create multicore launch configurations
      Use the debugger
    JTAG: Using the Macraigor Usb2Demon Debugger with a QNX Neutrino kernel image
      Prerequisites
      Install the Macraigor hardware support package
      Connect the Macraigor Usb2Demon Debugger to your host
      Connect the Macraigor Usb2Demon Debugger to your target
      Start the OCDremote
      Build a system image
      Create a launch configuration
      Debug a startup binary
  Maximizing Performance with Profiling
    Profiling an Application
      Use Function Instrumentation with the Application Profiler
      Use Sampling and Call Count instrumentation mode
      Use Function Instrumentation mode for a single application
      Use Function Instrumentation in the System Profiler
      Create an Application Profiler session
      Create a profiler session by importing profiler data
      Profile a single-threaded application
      Profile a running process for an existing project
      Use postmortem profiling for Call Count and Sampling
      Postmortem profiling
      Run an instrumented binary with profiling from a command prompt (Function Instrumentation mode)
      Take a snapshot of a profiling session
      Compare profiles
    Build a program for profiling
      Control profiling using environment variables
      Profiling features
        Build with profiling enabled
      Run and profile a process
      Profile a running process
      Postmortem profiling for Call Count and sampling
      Application Profiler tab
    Manage profiling sessions
    Interpret profiling data
      Profiler Sessions view
        Toolbar options
        Pause and resume a profiling session
        Take a snapshot of a profile session
        Create a sample profile session
        Export a profiler session
      Execution Time view
        Column descriptions
        Interpret Tree mode column information by profiling type
        Toolbar options
        Context menu navigation options
        Take Snapshot and Watch Difference
        Show Threads Tree
        Show Table mode
        Show Calls
        Show Reverse Calls
        Show Call Graphs
        Show Source
        Duplicate a view
        View history
        Grouping
        Set preferences
        Copy to the clipboard
        Filter
        Search
      Debug view
      Annotated source editor
  Analyzing Your System with Kernel Tracing
    Overview of the QNX System Profiler
      System Profiler perspective
    Information Logging Process
    Create a log file
      Before you begin
      Configure a target for system profiling (IDE)
      Create a kernel event trace launch configuration
        Capture instrumentation data in an event log file
        Address translation
    View and interpret the captured data
      System Profiler editor
        Timeline view
          Add bookmarks
        Timeline State Colors view
        Zoom
      Filter profile data
      Raw Event Data view
      Trace Event Log view
      Properties view
        Trace Header tab
        Address Translation tab
        Start Date tab
        Timeline Event Labels tab
        User Event Data tab
    Track events
      Trace Search
      Bookmarks view
    Gather statistics from trace data
      General Statistics view
      Event Owner Statistics view
      Client/Server CPU Statistics view
      Overview view
      Condition Statistics view
      Thread Call Stack view
    Determine thread state behavior
      Thread State Snapshot view
      Why Running? view
    Analyze multiprocessor systems: CPU Migration pane
    Analyze systems with Adaptive Partitioning scheduling: Partition Summary pane
    Using Function Instrumentation mode with the System Profiler
      Import part of a kernel trace into the Application Profiler
    System Profiler use cases
      Locate sources of high CPU usage
      Map and isolate client CPU load from server CPU load
      Examine interrupt latency
      Locate events of interest
  Analyzing Memory Usage and Finding Errors
    Memory optimization
      Process memory
        Inspect your process memory distribution
      Performance of heap allocations
        Prepare for a memory profiling session
      Analyze allocation patterns
      Optimize heap memory
        Memory leaks
        Enable memory leak detection
      Types of allocation overhead
      Estimate the average allocation size
      Tune the allocator
      Optimize static and stack memory
    Finding Memory Errors and Leaks
      Test an application for memory leaks using the System Information Tool
      Use Memory Analysis tooling
        Memory leaks
          Enable leak detection
          Detect leaks on demand during program execution
          Interpret leaks
        Memory errors
          Configure the IDE for error analysis
          Change error detection options at runtime
          Interpret memory errors
      Use Mudflap
        Configure Mudflap to find errors
        Options for Mudflap
        Mudflap Violations view
        Interpret Mudflap output
    The Memory Analysis tool
      Advanced topics
        Analyze a running program
        Memory analysis of shared objects
        Memory Analysis Tool options and environment variables
      Launch your program with Memory Analysis
        Launch from the command line with Memory Analysis enabled
        Perform a postmortem memory analysis
        Attach to a running process
        The Memory Analysis tooling API
      View Memory Analysis data
        Memory Analysis editor
          Select data
          Control the page layout
          Control the overview
          Control the detail pane
          Allocations tab
          Bins tab
          Bands tab
          Usage tab
          Settings tab
        Memory Problems view
          Memory Problems Filter
          Memory Problems Preferences
          View statistics for memory problems
        Memory Events view
          Memory Events Filter
          Memory Events Preferences
          View statistics for memory events
        Memory Backtrace view
        Inspect outstanding allocations
        Interpret errors during memory analysis
          Illegal deallocation of memory
          NULL pointer dereference
          Buffer overflow
          Use freed memory
          Read uninitialized memory
          Resource (memory) leaks
          Functions checked for memory errors during memory analysis
          Summary of error messages for Memory Analysis
      Managing Memory Analysis sessions: The Session view
        Open a session
        Delete a session
        Close a session
        Export session data
        Filter information for a session
        Import session information
        Show information about a session
        Rename a session
      Import memory analysis data
        Import session information from an XML file
        Import event information
      Export memory analysis data
        Export memory analysis session data
        Memory result formats
  Building OS and Flash Images
    Introducing the QNX System Builder
    Boot script files
    Overview of images
      Components of an image, in order of booting
      Types of images you can create
        BSP filename conventions
        OS image (.ifs file)
        Flash filesystem image (.efs file)
        Combined image
        Padding after the IPL
      Project layout
      Workflow of image creation
    Create a new QNX System Builder project for an OS image
    Create a project for a flash filesystem image (an .efs file)
    Create a new image and Add it to your QNX System Build Project
      Build an OS image
      Combine images
    Use the Editor to modify your QNX System Builder projects
      Configure project properties
        Search Paths
        Search path variables
    Download an image to your target
      Download
      Open a terminal
      Communicate with your target
      Use the QNX Send File button
      Settings for the TFTP server
      Download using TFTP
      Transfer a file
      Transfer files that aren't in Images
      Transfer an image
      Set font and color preferences
      Download using other methods
  Tutorials
    Before you start
    Tutorial 1: Create a C/C++ project
    Tutorial 2: Create a QNX C/C++ project
    Tutorial 3: Import an existing project into the IDE
    Tutorial 4: Import a QNX BSP into the IDE
  Migrating from Earlier Releases
    Migration considerations
      Coexistence
      Compiler versions
      Binary compatibility
      CDT impact on the IDE
      Default workspace location
      Old launch configurations don't switch perspectives automatically
      Missing features in context menus
      System Builder Console doesn't come to front
      Reverting to an older version of the IDE
    Migrate your projects
    Migrate from IDE 4.5, IDE 4.6 or IDE 4.7 to IDE 5.0 (SDP 6.6.0)
    Migrate from IDE 4.0.1 to IDE 5.0 (SDP 6.6.0)
  Troubleshoot the IDE
  Glossary
  Overview of the IDE
    Get to know Eclipse
    Start the IDE
    Setting IDE Preferences
    Where Files Are Stored
    Environment variables
    Version coexistence
    Utilities used by the IDE
  Preparing Your Target
    Create a QNX Target System Project
    Move files between the host and target
      Move files to the target
      Move files from the target to the host
    Host-target communications
      IP communications
      Serial communications
        Configure a target for serial communication
      qconn over Qnet
      Securing qconn
      Install the qconn update
      Copy a new version of qconn to a target system
    Network QNX Neutrino using PPP
      Verify a serial connection
      Prepare an embedded system for a Windows target
      QNX Neutrino Networking
      Link an embedded system running QNX Neutrino to a Windows network connection
      Verify a network connection
  Managing projects
    Supported project types in the IDE
    How the IDE characterizes projects using natures
    Considerations for project development
    Creating a project in the IDE
      Scenarios for creating a project for the first time
      Creating a C/C++ project
        Create a C/C++ project
      Create a Makefile project with existing code
      Create an empty Makefile project
      Allow a Makefile project to be launched outside the IDE
      QNX C/C++ container projects
        Create a container project
        Set up a build configuration
        Edit existing configurations
        Edit using project properties
        Edit using Build Container Configuration
        Build a container project
      Converting projects
        Convert a QNX project to a Managed Project
        Convert a regular project to a C/C++ Project
        Convert to a QNX project
        Convert a project to a different type
    Importing and exporting projects
      Import an existing container project into a workspace
      Import a QNX Source Package and BSP (archive)
      Import a QNX mkifs Buildfile
      Projects within projects
        Step 1: Create a project for your source code
        Step 2: Create a new project for each existing project or component in your source code tree
        Step 3: Link the projects to a directory in the source tree
        Step 4: Build the component project in the linked folder
    Setting build properties for a project
    Share projects
    Opening header files
      Set the include paths and define directives (C/C++ Makefile project)
    Project and Wizard Properties Reference
      Introduction
      Wizard properties
        Options tab
        Build Variants tab
        General tab
        Library tab
        Compiler tab
        Linker tab
          General options
          Extra library paths
          Extra libraries
          Extra object files
          Post-build actions
      Make Builder tab
      Error Parsers tab
      Project properties
        Projects tab
        Resource panel
        Builders panel
        C/C++ Build panel
        Behaviour tab
        Discovery options tab
        Environment tab
        Settings panel
          Tool settings tab
          Build steps tab
          Build artifact tab
          Binary Parser tab
          Error parsers tab
        Indexer tab
  Writing Code in the C/C++ Perspective
    Build projects
    Configure automated builds
    Add a use message
      Add a usage message when using a QNX C/C++ Project
      Add a usage message when using a Makefile Project
  Preparing to Run or Debug Projects
    Create a QNX Target System Project
    Create and run a launch configuration
      Launch configuration types
      Create a launch configuration
      Import launch configurations
      Manage launch configurations
      Launch Group type
      Launch configuration options
        Main tab
        Arguments tab
        Environment tab
        Upload tab
        Debugger tab
        Source tab
        Common tab
        Tools tab
  Debugging a Program in the IDE
    Build an executable for debugging
    Debugging frameworks
    Interact with GDB
    Debug a child process
  Using Code Coverage
    Enable code coverage for a project
      Enable code coverage for Makefile projects
    Create a launch configuration to start a coverage-enabled program
    Save code coverage data to an XML file
    Import gcc code coverage data from a project
    Associated views
      Code Coverage Sessions view
      Combine Code Coverage sessions
      Examine data line-by-line
      Code Coverage Properties view
      Code Coverage Report view
  Getting System Information
    What the System Information perspective reveals
      Associated views
    Control your system information session
      Send a signal
      Log system information
    Examine your target system's attributes
      System Specifications pane
      System Memory pane
      Processes panes
    Managing Processes
      Thread Details pane
      Environment Variables pane
      Process Properties pane
    Examine target system memory (inspect virtual address space)
    Track heap usage
      Observe changes in memory usage (allocations and deallocations)
        Outstanding allocations
        Allocation deltas
        Deallocation deltas
        Outstanding allocation deltas
    Examine process signals
    Get channel information
    Track file descriptors
    Track resource usage
    Track the use of adaptive partitions
  Using JTAG Debugging
    JTAG: Using the Abatron BDI2000 JTAG Debugger with a QNX Neutrino kernel image
      Prerequisites
      Connect the Abatron BDI2000 JTAG Debugger to your host
      Update the Abatron firmware
      Connect the Abatron BDI2000 Debugger to your target
      Build a system image
      Create a launch configuration
      Debug the startup binary
    JTAG: Using the Lauterbach Trace32 In-Circuit Debugger with a QNX Neutrino kernel image
      Prerequisites
      Install the Lauterbach Trace32 In-Circuit Debugger software
      Install the Lauterbach Trace32 Eclipse plug-in software
      Connect the Lauterbach Trace32 In-Circuit Debugger
      Configure the Lauterbach Trace32 In-Circuit Debugger
      Create a launch configuration for the target hardware
      Create a startup script for the Lauterbach Trace32 In-Circuit software
        Create multicore launch configurations
      Use the debugger
    JTAG: Using the Macraigor Usb2Demon Debugger with a QNX Neutrino kernel image
      Prerequisites
      Install the Macraigor hardware support package
      Connect the Macraigor Usb2Demon Debugger to your host
      Connect the Macraigor Usb2Demon Debugger to your target
      Start the OCDremote
      Build a system image
      Create a launch configuration
      Debug a startup binary
  Maximizing Performance with Profiling
    Profiling an Application
      Use Function Instrumentation with the Application Profiler
      Use Sampling and Call Count instrumentation mode
      Use Function Instrumentation mode for a single application
      Use Function Instrumentation in the System Profiler
      Create an Application Profiler session
      Create a profiler session by importing profiler data
      Profile a single-threaded application
      Profile a running process for an existing project
      Use postmortem profiling for Call Count and Sampling
      Postmortem profiling
      Run an instrumented binary with profiling from a command prompt (Function Instrumentation mode)
      Take a snapshot of a profiling session
      Compare profiles
    Build a program for profiling
      Control profiling using environment variables
      Profiling features
        Build with profiling enabled
      Run and profile a process
      Profile a running process
      Postmortem profiling for Call Count and sampling
      Application Profiler tab
    Manage profiling sessions
    Interpret profiling data
      Profiler Sessions view
        Toolbar options
        Pause and resume a profiling session
        Take a snapshot of a profile session
        Create a sample profile session
        Export a profiler session
      Execution Time view
        Column descriptions
        Interpret Tree mode column information by profiling type
        Toolbar options
        Context menu navigation options
        Take Snapshot and Watch Difference
        Show Threads Tree
        Show Table mode
        Show Calls
        Show Reverse Calls
        Show Call Graphs
        Show Source
        Duplicate a view
        View history
        Grouping
        Set preferences
        Copy to the clipboard
        Filter
        Search
      Debug view
      Annotated source editor
  Analyzing Your System with Kernel Tracing
    Overview of the QNX System Profiler
      System Profiler perspective
    Information Logging Process
    Create a log file
      Before you begin
      Configure a target for system profiling (IDE)
      Create a kernel event trace launch configuration
        Capture instrumentation data in an event log file
        Address translation
    View and interpret the captured data
      System Profiler editor
        Timeline view
          Add bookmarks
        Timeline State Colors view
        Zoom
      Filter profile data
      Raw Event Data view
      Trace Event Log view
      Properties view
        Trace Header tab
        Address Translation tab
        Start Date tab
        Timeline Event Labels tab
        User Event Data tab
    Track events
      Trace Search
      Bookmarks view
    Gather statistics from trace data
      General Statistics view
      Event Owner Statistics view
      Client/Server CPU Statistics view
      Overview view
      Condition Statistics view
      Thread Call Stack view
    Determine thread state behavior
      Thread State Snapshot view
      Why Running? view
    Analyze multiprocessor systems: CPU Migration pane
    Analyze systems with Adaptive Partitioning scheduling: Partition Summary pane
    Using Function Instrumentation mode with the System Profiler
      Import part of a kernel trace into the Application Profiler
    System Profiler use cases
      Locate sources of high CPU usage
      Map and isolate client CPU load from server CPU load
      Examine interrupt latency
      Locate events of interest
  Analyzing Memory Usage and Finding Errors
    Memory optimization
      Process memory
        Inspect your process memory distribution
      Performance of heap allocations
        Prepare for a memory profiling session
      Analyze allocation patterns
      Optimize heap memory
        Memory leaks
        Enable memory leak detection
      Types of allocation overhead
      Estimate the average allocation size
      Tune the allocator
      Optimize static and stack memory
    Finding Memory Errors and Leaks
      Test an application for memory leaks using the System Information Tool
      Use Memory Analysis tooling
        Memory leaks
          Enable leak detection
          Detect leaks on demand during program execution
          Interpret leaks
        Memory errors
          Configure the IDE for error analysis
          Change error detection options at runtime
          Interpret memory errors
      Use Mudflap
        Configure Mudflap to find errors
        Options for Mudflap
        Mudflap Violations view
        Interpret Mudflap output
    The Memory Analysis tool
      Advanced topics
        Analyze a running program
        Memory analysis of shared objects
        Memory Analysis Tool options and environment variables
      Launch your program with Memory Analysis
        Launch from the command line with Memory Analysis enabled
        Perform a postmortem memory analysis
        Attach to a running process
        The Memory Analysis tooling API
      View Memory Analysis data
        Memory Analysis editor
          Select data
          Control the page layout
          Control the overview
          Control the detail pane
          Allocations tab
          Bins tab
          Bands tab
          Usage tab
          Settings tab
        Memory Problems view
          Memory Problems Filter
          Memory Problems Preferences
          View statistics for memory problems
        Memory Events view
          Memory Events Filter
          Memory Events Preferences
          View statistics for memory events
        Memory Backtrace view
        Inspect outstanding allocations
        Interpret errors during memory analysis
          Illegal deallocation of memory
          NULL pointer dereference
          Buffer overflow
          Use freed memory
          Read uninitialized memory
          Resource (memory) leaks
          Functions checked for memory errors during memory analysis
          Summary of error messages for Memory Analysis
      Managing Memory Analysis sessions: The Session view
        Open a session
        Delete a session
        Close a session
        Export session data
        Filter information for a session
        Import session information
        Show information about a session
        Rename a session
      Import memory analysis data
        Import session information from an XML file
        Import event information
      Export memory analysis data
        Export memory analysis session data
        Memory result formats
  Building OS and Flash Images
    Introducing the QNX System Builder
    Boot script files
    Overview of images
      Components of an image, in order of booting
      Types of images you can create
        BSP filename conventions
        OS image (.ifs file)
        Flash filesystem image (.efs file)
        Combined image
        Padding after the IPL
      Project layout
      Workflow of image creation
    Create a new QNX System Builder project for an OS image
    Create a project for a flash filesystem image (an .efs file)
    Create a new image and Add it to your QNX System Build Project
      Build an OS image
      Combine images
    Use the Editor to modify your QNX System Builder projects
      Configure project properties
        Search Paths
        Search path variables
    Download an image to your target
      Download
      Open a terminal
      Communicate with your target
      Use the QNX Send File button
      Settings for the TFTP server
      Download using TFTP
      Transfer a file
      Transfer files that aren't in Images
      Transfer an image
      Set font and color preferences
      Download using other methods
  Tutorials
    Before you start
    Tutorial 1: Create a C/C++ project
    Tutorial 2: Create a QNX C/C++ project
    Tutorial 3: Import an existing project into the IDE
    Tutorial 4: Import a QNX BSP into the IDE
  Migrating from Earlier Releases
    Migration considerations
      Coexistence
      Compiler versions
      Binary compatibility
      CDT impact on the IDE
      Default workspace location
      Old launch configurations don't switch perspectives automatically
      Missing features in context menus
      System Builder Console doesn't come to front
      Reverting to an older version of the IDE
    Migrate your projects
    Migrate from IDE 4.5, IDE 4.6 or IDE 4.7 to IDE 5.0 (SDP 6.6.0)
    Migrate from IDE 4.0.1 to IDE 5.0 (SDP 6.6.0)
  Troubleshoot the IDE
  Glossary
QNX Software Development Platform
  Quickstart Guide
    1. Requirements
    2. Installing QNX SDP on the development host
    3. Installing the QNX Neutrino RTOS on the target system
    4. Networking with the QNX Neutrino RTOS
    5. Creating a program project
    6. Communicating with the QNX Neutrino RTOS
    7. Compiling and linking
    8. Preparing to launch the program
    9. Starting and debugging
    10. Making the program your own
  OS Core Components
    Adaptive Partitioning User's Guide
      What is Adaptive Partitioning?
        What are partitions and what is adaptive partitioning?
        System and user requirements
        The thread scheduler
      Quickstart: Adaptive Partitioning Thread Scheduler
      Using the Thread Scheduler
        Keeping track of CPU time
        How is CPU time divided between partitions?
          Underload
          Free time
          Full Load
          Summary of scheduling behavior
        Partition inheritance
        Critical threads
          Bankruptcy
        Adaptive partitioning thread scheduler and other thread schedulers
        Using the thread scheduler and multicore together
      Setting Up and Using the Adaptive Partitioning Thread Scheduler
        Building an image
        Creating scheduler partitions
        Launching a process in a partition
        Viewing partition use
      Controlling Resources Using the Thread Scheduler
      Considerations for the Thread Scheduler
        Determining the number of scheduler partitions and their contents
        Choosing the percentage of CPU for each partition
          Setting budgets to zero
          Setting budgets for resource managers
        Choosing the window size
          Accuracy
          Delays compared to priority scheduling
        Practical limits
        Uncontrolled interactions between scheduler partitions
      Security for Scheduler Partitions
        Managing security for the thread scheduler
          Security and critical threads
      Testing and Debugging
        Instrumented kernel trace events
        Using the IDE (trace events)
        Using other methods
        Emergency access to the system
      Sample Buildfile
      Frequently Asked Questions: Adaptive Partitioning Thread Scheduler
        Scheduling behavior
        Microbilling
        Averaging window
        Scheduling algorithm
        Overhead
        Critical threads and bankruptcy
        Inheritance
        Budgets
        Joining a partition
        QNX Neutrino system considerations
      Glossary
    Building Embedded Systems
      Overview of Building Embedded Systems
        Introduction
          The role of the IPL
            Warm-start and cold-start IPL
          The role of the startup program
          Startup's responsibilities
            Copying and decompressing the image
            Configuring the hardware
            Determining system configuration
            Establishing callouts
            Starting the OS
            The startup library
          The role of the QNX Neutrino RTOS
        Hardware aspects
          Choice of processor
          Source of initialization and configuration
          Choice of filesystems
            No additional storage required
            Additional read-only storage required
            Additional read/write nonpersistent storage required
            Additional read/write persistent storage required
          I/O devices
            Character I/O devices
            Special/custom devices
        Getting started
          Hardware design
          Customizing the software
            Customizing the source
      Working with a BSP
        Using BSPs in the IDE
        Using BSPs on the command line
          Structure of a BSP
            prebuilt subdirectory
            install subdirectory
            src subdirectory
          Building source from the command line
          Supporting additional devices
        Transferring an OS image onto your board
          Transferring an OS image
          Working with a flash filesystem
            Raw partitions
            Flash filesystem partitions
            Flash filesystem source
            How do I create a partition?
        Testing QNX Neutrino on your board
        Where do I go from here?
        Filename conventions
      Making an OS Image
        Images, images, images
        What is an OS image?
        The OS image as a filesystem
        Configuring an OS image
          A simple buildfile
            Inline files
          The bootstrap file
            Compressing the image
          The script file
            Bound multiprocessing attributes
            The script file on the target
          Plain ordinary lists of files
            Including files from different places
            Modifying the search path
            Specifying the pathname explicitly
            Creating the contents of the file in line
            Specifying file ownership and permissions
            Including a whole whack of files
          Generating the image
          Listing the contents of an image
        Building a flash filesystem image
          Using mkefs
            mkefs buildfile
            Block size
            Spare blocks
          Compressing files
            Abstraction layer
            Two sizes
          Compression rules
            The exception
        Embedding an image
          Combining image files using mkimage
            Combining image files using the IDE
          Converting images using mkrec
          Transferring an image to flash
        System configuration
          Establishing an output device
            A simple desktop example
          Running drivers/filesystems
            Disk drivers
            Flash filesystems
            Network drivers
            Network filesystems
          Running applications
        Debugging an embedded system
          pdebug software debugging agent
          Hardware debuggers and QNX Neutrino
          Producing debug symbol information for IPL and startup
            Generating IPL debug symbols
            Generating startup debug symbols
      Writing an IPL Program
        Initial program loader (IPL)
          Responsibilities of the IPL
            Linearly mapped images
            Bank-switched images
            Processors & configurations
          Booting from a bank-switched device
          Booting from a linear device
          "Warm" vs "cold" start
            Warm-start IPL
            Cold-start IPL
          Loading the image
            If the source is a linearly mapped device
            If the source is a bank-switched device
            ROM devices
            Network boot
            Using a BOOTP server
            Serial port
            Traditional disk
            None of the above?
          Transferring control to the startup program
        Customizing IPLs
          Initialize hardware
          Loading the image into RAM
          Structure of the boot header
            signature
            version
            flags1 and flags2
            header_size
            machine
            startup_vaddr
            paddr_bias
            image_paddr
            ram_paddr
            ram_size
            startup_size
            stored_size
            imagefs_paddr
            imagefs_size
            preboot_size
            zero and zero0
            info
            struct startup_info_skip
            struct startup_info_mem and startup_info_mem_extended
            struct startup_info_disk
            struct startup_info_time
            struct startup_info_box
          Relationship of struct startup_header fields
            Linear ROM execute-in-place boot image
            Linear ROM compressed boot image
            ROM non-XIP image
            Disk/network image (x86 BIOS)
            Disk/network compressed image
          IPL structure
            IPL source directory structure
            IPL code structure
            An example
          Creating a new IPL
        The IPL library
          enable_cache
          image_download_8250()
          image_scan()
          image_scan_ext()
          image_setup()
          image_setup_ext()
          image_start()
          image_start_ext()
          int15_copy()
          print_byte()
          print_char()
          print_long()
          print_sl()
          print_string()
          print_var()
          print_word()
          protected_mode()
          uart_hex8
          uart_hex16
          uart_hex32
          uart_init
          uart_put
          uart_string
          uart32_hex8
          uart32_hex16
          uart32_hex32
          uart32_init
          uart32_put
          uart32_string
      Customizing Image Startup Programs
        Anatomy of a startup program
          Structure of a startup program
          Creating a new startup program
        Structure of the system page
          size
          total_size
          type
          num_cpu
          system_private
          asinfo
            The attr field
            Address space trees
          hwinfo
            Tags
            Items
            Device trees
            Building the section
            Other functions
            Defaults
            Predefined items and tags
            Group item
            Bus item
            Device item
            location tag
            irq tag
            diskgeometry tag
            pad tag
          cpuinfo
          syspage_entry cacheattr
          syspage_entry qtime
          callout
          callin
          typed_strings
          strings
          intrinfo
            The cpu_intr_base member
            The flags member
            config return values
          syspage_entry union un
          un.x86
          un.x86.smpinfo (deprecated)
          un.arm
          smp
          pminfo
        Callout information
          Debug interface
          Clock/timer interface
          Interrupt controller interface
          Cache controller interface
          System reset callout
          Power management callout
        The startup library
          add_cache()
          add_callout()
          add_callout_array()
          add_interrupt()
          add_interrupt_array()
          add_ram()
          add_string()
          add_typed_string()
          alloc_qtime()
          alloc_ram()
          armv_cache
          armv_chip
          armv_chip_detect()
          armv_pte
          armv_setup_v7()
          as_add()
          as_add_containing()
          as_default()
          as_find()
          as_find_containing()
          as_info2off()
          as_off2info()
          as_set_checker()
          as_set_priority()
          avoid_ram()
          calc_time_t()
          calloc_ram()
          callout_io_map(), callout_io_map_indirect()
          callout_memory_map(), callout_memory_map_indirect()
          callout_register_data()
          chip_access()
          chip_done()
          chip_read8()
          chip_read16()
          chip_read32()
          chip_write8()
          chip_write16()
          chip_write32()
          copy_memory()
          del_typed_string()
          falcon_init_l2_cache()
          falcon_init_raminfo()
          falcon_system_clock()
          find_startup_info()
          find_typed_string()
          handle_common_option()
          hwi_add_device()
          hwi_add_inputclk()
          hwi_add_irq()
          hwi_add_location()
          hwi_add_nicaddr()
          hwi_add_rtc()
          hwi_alloc_item()
          hwi_alloc_tag()
          hwi_find_as()
          hwi_find_item()
          hwi_find_tag()
          hwi_off2tag()
          hwi_tag2off()
          init_asinfo()
          init_cacheattr()
          init_cpuinfo()
          init_hwinfo()
          init_intrinfo()
          init_mmu()
          init_pminfo()
          init_qtime()
          init_qtime_sa1100()
          init_raminfo()
          init_smp()
          init_syspage_memory() (deprecated)
          init_system_private()
          jtag_reserve_memory()
          kprintf()
          openbios_init_raminfo()
          pcnet_reset()
          print_syspage()
          rtc_time()
          startup_io_map()
          startup_io_unmap()
          startup_memory_map()
          startup_memory_unmap()
          tulip_reset()
          uncompress()
          x86_cpuid_string()
          x86_cputype()
          x86_enable_a20()
          x86_fputype()
          x86_init_pcbios()
          x86_pcbios_shadow_rom()
          x86_scanmem()
        Writing your own kernel callout
          Find out who's gone before
          Why are they in assembly language?
          Starting off
          "Patching" the callout code
          Getting some R/W storage
          The exception that proves the rule
      Customizing the Flash Filesystem
        Introduction
        Driver structure
          resmgr and iofunc layers
          Flash filesystem component
          Socket services component
          Flash services component
          Probe routine component
        Building your flash filesystem driver
          The source tree
          The Makefile
          Making the driver
          The main() function
            f3s_init()
            f3s_start()
          Socket services interface
            f3s_open()
            f3s_page()
            f3s_status()
            f3s_close()
          Options parsing
            f3s_socket_option()
            f3s_socket_syspage()
          Flash services interface
            f3s_ident()
            f3s_reset()
            f3s_v2read()
            f3s_v2write()
            f3s_v2erase()
            f3s_v2suspend()
            f3s_v2resume()
            f3s_v2sync()
            f3s_v2islock()
            f3s_v2lock()
            f3s_v2unlock()
            f3s_v2unlockall()
          Choosing the right routines
        Example: The devf-ram driver
          main()
          f3s_ram_open()
          f3s_ram_page()
      System Design Considerations
        Before you design your system
        Other design considerations
          EPROM/Flash filesystem considerations
          IPL location
          Graphics cards
          A20 gate
          External ISA bus slots
          PCI bus slots
          External clocks
          Interrupts & controllers
          Serial and parallel ports
          Parallel port considerations
        Avoid Non-Maskable Interrupts (NMIs)
        Design do's and don'ts
      Sample Buildfiles
        Generic examples
          Shared libraries
          Running executables more than once
          Multiple consoles
            Starting other programs on consoles
            Redirection
            /tmp
          Complete example — minimal configuration
          Complete example — flash filesystem
          Complete example — disk filesystem
          Complete example — TCP/IP with network filesystem
        Processor-specific notes
      Glossary
    Core Networking Stack User's Guide
      Overview
        Architecture of io-pkt
        Threading model
        Threading priorities
        Components of core networking
      Packet Filtering
        Packet Filter interface
          Packet Filter (pf) module: firewalls and NAT
        Berkeley Packet Filter
      IP Security and Hardware Encryption
        Setting up an IPsec connection: examples
          Between two boxes manually
          With authentication using the preshared-key method
        IPsec tools
        OpenSSL support
        Hardware-accelerated crypto
      Wi-Fi Configuration Using WPA and WEP
        NetBSD 802.11 layer
          Device management
          Nodes
          Crypto support
        Using Wi-Fi with io-pkt
        Connecting to a wireless network
          Using no encryption
          Using WEP (Wired Equivalent Privacy) for authentication and encryption
          Using WPA/WPA2 for authentication and encryption
            WPA utilities
            Connecting with WPA or WPA2
            Personal-level authentication and Enterprise-level authentication
            Using wpa_supplicant to manage your wireless network connections
        Using a Wireless Access Point (WAP)
          Creating A WAP
            Acting as a gateway
            Acting as a bridge
          WEP access point
          WPA access point
        TCP/IP configuration in a wireless network
          Client in infrastructure or ad hoc mode
          DHCP server on WAP acting as a gateway
          Launching the DHCP server on your gateway
          Configuring an access point as a router
      Transparent Distributed Processing
        Using TDP over IP
      Network Drivers
        Types of network drivers
          Differences between ported NetBSD drivers and native drivers
          Differences between io-net drivers and other drivers
        Loading and unloading a driver
        Troubleshooting a driver
        Problems with shared interrupts
        Writing a new driver
        Debugging a driver using gdb
        Dumping 802.11 debugging information
        Jumbo packets and hardware checksumming
        Padding Ethernet packets
        Transmit Segmentation Offload (TSO)
      Utilities, Managers, and Configuration Files
      Writing Network Drivers for io-pkt
      A Hardware-Independent Sample Driver: sam.c
      Additional information
      Glossary
    Device Publishers Developer's Guide
      Device Publishers
        Running a device publisher
        Role of device drivers and mcd
        PPS object types
        Plugins
          Plugin ratings
      The usblauncher Service
        Support for USB On-The-Go (OTG)
        Device object
        Device control object
        Driver object
        Mount object
        Command line for usblauncher
          Using usblauncher to mount filesystems
        Configuration files
          Starting USB stack in host and device modes
          USB matching rules
          USB descriptors
          Supported third-party applications and protocols
      The mmcsdpub Publisher
        Device object
        Driver object
        Mount object
        Command line for mmcsdpub
      The cdpub Publisher
        Device object
        Device control object
        Driver object
        Mount object
        Command line for cdpub
    High Availability Framework Developer's Guide
      Introduction
        Where's the problem?
        A software foundation for HA
      What's in the High Availability Framework?
      The QNX Neutrino Approach to HA
        The reset "solution"
          Traditional RTOS architecture
        Modularity means granularity
          Intrinsic HA
      Using the High Availability Manager
        HAM hierarchy
          Entities
          Conditions
          Actions
          Action Fail actions
          Multistaged recovery
        State of the HAM
          Example of the view shown in /proc/ham
        HAM API
          Connect/disconnect functions
          Attach/detach functions
            For self-attached entities
            Code snippet using self-attach/detach calls
            For attaching/detaching all other entities
            Code snippet using attach/detach calls
          Entity functions
          Condition functions
            Condition types
            Condition flags
          Action functions
          Action fail functions
            Example to monitor inetd
            Example to monitor fs-nfs2
          Functions to operate on handles
        A client example
        Starting and stopping a HAM
          Stopping a HAM
          Control functions
          Verbosity control
          Publishing autonomously detected conditions
          Publish state transitions
          Publish other conditions
          Subscribing to autonomously published conditions
          Trigger based on state transitions
          Trigger based on specific published condition
      Using the Client Recovery Library
        MsgSend*() functions
        Other covers and convenience functions
          HA-awareness functions
          I/O covers
          Convenience functions
        A simple example
        State-reconstruction example
      HAM API Reference
        ham_action_control()
        ham_action_execute()
        ham_action_fail_execute()
        ham_action_fail_log()
        ham_action_fail_notify_pulse(), ham_action_fail_notify_pulse_node()
        ham_action_fail_notify_signal(), ham_action_fail_notify_signal_node()
        ham_action_fail_waitfor()
        ham_action_handle(), ham_action_handle_node()
        ham_action_handle_free()
        ham_action_heartbeat_healthy()
        ham_action_log()
        ham_action_notify_pulse(), ham_action_notify_pulse_node()
        ham_action_notify_signal(), ham_action_notify_signal_node()
        ham_action_remove()
        ham_action_restart()
        ham_action_waitfor()
        ham_attach(), ham_attach_node()
        ham_attach_self()
        ham_condition()
        ham_condition_control()
        ham_condition_handle(), ham_condition_handle_node()
        ham_condition_handle_free()
        ham_condition_raise()
        ham_condition_remove()
        ham_condition_state()
        ham_connect(), ham_connect_nd(), ham_connect_node()
        ham_detach()
        ham_detach_name(), ham_detach_name_node()
        ham_detach_self()
        ham_disconnect(), ham_disconnect_nd(), ham_disconnect_node()
        ham_entity(), ham_entity_node()
        ham_entity_condition_raise()
        ham_entity_condition_state()
        ham_entity_control()
        ham_entity_handle(), ham_entity_handle_node()
        ham_entity_handle_free()
        ham_heartbeat()
        ham_stop(), ham_stop_nd(), ham_stop_node()
        ham_verbose()
      Client Recovery Library Reference
        ha_attach()
        ha_close()
        ha_connection_ctrl()
        ha_ConnectAttach(), ha_ConnectAttach_r()
        ha_ConnectDetach(), ha_ConnectDetach_r()
        ha_creat(), ha_creat64()
        ha_detach()
        ha_dup()
        ha_fclose()
        ha_fopen()
        ha_open(), ha_open64()
        ha_ReConnectAttach()
        ha_reopen()
      Examples
        Simple restart
        Compound restart
        Death/condition notification
        Heartbeating clients (liveness detection)
          The process is made to heartbeat
        Process starvation
          Thread 2 is made to heartbeat
      Glossary
    Instant Device Activation
      Using Minidrivers for Instant Device Activation
        The minidriver basics
        The minidriver architecture
        How does the minidriver work?
          Seamless transition
          Running multiple handler functions
      Writing a Minidriver
        Timing requirements
        Data storage
        Handler function
          Hardware access
          Debugging from within the minidriver
        Customizing the startup program to include your minidriver
        Making the transition to a full driver
        Making a boot image that includes your minidriver
      Sample Minidriver
        The minidriver handler function
        Adding your minidriver to the system
        Test application: mini-peeker.c
        Transition from minidriver to full driver
      APIs and Datatypes
        mdriver_add()
        mdriver_entry
        mdriver_max
      Hardware Interaction Within the Minidriver
    Multicore Processing User's Guide
      What is Multicore Processing?
      A Quick Introduction to Multicore Processing
        Setting up the OS image
        Trying symmetric multiprocessing
        Trying bound multiprocessing
      Developing Multicore Systems
        Building a multicore image
        The impact of multicore
          To multicore or not to multicore
          Thread affinity
          Multicore and synchronization primitives
          Multicore and FIFO scheduling
          Multicore and interrupts
          Multicore and atomic operations
          Adaptive partitioning
        Designing with multiprocessing in mind
          Use the multicore primitives
          Assume that threads really do run concurrently
          Break the problem down
      Glossary
    Persistent Publish/Subscribe Developer's Guide
      QNX Neutrino PPS Service
        Running PPS
      Objects and Their Attributes
        Object files
          Special objects
          Object and directory sizes
        Change notification
        Object syntax
        Attribute syntax
      Persistence
        Persistent storage
        Saving objects
        Loading objects
      Publishing
        Creating, modifying, and deleting objects and attributes
        Multiple publishers
      Subscribing
        Waiting for data on a file descriptor
        Subscription modes
          Full mode
          Delta mode
        Subscribing to multiple objects
          Subscribe to all objects in a directory
          Notification groups
            Creating notification groups
            Using notification groups
      Options and Qualifiers
        Pathname open options
          The critical option
          Filtering notifications
        Object and attribute qualifiers
          Nonpersistence qualifier
          Item qualifier
        Reading and writing from the command line
        Access Control List configuration file
          ACL configuration file format
      Server Objects
        Working with server objects
          Sending messages through PPS server objects
            Sending a message
            Replying to a message
            Supporting cancellation of requests
      PPS Encoding and Decoding API
        Encoding PPS data
        Decoding PPS data
          Handling unknown data
          Dealing with errors
        Other features of PPS
      PPS API reference
        pps_attrib_flags_t
        pps_attrib_t
        pps_decoder_cleanup()
        pps_decoder_dump_tree()
        pps_decoder_error_t
        pps_decoder_flags()
        pps_decoder_get_bool()
        pps_decoder_get_double()
        pps_decoder_get_int()
        pps_decoder_get_int64()
        pps_decoder_get_state()
        pps_decoder_get_string()
        pps_decoder_goto_index()
        pps_decoder_initialize()
        pps_decoder_is_integer()
        pps_decoder_length()
        pps_decoder_name()
        pps_decoder_next()
        pps_decoder_parse_json_str()
        pps_decoder_parse_pps_str()
        pps_decoder_pop()
        pps_decoder_push()
        pps_decoder_push_array()
        pps_decoder_push_object()
        pps_decoder_reset()
        pps_decoder_set_position()
        pps_decoder_set_state()
        pps_decoder_state_t
        pps_decoder_status()
        pps_decoder_t
        pps_decoder_type()
         pps_encoder_add_bool()
        pps_encoder_add_double()
        pps_encoder_add_from_decoder()
        pps_encoder_add_int()
        pps_encoder_add_int64()
        pps_encoder_add_json()
        pps_encoder_add_null()
        pps_encoder_add_string()
        pps_encoder_buffer()
        pps_encoder_cleanup()
        pps_encoder_delete_attribute()
        pps_encoder_end_array()
        pps_encoder_end_object()
        pps_encoder_error_t
        pps_encoder_initialize()
        pps_encoder_length()
        pps_encoder_reset()
        pps_encoder_start_array()
        pps_encoder_start_object()
        pps_encoder_t
        pps_node_type_t
        pps_options_t
        pps_status_t
        ppsparse()
      Examples
        Publishers
        Subscribers
    QDB Developer's Guide
      Getting Started with QDB
        Starting the QDB server
        Loading QDB databases
        Unloading QDB databases
        PPS configuration path
        Database configuration objects
        Database storage
        Schema files
        Summary of database files
      QDB Command Line
        Temporary storage filesystem
        Database integrity testing
        Sharing connections between clients
        Shared caching
          Advantages of shared caching
        Database recovery
        Busy timeout
        Handling corrupt databases
      QDB Client
        Backing up and restoring databases
      QDB Example
        Connecting to a database
          Using asynchronous mode
        Executing a statement
        Getting the result of a query
        Using a result
        Disconnecting from the server
        Sample program
      Datatypes in QDB
         Storage classes
        Column affinity
          Determination of column affinity
          Column affinity example
        Comparison expressions
          Comparison example
        Operators
        Sorting, grouping and compound SELECT statements
        Other affinity modes
        User-defined collation sequences
          Assigning collation sequences from SQL
          Collation sequences example
      QDB Virtual Machine Opcodes
        Instruction format and execution
        Virtual machine features
        Viewing programs generated by QDB
        The opcodes
      Writing User-Defined Functions
        User scalar/aggregate functions
        User collation routines
        Collation algorithm example
        SQLite C/C++ API
          sqlite3_result_*
          sqlite3_value_*
          sqlite3_user_data
      QDB API Reference
        qdb_backup()
        qdb_binding_t
        qdb_bkcancel()
        qdb_cell()
        qdb_cell_length()
        qdb_cell_type()
        qdb_collation()
        qdb_column_decltype()
        qdb_column_index()
        qdb_column_name()
        qdb_columns()
        qdb_connect()
        qdb_data_source()
        qdb_disconnect()
        qdb_freeresult()
        qdb_getdbsize()
        qdb_geterrcode()
        qdb_geterrmsg()
        qdb_getoption()
        qdb_getresult()
        qdb_gettransstate()
        qdb_interrupt()
        qdb_last_insert_rowid()
        qdb_mprintf()
        qdb_parameters()
        qdb_printmsg()
        qdb_query()
        qdb_rowchanges()
        qdb_rows()
        qdb_setbusytimeout()
        qdb_setoption()
        qdb_snprintf()
        qdb_statement()
        qdb_stmt_decltypes()
        qdb_stmt_exec()
        qdb_stmt_free()
        qdb_stmt_init()
        qdb_vacuum()
        qdb_vmprintf()
      QDB SQL Reference
        Row ID and Autoincrement
        Comments
        Expressions
        Keywords
        Statements
          ALTER TABLE
          ANALYZE
          ATTACH DATABASE
          CREATE INDEX
          CREATE TABLE
          CREATE TRIGGER
          CREATE VIEW
          DELETE
          DETACH DATABASE
          DROP INDEX
          DROP TABLE
          DROP TRIGGER
          DROP VIEW
          EXPLAIN
          INSERT
          ON CONFLICT
          PRAGMA
          REINDEX
          REPLACE
          SELECT
          TRANSACTION
          UPDATE
          VACUUM
      fileset Reference
    System Analysis Toolkit (SAT) User's Guide
      Introduction
        What can the SAT do for you?
        Components of the SAT
          Instrumented kernel
          Kernel buffer management
          Data-capture program (tracelogger)
          Data interpretation (e.g., traceprinter)
          Integrated Development Environment
      Events and the Kernel
        Generating events: a typical scenario
          Multithreaded example
          Thread context-switch time
          Restarting threads
        Simple and combine events
        Fast and wide modes
        Classes and events
          Communication class: _NTO_TRACE_COMM
          Control class: _NTO_TRACE_CONTROL
          Interrupt classes: _NTO_TRACE_INTENTER, _NTO_TRACE_INTEXIT,_NTO_TRACE_INT_HANDLER_ENTER, and _NTO_TRACE_INT_HANDLER_EXIT
          Kernel-call classes: _NTO_TRACE_KERCALLENTER, _NTO_TRACE_KERCALLEXIT, and _NTO_TRACE_KERCALLINT
          Process class: _NTO_TRACE_PROCESS
          System class: _NTO_TRACE_SYSTEM
          Thread class: _NTO_TRACE_THREAD
          User class: _NTO_TRACE_USER
          Virtual thread class: _NTO_TRACE_VTHREAD
      Kernel Buffer Management
        Linked list size
        Full buffers and the high-water mark
        Buffer overruns
      Capturing Trace Data
        Using tracelogger to control tracing
          Managing trace buffers
          tracelogger's modes of operation
          Choosing between wide and fast modes
          Filtering events
          Specifying where to send the output
        Using TraceEvent() to control tracing
          Managing trace buffers
          Modes of operation
          Filtering events
          Choosing between wide and fast modes
          Inserting trace events
      Filtering
        The static rules filter
        The dynamic rules filter
          Setting up a dynamic rules filter
          Event handler
          Removing event handlers
        The post-processing facility
      Interpreting Trace Data
        Using traceprinter and interpreting the output
        Building your own parser
          The traceparser library
          Simple and combine events
          The traceevent_t structure
          Event interlacing
          Timestamps
      Tutorials
        The instrex.h header file
        Gathering all events from all classes
        Gathering all events from one class
        Gathering five events from four classes
        Gathering kernel calls
        Event handling - simple
        Inserting a user simple event
      Current Trace Events and Data
        Interpreting the table
        Table of events
    System Architecture
      The Philosophy of the QNX Neutrino RTOS
        An embeddable POSIX OS?
        Product scaling
        Why POSIX for embedded systems?
        Why QNX Neutrino for embedded systems?
        Microkernel architecture
          The OS as a team of processes
          A true kernel
          System processes
        Interprocess communication
          QNX Neutrino as a message-passing operating system
        Network distribution of kernels
          Single-computer model
          Flexible networking
      The QNX Neutrino Microkernel
        The implementation of the QNX Neutrino RTOS
          POSIX realtime and thread extensions
        System services
        Threads and processes
          Thread attributes
          Thread life cycle
        Thread scheduling
          Scheduling priority
          Scheduling policies
            FIFO scheduling
            Round-robin scheduling
            Sporadic scheduling
            Manipulating priority and scheduling policies
          IPC issues
          Thread complexity issues
        Synchronization services
          Mutexes: mutual exclusion locks
            Priority inheritance and mutexes
          Condvars: condition variables
          Barriers
          Sleepon locks
          Reader/writer locks
          Semaphores
          Synchronization via scheduling policy
          Synchronization via message passing
          Synchronization via atomic operations
          Synchronization services implementation
        Clock and timer services
          Time correction
          Timers
        Interrupt handling
          Interrupt latency
          Scheduling latency
          Nested interrupts
          Interrupt calls
      Interprocess Communication (IPC)
        Synchronous message passing
        Message copying
        Simple messages
        Channels and connections
          Pulses
          Priority inheritance and messages
        Message-passing API
        Robust implementations with Send/Receive/Reply
        Events
          I/O notification
        Signals
          Special signals
          Summary of signals
        POSIX message queues
          Why use POSIX message queues?
          File-like interface
          Message-queue functions
        Shared memory
          Shared memory with message passing
          Creating a shared-memory object
          mmap()
          Initializing allocated memory
        Typed memory
          Implementation-defined behavior
            Seeding of typed memory regions
            Naming of typed memory regions
            Pathname space and typed memory
             mmap() allocation flags and typed memory objects
            Permissions and typed memory objects
            Object length and offset definitions
            Interaction with other POSIX APIs
          Practical examples
        Pipes and FIFOs
      The Instrumented Microkernel
        Instrumentation at a glance
        Event control
          Modes of emission
          Ring buffer
        Data interpretation
          System analysis with the IDE
        Proactive tracing
      Multicore Processing
        Asymmetric multiprocessing (AMP)
        Symmetric multiprocessing (SMP)
          The QNX Neutrino RTOS's microkernel approach
          Booting an x86 SMP system
          How the SMP microkernel works
          Critical sections
        Bound multiprocessing (BMP)
          A viable migration strategy
        Choosing between AMP, SMP, and BMP
      Process Manager
        Process management
          Process primitives
            posix_spawn()
            spawn()
            fork()
            vfork()
            exec*()
          Process loading
        Memory management
          Memory Management Units (MMUs)
          Memory protection at run time
            Software watchdog
          Quality control
          Full-protection model
            Private virtual memory
          Variable page size
          Locking memory
          Defragmenting physical memory
            Automatically marking memory as unmovable
        Pathname management
          Resolving pathnames
          Symbolic prefixes
            Creating special device names
            Relative pathnames
            Network root
            A note about cd
          File descriptor namespace
            Open control blocks
      Dynamic Linking
        Statically linked
        Dynamically linked
        Augmenting code at runtime
        How shared objects are used
          Memory layout for a typical process
          Runtime linker
          Loading a shared library at runtime
          Symbol name resolution
      Resource Managers
        What is a resource manager?
          Why write a resource manager?
          The types of resource managers
            Device resource managers
            Filesystem resource managers
          Communication via native IPC
        Resource manager architecture
          Message types
          The resource manager shared library
            Automatic default message handling
            open(), dup(), and close()
            Multiple thread handling
            Dispatch functions
            Combine messages
            Second-level default message handling
        Summary
      Filesystems
        Filesystems and pathname resolution
        Filesystem classes
          Filesystems as shared libraries
          io-blk
            Builtin RAM disk
            Partitions
            Buffer cache
          Filesystem limitations
        Image filesystem
        RAM "filesystem"
        Embedded transaction filesystem (ETFS)
        QNX 4 filesystem
        Power-Safe filesystem
          Problems with existing disk filesystems
          Copy-on-write filesystem
          Performance
          Encryption
        DOS Filesystem
        CD-ROM filesystem
        FFS3 filesystem
        NFS filesystem
        CIFS filesystem
        Linux Ext2 filesystem
        Universal Disk Format (UDF) filesystem
        Apple Macintosh HFS and HFS Plus
        Windows NT filesystem
        Virtual inflator filesystem
        Filesystem events
      PPS
        Persistence
        PPS objects
        Publishing
        Subscribing
      Character I/O
        Driver/io-char communication
        Device control
        Input modes
          Raw input mode
          Edited input mode
        Device subsystem performance
        Console devices
        Serial devices
        Parallel devices
        Pseudo terminal devices (ptys)
      Networking Architecture
        Network manager (io-pkt*)
        Threading model
        Protocol module
        Driver module
      Native Networking (Qnet)
        QNX Neutrino distributed
        Name resolution and lookup
          File descriptor (connection ID)
          Behind a simple open()
          Global Name Service (GNS)
          Network naming
            Resolvers
        Redundant Qnet: Quality of Service (QoS) and multiple paths
          QoS policies
          Specifying QoS policies
          Symbolic links
        Examples
      TCP/IP Networking
        Structure of the TCP/IP manager
        Socket API
          Database routines
        Multiple stacks
        IP filtering and NAT
        NTP
        Dynamic host configuration
          AutoIP
        PPP over Ethernet
        /etc/autoconnect
      High Availability
        An OS for HA
          Inherent HA
          HA-specific modules
        Custom hardware support
        Client library
          Recovery example
        High Availability Manager
          HAM and the Guardian
          HAM hierarchy
            Entities
            Conditions
            Actions
          Publishing autonomously detected conditions
            State transitions
            Other conditions
          Subscribing to autonomously published conditions
          HAM as a "filesystem"
          Multistage recovery
          HAM API
      Adaptive Partitioning
        What are partitions?
          If adaptive partitions aren't "boxes," what are they?
        Why adaptive?
        Benefits of adaptive partitioning
          Engineering product performance
          Dealing with design complexity
          Providing security
          Debugging
        Adaptive partitioning thread scheduler
      Glossary
    Technotes
      Writing a DVFS Driver
        dvfs_fini()
        dvfs_init()
        dvfs_pre_init()
        dvfs_therm_init()
        get_cpu_freq()
        get_cpu_temperature()
        get_cpu_voltage()
        get_pwr_levels_count()
        get_pwr_lvl_freq()
        get_pwr_lvl_volt()
        post_pwr_lvl_config()
        set_cpu_freq()
        set_cpu_voltage()
        update_boundaries()
      IP Tunneling (Generic Routing Encapsulation)
      PPPOE and Path MTU Discovery
      Making Multiple Images
      QNX Neutrino and QNX 4 bootloader partitions
        Encountering the .altboot message
        Booting or rebooting using a partition bootloader
        Resolving problems with bootloader partitions
      Managing POSIX Message Queues
      Choosing the Correct MTD Routine for the Flash Filesystem
      Reading a Kernel Dump
      I2C (Inter-Integrated Circuit) Framework
        Hardware interface
          Function table
            version_info function
            init function
            fini function
            send function
            recv function
            abort function
            set_slave_addr function
            set_bus_speed function
            driver_info function
            ctl function
          Access function
          Sample calls
        Application interfaces
          Shared-library interface
          Resource manager interface
            Supporting data types
            DCMD_I2C_DRIVER_INFO
            DCMD_I2C_MASTER_RECV (deprecated)
            DCMD_I2C_MASTER_SEND (deprecated)
            DCMD_I2C_RECV
            DCMD_I2C_SEND
            DCMD_I2C_SENDRECV
            DCMD_I2C_SET_BUS_SPEED
            DCMD_I2C_SET_SLAVE_ADDR (deprecated)
            DCMD_I2C_STATUS
        Resource manager design
      SPI (Serial Peripheral Interface) Framework
        Hardware interface
          Function table
          Low-level module handle structure
          init function
          fini function
          drvinfo function
          devinfo function
          setcfg function
          xfer function
          dma_xfer function
        API library
          spi_open()
          spi_close()
          spi_setcfg()
          spi_getdevinfo()
          spi_getdrvinfo()
          spi_read()
          spi_write()
          spi_xchange()
          spi_cmdread()
          spi_dma_xchange()
      Fine-tuning your network drivers
      Backtraces
        API
        Examples
          Obtaining and printing a memory map
          Backtracing a thread in another process
          Backtracing another thread within the same process
          Backtracing the current thread
          Doing a BT_SELF backtrace in a signal handler
          Backtracing a collection of threads
      Reloadable Image Filesystems
        Command-line options
        Examples
        Power callout
        Minidriver support
        Performance measurements
        Sample program that uses sysmgr_cpumode() to call the power callout
        Manually mounting an IFS
        Sample script to combine IPL with boot image for the EDOSK7780
        Commands to burn a new IPL/Boot image for the EDOSK7780
      Filesystems and Power Failures
        Guidelines for using hard drives in an environment subject to abrupt power failures
        Recipe for creating hard drive corruption
        How to limit the possible hard drive corruption
        How to repair hard disk corruption
        Power failures while writing
      Customizing language sort orders for libqdb_cldr.so
        Standard language sort order files
        Sort order algorithm
          Contractions and expansions
          Locale data files
        Adding a new sort order locale
        Tailoring a sort order algorithm
    QNX SDP 6.6.0 BSPs
      Overview of a BSP
      Before you begin
      What's new with QNX SDP 6.6 BSPs
        Structure and contents of a QNX SDP 6.6 BSP
        Preparing a bootable SD card
          Preparing a bootable SD card (Windows 7)
          Preparing a bootable SD card (Linux Ubuntu)
      Process to update a BSP to QNX SDP 6.6
        Prerequisites
        Download, extract, and build an existing BSP
        Interpret initial results and remove unnecessary files
        Rebuild the BSP
        Update the startup and IPL library source
        Update BSPs containing prebuilt kernels and other OS components
      Clean Up Remaining Warnings
    User's Guide
      Getting to Know the OS
        QNX Neutrino compared with Unix
        QNX Neutrino compared with Microsoft Windows
        How QNX Neutrino is unique
          Resource managers
      Logging In, Logging Out, and Shutting Down
        root or non-root?
        Logging in
        Once you've logged in
        Logging out
        Shutting down and rebooting
      Managing User Accounts
        What does a user account do?
          User accounts vs user IDs: login, lookup, and permissions
          What happens when you log in?
        Account database
          /etc/passwd
          /etc/group
          /etc/shadow
          /etc/.pwlock
        Managing your own account
          Changing your password
          Forgot your password?
        Managing other accounts
          Adding users
          Removing accounts
          Defining groups
            Creating a new group
            Modifying an existing group
        Troubleshooting
      Using the Command Line
        Processing a command
        Character-device drivers
          Input modes
          Terminal support
          Telnet
          The keyboard at a glance
          Physical and virtual consoles
        Shell
          Editing the command line
          Command and filename completion
          Reserved words
          Entering multiple commands
          Aliases
          Substitutions
          Redirecting input and output
          Pipes
          Quoting special characters
          History: recalling commands
          Shell scripts
        Utilities
          Understanding command syntax
          Displaying online usage messages
          Executing commands on another node or tty
          Priorities
        Basic commands
        QNX Neutrino for MS-DOS users
          DOS commands and their QNX Neutrino equivalents
          MS-DOS local command-interpreter variables
        Troubleshooting
      Working with Files
        Types of files
        Filenames and pathnames
          Absolute and relative pathnames
          Dot and dot-dot directories
          No drive letters
          Pathnames that begin with a dot
          Extensions
          Pathname-space mapping
          Filename rules
        Where everything is stored
        File ownership and permissions
          Setuid and setgid
          Sticky bit
          Default file permissions
          Access Control Lists (ACLs)
        Filename extensions
        Troubleshooting
      Using Editors
        Supported editors
        Specifying the default editor
      Configuring Your Environment
        What happens when you log in?
        Customizing your home
        Configuring your shell
          /etc/profile
          $HOME/.profile
          ksh's startup file
        Environment variables
          Setting PATH and LD_LIBRARY_PATH
        Configuration strings
        Setting the time zone
          Caveats
          Examples
          Programming with time zones
        Terminal types
        Troubleshooting
      Writing Shell Scripts
        Available shells
        Running a shell script
        The first line
          Arguments to a ksh script
          Arguments to a gawk script
          Arguments to a perl script
        Example of a Korn shell script
        Efficiency
        Caveat scriptor
      Working with Filesystems
        Setting up, starting, and stopping a block filesystem
        Mounting and unmounting filesystems
        Image filesystem
        /dev/shmem RAM "filesystem"
        QNX 4 filesystem
          Extents
          Filenames
          Links and inodes
          Removing links
          Directory links
          Symbolic links
          Filesystem robustness
        Power-Safe filesystem
          Booting
          Snapshots
        DOS filesystem
        CD-ROM filesystem
        Linux Ext2 filesystem
        Flash filesystems
        CIFS filesystem
        NFS filesystem
          Setting up NFS
          NFS server
          NFS client
        Universal Disk Format (UDF) filesystem
        Apple Macintosh HFS and HFS Plus
        Windows NT filesystem
        Inflator filesystem
        Troubleshooting
      Using Qnet for Transparent Distributed Processing
        When should you use Qnet?
        Conventions for naming nodes
        Software components for Qnet networking
        Starting Qnet
        Checking out the neighborhood
          Populating /net
        Troubleshooting
          Is Qnet running?
          Are io-pkt* and the drivers running?
          Is the network card functional?
          How do I get diagnostic information?
          Is the hostname unique?
          Are the nodes in the same domain?
      TCP/IP Networking
        Overview of TCP/IP
        Software components for TCP/IP networking
        Running the Internet daemons
        Running multiple instances of the TCP/IP stack
        Dynamically assigned TCP/IP parameters
          Using PPPoE
          Using DHCP
          Using AutoIP
        Troubleshooting
          Are io-pkt* and the drivers running?
          What is the name server information?
          How do I map hostnames to IP addresses?
          How do I get the network status?
          How do I make sure I'm connected to other hosts?
          How do I display information about an interface controller?
      Printing
        Printing with lpr
          User interface
            lpd—printer daemon
            lpr—start a print job
            lprq—show printer queue
            lprrm—remove jobs from a queue
            lprc—printer-control program
          Spooling directories
          Access control
          Network manager
          Printer capabilities: /etc/printcap
            A typical setup
            Printers on serial lines
            Remote printers
            Filters
          Some /etc/printcap examples
            USB printer
            Single printer
            Multiple printers
            Local and remote printers
          Remote printing to a printer on another network
          Remote printing to a TCP/IP-enabled printer using lpr
        Printing with spooler
          Setting up spooler
          Printing on a USB printer
          Remote printing over Qnet
          Remote printing over TCP/IP
        Troubleshooting
          Understanding lpr error messages
            lpr error messages
            lprq error messages
            lprrm error messages
            lprc error messages
            lpd error messages
          Troubleshooting remote printing problems
      Connecting Hardware
        PCI/AGP devices
        CD-ROMs and DVDs
        Hard disks
          EIDE
            Troubleshooting for devb-eide
          SCSI devices
          SCSI RAID
        RAM disks
        Audio cards
          ISA cards
          PCI Cards
        PCCARD and PCMCIA cards
        USB devices
          Printers
          Ethernet adapters
          Mass-storage devices
            Troubleshooting
        Character devices
          General serial adapters
          Multiport serial adapters
          Parallel ports
          Terminals
          I/O attributes
        Network adapters
          Identify your NIC
          Start the driver
          Make sure the driver is communicating properly with the hardware
            Physical Node ID
            Current Physical Node ID
            Current Operation Rate
            Active Interface Type
            Active PHY Address
            Power Management State
            Maximum Transmittable data Unit (MTU)
            Maximum Receivable data Unit (MRU)
            Receive Checksumming Enabled, Transmit Checksumming Enabled
            Hardware Interrupt
            DMA Channel
            I/O Aperture
            Memory Aperture
            ROM Aperture
            Promiscuous Mode
            Multicast Support
            Packets Transmitted OK
            Bytes Transmitted OK
            Total Packets Transmitted Bad
             Broadcast Packets Transmitted OK
            Multicast Packets Transmitted OK
            Memory Allocation Failures on Transmit
            Packets Received OK
             Bytes Received OK
            Single Collisions on Transmit
            Multiple Collisions on Transmit
            Deferred Transmits
            Late Collision on Transmit errors
            Transmits aborted (excessive collisions)
            Transmits aborted (excessive deferrals)
            Transmit Underruns
            No Carrier on Transmit
            Jabber detected
            Receive Alignment errors
            Received packets with CRC errors
            Packets Dropped on receive
            Ethernet Headers out of range
            Oversized Packets received
            Frames with Dribble Bits
            Total Frames experiencing Collision(s)
        Modems
          Internal modems
            ISA non-PnP
            ISA PnP
          PCI-based modems
          External modems
          Testing modems
          Troubleshooting modems
      Setting Up an Embedded Web Server
        Where should you put the files?
        Running Slinger
        Dynamic HTML
          CGI method
          SSI method
            Syntax for SSI Commands
          Data server method
        Security precautions
        Examples
          Configuration
          Script
            rand_images.c
            rand_images.pl
      Backing Up and Recovering Data
        Backup strategies
          Choosing backup storage media and location
          Choosing a backup format
          Controlling your backup
        QNX 4 disk structure
          Partition components
            Loader block
            Root block
            Bitmap blocks
            Root directory
          Directories
          Links
          Extent blocks
          Files
        File-maintenance utilities
          fdisk
          dinit
          chkfsys
          dcheck
          zap
            Recovering a zapped file
          spatch
        Recovering disks and files
          Using chkfsys
            When to run chkfsys
            Using chkfsys on a live system
          Recovering from a bad block in the middle of a file
        What to do if your system will no longer boot
          If the mount fails…
          If the disk is unrecoverable
          If the filesystem is intact
      Securing Your System
        General OS security
          Remote and local attacks
            Remote exploits
            Local exploits
          Effects of attacks
          Viruses
          QNX Neutrino security in general
        QNX Neutrino-specific security issues
          Message passing
          pdebug
          qconn
          Qnet
          IPSec
        Setting up a firewall
      Fine-Tuning Your System
        Getting the system's status
        Improving performance
        Filesystems and block I/O (devb-*) drivers
          Performance and robustness
          Metadata updates
            Ordering the updates to metadata
          Throughput
          Configuration
            Block I/O commit level
            Record size
            Double buffering
            File descriptor vs standard I/O
            Pregrowing a file
          Fine-tuning USB storage devices
      Understanding System Limits
        Configurable limits
        Filesystem limits
          Querying filesystem limits
          QNX 4 filesystem
          Power-Safe (fs-qnx6.so) filesystem
          Ext2 filesystem
          DOS FAT12/16/32 filesystem
          CD-ROM (ISO9660) filesystem
          NFS2 and NFS3 filesystem
          CIFS filesystem
          Embedded (flash) filesystem
          Embedded Transaction filesystem (ETFS)
          UDF filesystem
          Apple Macintosh HFS and HFS Plus
          Windows NT filesystem
        Other system limits
          File descriptors
          Synchronization primitives
          TCP/IP limits
          Shared memory
          Message queues
          Platform-specific limits
      Technical Support
      Glossary
      Examples
        Buildfile for an NFS-mounting target
        Sample buildfile
        .profile
         .kshrc
        Configuration files for spooler
          Using lpr
          Using NCFTP
          Using SAMBA
        PPP with CHAP authentication between two QNX Neutrino boxes
  Audio & Graphics API
    Audio Developer's Guide
      Audio Architecture
        QNX Sound Architecture
        Cards and devices
        Control device
        Mixer devices
        Pulse Code Modulation (PCM) devices
          Data formats
          PCM state machine
          Software PCM mixing
          PCM plugin converters
      Playing and Capturing Audio Data
        Handling PCM devices
          Opening your PCM device
          Configuring the PCM device
          Controlling voice conversion
          Preparing the PCM subchannel
          Closing the PCM subchannel
        Playing audio data
          Playback states
          Sending data to the PCM subchannel
          If the PCM subchannel stops during playback
          Stopping the playback
          Synchronizing with the PCM subchannel
        Capturing audio data
          Selecting what to capture
          Capture states
          Receiving data from the PCM subchannel
          If the PCM subchannel stops during capture
          Stopping the capture
          Synchronizing with the PCM subchannel
      Mixer Architecture
        Opening the mixer device
        Controlling a mixer group
        The best mixer group with respect to your PCM subchannel
        Finding all mixer groups
        Mixer event notification
        Closing the mixer device
      Optimizing Audio
      Audio Library
        snd_card_get_longname()
        snd_card_get_name()
        snd_card_name()
        snd_cards()
        snd_cards_list()
        snd_ctl_callbacks_t
        snd_ctl_close()
        snd_ctl_file_descriptor()
        snd_ctl_hw_info()
        snd_ctl_hw_info_t
        snd_ctl_mixer_switch_list()
        snd_ctl_mixer_switch_read()
        snd_ctl_mixer_switch_write()
        snd_ctl_open()
        snd_ctl_pcm_channel_info()
        snd_ctl_pcm_info()
        snd_ctl_read()
        snd_mixer_callbacks_t
        snd_mixer_close()
        snd_mixer_eid_t
        snd_mixer_element_read()
        snd_mixer_element_t
        snd_mixer_element_write()
        snd_mixer_elements()
        snd_mixer_elements_t
        snd_mixer_file_descriptor()
        snd_mixer_filter_t
        snd_mixer_get_bit()
        snd_mixer_get_filter()
        snd_mixer_gid_t
        snd_mixer_group_read()
        snd_mixer_group_t
        snd_mixer_group_write()
        snd_mixer_groups()
        snd_mixer_groups_t
        snd_mixer_info()
        snd_mixer_info_t
        snd_mixer_open()
        snd_mixer_open_name()
        snd_mixer_read()
        snd_mixer_routes()
        snd_mixer_routes_t
        snd_mixer_set_bit()
        snd_mixer_set_filter()
        snd_mixer_sort_eid_table()
        snd_mixer_sort_gid_table()
        snd_mixer_weight_entry_t
        snd_pcm_build_linear_format()
        snd_pcm_capture_flush()
        snd_pcm_capture_go()
        snd_pcm_capture_pause()
        snd_pcm_capture_prepare()
        snd_pcm_capture_resume()
        snd_pcm_channel_flush()
        snd_pcm_channel_go()
        snd_pcm_channel_info()
        snd_pcm_channel_info_t
        snd_pcm_channel_params()
        snd_pcm_channel_params_t
        snd_pcm_channel_pause()
        snd_pcm_channel_prepare()
        snd_pcm_channel_resume()
        snd_pcm_channel_setup()
        snd_pcm_channel_setup_t
        snd_pcm_channel_status()
        snd_pcm_channel_status_t
        snd_pcm_close()
        snd_pcm_file_descriptor()
        snd_pcm_find()
        snd_pcm_format_big_endian()
        snd_pcm_format_linear()
        snd_pcm_format_little_endian()
        snd_pcm_format_signed()
        snd_pcm_format_size()
        snd_pcm_format_t
        snd_pcm_format_unsigned()
        snd_pcm_format_width()
        snd_pcm_get_audioman_handle()
        snd_pcm_get_format_name()
        snd_pcm_info()
        snd_pcm_info_t
        snd_pcm_link()
        snd_pcm_nonblock_mode()
        snd_pcm_open()
        snd_pcm_open_name()
        snd_pcm_open_preferred()
        snd_pcm_playback_drain()
        snd_pcm_playback_flush()
        snd_pcm_playback_go()
        snd_pcm_playback_pause()
        snd_pcm_playback_prepare()
        snd_pcm_playback_resume()
        snd_pcm_plugin_flush()
        snd_pcm_plugin_get_voice_conversion()
        snd_pcm_plugin_info()
        snd_pcm_plugin_params()
        snd_pcm_plugin_playback_drain()
        snd_pcm_plugin_prepare()
        snd_pcm_plugin_read()
        snd_pcm_plugin_set_disable()
        snd_pcm_plugin_set_enable()
        snd_pcm_plugin_set_src_method()
        snd_pcm_plugin_set_src_mode()
        snd_pcm_plugin_set_voice_conversion()
        snd_pcm_plugin_setup()
        snd_pcm_plugin_src_max_frag()
        snd_pcm_plugin_status()
        snd_pcm_plugin_update_src()
        snd_pcm_plugin_write()
        snd_pcm_read()
        snd_pcm_set_audioman_handle()
        snd_pcm_t
        snd_pcm_unlink()
        snd_pcm_voice_conversion_t
        snd_pcm_write()
        snd_strerror()
        snd_switch_t
      wave.c example
      waverec.c example
      mix_ctl.c example
      ALSA and libasound.so
      What's New in This Release?
        What's new in QNX Neutrino 6.6
        What's new in QNX Neutrino 6.5.0 Service Pack 1
        What's new in QNX Neutrino 6.5.0
        What's new in QNX Neutrino 6.4
        What's new in QNX Neutrino 6.3
        What's new in QNX Neutrino 6.2
        What's new in QNX Neutrino 6.1
      Glossary
    Audio Manager Library Reference
      Audio Manager Overview
      Audio Manager Routing Priority
      Audio Stream Routing Priorities by Type
      Linking with Audio Manager
      Audio Manager Configuration File
        Device attributes
        Audio status list attributes
        Routing rules
        Ducking rules
      Audio Manager API
        Audio Concurrency (audio_manager_concurrency.h)
          Data types in audio_manager_concurrency.h
            audio_manager_attenuation_extra_option_t
            audio_manager_attenuation_params_t
            audio_manager_attenuation_type_t
            audio_manager_concurrency_t
          Functions in audio_manager_concurrency.h
            audio_manager_get_audio_type_concurrency_status()
            audio_manager_get_current_audio_handle_concurrency_status()
            audio_manager_set_handle_attenuation()
        Audio Devices (audio_manager_device.h)
          Constants in audio_manager_device.h
            Definitions in audio_manager_device.h
          Data types in audio_manager_device.h
            audio_manager_channel_t
            audio_manager_channel_config_t
            audio_manager_device_t
            audio_manager_device_audio_config_t
            audio_manager_device_capabilities_t
            audio_manager_device_capability_t
            audio_manager_device_headset_button_t
            audio_manager_device_volume_control_t
            audio_manager_headset_button_state_t
          Functions in audio_manager_device.h
            audio_manager_get_default_device()
            audio_manager_get_default_input_device()
            audio_manager_get_device_audio_capabilities()
            audio_manager_get_device_audio_config()
            audio_manager_get_device_audio_public()
            audio_manager_get_device_button_states()
            audio_manager_get_device_capability()
            audio_manager_get_device_dependency()
            audio_manager_get_device_from_name()
            audio_manager_get_device_name()
            audio_manager_get_device_volume_control()
            audio_manager_get_preferred_audio_input_path()
            audio_manager_get_preferred_audio_output_path()
            audio_manager_is_device_connected()
            audio_manager_is_device_kept_alive()
            audio_manager_is_device_supported()
            audio_manager_is_device_suspended()
            audio_manager_is_hdmi_in_mirror_mode()
            audio_manager_set_device_connected()
            audio_manager_set_device_suspended()
            audio_manager_set_hdmi_mirror_mode()
        Audio Events (audio_manager_event.h)
          Data types in audio_manager_event.h
            audio_manager_concurrency_change_t
            audio_manager_device_button_change_t
            audio_manager_device_change_t
            audio_manager_event_context_t
            audio_manager_event_type_t
            audio_manager_routing_change_t
            audio_manager_stat_change_t
            audio_manager_status_headphone_boost_change_t
            audio_manager_status_headphone_output_volume_regulation_change_t
            audio_manager_status_headphone_unsafe_zone_change_t
            audio_manager_status_volume_change_t
            audio_manager_voice_audio_option_change_t
            audio_manager_voice_service_change_t
            audio_manager_voice_status_volume_change_t
          Functions in audio_manager_event.h
            audio_manager_add_concurrency_change_event()
            audio_manager_add_device_button_change_event()
            audio_manager_add_device_change_event()
            audio_manager_add_routing_change_event()
            audio_manager_add_stat_change_event()
            audio_manager_add_status_hp_boost_change_event()
            audio_manager_add_status_hp_output_volume_regulation_change_event()
            audio_manager_add_status_hp_unsafe_zone_change_event()
            audio_manager_add_voice_audio_option_change_event()
            audio_manager_add_voice_service_change_event()
            audio_manager_add_voice_volume_change_event()
            audio_manager_add_volume_change_event()
            audio_manager_dispatch_event()
            audio_manager_get_event()
            audio_manager_get_event_context()
            audio_manager_get_event_fd()
            audio_manager_peek_event()
            audio_manager_release_event_context()
            audio_manager_remove_concurrency_change_event()
            audio_manager_remove_device_button_change_event()
            audio_manager_remove_device_change_event()
            audio_manager_remove_routing_change_event()
            audio_manager_remove_stat_change_event()
            audio_manager_remove_status_hp_boost_change_event()
            audio_manager_remove_status_hp_unsafe_zone_change_event()
            audio_manager_remove_voice_audio_option_change_event()
            audio_manager_remove_voice_service_change_event()
            audio_manager_remove_voice_volume_change_event()
            audio_manager_remove_volume_change_event()
            audio_manager_wait_for_initialization()
        Audio Routing (audio_manager_routing.h)
          Constants in audio_manager_routing.h
            Definitions in audio_manager_routing.h
          Data types in audio_manager_routing.h
            audio_manager_audio_type_t
            audio_manager_runtime_t
            audio_manager_settings_reset_condition_t
          Functions in audio_manager_routing.h
            audio_manager_activate_bound_handle()
            audio_manager_activate_handle()
            audio_manager_check_autopause()
            audio_manager_free_handle()
            audio_manager_get_alias_handle()
            audio_manager_get_handle()
            audio_manager_get_handle_for_runtime()
            audio_manager_get_handle_status()
            audio_manager_get_handle_type()
            audio_manager_get_name_from_type()
            audio_manager_get_name_from_runtime()
            audio_manager_get_runtime_from_name()
            audio_manager_get_type_from_name()
            audio_manager_set_handle_routing_conditions()
            audio_manager_set_handle_keep_alive()
            audio_manager_set_handle_type()
            audio_manager_snd_pcm_open()
            audio_manager_snd_pcm_open_name()
            audio_manager_snd_pcm_open_preferred()
            audio_manager_suspend_bound_handle()
            audio_manager_suspend_handle()
        Audio Voice Services (audio_manager_voice_service.h)
          Constants in audio_manager_voice_service.h
            Definitions in audio_manager_voice_service.h
          Data types in audio_manager_voice_service.h
            audio_manager_voice_option_t
            audio_manager_voice_service_t
            audio_manager_voice_service_status_t
          Functions in audio_manager_voice_service.h
            audio_manager_get_redirector_id()
            audio_manager_get_voice_service_from_name()
            audio_manager_get_voice_service_name()
            audio_manager_get_voice_service_option()
            audio_manager_get_voice_service_option_from_name()
            audio_manager_get_voice_service_option_name()
            audio_manager_get_voice_service_status()
            audio_manager_get_voice_service_status_from_name()
            audio_manager_get_voice_service_status_name()
            audio_manager_get_voice_service_status_with_codec_settings()
            audio_manager_set_voice_service_option()
            audio_manager_set_voice_service_status()
            audio_manager_set_voice_service_status_with_codec_settings()
        Audio Volume (audio_manager_volume.h)
          Constants in audio_manager_volume.h
            Definitions in audio_manager_volume.h
          Data types in audio_manager_volume.h
            audio_manager_headphone_output_regulation_t
            audio_manager_headphone_volume_override_status_t
          Functions in audio_manager_volume.h
            audio_manager_adjust_input_level()
            audio_manager_adjust_output_level()
            audio_manager_adjust_voice_output_level()
            audio_manager_clear_stat_counter()
            audio_manager_decrease_output_level()
            audio_manager_decrease_voice_output_level()
            audio_manager_get_headphone_boost_status()
            audio_manager_get_headphone_output_level_regulation_status()
            audio_manager_get_headphone_unsafe_zone_status()
            audio_manager_get_input_level()
            audio_manager_get_input_mute()
            audio_manager_get_modem_output_mute()
            audio_manager_get_output_level()
            audio_manager_get_output_mute()
            audio_manager_get_output_volume_steps()
            audio_manager_get_stat_counter()
            audio_manager_get_voice_input_mute()
            audio_manager_get_voice_output_level()
            audio_manager_get_voice_output_mute()
            audio_manager_get_voice_output_volume_steps()
            audio_manager_increase_output_level()
            audio_manager_increase_voice_output_level()
            audio_manager_set_headphone_volume_boost()
            audio_manager_set_headphone_volume_unsafe_zone()
            audio_manager_set_input_level()
            audio_manager_set_input_mute()
            audio_manager_set_modem_output_mute()
            audio_manager_set_output_level()
            audio_manager_set_output_mute()
            audio_manager_set_voice_input_mute()
            audio_manager_set_voice_output_level()
            audio_manager_set_voice_output_mute()
            audio_manager_toggle_input_mute()
            audio_manager_toggle_output_mute()
            audio_manager_toggle_voice_output_mute()
    Gestures Library Reference
      Gestures Library Overview
      Gesture Recognition
      Custom Gestures
      Gesture Tutorials
        Tutorial: Create a gesture-handling application
          Example: Code snippets of a gesture-handling application
        Tutorial: Create a custom gesture
          Example: Code snippets of a defining a custom gesture
      Gestures Library Reference
        Gesture Buckets (bucket.h)
          Definitions in bucket.h
          gestures_bucket_add()
          gestures_bucket_clear()
          gestures_bucket_count()
          gestures_bucket_del()
          gestures_bucket_get()
          gestures_bucket_init()
          gestures_bucket_t
        Global Settings (defaults.h)
          Definitions in defaults.h
        Double Tap (double_tap.h)
          double_tap_gesture_alloc()
          double_tap_gesture_default_params()
          double_tap_params_t
          double_tap_state_e
          gesture_double_tap_t
        Event Lists (event_list.h)
          event_list_add()
          event_list_alloc()
          event_list_alloc_copy()
          event_list_clear()
          event_list_copy()
          event_list_free()
          event_list_get_first()
          event_list_item
          event_list_item_t
        Long Press (long_press.h)
          gesture_long_press_t
          long_press_gesture_alloc()
          long_press_gesture_default_params()
          long_press_params_t
        Pinch Gestures (pinch.h)
          gesture_pinch_t
          pinch_gesture_alloc()
          pinch_gesture_default_params()
          pinch_params_t
        Press and Tap (press_and_tap.h)
          gesture_pt_t
          pt_gesture_alloc()
          pt_gesture_default_params()
          pt_params_t
        Rotate Gesture (rotate.h)
          gesture_rotate_t
          rotate_gesture_alloc()
          rotate_gesture_default_params()
          rotate_params_t
        Gesture Sets (set.h)
          gestures_set_add()
          gestures_set_alloc()
          gestures_set_fail_f
          gestures_set_free()
          gestures_set_process_event()
          gestures_set_process_event_list()
          gestures_set_register_fail_cb()
        Swipe Gesture (swipe.h)
          gesture_swipe_t
          swipe_gesture_default_params()
          swipe_params_t
        Tap Gesture (tap.h)
          gesture_tap_t
          tap_gesture_alloc()
          tap_gesture_default_params()
          tap_params_t
        Gesture Timers (timer.h)
          gesture_timer_callback_t
          gesture_timer_clear()
          gesture_timer_create()
          gesture_timer_destroy()
          gesture_timer_query()
          gesture_timer_set_event()
          gesture_timer_set_ms()
          gesture_timer_set_now()
        Triple Tap (triple_tap.h)
          gesture_triple_tap_t
          triple_tap_gesture_alloc()
          triple_tap_gesture_default_params()
          triple_tap_params_t
          triple_tap_state_e
        Two Finger Pan (two_finger_pan.h)
          gesture_tfpan_t
          tfpan_gesture_alloc()
          tfpan_gesture_default_params()
          tfpan_params_t
        Two Finger Tap (two_finger_tap.h)
          gesture_tft_t
          tft_gesture_alloc()
          tft_gesture_default_params()
          tft_params_t
        Data Types and Helper Functions (types.h)
          Definitions in types.h
          diff_time_ms()
          gesture_add_mustfail()
          gesture_base
          gesture_base_init()
          gesture_base_t
          gesture_callback_f
          gesture_coords_t
          gesture_e
          gesture_funcs_t
          gesture_state_e
          map_contact_id()
          max_displacement_abs()
          save_coords()
    Image Library Reference
      Working with Images
        Attaching to the image library
        Load an image
      Image API
        img_cfg_read()
        img_codec_get_criteria()
        img_codec_list()
        img_codec_list_byext()
        img_codec_list_bymime()
        img_convert_data()
        img_convert_getfunc()
        img_crop()
        img_decode_begin()
        img_decode_callouts_t
        img_decode_finish()
        img_decode_frame()
        img_decode_validate()
        img_dtransform()
        img_dtransform_apply()
        img_dtransform_create()
        img_dtransform_free()
        img_encode_begin()
        img_encode_callouts_t
        img_encode_finish()
        img_encode_frame()
        img_expand_getfunc()
        IMG_FMT_BPL()
        IMG_FMT_BPP()
        img_format_t
        img_lib_attach()
        img_lib_detach()
        img_load()
        img_load_file()
        img_load_resize()
        img_load_resize_file()
        img_resize_fs()
        img_rotate_ortho()
        img_write()
        img_write_file()
        img_t
        io_close()
        io_open()
    Input Events Library Reference
      Writing a Touch Driver
        Provide the callback functions
        Connect to the Input Events library
        Provide initialization and cleanup callback functions
        Communicate with the hardware
        Disconnect from the Input Events library
      Input Events Library Overview
        Event types (event_types.h)
          Data types in event_types.h
            contact_type_e
            input_class_e
            input_event_e
            mtouch_event
            mtouch_event_t
        Driver (mtouch_driver.h)
          Constants in mtouch_driver.h
            Definitions in mtouch_driver.h
          Data types in mtouch_driver.h
            mtouch_driver_funcs_t
            Driver test result types
          Functions in mtouch_driver.h
            mtouch_driver_attach()
            mtouch_driver_detach()
            mtouch_driver_process_packet()
            mtouch_test_bist()
            mtouch_test_fini()
            mtouch_test_init()
            mtouch_test_read_firmware_version()
            mtouch_test_read_product_id()
            mtouch_test_read_serial_id()
            mtouch_test_read_supplier_id()
        Log (mtouch_log.h)
          Constants in mtouch_log.h
            Definitions in mtouch_log.h
          Functions in mtouch_log.h
            mtouch_log()
        Parameters (mtouch_params.h)
          Constants in mtouch_params.h
            Definitions in mtouch_params.h
          Data types in mtouch_param.h
            mtouch_driver_params
            mtouch_driver_params_t
            mtouch_filter_config
            mtouch_filter_config_t
            mtouch_client_params
            mtouch_client_params_t
        Parse options (parseopts.h)
          Functions in parseopts.h
            input_parseopts()
            input_parse_bool()
            input_parse_double()
            input_parse_signed()
            input_parse_string()
            input_parse_unsigned()
        Screen helpers (screen_helpers.h)
          Functions in screen_helpers.h
            screen_get_mtouch_event()
    Screen Graphics Subsystem Developer's Guide
      Overview of Screen
      Understanding composition
       Screen API
      Contexts
        Create a context
        Context types
        Set a context property
      Windows
        Window types
        Window properties
        Window parenting and positioning
        Create a window
        Create a child window
        Pixel formats
      Displays
        Multiple displays
          Complete sample: Using multiple displays
      Event Types
      Screen utilities
        drm-intel
        drm-probe-displays
        screen
        screeninfo
        vcapture-test
       Screen Tutorials
        Tutorial: Draw and perform vsync operations using windows
          Create the background window
          Create the child windows
          Create the main() function
          Complete sample: A vsync application using windows
         Tutorial: Draw and perform vsync operations using blits, pixmaps, and buffers
          Create a context and initialize a window
          Create buffers and a pixmap
          Combine buffers with blit functions and properties
          Complete sample: A vsync application using blits, pixmaps, and buffers
        Tutorial: Write an application using OpenGL ES
          Use OpenGL ES in a windowed vsync application
          Complete sample: A windowed vsync application using OpenGL ES
        Tutorial: Screenshots
          Capture a window screenshot
          Complete sample: a window screenshot example
          Capture a display screenshot
          Complete sample: A display screenshot example
        Tutorial: Rendering text with FreeType and OpenGL ES
          Using FreeType library and OpenGL ES to render text
          Complete sample: Rendering text with FreeType and OpenGL ES
        Tutorial: Screen events
          Injecting a Screen event
          Complete sample: Injecting a Screen event
          Injecting a Screen mtouch event
          Complete sample: Injecting a screen event
       Screen Configuration
        Configure Screen
          Configure khronos section
            Configure egl display
            Configuration parameters for egl display
            Configure wfd device
          Configure winmgr section
            Configure globals
            Configuration parameters for globals
            Configure display display_id
            Configuration parameters for display
            Configure class
            Configuration parameters for class
            Configure mtouch
            Configuration parameters for mtouch
            Configuring mtouch filter
            Configuration parameters for filter
          Apply your Screen configuration
          Troubleshooting
            Sample /dev/screen/0/dpy-1 file
            Sample /dev/screen/0/win-0/win-0 file
            Sample /dev/screen/<pid>/win-1/win-1 file
       Screen Library Reference
        Function safety
        Function execution types
          Apply execution
          Delayed execution
          Flushing execution
          Immediate execution
          Function types
        General (screen.h)
          Definitions in screen.h
          _screen_mode
          Screen CBABC mode types
          Screen alpha mode types
          Screen color space types
          Screen flushing types
          Screen idle mode types
          Screen mirror types
          Screen mouse button types
          Screen object types
          Screen pixel format types
          Screen power mode types
          Screen property types
          Screen scaling quality types
          Screen sensitivity masks
          Screen sensitivity types
          Screen touch types
          Screen transparency types
          Screen usage flag types
        Blits (screen.h)
          Screen blit types
          screen_blit()
          screen_fill()
          screen_flush_blits()
        Buffers (screen.h)
          Screen buffer properties
          screen_buffer_t
          screen_create_buffer()
          screen_destroy_buffer()
          screen_get_buffer_property_cv()
          screen_get_buffer_property_iv()
          screen_get_buffer_property_llv()
          screen_get_buffer_property_pv()
          screen_set_buffer_property_cv()
          screen_set_buffer_property_iv()
          screen_set_buffer_property_llv()
          screen_set_buffer_property_pv()
        Contexts (screen.h)
          Screen context properties
          Screen notification types
          screen_context_t
          Screen context types
          screen_create_context()
          screen_destroy_context()
          screen_flush_context()
          screen_get_context_property_cv()
          screen_get_context_property_iv()
          screen_get_context_property_llv()
          screen_get_context_property_pv()
          screen_notify()
          screen_set_context_property_cv()
          screen_set_context_property_iv()
          screen_set_context_property_llv()
          screen_set_context_property_pv()
        Debugging (screen.h)
          Screen debug graph types
          Screen packet types
          screen_print_packet()
        Devices (screen.h)
          Screen device metric counts
          Screen device properties
          Screen game button types
          screen_device_t
          screen_create_device_type()
          screen_destroy_device()
          screen_get_device_property_cv()
          screen_get_device_property_iv()
          screen_get_device_property_llv()
          screen_get_device_property_pv()
          screen_set_device_property_cv()
          screen_set_device_property_iv()
          screen_set_device_property_llv()
          screen_set_device_property_pv()
        Displays (screen.h)
          Screen display metric count types
          Screen display mode types
          Screen display properties
          Screen display technology types
          Screen display types
          screen_display_mode_t
          screen_display_t
          screen_get_display_modes()
          screen_get_display_property_cv()
          screen_get_display_property_iv()
          screen_get_display_property_llv()
          screen_get_display_property_pv()
          screen_read_display()
          screen_set_display_property_cv()
          screen_set_display_property_iv()
          screen_set_display_property_llv()
          screen_set_display_property_pv()
          screen_share_display_buffers()
          screen_wait_vsync()
        Events (screen.h)
          Screen event properties
          Screen event types
          screen_create_event()
          screen_destroy_event()
          screen_event_t
          screen_get_event()
          screen_get_event_property_cv()
          screen_get_event_property_iv()
          screen_get_event_property_llv()
          screen_get_event_property_pv()
          screen_inject_event()
          screen_send_event()
          screen_set_event_property_cv()
          screen_set_event_property_iv()
          screen_set_event_property_llv()
          screen_set_event_property_pv()
        Groups (screen.h)
          Screen group properties
          screen_create_group()
          screen_destroy_group()
          screen_get_group_property_cv()
          screen_get_group_property_iv()
          screen_get_group_property_llv()
          screen_get_group_property_pv()
          screen_group_t
          screen_set_group_property_cv()
          screen_set_group_property_iv()
          screen_set_group_property_llv()
          screen_set_group_property_pv()
        Pixmaps (screen.h)
          Screen pixmap metric counts
          Screen pixmap properties
          screen_attach_pixmap_buffer()
          screen_create_pixmap()
          screen_create_pixmap_buffer()
          screen_destroy_pixmap()
          screen_destroy_pixmap_buffer()
          screen_get_pixmap_property_cv()
          screen_get_pixmap_property_iv()
          screen_get_pixmap_property_llv()
          screen_get_pixmap_property_pv()
          screen_join_pixmap_group()
          screen_leave_pixmap_group()
          screen_pixmap_t
          screen_ref_pixmap()
          screen_set_pixmap_property_cv()
          screen_set_pixmap_property_iv()
          screen_set_pixmap_property_llv()
          screen_set_pixmap_property_pv()
          screen_unref_pixmap()
        Windows (screen.h)
          Screen window metric counts
          Screen window properties
          Screen window types
          screen_attach_window_buffers()
          screen_create_window()
          screen_create_window_buffers()
          screen_create_window_group()
          screen_create_window_type()
          screen_destroy_window()
          screen_destroy_window_buffers()
          screen_discard_window_regions()
          screen_get_window_property_cv()
          screen_get_window_property_iv()
          screen_get_window_property_llv()
          screen_get_window_property_pv()
          screen_join_window_group()
          screen_leave_window_group()
          screen_post_window()
          screen_read_window()
          screen_ref_window()
          screen_set_window_property_cv()
          screen_set_window_property_iv()
          screen_set_window_property_llv()
          screen_set_window_property_pv()
          screen_share_window_buffers()
          screen_unref_window()
          screen_wait_post()
          screen_window_t
    OpenWF Configuration Developer's Guide
      Before you begin
      Introduction to the Wfdcfg library
      Getting the source code
      Setting timing parameters
      Updating Wfdcfg source (adding extensions)
      Building the Wfdcfg library
      Updating your target
      Configuring Screen for your display
      OpenWF Display Configuration Library Reference
        Definitions in wfdcfg.h
        WFDCFG_FNPTR(FN, TYP)
        wfdcfg_device
        wfdcfg_device_create()
        wfdcfg_device_destroy()
        wfdcfg_device_get_extension()
        wfdcfg_ext_fn_set_power_mode_t
        wfdcfg_flags
        wfdcfg_keyval
        wfdcfg_mode_get_extension()
        wfdcfg_mode_list
        wfdcfg_mode_list_create()
        wfdcfg_mode_list_destroy()
        wfdcfg_mode_list_get_next()
        wfdcfg_port
        wfdcfg_port_create()
        wfdcfg_port_destroy()
        wfdcfg_port_get_extension()
        wfdcfg_power_mode
        wfdcfg_timing
    Video Capture Library Reference
      Video Capture Developer's Guide
        Header files and libraries
        Implementing video capture
        Sample video capture program
        Properties applied to arrays
        Contexts
        Buffers
        Platform-specific considerations
      Video Capture Library API Reference (capture.h)
        Properties
          Driver and device properties
          Data bus, and clock and data lane properties
          I2C decoder path and slave address
          Video standards
          Polarity
          Deinterlacing properties and enumerated values
          Source buffer properties
          Destination buffer properties
          Frame properties
          External source properties
          Helper macros
        capture_context_t
        capture_create_buffers()
        capture_create_context()
        capture_destroy_context()
        capture_get_frame()
        capture_get_free_buffer()
        capture_get_property_i()
        capture_get_property_p()
        capture_is_property()
        capture_put_buffer()
        capture_release_frame()
        capture_set_property_i()
        capture_set_property_p()
        capture_update()
  Programming
    Getting Started with QNX Neutrino
      Foreword to the First Edition by Peter van der Veen
      Preface to the First Edition by Rob Krten
        A little history
        Who this book is for
        What's in this book?
        About Rob Krten
        Acknowledgments
      Processes and Threads
        Process and thread fundamentals
          A process as a house
          The occupants as threads
          Back to processes and threads
          Mutual exclusion
          Priorities
          Semaphores
          A semaphore as a mutex
        The kernel's role
          Single CPU
          Multiple CPU (SMP)
          The kernel as arbiter
            Prioritization
            Scheduling policies
            FIFO
            Round Robin
            The rules
          Kernel states
            Kernel states, the complete list
        Threads and processes
          Why processes?
          Starting a process
            Starting a process from the command line
            Starting a process from within a program
              Starting a process with the system() call
              Starting a process with the exec() and spawn() calls
                "l" suffix
                "e" suffix
                "p" suffix
                Plain spawn()
              Starting a process with the fork() call
              Starting a process with the vfork() call
              So what should you use?
          Starting a thread
            The thread attributes structure
              Thread attribute administration
              The "flags" thread attribute
              The "stack" thread attributes
              The "scheduling" thread attributes
            A few examples
            Where a thread is a good idea
            Threads in mathematical operations
              Coding for SMP or single processor
              Synchronizing to the termination of a thread
              Joining
              Using a barrier
              Multiple threads on a single CPU
              Things to watch out for when using SMP
            Threads in independent situations
              Multiple processes
              Multiple processes with shared memory
              Multiple threads
              Comparisons
        More on synchronization
          Readers/writer locks
          Sleepon locks
          Condition variables
            Signal versus broadcast
            Sleepons versus condvars
          Additional OS services
          Pools of threads
            Controlling the number of threads
            The thread pool functions
        Scheduling and the real world
          Rescheduling: hardware interrupts
          Rescheduling: kernel calls
          Rescheduling: exceptions
          Summary
      Message Passing
        A small microkernel and message passing
        Message passing and client/server
        Network-distributed message passing
        What it means for you
        Multiple threads
          Server/subserver
          Some examples
        Using message passing
          Architecture & structure
          The client
            Establishing a connection
            Sending messages
          The server
            Creating the channel
            Message handling
            Server framework
          The send-hierarchy
          Receive IDs, channels, and other parameters
            More about channels
            Who sent the message?
            The receive ID (a.k.a. the client cookie)
            Replying to the client
            Not replying to the client
            Replying with no data, or an errno
            Finding the server's ND/PID/CHID
            What about priorities?
            Reading and writing data
          Multipart messages
            What about the other versions?
            Implementation
        Pulses
          Receiving a pulse message
            What's in a pulse?
            The MsgReceivePulse() function
          The MsgDeliverEvent() function
          Channel flags
            _NTO_CHF_UNBLOCK
              Synchronization problem
              Using the _NTO_MI_UNBLOCK_REQ
        Message passing over a network
          Networked message passing differences
          Some notes on NDs
        Priority inheritance
          So what's the trick?
          Summary
      Clocks, Timers, and Getting a Kick Every So Often
        Clocks and timers
          Operating periodically
          Clock interrupt sources
          Base timing resolution
          Timing jitter
          Types of timers
          Notification schemes
            How to fill in the struct sigevent
              Pulse notification
              Signal notification
              Thread notification
              General tricks for notification
              Pulse notification
              Signal notification
        Using timers
          Creating a timer
          Signal, pulse, or thread?
          What kind of timer?
          A server with periodic pulses
            Server-maintained timeouts
              Declarations
              main()
              setupPulseAndTimer()
              gotAPulse()
              gotAMessage()
            Notes
            Periodic server maintenance cycles
          Timers delivering signals
          Timers creating threads
          Getting and setting the realtime clock and more
        Advanced topics
          Other clock sources
            CLOCK_MONOTONIC
            So what does CLOCK_SOFTTIME do?
            Using different clock sources
          Kernel timeouts
            Kernel timeouts with pthread_join()
            Kernel timeouts with message passing
          Summary
      Interrupts
        QNX Neutrino and interrupts
          Interrupt service routine
            Clearing the interrupt source
            Telling a thread to do something
          Level-sensitivity versus edge-sensitivity
        Writing interrupt handlers
          Attaching an interrupt handler
          Now that you've attached an interrupt
          Detaching an interrupt handler
          The flags parameter
          The interrupt service routine
            Using InterruptAttach()
            Using InterruptAttachEvent()
            InterruptAttach() versus InterruptAttachEvent()
            The tradeoffs
          ISR functions
        Summary
      Resource Managers
        What is a resource manager?
          Examples of resource managers
          Characteristics of resource managers
        The client's view
          Finding the server
          Finding the process manager
          Handling directories
          Unioned filesystems
          Client summary
        The resource manager's view
          Registering a pathname
          Handling messages
            Connect messages
            I/O messages
            Three groups, really
        The resource manager library
          The library really does what we just talked about
          Behind the scenes at the library
            The base layer
            The POSIX layer
        Writing a resource manager
          Data structures
            resmgr_attr_t control structure
              The other_func message handler
              The data structure sizing parameters
              The flags parameter
            resmgr_connect_funcs_t connect table
            resmgr_io_funcs_t I/O table
            The resmgr_context_t internal context block
          Resource manager structure
            The resmgr_attach() function and its parameters
            Putting in your own functions
            The general flow of a resource manager
            Messages that should be connect messages but aren't
            Combine messages
          POSIX-layer data structures
            The iofunc_ocb_t OCB structure
              The strange case of the offset member
            The iofunc_attr_t attributes structure
            The iofunc_mount_t mount structure
              Of device numbers, inodes, and our friend rdev
        Handler routines
          General notes
            Locking, unlocking, and combine message handling
          Connect functions notes
            Internal use part
            End-user parameter part
        Alphabetical listing of connect and I/O functions
          io_acl()
          io_chmod()
          io_chown()
          io_close_dup()
          io_close_ocb()
          io_devctl()
          io_dup()
          io_fdinfo()
          io_link()
          io_lock()
          io_lock_ocb()
          io_lseek()
          io_mknod()
          io_mmap()
          io_mount()
          io_msg()
          io_notify()
          io_open()
          io_openfd()
          io_pathconf()
          io_power()
          io_read()
          io_readlink()
          io_rename()
          io_shutdown()
          io_space()
          io_stat()
          io_sync()
          io_unblock() [CONNECT]
          io_unblock() [I/O]
          io_unlink()
          io_unlock_ocb()
          io_utime()
          io_write()
        Examples
          The basic skeleton of a resource manager
          A simple io_read() example
            The code
            Effective use of other messaging functions
          A simple io_write() example
          A simple io_devctl() example
          An io_devctl() example that deals with data
        Advanced topics
          Extending the OCB
          Extending the attributes structure
          Blocking within the resource manager
          Returning directory entries
            Generally speaking...
            The struct dirent structure and friends
              Offsets
              Contents
            Example
              main() and declarations
              my_open()
               my_read()
               my_read_dir()
              my_read_file()
              dirent_size()
              dirent_fill()
        Summary
      QNX 4 to QNX Neutrino
        Similarities
        Improvements
          Embeddability
          Thread support
          Message passing
            Pulses and events
          Device driver model
          ARM support
          SMP support
        Porting philosophy
          Message passing considerations
            Client/server using the global namespace
              Translating messages to standard file-descriptor-based POSIX calls
              Translating messages to devctl() or _IO_MSG
            Client/Server using an I/O manager
            Proxies
              Proxies for their IDs
              Proxies for their contents
          Interrupt service routines
        Summary
      Calling 911
        Read the manuals
        Contact technical support
          Describe the problem
          Precise information
          Versions
          If you're using a beta…
          Reproduce the problem
          Narrow it down
        Training
      Sample Programs
        atoz.c
        time1.c
        tp1.c
        tt1.c
      Glossary
    Programmer's Guide
      Compiling and Debugging
        Choosing the version of the OS
        Making your code more portable
          Conforming to standards
          Including OS-specific code
        Cross-development
          Cross-development with network filesystem
          Cross-development with debugger
          Cross-development, deeply embedded
        Using libraries
        Linking your modules
          Creating shared objects
            Specifying an internal name
        Optimizing the runtime linker
          Lazy binding
          RTLD_LAZY
          Lazy loading
          Diagnostics and debugging
          Environment variables
        Debugging in a cross-development environment
          The GNU debugger (gdb)
          The process-level debug agent
            Serial connection
            TCP/IP connection
        A simple debug session
        Debugging using libmudflap
      Programming Overview
        An application as a set of processes
        Some definitions
        Priorities and scheduling
          Priority range
          BLOCKED and READY states
          The ready queue
          Rescheduling a running thread
        Scheduling policies
          FIFO scheduling
          Round-robin scheduling
          Sporadic scheduling
        Why threads?
        Summary
      Processes
        Starting processes: two methods
        Process creation
          Concurrency
          Inheriting file descriptors
        Process termination
        Detecting process termination
          Using the High Availability Framework
          Detecting termination from a starter process
          Sample parent process using wait()
          Sample parent process using sigwaitinfo()
          Detecting dumped processes
          Detecting the termination of daemons
          Detecting client termination
        Stack allocation
        Process privileges
          Privilege separation
            Thread I/O privileges
          Procmgr abilities
            Ability domains
            Ability ranges
            Locking an ability
            Dropping an ability
            Ability inheritance
              Basic inheritance
              Locking and inheritance
            Creating abilities
          An example of privilege separation
          Resource constraint thresholds
        Controlling processes via the /proc filesystem
          Establishing a connection
          Reading and writing the process's address space
            Determining the offset
            Determining accessibility
          Manipulating a process or thread
            Selecting a thread for further operations
            Starting/stopping processes and threads
            Setting breakpoints
            Examining process and thread attributes
          Thread information
          DCMD_PROC_BREAK
          DCMD_PROC_CHANNELS
          DCMD_PROC_CLEAR_FLAG
          DCMD_PROC_CURTHREAD
          DCMD_PROC_EVENT
          DCMD_PROC_FREEZETHREAD
          DCMD_PROC_GETALTREG
          DCMD_PROC_GETFPREG
          DCMD_PROC_GETGREG
          DCMD_PROC_GETREGSET
           DCMD_PROC_GET_BREAKLIST
          DCMD_PROC_INFO
           DCMD_PROC_IRQS
          DCMD_PROC_MAPDEBUG
          DCMD_PROC_MAPDEBUG_BASE
           DCMD_PROC_MAPINFO
           DCMD_PROC_PAGEDATA
          DCMD_PROC_PTINFO
          DCMD_PROC_RUN
          DCMD_PROC_SETALTREG
          DCMD_PROC_SETFPREG
          DCMD_PROC_SETGREG
          DCMD_PROC_SETREGSET
          DCMD_PROC_SET_FLAG
          DCMD_PROC_SIGNAL
          DCMD_PROC_STATUS
          DCMD_PROC_STOP
          DCMD_PROC_SYSINFO
          DCMD_PROC_THAWTHREAD
          DCMD_PROC_THREADCTL
          DCMD_PROC_TIDSTATUS
           DCMD_PROC_TIMERS
          DCMD_PROC_WAITSTOP
      Working with Access Control Lists (ACLs)
        ACL formats
        ACL storage management
        Manipulating ACL entries in working storage
        Manipulating permissions in an ACL entry
        Manipulating the tag type and qualifier in an ACL entry
        Manipulating ACLs on a file or directory
        Example
      Tick, Tock: Understanding the Microkernel's Concept of Time
        Short delays
        Oversleeping: errors in delays
        Another hiccup with hardware timers
        What time is it?
        Clocks, timers, and power management
      Transparent Distributed Processing Using Qnet
        Benefits of Qnet
        How does it work?
        Locating services using GNS
        Quality of Service (QoS) and multiple paths
        Designing a system using Qnet
        Autodiscovery vs static
        When should you use Qnet, TCP/IP, or NFS?
        Drivers for Qnet
        Low-level discussion of Qnet principles
        Details of Qnet data communication
        Node descriptors
        Forcing retransmission
      Writing an Interrupt Handler
        Interrupts on multicore systems
        Attaching and detaching interrupts
        Interrupt Service Routine (ISR)
          Determining the source of the interrupt
          Servicing the hardware
            Safe functions
          Updating common data structures
          Notifying the application code
            Using InterruptAttach()
            Using InterruptAttachEvent()
        Running out of interrupt events
        Problems with shared interrupts
        Advanced topics
          Interrupt environment
          Ordering of shared interrupts
          Interrupt latency
          Atomic operations
          Interrupts and power management
      Heap Analysis
        Memory management in QNX Neutrino
        Dynamic memory management
        Heap corruption
        Detecting and reporting errors
          Using the librcheck library
          Controlling the level of checking
          Forcing verification
          Specifying an error handler
          Caveats
        Manual checking (bounds checking)
        Memory leaks
        C++ issues
      Freedom from Hardware and Platform Dependencies
        Common problems
          I/O space vs memory-mapped
          Big-endian vs little-endian
          Alignment and structure packing
          Atomic operations
        Solutions
          Determining endianness
          Swapping data if required
          Accessing unaligned data
          Examples
            Mixed-endian accesses
            Accessing hardware with dual-ported memory
          Accessing I/O ports
      Conventions for Recursive Makefiles and Directories
        Structure of a multiplatform source tree
          Makefile structure
          The recurse.mk file
          Macros
            The EARLY_DIRS and LATE_DIRS macros
            The LIST macro
            The MAKEFILE macro
            The CHECKFORCE macro
          Directory levels
            Project level
            Section level (optional)
            OS level
            CPU level
            Variant level
        Specifying options
          The common.mk file
          The variant-level makefile
          Recognized variant names
        Using the standard macros and include files
          The qconfig.mk include file
            Preset macros
            Postset macros
            qconfig.mk macros
          The qrules.mk include file
          The qtargets.mk include file
        Advanced topics
          Collapsing unnecessary directory levels
          Performing partial builds
          Performing parallel builds
          More uses for LIST
          GNU configure
            hook_preconfigure()
            hook_postconfigure()
            hook_premake()
            hook_postmake()
            hook_pinfo()
        Examples of creating Makefiles
          A single application
          A library and an application
      POSIX Conformance
        Conformance statement
          System interfaces: general attributes
            Supported features
            Optional features
            Float, standard I/O, and limit values
            Error conditions
            Mathematical interfaces
          File handling
          Internationalized system interfaces
          Threads: Cancellation points
          Realtime: Prioritized I/O
          Realtime threads
          C-language compilation environment
        POSIX Conformance Document (PCD)
          Base Definitions
            3. Definitions
            4. General Concepts
            6. Character Set
            7. Locale
            8. Environment Variables
            13. Headers
          System Interfaces
            2.3. Error Numbers
            2.4. Signal Concepts
            2.5. Standard I/O Streams
            2.8. Realtime
            2.11. Tracing
            3. System Interfaces
        Non-POSIX functions with POSIX-sounding names
      Using GDB
        QNX Neutrino-specific extensions
        A quick overview of starting the debugger
        GDB commands
          Command syntax
          Command completion
          Getting help
        Running programs under GDB
          Compiling for debugging
          Setting the target
          Starting your program
          Your program's arguments
          Your program's environment
          Your program's input and output
          Debugging an already-running process
          Killing the process being debugged
          Debugging programs with multiple threads
          Debugging programs with multiple processes
        Stopping and continuing
          Breakpoints, watchpoints, and exceptions
            Setting breakpoints
            Setting watchpoints
            Breakpoints and exceptions
            Deleting breakpoints
            Disabling breakpoints
            Break conditions
            Breakpoint command lists
            Breakpoint menus
          Continuing and stepping
          Signals
          Stopping and starting multithreaded programs
        Examining the stack
          Stack frames
          Backtraces
          Selecting a frame
          Information about a frame
        Examining source files
          Printing source lines
          Searching source files
          Specifying source directories
          Source and machine code
          Shared libraries
        Examining data
          Expressions
          Program variables
          Artificial arrays
          Output formats
          Examining memory
          Automatic display
          Print settings
          Value history
          Convenience variables
          Registers
          Floating point hardware
        Examining the symbol table
        Altering execution
          Assignment to variables
          Continuing at a different address
          Giving your program a signal
          Returning from a function
          Calling program functions
          Patching programs
      Glossary
    The QNX Neutrino Cookbook: Recipes for Programmers
      Foreword to the First Edition by Brian Stecher
      Preface to the First Edition by Rob Krten
        What's in this book?
        Philosophy
        Recipes
        References
        What's not in this book?
        Other references
        Thanks!
      The Basics
        In the beginning...
          The main() function
          Command-line processing — optproc()
          Common globals
          Usage messages
        Threaded resource managers
      High Availability
        Terminology
        Lies, damn lies, and statistics
        Increasing availability
          Increasing the MTBF
          Decreasing the MTTR
          Parallel versus serial
            Series calculations
            Parallel calculations
            Aggregate calculations
        Failure modes and recovery models
          Cascade failures
            System startup and HA
          Overlords, or Big Brother is watching you
          Cold, warm, and hot standby
            Achieving cold standby
            Achieving warm standby
            Achieving hot standby
            Problems
          Detecting failure
            Obituaries
          Graceful fail-over
          Using shadows
          In-service upgrades
          Policies
        Implementing HA
        RK drones on about his home systems again
        Other HA systems
      Design Philosophy
        Decoupling design in a message-passing environment
          Door-lock actuators
          At this point...
        Managing message flow
          Swipe-card readers
            Control program sends to the swipe-card reader
            Swipe-card reader sends to control program
            Using a keypad challenge — control program sends to the swipe-card reader
            Using a keypad challenge — swipe-card reader sends to control program
        Scalability
          Distributed processing
        Summary
      Web Counter Resource Manager
        Requirements
          Using the web counter resource manager
        Design
          Generating the graphical image
        The code — phase 1
          Operation
            Generating the graphical image
          Step-by-step code walkthrough
            Include files and data structures
            Source files
            The code
              The execute_resmgr() function
              The io_open() function
              The io_read() function
              The io_close_ocb() function
              The render_7segment() function
              The encode_image() function
        The code — phase 2
          Persistent count file
          Font selection
          Plain text rendering
          Writing to the resource
            Adding the io_write() handler
            The io_write() function
            The io_close_ocb() function
        The code — phase 3
          Filename processing tricks
          Changes
            Globals
            The new-and-improved execute_resmgr()
            Option processing
            Handling io_read()
              Operating on a file
              Operating on a directory
              The persistent counter file
        Enhancements
        References
      ADIOS — Analog/Digital I/O Server
        Requirements
        Design
          Driver Design
            DIO-144
            ISO-813
            PCL-711
          Shared Memory Design
          Tags database design
        The Driver Code
          Theory of operation
          Code walkthrough
            main() and friends
            The resource manager modules
            The card interface modules
              Card configuration
              Analog input
              Analog output
              Digital input
              Digital output
        The ADIOS server code
          The usual stuff
          The shared memory region
            Calculating the sizes of data structures
            Open and check the shared memory
            Truncate and map shared memory
          Acquiring data
        The showsamp and tag utilities
          The showsamp utility
          The tag utility
        References
      RAM-disk Filesystem
        Requirements
          Connect functions
          I/O functions
          Missing functions
        Design
        The code
          The extended attributes structure
          The io_read() function
          The io_write() function
          The c_open() function
            Finding the target
              The pathwalk() function
              The connect_msg_to_attr() function
            Fun with symlinks
            Analyze the mode flag
            Bind the OCB and attributes structure
            Finally, the c_open() code walkthrough
            Walkthrough
            The redirect_symlink() function
          The c_readlink() function
          The c_link() function
          The c_rename() function
          The c_mknod() function
          The c_unlink() function
          The io_close_ocb() function
          The io_devctl() function
            Mounting options
            Filesystem statistics
          The c_mount() function
        References
      TAR Filesystem
        Requirements
        Design
          Creating a .tar file
        The code
          The structures
          The functions
            The c_mount() function
            The analyze_tar_file() function
            The add_tar_entry() function
            The io_read() function and related utilities
          The mount helper program
        Variations on a theme
          Virtual filesystem for USENET news (VFNews)
            How does USENET news work?
            So why is this a problem?
            How can this possibly be made better?
            Operation
          Strange and unusual filesystems
            Indexed filesystem
            Executing commands
          Secure filesystem
          Line-based filesystem
        References
      Filesystems
        What is a filesystem?
          Hierarchical arrangement
          Data elements
          The mount point and the root
        What does a filesystem do?
        Filesystems and QNX Neutrino
        How does a filesystem work?
          Mount point management
            Unnamed mount registration
            Special device registration
            Mount point registration
          Pathname resolution
          Directory management
          Data element content management
        References
      The /proc Filesystem
        The /proc/boot directory
        The /proc/mount directory
        The /proc by-process-ID directories
          Operations on the as entry
            Discontiguous address space
            Someone else's virtual address space
          Finding a particular process
            Iterating through the list of processes
          Finding out information about the process
          DCMD_PROC_INFO
            Process information
            Memory information
            Signal information
            CPU usage information
            Miscellaneous
          DCMD_PROC_MAPINFO and DCMD_PROC_PAGEDATA
          DCMD_PROC_TIMERS
          DCMD_PROC_IRQS
          Finding out information about the threads
            The DCMD_PROC_TIDSTATUS command
            Blocked thread information
            The DCMD_PROC_GETGREG and DCMD_PROC_GETFPREG commands
        References
      Sample Programs
        Web-Counter resource manager
        ADIOS — Analog / Digital I/O Server
        RAM-disk and tar filesystem managers
        The /proc filesystem
      Glossary
    Writing a Resource Manager
      What Is a Resource Manager?
        Why write a resource manager?
        The types of resource managers
        Communication via native IPC
        Examples of resource managers
          Transparent Distributed Processing (Qnet) statistics
          Robot arm
          GPS devices
          Database example
          I2C (Inter-Integrated Circuit) driver
        When not to use a resource manager
      The Bones of a Resource Manager
        Under the covers
          Under the client's covers
          Under the resource manager's covers
        Layers in a resource manager
        Simple examples of device resource managers
          Single-threaded device resource manager
            Initialize the dispatch interface
            Initialize the resource manager attributes
            Initialize functions used to handle messages
            Initialize the attribute structure used by the device
            Put a name into the namespace
            Allocate the context structure
            Start the resource manager message loop
          Multithreaded device resource manager
            Define THREAD_POOL_PARAM_T
            Initialize thread pool attributes
            Allocate a thread pool handle
            Start the threads
          Using MsgSend() and MsgReply()
            A bit of history
            The server
            The client
      Fleshing Out the Skeleton
        Message types
          Connect messages
          I/O messages
          Default message handling
          open(), dup(), and close()
        Setting resource manager attributes
        Ways of adding functionality to the resource manager
          Using the default functions
          Using the helper functions
          Writing the entire function yourself
        Security
      POSIX-Layer Data Structures
        The iofunc_ocb_t (Open Control Block) structure
        The iofunc_attr_t (attribute) structure
        The optional iofunc_mount_t (mount) structure
      Handling Read and Write Messages
        Handling the _IO_READ message
          Sample code for handling _IO_READ messages
        Handling the _IO_WRITE message
          Sample code for handling _IO_WRITE messages
        Methods of returning and replying
        Handling other read/write details
          Handling the xtype member
            If you aren't expecting extended types (xtype)
          Handling pread*() and pwrite*()
            Sample code for handling _IO_READ messages in pread*()
            Sample code for handling _IO_WRITE messages in pwrite*()
          Handling readcond()
        Updating the time for reads and writes
      Combine Messages
        Where combine messages are used
        The library's combine-message handling
          Component responses
          Component data access
          Locking and unlocking the attribute structure
          Connect message types
      Extending the POSIX-Layer Data Structures
        Extending the OCB and attribute structures
        Extending the mount structure
      Handling Other Messages
        Custom messages
        Handling devctl() messages
          Sample code for handling _IO_DEVCTL messages
        Handling ionotify() and select()
          Sample code for handling _IO_NOTIFY messages
        Handling out-of-band (_IO_MSG) messages
        Handling private messages and pulses
        Handling open(), dup(), and close() messages
        Handling mount()
          mount() function call
          Mount in the resource manager
          mount utility
        Handling stat()
        Handling lseek()
      Unblocking Clients and Handling Interrupts
        Handling client unblocking due to signals or timeouts
        Unblocking if someone closes a file descriptor
        Handling interrupts
          Sample code for handling interrupts
      Multithreaded Resource Managers
        Multithreaded resource manager example
        Thread pool attributes
        Thread pool functions
      Filesystem Resource Managers
        Considerations for filesystem resource managers
        Taking over more than one device
        Handling directories
          Matching at or below a mountpoint
          The _IO_OPEN message for filesystems
          Returning directory entries from _IO_READ
            Returning information associated with a directory structure
      Glossary
  Utilities & Libraries
    Addon Interfaces Library Reference
      Overview
        An example
      Addon Interfaces Library Reference
        AOICtrl_t
        AOInterface_t
        AoAdd()
        AoAddDirectory()
        AoAddStatic()
        AoAddUnloadSignal()
        AoGetInterface()
        AoHold()
        AoIterate()
        AoIterateHoldGet()
        AoRelease()
        AoRemove()
        AoFindExt()
        AoFindFormats()
        AoFindMime()
        AoFindName()
        AoFindStreams()
        AoOpenFilespec()
      Implemented Interfaces
        Built-in Interfaces
        AODeConstructor
          Create()
          Destroy()
        AOExtInspector
          RateExtension()
        AOFormatInspector
          RateFormat()
        AOMimetypeInspector
          RateMimetype()
        AOStreamer
          Open()
          Close()
          Sniff()
          Read()
          Write()
          Seek()
          Tell()
          Length()
          SideInfo()
        AOStreamInspector
          RateStream()
        AOResourceAccess
          GetResources()
          SetResource()
        Built-in interfaces
          Unloading and InitializeInterface
          Name
      Using Addon Resources
        An Example
        Using addon resources in your application
      Defined Structures
        AOIStream_t
        AOMimeInfo_t
        AOResource_t
        AOAudioFormat_t
        ImageFormat_t
        MediaFormat_t
        VideoFormat_t
    Devctl and Ioctl Commands
      CAN_DEVCTL_*
        CAN_DEVCTL_DEBUG_INFO
        CAN_DEVCTL_DEBUG_INFO2
        CAN_DEVCTL_ERROR
        CAN_DEVCTL_GET_MFILTER
        CAN_DEVCTL_GET_MID
        CAN_DEVCTL_GET_PRIO
        CAN_DEVCTL_GET_TIMESTAMP
        CAN_DEVCTL_READ_CANMSG_EXT
        CAN_DEVCTL_SET_MFILTER
        CAN_DEVCTL_SET_MID
        CAN_DEVCTL_SET_PRIO
        CAN_DEVCTL_SET_TIMESTAMP
      DCMD_ALL_*
        DCMD_ALL_FADVISE
        DCMD_ALL_GETFLAGS
        DCMD_ALL_GETMOUNTFLAGS
        DCMD_ALL_GETOWN
        DCMD_ALL_SETFLAGS
        DCMD_ALL_SETOWN
      DCMD_BLK_*
        DCMD_BLK_FORCE_RELEARN, DCMD_FSYS_FORCE_RELEARN
        DCMD_BLK_PART_DESCRIPTION
        DCMD_BLK_PARTENTRY
      DCMD_BT_*
        DCMD_BT_ISOC_DISABLE
        DCMD_BT_ISOC_ENABLE
      DCMD_CHR_*
        DCMD_CHR_DISABLE_LOGGING
        DCMD_CHR_ENABLE_LOGGING
        DCMD_CHR_FLUSH_LOG
        DCMD_CHR_FORCE_RTS
        DCMD_CHR_GETOBAND
        DCMD_CHR_GETSIZE
        DCMD_CHR_GETVERBOSITY
        DCMD_CHR_IDLE
        DCMD_CHR_ISATTY
        DCMD_CHR_ISCHARS
        DCMD_CHR_ISSIZE
        DCMD_CHR_LINESTATUS
        DCMD_CHR_OSCHARS
        DCMD_CHR_OSSIZE
        DCMD_CHR_PARCTL
        DCMD_CHR_PNPTEXT
        DCMD_CHR_PUTOBAND
        DCMD_CHR_RESET
        DCMD_CHR_RESUME
        DCMD_CHR_SERCTL
        DCMD_CHR_SET_LOGGING_DIR
        DCMD_CHR_SETSIZE
        DCMD_CHR_SETVERBOSITY
        DCMD_CHR_TCDRAIN
        DCMD_CHR_TCFLOW
        DCMD_CHR_TCFLUSH
        DCMD_CHR_TCGETATTR
        DCMD_CHR_TCGETPGRP
        DCMD_CHR_TCGETSID
        DCMD_CHR_TCINJECTC, DCMD_CHR_TCINJECTR
        DCMD_CHR_TCSETATTR, DCMD_CHR_TCSETATTRD, DCMD_CHR_TCSETATTRF
        DCMD_CHR_TCSETPGRP
        DCMD_CHR_TCSETSID
        DCMD_CHR_TTYINFO
        DCMD_CHR_WAITINFO
      DCMD_DUMPER_*
        DCMD_DUMPER_NOTIFYEVENT
        DCMD_DUMPER_REMOVEALL
        DCMD_DUMPER_REMOVEEVENT
      DCMD_ETFS_*
        DCMD_ETFS_DEFRAG
        DCMD_ETFS_ERASE
        DCMD_ETFS_ERASE_RANGE
        DCMD_ETFS_FLUSH_COUNT
        DCMD_ETFS_FORMAT
        DCMD_ETFS_INFO
        DCMD_ETFS_START
        DCMD_ETFS_STOP
      DCMD_F3S_*
        DCMD_F3S_ARRAYINFO
        DCMD_F3S_CLRCMP
        DCMD_F3S_ERASE
        DCMD_F3S_EXIT
        DCMD_F3S_FORMAT
        DCMD_F3S_GEOINFO
        DCMD_F3S_GETCMP
        DCMD_F3S_LOCKSSR
        DCMD_F3S_LOCK
        DCMD_F3S_MOUNT
        DCMD_F3S_PARTINFO
        DCMD_F3S_READSSR
        DCMD_F3S_RECLAIMCTL
        DCMD_F3S_RECLAIM
        DCMD_F3S_SETCMP
        DCMD_F3S_UMOUNT
        DCMD_F3S_UNITINFO
        DCMD_F3S_UNLOCKALL
        DCMD_F3S_UNLOCK
        DCMD_F3S_WRITESSR
      DCMD_FSEVMGR_*
        DCMD_FSEVMGR_AUTHORIZE
        DCMD_FSEVMGR_CHECK
        DCMD_FSEVMGR_FILTER_ADD
        DCMD_FSEVMGR_FILTER_REM
        DCMD_FSEVMGR_QNX_EXT
        DCMD_FSEVMGR_STATS
        DCMD_FSEVMGR_WRITER
      DCMD_FSYS_*
        DCMD_FSYS_CRYPTO
        DCMD_FSYS_DIRECT_IO
        DCMD_FSYS_ERRNOTIFY
        DCMD_FSYS_FILE_FLAGS
        DCMD_FSYS_FILTER_DETACH
        DCMD_FSYS_FSEVMGR_CHECK
        DCMD_FSYS_FSNOTIFY
        DCMD_FSYS_HOOK_CTL
        DCMD_FSYS_LABEL, DCMD_FSYS_LABEL_RAW
        DCMD_FSYS_MAP_OFFSET
        DCMD_FSYS_MOUNTED_AT, DCMD_FSYS_MOUNTED_BY, DCMD_FSYS_MOUNTED_ON
        DCMD_FSYS_OPTIONS
        DCMD_FSYS_PREGROW_FILE
        DCMD_FSYS_STATISTICS, DCMD_FSYS_STATISTICS_CLR
        DCMD_FSYS_STATVFS
      DCMD_IP_*
        DCMD_IP_FDINFO
        DCMD_IP_GDESTADDR
        DCMD_IP_GSRCADDR
        DCMD_IP_LISTEN
        DCMD_IP_SDESTADDR
        DCMD_IP_SHUTDOWN
        DCMD_IP_SSRCADDR
      DCMD_MEMMGR_*
      DCMD_MISC_*
        DCMD_MISC_MQGETATTR
        DCMD_MISC_MQSETATTR
        DCMD_MISC_MQSETCLOSEMSG
      DCMD_MMCSD_*
        DCMD_MMCSD_CARD_REGISTER
        DCMD_MMCSD_ERASE
        DCMD_MMCSD_ERASED_VAL
        DCMD_MMCSD_GET_CID
        DCMD_MMCSD_GET_CID_RAW
        DCMD_MMCSD_GET_CSD
        DCMD_MMCSD_RPMB_RW_FRAME
        DCMD_MMCSD_RPMB_SIZE
        DCMD_MMCSD_VUC_CMD
        DCMD_MMCSD_WRITE_PROTECT
      DCMD_PROC_*
      DCMD_PROF_*
        DCMD_PROF_ATTACH
        DCMD_PROF_DETACH
        DCMD_PROF_MAPPING_ADD
        DCMD_PROF_MAPPING_REM
        DCMD_PROF_QUERY
      DCMD_SDIO_*
        DCMD_SDIO_ATTACH_DEVICE
        DCMD_SDIO_CFG_IOMEM
        DCMD_SDIO_CLR_IOREG
        DCMD_SDIO_DETACH_DEVICE
        DCMD_SDIO_DEV_START
        DCMD_SDIO_DEV_STOP
        DCMD_SDIO_GET_HCCAP
        DCMD_SDIO_INTR_DISABLE
        DCMD_SDIO_INTR_ENABLE
        DCMD_SDIO_READ_IOREG
        DCMD_SDIO_SET_IOREG
        DCMD_SDIO_SHMEM_FINI
        DCMD_SDIO_SHMEM_INIT
        DCMD_SDIO_VENDOR
        DCMD_SDIO_WRITE_IOREG
      DCMD_SDMMC_*
        DCMD_SDMMC_ASSD_APDU
        DCMD_SDMMC_ASSD_CONTROL
        DCMD_SDMMC_ASSD_PROPERTIES
        DCMD_SDMMC_ASSD_STATUS
        DCMD_SDMMC_CARD_REGISTER
        DCMD_SDMMC_DEVICE_HEALTH
        DCMD_SDMMC_DEVICE_INFO
        DCMD_SDMMC_ERASE
        DCMD_SDMMC_LOCK_UNLOCK
        DCMD_SDMMC_PART_INFO
        DCMD_SDMMC_PWR_MGNT
        DCMD_SDMMC_WRITE_PROTECT
      DCMD_SPI_*
      FIO*
        FIOASYNC
        FIOCLEX
        FIOGETOWN
        FIONBIO
        FIONCLEX
        FIONREAD
        FIONSPACE
        FIONWRITE
        FIOSETOWN
      TC*
        TCFLSH
        TCGETA
        TCGETS
        TCSBRK
        TCSETA, TCSETAF, TCSETAW
        TCSETS, TCSETSF, TCSETSW
        TCXONC
      TIOC*
        TIOCCBRK
        TIOCCDTR
        TIOCDRAIN
        TIOCEXCL, TIOCSINUSE
        TIOCFLUSH
        TIOCGETA
        TIOCGETC
        TIOCGETP
        TIOCGLTC
        TIOCGETPGRP, TIOCGPGRP
        TIOCGSIZE, TIOCGWINSZ
        TIOCHPCL
        TIOCLGET
        TIOCLSET
        TIOCMBIC
        TIOCMBIS
        TIOCMGET
        TIOCMSET
        TIOCNOTTY
        TIOCNXCL
        TIOCOUTQ
        TIOCPKT
        TIOCSCTTY
        TIOCSDTR
        TIOCSETA, TIOCSETAF, TIOCSETAW
        TIOCSETC
        TIOCSETN, TIOCSETP
        TIOCSLTC
        TIOCSETPGRP, TIOCSPGRP
        TIOCSTART
        TIOCSTI
        TIOCSTOP
        TIOCSSIZE, TIOCSWINSZ
    Dinkum C/C++ Libraries
      Dinkum C++11 Libraries
        C++ Library Overview
        C Library Overview
        Characters
        Files and Streams
        Formatted Output
        Formatted Input
        Locale Definitions
        STL Conventions
        STL Container
        Random Number Generators
        Regular Expressions
        Thread Safety
        C Library Extension 1
        Dinkum Allocators Library
        Dinkum Conversions Library
          Multibyte Conversions
        Dinkum Threads Library
          C Interface
          C++ Interface
        <algorithm>
        "allocators"
        <array>
        <assert.h>
        <atomic>
        <bitset>
        <cassert>
        <ccomplex>
        <cctype>
        <cerrno>
        <cfenv>
        <cfloat>
        <chrono>
        <cinttypes>
        <ciso646>
        <climits>
        <clocale>
        <cmath>
        <codecvt>
        <complex>
        <complex.h>
        "condition"
        <condition_variable>
        <csetjmp>
        <csignal>
        <cstdalign>
        <cstdarg>
        <cstdbool>
        <cstddef>
        <cstdint>
        <cstdio>
        <cstdlib>
        <cstring>
        <ctgmath>
        <ctime>
        <ctype.h>
        <cuchar>
        <cwchar>
        <cwctype>
        <deque>
        <errno.h>
        <exception>
        "exceptions"
        <fenv.h>
        "fixed.h"
        <float.h>
        <forward_list>
        <fstream>
        <functional>
        <future>
        <hardware>
        <hash_map>
        <hash_set>
        <initializer_list>
        <inttypes.h>
        <iohw.h>
        <iomanip>
        <ios>
        <iosfwd>
        <iostream>
        <iso646.h>
        <istream>
        <iterator>
        <limits>
        <limits.h>
        <list>
        <locale>
        <locale.h>
        <map>
        <math.h>
        <memory>
        "mutex"
        <mutex>
        <new>
        <numeric>
        "once"
        <ostream>
        <queue>
        <random>
        <ratio>
        "recursive_mutex"
        <regex>
        <scoped_allocator>
        <set>
        <setjmp.h>
        <signal.h>
        <slist>
        <sstream>
        <stack>
        <stdalign.h>
        <stdarg.h>
        <stdbool.h>
        <stddef.h>
        <stdexcept>
        <stdfix.h>
        <stdint.h>
        <stdio.h>
        <stdlib.h>
        <streambuf>
        <string>
        <string.h>
        <strstream>
        <system_error>
        <tgmath.h>
        <thread>
        "threads.h"
        <time.h>
        "tss"
        <tuple>
        <typeindex>
        <typeinfo>
        <type_traits>
        <uchar.h>
        <unordered_map>
        <unordered_set>
        <utility>
        <valarray>
        <vector>
        "wbuffer.h"
        <wchar.h>
        <wctype.h>
        "wstring"
        "xtime"
        "xtimec.h"
        Expressions
        Functions
        Preprocessing
        Index
    QNX Neutrino C Library Reference
      What's in a Function Description?
      Manifests
      A
        abort()
        abs()
        accept()
        access()
        acl_add_perm()
        acl_calc_mask()
        acl_clear_perms()
        acl_copy_entry()
        acl_copy_ext()
        acl_copy_int()
        acl_create_entry()
        acl_delete_entry()
        acl_delete_perm()
        acl_dup()
        acl_free()
        acl_from_text()
        acl_get_entry()
        acl_get_fd()
        acl_get_file()
        acl_get_permset()
        acl_get_qualifier()
        acl_get_tag_type()
        acl_init()
        acl_set_fd()
        acl_set_file()
        acl_set_permset()
        acl_set_qualifier()
        acl_set_tag_type()
        acl_size()
        acl_to_text()
        acl_valid()
        acos(), acosf(), acosl()
        acosh(), acoshf(), acoshl()
        addrinfo
        aio_cancel()
        aio_error()
        aio_fsync()
        aio_read(), aio_read64()
        aio_return()
        aio_suspend()
        aio_write(), aio_write64()
        aiocb, aiocb64
        alarm()
        alloca()
        alphasort()
        _amblksiz
        _argc
        _argv
        asctime(), asctime_r()
        asin(), asinf(), asinl()
        asinh(), asinhf(), asinhl()
        assert()
        atan(), atanf(), atanl()
        atan2(), atan2f()
        atanh(), atanhf(), atanhl()
        atexit()
        atof()
        atoh()
        atoi()
        atol(), atoll()
        atomic_add()
        atomic_add_value()
        atomic_clr()
        atomic_clr_value()
        atomic_set()
        atomic_set_value()
        atomic_sub()
        atomic_sub_value()
        atomic_toggle()
        atomic_toggle_value()
        _auxv
      B
        basename()
        bcmp()
        bcopy()
        bind()
        bindresvport()
        bsearch()
        bt_get_backtrace()
        bt_init_accessor()
        bt_load_memmap()
        bt_release_accessor()
        bt_set_flags()
        bt_sprn_memmap()
        bt_sprnf_addrs()
        bt_translate_addrs()
        bt_unload_memmap()
        _btext
        btowc()
        bzero()
      C
        _cred_info
        cabs(), cabsf()
        cache_fini()
        CACHE_FLUSH()
        cache_init()
        CACHE_INVAL()
        calloc()
        cbrt(), cbrtf()
        ceil(), ceilf()
        cfgetispeed()
        cfgetospeed()
        cfgopen()
        cfmakeraw()
        cfree()
        cfsetispeed()
        cfsetospeed()
        ChannelCreate(), ChannelCreate_r()
        ChannelCreateExt()
        ChannelDestroy(), ChannelDestroy_r()
        chdir()
        chmod()
        chown()
        chroot()
        chsize()
        clearenv()
        clearerr()
        ClientInfoExtFree()
        clock()
        clock_getcpuclockid()
        clock_getres()
        clock_gettime()
        clock_nanosleep()
        clock_settime()
        ClockAdjust(), ClockAdjust_r()
        ClockCycles()
        ClockId(), ClockId_r()
        ClockPeriod(), ClockPeriod_r()
        ClockTime(), ClockTime_r()
        close()
        closedir()
        closelog()
        _cmdfd()
        _cmdname()
        confstr()
        connect()
        ConnectAttach(), ConnectAttach_r()
        ConnectClientInfo(), ConnectClientInfo_r()
        ConnectClientInfoAble()
        ConnectClientInfoExt()
        ConnectDetach(), ConnectDetach_r()
        ConnectFlags(), ConnectFlags_r()
        ConnectServerInfo(), ConnectServerInfo_r()
        copysign(), copysignf()
        cos(), cosf(), cosl()
        cosh(), coshf(), coshl()
        creat(), creat64()
        crypt()
        ctermid()
        ctime(), ctime_r()
      D
        daemon()
        daylight
        DebugBreak()
        DebugKDBreak()
        DebugKDOutput()
        delay()
        devctl()
        dhcpctl*()
        difftime()
        dircntl()
        dirent, dirent64
        dirname()
        dispatch_block()
        dispatch_context_alloc()
        dispatch_context_free()
        dispatch_create()
        dispatch_create_channel()
        dispatch_destroy()
        dispatch_handler()
        dispatch_timeout()
        dispatch_unblock()
        div()
        dladdr()
        dlclose()
        dlerror()
        dlopen()
        dlsym()
        dn_comp()
        dn_expand()
        drand48()
        ds_clear()
        ds_create()
        ds_deregister()
        ds_flags()
        ds_get()
        ds_register()
        ds_set()
        dup()
        dup2()
      E
        eaccess()
        _edata
        encrypt()
        _end
        endfsent()
        endgrent()
        endhostent()
        ENDIAN_BE16()
        ENDIAN_BE32()
        ENDIAN_BE64()
        ENDIAN_LE16()
        ENDIAN_LE32()
        ENDIAN_LE64()
        ENDIAN_RET16()
        ENDIAN_RET32()
        ENDIAN_RET64()
        ENDIAN_SWAP16()
        ENDIAN_SWAP32()
        ENDIAN_SWAP64()
        endnetent()
        endprotoent()
        endpwent()
        endservent()
        endspent()
        endutent()
        environ
        eof()
        erand48()
        erf(), erff()
        erfc(), erfcf(), erfcl()
        err(), errx()
        errno
        _etext
        execl()
        execle()
        execlp()
        execlpe()
        execv()
        execve()
        execvp()
        execvpe()
        _exit()
        exit()
        exp(), expf(), expl()
        expm1(), expm1f()
      F
        fabs(), fabsf()
        fcfgopen()
        fchdir()
        fchmod()
        fchown()
        fclose()
        fcloseall()
        fcntl()
        fdatasync()
        fdistrusted()
        fdopen()
        feof()
        ferror()
        fflush()
        ffs()
        fgetc()
        fgetchar()
        fgetpos()
        fgets()
        fgetspent()
        fgetwc()
        fgetws()
        fileno()
        flink()
        flock()
        flockfile()
        floor(), floorf()
        flushall()
        fmod(), fmodf(), fmodl()
        fnmatch()
        fopen(), fopen64()
        fork()
        forkpty()
        fp_exception_mask()
        fp_exception_value()
        fp_precision()
        fp_rounding()
        fpathconf()
        fprintf()
        fputc()
        fputchar()
        fputs()
        fputwc()
        fputws()
        fread()
        free()
        freeaddrinfo()
        freeifaddrs()
        freopen(), freopen64()
        frexp(), frexpf()
        fs_crypto_check()
        fs_crypto_domain_add()
        fs_crypto_domain_key_change()
        fs_crypto_domain_key_check()
        fs_crypto_domain_key_size()
        fs_crypto_domain_lock()
        fs_crypto_domain_query()
        fs_crypto_domain_remove()
        fs_crypto_domain_unlock()
        fs_crypto_enable()
        fs_crypto_enable_option()
        fs_crypto_file_get_domain()
        fs_crypto_key_gen()
        fs_crypto_migrate_control()
        fs_crypto_migrate_status()
        fs_crypto_migrate_path()
        fs_crypto_migrate_tag()
        fs_crypto_file_set_domain()
        fs_crypto_set_logging()
        fscanf()
        fsev_t, FSE*()
        fseek(), fseeko(), fseeko64()
        fsetpos()
        fstat(), fstat64()
        fstatvfs(), fstatvfs64()
        fsync()
        ftell(), ftello(), ftello64()
        ftime()
        ftruncate(), ftruncate64()
        ftrylockfile()
        ftw(), ftw64()
        funlockfile()
        futime()
        fwide()
        fwprintf()
        fwrite()
        fwscanf()
      G
        gai_strerror()
        gamma(), gamma_r(), gammaf(), gammaf_r()
        getaddrinfo()
        getc()
        getc_unlocked()
        getchar()
        getchar_unlocked()
        getcwd()
        getdomainname()
        getdtablesize()
        getegid()
        getenv()
        geteuid()
        getfsfile()
        getfsent()
        getfsspec()
        getgid()
        getgrent()
        getgrgid()
        getgrgid_r()
        getgrnam()
        getgrnam_r()
        getgrouplist()
        getgroups()
        gethostbyaddr()
        gethostbyaddr_r()
        gethostbyname(), gethostbyname2()
        gethostbyname_r()
        gethostent()
        gethostent_r()
        gethostname()
        getifaddrs()
        GETIOVBASE()
        GETIOVLEN()
        getitimer()
        getlogin()
        getlogin_r()
        getnameinfo()
        getnetbyaddr()
        getnetbyname()
        getnetent()
        getopt()
        getpagesize()
        getpagesizes(), getpagesizes64()
        getpass()
        getpeereid()
        getpeername()
        getpgid()
        getpgrp()
        getpid()
        getppid()
        getprio()
        getprotobyname()
        getprotobynumber()
        getprotoent()
        getpwent()
        getpwent_r()
        getpwnam()
        getpwnam_r()
        getpwuid()
        getpwuid_r()
        getrlimit(), getrlimit64()
        getrusage()
        gets()
        getservbyname()
        getservbyport()
        getservent()
        getsid()
        getsockname()
        getsockopt()
        getspent(), getspent_r()
        getspnam(), getspnam_r()
        getsubopt()
        gettid()
        gettimeofday()
        getuid()
        getutent()
        getutid()
        getutline()
        getw()
        getwc()
        getwchar()
        getwd()
        glob()
        globfree()
        gmtime()
        gmtime_r()
        grantpt()
      H
        h_errno
        hcreate()
        hdestroy()
        herror()
        hostent
        hsearch()
        hstrerror()
        htonl()
        htons()
        hwi_find()
        hwi_find_bus()
        hwi_find_device()
        hwi_find_devicebus()
        hwi_find_item()
        hwi_find_num_units()
        hwi_find_tag()
        hwi_find_unit()
        hwi_next_item()
        hwi_next_tag()
        hwi_off2tag()
        hwi_tag2off()
        hwi_tag_find()
        hwiattr_get(), hwiattr_get_*()
        hwitag_find_busattr()
        hwitag_find_clkfreq()
        hwitag_find_errata()
        hwitag_find_ivec()
        hwitag_find_nicaddr()
        hwitag_find_phyaddr()
        hypot(), hypotf()
      I
        ICMP
        ICMP6
        if_freenameindex()
        if_indextoname()
        if_nameindex()
        if_nametoindex()
        ifaddrs
        ilogb(), ilogbf()
        in8()
        in8s()
        in16(), inbe16(), inle16()
        in16s()
        in32(), inbe32(), inle32()
        in32s()
        index()
        inet_addr()
        inet_aton()
        inet_lnaof()
        inet_makeaddr()
        inet_net_ntop()
        inet_netof()
        inet_net_pton()
        inet_network()
        inet_ntoa()
        inet_ntoa_r()
        inet_ntop()
        inet_pton()
        INET6
        inet6_option_alloc()
        inet6_option_append()
        inet6_option_find()
        inet6_option_init()
        inet6_option_next()
        inet6_option_space()
        inet6_rthdr_add()
        inet6_rthdr_getaddr()
        inet6_rthdr_getflags()
        inet6_rthdr_init()
        inet6_rthdr_lasthop()
        inet6_rthdr_reverse()
        inet6_rthdr_segments()
        inet6_rthdr_space()
        initgroups()
        initstate()
        inotify_add_watch()
        inotify_event
        inotify_init()
        inotify_rm_watch()
        input_line()
        insque()
        InterruptAttach(), InterruptAttach_r()
        InterruptAttachEvent(), InterruptAttachEvent_r()
        InterruptCharacteristic(), InterruptCharacteristic_r()
        InterruptDetach(), InterruptDetach_r()
        InterruptDisable()
        InterruptEnable()
        InterruptHookIdle2()
        InterruptHookTrace()
        InterruptLock()
        InterruptMask()
        InterruptStatus()
        InterruptUnlock()
        InterruptUnmask()
        InterruptWait(), InterruptWait_r()
        _intr_v86()
        _io_connect
        _io_connect_ftype_reply
        _io_connect_link_reply
        ioctl(), ioctl_socket()
        iofdinfo()
        iofunc_ability_check()
        iofunc_acl()
        iofunc_acl_default()
        iofunc_attr_init()
        iofunc_attr_lock()
        iofunc_attr_t
        iofunc_attr_trylock()
        iofunc_attr_unlock()
        iofunc_check_access()
        iofunc_chmod()
        iofunc_chmod_default()
        iofunc_chown()
        iofunc_chown_default()
        iofunc_client_info_able()
        iofunc_client_info_ext()
        iofunc_client_info_ext_free()
        iofunc_close_dup()
        iofunc_close_dup_default()
        iofunc_close_ocb()
        iofunc_close_ocb_default()
        iofunc_devctl()
        iofunc_devctl_default()
        iofunc_devctl_verify()
        iofunc_fdinfo()
        iofunc_fdinfo_default()
        iofunc_func_init()
        iofunc_link()
        iofunc_lock()
        iofunc_lock_calloc()
        iofunc_lock_default()
        iofunc_lock_free()
        iofunc_lock_ocb_default()
        iofunc_lseek()
        iofunc_lseek_default()
        iofunc_mknod()
        iofunc_mmap()
        iofunc_mmap_default()
        iofunc_notify()
        iofunc_notify_remove()
        iofunc_notify_trigger()
        iofunc_ocb_attach()
        iofunc_ocb_calloc()
        iofunc_ocb_detach()
        iofunc_ocb_free()
        iofunc_ocb_t
        iofunc_open()
        iofunc_open_default()
        iofunc_openfd()
        iofunc_openfd_default()
        iofunc_pathconf()
        iofunc_pathconf_default()
        iofunc_read_default()
        iofunc_read_verify()
        iofunc_readlink()
        iofunc_rename()
        iofunc_space_verify()
        iofunc_stat()
        iofunc_stat_default()
        iofunc_sync()
        iofunc_sync_default()
        iofunc_sync_verify()
        iofunc_time_update()
        iofunc_unblock()
        iofunc_unblock_default()
        iofunc_unlink()
        iofunc_unlock_ocb_default()
        iofunc_utime()
        iofunc_utime_default()
        iofunc_write_default()
        iofunc_write_verify()
        ionotify()
        IP
        IPsec
        ipsec_dump_policy()
        ipsec_get_policylen()
        ipsec_set_policy()
        ipsec_strerror()
        IPv6
        iruserok(), iruserok_sa()
        isalnum()
        isalpha()
        isascii()
        isatty()
        isblank()
        iscntrl()
        isdigit()
        isfdtype()
        isfinite()
        isgraph()
        isinf()
        islower()
        isnan()
        isprint()
        ispunct()
        isspace()
        isupper()
        iswalnum()
        iswalpha()
        iswblank()
        iswcntrl()
        iswctype()
        iswdigit()
        iswgraph()
        iswlower()
        iswprint()
        iswpunct()
        iswspace()
        iswupper()
        iswxdigit()
        isxdigit()
        itoa()
      J
        j0(), j0f()
        j1(), j1f()
        jn(), jnf()
        jrand48()
      K
        kill()
        killpg()
      L
        labs()
        lchown()
        lcong48()
        ldexp(), ldexpf(), ldexpl()
        ldiv(), lldiv()
        lfind()
        lgamma(), lgamma_r(), lgammaf(), lgammaf_r()
        link()
        lio_listio(), lio_listio64()
        listen()
        llabs()
        localeconv()
        localtime()
        localtime_r()
        lockf(), lockf64()
        log(), logf(), logl()
        log10(), log10f(), log10l()
        log1p(), log1pf(), log1pl()
        logb(), logbf()
        login_tty()
        longjmp()
        lrand48()
        lsearch()
        lseek(), lseek64()
        lstat(), lstat64()
        ltoa(), lltoa()
        ltrunc()
      M
        main()
        mallinfo()
        malloc()
        mallopt()
        max()
        mblen()
        mbrlen()
        mbrtowc()
        mbsinit()
        mbsrtowcs()
        mbstowcs()
        mbtowc()
        mcheck()
        mem_offset(), mem_offset64()
        memalign()
        memccpy()
        memchr()
        memcmp()
        memcpy()
        memcpyv()
        memicmp()
        memmove()
        memset()
        memset_s()
        message_attach()
        message_connect()
        message_detach()
        min()
        mkdir()
        mkfifo()
        mknod()
        mkstemp()
        mktemp()
        mktime()
        mlock()
        mlockall()
        mmap(), mmap64()
        mmap_device_io()
        mmap_device_memory()
        modem_open()
        modem_read()
        modem_script()
        modem_write()
        modf(), modff()
        mount()
        mount_parse_generic_args()
        mprobe()
        mprotect()
        mq_close()
        mq_getattr()
        mq_notify()
        mq_open()
        mq_receive()
        mq_send()
        mq_setattr()
        mq_timedreceive(), mq_timedreceive_monotonic()
        mq_timedsend(), mq_timedsend_monotonic()
        mq_unlink()
        mrand48()
        _msg_info
        MsgCurrent(), MsgCurrent_r()
        MsgDeliverEvent(), MsgDeliverEvent_r()
        MsgError(), MsgError_r()
        MsgInfo(), MsgInfo_r()
        MsgKeyData(), MsgKeyData_r()
        MsgPause(), MsgPause_r()
        MsgRead(), MsgRead_r()
        MsgReadv(), MsgReadv_r()
        MsgReceive(), MsgReceive_r()
        MsgReceivePulse(), MsgReceivePulse_r()
        MsgReceivePulsev(), MsgReceivePulsev_r()
        MsgReceivev(), MsgReceivev_r()
        MsgReply(), MsgReply_r()
        MsgReplyv(), MsgReplyv_r()
        MsgSend(), MsgSend_r()
        MsgSendnc(), MsgSendnc_r()
        MsgSendPulse(), MsgSendPulse_r()
        MsgSendsv(), MsgSendsv_r()
        MsgSendsvnc(), MsgSendsvnc_r()
        MsgSendv(), MsgSendv_r()
        MsgSendvnc(), MsgSendvnc_r()
        MsgSendvs(), MsgSendvs_r()
        MsgSendvsnc(), MsgSendvsnc_r()
        MsgVerifyEvent(), MsgVerifyEvent_r()
        MsgWrite(), MsgWrite_r()
        MsgWritev(), MsgWritev_r()
        msync()
        munlock()
        munlockall()
        munmap()
        munmap_device_io()
        munmap_device_memory()
        munmap_flags()
      N
        name_attach()
        name_close()
        name_detach()
        name_open()
        nanosleep()
        nanospin()
        nanospin_calibrate()
        nanospin_count()
        nanospin_ns()
        nanospin_ns_to_count()
        nap()
        napms()
        nbaconnect()
        nbaconnect_result()
        ncurses
        ND_NODE_CMP()
        netent
        netmgr_ndtostr()
        netmgr_remote_nd()
        netmgr_strtond()
        nextafter(), nextafterf()
        nftw(), nftw64()
        nice()
        nrand48()
        nsec2timespec()
        ntohl()
        ntohs()
      O
        offsetof()
        OMAPI
        open(), open64()
        opendir()
        openfd()
        openlog()
        openpty()
        out8()
        out8s()
        out16(), outbe16(), outle16()
        out16s()
        out32(), outbe32(), outle32()
        out32s()
      P
        pathconf()
        pathfind(), pathfind_r()
        pathmgr_link()
        pathmgr_symlink()
        pathmgr_unlink()
        pause()
        pccard_arm()
        pccard_attach()
        pccard_detach()
        pccard_info()
        pccard_lock()
        pccard_raw_read()
        pccard_unlock()
        pci_attach()
        pci_attach_device()
        pci_detach()
        pci_detach_device()
        pci_find_class()
        pci_find_device()
        pci_irq_routing_options()
        pci_map_irq()
        pci_present()
        pci_read_config()
        pci_read_config8()
        pci_read_config16()
        pci_read_config32()
        pci_rescan_bus()
        pci_write_config()
        pci_write_config8()
        pci_write_config16()
        pci_write_config32()
        pclose()
        perror()
        pipe()
        poll()
        popen()
        posix_fadvise(), posix_fadvise64()
        posix_fallocate(), posix_fallocate64()
        posix_madvise()
        posix_mem_offset(), posix_mem_offset64()
        posix_memalign()
        posix_openpt()
        posix_spawn(), posix_spawnp()
         posix_spawn_file_actions_addclose()
        posix_spawn_file_actions_adddup2()
         posix_spawn_file_actions_destroy()
        posix_spawn_file_actions_init()
         posix_spawnattr_addpartid()
        posix_spawnattr_addpartition()
        posix_spawnattr_destroy()
         posix_spawnattr_getcred()
         posix_spawnattr_getflags()
         posix_spawnattr_getnode()
         posix_spawnattr_getpartid()
         posix_spawnattr_getpgroup()
         posix_spawnattr_getrunmask()
         posix_spawnattr_getschedparam()
         posix_spawnattr_getschedpolicy()
         posix_spawnattr_getsigdefault()
         posix_spawnattr_getsigignore()
         posix_spawnattr_getsigmask()
         posix_spawnattr_getstackmax()
         posix_spawnattr_getxflags()
         posix_spawnattr_init()
         posix_spawnattr_setcred()
        posix_spawnattr_setflags()
         posix_spawnattr_setnode()
         posix_spawnattr_setpgroup()
         posix_spawnattr_setrunmask()
        posix_spawnattr_setschedparam()
         posix_spawnattr_setschedpolicy()
         posix_spawnattr_setsigdefault()
         posix_spawnattr_setsigignore()
         posix_spawnattr_setsigmask()
         posix_spawnattr_setstackmax()
        posix_spawnattr_setxflags()
        posix_typed_mem_get_info()
        posix_typed_mem_open()
        pow(), powf(), powl()
        pread(), pread64()
        printf()
        procmgr_ability()
        procmgr_ability_create()
        procmgr_ability_lookup()
        procmgr_daemon()
        procmgr_event_notify()
        procmgr_event_notify_add()
        procmgr_event_notify_delete()
        procmgr_event_trigger(), procmgr_event_trigger_updateable()
        procmgr_guardian()
        procmgr_session()
        procmgr_timer_tolerance()
        procmgr_value_current()
        procmgr_value_notify_add()
        __progname
        protoent
        pthread_abort()
        pthread_atfork()
        pthread_attr_destroy()
        pthread_attr_getdetachstate()
        pthread_attr_getguardsize()
        pthread_attr_getinheritsched()
        pthread_attr_getschedparam()
        pthread_attr_getschedpolicy()
        pthread_attr_getscope()
        pthread_attr_getstack()
        pthread_attr_getstackaddr()
        pthread_attr_getstacklazy()
        pthread_attr_getstackprealloc()
        pthread_attr_getstacksize()
        pthread_attr_init()
        pthread_attr_setdetachstate()
        pthread_attr_setguardsize()
        pthread_attr_setinheritsched()
        pthread_attr_setschedparam()
        pthread_attr_setschedpolicy()
        pthread_attr_setscope()
        pthread_attr_setstack()
        pthread_attr_setstackaddr()
        pthread_attr_setstacklazy()
        pthread_attr_setstackprealloc()
        pthread_attr_setstacksize()
        pthread_barrier_destroy()
        pthread_barrier_init()
        pthread_barrier_wait()
        pthread_barrierattr_destroy()
        pthread_barrierattr_getpshared()
        pthread_barrierattr_init()
        pthread_barrierattr_setpshared()
        pthread_cancel()
        pthread_cleanup_pop()
        pthread_cleanup_push()
        pthread_cond_broadcast()
        pthread_cond_destroy()
        pthread_cond_init()
        pthread_cond_signal()
        pthread_cond_timedwait()
        pthread_cond_wait()
        pthread_condattr_destroy()
        pthread_condattr_getclock()
        pthread_condattr_getpshared()
        pthread_condattr_init()
        pthread_condattr_setclock()
        pthread_condattr_setpshared()
        pthread_create()
        pthread_detach()
        pthread_equal()
        pthread_exit()
        pthread_getconcurrency()
        pthread_getcpuclockid()
        pthread_getname_np()
        pthread_getschedparam()
        pthread_getspecific()
        pthread_join()
        pthread_key_create()
        pthread_key_delete()
        pthread_kill()
        pthread_mutex_destroy()
        pthread_mutex_getprioceiling()
        pthread_mutex_init()
        pthread_mutex_lock()
        pthread_mutex_setprioceiling()
        pthread_mutex_timedlock(), pthread_mutex_timedlock_monotonic()
        pthread_mutex_trylock()
        pthread_mutex_unlock()
        pthread_mutex_wakeup_np()
        pthread_mutexattr_destroy()
        pthread_mutexattr_getprioceiling()
        pthread_mutexattr_getprotocol()
        pthread_mutexattr_getpshared()
        pthread_mutexattr_getrecursive()
        pthread_mutexattr_gettype()
        pthread_mutexattr_getwakeup_np()
        pthread_mutexattr_init()
        pthread_mutexattr_setprioceiling()
        pthread_mutexattr_setprotocol()
        pthread_mutexattr_setpshared()
        pthread_mutexattr_setrecursive()
        pthread_mutexattr_settype()
        pthread_mutexattr_setwakeup_np()
        pthread_once()
        pthread_rwlock_destroy()
        pthread_rwlock_init()
        pthread_rwlock_rdlock()
        pthread_rwlock_timedrdlock()
        pthread_rwlock_timedwrlock()
        pthread_rwlock_tryrdlock()
        pthread_rwlock_trywrlock()
        pthread_rwlock_unlock()
        pthread_rwlock_wrlock()
        pthread_rwlockattr_destroy()
        pthread_rwlockattr_getpshared()
        pthread_rwlockattr_init()
        pthread_rwlockattr_setpshared()
        pthread_self()
        pthread_setcancelstate()
        pthread_setcanceltype()
        pthread_setconcurrency()
        pthread_setname_np()
        pthread_setschedparam()
        pthread_setschedprio()
        pthread_setspecific()
        pthread_sigmask()
        pthread_sleepon_broadcast()
        pthread_sleepon_lock()
        pthread_sleepon_signal()
        pthread_sleepon_timedwait()
        pthread_sleepon_unlock()
        pthread_sleepon_wait()
        pthread_spin_destroy()
        pthread_spin_init()
        pthread_spin_lock()
        pthread_spin_trylock()
        pthread_spin_unlock()
        pthread_testcancel()
        pthread_timedjoin(), pthread_timedjoin_monotonic()
        ptsname()
        ptsname_r()
        _pulse
        pulse_attach()
        pulse_detach()
        putc()
        putc_unlocked()
        putchar()
        putchar_unlocked()
        putenv()
        puts()
        putspent()
        pututline()
        putw()
        putwc()
        putwchar()
        pwrite(), pwrite64()
      Q
        qnx_crypt()
        qsort()
      R
        Raccept()
        raise()
        rand()
        rand_r()
        random()
        Rbind()
        rcmd(), rcmd_af()
        Rconnect()
        rdchk()
        re_comp()
        re_exec()
        read()
        readblock()
        readcond()
        readdir(), readdir64()
        _readdir_r()
        readdir_r()
        readlink()
        readv()
        realloc()
        realpath()
        recv()
        recvfrom()
        recvmsg()
        regcomp()
        regerror()
        regexec()
        regfree()
        remainder(), remainderf(), remainderl()
        remove()
        remque()
        rename()
        res_init()
        res_mkquery()
        res_query()
        res_querydomain()
        res_search()
        res_send()
        resmgr_attach()
        resmgr_block()
        resmgr_connect_funcs_t
        resmgr_context_alloc()
        resmgr_context_free()
        resmgr_context_t
        resmgr_detach()
        resmgr_devino()
        resmgr_handle_grow()
        resmgr_handle_tune()
        resmgr_handler()
        resmgr_io_funcs_t
        resmgr_iofuncs()
        resmgr_msg_again()
        resmgr_msgread()
        resmgr_msgreadv()
        resmgr_msgreply()
        resmgr_msgreplyv()
        resmgr_msgwrite()
        resmgr_msgwritev()
        _RESMGR_NPARTS()
        resmgr_ocb()
        resmgr_open_bind()
        resmgr_pathname()
        _RESMGR_PTR()
        _RESMGR_STATUS()
        resmgr_unbind()
        rewind()
        rewinddir()
        Rgetsockname()
        rindex()
        rint(), rintf(), rintl()
        Rlisten()
        rmdir()
        round(), roundf(), roundl()
        ROUTE
        Rrcmd()
        rresvport(), rresvport_af()
        Rselect()
        rsrcdbmgr_attach()
        rsrcdbmgr_create()
        rsrcdbmgr_destroy()
        rsrcdbmgr_detach()
        rsrcdbmgr_devno_attach()
        rsrcdbmgr_devno_detach()
        rsrcdbmgr_query_name()
        ruserok()
      S
        scalb()
        scalbn(), scalbnf()
        _scalloc()
        scandir()
        scanf()
        sched_getparam()
        sched_get_priority_adjust()
        sched_get_priority_max()
        sched_get_priority_min()
        sched_getscheduler()
        sched_param
        sched_rr_get_interval()
        sched_setparam()
        sched_setscheduler()
        sched_yield()
        SchedCtl(), SchedCtl_r()
        SchedGet(), SchedGet_r()
        SchedInfo(), SchedInfo_r()
        SchedSet(), SchedSet_r()
        SchedYield(), SchedYield_r()
        searchenv()
        seed48()
        seekdir()
        select()
        select_attach()
        select_detach()
        select_query()
        sem_close()
        sem_destroy()
        sem_getvalue()
        sem_init()
        sem_open()
        sem_post()
        sem_timedwait(), sem_timedwait_monotonic()
        sem_trywait()
        sem_unlink()
        sem_wait()
        send()
        sendmsg()
        sendto()
        servent
        set_ids_from_arg()
        set_lowest_fd()
        setbuf()
        setbuffer()
        setdomainname()
        setegid()
        setenv()
        seteuid()
        setgid()
        setfsent()
        setgrent()
        setgroups()
        sethostent()
        sethostname()
        SETIOV()
        setitimer()
        setjmp()
        setkey()
        setlinebuf()
        setlocale()
        setlogmask()
        setnetent()
        setpgid()
        setpgrp()
        setprio()
        setprotoent()
        setpwent()
        setregid()
        setreuid()
        setrlimit(), setrlimit64()
        setservent()
        setsid()
        setsockopt()
        setspent()
        setstate()
        settimeofday()
        setuid()
        setutent()
        setvbuf()
        _sfree()
        shm_ctl(), shm_ctl_special()
        shm_open()
        shm_unlink()
        shutdown()
        shutdown_system()
        sigaction()
        sigaddset()
        sigblock()
        sigdelset()
        sigemptyset()
        sigevent
        sigfillset()
        siginfo_t
        sigismember()
        siglongjmp()
        sigmask()
        signal()
        SignalAction(), SignalAction_r()
        SignalKill(), SignalKill_r()
        SignalProcmask(), SignalProcmask_r()
        SignalSuspend(), SignalSuspend_r()
        SignalWaitinfo(), SignalWaitinfo_r()
        sigpause()
        sigpending()
        sigprocmask()
        sigqueue()
        sigsetjmp()
        sigsetmask()
        sigsuspend()
        sigtimedwait()
        sigunblock()
        sigwait()
        sigwaitinfo()
        sin(), sinf(), sinl()
        sinh(), sinhf(), sinhl()
        sleep()
        _sleepon_broadcast()
        _sleepon_destroy()
        _sleepon_init()
        _sleepon_lock()
        _sleepon_signal()
        _sleepon_unlock()
        _sleepon_wait()
        slog2_close_log()
        slog2_dump_logs_to_file()
        slog2_get_buffer_info()
        slog2_get_log_info()
        slog2_get_verbosity()
        slog2_open_log()
        slog2_packet_cmp()
        slog2_packet_info_t
        slog2_parse_all()
        slog2_parse_dynamic_buffer(), slog2_parse_static_buffer()
        slog2_register()
        slog2_reset()
        slog2_set_default_buffer()
        slog2_set_verbosity()
        slog2c()
        slog2f()
        slog2fa()
        slogb()
        slogf()
        slogi()
        _smalloc()
        snprintf()
        sockatmark()
        socket()
        socketpair()
        SOCKSinit()
        sopen()
        sopenfd()
        spawn()
        spawnl()
        spawnle()
        spawnlp()
        spawnlpe()
        spawnp()
        spawnv()
        spawnve()
        spawnvp()
        spawnvpe()
        sprintf()
        sqrt(), sqrtf(), sqrtl()
        srand()
        srand48()
        srandom()
        _srealloc()
        sscanf()
        stat(), stat64()
        statvfs(), statvfs64()
        stderr
        stdin
        stdout
        straddstr()
        strcasecmp()
        strcat()
        strchr()
        strcmp()
        strcmpi()
        strcoll()
        strcpy()
        strcspn()
        strdup()
        strerror()
        strerror_r()
        strftime()
        stricmp()
        strlcat(), strlcpy()
        strlen()
        strlwr()
        strncasecmp()
        strncat()
        strncmp()
        strncpy()
        strnicmp()
        strnlen()
        strnset()
        strpbrk()
        strptime()
        strrchr()
        strrev()
        strsep()
        strset()
        strsignal()
        strspn()
        strstr()
        strtod(), strtof(), strtold()
        strtoimax(), strtoumax()
        strtok()
        strtok_r()
        strtol(), strtoll()
        strtoul(), strtoull()
        strupr()
        strxfrm()
        swab()
        swprintf()
        swscanf()
        symlink()
        sync()
        SyncCondvarSignal(), SyncCondvarSignal_r()
        SyncCondvarWait(), SyncCondvarWait_r()
        SyncCtl(), SyncCtl_r()
        SyncDestroy(), SyncDestroy_r()
        SyncMutexEvent(), SyncMutexEvent_r()
        SyncMutexLock(), SyncMutexLock_r()
        SyncMutexRevive(), SyncMutexRevive_r()
        SyncMutexUnlock(), SyncMutexUnlock_r()
        SyncSemPost(), SyncSemPost_r()
        SyncSemWait(), SyncSemWait_r()
        SyncTypeCreate(), SyncTypeCreate_r()
        sysconf()
        sysctl(), sysctlbyname()
        syslog()
        sysmgr_reboot()
        sysmgr_runstate(), sysmgr_runstate_dynamic()
        sysmgr_runstate_burst()
        SYSPAGE_CPU_ENTRY()
        SYSPAGE_ENTRY()
        _syspage_ptr
        system()
      T
        tan(), tanf(), tanl()
        tanh(), tanhf(), tanhl()
        tcdrain()
        tcdropline()
        tcflow()
        tcflush()
        tcgetattr()
        tcgetpgrp()
        tcgetsid()
        tcgetsize()
        tcinject()
        tcischars()
        TCP
        tcsendbreak()
        tcsetattr()
        tcsetpgrp()
        tcsetsid()
        tcsetsize()
        tell(), tell64()
        telldir()
        tempnam()
        termios
        thread_pool_control()
        thread_pool_create()
        thread_pool_destroy()
        thread_pool_limits()
        thread_pool_start()
        ThreadCancel(), ThreadCancel_r()
        ThreadCreate(), ThreadCreate_r()
        ThreadCtl(), ThreadCtl_r()
        ThreadDestroy(), ThreadDestroy_r()
        ThreadDetach(), ThreadDetach_r()
        ThreadJoin(), ThreadJoin_r()
        time()
        timer_create()
        timer_delete()
        timer_getexpstatus()
        timer_getoverrun()
        timer_gettime()
        timer_settime()
        timer_timeout(), timer_timeout_r()
        TimerAlarm(), TimerAlarm_r()
        TimerCreate(),