This chapter includes:
This guide will help you create a resource manager, a process that registers a name in the filesystem name space, which other processes then use to communicate with the resource manager.
The following table may help you find information quickly:
For information about: | Go to: |
---|---|
What's a resource manager | Overview |
The overall structure of a resource manager | The Bones of a Resource Manager |
Adding some “meat” to the basic structure | Fleshing Out the Skeleton |
Data structures that the POSIX-layer routines use | POSIX-Layer Data Structures |
Reading and writing data | Handling Read and Write Messages |
Atomic operations | Combine Messages |
Adding your own data to resource-manager structures | Extending the POSIX-Layer Data Structures |
Handling other types of messages | Handling Other Messages |
Handling signals, timeouts, and interrupts | Signals, Timeouts, and Interrupts |
Handling more than one message at once | Multithreaded Resource Managers |
Taking over a directory | Filesystem Resource Managers |
Terms used in QNX docs | Glossary |
For another perspective on resource managers, see the Resource Managers chapter of Getting Started with QNX Neutrino. In particular, this chapter includes a summary of the handlers for the connect and I/O messages that a resource manager will receive; see “Alphabetical listing of connect and I/O functions” in it.
This book assumes that you're familiar with message passing.
If you're not, see the
Interprocess Communication (IPC)
chapter in the System Architecture guide as well as the
MsgSend(),
MsgReceivev(), and
MsgReply()
series of calls in the
QNX Neutrino Library Reference.
For information about programming in Neutrino, see Getting Started with QNX Neutrino: A Guide for Realtime Programmers and the Neutrino Programmer's Guide. |
Throughout this manual, we use certain typographical conventions to distinguish technical terms. In general, the conventions we use conform to those found in IEEE POSIX publications. The following table summarizes our conventions:
Reference | Example |
---|---|
Code examples | if( stream == NULL ) |
Command options | -lR |
Commands | make |
Environment variables | PATH |
File and pathnames | /dev/null |
Function names | exit() |
Keyboard chords | Ctrl-Alt-Delete |
Keyboard input | something you type |
Keyboard keys | Enter |
Program output | login: |
Programming constants | NULL |
Programming data types | unsigned short |
Programming literals | 0xFF, "message string" |
Variable names | stdin |
User-interface components | Cancel |
We use an arrow (→) in directions for accessing menu items, like this:
You'll find the Other... menu item under.
We use notes, cautions, and warnings to highlight important messages:
Notes point out something important or useful. |
Cautions tell you about commands or procedures that may have unwanted or undesirable side effects. |
Warnings tell you about commands or procedures that could be dangerous to your files, your hardware, or even yourself. |
In our documentation, we use a forward slash (/) as a delimiter in all pathnames, including those pointing to Windows files.
We also generally follow POSIX/UNIX filesystem conventions.
At the top and bottom of our HTML docs, you'll see some or all of these buttons:
Use this button: | To move: |
---|---|
To the previous part of the document. | |
“Up” in the document:
|
|
To the keyword index. | |
To the next part of the document. |
To obtain technical support for any QNX product, visit the Support + Services area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.
Copyright © 2008–2009, QNX Software Systems GmbH & Co. KG. All rights reserved.