Add a basic IPC setup with Channel Object.

Pass a process a channel endpoint on startup that it will use to
get it's initial capabilities.
This commit is contained in:
Drew Galbraith 2023-06-07 08:24:10 -07:00
parent b79ec07636
commit 81b925eea0
15 changed files with 341 additions and 20 deletions

View file

@ -4,11 +4,13 @@
struct ZProcessSpawnReq {
uint64_t proc_cap;
uint64_t bootstrap_cap;
};
struct ZProcessSpawnResp {
uint64_t proc_cap;
uint64_t vmas_cap;
uint64_t bootstrap_cap;
};
struct ZThreadCreateReq {
@ -43,3 +45,28 @@ struct ZMemoryObjectCreateReq {
struct ZMemoryObjectCreateResp {
uint64_t vmmo_cap;
};
struct ZChannelCreateResp {
uint64_t chan_cap1;
uint64_t chan_cap2;
};
struct ZMessage {
uint64_t type;
uint64_t num_bytes;
uint8_t* bytes;
uint64_t num_caps;
uint64_t* caps;
};
struct ZChannelSendReq {
uint64_t chan_cap;
ZMessage message;
};
struct ZChannelRecvReq {
uint64_t chan_cap;
ZMessage message;
};