SRR Module

The srripc Linux Kernel Module, Version 1.4.43

January 13, 2010

This library is an interface to the srripc synchronous message passing module for the Linux kernel written by Sam Roberts and Andrew Thomas of Cogent Real-Time Systems, Inc., with many helpful additions from the user community. It provides synchronous message passing between processes and/or threads for the Linux operating system. It also enables queued asynchronous event notification (proxies), timed delivery of proxies and signals, triggering of proxies between tasks, and user-space interrupt handling. Synchronous message passing is a fast, flexible, and robust IPC mechanism, particularly useful for building systems composed of multiple co-operating processes. This implementation has been inspired by the QNX™ operating system, and includes a QNX 4 compatible API layer.

Go to the Cogent Web Site.

Copyright, trademark, and software license information.

Table of Contents

I. Programmers Manual

1. Description
1.1. Implementation Background
1.2. System Requirements
1.3. OS-Specific Behavior
1.3.1. Address Space
1.3.2. Forks in pre-2.2 Linux Kernels
1.3.3. Error Numbers

2. Installation
2.1. Unpacking the Archive
2.2. Testing the SRR Module
2.3. Installing the SRR Module
2.4. Enabling Auto-Loading for the SRR Module
2.5. Example Code

3. Copyrights and Disclaimers

A. GNU General Public License
B. GNU Lesser General Public License

II. Reference

I. Send/Receive/Reply API Reference
SrrSend - sends a message, blocks until replied.
SrrReceive - receives a message.
SrrRelay - not yet documented.
SrrReply - replies to a previously received message.
SrrProxyAttach - creates a proxy message for a process.
SrrProxyDetach - detaches a proxy from its target process.
SrrProxyTrigger - triggers a proxy into sending its message.
SrrNameAttach - attaches a name to a process.
SrrNameDetach - detaches a name.
SrrNameLocate - locates a process by name.

II. QNX Compatibility API Reference
Send - QNX-style wrapper on SrrSend.
Receive - QNX-style wrapper on SrrReceive.
Relay - not yet documented.
Reply - QNX-style wrapper on SrrReply.
qnx_proxy_attach - QNX-style wrapper on SrrProxyAttach.
qnx_proxy_detach - QNX-style wrapper on SrrProxyDetach.
Trigger - QNX-style wrapper on SrrProxyTrigger.
qnx_name_attach - QNX-style wrapper on SrrNameAttach.
qnx_name_detach - QNX-style wrapper on SrrNameDetach.
qnx_name_locate - QNX-style wrapper on SrrNameLocate.
qnx_vc_attach - stub function.

III. Undocumented functions
SrrClockGettime - undocumented.
SrrClockSettime - undocumented.
SrrCreceive - undocumented.
SrrCreceivemx - undocumented.
SrrDebug - undocumented.
SrrFd - undocumented.
SrrKill - undocumented.
SrrPflags - undocumented.
SrrProxyRemDetach - undocumented.
SrrReadmsg - undocumented.
SrrReadmsgmx - undocumented.
SrrReceivemx - undocumented.
SrrReg - undocumented.
SrrReplymx - undocumented.
SrrSendmx - undocumented.
SrrTimerDelete - undocumented.
SrrTimerGettime - undocumented.
SrrTimerSettime - undocumented.
SrrUnload - undocumented.
SrrUnreg - undocumented.
SrrVcDetach - undocumented.
SrrWritemsg - undocumented.
SrrWritemsgmx - undocumented.