About the QNX CAR platform
Getting Started Guide
Getting Ready
A Guided Tour of the HMI
Home
Navigation
Media Player
Settings screen
Communications screen
App Launcher screen
Push-to-Talk
Automatic Speech Recognition
Using Bluetooth
Pairing a smartphone
Making a phone call
Accessing the phone's email
Viewing the phone's contacts
Viewing the phone's text messages
Using Pandora Radio
Recalibrating the Touchscreen
Developing a Native App
Connecting the IDE to the target
Creating a native "hello world" application
Debugging a native application
Checking out a project from SVN
Building a native application in the IDE
Building a native application on the command line
Software Updates
Generating an update
Applying an update from the HMI
Applying an update from the command line
Controlling System Startup
Modifying the Startup Script
System Launch and Monitor (SLM)
Running the SLM service
Realtime Clock Synchronization
Architecture Guide
Top Level Design
Common Mechanisms
Ecosystem
Platform Layer
QNX Neutrino RTOS
Microkernel
Instant Device Activation
Networking
Fast boot
Fault detection
High Availability
Adaptive Partitioning
Resource Manager framework
OpenGL ES
Software Update
Middleware Layer
Multimedia
Navigation
Automatic Speech Recognition
Radio
Mobile Device Gateway
Android interfaces
Bluetooth
DLNA
HTML5 interface
Apple iOS interfaces
MirrorLink
Network interfaces
USB
HTML5 HMI Layer
Browser Engine
HTML5 application model
Application management
Getting Started Guide
Getting Ready
A Guided Tour of the HMI
Home
Navigation
Media Player
Settings screen
Communications screen
App Launcher screen
Push-to-Talk
Automatic Speech Recognition
Using Bluetooth
Pairing a smartphone
Making a phone call
Accessing the phone's email
Viewing the phone's contacts
Viewing the phone's text messages
Using Pandora Radio
Recalibrating the Touchscreen
Developing a Native App
Connecting the IDE to the target
Creating a native "hello world" application
Debugging a native application
Checking out a project from SVN
Building a native application in the IDE
Building a native application on the command line
Software Updates
Generating an update
Applying an update from the HMI
Applying an update from the command line
Controlling System Startup
Modifying the Startup Script
System Launch and Monitor (SLM)
Running the SLM service
Realtime Clock Synchronization
Architecture Guide
Top Level Design
Common Mechanisms
Ecosystem
Platform Layer
QNX Neutrino RTOS
Microkernel
Instant Device Activation
Networking
Fast boot
Fault detection
High Availability
Adaptive Partitioning
Resource Manager framework
OpenGL ES
Software Update
Middleware Layer
Multimedia
Navigation
Automatic Speech Recognition
Radio
Mobile Device Gateway
Android interfaces
Bluetooth
DLNA
HTML5 interface
Apple iOS interfaces
MirrorLink
Network interfaces
USB
HTML5 HMI Layer
Browser Engine
HTML5 application model
Application management
Developing for the QNX CAR platform
HMI Developer's Guide
Navigator
Introduction to Navigator
Navigator prerequisite knowledge
Navigator window management
Navigator interfaces
Navigator reference implementation
Creating a new Navigator
Authman and Launcher
Developing HTML5 Apps with WebWorks
The HTML5 Development Tools
Obtaining the development tools
Ripple Emulator
Installing the Ripple emulator
Sencha Touch 2 framework
HTML5 Web Application Framework
WebGL
jQuery support
Creating an app
Creating a basic "Hello World" app
Creating a configuration document (config.xml)
Creating an entry point for your app (index.html)
Running "Hello World" in Ripple
Creating your own extension
Using the JavaScript Framework
JavaScript extension example
Creating the JavaScript for the extension
Details about the JavaScript part of the extension
Using the PPS interface
Running your modified app
Deploying "Hello World"
Packaging
Installing to a device
Enhancing performance
Uninstalling a package
JavaScript Framework Reference
blackberry.bridge
qnx.application
qnx.application.event
qnx.audiomixer
qnx.audioplayer
qnx.bluetooth
qnx.bluetooth.pbap
qnx.gears
qnx.hvac
qnx.info
qnx.keyboard
qnx.locale
qnx.medialibrary
qnx.mediasource
qnx.message
qnx.navigation
qnx.navigation.tcs
qnx.navigator
qnx.navigator.overlay
qnx.network
qnx.phone
qnx.radio
qnx.sensors
qnx.settings
qnx.systemupdate
qnx.theme
qnx.user
qnx.voice
qnx.volume
PPS Objects Reference
Overview of the PPS Service
Setting Up Your Own Objects
PPS Objects Reference Pages
/pps/accounts/
/pps/accounts/1000/telenav/
/pps/applications/mediaplayer
/pps/applications/weathernetwork/
/pps/qnx/dbnotify/dbs
/pps/qnx/device/<device>
/pps/qnx/device/<device>_ctrl
/pps/qnx/driver/<pid>
/pps/qnx/mount/<device>
/pps/qnx/qdb/config/<dbname>
/pps/qnx/qdb/status/<dbname>
/pps/qnxcar/hvac
/pps/qnxcar/locale
/pps/qnxcar/navigation/control
/pps/qnxcar/navigation/geolocation
/pps/qnxcar/navigation/options
/pps/qnxcar/navigation/status
/pps/qnxcar/profile/theme
/pps/qnxcar/profile/user
/pps/qnxcar/radio/control
/pps/qnxcar/radio/status
/pps/qnxcar/radio/ti_control
/pps/qnxcar/radio/ti_rds
/pps/qnxcar/radio/ti_status
/pps/qnxcar/radio/tuners
/pps/qnxcar/sensors
/pps/qnxcar/system/info
/pps/qnxcar/system/settings
/pps/servicedata/schedule
/pps/services/alarm/control
/pps/services/alarm/status-<clientlabel>
/pps/services/app-launcher
/pps/services/asr/control
/pps/services/audio/audio_router_control
/pps/services/audio/audio_router_status
/pps/services/audio/control
/pps/services/audio/devices/
/pps/services/audio/status
/pps/services/audio/types/
/pps/services/audio/voice_status
/pps/services/bluetooth/control
/pps/services/bluetooth/messages/control
/pps/services/bluetooth/messages/notification
/pps/services/bluetooth/messages/status
/pps/services/bluetooth/paired_devices/<mac_addr>
/pps/services/bluetooth/phonebook/control
/pps/services/bluetooth/phonebook/status
/pps/services/bluetooth/remote_devices/<mac_addr>
/pps/services/bluetooth/services
/pps/services/bluetooth/settings
/pps/services/bluetooth/status
/pps/services/clock/control
/pps/services/clock/status
/pps/services/confstr/
/pps/services/deviceproperties
/pps/services/dlna/dmcclient/control
/pps/services/dlna/dmcclient/dmr/networkstate/<dmr_uuid>
/pps/services/dlna/dmcclient/dmr/playstate/<dmr_uuid>
/pps/services/dlna/dmcclient/dms/networkstate/<dms_uuid>
/pps/services/gears/control
/pps/services/gears/status
/pps/services/handsfree/control
/pps/services/handsfree/status
/pps/services/launcher/control
/pps/services/mediaserver/settings
/pps/services/mm-control/control
/pps/services/mm-control/<playername>/status
/pps/services/mm-detect/status
/pps/services/multimedia/renderer/component/
/pps/services/multimedia/renderer/context/<contextname>
/pps/services/multimedia/renderer/context/<contextname>/input
/pps/services/multimedia/renderer/context/<contextname>/metadata
/pps/services/multimedia/renderer/context/<contextname>/output#
/pps/services/multimedia/renderer/context/<contextname>/p#
/pps/services/multimedia/renderer/context/<contextname>/param
/pps/services/multimedia/renderer/context/<contextname>/play-queue
/pps/services/multimedia/renderer/context/<contextname>/q#
/pps/services/multimedia/renderer/context/<contextname>/state
/pps/services/multimedia/renderer/context/<contextname>/status
/pps/services/multimedia/renderer/control
/pps/services/navigator/
/pps/services/networking/all/interfaces/<interface>
/pps/services/networking/all/proxy
/pps/services/networking/all/status_public
/pps/services/networking/control
/pps/services/networking/proxy
/pps/services/networking/proxyserver
/pps/services/networking/status
/pps/services/networking/status_public
/pps/services/private/deviceproperties
/pps/services/update/control
/pps/services/update/status
/pps/system/authorization/control
/pps/system/keyboard/control
/pps/system/keyboard/status
/pps/system/navigator/command
/pps/system/navigator/windowgroup
/pps/system/navigator/windowparams
/pps/system/ppsnetd/control
/pps/tcs/
Appendix: List of Objects Used Internally
Multimedia Detector Configuration Guide
Multimedia Detector Overview
Deciding whether to run mm-detect
Customizing media detection and synchronization
Running mm-detect
Restarting mm-detect manually
Preventing mm-detect from running
mm-detect SLM specification
mm-detect command line
Device tracking and media information management
Device insertion handling
Media synchronization thread actions
Device removal handling
PPS devices information object
PPS synchronization status object
Multimedia Controller Configuration Guide
Multimedia Controller Overview
Deciding whether to run mm-control
mm-control components
Running mm-control
Restarting mm-control manually
Preventing mm-control from running
mm-control SLM specification
mm-control command line
mm-control configuration file
Setup and Command Monitoring
Media command processing
HMI Developer's Guide
Navigator
Introduction to Navigator
Navigator prerequisite knowledge
Navigator window management
Navigator interfaces
Navigator reference implementation
Creating a new Navigator
Authman and Launcher
Developing HTML5 Apps with WebWorks
The HTML5 Development Tools
Obtaining the development tools
Ripple Emulator
Installing the Ripple emulator
Sencha Touch 2 framework
HTML5 Web Application Framework
WebGL
jQuery support
Creating an app
Creating a basic "Hello World" app
Creating a configuration document (config.xml)
Creating an entry point for your app (index.html)
Running "Hello World" in Ripple
Creating your own extension
Using the JavaScript Framework
JavaScript extension example
Creating the JavaScript for the extension
Details about the JavaScript part of the extension
Using the PPS interface
Running your modified app
Deploying "Hello World"
Packaging
Installing to a device
Enhancing performance
Uninstalling a package
JavaScript Framework Reference
blackberry.bridge
qnx.application
qnx.application.event
qnx.audiomixer
qnx.audioplayer
qnx.bluetooth
qnx.bluetooth.pbap
qnx.gears
qnx.hvac
qnx.info
qnx.keyboard
qnx.locale
qnx.medialibrary
qnx.mediasource
qnx.message
qnx.navigation
qnx.navigation.tcs
qnx.navigator
qnx.navigator.overlay
qnx.network
qnx.phone
qnx.radio
qnx.sensors
qnx.settings
qnx.systemupdate
qnx.theme
qnx.user
qnx.voice
qnx.volume
PPS Objects Reference
Overview of the PPS Service
Setting Up Your Own Objects
PPS Objects Reference Pages
/pps/accounts/
/pps/accounts/1000/telenav/
/pps/applications/mediaplayer
/pps/applications/weathernetwork/
/pps/qnx/dbnotify/dbs
/pps/qnx/device/<device>
/pps/qnx/device/<device>_ctrl
/pps/qnx/driver/<pid>
/pps/qnx/mount/<device>
/pps/qnx/qdb/config/<dbname>
/pps/qnx/qdb/status/<dbname>
/pps/qnxcar/hvac
/pps/qnxcar/locale
/pps/qnxcar/navigation/control
/pps/qnxcar/navigation/geolocation
/pps/qnxcar/navigation/options
/pps/qnxcar/navigation/status
/pps/qnxcar/profile/theme
/pps/qnxcar/profile/user
/pps/qnxcar/radio/control
/pps/qnxcar/radio/status
/pps/qnxcar/radio/ti_control
/pps/qnxcar/radio/ti_rds
/pps/qnxcar/radio/ti_status
/pps/qnxcar/radio/tuners
/pps/qnxcar/sensors
/pps/qnxcar/system/info
/pps/qnxcar/system/settings
/pps/servicedata/schedule
/pps/services/alarm/control
/pps/services/alarm/status-<clientlabel>
/pps/services/app-launcher
/pps/services/asr/control
/pps/services/audio/audio_router_control
/pps/services/audio/audio_router_status
/pps/services/audio/control
/pps/services/audio/devices/
/pps/services/audio/status
/pps/services/audio/types/
/pps/services/audio/voice_status
/pps/services/bluetooth/control
/pps/services/bluetooth/messages/control
/pps/services/bluetooth/messages/notification
/pps/services/bluetooth/messages/status
/pps/services/bluetooth/paired_devices/<mac_addr>
/pps/services/bluetooth/phonebook/control
/pps/services/bluetooth/phonebook/status
/pps/services/bluetooth/remote_devices/<mac_addr>
/pps/services/bluetooth/services
/pps/services/bluetooth/settings
/pps/services/bluetooth/status
/pps/services/clock/control
/pps/services/clock/status
/pps/services/confstr/
/pps/services/deviceproperties
/pps/services/dlna/dmcclient/control
/pps/services/dlna/dmcclient/dmr/networkstate/<dmr_uuid>
/pps/services/dlna/dmcclient/dmr/playstate/<dmr_uuid>
/pps/services/dlna/dmcclient/dms/networkstate/<dms_uuid>
/pps/services/gears/control
/pps/services/gears/status
/pps/services/handsfree/control
/pps/services/handsfree/status
/pps/services/launcher/control
/pps/services/mediaserver/settings
/pps/services/mm-control/control
/pps/services/mm-control/<playername>/status
/pps/services/mm-detect/status
/pps/services/multimedia/renderer/component/
/pps/services/multimedia/renderer/context/<contextname>
/pps/services/multimedia/renderer/context/<contextname>/input
/pps/services/multimedia/renderer/context/<contextname>/metadata
/pps/services/multimedia/renderer/context/<contextname>/output#
/pps/services/multimedia/renderer/context/<contextname>/p#
/pps/services/multimedia/renderer/context/<contextname>/param
/pps/services/multimedia/renderer/context/<contextname>/play-queue
/pps/services/multimedia/renderer/context/<contextname>/q#
/pps/services/multimedia/renderer/context/<contextname>/state
/pps/services/multimedia/renderer/context/<contextname>/status
/pps/services/multimedia/renderer/control
/pps/services/navigator/
/pps/services/networking/all/interfaces/<interface>
/pps/services/networking/all/proxy
/pps/services/networking/all/status_public
/pps/services/networking/control
/pps/services/networking/proxy
/pps/services/networking/proxyserver
/pps/services/networking/status
/pps/services/networking/status_public
/pps/services/private/deviceproperties
/pps/services/update/control
/pps/services/update/status
/pps/system/authorization/control
/pps/system/keyboard/control
/pps/system/keyboard/status
/pps/system/navigator/command
/pps/system/navigator/windowgroup
/pps/system/navigator/windowparams
/pps/system/ppsnetd/control
/pps/tcs/
Appendix: List of Objects Used Internally
Multimedia Detector Configuration Guide
Multimedia Detector Overview
Deciding whether to run mm-detect
Customizing media detection and synchronization
Running mm-detect
Restarting mm-detect manually
Preventing mm-detect from running
mm-detect SLM specification
mm-detect command line
Device tracking and media information management
Device insertion handling
Media synchronization thread actions
Device removal handling
PPS devices information object
PPS synchronization status object
Multimedia Controller Configuration Guide
Multimedia Controller Overview
Deciding whether to run mm-control
mm-control components
Running mm-control
Restarting mm-control manually
Preventing mm-control from running
mm-control SLM specification
mm-control command line
mm-control configuration file
Setup and Command Monitoring
Media command processing
UI and Media API References
Audio Manager Library Reference
Audio manager routing priority
Supported routing paths
Linking with audio manager
Audio Concurrency (audio_manager_concurrency.h)
Data types in audio_manager_concurrency.h
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 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_config_t
audio_manager_channel_t
audio_manager_device_capabilities_t
audio_manager_device_capability_t
audio_manager_device_headset_button_t
audio_manager_device_t
audio_manager_device_volume_control_t
audio_manager_device_audio_config_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_path()
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_keep_alive()
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_event_context_t
audio_manager_event_type_t
audio_manager_voice_status_volume_change_t
audio_manager_device_button_change_t
audio_manager_device_change_t
audio_manager_concurrency_change_t
audio_manager_routing_change_t
audio_manager_stat_change_t
audio_manager_status_headphone_boost_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
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_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_settings_reset_condition_t
Functions in audio_manager_routing.h
audio_manager_activate_handle()
audio_manager_free_handle()
audio_manager_get_alias_handle()
audio_manager_get_handle()
audio_manager_get_handle_status()
audio_manager_get_handle_type()
audio_manager_get_name_from_type()
audio_manager_get_type_from_name()
audio_manager_set_handle_routing_conditions()
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_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_status_t
audio_manager_voice_service_t
Functions in audio_manager_voice_service.h
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_set_voice_service_option()
audio_manager_set_voice_service_status()
Audio Volume (audio_manager_volume.h)
Data types in audio_manager_volume.h
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_override()
audio_manager_get_headphone_unsafe_zone_status()
audio_manager_get_input_level()
audio_manager_get_input_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_override()
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_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
Gesture Buckets (bucket.h)
Definitions in bucket.h
Definitions in bucket.h
Enumerations in bucket.h
events_bucket_mode_e
events_bucket_t
gestures_bucket_t
Functions in bucket.h
gestures_bucket_add()
gestures_bucket_clear()
gestures_bucket_count()
gestures_bucket_del()
gestures_bucket_get()
gestures_bucket_init()
Global Settings (defaults.h)
Definitions in defaults.h
Definitions in defaults.h
Double Tap (double_tap.h)
Data types in double_tap.h
double_tap_params_t
double_tap_state_e
gesture_double_tap_t
Functions in double_tap.h
double_tap_gesture_alloc()
double_tap_gesture_default_params()
Event Lists (event_list.h)
Data types in event_list.h
event_list_item
event_list_item_t
Functions in 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()
Long Press (long_press.h)
Data types in long_press.h
gesture_long_press_t
long_press_params_t
Functions in long_press.h
long_press_gesture_alloc()
long_press_gesture_default_params()
Pinch Gestures (pinch.h)
Data types in pinch.h
gesture_pinch_t
pinch_params_t
Functions in pinch.h
pinch_gesture_alloc()
pinch_gesture_default_params()
Press and Tap (press_and_tap.h)
Data types in press_and_tap.h
gesture_pt_t
pt_params_t
Functions in press_and_tap.h
pt_gesture_alloc()
pt_gesture_default_params()
Rotate Gesture (rotate.h)
Data types in rotate.h
gesture_rotate_t
rotate_params_t
Functions in rotate.h
rotate_gesture_alloc()
rotate_gesture_default_params()
Gesture Sets (set.h)
Data types in set.h
gestures_set_fail_f
Functions in set.h
gestures_set_add()
gestures_set_alloc()
gestures_set_free()
gestures_set_process_event()
gestures_set_process_event_list()
gestures_set_register_fail_cb()
Swipe Gesture (swipe.h)
Data types in swipe.h
gesture_swipe_t
swipe_params_t
Functions in swipe.h
swipe_gesture_alloc()
swipe_gesture_default_params()
Tap Gesture (tap.h)
Data types in tap.h
gesture_tap_t
tap_params_t
Functions in tap.h
tap_gesture_alloc()
tap_gesture_default_params()
Gesture Timers (timer.h)
Data types in timer.h
gesture_timer_callback_t
Functions in timer.h
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)
Data types in triple_tap.h
gesture_triple_tap_t
triple_tap_state_e
triple_tap_params_t
Functions in triple_tap.h
triple_tap_gesture_alloc()
triple_tap_gesture_default_params()
Two Finger Pan (two_finger_pan.h)
Data types in two_finger_pan.h
gesture_tfpan_t
tfpan_params_t
Functions in two_finger_pan.h
tfpan_gesture_alloc()
tfpan_gesture_default_params()
Two Finger Tap (two_finger_tap.h)
Data types in two_finger_tap.h
gesture_tft_t
tft_params_t
Functions in two_finger_tap.h
tft_gesture_alloc()
tft_gesture_default_params()
Data Types and Helper Functions (types.h)
Constants in types.h
Definitions in types.h
Data types in types.h
gesture_base
gesture_base_t
gesture_coords_t
gesture_callback_f
gesture_e
gesture_funcs_t
gesture_state_e
Functions in types.h
gesture_base_init()
gesture_add_mustfail()
save_coords()
diff_time_ms()
max_displacement_abs()
map_contact_id()
Glview Library Reference
Constants in glview.h
Definitions in glview.h
Data types in glview.h
glview_api_t
background_callback
display_once_callback
event_callback
finalize_callback
foreground_callback
frame_callback
initialize_callback
resize_callback
Functions in glview.h
glview_display_once()
glview_get_callback_data()
glview_get_size()
glview_get_version()
glview_get_vsync()
glview_initialize()
glview_loop()
glview_register_background_callback()
glview_register_event_callback()
glview_register_finalize_callback()
glview_register_foreground_callback()
glview_register_frame_callback()
glview_register_initialize_callback()
glview_register_resize_callback()
glview_set_callback_data()
glview_set_vsync()
Image Library Reference
Working with Images
Attaching to the image library
Loading the image
Cleaning up
Image API
Data types in img.h
img_decode_callouts_t
img_encode_callouts_t
img_format_t
img_t
Functions in img.h
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_finish()
img_decode_frame()
img_decode_validate()
img_dtransform()
img_dtransform_apply()
img_dtransform_create()
img_dtransform_free()
img_encode_begin()
img_encode_finish()
img_encode_frame()
img_expand_getfunc()
IMG_FMT_BPL()
IMG_FMT_BPP()
img_lib_attach()
img_lib_detach()
img_load()
img_load_file()
img_load_resize_file()
img_resize_fs()
img_rotate_ortho()
img_write()
img_write_file()
Input Events Library Reference
Event types (event_types.h)
Data types in event_types.h
input_class_e
input_event_e
mtouch_event
Screen helpers (screen_helpers.h)
Functions in screen_helpers.h
screen_get_mtouch_event()
Metadata Provider Library Reference
Metadata Provider Overview
Architecture of libmd
Metadata providers
MDP ratings
Metadata extraction
Included MDPs
Metadata extraction sessions
Configuring Metadata Providers
Configuration file
Metadata Provider API
md.h
Data types in md.h
mmmd_error_info_t
mmmd_flags_t
mmmd_hdl_t
Functions in md.h
mmmd_error_info()
mmmd_flags_set()
mmmd_get()
mmmd_init()
mmmd_mdps_list()
mmmd_session_close()
mmmd_session_open()
mmmd_session_params_set()
mmmd_terminate()
md_errors.h
Data types in md_errors.h
mmmd_errcode
Functions in md_errors.h
mmmd_error_str()
Multimedia Renderer Developer's Guide
Multimedia Renderer Architecture
Supported media
Abstraction layers
Contexts
Outputs
Inputs
Plugins
Using the Multimedia Renderer
Starting the multimedia renderer
mm-renderer configuration file
mm-renderer command line
Working with contexts
Closing context handles
Defining Parameters
Playing media
Play states
Play speed
Seeking to positions
Managing video windows
Recording audio data
PPS objects
Context state
Play state, warnings, and errors
Input metadata
Playlist window
Supported file and MIME types
Multimedia Renderer Client API
Data types in renderer.h and types.h
mm_error_code_t
mmr_connection_t
mmr_context_t
mmr_error_info_t
Functions in renderer.h
mmr_command_send()
mmr_connect()
mmr_context_close()
mmr_context_create()
mmr_context_destroy()
mmr_context_open()
mmr_context_parameters()
mmr_disconnect()
mmr_error_info()
mmr_input_attach()
mmr_input_detach()
mmr_input_parameters()
mmr_list_change()
mmr_output_attach()
mmr_output_detach()
mmr_output_parameters()
mmr_play()
mmr_seek()
mmr_speed_set()
mmr_stop()
mmr_track_parameters()
Multimedia Renderer Event API
Data types in events.h
mmr_event_t
mmr_event::details
mmr_event::data
mmr_event_type_t
mmr_state_t
Functions in events.h
mmr_event_arm()
mmr_event_data_set()
mmr_event_get()
mmr_event_wait()
Dictionary Object API
Data types in strm.h
strm_dict_t
strm_string_t
Functions in strm.h
strm_dict_clone()
strm_dict_compare()
strm_dict_destroy()
strm_dict_find_index()
strm_dict_find_rstr()
strm_dict_find_value()
strm_dict_index_delete()
strm_dict_key_delete()
strm_dict_key_get()
strm_dict_key_rstr()
strm_dict_new()
strm_dict_set()
strm_dict_set_rstr()
strm_dict_size()
strm_dict_subtract()
strm_dict_value_get()
strm_dict_value_rstr()
strm_string_alloc()
strm_string_clone()
strm_string_destroy()
strm_string_get()
strm_string_make()
strm_string_modify()
Multimedia Synchronizer Developer's Guide
Multimedia Synchronization Overview
The synchronization process
Synchronizer selection
Synchronization passes
Mediastore filesystem traversal
Database cleanup
Optimization of synchronization for slow devices
Full, directed, and file synchronizations
Setting up the Multimedia Synchronizer Environment
mm-sync command line
mmsyncclient command utility
Working with Synchronizations
Synchronizing multimedia content
Maintaining database persistence
Tracking synchronization progress
Setting a priority folder
Repairing database inconsistencies
Configuring Mediastore Synchronization
Configuration file contents
The <Configuration> element
The <Configuration>/<Database> element
The <Configuration>/<Database>/<Synchronization>
element
The <Configuration>/<Database>/<Synchronization>/<ConfigurableMetadata>
element
The <Configuration>/<Database>/<Synchronization>/<MSS>
element
The <Configuration>/<Database>/<Synchronization>/<PLSS>
element
The <Configuration>/<Database>/<Prune> element
Synchronization thread priorities
Skipping files based on their names
Limiting the number of items read
Maintaining the same IDs for updated files and playlists
Filtering synchronization by file type
Multimedia Synchronizer API
Client interface
Constants in mmsyncclient.h, interface.h, and types.h
Defines in mmsyncclient.h
Defines in interface.h
Defines in types.h
Data types in types.h
mmsync_hdl_t
mmsync_status_t
Functions in mmsyncclient.h
mm_sync_cancel()
mm_sync_connect()
mm_sync_control()
mm_sync_debug_set()
mm_sync_disconnect()
mm_sync_resume()
mm_sync_start()
mm_sync_status_get()
mm_sync_status_get_bydbname()
mm_sync_status_get_byid()
mm_sync_status_get_dbname()
mm_sync_suspend()
Configuration constants
Defines in config.h
Media file categories
Data types in interface.h
mm_ftypes_t
Event interface
Data types in event.h
mmsync_event_type_t
mmsync_event_t
mmsync_sync_data_t
mmsync_first_fid_data_t
mmsync_event_metadata_licensing_t
mmsync_ms_update_data_t
mmsync_folder_sync_data_t
mmsync_event_queue_size_t
Functions in mmsyncclient.h
mm_sync_events_get()
mm_sync_events_register()
Error information
Data types in event.h
mmsync_sync_error_type_t
mmsync_sync_error_t
Screen and Windowing Developer's Guide
Contexts
Create a context
Context types
Set a context property
Windows
Window types
Position a window
Create a window
Create a child window
Pixel formats
Displays
Multiple displays
Complete Sample: Using Multiple Displays
Event types
Screen and Windowing
Installation and Configuration
Install Screen and Windowing
Apply your Screen and Windowing
patch
Troubleshooting
Configure Screen and Windowing
Configure khronos section
Configure egl display
egl display configuration parameters
Configure wfd device
Configure winmgr section
Configure globals
globals configuration parameters
Configure display display_id
display configuration parameters
Configure class
class configuration parameters
Configure mtouch
mtouch configuration parameters
Apply your Screen and Windowing
configuration
Troubleshooting
Screen and Windowing
Library Reference
Function safety
Function execution types
Immediate execution
Flushing execution
Delayed execution
Apply execution
Function types
General (screen.h)
Constants in screen.h
Definitions in screen.h
Data types in screen.h
_screen_mode
Screen property types
Screen object types
Screen power mode types
Screen Idle Mode types
Screen mirror types
Screen alpha mode types
Screen pixel format types
Screen usage flag types
Screen transparency types
Screen sensitivity types
Screen sensitivity masks
Screen scaling quality types
Screen CBABC mode types
Screen flushing types
Screen mouse button types
Screen touch types
Contexts (screen.h)
Data types in screen.h
screen_context_t
Screen context types
Functions in screen.h
screen_create_context()
screen_set_context_property_cv()
screen_set_context_property_iv()
screen_set_context_property_llv()
screen_set_context_property_pv()
screen_get_context_property_cv()
screen_get_context_property_iv()
screen_get_context_property_llv()
screen_get_context_property_pv()
screen_destroy_context()
Windows (screen.h)
Data types in screen.h
screen_window_t
Screen window types
Screen window metric counts
Functions in screen.h
screen_create_window()
screen_create_window_type()
screen_create_window_buffers()
screen_attach_window_buffers()
screen_share_window_buffers()
screen_create_window_group()
screen_join_window_group()
screen_leave_window_group()
screen_ref_window()
screen_unref_window()
screen_post_window()
screen_wait_post()
screen_read_window()
screen_discard_window_regions()
screen_set_window_property_cv()
screen_set_window_property_iv()
screen_set_window_property_llv()
screen_set_window_property_pv()
screen_get_window_property_cv()
screen_get_window_property_iv()
screen_get_window_property_llv()
screen_get_window_property_pv()
screen_destroy_window_buffers()
screen_destroy_window()
Pixmaps (screen.h)
Data types in screen.h
screen_pixmap_t
Screen pixmap metric counts
Functions in screen.h
screen_create_pixmap()
screen_attach_pixmap_buffer()
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_set_pixmap_property_cv()
screen_set_pixmap_property_iv()
screen_set_pixmap_property_llv()
screen_set_pixmap_property_pv()
Buffers (screen.h)
Data types in screen.h
screen_buffer_t
Functions in screen.h
screen_create_buffer()
screen_set_buffer_property_cv()
screen_set_buffer_property_iv()
screen_set_buffer_property_llv()
screen_set_buffer_property_pv()
screen_get_buffer_property_cv()
screen_get_buffer_property_iv()
screen_get_buffer_property_llv()
screen_get_buffer_property_pv()
screen_destroy_buffer()
Groups (screen.h)
Data types in screen.h
screen_group_t
Functions in screen.h
screen_create_group()
screen_set_group_property_cv()
screen_set_group_property_iv()
screen_set_group_property_llv()
screen_set_group_property_pv()
screen_get_group_property_cv()
screen_get_group_property_iv()
screen_get_group_property_llv()
screen_get_group_property_pv()
screen_destroy_group()
Events (screen.h)
Data types in screen.h
screen_event_t
Screen event types
Functions in screen.h
screen_create_event()
screen_inject_event()
screen_send_event()
screen_get_event()
screen_set_event_property_cv()
screen_set_event_property_iv()
screen_set_event_property_llv()
screen_set_event_property_pv()
screen_get_event_property_cv()
screen_get_event_property_iv()
screen_get_event_property_llv()
screen_get_event_property_pv()
screen_destroy_event()
Displays (screen.h)
Data types in screen.h
screen_display_t
screen_display_mode_t
Screen display mode types
Screen display types
Screen display metric count types
Functions in screen.h
screen_set_display_property_cv()
screen_set_display_property_iv()
screen_set_display_property_llv()
screen_set_display_property_pv()
screen_get_display_property_cv()
screen_get_display_property_iv()
screen_get_display_property_llv()
screen_get_display_property_pv()
screen_get_display_modes()
screen_read_display()
screen_share_display_buffers()
screen_wait_vsync()
Devices (screen.h)
Data types in screen.h
screen_device_t
Screen device metric counts
Functions in screen.h
screen_create_device_type()
screen_set_device_property_cv()
screen_set_device_property_iv()
screen_set_device_property_llv()
screen_set_device_property_pv()
screen_get_device_property_cv()
screen_get_device_property_iv()
screen_get_device_property_llv()
screen_get_device_property_pv()
screen_destroy_device()
Blits (screen.h)
Data types in screen.h
Screen blit types
Functions in screen.h
screen_blit()
screen_fill()
screen_flush_blits()
screen_flush_context()
Effects (screen.h, effects.h)
Data types in effects.h
Screen effect types
Screen effect property types
Screen effect flip axis types
Screen effect flip direction types
Screen effect rotate direction types
Screen effect page curl types
Screen effect reveal types
Functions in screen.h
screen_prepare_effect()
screen_start_effect()
screen_stop_effect()
screen_set_effect_property_fv()
screen_set_effect_property_iv()
Debugging (screen.h)
Data types in screen.h
Screen debug graph types
Screen packet types
Functions in screen.h
screen_print_packet()
Tutorial: Draw and perform vysnc operation 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 screen shot example
String Pattern Library Reference
Constants in strpattern.h
Definitions in strpattern.h
Data types in strpattern.h
strpattern_analyze_callback_func
strpattern_context
strpattern_match
strpattern_regex_registration
Functions in strpattern.h
strpattern_analyze()
strpattern_analyzeUTF8()
strpattern_cancel()
strpattern_context_delete()
strpattern_context_new()
strpattern_context_set_sync()
strpattern_context_sync()
strpattern_errstr()
strpattern_init()
strpattern_match_delete()
strpattern_match_delete_all()
strpattern_match_end_index()
strpattern_match_invoke_action()
strpattern_match_invoke_count()
strpattern_match_invoke_data()
strpattern_match_invoke_data_type()
strpattern_match_invoke_default()
strpattern_match_invoke_target()
strpattern_match_invoke_uri()
strpattern_match_start_index()
Audio Manager Library Reference
Audio manager routing priority
Supported routing paths
Linking with audio manager
Audio Concurrency (audio_manager_concurrency.h)
Data types in audio_manager_concurrency.h
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 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_config_t
audio_manager_channel_t
audio_manager_device_capabilities_t
audio_manager_device_capability_t
audio_manager_device_headset_button_t
audio_manager_device_t
audio_manager_device_volume_control_t
audio_manager_device_audio_config_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_path()
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_keep_alive()
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_event_context_t
audio_manager_event_type_t
audio_manager_voice_status_volume_change_t
audio_manager_device_button_change_t
audio_manager_device_change_t
audio_manager_concurrency_change_t
audio_manager_routing_change_t
audio_manager_stat_change_t
audio_manager_status_headphone_boost_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
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_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_settings_reset_condition_t
Functions in audio_manager_routing.h
audio_manager_activate_handle()
audio_manager_free_handle()
audio_manager_get_alias_handle()
audio_manager_get_handle()
audio_manager_get_handle_status()
audio_manager_get_handle_type()
audio_manager_get_name_from_type()
audio_manager_get_type_from_name()
audio_manager_set_handle_routing_conditions()
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_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_status_t
audio_manager_voice_service_t
Functions in audio_manager_voice_service.h
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_set_voice_service_option()
audio_manager_set_voice_service_status()
Audio Volume (audio_manager_volume.h)
Data types in audio_manager_volume.h
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_override()
audio_manager_get_headphone_unsafe_zone_status()
audio_manager_get_input_level()
audio_manager_get_input_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_override()
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_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
Gesture Buckets (bucket.h)
Definitions in bucket.h
Definitions in bucket.h
Enumerations in bucket.h
events_bucket_mode_e
events_bucket_t
gestures_bucket_t
Functions in bucket.h
gestures_bucket_add()
gestures_bucket_clear()
gestures_bucket_count()
gestures_bucket_del()
gestures_bucket_get()
gestures_bucket_init()
Global Settings (defaults.h)
Definitions in defaults.h
Definitions in defaults.h
Double Tap (double_tap.h)
Data types in double_tap.h
double_tap_params_t
double_tap_state_e
gesture_double_tap_t
Functions in double_tap.h
double_tap_gesture_alloc()
double_tap_gesture_default_params()
Event Lists (event_list.h)
Data types in event_list.h
event_list_item
event_list_item_t
Functions in 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()
Long Press (long_press.h)
Data types in long_press.h
gesture_long_press_t
long_press_params_t
Functions in long_press.h
long_press_gesture_alloc()
long_press_gesture_default_params()
Pinch Gestures (pinch.h)
Data types in pinch.h
gesture_pinch_t
pinch_params_t
Functions in pinch.h
pinch_gesture_alloc()
pinch_gesture_default_params()
Press and Tap (press_and_tap.h)
Data types in press_and_tap.h
gesture_pt_t
pt_params_t
Functions in press_and_tap.h
pt_gesture_alloc()
pt_gesture_default_params()
Rotate Gesture (rotate.h)
Data types in rotate.h
gesture_rotate_t
rotate_params_t
Functions in rotate.h
rotate_gesture_alloc()
rotate_gesture_default_params()
Gesture Sets (set.h)
Data types in set.h
gestures_set_fail_f
Functions in set.h
gestures_set_add()
gestures_set_alloc()
gestures_set_free()
gestures_set_process_event()
gestures_set_process_event_list()
gestures_set_register_fail_cb()
Swipe Gesture (swipe.h)
Data types in swipe.h
gesture_swipe_t
swipe_params_t
Functions in swipe.h
swipe_gesture_alloc()
swipe_gesture_default_params()
Tap Gesture (tap.h)
Data types in tap.h
gesture_tap_t
tap_params_t
Functions in tap.h
tap_gesture_alloc()
tap_gesture_default_params()
Gesture Timers (timer.h)
Data types in timer.h
gesture_timer_callback_t
Functions in timer.h
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)
Data types in triple_tap.h
gesture_triple_tap_t
triple_tap_state_e
triple_tap_params_t
Functions in triple_tap.h
triple_tap_gesture_alloc()
triple_tap_gesture_default_params()
Two Finger Pan (two_finger_pan.h)
Data types in two_finger_pan.h
gesture_tfpan_t
tfpan_params_t
Functions in two_finger_pan.h
tfpan_gesture_alloc()
tfpan_gesture_default_params()
Two Finger Tap (two_finger_tap.h)
Data types in two_finger_tap.h
gesture_tft_t
tft_params_t
Functions in two_finger_tap.h
tft_gesture_alloc()
tft_gesture_default_params()
Data Types and Helper Functions (types.h)
Constants in types.h
Definitions in types.h
Data types in types.h
gesture_base
gesture_base_t
gesture_coords_t
gesture_callback_f
gesture_e
gesture_funcs_t
gesture_state_e
Functions in types.h
gesture_base_init()
gesture_add_mustfail()
save_coords()
diff_time_ms()
max_displacement_abs()
map_contact_id()
Glview Library Reference
Constants in glview.h
Definitions in glview.h
Data types in glview.h
glview_api_t
background_callback
display_once_callback
event_callback
finalize_callback
foreground_callback
frame_callback
initialize_callback
resize_callback
Functions in glview.h
glview_display_once()
glview_get_callback_data()
glview_get_size()
glview_get_version()
glview_get_vsync()
glview_initialize()
glview_loop()
glview_register_background_callback()
glview_register_event_callback()
glview_register_finalize_callback()
glview_register_foreground_callback()
glview_register_frame_callback()
glview_register_initialize_callback()
glview_register_resize_callback()
glview_set_callback_data()
glview_set_vsync()
Image Library Reference
Working with Images
Attaching to the image library
Loading the image
Cleaning up
Image API
Data types in img.h
img_decode_callouts_t
img_encode_callouts_t
img_format_t
img_t
Functions in img.h
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_finish()
img_decode_frame()
img_decode_validate()
img_dtransform()
img_dtransform_apply()
img_dtransform_create()
img_dtransform_free()
img_encode_begin()
img_encode_finish()
img_encode_frame()
img_expand_getfunc()
IMG_FMT_BPL()
IMG_FMT_BPP()
img_lib_attach()
img_lib_detach()
img_load()
img_load_file()
img_load_resize_file()
img_resize_fs()
img_rotate_ortho()
img_write()
img_write_file()
Input Events Library Reference
Event types (event_types.h)
Data types in event_types.h
input_class_e
input_event_e
mtouch_event
Screen helpers (screen_helpers.h)
Functions in screen_helpers.h
screen_get_mtouch_event()
Metadata Provider Library Reference
Metadata Provider Overview
Architecture of libmd
Metadata providers
MDP ratings
Metadata extraction
Included MDPs
Metadata extraction sessions
Configuring Metadata Providers
Configuration file
Metadata Provider API
md.h
Data types in md.h
mmmd_error_info_t
mmmd_flags_t
mmmd_hdl_t
Functions in md.h
mmmd_error_info()
mmmd_flags_set()
mmmd_get()
mmmd_init()
mmmd_mdps_list()
mmmd_session_close()
mmmd_session_open()
mmmd_session_params_set()
mmmd_terminate()
md_errors.h
Data types in md_errors.h
mmmd_errcode
Functions in md_errors.h
mmmd_error_str()
Multimedia Renderer Developer's Guide
Multimedia Renderer Architecture
Supported media
Abstraction layers
Contexts
Outputs
Inputs
Plugins
Using the Multimedia Renderer
Starting the multimedia renderer
mm-renderer configuration file
mm-renderer command line
Working with contexts
Closing context handles
Defining Parameters
Playing media
Play states
Play speed
Seeking to positions
Managing video windows
Recording audio data
PPS objects
Context state
Play state, warnings, and errors
Input metadata
Playlist window
Supported file and MIME types
Multimedia Renderer Client API
Data types in renderer.h and types.h
mm_error_code_t
mmr_connection_t
mmr_context_t
mmr_error_info_t
Functions in renderer.h
mmr_command_send()
mmr_connect()
mmr_context_close()
mmr_context_create()
mmr_context_destroy()
mmr_context_open()
mmr_context_parameters()
mmr_disconnect()
mmr_error_info()
mmr_input_attach()
mmr_input_detach()
mmr_input_parameters()
mmr_list_change()
mmr_output_attach()
mmr_output_detach()
mmr_output_parameters()
mmr_play()
mmr_seek()
mmr_speed_set()
mmr_stop()
mmr_track_parameters()
Multimedia Renderer Event API
Data types in events.h
mmr_event_t
mmr_event::details
mmr_event::data
mmr_event_type_t
mmr_state_t
Functions in events.h
mmr_event_arm()
mmr_event_data_set()
mmr_event_get()
mmr_event_wait()
Dictionary Object API
Data types in strm.h
strm_dict_t
strm_string_t
Functions in strm.h
strm_dict_clone()
strm_dict_compare()
strm_dict_destroy()
strm_dict_find_index()
strm_dict_find_rstr()
strm_dict_find_value()
strm_dict_index_delete()
strm_dict_key_delete()
strm_dict_key_get()
strm_dict_key_rstr()
strm_dict_new()
strm_dict_set()
strm_dict_set_rstr()
strm_dict_size()
strm_dict_subtract()
strm_dict_value_get()
strm_dict_value_rstr()
strm_string_alloc()
strm_string_clone()
strm_string_destroy()
strm_string_get()
strm_string_make()
strm_string_modify()
Multimedia Synchronizer Developer's Guide
Multimedia Synchronization Overview
The synchronization process
Synchronizer selection
Synchronization passes
Mediastore filesystem traversal
Database cleanup
Optimization of synchronization for slow devices
Full, directed, and file synchronizations
Setting up the Multimedia Synchronizer Environment
mm-sync command line
mmsyncclient command utility
Working with Synchronizations
Synchronizing multimedia content
Maintaining database persistence
Tracking synchronization progress
Setting a priority folder
Repairing database inconsistencies
Configuring Mediastore Synchronization
Configuration file contents
The <Configuration> element
The <Configuration>/<Database> element
The <Configuration>/<Database>/<Synchronization>
element
The <Configuration>/<Database>/<Synchronization>/<ConfigurableMetadata>
element
The <Configuration>/<Database>/<Synchronization>/<MSS>
element
The <Configuration>/<Database>/<Synchronization>/<PLSS>
element
The <Configuration>/<Database>/<Prune> element
Synchronization thread priorities
Skipping files based on their names
Limiting the number of items read
Maintaining the same IDs for updated files and playlists
Filtering synchronization by file type
Multimedia Synchronizer API
Client interface
Constants in mmsyncclient.h, interface.h, and types.h
Defines in mmsyncclient.h
Defines in interface.h
Defines in types.h
Data types in types.h
mmsync_hdl_t
mmsync_status_t
Functions in mmsyncclient.h
mm_sync_cancel()
mm_sync_connect()
mm_sync_control()
mm_sync_debug_set()
mm_sync_disconnect()
mm_sync_resume()
mm_sync_start()
mm_sync_status_get()
mm_sync_status_get_bydbname()
mm_sync_status_get_byid()
mm_sync_status_get_dbname()
mm_sync_suspend()
Configuration constants
Defines in config.h
Media file categories
Data types in interface.h
mm_ftypes_t
Event interface
Data types in event.h
mmsync_event_type_t
mmsync_event_t
mmsync_sync_data_t
mmsync_first_fid_data_t
mmsync_event_metadata_licensing_t
mmsync_ms_update_data_t
mmsync_folder_sync_data_t
mmsync_event_queue_size_t
Functions in mmsyncclient.h
mm_sync_events_get()
mm_sync_events_register()
Error information
Data types in event.h
mmsync_sync_error_type_t
mmsync_sync_error_t
Screen and Windowing Developer's Guide
Contexts
Create a context
Context types
Set a context property
Windows
Window types
Position a window
Create a window
Create a child window
Pixel formats
Displays
Multiple displays
Complete Sample: Using Multiple Displays
Event types
Screen and Windowing
Installation and Configuration
Install Screen and Windowing
Apply your Screen and Windowing
patch
Troubleshooting
Configure Screen and Windowing
Configure khronos section
Configure egl display
egl display configuration parameters
Configure wfd device
Configure winmgr section
Configure globals
globals configuration parameters
Configure display display_id
display configuration parameters
Configure class
class configuration parameters
Configure mtouch
mtouch configuration parameters
Apply your Screen and Windowing
configuration
Troubleshooting
Screen and Windowing
Library Reference
Function safety
Function execution types
Immediate execution
Flushing execution
Delayed execution
Apply execution
Function types
General (screen.h)
Constants in screen.h
Definitions in screen.h
Data types in screen.h
_screen_mode
Screen property types
Screen object types
Screen power mode types
Screen Idle Mode types
Screen mirror types
Screen alpha mode types
Screen pixel format types
Screen usage flag types
Screen transparency types
Screen sensitivity types
Screen sensitivity masks
Screen scaling quality types
Screen CBABC mode types
Screen flushing types
Screen mouse button types
Screen touch types
Contexts (screen.h)
Data types in screen.h
screen_context_t
Screen context types
Functions in screen.h
screen_create_context()
screen_set_context_property_cv()
screen_set_context_property_iv()
screen_set_context_property_llv()
screen_set_context_property_pv()
screen_get_context_property_cv()
screen_get_context_property_iv()
screen_get_context_property_llv()
screen_get_context_property_pv()
screen_destroy_context()
Windows (screen.h)
Data types in screen.h
screen_window_t
Screen window types
Screen window metric counts
Functions in screen.h
screen_create_window()
screen_create_window_type()
screen_create_window_buffers()
screen_attach_window_buffers()
screen_share_window_buffers()
screen_create_window_group()
screen_join_window_group()
screen_leave_window_group()
screen_ref_window()
screen_unref_window()
screen_post_window()
screen_wait_post()
screen_read_window()
screen_discard_window_regions()
screen_set_window_property_cv()
screen_set_window_property_iv()
screen_set_window_property_llv()
screen_set_window_property_pv()
screen_get_window_property_cv()
screen_get_window_property_iv()
screen_get_window_property_llv()
screen_get_window_property_pv()
screen_destroy_window_buffers()
screen_destroy_window()
Pixmaps (screen.h)
Data types in screen.h
screen_pixmap_t
Screen pixmap metric counts
Functions in screen.h
screen_create_pixmap()
screen_attach_pixmap_buffer()
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_set_pixmap_property_cv()
screen_set_pixmap_property_iv()
screen_set_pixmap_property_llv()
screen_set_pixmap_property_pv()
Buffers (screen.h)
Data types in screen.h
screen_buffer_t
Functions in screen.h
screen_create_buffer()
screen_set_buffer_property_cv()
screen_set_buffer_property_iv()
screen_set_buffer_property_llv()
screen_set_buffer_property_pv()
screen_get_buffer_property_cv()
screen_get_buffer_property_iv()
screen_get_buffer_property_llv()
screen_get_buffer_property_pv()
screen_destroy_buffer()
Groups (screen.h)
Data types in screen.h
screen_group_t
Functions in screen.h
screen_create_group()
screen_set_group_property_cv()
screen_set_group_property_iv()
screen_set_group_property_llv()
screen_set_group_property_pv()
screen_get_group_property_cv()
screen_get_group_property_iv()
screen_get_group_property_llv()
screen_get_group_property_pv()
screen_destroy_group()
Events (screen.h)
Data types in screen.h
screen_event_t
Screen event types
Functions in screen.h
screen_create_event()
screen_inject_event()
screen_send_event()
screen_get_event()
screen_set_event_property_cv()
screen_set_event_property_iv()
screen_set_event_property_llv()
screen_set_event_property_pv()
screen_get_event_property_cv()
screen_get_event_property_iv()
screen_get_event_property_llv()
screen_get_event_property_pv()
screen_destroy_event()
Displays (screen.h)
Data types in screen.h
screen_display_t
screen_display_mode_t
Screen display mode types
Screen display types
Screen display metric count types
Functions in screen.h
screen_set_display_property_cv()
screen_set_display_property_iv()
screen_set_display_property_llv()
screen_set_display_property_pv()
screen_get_display_property_cv()
screen_get_display_property_iv()
screen_get_display_property_llv()
screen_get_display_property_pv()
screen_get_display_modes()
screen_read_display()
screen_share_display_buffers()
screen_wait_vsync()
Devices (screen.h)
Data types in screen.h
screen_device_t
Screen device metric counts
Functions in screen.h
screen_create_device_type()
screen_set_device_property_cv()
screen_set_device_property_iv()
screen_set_device_property_llv()
screen_set_device_property_pv()
screen_get_device_property_cv()
screen_get_device_property_iv()
screen_get_device_property_llv()
screen_get_device_property_pv()
screen_destroy_device()
Blits (screen.h)
Data types in screen.h
Screen blit types
Functions in screen.h
screen_blit()
screen_fill()
screen_flush_blits()
screen_flush_context()
Effects (screen.h, effects.h)
Data types in effects.h
Screen effect types
Screen effect property types
Screen effect flip axis types
Screen effect flip direction types
Screen effect rotate direction types
Screen effect page curl types
Screen effect reveal types
Functions in screen.h
screen_prepare_effect()
screen_start_effect()
screen_stop_effect()
screen_set_effect_property_fv()
screen_set_effect_property_iv()
Debugging (screen.h)
Data types in screen.h
Screen debug graph types
Screen packet types
Functions in screen.h
screen_print_packet()
Tutorial: Draw and perform vysnc operation 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 screen shot example
String Pattern Library Reference
Constants in strpattern.h
Definitions in strpattern.h
Data types in strpattern.h
strpattern_analyze_callback_func
strpattern_context
strpattern_match
strpattern_regex_registration
Functions in strpattern.h
strpattern_analyze()
strpattern_analyzeUTF8()
strpattern_cancel()
strpattern_context_delete()
strpattern_context_new()
strpattern_context_set_sync()
strpattern_context_sync()
strpattern_errstr()
strpattern_init()
strpattern_match_delete()
strpattern_match_delete_all()
strpattern_match_end_index()
strpattern_match_invoke_action()
strpattern_match_invoke_count()
strpattern_match_invoke_data()
strpattern_match_invoke_data_type()
strpattern_match_invoke_default()
strpattern_match_invoke_target()
strpattern_match_invoke_uri()
strpattern_match_start_index()
QNX Momentics IDE User's Guide
Assumptions
IDE Concepts
What is an IDE?
Build embedded systems using the IDE
Perspectives
Views
Editors
Use alternate editors
Change editors
Refresh the resources
Disable automatic syntax annotation highlighting
Projects in the IDE
Considerations for project development
How the IDE characterizes projects using natures
The IDE Workspace
Specify a workspace location
Host and target machines
Target agent (the qconn daemon)
Launcher
Resources
Wizards
Keyboard shortcuts
Version coexistence
Specify which OS version to build for
Environment variables
Getting Started
Start the IDE
The IDE welcomes you
Start the IDE for the first time
Start the IDE from the command line
Use the workbench
Use the QNX help system
Open the online help from the IDE
Navigate the online help
Create help bookmarks
Tips and Tricks
Create a project
Create a simple project
Rename a project
Create a target system project
Create a QNX target system Project
Create a launch configuration
Run your application
Delete a project
Troubleshoot the IDE
Prepare Your Target
Host-target communications
Types of target processors
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 Networking
Link an embedded system running QNX Neutrino to a Windows network connection
Verify a network connection
Develop C/C++ Programs
The C/C++ perspective
Understand projects in the IDE
The IDE project model
Supported project types in the IDE
Container project
Scenarios for creating a project for the first time
Check out a partial source tree
Share projects
Check out existing projects
Set build properties for a project
Create a project in the IDE
Create a simple project
Create a make project
Managed make projects
Create a Makefile to build outside of the IDE
Choose an indexer
Working with projects
Opening files
Create files from scratch
Filter files
Open projects
Close projects
View outlines of source and binary files
Write code
C/C++ editor layout
Assistance with function names
Access source files for functions
Use code templates
Insert code templates
Create a custom template
Edit a code template
Add include directives
Use hover help
Add and remove comments in code
Customize the C/C++ editor
Change fonts, background color, or the visibility of line numbers
Change tabs into spaces, highlight, and folding options
Set Content Assist options
Use other editors
Use an external editor outside of the IDE
Use another editor within the IDE
Build projects
Enable the autobuild feature for QNX C/C++ projects
Enable the autobuild feature for non QNX C/C++ projects
Configure automated builds
Example #1: the Makefile is in the root
Build all projects
Configure the project build order
Build a single project
Build selected projects
Build from the command line
Clean and rebuild all projects
Clean selected projects
Autosave before building
Create custom make targets
Build a project with a custom make target
Remove a make target
Add a use message
Add a usage message when using a QNX C/C++ Project
Add a usage message when using a Makefile Project
More development features
Track remaining work
Error markers
Jump to errors
Filtering errors
Track tasks
Set reminders
Associate tasks with resources
Remove a task
Code synopsis
Toolbar icons
Outline view icons
Filter and group in the Outline view
Use Working Sets
Check your build
Customize the Console view
Open headers
Set the include paths and define directives (C/C++ Make project)
Navigate using Go To Type
Manage Source Code
SVN and the IDE
CVS and the IDE
Local history feature
Project files (.project and .cproject)
Use the core Eclipse source control documentation in the IDE
SVN documentation
CVS documentation
Use a Launch Configuration to Run and Debug Your Application
What is a launch configuration?
Launch configuration types
Create a launch configuration
Run and debug for the first time
Debug a program the first time
Run and debug subsequent times
Launch a selected program (fast)
Launch from a list of favorites (faster)
Launch the last-launched program (fastest)
Launch Group type
Set execution options
Main tab
Arguments tab
Environment tab
Upload tab
Debugger tab
Source tab
Common tab
Tools tab
Debugging a program in the IDE
Debug a program (build an executable for debugging)
Debug a child process
Control your session
Debug view
Debug view icons
Use the controls
Toolbar icons
Use hotkeys
Control your session
From the Debug view
From the C/C++ editor
Disassembly mode
Debug launch controls
Jump to a memory address in the Disassembly view
More debugging features
Inspect variables
Change variable values
Control the display of variables
Change a variable to a different type
View variables in memory
Use breakpoints and watchpoints
Add breakpoints
Add watchpoints
Set an action for the breakpoint
Add event breakpoints
Set properties of breakpoints and watchpoints
Disable/enable breakpoints and watchpoints
Remove breakpoints and watchpoints
Evaluate your expressions
Inspect your registers
Toolbar icons
Menu commands
Modify registers
Chang the number system for register values
Inspect a process's memory
View memory
Inspect memory
Configure output format
Change memory
Menu commands
Menu commands for the Monitors pane
Menu commands for the Rendering pane
Inspect shared-library usage
Load a Library's symbol
Monitor signal handling
Change how the debugger handles signals
Send a signal to a suspended program
View your output
Interact with GDB
Enable the QNX GDB Console view
Use the QNX GDB Console view
Use 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
Createa 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
Import and Export
Import preferences
Export preferences
Import existing source code into the IDE
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
Import code into the IDE
Import a C/C++ project from CVS
Import C/C++ code that doesn't have the project metadata in CVS
Import C/C++ code from CVS into an existing project
Import a C/C++ Project from SVN
Import C/C++ code that doesn't have the project metadata for SVN
Import C/C++ code from SVN into an existing project
Import wizard
Filesystem drag-and-drop
Add linked resources
Import a BSP or other QNX source packages
QNX BSP perspective
Import a BSP package from Foundry27
Check out BSP packages directly from the SVN Repositories view
Set export options for a BSP
Export projects
Use the Export command
Build OS and Flash Images
Introducing the QNX System Builder
Toolbar buttons
Binary Inspector
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)
Build an OS image
Create a new image
Combine images
Add an IPL to the start of your image
Add an EFS to your image
Set the final format of your OS image
Download an image to your target
Download
Open a terminal
Communicate with your target
Use the QNX Send File button
Download using TFTP
Transfer a file
Transfer files that aren't in Images
Transfer an image
Settings for the TFTP server
Set font and color preferences
Download using other methods
Configure your QNX System Builder projects
Manage your images
Determine the shared libraries and DLLs are required for an executable
Add files to your image
Delete files
Add directories
Delete directories
Configure image properties
Image properties
Directories
General
System (.ifs)
System (.efs)
Item properties
General
Combine
Memory
Permissions
Configure project properties
Search Paths
Manage your search paths
Search path variables
Optimize your system
Optimize all libraries in your image
Optimize a single library
Restore a slimmed-down library
Move files between the host and target
Move files to the target
Move files from the target to the host
Export a System Builder project to a mkxfs build file(s)
Profiling an Application
Types of profiling
Statistical sample profiling (sampling)
Function Instrumentation profiling
Sampling and Call Count instrumentation profiling
Postmortem profiling for Call Count and Function Instrumentation profiling
Profile your programs
Build a program for profiling
Build with profiling enabled
Run and profile a process
Profile a running process
Postmortem profiling for Call Count and sampling
Application Profiler tab
Control your profiling sessions
Understand your 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
Debug view
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
Annotated source editor
Use the Application Profiler
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
Using Code Coverage
Types of code coverage in the IDE
How the coverage tool works
Enable code coverage
Enable code coverage for make projects
Start a coverage-enabled program
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
Analyze Memory Usage and Find Errors
Memory management in QNX Neutrino
Virtual memory
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
Inspect outstanding allocations
Types of allocation overhead
Estimate the average allocation size
Tune the allocator
Optimize static and stack memory
Find 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
GUI interface options and environment variables for the Memory Analysis Tool
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
Get System Information
Introduction
What the System Information perspective reveals
Log system information
Associated views
Control your system information session
Send a signal
Examine your target system's attributes
System Specifications pane
System Memory pane
Processes panes
Watch your processes
Thread Details pane
Environment Variables pane
Process Properties pane
Examining your target system's 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
Associated views
Analyze Your System with Kernel Tracing
Overview of the QNX System Profiler
Before you begin
Configure a target for system profiling
Launch the Log Configuration dialog
Address translation
Configure your kernel event trace
Capture instrumentation data in event log files
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
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
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
Creating projects
Create a C/C++ project
How to create a C/C++ project
Create a C Makefile project
Create a make project
Create a make project that can be launched outside the IDE
Use 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
Convert projects
Convert a QNX project to a managed make C/C++ project
Convert a regular project to a managed make C/C++ project
Convert to a QNX project
Convert a project to a different type
Post-build actions
Import projects
Import an existing container project into a workspace
Import an existing project into a workspace
Import from a filesystem
Import GCC coverage data from a project
Import a QNX Source Package
Copy a QNX source package
Import a QNX mkifs Buildfile
Import a team project set
Import an archive file
Breakpoints
Launch configurations
Preferences
General preferences
Appearance page
Color and font page
Label Decorations page
Compare/Patch page
Content Types page
Editors page
File Associations page
Text Editors page
Accessibility page
Annotations page
Hyperlinking page
QNX preferences
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
Where Files Are Stored
Utilities used by the IDE
IDE Administration
Install new software
Use older toolchains with the IDE
Copy a new version of qconn to a target system
Update qconn on a development system
Glossary
Assumptions
IDE Concepts
What is an IDE?
Build embedded systems using the IDE
Perspectives
Views
Editors
Use alternate editors
Change editors
Refresh the resources
Disable automatic syntax annotation highlighting
Projects in the IDE
Considerations for project development
How the IDE characterizes projects using natures
The IDE Workspace
Specify a workspace location
Host and target machines
Target agent (the qconn daemon)
Launcher
Resources
Wizards
Keyboard shortcuts
Version coexistence
Specify which OS version to build for
Environment variables
Getting Started
Start the IDE
The IDE welcomes you
Start the IDE for the first time
Start the IDE from the command line
Use the workbench
Use the QNX help system
Open the online help from the IDE
Navigate the online help
Create help bookmarks
Tips and Tricks
Create a project
Create a simple project
Rename a project
Create a target system project
Create a QNX target system Project
Create a launch configuration
Run your application
Delete a project
Troubleshoot the IDE
Prepare Your Target
Host-target communications
Types of target processors
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 Networking
Link an embedded system running QNX Neutrino to a Windows network connection
Verify a network connection
Develop C/C++ Programs
The C/C++ perspective
Understand projects in the IDE
The IDE project model
Supported project types in the IDE
Container project
Scenarios for creating a project for the first time
Check out a partial source tree
Share projects
Check out existing projects
Set build properties for a project
Create a project in the IDE
Create a simple project
Create a make project
Managed make projects
Create a Makefile to build outside of the IDE
Choose an indexer
Working with projects
Opening files
Create files from scratch
Filter files
Open projects
Close projects
View outlines of source and binary files
Write code
C/C++ editor layout
Assistance with function names
Access source files for functions
Use code templates
Insert code templates
Create a custom template
Edit a code template
Add include directives
Use hover help
Add and remove comments in code
Customize the C/C++ editor
Change fonts, background color, or the visibility of line numbers
Change tabs into spaces, highlight, and folding options
Set Content Assist options
Use other editors
Use an external editor outside of the IDE
Use another editor within the IDE
Build projects
Enable the autobuild feature for QNX C/C++ projects
Enable the autobuild feature for non QNX C/C++ projects
Configure automated builds
Example #1: the Makefile is in the root
Build all projects
Configure the project build order
Build a single project
Build selected projects
Build from the command line
Clean and rebuild all projects
Clean selected projects
Autosave before building
Create custom make targets
Build a project with a custom make target
Remove a make target
Add a use message
Add a usage message when using a QNX C/C++ Project
Add a usage message when using a Makefile Project
More development features
Track remaining work
Error markers
Jump to errors
Filtering errors
Track tasks
Set reminders
Associate tasks with resources
Remove a task
Code synopsis
Toolbar icons
Outline view icons
Filter and group in the Outline view
Use Working Sets
Check your build
Customize the Console view
Open headers
Set the include paths and define directives (C/C++ Make project)
Navigate using Go To Type
Manage Source Code
SVN and the IDE
CVS and the IDE
Local history feature
Project files (.project and .cproject)
Use the core Eclipse source control documentation in the IDE
SVN documentation
CVS documentation
Use a Launch Configuration to Run and Debug Your Application
What is a launch configuration?
Launch configuration types
Create a launch configuration
Run and debug for the first time
Debug a program the first time
Run and debug subsequent times
Launch a selected program (fast)
Launch from a list of favorites (faster)
Launch the last-launched program (fastest)
Launch Group type
Set execution options
Main tab
Arguments tab
Environment tab
Upload tab
Debugger tab
Source tab
Common tab
Tools tab
Debugging a program in the IDE
Debug a program (build an executable for debugging)
Debug a child process
Control your session
Debug view
Debug view icons
Use the controls
Toolbar icons
Use hotkeys
Control your session
From the Debug view
From the C/C++ editor
Disassembly mode
Debug launch controls
Jump to a memory address in the Disassembly view
More debugging features
Inspect variables
Change variable values
Control the display of variables
Change a variable to a different type
View variables in memory
Use breakpoints and watchpoints
Add breakpoints
Add watchpoints
Set an action for the breakpoint
Add event breakpoints
Set properties of breakpoints and watchpoints
Disable/enable breakpoints and watchpoints
Remove breakpoints and watchpoints
Evaluate your expressions
Inspect your registers
Toolbar icons
Menu commands
Modify registers
Chang the number system for register values
Inspect a process's memory
View memory
Inspect memory
Configure output format
Change memory
Menu commands
Menu commands for the Monitors pane
Menu commands for the Rendering pane
Inspect shared-library usage
Load a Library's symbol
Monitor signal handling
Change how the debugger handles signals
Send a signal to a suspended program
View your output
Interact with GDB
Enable the QNX GDB Console view
Use the QNX GDB Console view
Use 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
Createa 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
Import and Export
Import preferences
Export preferences
Import existing source code into the IDE
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
Import code into the IDE
Import a C/C++ project from CVS
Import C/C++ code that doesn't have the project metadata in CVS
Import C/C++ code from CVS into an existing project
Import a C/C++ Project from SVN
Import C/C++ code that doesn't have the project metadata for SVN
Import C/C++ code from SVN into an existing project
Import wizard
Filesystem drag-and-drop
Add linked resources
Import a BSP or other QNX source packages
QNX BSP perspective
Import a BSP package from Foundry27
Check out BSP packages directly from the SVN Repositories view
Set export options for a BSP
Export projects
Use the Export command
Build OS and Flash Images
Introducing the QNX System Builder
Toolbar buttons
Binary Inspector
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)
Build an OS image
Create a new image
Combine images
Add an IPL to the start of your image
Add an EFS to your image
Set the final format of your OS image
Download an image to your target
Download
Open a terminal
Communicate with your target
Use the QNX Send File button
Download using TFTP
Transfer a file
Transfer files that aren't in Images
Transfer an image
Settings for the TFTP server
Set font and color preferences
Download using other methods
Configure your QNX System Builder projects
Manage your images
Determine the shared libraries and DLLs are required for an executable
Add files to your image
Delete files
Add directories
Delete directories
Configure image properties
Image properties
Directories
General
System (.ifs)
System (.efs)
Item properties
General
Combine
Memory
Permissions
Configure project properties
Search Paths
Manage your search paths
Search path variables
Optimize your system
Optimize all libraries in your image
Optimize a single library
Restore a slimmed-down library
Move files between the host and target
Move files to the target
Move files from the target to the host
Export a System Builder project to a mkxfs build file(s)
Profiling an Application
Types of profiling
Statistical sample profiling (sampling)
Function Instrumentation profiling
Sampling and Call Count instrumentation profiling
Postmortem profiling for Call Count and Function Instrumentation profiling
Profile your programs
Build a program for profiling
Build with profiling enabled
Run and profile a process
Profile a running process
Postmortem profiling for Call Count and sampling
Application Profiler tab
Control your profiling sessions
Understand your 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
Debug view
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
Annotated source editor
Use the Application Profiler
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
Using Code Coverage
Types of code coverage in the IDE
How the coverage tool works
Enable code coverage
Enable code coverage for make projects
Start a coverage-enabled program
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
Analyze Memory Usage and Find Errors
Memory management in QNX Neutrino
Virtual memory
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
Inspect outstanding allocations
Types of allocation overhead
Estimate the average allocation size
Tune the allocator
Optimize static and stack memory
Find 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
GUI interface options and environment variables for the Memory Analysis Tool
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
Get System Information
Introduction
What the System Information perspective reveals
Log system information
Associated views
Control your system information session
Send a signal
Examine your target system's attributes
System Specifications pane
System Memory pane
Processes panes
Watch your processes
Thread Details pane
Environment Variables pane
Process Properties pane
Examining your target system's 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
Associated views
Analyze Your System with Kernel Tracing
Overview of the QNX System Profiler
Before you begin
Configure a target for system profiling
Launch the Log Configuration dialog
Address translation
Configure your kernel event trace
Capture instrumentation data in event log files
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
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
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
Creating projects
Create a C/C++ project
How to create a C/C++ project
Create a C Makefile project
Create a make project
Create a make project that can be launched outside the IDE
Use 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
Convert projects
Convert a QNX project to a managed make C/C++ project
Convert a regular project to a managed make C/C++ project
Convert to a QNX project
Convert a project to a different type
Post-build actions
Import projects
Import an existing container project into a workspace
Import an existing project into a workspace
Import from a filesystem
Import GCC coverage data from a project
Import a QNX Source Package
Copy a QNX source package
Import a QNX mkifs Buildfile
Import a team project set
Import an archive file
Breakpoints
Launch configurations
Preferences
General preferences
Appearance page
Color and font page
Label Decorations page
Compare/Patch page
Content Types page
Editors page
File Associations page
Text Editors page
Accessibility page
Annotations page
Hyperlinking page
QNX preferences
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
Where Files Are Stored
Utilities used by the IDE
IDE Administration
Install new software
Use older toolchains with the IDE
Copy a new version of qconn to a target system
Update qconn on a development system
Glossary
QNX Neutrino OS Guides
System Architecture
The Philosophy of QNX Neutrino
An embeddable POSIX OS?
Product scaling
Why POSIX for embedded systems?
Multiple OS sources
Portability of development staff
Development environment: native and cross development
Why QNX Neutrino for embedded systems?
Microkernel architecture
The OS as a team of processes
A true kernel
System processes
System processes vs user-written processes
Device drivers
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 QNX Neutrino
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)
Neutrino's microkernel approach
Booting an x86 SMP system
Booting a PowerPC or MIPS 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
Ordering mountpoints
Single-device mountpoints
Unioned filesystem mountpoints
Why overlay mountpoints?
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)
Inside a transaction
Types of storage media
Reliability features
Dynamic wear-leveling
Static wear-leveling
CRC error detection
ECC error correction
Read degradation monitoring with automatic refresh
Transaction rollback
Atomic file operations
Automatic file defragmentation
QNX 4 filesystem
Power-Safe filesystem
Problems with existing disk filesystems
Copy-on-write filesystem
Performance
DOS Filesystem
CD-ROM filesystem
FFS3 filesystem
Customization
Organization
Raw partitions
Filesystem partitions
Mountpoints
Features
POSIX
Background reclaim
Fault recovery
Compression/decompression
Flash errors
Endian awareness
Utilities
System calls
NFS filesystem
CIFS filesystem
Linux Ext2 filesystem
Universal Disk Format (UDF) filesystem
Apple Macintosh HFS and HFS Plus
Windows NT filesystem
Virtual inflator filesystem
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
User's Guide
Getting to Know the OS
Neutrino compared with UNIX
Neutrino compared with Microsoft Windows
Limitations
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
Neutrino for MS-DOS users
DOS commands and their Neutrino equivalents
The diskcomp DOS command
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
A note about cd
No drive letters
Pathnames that begin with a dot
Extensions
Pathname-space mapping
Filename rules
Where everything is stored
/
/bin
/boot
/dev
/etc
/fs
/home
/lib
/proc
/root
/sbin
/tmp
/usr
/var
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
Controlling How Neutrino Starts
What happens when you boot?
Loading a Neutrino image
Power-Safe filesystem
QNX 4 filesystem
diskboot
.diskroot
/etc/system/sysinit
Device enumeration
oem file or directory
overrides file or directory
Host-specific enumerators
/etc/rc.d/rc.sysinit
rc.local
tinit
Updating disk drivers
Applying a driver update patch after you've installed QNX Neutrino
Troubleshooting
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
Creating useqnet
Starting the network manager, protocols, and drivers
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
Establishing a PPPoE session
Starting a point-to-point connection over PPPoE session
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?
Connecting Hardware
PCI/AGP devices
CD-ROMs and DVDs
Floppy disks
Hard disks
EIDE
Troubleshooting for devb-eide
SCSI devices
SCSI RAID
LS-120
ORB
Zip and Jaz disks
Magnetic optical drives
RAM disks
Audio cards
ISA cards
PCI Cards
PCCARD and PCMCIA cards
USB devices
Printers
Touchscreens
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
Using CVS
CVS basics
Revisions
Basic operations
Repositories
Editors and CVS
Creating a repository
Getting files in and out of the repository
Putting changes back into the repository
Importing an existing source tree
Getting information on files
Changing files
More information on files: what changed and why
CVS and directory trees
Concurrent development: branching and merging
Branching
Merging
Removing and restoring files
Setting up a CVS server
Backing Up and Recovering Data
Backup strategies
Choosing backup storage media and location
Choosing a backup format
Controlling your backup
Archiving your data
Creating an archive
Extracting from an archive
Compressing an archive
Decompressing the archive
Storage choices
Remote backups
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
Neutrino security in general
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
Faster boot times
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
How small can you get?
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
Examples
Buildfile for an NFS-mounting target
qnxbasedma.build
Buildfile that doesn't use diskboot
.profile
.kshrc
Configuration files for spooler
Using lpr
Using NCFTP
Using SAMBA
PPP with CHAP authentication between two Neutrino boxes
Glossary
Starting to Program 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
Single threaded
Multi threaded
Back to processes and threads
Mutual exclusion
Priorities
Semaphores
A semaphore with a count of 1
A semaphore with a count greater than 1
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 Neutrino 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
Messaging fundamentals
A small microkernel and message passing
Message passing and client/server
Network-distributed message passing
What it means for you
The philosophy of Neutrino
Multiple threads
Server/subserver
Some examples
Send-driven (client/server)
Reply-driven (server/subserver)
An important subtlety
Multi-threaded server
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
Longer delays
Impact on ConnectAttach()
Impact on MsgDeliverEvent()
Impact on MsgReply(), MsgRead(), and MsgWrite()
Impact on MsgReceive()
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
Getting and setting
Adjusting the timebase
An accurate timestamp
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
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
Attaching with InterruptAttachEvent()
Attaching with InterruptAttach()
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
Union'd 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_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
OCB monitor
More efficient allocation
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 Neutrino
Similarities
Improvements
Embeddability
Thread support
Message passing
Pulses and events
Device driver model
MIPS, PPC, SH4, and 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 QNX- or Neutrino-specific code
Header files in /usr/include
Self-hosted or cross-development
A simple example
Self-hosted
Cross-development with network filesystem
Cross-development with debugger
Download/upload facility
Cross-development, deeply embedded
Step 1: Build a Neutrino system image.
Step 2: Transfer the system image to the target.
Step 3: Boot the target.
Using libraries
Static and dynamic libraries
Static libraries
Dynamic libraries
dlopen()
Platform-specific library locations
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
Debugging in a self-hosted environment
Debugging in a cross-development environment
The GNU debugger (gdb)
The process-level debug agent
Serial connection
TCP/IP connection
A simple debug session
Configure the target
Compile for debugging
Start the debug session
Get help
Sample boot image
Debugging using libmudflap
Programming Overview
Process model
An application as a set of processes
Some definitions
Priorities and scheduling
Priority range
BLOCKED and READY states
The ready queue
Suspending a running thread
When the thread is blocked
When the thread is preempted
When the thread yields
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
Normal process termination
Abnormal 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
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
An example of privilege separation
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_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 Neutrino Microkernel's Concept of Time
Oversleeping: errors in delays
Delaying for a second: inaccurate code
Timer quantization error
The tick and the hardware timer
Delaying for a second: better code
Another hiccup with hardware timers
Where's the catch?
What time is it?
Clocks, timers, and power management
Transparent Distributed Processing Using Qnet
What is Qnet?
Benefits of Qnet
What works best
What type of application is well-suited for Qnet?
How does it work?
Locating services using GNS
Different modes of GNS
Registering a service
GNS path namespace
Deploying the gns processes
Quality of Service (QoS) and multiple paths
QoS policies
loadbalance
preferred
exclusive
Specifying QoS policies
Symbolic links
Designing a system using Qnet
The product: a telecom box
Developing your distributed system
Configuring the data cards
Configuring the controller card
Enhancing reliability via multiple transport buses
Redundancy and scalability using multiple controller cards
Redundancy
Scalability
Autodiscovery vs static
When should you use Qnet, TCP/IP, or NFS?
Drivers for Qnet
Writing an Interrupt Handler
What's an interrupt?
Interrupts on multicore systems
Attaching and detaching interrupts
Interrupt Service Routine (ISR)
Determining the source of the interrupt
Edge-triggered IRQ
Level-sensitive IRQ
Servicing the hardware
Safe functions
Updating common data structures
Signalling 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: Making Memory Errors a Thing of the Past
Dynamic memory management
Arena allocations
Small block configuration
Heap corruption
Contiguous memory blocks
Multithreaded programs
Allocation strategy
Common sources
Overrun and underrun errors
Releasing memory
Using uninitialized or stale pointers
Detecting and reporting errors
Using the malloc debug library
What's checked?
Allocating memory
Reallocating memory
Releasing memory
Controlling the level of checking
Description of optional checks
Forcing verification
Specifying an error handler
Other environment variables
Caveats
Manual checking (bounds checking)
Getting pointer information
Memory leaks
Tracing
Causing a trace and giving results
Analyzing dumps
Compiler support
C++ issues
Clean C
C++ example
Freedom from Hardware and Platform Dependencies
Common problems
I/O space vs memory-mapped
Big-endian vs little-endian
Typecast mangling
Hardware access
Network transparency
Alignment and structure packing
Atomic operations
Solutions
Determining endianness
Swapping data if required
ENDIAN_LE16()
ENDIAN_LE32()
ENDIAN_LE64()
ENDIAN_BE16()
ENDIAN_BE32()
ENDIAN_BE64()
Accessing unaligned data
UNALIGNED_RET16()
UNALIGNED_RET32()
UNALIGNED_RET64()
UNALIGNED_PUT16()
UNALIGNED_PUT32()
UNALIGNED_PUT64()
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
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
MIPS machines and the function stack
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
Advanced Qnet Topics
Low-level discussion of Qnet principles
Details of Qnet data communication
Node descriptors
netmgr_strtond()
netmgr_ndtostr()
netmgr_remote_nd()
Booting over the network
Overview
Creating directory and setting up configuration files
Building an OS image
Booting the client
Troubleshooting
What are the limitations...
Glossary
The QNX Neutrino Cookbook
About This Guide
Foreword to the First Edition by Brian Stecher
Preface to the First Edition by Rob Krten
What's in this book?
Philosophy
The Basics
High Availability
Design Philosophy
Recipes
Web-Counter Resource Manager
ADIOS — Analog / Digital I/O Server
RAM-disk Filesystem Manager
The tar Filesystem Manager
References
What's not in this book?
Other references
Thanks!
Century Aluminum
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 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
Overview
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
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
The iofunc layer
The resmgr layer
The dispatch layer
The thread pool layer
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
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
Returning with an error
Returning using an IOV array that points to your data
Returning with a single buffer containing data
Returning success but with no data
Getting the resource manager library to do the reply
Performing the reply in the server
Leaving the client blocked, replying later
Returning and telling the library to do the default action
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
Atomic operations
Bandwidth considerations
The library's combine-message handling
Component responses
Component data access
Locking and unlocking the attribute structure
Connect message types
_IO_CONNECT_COMBINE_CLOSE
_IO_CONNECT_COMBINE
Extending the POSIX-Layer Data Structures
Overview
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()
Signals, Timeouts, and Interrupts
Handling client unblocking due to signals or timeouts
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
Multicore Processing User's Guide
What is Multicore Processing?
Developing Multicore Systems
The impact of multicore
Thread affinity
Multicore and synchronization primitives
Multicore and FIFO scheduling
Multicore and interrupts
Multicore and atomic operations
Designing with multiprocessing in mind
Use the multicore primitives
Assume that threads really do run concurrently
Break the problem down
Glossary
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
Adaptive Partitioning User's Guide
What is Adaptive Partitioning?
What are partitions and what is adaptive partitioning?
System and user requirements
The 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 QNX 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 system considerations
Glossary
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_unlink()
snd_pcm_voice_conversion_t
snd_pcm_write()
snd_strerror()
snd_switch_t
wave.c example
waverec.c example
mixer_ctl.c example
ALSA and libasound.so
What's New in This Release?
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
Building Embedded Systems
About This Book
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 Neutrino
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
BSP Overview
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 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 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
Introduction
Initialize hardware
Initialize system page
Initialize callouts
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.ppc (deprecated)
un.ppc.kerinfo
un.mips
un.arm
un.sh
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()
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()
mips41xx_set_clock_freqs()
openbios_init_raminfo()
pcnet_reset()
ppc400_pit_init_qtime()
ppc405_set_clock_freqs()
ppc600_set_clock_freqs()
ppc700_init_l2_cache()
ppc800_pit_init_qtime()
ppc800_set_clock_freqs()
ppc_dec_init_qtime()
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
PPC chips support
Adding a new CPU to the startup library
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
Introduction
Before you design your system
Processor speed
Memory requirements
Peripherals
Debugging
Field upgrades
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
NMI
Design do's and don'ts
Do:
Don't:
Sample Buildfiles
Introduction
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
Specifying the processor
Examples
Specifying the startup program
Specifying the serial device
Glossary
High Availability Framework
Introduction
Where's the problem?
A software foundation for HA
What's in the High Availability Framework?
What you get
The QNX Approach to HA
The reset "solution"
Traditional RTOS architecture
Modularity means granularity
Intrinsic HA
Using the High Availability Manager
Introduction
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
Introduction
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_entity_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 User's Guide
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
Hardware platform
Timing requirements
Data storage
Hardware initialization
Hardware Access
Transition to full driver
Sample minidriver
Implementation notes
The minidriver handler function
Adding your minidriver to the system
Build startup
Test application: mini-peeker.c
Transition from minidriver to full driver
Minidriver implementation notes
Customizing the startup program that contains your minidriver code
Making a boot image that includes your minidriver
Debugging from within the minidriver
Displaying information about minidriver status (after the kernel boots)
Making the transition to the real driver
APIs and Datatypes
mdriver_add()
mdriver_max
mdriver_max
mdriver_entry
Sample Drivers for Instant Device Activation
FreeScale Media5200b sample minidriver
The minidriver handler function
Adding your minidriver to the system
Build startup
Testing your minidriver
Sample timings
Renesas Biscayne minidriver
The minidriver handler function
Adding your minidriver to the system
Build startup
Testing your minidriver
Sample Timings
OMAP minidriver
Adding your minidriver to the system
Build startup
Testing your minidriver
Sample timings
Hardware Interaction within the Minidriver
Persistent Publish/Subscribe Developer's Guide
QNX 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
Blocking and nonblocking reads
Getting notifications of data on a file descriptor
io_notify() functionality
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
Critical option
Filtering notifications
Object and attribute qualifiers
Nonpersistence qualifier
Item qualifier
Reading and writing from the command line
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()
Technotes
About These Technotes
IP Tunneling (Generic Routing Encapsulation)
How do I use it?
A more typical example
Final tidbits
PPPOE and Path MTU Discovery
Making Multiple Images
What's a multiple image?
Restrictions on XIP image filesystems
Mounting an IFS
Using a second IFS
Example: mounting an IFS on the MGT5200 Total board
Sample buildfiles
os1.build
os2.build
Programming into flash
Putting the images together
Test program
See also
QNX Neutrino and QNX4 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
Unusual flash configurations
MTD source code
Manufacturer
Choosing read() callout
Choosing ident() callout
Choosing write() callout
Choosing erase() callout
Choosing sync() callout
Choosing suspend() andresume() callouts
Choosing islock(), lock(),unlock(), unlockall() callouts
Asynchronous Messaging
Overview
Asynchronous-messaging functions
Examples
Example 1: Sending one message
Example 2: Sending more than one message at a time
Example 3: Flushing
Example 4: Setting up an event that triggers the copy
Example 5: Using time as the trigger
Example 6: Client and server processes
Reading a Kernel Dump
I2C (Inter-Integrated Circuit) Framework
Overview
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_SEND
DCMD_I2C_RECV
DCMD_I2C_SENDRECV
DCMD_I2C_SET_BUS_SPEED
DCMD_I2C_SET_SLAVE_ADDR (deprecated)
DCMD_I2C_MASTER_SEND (deprecated)
DCMD_I2C_MASTER_RECV (deprecated)
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
High-performance NICs
Low-performance NICs
Tuning high-performance NIC drivers
PHY probing
Speed and duplex
Migrating to QNX Neutrino for ARMv6-Processor-Based Boards
Overview
BSP configuration
armv_chip
armv_cache
armv_pte
setup()
Behavior of procnto-v6 shm_ctl()
Using ARMv6 instructions
Supporting Vector Floating Point Functionality for ARM Processors
Overview
Restrictions on VFP usage
BSP configuration
Using VFP instructions
How to create a Runtime Kit from the QNX Software Development Platform
Introduction
Organization of the Runtime Kit
Standard installation steps
Creating the archives
Creating the CD
Sample installation script
Backtraces
Overview
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
QNX support for using Freescale e500 SPE
Configuring for floating point
Configuring for the command line
Reloadable Image Filesystems
Introduction
Command-line options
Kernel restoration
Secondary IFS restoration
Examples
Kernel restoration
Secondary IFS restoration
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
Introduction
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
Process Performance State Manager (PPSM)
PPSM functions
ppsm_init()
ppsm_fini()
ppsm_sys_mode()
ppsm_set_polling_interval()
ppsm_set_threshold()
ppsm_get_cpuload()
ppsm_get_cpufreq()
ppsm_speedstep_enable()
ppsm_speedstep_disable()
ppsm_set_policy()
ppsm_set_notify_handler()
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
System Architecture
The Philosophy of QNX Neutrino
An embeddable POSIX OS?
Product scaling
Why POSIX for embedded systems?
Multiple OS sources
Portability of development staff
Development environment: native and cross development
Why QNX Neutrino for embedded systems?
Microkernel architecture
The OS as a team of processes
A true kernel
System processes
System processes vs user-written processes
Device drivers
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 QNX Neutrino
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)
Neutrino's microkernel approach
Booting an x86 SMP system
Booting a PowerPC or MIPS 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
Ordering mountpoints
Single-device mountpoints
Unioned filesystem mountpoints
Why overlay mountpoints?
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)
Inside a transaction
Types of storage media
Reliability features
Dynamic wear-leveling
Static wear-leveling
CRC error detection
ECC error correction
Read degradation monitoring with automatic refresh
Transaction rollback
Atomic file operations
Automatic file defragmentation
QNX 4 filesystem
Power-Safe filesystem
Problems with existing disk filesystems
Copy-on-write filesystem
Performance
DOS Filesystem
CD-ROM filesystem
FFS3 filesystem
Customization
Organization
Raw partitions
Filesystem partitions
Mountpoints
Features
POSIX
Background reclaim
Fault recovery
Compression/decompression
Flash errors
Endian awareness
Utilities
System calls
NFS filesystem
CIFS filesystem
Linux Ext2 filesystem
Universal Disk Format (UDF) filesystem
Apple Macintosh HFS and HFS Plus
Windows NT filesystem
Virtual inflator filesystem
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
User's Guide
Getting to Know the OS
Neutrino compared with UNIX
Neutrino compared with Microsoft Windows
Limitations
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
Neutrino for MS-DOS users
DOS commands and their Neutrino equivalents
The diskcomp DOS command
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
A note about cd
No drive letters
Pathnames that begin with a dot
Extensions
Pathname-space mapping
Filename rules
Where everything is stored
/
/bin
/boot
/dev
/etc
/fs
/home
/lib
/proc
/root
/sbin
/tmp
/usr
/var
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
Controlling How Neutrino Starts
What happens when you boot?
Loading a Neutrino image
Power-Safe filesystem
QNX 4 filesystem
diskboot
.diskroot
/etc/system/sysinit
Device enumeration
oem file or directory
overrides file or directory
Host-specific enumerators
/etc/rc.d/rc.sysinit
rc.local
tinit
Updating disk drivers
Applying a driver update patch after you've installed QNX Neutrino
Troubleshooting
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
Creating useqnet
Starting the network manager, protocols, and drivers
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
Establishing a PPPoE session
Starting a point-to-point connection over PPPoE session
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?
Connecting Hardware
PCI/AGP devices
CD-ROMs and DVDs
Floppy disks
Hard disks
EIDE
Troubleshooting for devb-eide
SCSI devices
SCSI RAID
LS-120
ORB
Zip and Jaz disks
Magnetic optical drives
RAM disks
Audio cards
ISA cards
PCI Cards
PCCARD and PCMCIA cards
USB devices
Printers
Touchscreens
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
Using CVS
CVS basics
Revisions
Basic operations
Repositories
Editors and CVS
Creating a repository
Getting files in and out of the repository
Putting changes back into the repository
Importing an existing source tree
Getting information on files
Changing files
More information on files: what changed and why
CVS and directory trees
Concurrent development: branching and merging
Branching
Merging
Removing and restoring files
Setting up a CVS server
Backing Up and Recovering Data
Backup strategies
Choosing backup storage media and location
Choosing a backup format
Controlling your backup
Archiving your data
Creating an archive
Extracting from an archive
Compressing an archive
Decompressing the archive
Storage choices
Remote backups
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
Neutrino security in general
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
Faster boot times
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
How small can you get?
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
Examples
Buildfile for an NFS-mounting target
qnxbasedma.build
Buildfile that doesn't use diskboot
.profile
.kshrc
Configuration files for spooler
Using lpr
Using NCFTP
Using SAMBA
PPP with CHAP authentication between two Neutrino boxes
Glossary
Starting to Program 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
Single threaded
Multi threaded
Back to processes and threads
Mutual exclusion
Priorities
Semaphores
A semaphore with a count of 1
A semaphore with a count greater than 1
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 Neutrino 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
Messaging fundamentals
A small microkernel and message passing
Message passing and client/server
Network-distributed message passing
What it means for you
The philosophy of Neutrino
Multiple threads
Server/subserver
Some examples
Send-driven (client/server)
Reply-driven (server/subserver)
An important subtlety
Multi-threaded server
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
Longer delays
Impact on ConnectAttach()
Impact on MsgDeliverEvent()
Impact on MsgReply(), MsgRead(), and MsgWrite()
Impact on MsgReceive()
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
Getting and setting
Adjusting the timebase
An accurate timestamp
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
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
Attaching with InterruptAttachEvent()
Attaching with InterruptAttach()
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
Union'd 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_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
OCB monitor
More efficient allocation
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 Neutrino
Similarities
Improvements
Embeddability
Thread support
Message passing
Pulses and events
Device driver model
MIPS, PPC, SH4, and 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 QNX- or Neutrino-specific code
Header files in /usr/include
Self-hosted or cross-development
A simple example
Self-hosted
Cross-development with network filesystem
Cross-development with debugger
Download/upload facility
Cross-development, deeply embedded
Step 1: Build a Neutrino system image.
Step 2: Transfer the system image to the target.
Step 3: Boot the target.
Using libraries
Static and dynamic libraries
Static libraries
Dynamic libraries
dlopen()
Platform-specific library locations
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
Debugging in a self-hosted environment
Debugging in a cross-development environment
The GNU debugger (gdb)
The process-level debug agent
Serial connection
TCP/IP connection
A simple debug session
Configure the target
Compile for debugging
Start the debug session
Get help
Sample boot image
Debugging using libmudflap
Programming Overview
Process model
An application as a set of processes
Some definitions
Priorities and scheduling
Priority range
BLOCKED and READY states
The ready queue
Suspending a running thread
When the thread is blocked
When the thread is preempted
When the thread yields
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
Normal process termination
Abnormal 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
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
An example of privilege separation
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_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 Neutrino Microkernel's Concept of Time
Oversleeping: errors in delays
Delaying for a second: inaccurate code
Timer quantization error
The tick and the hardware timer
Delaying for a second: better code
Another hiccup with hardware timers
Where's the catch?
What time is it?
Clocks, timers, and power management
Transparent Distributed Processing Using Qnet
What is Qnet?
Benefits of Qnet
What works best
What type of application is well-suited for Qnet?
How does it work?
Locating services using GNS
Different modes of GNS
Registering a service
GNS path namespace
Deploying the gns processes
Quality of Service (QoS) and multiple paths
QoS policies
loadbalance
preferred
exclusive
Specifying QoS policies
Symbolic links
Designing a system using Qnet
The product: a telecom box
Developing your distributed system
Configuring the data cards
Configuring the controller card
Enhancing reliability via multiple transport buses
Redundancy and scalability using multiple controller cards
Redundancy
Scalability
Autodiscovery vs static
When should you use Qnet, TCP/IP, or NFS?
Drivers for Qnet
Writing an Interrupt Handler
What's an interrupt?
Interrupts on multicore systems
Attaching and detaching interrupts
Interrupt Service Routine (ISR)
Determining the source of the interrupt
Edge-triggered IRQ
Level-sensitive IRQ
Servicing the hardware
Safe functions
Updating common data structures
Signalling 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: Making Memory Errors a Thing of the Past
Dynamic memory management
Arena allocations
Small block configuration
Heap corruption
Contiguous memory blocks
Multithreaded programs
Allocation strategy
Common sources
Overrun and underrun errors
Releasing memory
Using uninitialized or stale pointers
Detecting and reporting errors
Using the malloc debug library
What's checked?
Allocating memory
Reallocating memory
Releasing memory
Controlling the level of checking
Description of optional checks
Forcing verification
Specifying an error handler
Other environment variables
Caveats
Manual checking (bounds checking)
Getting pointer information
Memory leaks
Tracing
Causing a trace and giving results
Analyzing dumps
Compiler support
C++ issues
Clean C
C++ example
Freedom from Hardware and Platform Dependencies
Common problems
I/O space vs memory-mapped
Big-endian vs little-endian
Typecast mangling
Hardware access
Network transparency
Alignment and structure packing
Atomic operations
Solutions
Determining endianness
Swapping data if required
ENDIAN_LE16()
ENDIAN_LE32()
ENDIAN_LE64()
ENDIAN_BE16()
ENDIAN_BE32()
ENDIAN_BE64()
Accessing unaligned data
UNALIGNED_RET16()
UNALIGNED_RET32()
UNALIGNED_RET64()
UNALIGNED_PUT16()
UNALIGNED_PUT32()
UNALIGNED_PUT64()
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
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
MIPS machines and the function stack
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
Advanced Qnet Topics
Low-level discussion of Qnet principles
Details of Qnet data communication
Node descriptors
netmgr_strtond()
netmgr_ndtostr()
netmgr_remote_nd()
Booting over the network
Overview
Creating directory and setting up configuration files
Building an OS image
Booting the client
Troubleshooting
What are the limitations...
Glossary
The QNX Neutrino Cookbook
About This Guide
Foreword to the First Edition by Brian Stecher
Preface to the First Edition by Rob Krten
What's in this book?
Philosophy
The Basics
High Availability
Design Philosophy
Recipes
Web-Counter Resource Manager
ADIOS — Analog / Digital I/O Server
RAM-disk Filesystem Manager
The tar Filesystem Manager
References
What's not in this book?
Other references
Thanks!
Century Aluminum
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 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
Overview
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
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
The iofunc layer
The resmgr layer
The dispatch layer
The thread pool layer
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
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
Returning with an error
Returning using an IOV array that points to your data
Returning with a single buffer containing data
Returning success but with no data
Getting the resource manager library to do the reply
Performing the reply in the server
Leaving the client blocked, replying later
Returning and telling the library to do the default action
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
Atomic operations
Bandwidth considerations
The library's combine-message handling
Component responses
Component data access
Locking and unlocking the attribute structure
Connect message types
_IO_CONNECT_COMBINE_CLOSE
_IO_CONNECT_COMBINE
Extending the POSIX-Layer Data Structures
Overview
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()
Signals, Timeouts, and Interrupts
Handling client unblocking due to signals or timeouts
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
Multicore Processing User's Guide
What is Multicore Processing?
Developing Multicore Systems
The impact of multicore
Thread affinity
Multicore and synchronization primitives
Multicore and FIFO scheduling
Multicore and interrupts
Multicore and atomic operations
Designing with multiprocessing in mind
Use the multicore primitives
Assume that threads really do run concurrently
Break the problem down
Glossary
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
Adaptive Partitioning User's Guide
What is Adaptive Partitioning?
What are partitions and what is adaptive partitioning?
System and user requirements
The 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 QNX 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 system considerations
Glossary
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_unlink()
snd_pcm_voice_conversion_t
snd_pcm_write()
snd_strerror()
snd_switch_t
wave.c example
waverec.c example
mixer_ctl.c example
ALSA and libasound.so
What's New in This Release?
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
Building Embedded Systems
About This Book
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 Neutrino
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
BSP Overview
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 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 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
Introduction
Initialize hardware
Initialize system page
Initialize callouts
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.ppc (deprecated)
un.ppc.kerinfo
un.mips
un.arm
un.sh
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()
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()
mips41xx_set_clock_freqs()
openbios_init_raminfo()
pcnet_reset()
ppc400_pit_init_qtime()
ppc405_set_clock_freqs()
ppc600_set_clock_freqs()
ppc700_init_l2_cache()
ppc800_pit_init_qtime()
ppc800_set_clock_freqs()
ppc_dec_init_qtime()
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
PPC chips support
Adding a new CPU to the startup library
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
Introduction
Before you design your system
Processor speed
Memory requirements
Peripherals
Debugging
Field upgrades
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
NMI
Design do's and don'ts
Do:
Don't:
Sample Buildfiles
Introduction
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
Specifying the processor
Examples
Specifying the startup program
Specifying the serial device
Glossary
High Availability Framework
Introduction
Where's the problem?
A software foundation for HA
What's in the High Availability Framework?
What you get
The QNX Approach to HA
The reset "solution"
Traditional RTOS architecture
Modularity means granularity
Intrinsic HA
Using the High Availability Manager
Introduction
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
Introduction
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_entity_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 User's Guide
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
Hardware platform
Timing requirements
Data storage
Hardware initialization
Hardware Access
Transition to full driver
Sample minidriver
Implementation notes
The minidriver handler function
Adding your minidriver to the system
Build startup
Test application: mini-peeker.c
Transition from minidriver to full driver
Minidriver implementation notes
Customizing the startup program that contains your minidriver code
Making a boot image that includes your minidriver
Debugging from within the minidriver
Displaying information about minidriver status (after the kernel boots)
Making the transition to the real driver
APIs and Datatypes
mdriver_add()
mdriver_max
mdriver_max
mdriver_entry
Sample Drivers for Instant Device Activation
FreeScale Media5200b sample minidriver
The minidriver handler function
Adding your minidriver to the system
Build startup
Testing your minidriver
Sample timings
Renesas Biscayne minidriver
The minidriver handler function
Adding your minidriver to the system
Build startup
Testing your minidriver
Sample Timings
OMAP minidriver
Adding your minidriver to the system
Build startup
Testing your minidriver
Sample timings
Hardware Interaction within the Minidriver
Persistent Publish/Subscribe Developer's Guide
QNX 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
Blocking and nonblocking reads
Getting notifications of data on a file descriptor
io_notify() functionality
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
Critical option
Filtering notifications
Object and attribute qualifiers
Nonpersistence qualifier
Item qualifier
Reading and writing from the command line
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()
Technotes
About These Technotes
IP Tunneling (Generic Routing Encapsulation)
How do I use it?
A more typical example
Final tidbits
PPPOE and Path MTU Discovery
Making Multiple Images
What's a multiple image?
Restrictions on XIP image filesystems
Mounting an IFS
Using a second IFS
Example: mounting an IFS on the MGT5200 Total board
Sample buildfiles
os1.build
os2.build
Programming into flash
Putting the images together
Test program
See also
QNX Neutrino and QNX4 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
Unusual flash configurations
MTD source code
Manufacturer
Choosing read() callout
Choosing ident() callout
Choosing write() callout
Choosing erase() callout
Choosing sync() callout
Choosing suspend() andresume() callouts
Choosing islock(), lock(),unlock(), unlockall() callouts
Asynchronous Messaging
Overview
Asynchronous-messaging functions
Examples
Example 1: Sending one message
Example 2: Sending more than one message at a time
Example 3: Flushing
Example 4: Setting up an event that triggers the copy
Example 5: Using time as the trigger
Example 6: Client and server processes
Reading a Kernel Dump
I2C (Inter-Integrated Circuit) Framework
Overview
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_SEND
DCMD_I2C_RECV
DCMD_I2C_SENDRECV
DCMD_I2C_SET_BUS_SPEED
DCMD_I2C_SET_SLAVE_ADDR (deprecated)
DCMD_I2C_MASTER_SEND (deprecated)
DCMD_I2C_MASTER_RECV (deprecated)
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
High-performance NICs
Low-performance NICs
Tuning high-performance NIC drivers
PHY probing
Speed and duplex
Migrating to QNX Neutrino for ARMv6-Processor-Based Boards
Overview
BSP configuration
armv_chip
armv_cache
armv_pte
setup()
Behavior of procnto-v6 shm_ctl()
Using ARMv6 instructions
Supporting Vector Floating Point Functionality for ARM Processors
Overview
Restrictions on VFP usage
BSP configuration
Using VFP instructions
How to create a Runtime Kit from the QNX Software Development Platform
Introduction
Organization of the Runtime Kit
Standard installation steps
Creating the archives
Creating the CD
Sample installation script
Backtraces
Overview
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
QNX support for using Freescale e500 SPE
Configuring for floating point
Configuring for the command line
Reloadable Image Filesystems
Introduction
Command-line options
Kernel restoration
Secondary IFS restoration
Examples
Kernel restoration
Secondary IFS restoration
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
Introduction
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
Process Performance State Manager (PPSM)
PPSM functions
ppsm_init()
ppsm_fini()
ppsm_sys_mode()
ppsm_set_polling_interval()
ppsm_set_threshold()
ppsm_get_cpuload()
ppsm_get_cpufreq()
ppsm_speedstep_enable()
ppsm_speedstep_disable()
ppsm_set_policy()
ppsm_set_notify_handler()
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 Neutrino System References
Addon Interfaces Library Reference
Overview
An example
Library components
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
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()
asyncmsg_channel_create()
asyncmsg_channel_destroy()
asyncmsg_connect_attach()
asyncmsg_connect_attr()
asyncmsg_connect_detach()
_asyncmsg_connection_attr
asyncmsg_flush()
asyncmsg_free()
asyncmsg_get()
asyncmsg_malloc()
asyncmsg_put(), asyncmsg_putv()
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()
brk()
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
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()
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()
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()
fp_setenv()
fpathconf()
fprintf()
fputc()
fputchar()
fputs()
fputwc()
fputws()
fread()
free()
freeaddrinfo()
freeifaddrs()
freopen(), freopen64()
frexp(), frexpf()
fscanf()
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_item()
hwi_find_tag()
hwi_next_item()
hwi_next_tag()
hwi_off2tag()
hwi_tag2off()
hypot(), hypotf()
I
ICMP
ICMP6
if_freenameindex()
if_indextoname()
if_nameindex()
if_nametoindex()
ifaddrs
ilogb(), ilogbf()
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_file()
img_resize_fs()
img_rotate_ortho()
img_t
img_write()
img_write_file()
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()
InterruptHookIdle()
InterruptHookTrace()
InterruptLock()
InterruptMask()
InterruptStatus()
InterruptUnlock()
InterruptUnmask()
InterruptWait(), InterruptWait_r()
_intr_v86()
_io_connect
_io_connect_ftype_reply
_io_connect_link_reply
io_close()
io_open()
ioctl(), ioctl_socket()
iofdinfo()
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_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()
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_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_addopen()
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_daemon()
procmgr_event_notify()
procmgr_event_notify_add()
procmgr_event_notify_delete()
procmgr_event_trigger()
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()
read_main_config_file()
readblock()
readcond()
readdir(), readdir64()
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
sbrk()
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_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()
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()
slog2c()
slog2f()
slog2fa()
slog2_get_verbosity()
slog2_register()
slog2_reset()
slog2_set_default_buffer()
slog2_set_verbosity()
slogb()
slogf()
slogi()
_smalloc()
snmp_close()
snmp_free_pdu()
snmp_open()
snmp_pdu
snmp_pdu_create()
snmp_read()
snmp_select_info()
snmp_send()
snmp_session
snmp_timeout()
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()
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()
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(), TimerCreate_r()
TimerDestroy(), TimerDestroy_r()
TimerInfo(), TimerInfo_r()
TimerSettime(), TimerSettime_r()
TimerTimeout(), TimerTimeout_r()
times()
timespec
timespec2nsec()
timezone
tm
tmpfile(), tmpfile64()
tmpnam()
tolower()
toupper()
towctrans()
towlower()
towupper()
trace_func_enter()
trace_func_exit()
trace_here()
trace_logb()
trace_logbc()
trace_logf()
trace_logi()
trace_nlogf()
trace_vnlogf()
TraceEvent()
traceparser()
traceparser_cs()
traceparser_cs_range()
traceparser_debug()
traceparser_destroy()
traceparser_get_info()
traceparser_init()
truncate(), truncate64()
ttyname()
ttyname_r()
tzname
tzset()
U
ualarm()
UDP
ultoa(), ulltoa()
umask()
umount()
UNALIGNED_PUT16()
UNALIGNED_PUT32()
UNALIGNED_PUT64()
UNALIGNED_RET16()
UNALIGNED_RET32()
UNALIGNED_RET64()
uname()
ungetc()
ungetwc()
UNIX
unlink()
unlockpt()
unsetenv()
usleep()
utime()
utimes()
utmp
utmpname()
utoa()
V
va_arg()
va_copy()
va_end()
va_start()
valloc()
verr(), verrx()
vfork()
vfprintf()
vfscanf()
vfwprintf()
vfwscanf()
vprintf()
vscanf()
vslog2f()
vslogf()
vsnprintf()
vsprintf()
vsscanf()
vswprintf()
vswscanf()
vsyslog()
vwarn(), vwarnx()
vwprintf()
vwscanf()
W
wait()
wait3()
wait4()
waitfor()
waitid()
waitpid()
warn(), warnx()
wcrtomb()
wcscat()
wcschr()
wcscmp()
wcscoll()
wcscpy()
wcscspn()
wcsftime()
wcslen()
wcsncat()
wcsncmp()
wcsncpy()
wcspbrk()
wcsrchr()
wcsrtombs()
wcsspn()
wcsstr()
wcstod(), wcstof(), wcstold()
wcstoimax(), wcstoumax()
wcstok()
wcstol(), wcstoll()
wcstombs()
wcstoul(), wcstoull()
wcsxfrm()
wctob()
wctomb()
wctrans()
wctype()
wmemchr()
wmemcmp()
wmemcpy()
wmemmove()
wmemset()
wordexp()
wordfree()
wprintf()
write()
writeblock()
writev()
wscanf()
X
Y
y0(), y0f()
y1(), y1f()
yn(), ynf()
Z
SOCKS — A Basic Firewall
About SOCKS
How to SOCKSify a client
What SOCKS expects
Full Safety Information
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
What's New in this Reference?
What's new in QNX Neutrino 6.5.0 Service Pack 1?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.5.0?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.4.1?
New entries
Deprecated content
Changed content
Errata
What's new in QNX Neutrino 6.4.0?
New entries
Deprecated content
Changed content
Errata
What's new in QNX Neutrino 6.3.2?
Errata
What's new in the QNX Neutrino Core OS 6.3.2?
New entries
Changed content
What's new in QNX Neutrino 6.3.0 Service Pack 2?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.3.0 Service Pack 1?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.3.0?
New entries
Deprecated content
What's new in QNX Neutrino 6.2.1?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.2?
New entries
Deprecated content
Errata
What's new in QNX Neutrino 6.1.0?
New entries
Deprecated content
Glossary
Core Networking Stack
User's Guide
Overview
What's new in the networking stack?
Architecture of io-pkt
Threading model
Threading priorities
Components of core networking
Packet Filtering
Packet Filters
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
Supported hardware crypto engines
Wi-Fi Configuration Using WPA and WEP
802.11 a/b/g Wi-Fi Support
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
Background on WPA
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
DHCP server configuration file
Launching the DHCP relay agent on your gateway
Configuring an access point as a router
Transparent Distributed Processing
TDP and io-pkt
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
Migrating from io-net
Overview
Compatibility between io-net and io-pkt
Compatibility issues
Behavioral differences
Simultaneous support
Discontinued features
Using pfil hooks to implement an io-net filter
Glossary
Porting Drivers from io-net to io-pkt
Porting an io-net driver to io-pkt
Shim and io-net drivers
Differences between an io-net driver and an io-pkt driver
Initialization
Transmit
Receive
Link State Change Handling
Control (e.g. devctl() and ioctl())
Shutdown
Threading
Mutexing
Dinkum C and C++ Libraries
Dinkum C99 Library
<assert.h>
assert
<complex.h>
abs, fabs, cabs, cabsf, cabsl
acos, cacos, cacosf, cacosl
acosh, cacosh, cacoshf, cacoshl
arg, carg, cargf, cargl
asin, casin, casinf, casinl
asinh, casinh, casinhf, casinhl
atan, catan, catanf, catanl
atanh, catanh, catanhf, catanhl
complex
_Complex_I
conj, conjf, conjl
cos, ccos, ccosf, ccosl
cosh, ccosh, ccoshf, ccoshl
cproj, cprojf, cprojl
exp, cexp, cexpf, cexpl
I
imag, cimag, cimagf, cimagl
imaginary
_Imaginary_I
log, clog, clogf, clogl
pow, cpow, cpowf, cpowl
real, creal, crealf, creall
sin, csin, csinf, csinl
sinh, csinh, csinhf, csinhl
sqrt, csqrt, csqrtf, csqrtl
tan, ctan, ctanf, ctanl
tanh, ctanh, ctanhf, ctanhl
<ctype.h>
isalnum
isalpha
isblank
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
tolower
toupper
<errno.h>
EDOM
EILSEQ
ERANGE
errno
<fenv.h>
FE_ALL_EXCEPT
FE_DFL_ENV
FE_DIVBYZERO
FE_DOWNWARD
FE_INEXACT
FE_INVALID
FE_TONEAREST
FE_TOWARDZERO
FE_OVERFLOW
FE_UNDERFLOW
FE_UPWARD
fenv_t
feclearexcept
fegettrapenable
fegetenv
fegetexceptflag
fegetround
feholdexcept
feraiseexcept
fesetenv
fesettrapenable
fesetexceptflag
fesetround
fetestexcept
feupdateenv
fexcept_t
<float.h>
DBL_DIG
DBL_EPSILON
DBL_MANT_DIG
DBL_MAX
DBL_MAX_10_EXP
DBL_MAX_EXP
DBL_MIN
DBL_MIN_10_EXP
DBL_MIN_EXP
DECIMAL_DIG
FLT_DIG
FLT_EPSILON
FLT_EVAL_METHOD
FLT_MANT_DIG
FLT_MAX
FLT_MAX_10_EXP
FLT_MAX_EXP
FLT_MIN
FLT_MIN_10_EXP
FLT_MIN_EXP
FLT_RADIX
FLT_ROUNDS
LDBL_DIG
LDBL_EPSILON
LDBL_MANT_DIG
LDBL_MAX
LDBL_MAX_10_EXP
LDBL_MAX_EXP
LDBL_MIN
LDBL_MIN_10_EXP
LDBL_MIN_EXP
<inttypes.h>
imaxabs, abs
imaxdiv, div
imaxdiv_t
PRId8, PRId16, PRId32, PRId64
PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64
PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64
PRIdMAX
PRIdPTR
PRIi8, PRIi16, PRIi32, PRIi64
PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64
PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64
PRIiMAX
PRIiPTR
PRIo8, PRIo16, PRIo32, PRIo64
PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64
PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64
PRIoMAX
PRIoPTR
PRIu8, PRIu16, PRIu32, PRIu64
PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64
PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64
PRIuMAX
PRIuPTR
PRIx8, PRIx16, PRIx32, PRIx64
PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64
PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64
PRIxMAX
PRIxPTR
PRIX8, PRIX16, PRIX32, PRIX64
PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64
PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64
PRIXMAX
PRIXPTR
SCNd8, SCNd16, SCNd32, SCNd64
SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64
SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64
SCNdMAX
SCNdPTR
SCNi8, SCNi16, SCNi32, SCNi64
SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64
SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64
SCNiMAX
SCNiPTR
SCNo8, SCNo16, SCNo32, SCNo64
SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64
SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64
SCNoMAX
SCNoPTR
SCNu8, SCNu16, SCNu32, SCNu64
SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64
SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64
SCNuMAX
SCNuPTR
SCNx8, SCNx16, SCNx32, SCNx64
SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64
SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64
SCNxMAX
SCNxPTR
strtoimax
strtoumax
wcstoimax
wcstoumax
<iohw.h>
<iso646.h>
and
and_eq
bitand
bitor
compl
not
not_eq
or
or_eq
xor
xor_eq
<limits.h>
CHAR_BIT
CHAR_MAX
CHAR_MIN
INT_MAX
INT_MIN
LLONG_MAX
LLONG_MIN
LONG_MAX
LONG_MIN
MB_LEN_MAX
SCHAR_MAX
SCHAR_MIN
SHRT_MAX
SHRT_MIN
UCHAR_MAX
UINT_MAX
ULLONG_MAX
ULONG_MAX
USHRT_MAX
<locale.h>
LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
lconv
localeconv
NULL
setlocale
<math.h>
abs, fabs, fabsf, fabsl
acos, acosf, acosl
acosh, acoshf, acoshl
asin, asinf, asinl
asinh, asinhf, asinhl
atan, atanf, atanl
atan2, atan2f, atan2l
atanh, atanhf, atanhl
cbrt, cbrtf, cbrtl
ceil, ceilf, ceill
copysign, copysignf, copysignl
cos, cosf, cosl
cosh, coshf, coshl
double_t
erf, erff, erfl
erfc, erfcf, erfcl
exp, expf, expl
expm1, expm1f, expm1l
exp2, exp2f, exp2l
fdim, fdimf, fdiml
float_t
floor, floorf, floorl
fma, fmaf, fmal
fmax, fmaxf, fmaxl
fmin, fminf, fminl
fmod, fmodf, fmodl
fpclassify
FP_FAST_FMA
FP_FAST_FMAF
FP_FAST_FMAL
FP_ILOGB0
FP_ILOGBNAN
FP_INFINITE
FP_NAN
FP_NORMAL
FP_SUBNORMAL
FP_ZERO
frexp, frexpf, frexpl
HUGE_VAL
HUGE_VALF
HUGE_VALL
hypot, hypotf, hypotl
ilogb, ilogbf, ilogbl
INFINITY
isfinite
isgreater
isgreaterequal
isinf
isless
islessequal
islessgreater
isnan
isnormal
isunordered
ldexp, ldexpf, ldexpl
lgamma, lgammaf, lgammal
llrint, llrintf, llrintl
llround, llroundf, llroundl
log, logf, logl
log10, log10f, log10l
log1p, log1pf, log1pl
log2, log2f, log2l
logb, logbf, logbl
lrint, lrintf, lrintl
lround, lroundf, lroundl
MATH_ERRNO
MATH_ERREXCEPT
math_errhandling
modf, modff, modfl
NAN
nan, nanf, nanl
nearbyint, nearbyintf, nearbyintl
nextafter, nextafterf, nextafterl
nexttoward, nexttowardf, nexttowardl
pow, powf, powl
remainder, remainderf, remainderl
remquo, remquof, remquol
rint, rintf, rintl
round, roundf, roundl
scalbln, scalblnf, scalblnl
scalbn, scalbnf, scalbnl
signbit
sin, sinf, sinl
sinh, sinhf, sinhl
sqrt, sqrtf, sqrtl
tan, tanf, tanl
tanh, tanhf, tanhl
tgamma, tgammaf, tgammal
trunc, truncf, truncl
<setjmp.h>
jmp_buf
longjmp
setjmp
<signal.h>
raise
sig_atomic_t
SIGABRT
SIGFPE
SIGILL
SIGINT
signal
SIGSEGV
SIGTERM
SIG_DFL
SIG_ERR
SIG_IGN
<stdarg.h>
va_arg
va_copy
va_end
va_list
va_start
<stdbool.h>
__bool_true_false_are_defined
bool
false
true
<stddef.h>
NULL
offsetof
ptrdiff_t
size_t
wchar_t
<stdint.h>
INT8_C, INT16_C, INT32_C, INT64_C
INT8_MAX, INT16_MAX, INT32_MAX, INT64_MAX
INT8_MIN, INT16_MIN, INT32_MIN, INT64_MIN
int8_t, int16_t, int32_t, int64_t
INT_FAST8_MAX, INT_FAST16_MAX, INT_FAST32_MAX, INT_FAST64_MAX
INT_FAST8_MIN, INT_FAST16_MIN, INT_FAST32_MIN, INT_FAST64_MIN
int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t
INT_LEAST8_MAX, INT_LEAST16_MAX, INT_LEAST32_MAX, INT_LEAST64_MAX
INT_LEAST8_MIN, INT_LEAST16_MIN, INT_LEAST32_MIN, INT_LEAST64_MIN
int_least8_t, int_least16_t, int_least32_t, int_least64_t
INTMAX_C
INTMAX_MAX
INTMAX_MIN
intmax_t
INTPTR_MAX
INTPTR_MIN
intptr_t
PTRDIFF_MAX
PTRDIFF_MIN
SIG_ATOMIC_MAX
SIG_ATOMIC_MIN
SIZE_MAX
UINT8_C, UINT16_C, UINT32_C, UINT64_C
UINT8_MAX, UINT16_MAX, UINT32_MAX, UINT64_MAX
uint8_t, uint16_t, uint32_t, uint64_t
UINT_FAST8_MAX, UINT_FAST16_MAX, UINT_FAST32_MAX, UINT_FAST64_MAX
uint_fast8_t, uint_fast16_t, uint_fast32_t, uint_fast64_t
UINT_LEAST8_MAX, UINT_LEAST16_MAX, UINT_LEAST32_MAX, UINT_LEAST64_MAX
uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t
UINTMAX_C
UINTMAX_MAX
uintmax_t
UINTPTR_MAX
uintptr_t
WCHAR_MAX
WCHAR_MIN
WINT_MAX
WINT_MIN
<stdio.h>
BUFSIZ
clearerr
EOF
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
FILE
FILENAME_MAX
fopen
FOPEN_MAX
fpos_t
fprintf
fputc
fputs
fread
freopen
fscanf
fseek
fsetpos
ftell
fwrite
getc
getchar
gets
_IOFBF
_IOLBF
_IONBF
L_tmpnam
NULL
perror
printf
putc
putchar
puts
remove
rename
rewind
scanf
SEEK_CUR
SEEK_END
SEEK_SET
setbuf
setvbuf
size_t
snprintf
sprintf
sscanf
stderr
stdin
stdout
tmpfile
TMP_MAX
tmpnam
ungetc
vfprintf
vfscanf
vprintf
vscanf
vsnprintf
vsprintf
vsscanf
<stdlib.h>
abort
abs
atexit
atof
atoi
atol
atoll
bsearch
calloc
div
div_t
exit
_Exit
EXIT_FAILURE
EXIT_SUCCESS
free
getenv
labs
llabs
ldiv
lldiv
ldiv_t
lldiv_t
malloc
MB_CUR_MAX
mblen
mbstowcs
mbtowc
NULL
qsort
rand
RAND_MAX
realloc
size_t
srand
strtod
strtof
strtol
strtold
strtoll
strtoul
strtoull
system
wchar_t
wcstombs
wctomb
<string.h>
memchr
memcmp
memcpy
memmove
memset
NULL
size_t
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtok
strxfrm
<tgmath.h>
acos
acosh
carg
asin
asinh
atan
atan2
atanh
cbrt
ceil
cimag
conj
copysign
cos
cosh
cproj
creal
erf
erfc
exp
exp2
expm1
fabs
fdim
floor
fma
fmax
fmin
fmod
frexp
hypot
ilogb
ldexp
lgamma
llrint
llround
log
log10
log1p
log2
logb
lrint
lround
modf
nearbyint
nextafter
nexttoward
pow
remainder
remquo
rint
round
scalbln
scalbn
sin
sinh
sqrt
tan
tanh
tgamma
trunc
<time.h>
asctime
clock
CLOCKS_PER_SEC
clock_t
ctime
difftime
gmtime
localtime
mktime
NULL
size_t
strftime
time
time_t
tm
<uchar.h>
c16rtomb
c32rtomb
char16_t
char32_t
mbrtoc16
mbrtoc32
mbstate_t
NULL
size_t
__STDC_UTF_16__
__STDC_UTF_32__
<wchar.h>
btowc
fgetwc
fgetws
fputwc
fputws
fwide
fwprintf
fwscanf
getwc
getwchar
mbrlen
mbrtowc
mbsinit
mbsrtowcs
mbstate_t
NULL
putwc
putwchar
size_t
swprintf
swscanf
tm
ungetwc
vfwprintf
vfwscanf
vswprintf
vswscanf
vwprintf
vwscanf
WCHAR_MAX
WCHAR_MIN
wchar_t
wcrtomb
wcscat
wcschr
wcscmp
wcscoll
wcscpy
wcscspn
wcsftime
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsrtombs
wcsspn
wcsstr
wcstod
wcstof
wcstok
wcstol
wcstold
wcstoll
wcstoul
wcstoull
wcsxfrm
wctob
WEOF
wint_t
wmemchr
wmemcmp
wmemcpy
wmemmove
wmemset
wprintf
wscanf
<wctype.h>
WEOF
iswalnum
iswalpha
iswblank
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
towctrans
towlower
towupper
wctrans
wctrans_t
wctype
wctype_t
wint_t
C Library Overview
Using Standard C Headers
C Library Conventions
Program Startup and Termination
Characters
Character Sets
Escape Sequences
Trigraphs
Multibyte Characters
Files and Streams
Text and Binary Streams
Byte and Wide Streams
Controlling Streams
Stream States
Formatted Output
Print Formats
Print Functions
Print Conversion Specifiers
Formatted Input
Scan Formats
Scan Functions
Scan Conversion Specifiers
Preprocessing
Expressions
Functions
Index
Dinkum C++ Library
<algorithm>
adjacent_find
binary_search
copy
copy_backward
count
count_if
equal
equal_range
fill
fill_n
find
find_end
find_first_of
find_if
for_each
generate
generate_n
includes
inplace_merge
iter_swap
lexicographical_compare
lower_bound
make_heap
max
max_element
merge
min
min_element
mismatch
next_permutation
nth_element
partial_sort
partial_sort_copy
partition
pop_heap
prev_permutation
push_heap
random_shuffle
remove
remove_copy
remove_copy_if
remove_if
replace
replace_copy
replace_copy_if
replace_if
reverse
reverse_copy
rotate
rotate_copy
search
search_n
set_difference
set_intersection
set_symmetric_difference
set_union
sort
sort_heap
stable_partition
stable_sort
swap
swap_ranges
transform
unique
unique_copy
upper_bound
<bitset>
bitset
bitset::any
bitset::bitset
bitset::count
bitset::element_type
bitset::flip
bitset::none
bitset::operator!=
bitset::operator&=
bitset::operator<<
bitset::operator<<=
bitset::operator==
bitset::operator>>
bitset::operator>>=
bitset::operator[]
bitset::operator^=
bitset::operator|=
bitset::operator~
bitset::reference
bitset::reset
bitset::set
bitset::size
bitset::test
bitset::to_string
bitset::to_ulong
operator&
operator|
operator^
operator<<
operator>>
<complex>
abs
arg
complex
complex::complex
complex::imag
complex::operator*=
complex::operator+=
complex::operator-=
complex::operator/=
complex::operator=
complex::real
complex::value_type
complex<double>
complex<float>
complex<long double>
conj
cos
cosh
exp
imag
log
log10
norm
operator!=
operator*
operator+
operator-
operator/
operator<<
operator==
operator>>
polar
pow
real
sin
sinh
sqrt
__STD_COMPLEX
tan
tanh
<deque>
deque
deque::allocator_type
deque::assign
deque::at
deque::back
deque::begin
deque::clear
deque::const_iterator
deque::const_pointer
deque::const_reference
deque::const_reverse_iterator
deque::deque
deque::difference_type
deque::empty
deque::end
deque::erase
deque::front
deque::get_allocator
deque::insert
deque::iterator
deque::max_size
deque::operator[]
deque::pointer
deque::pop_back
deque::pop_front
deque::push_back
deque::push_front
deque::rbegin
deque::reference
deque::rend
deque::resize
deque::reverse_iterator
deque::size
deque::size_type
deque::swap
deque::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
<exception>
bad_exception
exception
set_terminate
set_unexpected
terminate
terminate_handler
uncaught_exception
unexpected
unexpected_handler
<fstream>
basic_filebuf
basic_filebuf::basic_filebuf
basic_filebuf::char_type
basic_filebuf::close
basic_filebuf::int_type
basic_filebuf::is_open
basic_filebuf::off_type
basic_filebuf::open
basic_filebuf::overflow
basic_filebuf::pbackfail
basic_filebuf::pos_type
basic_filebuf::seekoff
basic_filebuf::seekpos
basic_filebuf::setbuf
basic_filebuf::sync
basic_filebuf::traits_type
basic_filebuf::underflow
basic_fstream
basic_fstream::basic_fstream
basic_fstream::close
basic_fstream::is_open
basic_fstream::open
basic_fstream::rdbuf
basic_ifstream
basic_ifstream::basic_ifstream
basic_ifstream::close
basic_ifstream::is_open
basic_ifstream::open
basic_ifstream::rdbuf
basic_ofstream
basic_ofstream::basic_ofstream
basic_ofstream::close
basic_ofstream::is_open
basic_ofstream::open
basic_ofstream::rdbuf
filebuf
fstream
ifstream
ofstream
wfstream
wifstream
wofstream
wfilebuf
<functional>
binary_function
binary_negate
bind1st
bind2nd
binder1st
binder2nd
const_mem_fun_t
const_mem_fun_ref_t
const_mem_fun1_t
const_mem_fun1_ref_t
divides
equal_to
greater
greater_equal
less
less_equal
logical_and
logical_not
logical_or
mem_fun
mem_fun_ref
mem_fun_t
mem_fun_ref_t
mem_fun1_t
mem_fun1_ref_t
minus
modulus
multiplies
negate
not1
not2
not_equal_to
plus
ptr_fun
unary_function
unary_negate
<hardware>
<hash_map>
hash_compare
hash_map
hash_map::allocator_type
hash_map::begin
hash_map::clear
hash_map::const_iterator
hash_map::const_pointer
hash_map::const_reference
hash_map::const_reverse_iterator
hash_map::count
hash_map::difference_type
hash_map::empty
hash_map::end
hash_map::equal_range
hash_map::erase
hash_map::find
hash_map::get_allocator
hash_map::hash_map
hash_map::insert
hash_map::iterator
hash_map::key_comp
hash_map::key_compare
hash_map::key_type
hash_map::lower_bound
hash_map::mapped_type
hash_map::max_size
hash_map::operator[]
hash_map::pointer
hash_map::rbegin
hash_map::reference
hash_map::rend
hash_map::reverse_iterator
hash_map::size
hash_map::size_type
hash_map::swap
hash_map::upper_bound
hash_map::value_comp
hash_map::value_compare
hash_map::value_type
hash_multimap
hash_multimap::allocator_type
hash_multimap::begin
hash_multimap::clear
hash_multimap::const_iterator
hash_multimap::const_pointer
hash_multimap::const_reference
hash_multimap::const_reverse_iterator
hash_multimap::count
hash_multimap::difference_type
hash_multimap::empty
hash_multimap::end
hash_multimap::equal_range
hash_multimap::erase
hash_multimap::find
hash_multimap::get_allocator
hash_multimap::hash_multimap
hash_multimap::insert
hash_multimap::iterator
hash_multimap::key_comp
hash_multimap::key_compare
hash_multimap::key_type
hash_multimap::lower_bound
hash_multimap::mapped_type
hash_multimap::max_size
hash_multimap::pointer
hash_multimap::rbegin
hash_multimap::reference
hash_multimap::rend
hash_multimap::reverse_iterator
hash_multimap::size
hash_multimap::size_type
hash_multimap::swap
hash_multimap::upper_bound
hash_multimap::value_comp
hash_multimap::value_compare
hash_multimap::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
<hash_set>
hash_multiset
hash_multiset::allocator_type
hash_multiset::begin
hash_multiset::clear
hash_multiset::const_iterator
hash_multiset::const_pointer
hash_multiset::const_reference
hash_multiset::const_reverse_iterator
hash_multiset::count
hash_multiset::difference_type
hash_multiset::empty
hash_multiset::end
hash_multiset::equal_range
hash_multiset::erase
hash_multiset::find
hash_multiset::get_allocator
hash_multiset::hash_multiset
hash_multiset::insert
hash_multiset::iterator
hash_multiset::key_comp
hash_multiset::key_compare
hash_multiset::key_type
hash_multiset::lower_bound
hash_multiset::max_size
hash_multiset::pointer
hash_multiset::rbegin
hash_multiset::reference
hash_multiset::rend
hash_multiset::reverse_iterator
hash_multiset::size
hash_multiset::size_type
hash_multiset::swap
hash_multiset::upper_bound
hash_multiset::value_comp
hash_multiset::value_compare
hash_multiset::value_type
hash_set
hash_set::allocator_type
hash_set::begin
hash_set::clear
hash_set::const_iterator
hash_set::const_pointer
hash_set::const_reference
hash_set::const_reverse_iterator
hash_set::count
hash_set::difference_type
hash_set::empty
hash_set::end
hash_set::equal_range
hash_set::erase
hash_set::find
hash_set::get_allocator
hash_set::hash_set
hash_set::insert
hash_set::iterator
hash_set::key_comp
hash_set::key_compare
hash_set::key_type
hash_set::lower_bound
hash_set::max_size
hash_set::pointer
hash_set::rbegin
hash_set::reference
hash_set::rend
hash_set::reverse_iterator
hash_set::size
hash_set::size_type
hash_set::swap
hash_set::upper_bound
hash_set::value_comp
hash_set::value_compare
hash_set::value_type
swap
operator!=
operator==
operator<
operator<=
operator>
operator>=
<iohw>
<iomanip>
resetiosflags
setbase
setfill
setiosflags
setprecision
setw
<ios>
basic_ios
basic_ios::bad
basic_ios::basic_ios
basic_ios::char_type
basic_ios::clear
basic_ios::copyfmt
basic_ios::eof
basic_ios::exceptions
basic_ios::fail
basic_ios::fill
basic_ios::good
basic_ios::imbue
basic_ios::init
basic_ios::int_type
basic_ios::narrow
basic_ios::off_type
basic_ios::operator void *
basic_ios::operator!
basic_ios::pos_type
basic_ios::rdbuf
basic_ios::rdstate
basic_ios::setstate
basic_ios::tie
basic_ios::traits_type
basic_ios::widen
boolalpha
dec
fixed
fpos
fpos::fpos
fpos::operator!=
fpos::operator+
fpos::operator+=
fpos::operator-
fpos::operator-=
fpos::operator==
fpos::operator streamoff
fpos::state
hex
internal
ios
ios_base
ios_base::event
ios_base::failure
ios_base::flags
ios_base::fmtflags
ios_base::getloc
ios_base::imbue
ios_base::Init
ios_base::ios_base
ios_base::iostate
ios_base::iword
ios_base::openmode
ios_base::operator=
ios_base::precision
ios_base::pword
ios_base::seekdir
ios_base::setf
ios_base::streamoff
ios_base::streampos
ios_base::sync_with_stdio
ios_base::unsetf
ios_base::width
ios_base::xalloc
left
noboolalpha
noshowbase
noshowpoint
noshowpos
noskipws
nounitbuf
nouppercase
oct
right
scientific
showbase
showpoint
showpos
skipws
streamoff
streampos
streamsize
unitbuf
uppercase
wios
wstreampos
<iosfwd>
<iostream>
cerr
cin
clog
cout
wcerr
wcin
wclog
wcout
<istream>
basic_iostream
basic_istream
basic_istream::basic_istream
basic_istream::gcount
basic_istream::get
basic_istream::getline
basic_istream::ignore
basic_istream::operator>>
basic_istream::peek
basic_istream::putback
basic_istream::read
basic_istream::readsome
basic_istream::seekg
basic_istream::sentry
basic_istream::sync
basic_istream::tellg
basic_istream::unget
iostream
istream
operator>>
wiostream
wistream
ws
<iterator>
advance
back_insert_iterator
back_insert_iterator::back_insert_iterator
back_insert_iterator::operator*
back_insert_iterator::operator++
back_insert_iterator::operator=
back_inserter
bidirectional_iterator_tag
distance
forward_iterator_tag
front_insert_iterator
front_insert_iterator::front_insert_iterator
front_insert_iterator::operator*
front_insert_iterator::operator++
front_insert_iterator::operator=
front_inserter
input_iterator_tag
insert_iterator
insert_iterator::insert_iterator
insert_iterator::operator*
insert_iterator::operator++
insert_iterator::operator=
inserter
istream_iterator
istream_iterator::char_type
istream_iterator::istream_iterator
istream_iterator::istream_type
istream_iterator::operator*
istream_iterator::operator++
istream_iterator::traits_type
istreambuf_iterator
istreambuf_iterator::char_type
istreambuf_iterator::equal
istreambuf_iterator::int_type
istreambuf_iterator::istream_type
istreambuf_iterator::istreambuf_iterator
istreambuf_iterator::operator*
istreambuf_iterator::operator++
istreambuf_iterator::streambuf_type
istreambuf_iterator::traits_type
iterator
iterator_traits
operator!=
operator==
operator<
operator<=
operator>
operator>=
operator+
operator-
ostream_iterator
ostream_iterator::char_type
ostream_iterator::operator*
ostream_iterator::operator++
ostream_iterator::operator=
ostream_iterator::ostream_iterator
ostream_iterator::ostream_type
ostream_iterator::traits_type
ostreambuf_iterator
ostreambuf_iterator::char_type
ostreambuf_iterator::failed
ostreambuf_iterator::operator*
ostreambuf_iterator::operator++
ostreambuf_iterator::operator=
ostreambuf_iterator::ostream_type
ostreambuf_iterator::ostreambuf_iterator
ostreambuf_iterator::streambuf_type
ostreambuf_iterator::traits_type
output_iterator_tag
random_access_iterator_tag
reverse_iterator
reverse_iterator::base
reverse_iterator::operator*
reverse_iterator::operator+
reverse_iterator::operator++
reverse_iterator::operator+=
reverse_iterator::operator-
reverse_iterator::operator--
reverse_iterator::operator-=
reverse_iterator::operator->
reverse_iterator::operator[]
<limits>
float_denorm_style
float_round_style
numeric_limits
<list>
list
list::allocator_type
list::assign
list::back
list::begin
list::clear
list::const_iterator
list::const_pointer
list::const_reference
list::const_reverse_iterator
list::difference_type
list::empty
list::end
list::erase
list::front
list::get_allocator
list::insert
list::iterator
list::list
list::max_size
list::merge
list::pointer
list::pop_back
list::pop_front
list::push_back
list::push_front
list::rbegin
list::reference
list::remove
list::remove_if
list::rend
list::resize
list::reverse
list::reverse_iterator
list::size
list::size_type
list::sort
list::splice
list::swap
list::unique
list::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
<locale>
codecvt
codecvt::always_noconv
codecvt::codecvt
codecvt::do_always_noconv
codecvt::do_encoding
codecvt::do_in
codecvt::do_length
codecvt::do_max_length
codecvt::do_out
codecvt::do_unshift
codecvt::extern_type
codecvt::in
codecvt::intern_type
codecvt::length
codecvt::encoding
codecvt::max_length
codecvt::out
codecvt::state_type
codecvt::unshift
codecvt_base
codecvt_byname
collate
collate::char_type
collate::collate
collate::compare
collate::do_compare
collate::do_hash
collate::do_transform
collate::hash
collate::string_type
collate::transform
collate_byname
ctype
ctype::char_type
ctype::ctype
ctype::do_is
ctype::do_narrow
ctype::do_scan_is
ctype::do_scan_not
ctype::do_tolower
ctype::do_toupper
ctype::do_widen
ctype::is
ctype::narrow
ctype::scan_is
ctype::scan_not
ctype::tolower
ctype::toupper
ctype::widen
ctype<char>
ctype_base
ctype_byname
has_facet
isalnum
isalpha
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
locale
locale::category
locale::classic
locale::combine
locale::facet
locale::global
locale::id
locale::locale
locale::name
locale::operator!=
locale::operator()
locale::operator==
messages
messages::char_type
messages::close
messages::do_close
messages::do_get
messages::do_open
messages::get
messages::messages
messages::open
messages::string_type
messages_base
messages_byname
money_base
money_get
money_get::char_type
money_get::do_get
money_get::get
money_get::iter_type
money_get::money_get
money_get::string_type
money_put
money_put::char_type
money_put::do_put
money_put::put
money_put::iter_type
money_put::money_put
money_put::string_type
moneypunct
moneypunct::char_type
moneypunct::curr_symbol
moneypunct::decimal_point
moneypunct::do_curr_symbol
moneypunct::do_decimal_point
moneypunct::do_frac_digits
moneypunct::do_grouping
moneypunct::do_neg_format
moneypunct::do_negative_sign
moneypunct::do_pos_format
moneypunct::do_positive_sign
moneypunct::do_thousands_sep
moneypunct::frac_digits
moneypunct::grouping
moneypunct::moneypunct
moneypunct::neg_format
moneypunct::negative_sign
moneypunct::pos_format
moneypunct::positive_sign
moneypunct::string_type
moneypunct::thousands_sep
moneypunct_byname
num_get
num_get::char_type
num_get::do_get
num_get::get
num_get::iter_type
num_get::num_get
num_put
num_put::char_type
num_put::do_put
num_put::put
num_put::iter_type
num_put::num_put
numpunct
numpunct::char_type
numpunct::decimal_point
numpunct::do_decimal_point
numpunct::do_falsename
numpunct::do_grouping
numpunct::do_thousands_sep
numpunct::do_truename
numpunct::falsename
numpunct::grouping
numpunct::numpunct
numpunct::string_type
numpunct::thousands_sep
numpunct::truename
numpunct_byname
time_base
time_get
time_get::char_type
time_get::date_order
time_get::do_date_order
time_get::do_get_date
time_get::do_get_month
time_get::do_get_time
time_get::do_get_weekday
time_get::do_get_year
time_get::get_date
time_get::get_month
time_get::get_time
time_get::get_weekday
time_get::get_year
time_get::iter_type
time_get::time_get
time_get_byname
time_put
time_put::char_type
time_put::do_put
time_put::put
time_put::iter_type
time_put::time_put
time_put_byname
tolower
toupper
use_facet
<map>
map
map::allocator_type
map::begin
map::clear
map::const_iterator
map::const_pointer
map::const_reference
map::const_reverse_iterator
map::count
map::difference_type
map::empty
map::end
map::equal_range
map::erase
map::find
map::get_allocator
map::insert
map::iterator
map::key_comp
map::key_compare
map::key_type
map::lower_bound
map::map
map::mapped_type
map::max_size
map::operator[]
map::pointer
map::rbegin
map::reference
map::rend
map::reverse_iterator
map::size
map::size_type
map::swap
map::upper_bound
map::value_comp
map::value_compare
map::value_type
multimap
multimap::allocator_type
multimap::begin
multimap::clear
multimap::const_iterator
multimap::const_pointer
multimap::const_reference
multimap::const_reverse_iterator
multimap::count
multimap::difference_type
multimap::empty
multimap::end
multimap::equal_range
multimap::erase
multimap::find
multimap::get_allocator
multimap::insert
multimap::iterator
multimap::key_comp
multimap::key_compare
multimap::key_type
multimap::lower_bound
multimap::mapped_type
multimap::max_size
multimap::multimap
multimap::pointer
multimap::rbegin
multimap::reference
multimap::rend
multimap::reverse_iterator
multimap::size
multimap::size_type
multimap::swap
multimap::upper_bound
multimap::value_comp
multimap::value_compare
multimap::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
<memory>
allocator
allocator::const_reference
allocator::construct
allocator::destroy
allocator::pointer
allocator::rebind
allocator::reference
allocator::value_type
allocator<void>
auto_ptr
auto_ptr::auto_ptr
auto_ptr::~auto_ptr
auto_ptr::element_type
auto_ptr::get
auto_ptr::operator=
auto_ptr::operator*
auto_ptr::operator->
auto_ptr::operator auto_ptr<Other>
auto_ptr::operator auto_ptr_ref<Other>
auto_ptr::release
auto_ptr::reset
auto_ptr_ref
get_temporary_buffer
operator!=
operator==
uninitialized_copy
uninitialized_fill
uninitialized_fill_n
<new>
bad_alloc
new_handler
nothrow
nothrow_t
operator delete
operator delete[]
operator new
operator new[]
set_new_handler
<numeric>
accumulate
adjacent_difference
inner_product
partial_sum
<ostream>
basic_ostream
basic_ostream::basic_ostream
basic_ostream::flush
basic_ostream::operator<<
basic_ostream::put
basic_ostream::seekp
basic_ostream::sentry
basic_ostream::tellp
basic_ostream::write
endl
ends
flush
operator<<
ostream
wostream
<queue>
operator!=
operator==
operator<
operator<=
operator>
operator>=
priority_queue
priority_queue::container_type
priority_queue::empty
priority_queue::pop
priority_queue::priority_queue
priority_queue::push
priority_queue::size
priority_queue::size_type
priority_queue::top
priority_queue::value_type
queue
queue::back
queue::container_type
queue::empty
queue::front
queue::pop
queue::push
queue::queue
queue::size
queue::size_type
queue::value_type
<set>
multiset
multiset::allocator_type
multiset::begin
multiset::clear
multiset::const_iterator
multiset::const_pointer
multiset::const_reference
multiset::const_reverse_iterator
multiset::count
multiset::difference_type
multiset::empty
multiset::end
multiset::equal_range
multiset::erase
multiset::find
multiset::get_allocator
multiset::insert
multiset::iterator
multiset::key_comp
multiset::key_compare
multiset::key_type
multiset::lower_bound
multiset::multiset
multiset::max_size
multiset::pointer
multiset::rbegin
multiset::reference
multiset::rend
multiset::reverse_iterator
multiset::size
multiset::size_type
multiset::swap
multiset::upper_bound
multiset::value_comp
multiset::value_compare
multiset::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
set
set::allocator_type
set::begin
set::clear
set::const_iterator
set::const_pointer
set::const_reference
set::const_reverse_iterator
set::count
set::difference_type
set::empty
set::end
set::equal_range
set::erase
set::find
set::get_allocator
set::insert
set::iterator
set::key_comp
set::key_compare
set::key_type
set::lower_bound
set::max_size
set::pointer
set::rbegin
set::reference
set::rend
set::reverse_iterator
set::set
set::size
set::size_type
set::swap
set::upper_bound
set::value_comp
set::value_compare
set::value_type
swap
<slist>
operator!=
operator==
operator<
operator<=
operator>
operator>=
slist
slist::allocator_type
slist::assign
slist::back
slist::begin
slist::clear
slist::const_iterator
slist::const_pointer
slist::const_reference
slist::difference_type
slist::empty
slist::end
slist::erase
slist::front
slist::get_allocator
slist::insert
slist::iterator
slist::max_size
slist::merge
slist::pointer
slist::pop_back
slist::pop_front
slist::previous
slist::push_back
slist::push_front
slist::reference
slist::remove
slist::remove_if
slist::resize
slist::reverse
slist::size
slist::size_type
slist::slist
slist::sort
slist::splice
slist::swap
slist::unique
slist::value_type
swap
<sstream>
basic_stringbuf
basic_stringbuf::allocator_type
basic_stringbuf::basic_stringbuf
basic_stringbuf::char_type
basic_stringbuf::int_type
basic_stringbuf::off_type
basic_stringbuf::overflow
basic_stringbuf::pbackfail
basic_stringbuf::pos_type
basic_stringbuf::seekoff
basic_stringbuf::seekpos
basic_stringbuf::str
basic_stringbuf::traits_type
basic_stringbuf::underflow
basic_istringstream
basic_istringstream::allocator_type
basic_istringstream::basic_istringstream
basic_istringstream::rdbuf
basic_istringstream::str
basic_ostringstream
basic_ostringstream::allocator_type
basic_ostringstream::basic_ostringstream
basic_ostringstream::rdbuf
basic_ostringstream::str
basic_stringstream
basic_stringstream::allocator_type
basic_stringstream::basic_stringstream
basic_stringstream::rdbuf
basic_stringstream::str
istringstream
ostringstream
stringbuf
stringstream
wistringstream
wostringstream
wstringbuf
wstringstream
<stack>
operator!=
operator==
operator<
operator<=
operator>
operator>=
stack
stack::container_type
stack::empty
stack::pop
stack::push
stack::size
stack::size_type
stack::stack
stack::top
stack::value_type
<stdexcept>
domain_error
invalid_argument
length_error
logic_error
out_of_range
overflow_error
range_error
runtime_error
underflow_error
<streambuf>
basic_streambuf
basic_streambuf::basic_streambuf
basic_streambuf::char_type
basic_streambuf::eback
basic_streambuf::egptr
basic_streambuf::epptr
basic_streambuf::gbump
basic_streambuf::getloc
basic_streambuf::gptr
basic_streambuf::imbue
basic_streambuf::in_avail
basic_streambuf::int_type
basic_streambuf::off_type
basic_streambuf::overflow
basic_streambuf::pbackfail
basic_streambuf::pbase
basic_streambuf::pbump
basic_streambuf::pos_type
basic_streambuf::pptr
basic_streambuf::pubimbue
basic_streambuf::pubseekoff
basic_streambuf::pubseekpos
basic_streambuf::pubsetbuf
basic_streambuf::pubsync
basic_streambuf::sbumpc
basic_streambuf::seekoff
basic_streambuf::seekpos
basic_streambuf::setbuf
basic_streambuf::setg
basic_streambuf::setp
basic_streambuf::sgetc
basic_streambuf::sgetn
basic_streambuf::showmanyc
basic_streambuf::snextc
basic_streambuf::sputbackc
basic_streambuf::sputc
basic_streambuf::sputn
basic_streambuf::stossc
basic_streambuf::sungetc
basic_streambuf::sync
basic_streambuf::traits_type
basic_streambuf::uflow
basic_streambuf::underflow
basic_streambuf::xsgetn
basic_streambuf::xsputn
streambuf
wstreambuf
<string>
basic_string
basic_string::allocator_type
basic_string::append
basic_string::assign
basic_string::at
basic_string::basic_string
basic_string::begin
basic_string::c_str
basic_string::capacity
basic_string::clear
basic_string::compare
basic_string::const_iterator
basic_string::const_pointer
basic_string::const_reference
basic_string::const_reverse_iterator
basic_string::copy
basic_string::data
basic_string::difference_type
basic_string::empty
basic_string::end
basic_string::erase
basic_string::find
basic_string::find_first_not_of
basic_string::find_first_of
basic_string::find_last_not_of
basic_string::find_last_of
basic_string::get_allocator
basic_string::insert
basic_string::iterator
basic_string::length
basic_string::max_size
basic_string::npos
basic_string::operator+=
basic_string::operator=
basic_string::operator[]
basic_string::pointer
basic_string::push_back
basic_string::rbegin
basic_string::reference
basic_string::rend
basic_string::replace
basic_string::reserve
basic_string::resize
basic_string::reverse_iterator
basic_string::rfind
basic_string::size
basic_string::size_type
basic_string::substr
basic_string::swap
basic_string::traits_type
basic_string::value_type
char_traits
char_traits::assign
char_traits::char_type
char_traits::compare
char_traits::copy
char_traits::eof
char_traits::eq
char_traits::eq_int_type
char_traits::find
char_traits::int_type
char_traits::length
char_traits::lt
char_traits::move
char_traits::not_eof
char_traits::off_type
char_traits::pos_type
char_traits::state_type
char_traits::to_char_type
char_traits::to_int_type
char_traits<char>
char_traits<wchar_t>
getline
operator+
operator!=
operator==
operator<
operator<<
operator<=
operator>
operator>=
operator>>
string
swap
wstring
<strstream>
strstreambuf
strstreambuf::freeze
strstreambuf::pcount
strstreambuf::overflow
strstreambuf::pbackfail
strstreambuf::seekoff
strstreambuf::seekpos
strstreambuf::str
strstreambuf::strstreambuf
strstreambuf::underflow
istrstream
istrstream::istrstream
istrstream::rdbuf
istrstream::str
ostrstream
ostrstream::freeze
ostrstream::ostrstream
ostrstream::pcount
ostrstream::rdbuf
ostrstream::str
strstream
strstream::freeze
strstream::pcount
strstream::strstream
strstream::rdbuf
strstream::str
<typeinfo>
bad_cast
bad_typeid
type_info
type_info::before
type_info::name
<utility>
make_pair
operator!=
operator==
operator<
operator<=
operator>
operator>=
pair
<valarray>
abs
acos
asin
atan
atan2
cos
cosh
exp
gslice
gslice::gslice
gslice::size
gslice::start
gslice::stride
gslice_array
indirect_array
log
log10
mask_array
operator!=
operator%
operator&
operator&&
operator>
operator>>
operator>=
operator<
operator<<
operator<=
operator*
operator+
operator-
operator/
operator==
operator^
operator|
operator||
pow
sin
sinh
slice
slice::slice
slice::size
slice::start
slice::stride
slice_array
sqrt
tan
tanh
valarray
valarray::apply
valarray::cshift
valarray::max
valarray::min
valarray::operator!
valarray::operator%=
valarray::operator&=
valarray::operator>>=
valarray::operator<<=
valarray::operator*=
valarray::operator+
valarray::operator+=
valarray::operator-
valarray::operator-=
valarray::operator/=
valarray::operator=
valarray::operator[]
valarray::operator^=
valarray::operator|=
valarray::operator~
valarray::resize
valarray::shift
valarray::size
valarray::sum
valarray::valarray
valarray::value_type
valarray<bool>
<vector>
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
vector
vector::allocator_type
vector::assign
vector::at
vector::back
vector::begin
vector::capacity
vector::clear
vector::const_iterator
vector::const_pointer
vector::const_reference
vector::const_reverse_iterator
vector::difference_type
vector::empty
vector::end
vector::erase
vector::front
vector::get_allocator
vector::insert
vector::iterator
vector::max_size
vector::operator[]
vector::pointer
vector::pop_back
vector::push_back
vector::rbegin
vector::reference
vector::rend
vector::reserve
vector::resize
vector::reverse_iterator
vector::size
vector::size_type
vector::swap
vector::value_type
vector::vector
<cassert>
<cctype>
<cerrno>
<cfloat>
<ciso646>
<climits>
<clocale>
<cmath>
<csetjmp>
<csignal>
<cstdarg>
<cstddef>
<cstdio>
<cstdlib>
<cstring>
<ctime>
<cwchar>
<cwctype>
<assert.h>
assert
<ctype.h>
isalnum
isalpha
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
tolower
toupper
<errno.h>
EDOM
EILSEQ
ERANGE
errno
<float.h>
DBL_DIG
DBL_EPSILON
DBL_MANT_DIG
DBL_MAX
DBL_MAX_10_EXP
DBL_MAX_EXP
DBL_MIN
DBL_MIN_10_EXP
DBL_MIN_EXP
FLT_DIG
FLT_EPSILON
FLT_MANT_DIG
FLT_MAX
FLT_MAX_10_EXP
FLT_MAX_EXP
FLT_MIN
FLT_MIN_10_EXP
FLT_MIN_EXP
FLT_RADIX
FLT_ROUNDS
LDBL_DIG
LDBL_EPSILON
LDBL_MANT_DIG
LDBL_MAX
LDBL_MAX_10_EXP
LDBL_MAX_EXP
LDBL_MIN
LDBL_MIN_10_EXP
LDBL_MIN_EXP
<iso646.h>
and
and_eq
bitand
bitor
compl
not
not_eq
or
or_eq
xor
xor_eq
<limits.h>
CHAR_BIT
CHAR_MAX
CHAR_MIN
INT_MAX
INT_MIN
LONG_MAX
LONG_MIN
MB_LEN_MAX
SCHAR_MAX
SCHAR_MIN
SHRT_MAX
SHRT_MIN
UCHAR_MAX
UINT_MAX
ULONG_MAX
USHRT_MAX
<locale.h>
LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
lconv
localeconv
NULL
setlocale
<math.h>
HUGE_VAL
<setjmp.h>
jmp_buf
longjmp
setjmp
<signal.h>
raise
sig_atomic_t
SIGABRT
SIGFPE
SIGILL
SIGINT
signal
SIGSEGV
SIGTERM
SIG_DFL
SIG_ERR
SIG_IGN
<stdarg.h>
va_arg
va_end
va_list
va_start
<stddef.h>
NULL
offsetof
ptrdiff_t
size_t
wchar_t
<stdio.h>
BUFSIZ
clearerr
EOF
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
FILE
FILENAME_MAX
fopen
FOPEN_MAX
fpos_t
fprintf
fputc
fputs
fread
freopen
fscanf
fseek
fsetpos
ftell
fwrite
getc
getchar
gets
_IOFBF
_IOLBF
_IONBF
L_tmpnam
NULL
perror
printf
putc
putchar
puts
remove
rename
rewind
scanf
SEEK_CUR
SEEK_END
SEEK_SET
setbuf
setvbuf
size_t
sprintf
sscanf
stderr
stdin
stdout
tmpfile
TMP_MAX
tmpnam
ungetc
vfprintf
vprintf
vsprintf
<stdlib.h>
abort
abs
atexit
atof
atoi
atol
bsearch
calloc
div
div_t
exit
EXIT_FAILURE
EXIT_SUCCESS
free
getenv
labs
ldiv
ldiv_t
malloc
MB_CUR_MAX
mblen
mbstowcs
mbtowc
NULL
qsort
rand
RAND_MAX
realloc
size_t
srand
strtod
strtol
strtoul
system
wchar_t
wcstombs
wctomb
<string.h>
memchr
memcmp
memcpy
memmove
memset
NULL
size_t
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtok
strxfrm
<time.h>
asctime
clock
CLOCKS_PER_SEC
clock_t
ctime
difftime
gmtime
localtime
mktime
NULL
size_t
strftime
time
time_t
tm
<uchar.h>
c16rtomb
c32rtomb
char16_t
char32_t
mbrtoc16
mbrtoc32
mbstate_t
NULL
size_t
__STDC_UTF_16__
__STDC_UTF_32__
<wchar.h>
btowc
fgetwc
fgetws
fputwc
fputws
fwide
fwprintf
fwscanf
getwc
getwchar
mbrlen
mbrtowc
mbsinit
mbsrtowcs
mbstate_t
NULL
putwc
putwchar
size_t
swprintf
swscanf
tm
ungetwc
vfwprintf
vswprintf
vwprintf
WCHAR_MAX
WCHAR_MIN
wchar_t
wcrtomb
wcscat
wcschr
wcscmp
wcscoll
wcscpy
wcscspn
wcsftime
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsrtombs
wcsspn
wcsstr
wcstod
wcstok
wcstol
wcstoul
wcsxfrm
wctob
WEOF
wint_t
wmemchr
wmemcmp
wmemcpy
wmemmove
wmemset
wprintf
wscanf
<wctype.h>
WEOF
iswalnum
iswalpha
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
towctrans
towlower
towupper
wctrans
wctrans_t
wctype
wctype_t
wint_t
<fstream.h>
<iomanip.h>
<iostream.h>
<new.h>
C++ Library Overview
Using C++ Library Headers
C++ Library Conventions
Iostreams Conventions
C Library Overview
Using Standard C Headers
C Library Conventions
Characters
Character Sets
Escape Sequences
Trigraphs
Multibyte Characters
Files and Streams
Text and Binary Streams
Byte and Wide Streams
Controlling Streams
Stream States
Formatted Output
Print Formats
Print Functions
Formatted Input
Scan Formats
Scan Functions
Scan Conversion Specifiers
STL Conventions
Iterator Conventions
Algorithm Conventions
Locale Definitions
Containers
Container
Container::begin
Container::clear
Container::const_iterator
Container::const_reference
Container::const_reverse_iterator
Container::difference_type
Container::empty
Container::end
Container::erase
Container::iterator
Container::max_size
Container::rbegin
Container::reference
Container::rend
Container::reverse_iterator
Container::size
Container::size_type
Container::swap
Container::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
Preprocessing
Expressions
Functions
Index
Dinkum Embedded C++ Library
<complex>
abs
arg
complex
complex::complex
complex::imag
complex::operator*=
complex::operator+=
complex::operator-=
complex::operator/=
complex::operator=
complex::real
complex::value_type
conj
cos
cosh
double_complex
exp
float_complex
imag
log
log10
norm
operator!=
operator*
operator+
operator-
operator/
operator<<
operator==
operator>>
polar
pow
real
sin
sinh
sqrt
__STD_COMPLEX
tan
tanh
<exception>
bad_exception
exception
set_terminate
set_unexpected
terminate
terminate_handler
uncaught_exception
unexpected
unexpected_handler
<fstream>
filebuf
filebuf::filebuf
filebuf::char_type
filebuf::close
filebuf::int_type
filebuf::is_open
filebuf::off_type
filebuf::open
filebuf::overflow
filebuf::pbackfail
filebuf::pos_type
filebuf::seekoff
filebuf::seekpos
filebuf::setbuf
filebuf::sync
filebuf::traits_type
filebuf::underflow
ifstream
ifstream::ifstream
ifstream::close
ifstream::is_open
ifstream::open
ifstream::rdbuf
ofstream
ofstream::ofstream
ofstream::close
ofstream::is_open
ofstream::open
ofstream::rdbuf
<iomanip>
resetiosflags
setbase
setfill
setiosflags
setprecision
setw
<ios>
ios
ios::bad
ios::ios
ios::char_type
ios::clear
ios::copyfmt
ios::eof
ios::exceptions
ios::fail
ios::fill
ios::good
ios::imbue
ios::init
ios::int_type
ios::narrow
ios::off_type
ios::operator void *
ios::operator!
ios::pos_type
ios::rdbuf
ios::rdstate
ios::setstate
ios::tie
ios::traits_type
ios::widen
boolalpha
dec
fixed
fpos
fpos::fpos
fpos::operator!=
fpos::operator+
fpos::operator+=
fpos::operator-
fpos::operator-=
fpos::operator==
fpos::operator streamoff
fpos::state
hex
internal
ios_base
ios_base::event
ios_base::failure
ios_base::flags
ios_base::fmtflags
ios_base::getloc
ios_base::imbue
ios_base::Init
ios_base::ios_base
ios_base::iostate
ios_base::iword
ios_base::openmode
ios_base::operator=
ios_base::precision
ios_base::pword
ios_base::seekdir
ios_base::setf
ios_base::streamoff
ios_base::streampos
ios_base::sync_with_stdio
ios_base::unsetf
ios_base::width
ios_base::xalloc
left
locale
mbstate_t
noboolalpha
noshowbase
noshowpoint
noshowpos
noskipws
nounitbuf
nouppercase
oct
right
scientific
showbase
showpoint
showpos
skipws
streamoff
streampos
streamsize
unitbuf
uppercase
<iosfwd>
<iostream>
cin
cout
<istream>
istream
istream::istream
istream::gcount
istream::get
istream::getline
istream::ignore
istream::operator>>
istream::peek
istream::putback
istream::read
istream::readsome
istream::seekg
istream::sentry
istream::sync
istream::tellg
istream::unget
operator>>
ws
<new>
bad_alloc
new_handler
nothrow
nothrow_t
operator delete
operator delete[]
operator new
operator new[]
set_new_handler
<ostream>
ostream
ostream::ostream
ostream::flush
ostream::operator<<
ostream::put
ostream::seekp
ostream::sentry
ostream::tellp
ostream::write
endl
ends
flush
operator<<
<sstream>
stringbuf
stringbuf::allocator_type
stringbuf::stringbuf
stringbuf::char_type
stringbuf::int_type
stringbuf::off_type
stringbuf::overflow
stringbuf::pbackfail
stringbuf::pos_type
stringbuf::seekoff
stringbuf::seekpos
stringbuf::str
stringbuf::traits_type
stringbuf::underflow
istringstream
istringstream::allocator_type
istringstream::istringstream
istringstream::rdbuf
istringstream::str
ostringstream
ostringstream::allocator_type
ostringstream::ostringstream
ostringstream::rdbuf
ostringstream::str
<stdexcept>
domain_error
invalid_argument
length_error
logic_error
out_of_range
overflow_error
range_error
runtime_error
underflow_error
<streambuf>
streambuf
streambuf::streambuf
streambuf::char_type
streambuf::eback
streambuf::egptr
streambuf::epptr
streambuf::gbump
streambuf::getloc
streambuf::gptr
streambuf::imbue
streambuf::in_avail
streambuf::int_type
streambuf::off_type
streambuf::overflow
streambuf::pbackfail
streambuf::pbase
streambuf::pbump
streambuf::pos_type
streambuf::pptr
streambuf::pubimbue
streambuf::pubseekoff
streambuf::pubseekpos
streambuf::pubsetbuf
streambuf::pubsync
streambuf::sbumpc
streambuf::seekoff
streambuf::seekpos
streambuf::setbuf
streambuf::setg
streambuf::setp
streambuf::sgetc
streambuf::sgetn
streambuf::showmanyc
streambuf::snextc
streambuf::sputbackc
streambuf::sputc
streambuf::sputn
streambuf::stossc
streambuf::sungetc
streambuf::sync
streambuf::traits_type
streambuf::uflow
streambuf::underflow
streambuf::xsgetn
streambuf::xsputn
<string>
string
string::allocator_type
string::append
string::assign
string::at
string::string
string::begin
string::c_str
string::capacity
string::clear
string::compare
string::const_iterator
string::const_pointer
string::const_reference
string::const_reverse_iterator
string::copy
string::data
string::difference_type
string::empty
string::end
string::erase
string::find
string::find_first_not_of
string::find_first_of
string::find_last_not_of
string::find_last_of
string::get_allocator
string::insert
string::iterator
string::length
string::max_size
string::npos
string::operator+=
string::operator=
string::operator[]
string::pointer
string::push_back
string::rbegin
string::reference
string::rend
string::replace
string::reserve
string::resize
string::reverse_iterator
string::rfind
string::size
string::size_type
string::substr
string::swap
string::traits_type
string::value_type
char_allocator
char_allocator::operator==
char_traits
char_traits::assign
char_traits::char_type
char_traits::compare
char_traits::copy
char_traits::eof
char_traits::eq
char_traits::eq_int_type
char_traits::find
char_traits::int_type
char_traits::length
char_traits::lt
char_traits::move
char_traits::not_eof
char_traits::off_type
char_traits::pos_type
char_traits::state_type
char_traits::to_char_type
char_traits::to_int_type
getline
operator+
operator!=
operator==
operator<
operator<<
operator<=
operator>
operator>=
operator>>
swap
<strstream>
strstreambuf
strstreambuf::freeze
strstreambuf::pcount
strstreambuf::overflow
strstreambuf::pbackfail
strstreambuf::seekoff
strstreambuf::seekpos
strstreambuf::str
strstreambuf::strstreambuf
strstreambuf::underflow
istrstream
istrstream::istrstream
istrstream::rdbuf
istrstream::str
ostrstream
ostrstream::freeze
ostrstream::ostrstream
ostrstream::pcount
ostrstream::rdbuf
ostrstream::str
<cassert>
<cctype>
<cerrno>
<cfloat>
<climits>
<clocale>
<cmath>
<csetjmp>
<csignal>
<cstdarg>
<cstddef>
<cstdio>
<cstdlib>
<cstring>
<ctime>
<assert.h>
assert
<ctype.h>
isalnum
isalpha
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
tolower
toupper
<errno.h>
EDOM
EILSEQ
ERANGE
errno
<float.h>
DBL_DIG
DBL_EPSILON
DBL_MANT_DIG
DBL_MAX
DBL_MAX_10_EXP
DBL_MAX_EXP
DBL_MIN
DBL_MIN_10_EXP
DBL_MIN_EXP
FLT_DIG
FLT_EPSILON
FLT_MANT_DIG
FLT_MAX
FLT_MAX_10_EXP
FLT_MAX_EXP
FLT_MIN
FLT_MIN_10_EXP
FLT_MIN_EXP
FLT_RADIX
FLT_ROUNDS
LDBL_DIG
LDBL_EPSILON
LDBL_MANT_DIG
LDBL_MAX
LDBL_MAX_10_EXP
LDBL_MAX_EXP
LDBL_MIN
LDBL_MIN_10_EXP
LDBL_MIN_EXP
<limits.h>
CHAR_BIT
CHAR_MAX
CHAR_MIN
INT_MAX
INT_MIN
LONG_MAX
LONG_MIN
MB_LEN_MAX
SCHAR_MAX
SCHAR_MIN
SHRT_MAX
SHRT_MIN
UCHAR_MAX
UINT_MAX
ULONG_MAX
USHRT_MAX
<locale.h>
LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
lconv
localeconv
NULL
setlocale
<math.h>
abs, fabs, fabsf, fabsl
acos, acosf, acosl
asin, asinf, asinl
atan, atanf, atanl
atan2, atan2f, atan2l
ceil, ceilf, ceill
cos, cosf, cosl
cosh, coshf, coshl
exp, expf, expl
floor, floorf, floorl
fmod, fmodf, fmodl
frexp, frexpf, frexpl
HUGE_VAL
ldexp, ldexpf, ldexpl
log, logf, logl
log10, log10f, log10l
modf, modff, modfl
pow, powf, powl
sin, sinf, sinl
sinh, sinhf, sinhl
sqrt, sqrtf, sqrtl
tan, tanf, tanl
tanh, tanhf, tanhl
<setjmp.h>
jmp_buf
longjmp
setjmp
<signal.h>
raise
sig_atomic_t
SIGABRT
SIGFPE
SIGILL
SIGINT
signal
SIGSEGV
SIGTERM
SIG_DFL
SIG_ERR
SIG_IGN
<stdarg.h>
va_arg
va_end
va_list
va_start
<stddef.h>
NULL
offsetof
ptrdiff_t
size_t
wchar_t
<stdio.h>
BUFSIZ
clearerr
EOF
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
FILE
FILENAME_MAX
fopen
FOPEN_MAX
fpos_t
fprintf
fputc
fputs
fread
freopen
fscanf
fseek
fsetpos
ftell
fwrite
getc
getchar
gets
_IOFBF
_IOLBF
_IONBF
L_tmpnam
NULL
perror
printf
putc
putchar
puts
remove
rename
rewind
scanf
SEEK_CUR
SEEK_END
SEEK_SET
setbuf
setvbuf
size_t
sprintf
sscanf
stderr
stdin
stdout
tmpfile
TMP_MAX
tmpnam
ungetc
vfprintf
vprintf
vsprintf
<stdlib.h>
abort
abs
atexit
atof
atoi
atol
bsearch
calloc
div
div_t
exit
EXIT_FAILURE
EXIT_SUCCESS
free
getenv
labs
ldiv
ldiv_t
malloc
MB_CUR_MAX
mblen
mbstowcs
mbtowc
NULL
qsort
rand
RAND_MAX
realloc
size_t
srand
strtod
strtol
strtoul
system
wchar_t
wcstombs
wctomb
<string.h>
memchr
memcmp
memcpy
memmove
memset
NULL
size_t
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtok
strxfrm
<time.h>
asctime
clock
CLOCKS_PER_SEC
clock_t
ctime
difftime
gmtime
localtime
mktime
NULL
size_t
strftime
time
time_t
tm
<fstream.h>
<iomanip.h>
<iostream.h>
<new.h>
C++ Library Overview
Using C++ Library Headers
C++ Library Conventions
Iostreams Conventions
Program Startup and Termination
Exceptions
C Library Overview
Using Standard C Headers
C Library Conventions
Program Startup and Termination
Characters
Character Sets
Escape Sequences
Trigraphs
Multibyte Characters
Files and Streams
Text and Binary Streams
Controlling Streams
Stream States
Formatted Output
Print Formats
Print Functions
Print Conversion Specifiers
Formatted Input
Scan Formats
Scan Functions
Scan Conversion Specifiers
Preprocessing
Expressions
Functions
Index
Driver Development Kit Guides
Audio Devices
About the Audio DDK
Supported features
Assumptions
Building DDKs
Evaluating Your Card
Organization of a Driver
The QNX audio system and driver
DDK source code
Writing an Audio HW DLL
Opaque data types
Custom data types
ctrl_init()
ctrl_destroy()
Debugging an audio driver
Handling Analog Audio Data
Writing an analog mixer
Mixer elements and routes
Supported element types
Mixer groups
Designing mixer groups
Coding the mixer
Initialization
Building the mixer
Using a standard mixer DLL
Initialization
Testing the code
Handling PCM Audio Data
What's a PCM device?
Creating a PCM device
ado_pcm_create()
How does the PCM stream operate?
API Reference
ado_attach_interrupt()
ado_calloc()
ado_card_set_longname()
ado_card_set_shortname()
ado_debug()
ado_device_mmap()
ado_device_munmap()
ado_error()
ado_free()
ado_malloc()
ado_memory_dump()
ado_mixer_capture_group_create()
ado_mixer_create()
ado_mixer_dll()
ado_mixer_element_accu1()
ado_mixer_element_accu2()
ado_mixer_element_accu3()
ado_mixer_element_io()
ado_mixer_element_mux1()
ado_mixer_element_mux2()
ado_mixer_element_notify()
ado_mixer_element_pcm1()
ado_mixer_element_pcm2()
ado_mixer_element_route_add()
ado_mixer_element_sw1()
ado_mixer_element_sw2()
ado_mixer_element_sw3()
ado_mixer_element_vol_range_max()
ado_mixer_element_vol_range_min()
ado_mixer_element_volume1()
ado_mixer_find_element()
ado_mixer_find_group()
ado_mixer_get_context()
ado_mixer_get_element_instance_data()
ado_mixer_lock()
ado_mixer_playback_group_create()
ado_mixer_set_destroy_func()
ado_mixer_set_name()
ado_mixer_set_reset_func()
ado_mixer_switch_new()
ado_mixer_unlock()
ado_mutex_destroy()
ado_mutex_init()
ado_mutex_lock()
ado_mutex_unlock()
ado_pci
ado_pci_device()
ado_pci_release()
ado_pcm_cap_t
ado_pcm_config_t
ado_pcm_chn_mixer()
ado_pcm_create()
ado_pcm_dma_int_size()
ado_pcm_format_bit_width()
ado_pcm_hw_t
ado_pcm_subchn_caps()
ado_pcm_subchn_is_channel()
ado_pcm_subchn_mixer()
ado_pcm_subchn_mixer_create()
ado_pcm_subchn_mixer_destroy()
ado_pcm_sw_mix()
ado_realloc()
ado_rwlock_destroy()
ado_rwlock_init()
ado_rwlock_rdlock()
ado_rwlock_unlock()
ado_rwlock_wrlock()
ado_shm_alloc()
ado_shm_free()
ado_shm_mmap()
ado_strdup()
dma_interrupt()
Supported Codecs
Audio Codec 97 (AC97)
AK4531
Sample Mixer Source
Glossary
Character Devices
About the Character DDK
Assumptions
Building DDKs
Character I/O Architecture
Overview
DDK source code
8250 Serial Driver
Creating a serial driver
Registers
Source code
Interrupts
Functions
create_device()
enable_device()
options()
query_default_device()
ser_intr()
ser_stty()
set_port()
sys_ttyinit()
tto()
Character I/O Library
iochar_regdrv_power()
iochar_send_event()
kick()
timer_queue()
timer_remove()
ttc()
tti()
tti2()
tto_checkclients()
tto_getchar()
TTYCTRL
TTYDEV
TTYINIT
tx_inject()
wait_add()
wait_remove_rcvid()
Input Devices
About the Input DDK
Building DDKs
Overview
DDK source code
Inside an input driver
Types of event bus lines
How modules are linked
Interface to the system
Source file organization for devi-*
Writing an Input Device Driver
Creating an input module
input_module_t data type
In the sample directory
Data format
Keyboard devices
Absolute devices
Calibration file format
Relative devices
Callbacks in your module
Which callbacks are required?
Callback sequence
Writing a combination device/protocol module
A note about reentrancy
Testing and Debugging Your Driver
Module Functions
devctrl()
init()
input()
output()
parm()
pulse()
reset()
shutdown()
Input API Reference
begin()
buff_append()
buff_create()
buff_delete()
buff_flush()
buff_getc()
buff_putc()
buff_waiting()
clk_get()
devi_enqueue_packet()
devi_register_interrupt()
devi_register_pulse()
devi_register_timer()
devi_request_iorange()
Universal Serial Bus (USB) Devices
About the USB DDK
Assumptions
Building DDKs
Before You Begin
System requirements
USB devices supported
Known limitations
Overview
The USB stack and library
Host Controller Interface (HCI) types
Data buffers
USB enumerator
How a class driver works
USB Utilities
USB Library Reference
Functions arranged by category
Connection functions
Memory-management functions
I/O functions
Pipe-management functions
Configuration and interface functions
Miscellaneous and convenience functions
usbd_abort_pipe()
usbd_alloc()
usbd_alloc_urb()
usbd_args_lookup()
usbd_attach()
usbd_close_pipe()
usbd_configuration_descriptor()
usbd_connect()
usbd_descriptor()
usbd_detach()
usbd_device_descriptor()
usbd_device_extra()
usbd_device_lookup()
usbd_disconnect()
usbd_endpoint_descriptor()
usbd_feature()
usbd_free()
usbd_free_urb()
usbd_get_frame()
usbd_hcd_ext_info(), usbd_hcd_info()
usbd_hub_descriptor()
usbd_interface_descriptor()
usbd_io()
usbd_languages_descriptor()
usbd_mphys()
usbd_open_pipe()
usbd_parse_descriptors()
usbd_pipe_device()
usbd_pipe_endpoint()
usbd_reset_device()
usbd_reset_pipe()
usbd_select_config()
usbd_select_interface()
usbd_setup_bulk()
usbd_setup_control()
usbd_setup_interrupt()
usbd_setup_isochronous()
usbd_setup_vendor()
usbd_status()
usbd_string()
usbd_topology(), usbd_topology_ext()
usbd_urb_status()
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 Examples
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_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
QED Fullscreen Editor
About the QED Manual
Tutorial Guide
Getting Started
The Status Line
The Command Line
Text Area
Appending New Text (F1)
Appending or Inserting Lines (F1/F2)
Using the Del and Backspace keys
Inserting text using Ins
Other cursor keys which simplify editing
Saving your Text
Exercise
More on the F1 and F2 keys
Deleting Lines (F3 key)
Filling Lines (F4 key)
Centering Lines (CtrlF4)
Splitting and Joining Lines (F5/F6 keys)
Tagging Blocks of Text (F7/F8 keys)
Line Tagging
Block Tagging
Insert Mode and Block Move and Copy
Re-setting the Last Tagged Lines or Block
Re-executing Commands (F9/F10 keys)
Tabs
Line-drawing characters
Margins
Moving Your Margins (Shift F1 to F6)
Auto Fill and Your Right Margin
Auto Justify
Indenting and Your Left Margin
Line Flags
Overstrike Flag (Alto)
Continuation Flag (Altc)
Paragraph Flag (Altp)
Some Simple Editor Commands
Learn Mode
Absolute Line Positioning
Simple Pattern Matching
File I/O Commands
The View Command
Executing System Commands
Epilogue
Using qed on non-QNX terminal types
Setting Your Terminal Type
Required Terminal Capabilities
Screen Output
Keyboard Input
Reference Manual
The Syntax of Editor Commands
Line Range
Command Specification Character
Right Arguments
Placing Multiple Commands On A Line
Special Characters
The Linefeed Character (hex 0A)
The NUL Character (hex 00)
The Meta Characters (@$^^&.*[)
The Backslash Character (\)
The Tab Character (hex 09)
The Command Character (hex FF)
The Recall Character (hex FE)
The Keyboard Input Character (hex FD)
The Macro Disable Character (hex A3)
The Condition Register
Delete Buffers
The Character Delete Buffer
The Line Delete Buffer
Break Handling
The Pattern Matcher
Some Pattern Examples
Command Reference:
Append (a)
Branch (b)
Change (c)
Delete (d)
Edit (e)
File (f)
Global (g)
Insert (i)
Join (j)
Kopy (k)
Learn (l)
Move (m)
Option (o)
Print (p)
Quit (q)
Read (r)
Substitute (s)
Translate (t)
Until (u)
View (v)
Write (w)
Execute (x)
Yut? (prompt) (y)
Zap (z)
Defining Your Own Macros
What is a macro
Multi-line Macros
Macros Containing Branches
Suggestions
Appendix A - Error Messages
Quick Reference
Control Keys
Cursor Movement Keys
Character Editing Keys
Function Keys
Option Control
Margin Control
Line Flags
Special Characters
Editor Commands
Line Range range
Line Address line
Meta Characters Used in Patterns
File I/O Commands
Alphabetical List of All Editor Commands
Examples
Utilities Reference
Utility Conventions
Syntax conventions
Interpreting utility syntax
Invoking utilities
File conventions
Signal conventions
Exit status conventions
Error conventions
A
ability
/etc/acl.conf
addr2line
addvariant
applypatch
aps
ar
arp
asa
/etc/autoconnect
B
basename
bc
bison
bootpd
/etc/bootptab
brconfig
bsdtar
bunzip2
bzcat
bzcmp, bzdiff
bzegrep, bzfgrep, bzgrep
bzip2
bzip2recover
bzless, bzmore
C
c++filt
cam-cdrom.so
cam-disk.so
cam-optical.so
cat
CC, cc
cfgopen
chat
chattr
chgrp
chkdosfs
chkfsys
chkqnx6fs
chmod
chown
cksum
clear
cmp
comm
confstr
/etc/context.conf
coreinfo
cp
cpio
cron
crontab
csplit
ctags
cut
cvs
D
date
dcheck
dd
deflate
deva-ctrl-4dwave.so
deva-ctrl-audiopci.so
deva-ctrl-cs4281.so
deva-ctrl-ess1938.so
deva-ctrl-geode.so
deva-ctrl-i8x0.so
deva-ctrl-intel_hda.so
deva-ctrl-nmg6.so
deva-ctrl-sb.so
deva-ctrl-usb.so
deva-ctrl-via686.so
deva-ctrl-vortex.so
deva-ctrl-ymfds1.so
deva-mixer-ac97.so
deva-mixer-ak4531.so
deva-mixer-hda.so
deva-util-restore.so
devb-adpu320
devb-aha8
devb-ahci
devb-btmm
devb-eide
devb-fdc
devb-loopback
devb-mvSata
devb-ram
devb-umass
devc-con, devc-con-hid
devc-par
devc-pty
devc-ser8250
devc-serpci
devc-serusb
devc-serzscc
devf-generic
devf-ram
devh-egalax.so
devh-microtouch.so
devh-ps2ser.so
devh-touchintl.so
devh-usb.so
devn-asix.so
devn-crys8900.so
devn-dm9102.so
devn-el509.so
devn-el900.so
devn-epic.so
devn-fd.so
devn-i82544.so
devn-micrel8841.so
devn-ne2000.so
devn-pcnet.so
devn-pegasus.so
devn-rtl.so
devn-rtl8150.so
devn-sis9.so
devn-smc9000.so
devn-speedo.so
devn-tigon3.so
devn-tulip.so
devn-via-rhine.so
devnp-ath.so
devnp-axe.so
devnp-bce.so
devnp-bcm1250.so
devnp-bcm43xx.so
devnp-bge.so
devnp-e1000.so
devnp-ecm.so
devnp-i80579.so
devnp-i82544.so
devnp-mpcsec.so
devnp-mpc85xx.so
devnp-msk.so
devnp-ncm.so
devnp-ral.so, devnp-ural.so
devnp-rtl8169.so
devnp-rum.so
devnp-shim.so
devnp-speedo.so
devp-pccard
devu-ehci.so
devu-kbd
devu-mouse
devu-ohci.so
devu-prn
devu-uhci.so
df
dhclient
dhclient-script
dhclient.conf, dhclient6.conf
dhclient.leases, dhclient6.leases
DHCP Conditional Evaluation
DHCP Options
dhcp.client
dhcpd
dhcpd.conf, dhcpd6.conf
dhcpd.leases, dhcpd6.leases
dhcprelay
dhcrelay
diff
diff3
dig
dinit
dirname
diskboot
dispconf
dloader
dnssec-dsfromkey
dnssec-keyfromlabel
dnssec-keygen
dnssec-signzone
du
dumpefs
dumper
dumpifs
E
echo
ed
egrep
elvis
enum-devices
enum-usb
env
errno
esh
etfsctl
expand
/etc/exports
expr
F
false
fcat
fdformat
fdisk
fesh
fgrep
file
find
finstall
flashctl
flex
fmt
fold
fpemu.so
freeze
fs-cd.so
fs-cifs
fs-dos.so
fs-etfs-ram
fs-ext2.so
fs-mac.so
fs-nfs2
fs-nfs3
fs-nt.so
fs-qnx4.so
fs-qnx6.so
fs-udf.so
fsencrypt
fsysinfo
/etc/fstab
ftp
/etc/ftpchroot
ftpd
/etc/ftpd.conf
/etc/ftpusers
fullpath
G
g++
/etc/gateways
gawk
gcc
gcov
gdb
getconf
getfacl
getty
gns
gprof
grep
gunzip
gzip
H
ham
hamctrl
hd
head
hidview
hogs
host
hostapd
hostname
/etc/hosts
/etc/hosts.equiv
I
id
if_up
ifconfig
ifwatchd
indent
inetd
/etc/inetd.conf
inflator
infocmp
inputtrap
io-audio
io-blk.so
io-hid
io-pkt-v4, io-pkt-v4-hc, io-pkt-v6-hc
io-usb
J
join
K
kill
ksh
L
ld
ldd
ldrel
less
link
ln
ln-w
logger
login
logout
lpd
lpr
lprc
lprq
lprrm
ls
lsm-autoip.so
lsm-pf-v4.so, lsm-pf-v6.so
lsm-qnet.so
lwresd
M
m4
/usr/share/misc/magic
make
mcd
mcs
melt
mesg
/etc/mib.txt
mixer
mkasmoff
mkcldr
mkbuild
mkdir
mkdosfs
mkefs
mketfs
mkfifo
mkifs
mkimage
mkqnx6fs
mkrec
mksbp
/etc/moduli
more
mount
mq
mqueue
mrouted
mstrip
mv
N
named
named-checkconf
named-checkzone, named-compilezone
/etc/named.conf
ndp
netmanager
netstat
/etc/networks
newgrp
nfsd
/etc/nfsstart
nice
nicinfo
nm
nohup
nslookup
/etc/nsswitch.conf
nsupdate
ntpd
ntpdate
ntpdc
ntpq
ntptrace
O
objcopy
objdump
od
omshell
on
op
openssl
P
/etc/party.conf
passwd
paste
patch
pathtrust
pax
pccard-launch
pci
pci-bios, pci-bios-v2
pcnfsd
/etc/pcnfsd.conf
pdebug
pf
/etc/pf.conf
pfctl
pidin
pin
ping
ping6
pipe
pppd
pppoectl
pps
pr
/etc/printcap
printf
procnto*
/etc/protocols
ps
pwd
python
Q
qbinaudit
QCC, qcc
qconfig
qconn
qcp
qde
qed
qtalk
QWinCfg
R
racoon
/etc/racoon.conf
random
ranlib
rcp
readelf
renice
/etc/resolv.conf
~/.rhosts
rlogin
rlogind
rm
rmdir
rndc
rndc-confgen
rndc.conf
route
route6d
routed
/etc/rpc
rpcbind
rpcgen
rpcinfo
rsh
rshd
rtadvd
/etc/rtadvd.conf
rtc
rtquery
rtsold
ruptime
rwho
rwhod
S
scp
script
sed
seedres
sendnto
/etc/services
setconf
setfacl
setkey
setupbsp
sftp
sftp-server
sh
showlicense
showmem
showmount
show_vesa
shutdown
size
slay
sleep
slogger
slogger2
slog2info
sloginfo
smic
snmpbulkwalk
snmpd
/etc/snmpd.conf
snmpget
snmpgetnext
snmpnetstat
snmpset
snmpstatus
snmptest
snmptranslate
snmptrap
snmptrapd
snmpwalk
/etc/socks.conf
sockstat
sort
spatch
split
spooler
ssh
ssh-add
ssh-agent
~/.ssh/ssh_config, /etc/ssh/ssh_config
ssh-keygen
ssh-keyscan
ssh-keysign
sshd
/etc/ssh/sshd_config
startup-* options
startup-apic
startup-bios, startup-bios-32
strings
strip
stty
su
svn
sync
sysctl
sysinfo
/etc/syslog.conf
syslogd
T
tail
tar
tcpdump
tee
telnet
telnetd
termdef
textto
tftp
tftpd
tic
time
tinit
top
touch
tr
tracelogger
traceprinter
traceroute
traceroute6
true
tsort
tty
U
uesh
umask
umount
uname
unexpand
unifdef
uniq
unlink
unzip
uptime
usb
use
usemsg
uud
uudecode
uue
uuencode
V
vi
view
/etc/view.conf
W
waitfor
wave
waverec
wc
which
who
wiconfig
wlanctl
wpa_cli
wpa_passphrase
wpa_supplicant
X
xargs
Y
Z
zap
zcat
zip
Commonly Used Environment Variables
A
B
C
D
E
F
G
H
I
J
L
M
N
O
P
Q
R
S
T
U
Selecting the Target System
Target selection
Architecture selection
Linker emulation selection
What's New in this Reference?
What's new in the QNX CAR Development Platform?
New entries
Changed content
Errata
What's new in the QNX Software Development Platform 6.5.0 Service Pack 1?
New entries
Changed content
Errata
What's new in the QNX Software Development Platform 6.5.0?
New entries
Deprecated content
Changed content
Errata
What's new in the QNX Software Development Platform 6.4.1?
New entries
Deprecated content
Changed content
Errata
What's new in the QNX Software Development Platform 6.4.0?
New entries
Deprecated content
Changed content
Errata
What's new in QNX Momentics 6.3.2?
New entries
Changed content
Errata
What's new in the QNX Neutrino Core OS 6.3.2?
New entries
Changed content
Errata
What's new in QNX Momentics 6.3.0 Service Pack 2?
New entries
Changed content
Errata
What's new in QNX Momentics 6.3.0 Service Pack 1?
New entries
Changed content
What's new in QNX Momentics 6.3.0?
New entries
Deleted entries
Changed content
Errata
What's new in QNX Momentics 6.2.1?
New entries
Deleted entries
Changed content
Errata
Glossary
Addon Interfaces Library Reference
Overview
An example
Library components
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
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()
asyncmsg_channel_create()
asyncmsg_channel_destroy()
asyncmsg_connect_attach()
asyncmsg_connect_attr()
asyncmsg_connect_detach()
_asyncmsg_connection_attr
asyncmsg_flush()
asyncmsg_free()
asyncmsg_get()
asyncmsg_malloc()
asyncmsg_put(), asyncmsg_putv()
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()
brk()
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
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()
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()
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()
fp_setenv()
fpathconf()
fprintf()
fputc()
fputchar()
fputs()
fputwc()
fputws()
fread()
free()
freeaddrinfo()
freeifaddrs()
freopen(), freopen64()
frexp(), frexpf()
fscanf()
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_item()
hwi_find_tag()
hwi_next_item()
hwi_next_tag()
hwi_off2tag()
hwi_tag2off()
hypot(), hypotf()
I
ICMP
ICMP6
if_freenameindex()
if_indextoname()
if_nameindex()
if_nametoindex()
ifaddrs
ilogb(), ilogbf()
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_file()
img_resize_fs()
img_rotate_ortho()
img_t
img_write()
img_write_file()
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()
InterruptHookIdle()
InterruptHookTrace()
InterruptLock()
InterruptMask()
InterruptStatus()
InterruptUnlock()
InterruptUnmask()
InterruptWait(), InterruptWait_r()
_intr_v86()
_io_connect
_io_connect_ftype_reply
_io_connect_link_reply
io_close()
io_open()
ioctl(), ioctl_socket()
iofdinfo()
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_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()
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_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_addopen()
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_daemon()
procmgr_event_notify()
procmgr_event_notify_add()
procmgr_event_notify_delete()
procmgr_event_trigger()
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()
read_main_config_file()
readblock()
readcond()
readdir(), readdir64()
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
sbrk()
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_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()
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()
slog2c()
slog2f()
slog2fa()
slog2_get_verbosity()
slog2_register()
slog2_reset()
slog2_set_default_buffer()
slog2_set_verbosity()
slogb()
slogf()
slogi()
_smalloc()
snmp_close()
snmp_free_pdu()
snmp_open()
snmp_pdu
snmp_pdu_create()
snmp_read()
snmp_select_info()
snmp_send()
snmp_session
snmp_timeout()
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()
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()
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(), TimerCreate_r()
TimerDestroy(), TimerDestroy_r()
TimerInfo(), TimerInfo_r()
TimerSettime(), TimerSettime_r()
TimerTimeout(), TimerTimeout_r()
times()
timespec
timespec2nsec()
timezone
tm
tmpfile(), tmpfile64()
tmpnam()
tolower()
toupper()
towctrans()
towlower()
towupper()
trace_func_enter()
trace_func_exit()
trace_here()
trace_logb()
trace_logbc()
trace_logf()
trace_logi()
trace_nlogf()
trace_vnlogf()
TraceEvent()
traceparser()
traceparser_cs()
traceparser_cs_range()
traceparser_debug()
traceparser_destroy()
traceparser_get_info()
traceparser_init()
truncate(), truncate64()
ttyname()
ttyname_r()
tzname
tzset()
U
ualarm()
UDP
ultoa(), ulltoa()
umask()
umount()
UNALIGNED_PUT16()
UNALIGNED_PUT32()
UNALIGNED_PUT64()
UNALIGNED_RET16()
UNALIGNED_RET32()
UNALIGNED_RET64()
uname()
ungetc()
ungetwc()
UNIX
unlink()
unlockpt()
unsetenv()
usleep()
utime()
utimes()
utmp
utmpname()
utoa()
V
va_arg()
va_copy()
va_end()
va_start()
valloc()
verr(), verrx()
vfork()
vfprintf()
vfscanf()
vfwprintf()
vfwscanf()
vprintf()
vscanf()
vslog2f()
vslogf()
vsnprintf()
vsprintf()
vsscanf()
vswprintf()
vswscanf()
vsyslog()
vwarn(), vwarnx()
vwprintf()
vwscanf()
W
wait()
wait3()
wait4()
waitfor()
waitid()
waitpid()
warn(), warnx()
wcrtomb()
wcscat()
wcschr()
wcscmp()
wcscoll()
wcscpy()
wcscspn()
wcsftime()
wcslen()
wcsncat()
wcsncmp()
wcsncpy()
wcspbrk()
wcsrchr()
wcsrtombs()
wcsspn()
wcsstr()
wcstod(), wcstof(), wcstold()
wcstoimax(), wcstoumax()
wcstok()
wcstol(), wcstoll()
wcstombs()
wcstoul(), wcstoull()
wcsxfrm()
wctob()
wctomb()
wctrans()
wctype()
wmemchr()
wmemcmp()
wmemcpy()
wmemmove()
wmemset()
wordexp()
wordfree()
wprintf()
write()
writeblock()
writev()
wscanf()
X
Y
y0(), y0f()
y1(), y1f()
yn(), ynf()
Z
SOCKS — A Basic Firewall
About SOCKS
How to SOCKSify a client
What SOCKS expects
Full Safety Information
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
What's New in this Reference?
What's new in QNX Neutrino 6.5.0 Service Pack 1?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.5.0?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.4.1?
New entries
Deprecated content
Changed content
Errata
What's new in QNX Neutrino 6.4.0?
New entries
Deprecated content
Changed content
Errata
What's new in QNX Neutrino 6.3.2?
Errata
What's new in the QNX Neutrino Core OS 6.3.2?
New entries
Changed content
What's new in QNX Neutrino 6.3.0 Service Pack 2?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.3.0 Service Pack 1?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.3.0?
New entries
Deprecated content
What's new in QNX Neutrino 6.2.1?
New entries
Changed content
Errata
What's new in QNX Neutrino 6.2?
New entries
Deprecated content
Errata
What's new in QNX Neutrino 6.1.0?
New entries
Deprecated content
Glossary
Core Networking Stack
User's Guide
Overview
What's new in the networking stack?
Architecture of io-pkt
Threading model
Threading priorities
Components of core networking
Packet Filtering
Packet Filters
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
Supported hardware crypto engines
Wi-Fi Configuration Using WPA and WEP
802.11 a/b/g Wi-Fi Support
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
Background on WPA
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
DHCP server configuration file
Launching the DHCP relay agent on your gateway
Configuring an access point as a router
Transparent Distributed Processing
TDP and io-pkt
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
Migrating from io-net
Overview
Compatibility between io-net and io-pkt
Compatibility issues
Behavioral differences
Simultaneous support
Discontinued features
Using pfil hooks to implement an io-net filter
Glossary
Porting Drivers from io-net to io-pkt
Porting an io-net driver to io-pkt
Shim and io-net drivers
Differences between an io-net driver and an io-pkt driver
Initialization
Transmit
Receive
Link State Change Handling
Control (e.g. devctl() and ioctl())
Shutdown
Threading
Mutexing
Dinkum C and C++ Libraries
Dinkum C99 Library
<assert.h>
assert
<complex.h>
abs, fabs, cabs, cabsf, cabsl
acos, cacos, cacosf, cacosl
acosh, cacosh, cacoshf, cacoshl
arg, carg, cargf, cargl
asin, casin, casinf, casinl
asinh, casinh, casinhf, casinhl
atan, catan, catanf, catanl
atanh, catanh, catanhf, catanhl
complex
_Complex_I
conj, conjf, conjl
cos, ccos, ccosf, ccosl
cosh, ccosh, ccoshf, ccoshl
cproj, cprojf, cprojl
exp, cexp, cexpf, cexpl
I
imag, cimag, cimagf, cimagl
imaginary
_Imaginary_I
log, clog, clogf, clogl
pow, cpow, cpowf, cpowl
real, creal, crealf, creall
sin, csin, csinf, csinl
sinh, csinh, csinhf, csinhl
sqrt, csqrt, csqrtf, csqrtl
tan, ctan, ctanf, ctanl
tanh, ctanh, ctanhf, ctanhl
<ctype.h>
isalnum
isalpha
isblank
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
tolower
toupper
<errno.h>
EDOM
EILSEQ
ERANGE
errno
<fenv.h>
FE_ALL_EXCEPT
FE_DFL_ENV
FE_DIVBYZERO
FE_DOWNWARD
FE_INEXACT
FE_INVALID
FE_TONEAREST
FE_TOWARDZERO
FE_OVERFLOW
FE_UNDERFLOW
FE_UPWARD
fenv_t
feclearexcept
fegettrapenable
fegetenv
fegetexceptflag
fegetround
feholdexcept
feraiseexcept
fesetenv
fesettrapenable
fesetexceptflag
fesetround
fetestexcept
feupdateenv
fexcept_t
<float.h>
DBL_DIG
DBL_EPSILON
DBL_MANT_DIG
DBL_MAX
DBL_MAX_10_EXP
DBL_MAX_EXP
DBL_MIN
DBL_MIN_10_EXP
DBL_MIN_EXP
DECIMAL_DIG
FLT_DIG
FLT_EPSILON
FLT_EVAL_METHOD
FLT_MANT_DIG
FLT_MAX
FLT_MAX_10_EXP
FLT_MAX_EXP
FLT_MIN
FLT_MIN_10_EXP
FLT_MIN_EXP
FLT_RADIX
FLT_ROUNDS
LDBL_DIG
LDBL_EPSILON
LDBL_MANT_DIG
LDBL_MAX
LDBL_MAX_10_EXP
LDBL_MAX_EXP
LDBL_MIN
LDBL_MIN_10_EXP
LDBL_MIN_EXP
<inttypes.h>
imaxabs, abs
imaxdiv, div
imaxdiv_t
PRId8, PRId16, PRId32, PRId64
PRIdFAST8, PRIdFAST16, PRIdFAST32, PRIdFAST64
PRIdLEAST8, PRIdLEAST16, PRIdLEAST32, PRIdLEAST64
PRIdMAX
PRIdPTR
PRIi8, PRIi16, PRIi32, PRIi64
PRIiFAST8, PRIiFAST16, PRIiFAST32, PRIiFAST64
PRIiLEAST8, PRIiLEAST16, PRIiLEAST32, PRIiLEAST64
PRIiMAX
PRIiPTR
PRIo8, PRIo16, PRIo32, PRIo64
PRIoFAST8, PRIoFAST16, PRIoFAST32, PRIoFAST64
PRIoLEAST8, PRIoLEAST16, PRIoLEAST32, PRIoLEAST64
PRIoMAX
PRIoPTR
PRIu8, PRIu16, PRIu32, PRIu64
PRIuFAST8, PRIuFAST16, PRIuFAST32, PRIuFAST64
PRIuLEAST8, PRIuLEAST16, PRIuLEAST32, PRIuLEAST64
PRIuMAX
PRIuPTR
PRIx8, PRIx16, PRIx32, PRIx64
PRIxFAST8, PRIxFAST16, PRIxFAST32, PRIxFAST64
PRIxLEAST8, PRIxLEAST16, PRIxLEAST32, PRIxLEAST64
PRIxMAX
PRIxPTR
PRIX8, PRIX16, PRIX32, PRIX64
PRIXFAST8, PRIXFAST16, PRIXFAST32, PRIXFAST64
PRIXLEAST8, PRIXLEAST16, PRIXLEAST32, PRIXLEAST64
PRIXMAX
PRIXPTR
SCNd8, SCNd16, SCNd32, SCNd64
SCNdFAST8, SCNdFAST16, SCNdFAST32, SCNdFAST64
SCNdLEAST8, SCNdLEAST16, SCNdLEAST32, SCNdLEAST64
SCNdMAX
SCNdPTR
SCNi8, SCNi16, SCNi32, SCNi64
SCNiFAST8, SCNiFAST16, SCNiFAST32, SCNiFAST64
SCNiLEAST8, SCNiLEAST16, SCNiLEAST32, SCNiLEAST64
SCNiMAX
SCNiPTR
SCNo8, SCNo16, SCNo32, SCNo64
SCNoFAST8, SCNoFAST16, SCNoFAST32, SCNoFAST64
SCNoLEAST8, SCNoLEAST16, SCNoLEAST32, SCNoLEAST64
SCNoMAX
SCNoPTR
SCNu8, SCNu16, SCNu32, SCNu64
SCNuFAST8, SCNuFAST16, SCNuFAST32, SCNuFAST64
SCNuLEAST8, SCNuLEAST16, SCNuLEAST32, SCNuLEAST64
SCNuMAX
SCNuPTR
SCNx8, SCNx16, SCNx32, SCNx64
SCNxFAST8, SCNxFAST16, SCNxFAST32, SCNxFAST64
SCNxLEAST8, SCNxLEAST16, SCNxLEAST32, SCNxLEAST64
SCNxMAX
SCNxPTR
strtoimax
strtoumax
wcstoimax
wcstoumax
<iohw.h>
<iso646.h>
and
and_eq
bitand
bitor
compl
not
not_eq
or
or_eq
xor
xor_eq
<limits.h>
CHAR_BIT
CHAR_MAX
CHAR_MIN
INT_MAX
INT_MIN
LLONG_MAX
LLONG_MIN
LONG_MAX
LONG_MIN
MB_LEN_MAX
SCHAR_MAX
SCHAR_MIN
SHRT_MAX
SHRT_MIN
UCHAR_MAX
UINT_MAX
ULLONG_MAX
ULONG_MAX
USHRT_MAX
<locale.h>
LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
lconv
localeconv
NULL
setlocale
<math.h>
abs, fabs, fabsf, fabsl
acos, acosf, acosl
acosh, acoshf, acoshl
asin, asinf, asinl
asinh, asinhf, asinhl
atan, atanf, atanl
atan2, atan2f, atan2l
atanh, atanhf, atanhl
cbrt, cbrtf, cbrtl
ceil, ceilf, ceill
copysign, copysignf, copysignl
cos, cosf, cosl
cosh, coshf, coshl
double_t
erf, erff, erfl
erfc, erfcf, erfcl
exp, expf, expl
expm1, expm1f, expm1l
exp2, exp2f, exp2l
fdim, fdimf, fdiml
float_t
floor, floorf, floorl
fma, fmaf, fmal
fmax, fmaxf, fmaxl
fmin, fminf, fminl
fmod, fmodf, fmodl
fpclassify
FP_FAST_FMA
FP_FAST_FMAF
FP_FAST_FMAL
FP_ILOGB0
FP_ILOGBNAN
FP_INFINITE
FP_NAN
FP_NORMAL
FP_SUBNORMAL
FP_ZERO
frexp, frexpf, frexpl
HUGE_VAL
HUGE_VALF
HUGE_VALL
hypot, hypotf, hypotl
ilogb, ilogbf, ilogbl
INFINITY
isfinite
isgreater
isgreaterequal
isinf
isless
islessequal
islessgreater
isnan
isnormal
isunordered
ldexp, ldexpf, ldexpl
lgamma, lgammaf, lgammal
llrint, llrintf, llrintl
llround, llroundf, llroundl
log, logf, logl
log10, log10f, log10l
log1p, log1pf, log1pl
log2, log2f, log2l
logb, logbf, logbl
lrint, lrintf, lrintl
lround, lroundf, lroundl
MATH_ERRNO
MATH_ERREXCEPT
math_errhandling
modf, modff, modfl
NAN
nan, nanf, nanl
nearbyint, nearbyintf, nearbyintl
nextafter, nextafterf, nextafterl
nexttoward, nexttowardf, nexttowardl
pow, powf, powl
remainder, remainderf, remainderl
remquo, remquof, remquol
rint, rintf, rintl
round, roundf, roundl
scalbln, scalblnf, scalblnl
scalbn, scalbnf, scalbnl
signbit
sin, sinf, sinl
sinh, sinhf, sinhl
sqrt, sqrtf, sqrtl
tan, tanf, tanl
tanh, tanhf, tanhl
tgamma, tgammaf, tgammal
trunc, truncf, truncl
<setjmp.h>
jmp_buf
longjmp
setjmp
<signal.h>
raise
sig_atomic_t
SIGABRT
SIGFPE
SIGILL
SIGINT
signal
SIGSEGV
SIGTERM
SIG_DFL
SIG_ERR
SIG_IGN
<stdarg.h>
va_arg
va_copy
va_end
va_list
va_start
<stdbool.h>
__bool_true_false_are_defined
bool
false
true
<stddef.h>
NULL
offsetof
ptrdiff_t
size_t
wchar_t
<stdint.h>
INT8_C, INT16_C, INT32_C, INT64_C
INT8_MAX, INT16_MAX, INT32_MAX, INT64_MAX
INT8_MIN, INT16_MIN, INT32_MIN, INT64_MIN
int8_t, int16_t, int32_t, int64_t
INT_FAST8_MAX, INT_FAST16_MAX, INT_FAST32_MAX, INT_FAST64_MAX
INT_FAST8_MIN, INT_FAST16_MIN, INT_FAST32_MIN, INT_FAST64_MIN
int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t
INT_LEAST8_MAX, INT_LEAST16_MAX, INT_LEAST32_MAX, INT_LEAST64_MAX
INT_LEAST8_MIN, INT_LEAST16_MIN, INT_LEAST32_MIN, INT_LEAST64_MIN
int_least8_t, int_least16_t, int_least32_t, int_least64_t
INTMAX_C
INTMAX_MAX
INTMAX_MIN
intmax_t
INTPTR_MAX
INTPTR_MIN
intptr_t
PTRDIFF_MAX
PTRDIFF_MIN
SIG_ATOMIC_MAX
SIG_ATOMIC_MIN
SIZE_MAX
UINT8_C, UINT16_C, UINT32_C, UINT64_C
UINT8_MAX, UINT16_MAX, UINT32_MAX, UINT64_MAX
uint8_t, uint16_t, uint32_t, uint64_t
UINT_FAST8_MAX, UINT_FAST16_MAX, UINT_FAST32_MAX, UINT_FAST64_MAX
uint_fast8_t, uint_fast16_t, uint_fast32_t, uint_fast64_t
UINT_LEAST8_MAX, UINT_LEAST16_MAX, UINT_LEAST32_MAX, UINT_LEAST64_MAX
uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t
UINTMAX_C
UINTMAX_MAX
uintmax_t
UINTPTR_MAX
uintptr_t
WCHAR_MAX
WCHAR_MIN
WINT_MAX
WINT_MIN
<stdio.h>
BUFSIZ
clearerr
EOF
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
FILE
FILENAME_MAX
fopen
FOPEN_MAX
fpos_t
fprintf
fputc
fputs
fread
freopen
fscanf
fseek
fsetpos
ftell
fwrite
getc
getchar
gets
_IOFBF
_IOLBF
_IONBF
L_tmpnam
NULL
perror
printf
putc
putchar
puts
remove
rename
rewind
scanf
SEEK_CUR
SEEK_END
SEEK_SET
setbuf
setvbuf
size_t
snprintf
sprintf
sscanf
stderr
stdin
stdout
tmpfile
TMP_MAX
tmpnam
ungetc
vfprintf
vfscanf
vprintf
vscanf
vsnprintf
vsprintf
vsscanf
<stdlib.h>
abort
abs
atexit
atof
atoi
atol
atoll
bsearch
calloc
div
div_t
exit
_Exit
EXIT_FAILURE
EXIT_SUCCESS
free
getenv
labs
llabs
ldiv
lldiv
ldiv_t
lldiv_t
malloc
MB_CUR_MAX
mblen
mbstowcs
mbtowc
NULL
qsort
rand
RAND_MAX
realloc
size_t
srand
strtod
strtof
strtol
strtold
strtoll
strtoul
strtoull
system
wchar_t
wcstombs
wctomb
<string.h>
memchr
memcmp
memcpy
memmove
memset
NULL
size_t
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtok
strxfrm
<tgmath.h>
acos
acosh
carg
asin
asinh
atan
atan2
atanh
cbrt
ceil
cimag
conj
copysign
cos
cosh
cproj
creal
erf
erfc
exp
exp2
expm1
fabs
fdim
floor
fma
fmax
fmin
fmod
frexp
hypot
ilogb
ldexp
lgamma
llrint
llround
log
log10
log1p
log2
logb
lrint
lround
modf
nearbyint
nextafter
nexttoward
pow
remainder
remquo
rint
round
scalbln
scalbn
sin
sinh
sqrt
tan
tanh
tgamma
trunc
<time.h>
asctime
clock
CLOCKS_PER_SEC
clock_t
ctime
difftime
gmtime
localtime
mktime
NULL
size_t
strftime
time
time_t
tm
<uchar.h>
c16rtomb
c32rtomb
char16_t
char32_t
mbrtoc16
mbrtoc32
mbstate_t
NULL
size_t
__STDC_UTF_16__
__STDC_UTF_32__
<wchar.h>
btowc
fgetwc
fgetws
fputwc
fputws
fwide
fwprintf
fwscanf
getwc
getwchar
mbrlen
mbrtowc
mbsinit
mbsrtowcs
mbstate_t
NULL
putwc
putwchar
size_t
swprintf
swscanf
tm
ungetwc
vfwprintf
vfwscanf
vswprintf
vswscanf
vwprintf
vwscanf
WCHAR_MAX
WCHAR_MIN
wchar_t
wcrtomb
wcscat
wcschr
wcscmp
wcscoll
wcscpy
wcscspn
wcsftime
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsrtombs
wcsspn
wcsstr
wcstod
wcstof
wcstok
wcstol
wcstold
wcstoll
wcstoul
wcstoull
wcsxfrm
wctob
WEOF
wint_t
wmemchr
wmemcmp
wmemcpy
wmemmove
wmemset
wprintf
wscanf
<wctype.h>
WEOF
iswalnum
iswalpha
iswblank
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
towctrans
towlower
towupper
wctrans
wctrans_t
wctype
wctype_t
wint_t
C Library Overview
Using Standard C Headers
C Library Conventions
Program Startup and Termination
Characters
Character Sets
Escape Sequences
Trigraphs
Multibyte Characters
Files and Streams
Text and Binary Streams
Byte and Wide Streams
Controlling Streams
Stream States
Formatted Output
Print Formats
Print Functions
Print Conversion Specifiers
Formatted Input
Scan Formats
Scan Functions
Scan Conversion Specifiers
Preprocessing
Expressions
Functions
Index
Dinkum C++ Library
<algorithm>
adjacent_find
binary_search
copy
copy_backward
count
count_if
equal
equal_range
fill
fill_n
find
find_end
find_first_of
find_if
for_each
generate
generate_n
includes
inplace_merge
iter_swap
lexicographical_compare
lower_bound
make_heap
max
max_element
merge
min
min_element
mismatch
next_permutation
nth_element
partial_sort
partial_sort_copy
partition
pop_heap
prev_permutation
push_heap
random_shuffle
remove
remove_copy
remove_copy_if
remove_if
replace
replace_copy
replace_copy_if
replace_if
reverse
reverse_copy
rotate
rotate_copy
search
search_n
set_difference
set_intersection
set_symmetric_difference
set_union
sort
sort_heap
stable_partition
stable_sort
swap
swap_ranges
transform
unique
unique_copy
upper_bound
<bitset>
bitset
bitset::any
bitset::bitset
bitset::count
bitset::element_type
bitset::flip
bitset::none
bitset::operator!=
bitset::operator&=
bitset::operator<<
bitset::operator<<=
bitset::operator==
bitset::operator>>
bitset::operator>>=
bitset::operator[]
bitset::operator^=
bitset::operator|=
bitset::operator~
bitset::reference
bitset::reset
bitset::set
bitset::size
bitset::test
bitset::to_string
bitset::to_ulong
operator&
operator|
operator^
operator<<
operator>>
<complex>
abs
arg
complex
complex::complex
complex::imag
complex::operator*=
complex::operator+=
complex::operator-=
complex::operator/=
complex::operator=
complex::real
complex::value_type
complex<double>
complex<float>
complex<long double>
conj
cos
cosh
exp
imag
log
log10
norm
operator!=
operator*
operator+
operator-
operator/
operator<<
operator==
operator>>
polar
pow
real
sin
sinh
sqrt
__STD_COMPLEX
tan
tanh
<deque>
deque
deque::allocator_type
deque::assign
deque::at
deque::back
deque::begin
deque::clear
deque::const_iterator
deque::const_pointer
deque::const_reference
deque::const_reverse_iterator
deque::deque
deque::difference_type
deque::empty
deque::end
deque::erase
deque::front
deque::get_allocator
deque::insert
deque::iterator
deque::max_size
deque::operator[]
deque::pointer
deque::pop_back
deque::pop_front
deque::push_back
deque::push_front
deque::rbegin
deque::reference
deque::rend
deque::resize
deque::reverse_iterator
deque::size
deque::size_type
deque::swap
deque::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
<exception>
bad_exception
exception
set_terminate
set_unexpected
terminate
terminate_handler
uncaught_exception
unexpected
unexpected_handler
<fstream>
basic_filebuf
basic_filebuf::basic_filebuf
basic_filebuf::char_type
basic_filebuf::close
basic_filebuf::int_type
basic_filebuf::is_open
basic_filebuf::off_type
basic_filebuf::open
basic_filebuf::overflow
basic_filebuf::pbackfail
basic_filebuf::pos_type
basic_filebuf::seekoff
basic_filebuf::seekpos
basic_filebuf::setbuf
basic_filebuf::sync
basic_filebuf::traits_type
basic_filebuf::underflow
basic_fstream
basic_fstream::basic_fstream
basic_fstream::close
basic_fstream::is_open
basic_fstream::open
basic_fstream::rdbuf
basic_ifstream
basic_ifstream::basic_ifstream
basic_ifstream::close
basic_ifstream::is_open
basic_ifstream::open
basic_ifstream::rdbuf
basic_ofstream
basic_ofstream::basic_ofstream
basic_ofstream::close
basic_ofstream::is_open
basic_ofstream::open
basic_ofstream::rdbuf
filebuf
fstream
ifstream
ofstream
wfstream
wifstream
wofstream
wfilebuf
<functional>
binary_function
binary_negate
bind1st
bind2nd
binder1st
binder2nd
const_mem_fun_t
const_mem_fun_ref_t
const_mem_fun1_t
const_mem_fun1_ref_t
divides
equal_to
greater
greater_equal
less
less_equal
logical_and
logical_not
logical_or
mem_fun
mem_fun_ref
mem_fun_t
mem_fun_ref_t
mem_fun1_t
mem_fun1_ref_t
minus
modulus
multiplies
negate
not1
not2
not_equal_to
plus
ptr_fun
unary_function
unary_negate
<hardware>
<hash_map>
hash_compare
hash_map
hash_map::allocator_type
hash_map::begin
hash_map::clear
hash_map::const_iterator
hash_map::const_pointer
hash_map::const_reference
hash_map::const_reverse_iterator
hash_map::count
hash_map::difference_type
hash_map::empty
hash_map::end
hash_map::equal_range
hash_map::erase
hash_map::find
hash_map::get_allocator
hash_map::hash_map
hash_map::insert
hash_map::iterator
hash_map::key_comp
hash_map::key_compare
hash_map::key_type
hash_map::lower_bound
hash_map::mapped_type
hash_map::max_size
hash_map::operator[]
hash_map::pointer
hash_map::rbegin
hash_map::reference
hash_map::rend
hash_map::reverse_iterator
hash_map::size
hash_map::size_type
hash_map::swap
hash_map::upper_bound
hash_map::value_comp
hash_map::value_compare
hash_map::value_type
hash_multimap
hash_multimap::allocator_type
hash_multimap::begin
hash_multimap::clear
hash_multimap::const_iterator
hash_multimap::const_pointer
hash_multimap::const_reference
hash_multimap::const_reverse_iterator
hash_multimap::count
hash_multimap::difference_type
hash_multimap::empty
hash_multimap::end
hash_multimap::equal_range
hash_multimap::erase
hash_multimap::find
hash_multimap::get_allocator
hash_multimap::hash_multimap
hash_multimap::insert
hash_multimap::iterator
hash_multimap::key_comp
hash_multimap::key_compare
hash_multimap::key_type
hash_multimap::lower_bound
hash_multimap::mapped_type
hash_multimap::max_size
hash_multimap::pointer
hash_multimap::rbegin
hash_multimap::reference
hash_multimap::rend
hash_multimap::reverse_iterator
hash_multimap::size
hash_multimap::size_type
hash_multimap::swap
hash_multimap::upper_bound
hash_multimap::value_comp
hash_multimap::value_compare
hash_multimap::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
<hash_set>
hash_multiset
hash_multiset::allocator_type
hash_multiset::begin
hash_multiset::clear
hash_multiset::const_iterator
hash_multiset::const_pointer
hash_multiset::const_reference
hash_multiset::const_reverse_iterator
hash_multiset::count
hash_multiset::difference_type
hash_multiset::empty
hash_multiset::end
hash_multiset::equal_range
hash_multiset::erase
hash_multiset::find
hash_multiset::get_allocator
hash_multiset::hash_multiset
hash_multiset::insert
hash_multiset::iterator
hash_multiset::key_comp
hash_multiset::key_compare
hash_multiset::key_type
hash_multiset::lower_bound
hash_multiset::max_size
hash_multiset::pointer
hash_multiset::rbegin
hash_multiset::reference
hash_multiset::rend
hash_multiset::reverse_iterator
hash_multiset::size
hash_multiset::size_type
hash_multiset::swap
hash_multiset::upper_bound
hash_multiset::value_comp
hash_multiset::value_compare
hash_multiset::value_type
hash_set
hash_set::allocator_type
hash_set::begin
hash_set::clear
hash_set::const_iterator
hash_set::const_pointer
hash_set::const_reference
hash_set::const_reverse_iterator
hash_set::count
hash_set::difference_type
hash_set::empty
hash_set::end
hash_set::equal_range
hash_set::erase
hash_set::find
hash_set::get_allocator
hash_set::hash_set
hash_set::insert
hash_set::iterator
hash_set::key_comp
hash_set::key_compare
hash_set::key_type
hash_set::lower_bound
hash_set::max_size
hash_set::pointer
hash_set::rbegin
hash_set::reference
hash_set::rend
hash_set::reverse_iterator
hash_set::size
hash_set::size_type
hash_set::swap
hash_set::upper_bound
hash_set::value_comp
hash_set::value_compare
hash_set::value_type
swap
operator!=
operator==
operator<
operator<=
operator>
operator>=
<iohw>
<iomanip>
resetiosflags
setbase
setfill
setiosflags
setprecision
setw
<ios>
basic_ios
basic_ios::bad
basic_ios::basic_ios
basic_ios::char_type
basic_ios::clear
basic_ios::copyfmt
basic_ios::eof
basic_ios::exceptions
basic_ios::fail
basic_ios::fill
basic_ios::good
basic_ios::imbue
basic_ios::init
basic_ios::int_type
basic_ios::narrow
basic_ios::off_type
basic_ios::operator void *
basic_ios::operator!
basic_ios::pos_type
basic_ios::rdbuf
basic_ios::rdstate
basic_ios::setstate
basic_ios::tie
basic_ios::traits_type
basic_ios::widen
boolalpha
dec
fixed
fpos
fpos::fpos
fpos::operator!=
fpos::operator+
fpos::operator+=
fpos::operator-
fpos::operator-=
fpos::operator==
fpos::operator streamoff
fpos::state
hex
internal
ios
ios_base
ios_base::event
ios_base::failure
ios_base::flags
ios_base::fmtflags
ios_base::getloc
ios_base::imbue
ios_base::Init
ios_base::ios_base
ios_base::iostate
ios_base::iword
ios_base::openmode
ios_base::operator=
ios_base::precision
ios_base::pword
ios_base::seekdir
ios_base::setf
ios_base::streamoff
ios_base::streampos
ios_base::sync_with_stdio
ios_base::unsetf
ios_base::width
ios_base::xalloc
left
noboolalpha
noshowbase
noshowpoint
noshowpos
noskipws
nounitbuf
nouppercase
oct
right
scientific
showbase
showpoint
showpos
skipws
streamoff
streampos
streamsize
unitbuf
uppercase
wios
wstreampos
<iosfwd>
<iostream>
cerr
cin
clog
cout
wcerr
wcin
wclog
wcout
<istream>
basic_iostream
basic_istream
basic_istream::basic_istream
basic_istream::gcount
basic_istream::get
basic_istream::getline
basic_istream::ignore
basic_istream::operator>>
basic_istream::peek
basic_istream::putback
basic_istream::read
basic_istream::readsome
basic_istream::seekg
basic_istream::sentry
basic_istream::sync
basic_istream::tellg
basic_istream::unget
iostream
istream
operator>>
wiostream
wistream
ws
<iterator>
advance
back_insert_iterator
back_insert_iterator::back_insert_iterator
back_insert_iterator::operator*
back_insert_iterator::operator++
back_insert_iterator::operator=
back_inserter
bidirectional_iterator_tag
distance
forward_iterator_tag
front_insert_iterator
front_insert_iterator::front_insert_iterator
front_insert_iterator::operator*
front_insert_iterator::operator++
front_insert_iterator::operator=
front_inserter
input_iterator_tag
insert_iterator
insert_iterator::insert_iterator
insert_iterator::operator*
insert_iterator::operator++
insert_iterator::operator=
inserter
istream_iterator
istream_iterator::char_type
istream_iterator::istream_iterator
istream_iterator::istream_type
istream_iterator::operator*
istream_iterator::operator++
istream_iterator::traits_type
istreambuf_iterator
istreambuf_iterator::char_type
istreambuf_iterator::equal
istreambuf_iterator::int_type
istreambuf_iterator::istream_type
istreambuf_iterator::istreambuf_iterator
istreambuf_iterator::operator*
istreambuf_iterator::operator++
istreambuf_iterator::streambuf_type
istreambuf_iterator::traits_type
iterator
iterator_traits
operator!=
operator==
operator<
operator<=
operator>
operator>=
operator+
operator-
ostream_iterator
ostream_iterator::char_type
ostream_iterator::operator*
ostream_iterator::operator++
ostream_iterator::operator=
ostream_iterator::ostream_iterator
ostream_iterator::ostream_type
ostream_iterator::traits_type
ostreambuf_iterator
ostreambuf_iterator::char_type
ostreambuf_iterator::failed
ostreambuf_iterator::operator*
ostreambuf_iterator::operator++
ostreambuf_iterator::operator=
ostreambuf_iterator::ostream_type
ostreambuf_iterator::ostreambuf_iterator
ostreambuf_iterator::streambuf_type
ostreambuf_iterator::traits_type
output_iterator_tag
random_access_iterator_tag
reverse_iterator
reverse_iterator::base
reverse_iterator::operator*
reverse_iterator::operator+
reverse_iterator::operator++
reverse_iterator::operator+=
reverse_iterator::operator-
reverse_iterator::operator--
reverse_iterator::operator-=
reverse_iterator::operator->
reverse_iterator::operator[]
<limits>
float_denorm_style
float_round_style
numeric_limits
<list>
list
list::allocator_type
list::assign
list::back
list::begin
list::clear
list::const_iterator
list::const_pointer
list::const_reference
list::const_reverse_iterator
list::difference_type
list::empty
list::end
list::erase
list::front
list::get_allocator
list::insert
list::iterator
list::list
list::max_size
list::merge
list::pointer
list::pop_back
list::pop_front
list::push_back
list::push_front
list::rbegin
list::reference
list::remove
list::remove_if
list::rend
list::resize
list::reverse
list::reverse_iterator
list::size
list::size_type
list::sort
list::splice
list::swap
list::unique
list::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
<locale>
codecvt
codecvt::always_noconv
codecvt::codecvt
codecvt::do_always_noconv
codecvt::do_encoding
codecvt::do_in
codecvt::do_length
codecvt::do_max_length
codecvt::do_out
codecvt::do_unshift
codecvt::extern_type
codecvt::in
codecvt::intern_type
codecvt::length
codecvt::encoding
codecvt::max_length
codecvt::out
codecvt::state_type
codecvt::unshift
codecvt_base
codecvt_byname
collate
collate::char_type
collate::collate
collate::compare
collate::do_compare
collate::do_hash
collate::do_transform
collate::hash
collate::string_type
collate::transform
collate_byname
ctype
ctype::char_type
ctype::ctype
ctype::do_is
ctype::do_narrow
ctype::do_scan_is
ctype::do_scan_not
ctype::do_tolower
ctype::do_toupper
ctype::do_widen
ctype::is
ctype::narrow
ctype::scan_is
ctype::scan_not
ctype::tolower
ctype::toupper
ctype::widen
ctype<char>
ctype_base
ctype_byname
has_facet
isalnum
isalpha
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
locale
locale::category
locale::classic
locale::combine
locale::facet
locale::global
locale::id
locale::locale
locale::name
locale::operator!=
locale::operator()
locale::operator==
messages
messages::char_type
messages::close
messages::do_close
messages::do_get
messages::do_open
messages::get
messages::messages
messages::open
messages::string_type
messages_base
messages_byname
money_base
money_get
money_get::char_type
money_get::do_get
money_get::get
money_get::iter_type
money_get::money_get
money_get::string_type
money_put
money_put::char_type
money_put::do_put
money_put::put
money_put::iter_type
money_put::money_put
money_put::string_type
moneypunct
moneypunct::char_type
moneypunct::curr_symbol
moneypunct::decimal_point
moneypunct::do_curr_symbol
moneypunct::do_decimal_point
moneypunct::do_frac_digits
moneypunct::do_grouping
moneypunct::do_neg_format
moneypunct::do_negative_sign
moneypunct::do_pos_format
moneypunct::do_positive_sign
moneypunct::do_thousands_sep
moneypunct::frac_digits
moneypunct::grouping
moneypunct::moneypunct
moneypunct::neg_format
moneypunct::negative_sign
moneypunct::pos_format
moneypunct::positive_sign
moneypunct::string_type
moneypunct::thousands_sep
moneypunct_byname
num_get
num_get::char_type
num_get::do_get
num_get::get
num_get::iter_type
num_get::num_get
num_put
num_put::char_type
num_put::do_put
num_put::put
num_put::iter_type
num_put::num_put
numpunct
numpunct::char_type
numpunct::decimal_point
numpunct::do_decimal_point
numpunct::do_falsename
numpunct::do_grouping
numpunct::do_thousands_sep
numpunct::do_truename
numpunct::falsename
numpunct::grouping
numpunct::numpunct
numpunct::string_type
numpunct::thousands_sep
numpunct::truename
numpunct_byname
time_base
time_get
time_get::char_type
time_get::date_order
time_get::do_date_order
time_get::do_get_date
time_get::do_get_month
time_get::do_get_time
time_get::do_get_weekday
time_get::do_get_year
time_get::get_date
time_get::get_month
time_get::get_time
time_get::get_weekday
time_get::get_year
time_get::iter_type
time_get::time_get
time_get_byname
time_put
time_put::char_type
time_put::do_put
time_put::put
time_put::iter_type
time_put::time_put
time_put_byname
tolower
toupper
use_facet
<map>
map
map::allocator_type
map::begin
map::clear
map::const_iterator
map::const_pointer
map::const_reference
map::const_reverse_iterator
map::count
map::difference_type
map::empty
map::end
map::equal_range
map::erase
map::find
map::get_allocator
map::insert
map::iterator
map::key_comp
map::key_compare
map::key_type
map::lower_bound
map::map
map::mapped_type
map::max_size
map::operator[]
map::pointer
map::rbegin
map::reference
map::rend
map::reverse_iterator
map::size
map::size_type
map::swap
map::upper_bound
map::value_comp
map::value_compare
map::value_type
multimap
multimap::allocator_type
multimap::begin
multimap::clear
multimap::const_iterator
multimap::const_pointer
multimap::const_reference
multimap::const_reverse_iterator
multimap::count
multimap::difference_type
multimap::empty
multimap::end
multimap::equal_range
multimap::erase
multimap::find
multimap::get_allocator
multimap::insert
multimap::iterator
multimap::key_comp
multimap::key_compare
multimap::key_type
multimap::lower_bound
multimap::mapped_type
multimap::max_size
multimap::multimap
multimap::pointer
multimap::rbegin
multimap::reference
multimap::rend
multimap::reverse_iterator
multimap::size
multimap::size_type
multimap::swap
multimap::upper_bound
multimap::value_comp
multimap::value_compare
multimap::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
<memory>
allocator
allocator::const_reference
allocator::construct
allocator::destroy
allocator::pointer
allocator::rebind
allocator::reference
allocator::value_type
allocator<void>
auto_ptr
auto_ptr::auto_ptr
auto_ptr::~auto_ptr
auto_ptr::element_type
auto_ptr::get
auto_ptr::operator=
auto_ptr::operator*
auto_ptr::operator->
auto_ptr::operator auto_ptr<Other>
auto_ptr::operator auto_ptr_ref<Other>
auto_ptr::release
auto_ptr::reset
auto_ptr_ref
get_temporary_buffer
operator!=
operator==
uninitialized_copy
uninitialized_fill
uninitialized_fill_n
<new>
bad_alloc
new_handler
nothrow
nothrow_t
operator delete
operator delete[]
operator new
operator new[]
set_new_handler
<numeric>
accumulate
adjacent_difference
inner_product
partial_sum
<ostream>
basic_ostream
basic_ostream::basic_ostream
basic_ostream::flush
basic_ostream::operator<<
basic_ostream::put
basic_ostream::seekp
basic_ostream::sentry
basic_ostream::tellp
basic_ostream::write
endl
ends
flush
operator<<
ostream
wostream
<queue>
operator!=
operator==
operator<
operator<=
operator>
operator>=
priority_queue
priority_queue::container_type
priority_queue::empty
priority_queue::pop
priority_queue::priority_queue
priority_queue::push
priority_queue::size
priority_queue::size_type
priority_queue::top
priority_queue::value_type
queue
queue::back
queue::container_type
queue::empty
queue::front
queue::pop
queue::push
queue::queue
queue::size
queue::size_type
queue::value_type
<set>
multiset
multiset::allocator_type
multiset::begin
multiset::clear
multiset::const_iterator
multiset::const_pointer
multiset::const_reference
multiset::const_reverse_iterator
multiset::count
multiset::difference_type
multiset::empty
multiset::end
multiset::equal_range
multiset::erase
multiset::find
multiset::get_allocator
multiset::insert
multiset::iterator
multiset::key_comp
multiset::key_compare
multiset::key_type
multiset::lower_bound
multiset::multiset
multiset::max_size
multiset::pointer
multiset::rbegin
multiset::reference
multiset::rend
multiset::reverse_iterator
multiset::size
multiset::size_type
multiset::swap
multiset::upper_bound
multiset::value_comp
multiset::value_compare
multiset::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
set
set::allocator_type
set::begin
set::clear
set::const_iterator
set::const_pointer
set::const_reference
set::const_reverse_iterator
set::count
set::difference_type
set::empty
set::end
set::equal_range
set::erase
set::find
set::get_allocator
set::insert
set::iterator
set::key_comp
set::key_compare
set::key_type
set::lower_bound
set::max_size
set::pointer
set::rbegin
set::reference
set::rend
set::reverse_iterator
set::set
set::size
set::size_type
set::swap
set::upper_bound
set::value_comp
set::value_compare
set::value_type
swap
<slist>
operator!=
operator==
operator<
operator<=
operator>
operator>=
slist
slist::allocator_type
slist::assign
slist::back
slist::begin
slist::clear
slist::const_iterator
slist::const_pointer
slist::const_reference
slist::difference_type
slist::empty
slist::end
slist::erase
slist::front
slist::get_allocator
slist::insert
slist::iterator
slist::max_size
slist::merge
slist::pointer
slist::pop_back
slist::pop_front
slist::previous
slist::push_back
slist::push_front
slist::reference
slist::remove
slist::remove_if
slist::resize
slist::reverse
slist::size
slist::size_type
slist::slist
slist::sort
slist::splice
slist::swap
slist::unique
slist::value_type
swap
<sstream>
basic_stringbuf
basic_stringbuf::allocator_type
basic_stringbuf::basic_stringbuf
basic_stringbuf::char_type
basic_stringbuf::int_type
basic_stringbuf::off_type
basic_stringbuf::overflow
basic_stringbuf::pbackfail
basic_stringbuf::pos_type
basic_stringbuf::seekoff
basic_stringbuf::seekpos
basic_stringbuf::str
basic_stringbuf::traits_type
basic_stringbuf::underflow
basic_istringstream
basic_istringstream::allocator_type
basic_istringstream::basic_istringstream
basic_istringstream::rdbuf
basic_istringstream::str
basic_ostringstream
basic_ostringstream::allocator_type
basic_ostringstream::basic_ostringstream
basic_ostringstream::rdbuf
basic_ostringstream::str
basic_stringstream
basic_stringstream::allocator_type
basic_stringstream::basic_stringstream
basic_stringstream::rdbuf
basic_stringstream::str
istringstream
ostringstream
stringbuf
stringstream
wistringstream
wostringstream
wstringbuf
wstringstream
<stack>
operator!=
operator==
operator<
operator<=
operator>
operator>=
stack
stack::container_type
stack::empty
stack::pop
stack::push
stack::size
stack::size_type
stack::stack
stack::top
stack::value_type
<stdexcept>
domain_error
invalid_argument
length_error
logic_error
out_of_range
overflow_error
range_error
runtime_error
underflow_error
<streambuf>
basic_streambuf
basic_streambuf::basic_streambuf
basic_streambuf::char_type
basic_streambuf::eback
basic_streambuf::egptr
basic_streambuf::epptr
basic_streambuf::gbump
basic_streambuf::getloc
basic_streambuf::gptr
basic_streambuf::imbue
basic_streambuf::in_avail
basic_streambuf::int_type
basic_streambuf::off_type
basic_streambuf::overflow
basic_streambuf::pbackfail
basic_streambuf::pbase
basic_streambuf::pbump
basic_streambuf::pos_type
basic_streambuf::pptr
basic_streambuf::pubimbue
basic_streambuf::pubseekoff
basic_streambuf::pubseekpos
basic_streambuf::pubsetbuf
basic_streambuf::pubsync
basic_streambuf::sbumpc
basic_streambuf::seekoff
basic_streambuf::seekpos
basic_streambuf::setbuf
basic_streambuf::setg
basic_streambuf::setp
basic_streambuf::sgetc
basic_streambuf::sgetn
basic_streambuf::showmanyc
basic_streambuf::snextc
basic_streambuf::sputbackc
basic_streambuf::sputc
basic_streambuf::sputn
basic_streambuf::stossc
basic_streambuf::sungetc
basic_streambuf::sync
basic_streambuf::traits_type
basic_streambuf::uflow
basic_streambuf::underflow
basic_streambuf::xsgetn
basic_streambuf::xsputn
streambuf
wstreambuf
<string>
basic_string
basic_string::allocator_type
basic_string::append
basic_string::assign
basic_string::at
basic_string::basic_string
basic_string::begin
basic_string::c_str
basic_string::capacity
basic_string::clear
basic_string::compare
basic_string::const_iterator
basic_string::const_pointer
basic_string::const_reference
basic_string::const_reverse_iterator
basic_string::copy
basic_string::data
basic_string::difference_type
basic_string::empty
basic_string::end
basic_string::erase
basic_string::find
basic_string::find_first_not_of
basic_string::find_first_of
basic_string::find_last_not_of
basic_string::find_last_of
basic_string::get_allocator
basic_string::insert
basic_string::iterator
basic_string::length
basic_string::max_size
basic_string::npos
basic_string::operator+=
basic_string::operator=
basic_string::operator[]
basic_string::pointer
basic_string::push_back
basic_string::rbegin
basic_string::reference
basic_string::rend
basic_string::replace
basic_string::reserve
basic_string::resize
basic_string::reverse_iterator
basic_string::rfind
basic_string::size
basic_string::size_type
basic_string::substr
basic_string::swap
basic_string::traits_type
basic_string::value_type
char_traits
char_traits::assign
char_traits::char_type
char_traits::compare
char_traits::copy
char_traits::eof
char_traits::eq
char_traits::eq_int_type
char_traits::find
char_traits::int_type
char_traits::length
char_traits::lt
char_traits::move
char_traits::not_eof
char_traits::off_type
char_traits::pos_type
char_traits::state_type
char_traits::to_char_type
char_traits::to_int_type
char_traits<char>
char_traits<wchar_t>
getline
operator+
operator!=
operator==
operator<
operator<<
operator<=
operator>
operator>=
operator>>
string
swap
wstring
<strstream>
strstreambuf
strstreambuf::freeze
strstreambuf::pcount
strstreambuf::overflow
strstreambuf::pbackfail
strstreambuf::seekoff
strstreambuf::seekpos
strstreambuf::str
strstreambuf::strstreambuf
strstreambuf::underflow
istrstream
istrstream::istrstream
istrstream::rdbuf
istrstream::str
ostrstream
ostrstream::freeze
ostrstream::ostrstream
ostrstream::pcount
ostrstream::rdbuf
ostrstream::str
strstream
strstream::freeze
strstream::pcount
strstream::strstream
strstream::rdbuf
strstream::str
<typeinfo>
bad_cast
bad_typeid
type_info
type_info::before
type_info::name
<utility>
make_pair
operator!=
operator==
operator<
operator<=
operator>
operator>=
pair
<valarray>
abs
acos
asin
atan
atan2
cos
cosh
exp
gslice
gslice::gslice
gslice::size
gslice::start
gslice::stride
gslice_array
indirect_array
log
log10
mask_array
operator!=
operator%
operator&
operator&&
operator>
operator>>
operator>=
operator<
operator<<
operator<=
operator*
operator+
operator-
operator/
operator==
operator^
operator|
operator||
pow
sin
sinh
slice
slice::slice
slice::size
slice::start
slice::stride
slice_array
sqrt
tan
tanh
valarray
valarray::apply
valarray::cshift
valarray::max
valarray::min
valarray::operator!
valarray::operator%=
valarray::operator&=
valarray::operator>>=
valarray::operator<<=
valarray::operator*=
valarray::operator+
valarray::operator+=
valarray::operator-
valarray::operator-=
valarray::operator/=
valarray::operator=
valarray::operator[]
valarray::operator^=
valarray::operator|=
valarray::operator~
valarray::resize
valarray::shift
valarray::size
valarray::sum
valarray::valarray
valarray::value_type
valarray<bool>
<vector>
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
vector
vector::allocator_type
vector::assign
vector::at
vector::back
vector::begin
vector::capacity
vector::clear
vector::const_iterator
vector::const_pointer
vector::const_reference
vector::const_reverse_iterator
vector::difference_type
vector::empty
vector::end
vector::erase
vector::front
vector::get_allocator
vector::insert
vector::iterator
vector::max_size
vector::operator[]
vector::pointer
vector::pop_back
vector::push_back
vector::rbegin
vector::reference
vector::rend
vector::reserve
vector::resize
vector::reverse_iterator
vector::size
vector::size_type
vector::swap
vector::value_type
vector::vector
<cassert>
<cctype>
<cerrno>
<cfloat>
<ciso646>
<climits>
<clocale>
<cmath>
<csetjmp>
<csignal>
<cstdarg>
<cstddef>
<cstdio>
<cstdlib>
<cstring>
<ctime>
<cwchar>
<cwctype>
<assert.h>
assert
<ctype.h>
isalnum
isalpha
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
tolower
toupper
<errno.h>
EDOM
EILSEQ
ERANGE
errno
<float.h>
DBL_DIG
DBL_EPSILON
DBL_MANT_DIG
DBL_MAX
DBL_MAX_10_EXP
DBL_MAX_EXP
DBL_MIN
DBL_MIN_10_EXP
DBL_MIN_EXP
FLT_DIG
FLT_EPSILON
FLT_MANT_DIG
FLT_MAX
FLT_MAX_10_EXP
FLT_MAX_EXP
FLT_MIN
FLT_MIN_10_EXP
FLT_MIN_EXP
FLT_RADIX
FLT_ROUNDS
LDBL_DIG
LDBL_EPSILON
LDBL_MANT_DIG
LDBL_MAX
LDBL_MAX_10_EXP
LDBL_MAX_EXP
LDBL_MIN
LDBL_MIN_10_EXP
LDBL_MIN_EXP
<iso646.h>
and
and_eq
bitand
bitor
compl
not
not_eq
or
or_eq
xor
xor_eq
<limits.h>
CHAR_BIT
CHAR_MAX
CHAR_MIN
INT_MAX
INT_MIN
LONG_MAX
LONG_MIN
MB_LEN_MAX
SCHAR_MAX
SCHAR_MIN
SHRT_MAX
SHRT_MIN
UCHAR_MAX
UINT_MAX
ULONG_MAX
USHRT_MAX
<locale.h>
LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
lconv
localeconv
NULL
setlocale
<math.h>
HUGE_VAL
<setjmp.h>
jmp_buf
longjmp
setjmp
<signal.h>
raise
sig_atomic_t
SIGABRT
SIGFPE
SIGILL
SIGINT
signal
SIGSEGV
SIGTERM
SIG_DFL
SIG_ERR
SIG_IGN
<stdarg.h>
va_arg
va_end
va_list
va_start
<stddef.h>
NULL
offsetof
ptrdiff_t
size_t
wchar_t
<stdio.h>
BUFSIZ
clearerr
EOF
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
FILE
FILENAME_MAX
fopen
FOPEN_MAX
fpos_t
fprintf
fputc
fputs
fread
freopen
fscanf
fseek
fsetpos
ftell
fwrite
getc
getchar
gets
_IOFBF
_IOLBF
_IONBF
L_tmpnam
NULL
perror
printf
putc
putchar
puts
remove
rename
rewind
scanf
SEEK_CUR
SEEK_END
SEEK_SET
setbuf
setvbuf
size_t
sprintf
sscanf
stderr
stdin
stdout
tmpfile
TMP_MAX
tmpnam
ungetc
vfprintf
vprintf
vsprintf
<stdlib.h>
abort
abs
atexit
atof
atoi
atol
bsearch
calloc
div
div_t
exit
EXIT_FAILURE
EXIT_SUCCESS
free
getenv
labs
ldiv
ldiv_t
malloc
MB_CUR_MAX
mblen
mbstowcs
mbtowc
NULL
qsort
rand
RAND_MAX
realloc
size_t
srand
strtod
strtol
strtoul
system
wchar_t
wcstombs
wctomb
<string.h>
memchr
memcmp
memcpy
memmove
memset
NULL
size_t
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtok
strxfrm
<time.h>
asctime
clock
CLOCKS_PER_SEC
clock_t
ctime
difftime
gmtime
localtime
mktime
NULL
size_t
strftime
time
time_t
tm
<uchar.h>
c16rtomb
c32rtomb
char16_t
char32_t
mbrtoc16
mbrtoc32
mbstate_t
NULL
size_t
__STDC_UTF_16__
__STDC_UTF_32__
<wchar.h>
btowc
fgetwc
fgetws
fputwc
fputws
fwide
fwprintf
fwscanf
getwc
getwchar
mbrlen
mbrtowc
mbsinit
mbsrtowcs
mbstate_t
NULL
putwc
putwchar
size_t
swprintf
swscanf
tm
ungetwc
vfwprintf
vswprintf
vwprintf
WCHAR_MAX
WCHAR_MIN
wchar_t
wcrtomb
wcscat
wcschr
wcscmp
wcscoll
wcscpy
wcscspn
wcsftime
wcslen
wcsncat
wcsncmp
wcsncpy
wcspbrk
wcsrchr
wcsrtombs
wcsspn
wcsstr
wcstod
wcstok
wcstol
wcstoul
wcsxfrm
wctob
WEOF
wint_t
wmemchr
wmemcmp
wmemcpy
wmemmove
wmemset
wprintf
wscanf
<wctype.h>
WEOF
iswalnum
iswalpha
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
towctrans
towlower
towupper
wctrans
wctrans_t
wctype
wctype_t
wint_t
<fstream.h>
<iomanip.h>
<iostream.h>
<new.h>
C++ Library Overview
Using C++ Library Headers
C++ Library Conventions
Iostreams Conventions
C Library Overview
Using Standard C Headers
C Library Conventions
Characters
Character Sets
Escape Sequences
Trigraphs
Multibyte Characters
Files and Streams
Text and Binary Streams
Byte and Wide Streams
Controlling Streams
Stream States
Formatted Output
Print Formats
Print Functions
Formatted Input
Scan Formats
Scan Functions
Scan Conversion Specifiers
STL Conventions
Iterator Conventions
Algorithm Conventions
Locale Definitions
Containers
Container
Container::begin
Container::clear
Container::const_iterator
Container::const_reference
Container::const_reverse_iterator
Container::difference_type
Container::empty
Container::end
Container::erase
Container::iterator
Container::max_size
Container::rbegin
Container::reference
Container::rend
Container::reverse_iterator
Container::size
Container::size_type
Container::swap
Container::value_type
operator!=
operator==
operator<
operator<=
operator>
operator>=
swap
Preprocessing
Expressions
Functions
Index
Dinkum Embedded C++ Library
<complex>
abs
arg
complex
complex::complex
complex::imag
complex::operator*=
complex::operator+=
complex::operator-=
complex::operator/=
complex::operator=
complex::real
complex::value_type
conj
cos
cosh
double_complex
exp
float_complex
imag
log
log10
norm
operator!=
operator*
operator+
operator-
operator/
operator<<
operator==
operator>>
polar
pow
real
sin
sinh
sqrt
__STD_COMPLEX
tan
tanh
<exception>
bad_exception
exception
set_terminate
set_unexpected
terminate
terminate_handler
uncaught_exception
unexpected
unexpected_handler
<fstream>
filebuf
filebuf::filebuf
filebuf::char_type
filebuf::close
filebuf::int_type
filebuf::is_open
filebuf::off_type
filebuf::open
filebuf::overflow
filebuf::pbackfail
filebuf::pos_type
filebuf::seekoff
filebuf::seekpos
filebuf::setbuf
filebuf::sync
filebuf::traits_type
filebuf::underflow
ifstream
ifstream::ifstream
ifstream::close
ifstream::is_open
ifstream::open
ifstream::rdbuf
ofstream
ofstream::ofstream
ofstream::close
ofstream::is_open
ofstream::open
ofstream::rdbuf
<iomanip>
resetiosflags
setbase
setfill
setiosflags
setprecision
setw
<ios>
ios
ios::bad
ios::ios
ios::char_type
ios::clear
ios::copyfmt
ios::eof
ios::exceptions
ios::fail
ios::fill
ios::good
ios::imbue
ios::init
ios::int_type
ios::narrow
ios::off_type
ios::operator void *
ios::operator!
ios::pos_type
ios::rdbuf
ios::rdstate
ios::setstate
ios::tie
ios::traits_type
ios::widen
boolalpha
dec
fixed
fpos
fpos::fpos
fpos::operator!=
fpos::operator+
fpos::operator+=
fpos::operator-
fpos::operator-=
fpos::operator==
fpos::operator streamoff
fpos::state
hex
internal
ios_base
ios_base::event
ios_base::failure
ios_base::flags
ios_base::fmtflags
ios_base::getloc
ios_base::imbue
ios_base::Init
ios_base::ios_base
ios_base::iostate
ios_base::iword
ios_base::openmode
ios_base::operator=
ios_base::precision
ios_base::pword
ios_base::seekdir
ios_base::setf
ios_base::streamoff
ios_base::streampos
ios_base::sync_with_stdio
ios_base::unsetf
ios_base::width
ios_base::xalloc
left
locale
mbstate_t
noboolalpha
noshowbase
noshowpoint
noshowpos
noskipws
nounitbuf
nouppercase
oct
right
scientific
showbase
showpoint
showpos
skipws
streamoff
streampos
streamsize
unitbuf
uppercase
<iosfwd>
<iostream>
cin
cout
<istream>
istream
istream::istream
istream::gcount
istream::get
istream::getline
istream::ignore
istream::operator>>
istream::peek
istream::putback
istream::read
istream::readsome
istream::seekg
istream::sentry
istream::sync
istream::tellg
istream::unget
operator>>
ws
<new>
bad_alloc
new_handler
nothrow
nothrow_t
operator delete
operator delete[]
operator new
operator new[]
set_new_handler
<ostream>
ostream
ostream::ostream
ostream::flush
ostream::operator<<
ostream::put
ostream::seekp
ostream::sentry
ostream::tellp
ostream::write
endl
ends
flush
operator<<
<sstream>
stringbuf
stringbuf::allocator_type
stringbuf::stringbuf
stringbuf::char_type
stringbuf::int_type
stringbuf::off_type
stringbuf::overflow
stringbuf::pbackfail
stringbuf::pos_type
stringbuf::seekoff
stringbuf::seekpos
stringbuf::str
stringbuf::traits_type
stringbuf::underflow
istringstream
istringstream::allocator_type
istringstream::istringstream
istringstream::rdbuf
istringstream::str
ostringstream
ostringstream::allocator_type
ostringstream::ostringstream
ostringstream::rdbuf
ostringstream::str
<stdexcept>
domain_error
invalid_argument
length_error
logic_error
out_of_range
overflow_error
range_error
runtime_error
underflow_error
<streambuf>
streambuf
streambuf::streambuf
streambuf::char_type
streambuf::eback
streambuf::egptr
streambuf::epptr
streambuf::gbump
streambuf::getloc
streambuf::gptr
streambuf::imbue
streambuf::in_avail
streambuf::int_type
streambuf::off_type
streambuf::overflow
streambuf::pbackfail
streambuf::pbase
streambuf::pbump
streambuf::pos_type
streambuf::pptr
streambuf::pubimbue
streambuf::pubseekoff
streambuf::pubseekpos
streambuf::pubsetbuf
streambuf::pubsync
streambuf::sbumpc
streambuf::seekoff
streambuf::seekpos
streambuf::setbuf
streambuf::setg
streambuf::setp
streambuf::sgetc
streambuf::sgetn
streambuf::showmanyc
streambuf::snextc
streambuf::sputbackc
streambuf::sputc
streambuf::sputn
streambuf::stossc
streambuf::sungetc
streambuf::sync
streambuf::traits_type
streambuf::uflow
streambuf::underflow
streambuf::xsgetn
streambuf::xsputn
<string>
string
string::allocator_type
string::append
string::assign
string::at
string::string
string::begin
string::c_str
string::capacity
string::clear
string::compare
string::const_iterator
string::const_pointer
string::const_reference
string::const_reverse_iterator
string::copy
string::data
string::difference_type
string::empty
string::end
string::erase
string::find
string::find_first_not_of
string::find_first_of
string::find_last_not_of
string::find_last_of
string::get_allocator
string::insert
string::iterator
string::length
string::max_size
string::npos
string::operator+=
string::operator=
string::operator[]
string::pointer
string::push_back
string::rbegin
string::reference
string::rend
string::replace
string::reserve
string::resize
string::reverse_iterator
string::rfind
string::size
string::size_type
string::substr
string::swap
string::traits_type
string::value_type
char_allocator
char_allocator::operator==
char_traits
char_traits::assign
char_traits::char_type
char_traits::compare
char_traits::copy
char_traits::eof
char_traits::eq
char_traits::eq_int_type
char_traits::find
char_traits::int_type
char_traits::length
char_traits::lt
char_traits::move
char_traits::not_eof
char_traits::off_type
char_traits::pos_type
char_traits::state_type
char_traits::to_char_type
char_traits::to_int_type
getline
operator+
operator!=
operator==
operator<
operator<<
operator<=
operator>
operator>=
operator>>
swap
<strstream>
strstreambuf
strstreambuf::freeze
strstreambuf::pcount
strstreambuf::overflow
strstreambuf::pbackfail
strstreambuf::seekoff
strstreambuf::seekpos
strstreambuf::str
strstreambuf::strstreambuf
strstreambuf::underflow
istrstream
istrstream::istrstream
istrstream::rdbuf
istrstream::str
ostrstream
ostrstream::freeze
ostrstream::ostrstream
ostrstream::pcount
ostrstream::rdbuf
ostrstream::str
<cassert>
<cctype>
<cerrno>
<cfloat>
<climits>
<clocale>
<cmath>
<csetjmp>
<csignal>
<cstdarg>
<cstddef>
<cstdio>
<cstdlib>
<cstring>
<ctime>
<assert.h>
assert
<ctype.h>
isalnum
isalpha
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
tolower
toupper
<errno.h>
EDOM
EILSEQ
ERANGE
errno
<float.h>
DBL_DIG
DBL_EPSILON
DBL_MANT_DIG
DBL_MAX
DBL_MAX_10_EXP
DBL_MAX_EXP
DBL_MIN
DBL_MIN_10_EXP
DBL_MIN_EXP
FLT_DIG
FLT_EPSILON
FLT_MANT_DIG
FLT_MAX
FLT_MAX_10_EXP
FLT_MAX_EXP
FLT_MIN
FLT_MIN_10_EXP
FLT_MIN_EXP
FLT_RADIX
FLT_ROUNDS
LDBL_DIG
LDBL_EPSILON
LDBL_MANT_DIG
LDBL_MAX
LDBL_MAX_10_EXP
LDBL_MAX_EXP
LDBL_MIN
LDBL_MIN_10_EXP
LDBL_MIN_EXP
<limits.h>
CHAR_BIT
CHAR_MAX
CHAR_MIN
INT_MAX
INT_MIN
LONG_MAX
LONG_MIN
MB_LEN_MAX
SCHAR_MAX
SCHAR_MIN
SHRT_MAX
SHRT_MIN
UCHAR_MAX
UINT_MAX
ULONG_MAX
USHRT_MAX
<locale.h>
LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
lconv
localeconv
NULL
setlocale
<math.h>
abs, fabs, fabsf, fabsl
acos, acosf, acosl
asin, asinf, asinl
atan, atanf, atanl
atan2, atan2f, atan2l
ceil, ceilf, ceill
cos, cosf, cosl
cosh, coshf, coshl
exp, expf, expl
floor, floorf, floorl
fmod, fmodf, fmodl
frexp, frexpf, frexpl
HUGE_VAL
ldexp, ldexpf, ldexpl
log, logf, logl
log10, log10f, log10l
modf, modff, modfl
pow, powf, powl
sin, sinf, sinl
sinh, sinhf, sinhl
sqrt, sqrtf, sqrtl
tan, tanf, tanl
tanh, tanhf, tanhl
<setjmp.h>
jmp_buf
longjmp
setjmp
<signal.h>
raise
sig_atomic_t
SIGABRT
SIGFPE
SIGILL
SIGINT
signal
SIGSEGV
SIGTERM
SIG_DFL
SIG_ERR
SIG_IGN
<stdarg.h>
va_arg
va_end
va_list
va_start
<stddef.h>
NULL
offsetof
ptrdiff_t
size_t
wchar_t
<stdio.h>
BUFSIZ
clearerr
EOF
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
FILE
FILENAME_MAX
fopen
FOPEN_MAX
fpos_t
fprintf
fputc
fputs
fread
freopen
fscanf
fseek
fsetpos
ftell
fwrite
getc
getchar
gets
_IOFBF
_IOLBF
_IONBF
L_tmpnam
NULL
perror
printf
putc
putchar
puts
remove
rename
rewind
scanf
SEEK_CUR
SEEK_END
SEEK_SET
setbuf
setvbuf
size_t
sprintf
sscanf
stderr
stdin
stdout
tmpfile
TMP_MAX
tmpnam
ungetc
vfprintf
vprintf
vsprintf
<stdlib.h>
abort
abs
atexit
atof
atoi
atol
bsearch
calloc
div
div_t
exit
EXIT_FAILURE
EXIT_SUCCESS
free
getenv
labs
ldiv
ldiv_t
malloc
MB_CUR_MAX
mblen
mbstowcs
mbtowc
NULL
qsort
rand
RAND_MAX
realloc
size_t
srand
strtod
strtol
strtoul
system
wchar_t
wcstombs
wctomb
<string.h>
memchr
memcmp
memcpy
memmove
memset
NULL
size_t
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtok
strxfrm
<time.h>
asctime
clock
CLOCKS_PER_SEC
clock_t
ctime
difftime
gmtime
localtime
mktime
NULL
size_t
strftime
time
time_t
tm
<fstream.h>
<iomanip.h>
<iostream.h>
<new.h>
C++ Library Overview
Using C++ Library Headers
C++ Library Conventions
Iostreams Conventions
Program Startup and Termination
Exceptions
C Library Overview
Using Standard C Headers
C Library Conventions
Program Startup and Termination
Characters
Character Sets
Escape Sequences
Trigraphs
Multibyte Characters
Files and Streams
Text and Binary Streams
Controlling Streams
Stream States
Formatted Output
Print Formats
Print Functions
Print Conversion Specifiers
Formatted Input
Scan Formats
Scan Functions
Scan Conversion Specifiers
Preprocessing
Expressions
Functions
Index
Driver Development Kit Guides
Audio Devices
About the Audio DDK
Supported features
Assumptions
Building DDKs
Evaluating Your Card
Organization of a Driver
The QNX audio system and driver
DDK source code
Writing an Audio HW DLL
Opaque data types
Custom data types
ctrl_init()
ctrl_destroy()
Debugging an audio driver
Handling Analog Audio Data
Writing an analog mixer
Mixer elements and routes
Supported element types
Mixer groups
Designing mixer groups
Coding the mixer
Initialization
Building the mixer
Using a standard mixer DLL
Initialization
Testing the code
Handling PCM Audio Data
What's a PCM device?
Creating a PCM device
ado_pcm_create()
How does the PCM stream operate?
API Reference
ado_attach_interrupt()
ado_calloc()
ado_card_set_longname()
ado_card_set_shortname()
ado_debug()
ado_device_mmap()
ado_device_munmap()
ado_error()
ado_free()
ado_malloc()
ado_memory_dump()
ado_mixer_capture_group_create()
ado_mixer_create()
ado_mixer_dll()
ado_mixer_element_accu1()
ado_mixer_element_accu2()
ado_mixer_element_accu3()
ado_mixer_element_io()
ado_mixer_element_mux1()
ado_mixer_element_mux2()
ado_mixer_element_notify()
ado_mixer_element_pcm1()
ado_mixer_element_pcm2()
ado_mixer_element_route_add()
ado_mixer_element_sw1()
ado_mixer_element_sw2()
ado_mixer_element_sw3()
ado_mixer_element_vol_range_max()
ado_mixer_element_vol_range_min()
ado_mixer_element_volume1()
ado_mixer_find_element()
ado_mixer_find_group()
ado_mixer_get_context()
ado_mixer_get_element_instance_data()
ado_mixer_lock()
ado_mixer_playback_group_create()
ado_mixer_set_destroy_func()
ado_mixer_set_name()
ado_mixer_set_reset_func()
ado_mixer_switch_new()
ado_mixer_unlock()
ado_mutex_destroy()
ado_mutex_init()
ado_mutex_lock()
ado_mutex_unlock()
ado_pci
ado_pci_device()
ado_pci_release()
ado_pcm_cap_t
ado_pcm_config_t
ado_pcm_chn_mixer()
ado_pcm_create()
ado_pcm_dma_int_size()
ado_pcm_format_bit_width()
ado_pcm_hw_t
ado_pcm_subchn_caps()
ado_pcm_subchn_is_channel()
ado_pcm_subchn_mixer()
ado_pcm_subchn_mixer_create()
ado_pcm_subchn_mixer_destroy()
ado_pcm_sw_mix()
ado_realloc()
ado_rwlock_destroy()
ado_rwlock_init()
ado_rwlock_rdlock()
ado_rwlock_unlock()
ado_rwlock_wrlock()
ado_shm_alloc()
ado_shm_free()
ado_shm_mmap()
ado_strdup()
dma_interrupt()
Supported Codecs
Audio Codec 97 (AC97)
AK4531
Sample Mixer Source
Glossary
Character Devices
About the Character DDK
Assumptions
Building DDKs
Character I/O Architecture
Overview
DDK source code
8250 Serial Driver
Creating a serial driver
Registers
Source code
Interrupts
Functions
create_device()
enable_device()
options()
query_default_device()
ser_intr()
ser_stty()
set_port()
sys_ttyinit()
tto()
Character I/O Library
iochar_regdrv_power()
iochar_send_event()
kick()
timer_queue()
timer_remove()
ttc()
tti()
tti2()
tto_checkclients()
tto_getchar()
TTYCTRL
TTYDEV
TTYINIT
tx_inject()
wait_add()
wait_remove_rcvid()
Input Devices
About the Input DDK
Building DDKs
Overview
DDK source code
Inside an input driver
Types of event bus lines
How modules are linked
Interface to the system
Source file organization for devi-*
Writing an Input Device Driver
Creating an input module
input_module_t data type
In the sample directory
Data format
Keyboard devices
Absolute devices
Calibration file format
Relative devices
Callbacks in your module
Which callbacks are required?
Callback sequence
Writing a combination device/protocol module
A note about reentrancy
Testing and Debugging Your Driver
Module Functions
devctrl()
init()
input()
output()
parm()
pulse()
reset()
shutdown()
Input API Reference
begin()
buff_append()
buff_create()
buff_delete()
buff_flush()
buff_getc()
buff_putc()
buff_waiting()
clk_get()
devi_enqueue_packet()
devi_register_interrupt()
devi_register_pulse()
devi_register_timer()
devi_request_iorange()
Universal Serial Bus (USB) Devices
About the USB DDK
Assumptions
Building DDKs
Before You Begin
System requirements
USB devices supported
Known limitations
Overview
The USB stack and library
Host Controller Interface (HCI) types
Data buffers
USB enumerator
How a class driver works
USB Utilities
USB Library Reference
Functions arranged by category
Connection functions
Memory-management functions
I/O functions
Pipe-management functions
Configuration and interface functions
Miscellaneous and convenience functions
usbd_abort_pipe()
usbd_alloc()
usbd_alloc_urb()
usbd_args_lookup()
usbd_attach()
usbd_close_pipe()
usbd_configuration_descriptor()
usbd_connect()
usbd_descriptor()
usbd_detach()
usbd_device_descriptor()
usbd_device_extra()
usbd_device_lookup()
usbd_disconnect()
usbd_endpoint_descriptor()
usbd_feature()
usbd_free()
usbd_free_urb()
usbd_get_frame()
usbd_hcd_ext_info(), usbd_hcd_info()
usbd_hub_descriptor()
usbd_interface_descriptor()
usbd_io()
usbd_languages_descriptor()
usbd_mphys()
usbd_open_pipe()
usbd_parse_descriptors()
usbd_pipe_device()
usbd_pipe_endpoint()
usbd_reset_device()
usbd_reset_pipe()
usbd_select_config()
usbd_select_interface()
usbd_setup_bulk()
usbd_setup_control()
usbd_setup_interrupt()
usbd_setup_isochronous()
usbd_setup_vendor()
usbd_status()
usbd_string()
usbd_topology(), usbd_topology_ext()
usbd_urb_status()
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 Examples
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_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
QED Fullscreen Editor
About the QED Manual
Tutorial Guide
Getting Started
The Status Line
The Command Line
Text Area
Appending New Text (F1)
Appending or Inserting Lines (F1/F2)
Using the Del and Backspace keys
Inserting text using Ins
Other cursor keys which simplify editing
Saving your Text
Exercise
More on the F1 and F2 keys
Deleting Lines (F3 key)
Filling Lines (F4 key)
Centering Lines (CtrlF4)
Splitting and Joining Lines (F5/F6 keys)
Tagging Blocks of Text (F7/F8 keys)
Line Tagging
Block Tagging
Insert Mode and Block Move and Copy
Re-setting the Last Tagged Lines or Block
Re-executing Commands (F9/F10 keys)
Tabs
Line-drawing characters
Margins
Moving Your Margins (Shift F1 to F6)
Auto Fill and Your Right Margin
Auto Justify
Indenting and Your Left Margin
Line Flags
Overstrike Flag (Alto)
Continuation Flag (Altc)
Paragraph Flag (Altp)
Some Simple Editor Commands
Learn Mode
Absolute Line Positioning
Simple Pattern Matching
File I/O Commands
The View Command
Executing System Commands
Epilogue
Using qed on non-QNX terminal types
Setting Your Terminal Type
Required Terminal Capabilities
Screen Output
Keyboard Input
Reference Manual
The Syntax of Editor Commands
Line Range
Command Specification Character
Right Arguments
Placing Multiple Commands On A Line
Special Characters
The Linefeed Character (hex 0A)
The NUL Character (hex 00)
The Meta Characters (@$^^&.*[)
The Backslash Character (\)
The Tab Character (hex 09)
The Command Character (hex FF)
The Recall Character (hex FE)
The Keyboard Input Character (hex FD)
The Macro Disable Character (hex A3)
The Condition Register
Delete Buffers
The Character Delete Buffer
The Line Delete Buffer
Break Handling
The Pattern Matcher
Some Pattern Examples
Command Reference:
Append (a)
Branch (b)
Change (c)
Delete (d)
Edit (e)
File (f)
Global (g)
Insert (i)
Join (j)
Kopy (k)
Learn (l)
Move (m)
Option (o)
Print (p)
Quit (q)
Read (r)
Substitute (s)
Translate (t)
Until (u)
View (v)
Write (w)
Execute (x)
Yut? (prompt) (y)
Zap (z)
Defining Your Own Macros
What is a macro
Multi-line Macros
Macros Containing Branches
Suggestions
Appendix A - Error Messages
Quick Reference
Control Keys
Cursor Movement Keys
Character Editing Keys
Function Keys
Option Control
Margin Control
Line Flags
Special Characters
Editor Commands
Line Range range
Line Address line
Meta Characters Used in Patterns
File I/O Commands
Alphabetical List of All Editor Commands
Examples
Utilities Reference
Utility Conventions
Syntax conventions
Interpreting utility syntax
Invoking utilities
File conventions
Signal conventions
Exit status conventions
Error conventions
A
ability
/etc/acl.conf
addr2line
addvariant
applypatch
aps
ar
arp
asa
/etc/autoconnect
B
basename
bc
bison
bootpd
/etc/bootptab
brconfig
bsdtar
bunzip2
bzcat
bzcmp, bzdiff
bzegrep, bzfgrep, bzgrep
bzip2
bzip2recover
bzless, bzmore
C
c++filt
cam-cdrom.so
cam-disk.so
cam-optical.so
cat
CC, cc
cfgopen
chat
chattr
chgrp
chkdosfs
chkfsys
chkqnx6fs
chmod
chown
cksum
clear
cmp
comm
confstr
/etc/context.conf
coreinfo
cp
cpio
cron
crontab
csplit
ctags
cut
cvs
D
date
dcheck
dd
deflate
deva-ctrl-4dwave.so
deva-ctrl-audiopci.so
deva-ctrl-cs4281.so
deva-ctrl-ess1938.so
deva-ctrl-geode.so
deva-ctrl-i8x0.so
deva-ctrl-intel_hda.so
deva-ctrl-nmg6.so
deva-ctrl-sb.so
deva-ctrl-usb.so
deva-ctrl-via686.so
deva-ctrl-vortex.so
deva-ctrl-ymfds1.so
deva-mixer-ac97.so
deva-mixer-ak4531.so
deva-mixer-hda.so
deva-util-restore.so
devb-adpu320
devb-aha8
devb-ahci
devb-btmm
devb-eide
devb-fdc
devb-loopback
devb-mvSata
devb-ram
devb-umass
devc-con, devc-con-hid
devc-par
devc-pty
devc-ser8250
devc-serpci
devc-serusb
devc-serzscc
devf-generic
devf-ram
devh-egalax.so
devh-microtouch.so
devh-ps2ser.so
devh-touchintl.so
devh-usb.so
devn-asix.so
devn-crys8900.so
devn-dm9102.so
devn-el509.so
devn-el900.so
devn-epic.so
devn-fd.so
devn-i82544.so
devn-micrel8841.so
devn-ne2000.so
devn-pcnet.so
devn-pegasus.so
devn-rtl.so
devn-rtl8150.so
devn-sis9.so
devn-smc9000.so
devn-speedo.so
devn-tigon3.so
devn-tulip.so
devn-via-rhine.so
devnp-ath.so
devnp-axe.so
devnp-bce.so
devnp-bcm1250.so
devnp-bcm43xx.so
devnp-bge.so
devnp-e1000.so
devnp-ecm.so
devnp-i80579.so
devnp-i82544.so
devnp-mpcsec.so
devnp-mpc85xx.so
devnp-msk.so
devnp-ncm.so
devnp-ral.so, devnp-ural.so
devnp-rtl8169.so
devnp-rum.so
devnp-shim.so
devnp-speedo.so
devp-pccard
devu-ehci.so
devu-kbd
devu-mouse
devu-ohci.so
devu-prn
devu-uhci.so
df
dhclient
dhclient-script
dhclient.conf, dhclient6.conf
dhclient.leases, dhclient6.leases
DHCP Conditional Evaluation
DHCP Options
dhcp.client
dhcpd
dhcpd.conf, dhcpd6.conf
dhcpd.leases, dhcpd6.leases
dhcprelay
dhcrelay
diff
diff3
dig
dinit
dirname
diskboot
dispconf
dloader
dnssec-dsfromkey
dnssec-keyfromlabel
dnssec-keygen
dnssec-signzone
du
dumpefs
dumper
dumpifs
E
echo
ed
egrep
elvis
enum-devices
enum-usb
env
errno
esh
etfsctl
expand
/etc/exports
expr
F
false
fcat
fdformat
fdisk
fesh
fgrep
file
find
finstall
flashctl
flex
fmt
fold
fpemu.so
freeze
fs-cd.so
fs-cifs
fs-dos.so
fs-etfs-ram
fs-ext2.so
fs-mac.so
fs-nfs2
fs-nfs3
fs-nt.so
fs-qnx4.so
fs-qnx6.so
fs-udf.so
fsencrypt
fsysinfo
/etc/fstab
ftp
/etc/ftpchroot
ftpd
/etc/ftpd.conf
/etc/ftpusers
fullpath
G
g++
/etc/gateways
gawk
gcc
gcov
gdb
getconf
getfacl
getty
gns
gprof
grep
gunzip
gzip
H
ham
hamctrl
hd
head
hidview
hogs
host
hostapd
hostname
/etc/hosts
/etc/hosts.equiv
I
id
if_up
ifconfig
ifwatchd
indent
inetd
/etc/inetd.conf
inflator
infocmp
inputtrap
io-audio
io-blk.so
io-hid
io-pkt-v4, io-pkt-v4-hc, io-pkt-v6-hc
io-usb
J
join
K
kill
ksh
L
ld
ldd
ldrel
less
link
ln
ln-w
logger
login
logout
lpd
lpr
lprc
lprq
lprrm
ls
lsm-autoip.so
lsm-pf-v4.so, lsm-pf-v6.so
lsm-qnet.so
lwresd
M
m4
/usr/share/misc/magic
make
mcd
mcs
melt
mesg
/etc/mib.txt
mixer
mkasmoff
mkcldr
mkbuild
mkdir
mkdosfs
mkefs
mketfs
mkfifo
mkifs
mkimage
mkqnx6fs
mkrec
mksbp
/etc/moduli
more
mount
mq
mqueue
mrouted
mstrip
mv
N
named
named-checkconf
named-checkzone, named-compilezone
/etc/named.conf
ndp
netmanager
netstat
/etc/networks
newgrp
nfsd
/etc/nfsstart
nice
nicinfo
nm
nohup
nslookup
/etc/nsswitch.conf
nsupdate
ntpd
ntpdate
ntpdc
ntpq
ntptrace
O
objcopy
objdump
od
omshell
on
op
openssl
P
/etc/party.conf
passwd
paste
patch
pathtrust
pax
pccard-launch
pci
pci-bios, pci-bios-v2
pcnfsd
/etc/pcnfsd.conf
pdebug
pf
/etc/pf.conf
pfctl
pidin
pin
ping
ping6
pipe
pppd
pppoectl
pps
pr
/etc/printcap
printf
procnto*
/etc/protocols
ps
pwd
python
Q
qbinaudit
QCC, qcc
qconfig
qconn
qcp
qde
qed
qtalk
QWinCfg
R
racoon
/etc/racoon.conf
random
ranlib
rcp
readelf
renice
/etc/resolv.conf
~/.rhosts
rlogin
rlogind
rm
rmdir
rndc
rndc-confgen
rndc.conf
route
route6d
routed
/etc/rpc
rpcbind
rpcgen
rpcinfo
rsh
rshd
rtadvd
/etc/rtadvd.conf
rtc
rtquery
rtsold
ruptime
rwho
rwhod
S
scp
script
sed
seedres
sendnto
/etc/services
setconf
setfacl
setkey
setupbsp
sftp
sftp-server
sh
showlicense
showmem
showmount
show_vesa
shutdown
size
slay
sleep
slogger
slogger2
slog2info
sloginfo
smic
snmpbulkwalk
snmpd
/etc/snmpd.conf
snmpget
snmpgetnext
snmpnetstat
snmpset
snmpstatus
snmptest
snmptranslate
snmptrap
snmptrapd
snmpwalk
/etc/socks.conf
sockstat
sort
spatch
split
spooler
ssh
ssh-add
ssh-agent
~/.ssh/ssh_config, /etc/ssh/ssh_config
ssh-keygen
ssh-keyscan
ssh-keysign
sshd
/etc/ssh/sshd_config
startup-* options
startup-apic
startup-bios, startup-bios-32
strings
strip
stty
su
svn
sync
sysctl
sysinfo
/etc/syslog.conf
syslogd
T
tail
tar
tcpdump
tee
telnet
telnetd
termdef
textto
tftp
tftpd
tic
time
tinit
top
touch
tr
tracelogger
traceprinter
traceroute
traceroute6
true
tsort
tty
U
uesh
umask
umount
uname
unexpand
unifdef
uniq
unlink
unzip
uptime
usb
use
usemsg
uud
uudecode
uue
uuencode
V
vi
view
/etc/view.conf
W
waitfor
wave
waverec
wc
which
who
wiconfig
wlanctl
wpa_cli
wpa_passphrase
wpa_supplicant
X
xargs
Y
Z
zap
zcat
zip
Commonly Used Environment Variables
A
B
C
D
E
F
G
H
I
J
L
M
N
O
P
Q
R
S
T
U
Selecting the Target System
Target selection
Architecture selection
Linker emulation selection
What's New in this Reference?
What's new in the QNX CAR Development Platform?
New entries
Changed content
Errata
What's new in the QNX Software Development Platform 6.5.0 Service Pack 1?
New entries
Changed content
Errata
What's new in the QNX Software Development Platform 6.5.0?
New entries
Deprecated content
Changed content
Errata
What's new in the QNX Software Development Platform 6.4.1?
New entries
Deprecated content
Changed content
Errata
What's new in the QNX Software Development Platform 6.4.0?
New entries
Deprecated content
Changed content
Errata
What's new in QNX Momentics 6.3.2?
New entries
Changed content
Errata
What's new in the QNX Neutrino Core OS 6.3.2?
New entries
Changed content
Errata
What's new in QNX Momentics 6.3.0 Service Pack 2?
New entries
Changed content
Errata
What's new in QNX Momentics 6.3.0 Service Pack 1?
New entries
Changed content
What's new in QNX Momentics 6.3.0?
New entries
Deleted entries
Changed content
Errata
What's new in QNX Momentics 6.2.1?
New entries
Deleted entries
Changed content
Errata
Glossary
Copyrights, Conventions, Support, and Licensing
Typographical conventions
Technical support
Copyright information
QNX Neutrino Realtime Operating System
QNX Neutrino Adaptive Partitioning
Addon Interfaces Library Reference
Audio Developer's Guide
Building Embedded Systems
Getting Started with QNX Neutrino: A Guide for Realtime Programmers
C Library Reference
Multicore Processing User's Guide
Programmer's Guide
System Analysis Toolkit User's Guide
System Architecture
QNX Neutrino User's Guide
Utilities Reference
Writing a Resource Manager
QNX Momentics IDE User's Guide
Core Networking User's Guide
Porting Drivers from io-net to io-pkt
Audio Devices
Character Devices
Input Devices
Universal Serial Bus (USB) Devices
Gestures Library
Glview Library
High Availability Framework Developer's Guide
Instant Device Activation User's Guide
Image Library
Inputevents Library
Multimedia Detector Configuration Guide
Multimedia Synchronizer Developer's Guide
Multimedia Renderer Developer's Guide
QDB Developer's Guide
Getting Started Guide
HMI Guide
PPS Objects Reference
Architecture Guide
Screen and windowing API
String Pattern Library
Licensing information
Typographical conventions
Technical support
Copyright information
QNX Neutrino Realtime Operating System
QNX Neutrino Adaptive Partitioning
Addon Interfaces Library Reference
Audio Developer's Guide
Building Embedded Systems
Getting Started with QNX Neutrino: A Guide for Realtime Programmers
C Library Reference
Multicore Processing User's Guide
Programmer's Guide
System Analysis Toolkit User's Guide
System Architecture
QNX Neutrino User's Guide
Utilities Reference
Writing a Resource Manager
QNX Momentics IDE User's Guide
Core Networking User's Guide
Porting Drivers from io-net to io-pkt
Audio Devices
Character Devices
Input Devices
Universal Serial Bus (USB) Devices
Gestures Library
Glview Library
High Availability Framework Developer's Guide
Instant Device Activation User's Guide
Image Library
Inputevents Library
Multimedia Detector Configuration Guide
Multimedia Synchronizer Developer's Guide
Multimedia Renderer Developer's Guide
QDB Developer's Guide
Getting Started Guide
HMI Guide
PPS Objects Reference
Architecture Guide
Screen and windowing API
String Pattern Library
Licensing information