HIPC: Difference between revisions

No edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
HIPC (Horizon Inter-Process Communication) is a custom IPC implementation tailored for the Horizon OS.
HIPC (Horizon Inter-Process Communication) is a custom IPC implementation tailored for the Horizon OS.
There are two protocols over [[#HIPC|HIPC]]:
* [[#CMIF|CMIF]]: Command Interface (?). Supports session management with domains and dynamic multiplexing of services.
* [[#TIPC|TIPC]]: Tiny IPC. Simple and lightweight protocol.
[[#CMIF|CMIF]] is universally used for virtually almost all Switch services. [[#TIPC|TIPC]] is only used by the [[Services_API|Service Manager]] and [[PGL_services|pgl]].


= HIPC =
= HIPC =
Line 129: Line 136:
|-
|-
| 0-9
| 0-9
| RawCount
| RawCount (number of 32-bit words in RawData)
|-
|-
| 10-13
| 10-13
| ReceiveListCount
| ReceiveListCount
|-
|-
| 14-30
| 14-19
| Reserved
| Reserved
|-
| 20-30
| ReceiveListOffset
|-
|-
| 31
| 31
Line 600: Line 610:


= TIPC =
= TIPC =
TIPC (Tiny IPC) is a simpler protocol than CMIF. It has no concept of domains, so it cannot support multiple objects per session. It is only used in the Service Manager.
TIPC (Tiny IPC) is a simpler protocol than CMIF. It has no concept of domains, so it cannot support multiple objects per session. It is only used by the [[Services_API|Service Manager]] and [[PGL_services|pgl]].


== MessageType ==
== MessageType ==