Skip Navigation Links | |
Exit Print View | |
Programming Interfaces Guide Oracle Solaris 11.1 Information Library |
2. Session Description Protocol API
POSIX Interprocess Communication
Permissions for Messages, Semaphores, and Shared Memory
IPC Interfaces, Key Arguments, and Creation Flags
Sending and Receiving Messages
Accessing a Shared Memory Segment
Controlling a Shared Memory Segment
Attaching and Detaching a Shared Memory Segment
8. Programming With XTI and TLI
10. Transport Selection and Name-to-Address Mapping
11. Real-time Programming and Administration
Doors are a fast light-weight RPC mechanism for secure control transfer between processes on the same machine. A door is created when a process known as the door server calls door_create(3DOOR) with a server function and receives a file descriptor. The file descriptor can be passed to other processes or attached to the file system using fattach(3C). A client process, which has the file descriptor, can then invoke the door process by calling door_call(3DOOR). The client can also pass data and descriptors including other door descriptors. As a result of the call to door_call(), the client thread blocks and a thread in the door server wakes up and starts running the server function. When the server function is completed, the function calls door_return(3DOOR) to pass optional data and descriptors back to the client. door_return() also switches control back to the client; the server thread gets blocked in the kernel and does not return from the door_return call.
Doors are described in the doors library libdoor(3LIB).