mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-28 21:54:40 +03:00
Documentation: Move IPC endpoint documentation to manpage section 4
This commit is contained in:
parent
9660f5d0e6
commit
1419732a73
Notes:
sideshowbarker
2024-07-17 09:31:28 +09:00
Author: https://github.com/kleinesfilmroellchen Commit: https://github.com/SerenityOS/serenity/commit/1419732a73 Pull-request: https://github.com/SerenityOS/serenity/pull/14548 Reviewed-by: https://github.com/linusg
@ -1,16 +1,23 @@
|
|||||||
# Serenity Formats
|
## Name
|
||||||
|
|
||||||
This document summarizes all non-standard file formats, data formats, and mime-types used by Serenity.
|
ipc - Unix socket Inter Process Communication protocols
|
||||||
|
|
||||||
## Inter Process Communication (through Unix sockets)
|
## Synopsis
|
||||||
|
|
||||||
The various services each have their own formats, all very similar, and automatically implemented through LibIPC. The specifics depend on the corresponding source `.ipc` file.
|
IPC endpoints are provided as Unix sockets in `/tmp/portal`. All services have their own formats, automatically implemented through LibIPC.
|
||||||
|
|
||||||
The format can be identified by the format magic, which is derived in [`Meta/Lagom/Tools/CodeGenerators/IPCCompiler/main.cpp`](../Meta/Lagom/Tools/CodeGenerators/IPCCompiler/main.cpp)
|
## Description
|
||||||
from the service-endpoint name, e.g. "ClipboardClient" (which hashes to 4008793515) or "ClipboardServer" (which hashes to 1329211611).
|
|
||||||
|
The specifics of each service's format depend on the corresponding source `.ipc` file.
|
||||||
|
|
||||||
|
The format can be identified by the format magic, which is derived in [`Meta/Lagom/Tools/CodeGenerators/IPCCompiler/main.cpp`](../../../../../Meta/Lagom/Tools/CodeGenerators/IPCCompiler/main.cpp) from the service-endpoint name, e.g. "ClipboardClient" (which hashes to 4008793515) or "ClipboardServer" (which hashes to 1329211611).
|
||||||
|
|
||||||
In general, communication works by packets, which might have been sent in response to other packets. Everything is host endianness. Each packet consists of:
|
In general, communication works by packets, which might have been sent in response to other packets. Everything is host endianness. Each packet consists of:
|
||||||
- a 32-bit message size (see `Connection::try_parse_messages` in [`Userland/Libraries/LibIPC/Connection.h`](../Userland/Libraries/LibIPC/Connection.h))
|
- a 32-bit message size (see `Connection::try_parse_messages` in [`Userland/Libraries/LibIPC/Connection.h`](../../../../../Userland/Libraries/LibIPC/Connection.h))
|
||||||
- the 32-bit endpoint magic (note that responses use the endpoint of the requesting packet, so the Clipboard server might use the endpoint magic 4008793515 to signal that this packet is a response)
|
- the 32-bit endpoint magic (note that responses use the endpoint of the requesting packet, so the Clipboard server might use the endpoint magic 4008793515 to signal that this packet is a response)
|
||||||
- the 32-bit message ID within that endpoint (sequentially assigned, starting at 1)
|
- the 32-bit message ID within that endpoint (sequentially assigned, starting at 1)
|
||||||
- the data of that message itself (e.g. see `Messages::ClipboardServer::SetClipboardData::{en,de}code` in `Build/*/Userland/Services/Clipboard/ClipboardServerEndpoint.h`).
|
- the data of that message itself (e.g. see `Messages::ClipboardServer::SetClipboardData::{en,de}code` in `Build/*/Userland/Services/Clipboard/ClipboardServerEndpoint.h`).
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [ipc(5)](help://man/5/ipc) (IPC file format documentation)
|
@ -14,3 +14,4 @@ The format is loosely inspired by C++ headers.
|
|||||||
## See Also
|
## See Also
|
||||||
|
|
||||||
- [`Meta/Lagom/Tools/CodeGenerators/IPCCompiler/`](../../../../../Meta/Lagom/Tools/CodeGenerators/IPCCompiler/).
|
- [`Meta/Lagom/Tools/CodeGenerators/IPCCompiler/`](../../../../../Meta/Lagom/Tools/CodeGenerators/IPCCompiler/).
|
||||||
|
- [ipc(4)](help://man/4/ipc) (IPC Unix socket documentation)
|
||||||
|
Loading…
Reference in New Issue
Block a user