[zion] Declare z_cap_t and start replacing existing types
This commit is contained in:
parent
5e99dbf7d1
commit
7bd6aa42b0
|
@ -6,59 +6,59 @@
|
|||
|
||||
void ZProcessExit(uint64_t code);
|
||||
|
||||
[[nodiscard]] z_err_t ZProcessSpawn(uint64_t proc_cap, uint64_t bootstrap_cap,
|
||||
uint64_t* new_proc_cap,
|
||||
uint64_t* new_vmas_cap,
|
||||
uint64_t* new_bootstrap_cap);
|
||||
[[nodiscard]] z_err_t ZProcessSpawn(z_cap_t proc_cap, z_cap_t bootstrap_cap,
|
||||
z_cap_t* new_proc_cap,
|
||||
z_cap_t* new_vmas_cap,
|
||||
z_cap_t* new_bootstrap_cap);
|
||||
|
||||
// UNUSED for now, I think we can get away with just starting a thread.
|
||||
[[nodiscard]] z_err_t ZProcessStart(uint64_t proc_cap, uint64_t thread_cap,
|
||||
[[nodiscard]] z_err_t ZProcessStart(z_cap_t proc_cap, z_cap_t thread_cap,
|
||||
uint64_t entry, uint64_t arg1,
|
||||
uint64_t arg2);
|
||||
|
||||
[[nodiscard]] z_err_t ZThreadCreate(uint64_t proc_cap, uint64_t* thread_cap);
|
||||
[[nodiscard]] z_err_t ZThreadCreate(z_cap_t proc_cap, z_cap_t* thread_cap);
|
||||
|
||||
[[nodiscard]] z_err_t ZThreadStart(uint64_t thread_cap, uint64_t entry,
|
||||
[[nodiscard]] z_err_t ZThreadStart(z_cap_t thread_cap, uint64_t entry,
|
||||
uint64_t arg1, uint64_t arg2);
|
||||
|
||||
void ZThreadExit();
|
||||
|
||||
[[nodiscard]] z_err_t ZAddressSpaceMap(uint64_t vmas_cap, uint64_t vmas_offset,
|
||||
uint64_t vmmo_cap, uint64_t* vaddr);
|
||||
[[nodiscard]] z_err_t ZMemoryObjectCreate(uint64_t size, uint64_t* vmmo_cap);
|
||||
[[nodiscard]] z_err_t ZAddressSpaceMap(z_cap_t vmas_cap, uint64_t vmas_offset,
|
||||
z_cap_t vmmo_cap, uint64_t* vaddr);
|
||||
[[nodiscard]] z_err_t ZMemoryObjectCreate(uint64_t size, z_cap_t* vmmo_cap);
|
||||
[[nodiscard]] z_err_t ZMemoryObjectCreatePhysical(uint64_t paddr, uint64_t size,
|
||||
uint64_t* vmmo_cap);
|
||||
z_cap_t* vmmo_cap);
|
||||
[[nodiscard]] z_err_t ZMemoryObjectCreateContiguous(uint64_t size,
|
||||
uint64_t* vmmo_cap,
|
||||
z_cap_t* vmmo_cap,
|
||||
uint64_t* paddr);
|
||||
|
||||
[[nodiscard]] z_err_t ZTempPcieConfigObjectCreate(uint64_t* vmmo_cap,
|
||||
[[nodiscard]] z_err_t ZTempPcieConfigObjectCreate(z_cap_t* vmmo_cap,
|
||||
uint64_t* vmmo_size);
|
||||
|
||||
[[nodiscard]] z_err_t ZChannelCreate(uint64_t* channel1, uint64_t* channel2);
|
||||
[[nodiscard]] z_err_t ZChannelSend(uint64_t chan_cap, uint64_t type,
|
||||
[[nodiscard]] z_err_t ZChannelCreate(z_cap_t* channel1, z_cap_t* channel2);
|
||||
[[nodiscard]] z_err_t ZChannelSend(z_cap_t chan_cap, uint64_t type,
|
||||
uint64_t num_bytes, const uint8_t* bytes,
|
||||
uint64_t num_caps, const uint64_t* caps);
|
||||
[[nodiscard]] z_err_t ZChannelRecv(uint64_t chan_cap, uint64_t num_bytes,
|
||||
uint64_t num_caps, const z_cap_t* caps);
|
||||
[[nodiscard]] z_err_t ZChannelRecv(z_cap_t chan_cap, uint64_t num_bytes,
|
||||
uint8_t* bytes, uint64_t num_caps,
|
||||
uint64_t* caps, uint64_t* type,
|
||||
z_cap_t* caps, uint64_t* type,
|
||||
uint64_t* actual_bytes,
|
||||
uint64_t* actual_caps);
|
||||
|
||||
[[nodiscard]] z_err_t ZPortCreate(uint64_t* port_cap);
|
||||
[[nodiscard]] z_err_t ZPortSend(uint64_t port_cap, uint64_t num_bytes,
|
||||
[[nodiscard]] z_err_t ZPortCreate(z_cap_t* port_cap);
|
||||
[[nodiscard]] z_err_t ZPortSend(z_cap_t port_cap, uint64_t num_bytes,
|
||||
const uint8_t* bytes, uint64_t num_caps,
|
||||
uint64_t* caps);
|
||||
[[nodiscard]] z_err_t ZPortRecv(uint64_t port_cap, uint64_t num_bytes,
|
||||
z_cap_t* caps);
|
||||
[[nodiscard]] z_err_t ZPortRecv(z_cap_t port_cap, uint64_t num_bytes,
|
||||
uint8_t* bytes, uint64_t num_caps,
|
||||
uint64_t* caps, uint64_t* type,
|
||||
z_cap_t* caps, uint64_t* type,
|
||||
uint64_t* actual_bytes, uint64_t* actual_caps);
|
||||
[[nodiscard]] z_err_t ZPortPoll(uint64_t port_cap, uint64_t num_bytes,
|
||||
[[nodiscard]] z_err_t ZPortPoll(z_cap_t port_cap, uint64_t num_bytes,
|
||||
uint8_t* bytes, uint64_t num_caps,
|
||||
uint64_t* caps, uint64_t* type,
|
||||
z_cap_t* caps, uint64_t* type,
|
||||
uint64_t* actual_bytes, uint64_t* actual_caps);
|
||||
[[nodiscard]] z_err_t ZIrqRegister(uint64_t irq_num, uint64_t* port_cap);
|
||||
[[nodiscard]] z_err_t ZIrqRegister(uint64_t irq_num, z_cap_t* port_cap);
|
||||
|
||||
[[nodiscard]] z_err_t ZCapDuplicate(uint64_t cap_in, uint64_t* cap_out);
|
||||
[[nodiscard]] z_err_t ZCapDuplicate(z_cap_t cap_in, z_cap_t* cap_out);
|
||||
|
||||
[[nodiscard]] z_err_t ZDebug(const char* message);
|
||||
|
|
|
@ -72,6 +72,9 @@ typedef uint64_t z_err_t;
|
|||
/* ------------------------------
|
||||
* Capability Types
|
||||
* ------------------------------*/
|
||||
|
||||
typedef uint64_t z_cap_t;
|
||||
|
||||
#define Z_INVALID 0x0
|
||||
|
||||
// General Capability Permissions
|
||||
|
|
|
@ -23,9 +23,9 @@ void ZProcessExit(uint64_t code) {
|
|||
SysCall1(Z_PROCESS_EXIT, reinterpret_cast<void*>(code));
|
||||
}
|
||||
|
||||
z_err_t ZProcessSpawn(uint64_t proc_cap, uint64_t bootstrap_cap,
|
||||
uint64_t* new_proc_cap, uint64_t* new_vmas_cap,
|
||||
uint64_t* new_bootstrap_cap) {
|
||||
z_err_t ZProcessSpawn(z_cap_t proc_cap, z_cap_t bootstrap_cap,
|
||||
z_cap_t* new_proc_cap, z_cap_t* new_vmas_cap,
|
||||
z_cap_t* new_bootstrap_cap) {
|
||||
ZProcessSpawnReq req{
|
||||
.proc_cap = proc_cap,
|
||||
.bootstrap_cap = bootstrap_cap,
|
||||
|
@ -38,7 +38,7 @@ z_err_t ZProcessSpawn(uint64_t proc_cap, uint64_t bootstrap_cap,
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZThreadCreate(uint64_t proc_cap, uint64_t* thread_cap) {
|
||||
z_err_t ZThreadCreate(z_cap_t proc_cap, z_cap_t* thread_cap) {
|
||||
ZThreadCreateReq req{
|
||||
.proc_cap = proc_cap,
|
||||
};
|
||||
|
@ -48,7 +48,7 @@ z_err_t ZThreadCreate(uint64_t proc_cap, uint64_t* thread_cap) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZThreadStart(uint64_t thread_cap, uint64_t entry, uint64_t arg1,
|
||||
z_err_t ZThreadStart(z_cap_t thread_cap, uint64_t entry, uint64_t arg1,
|
||||
uint64_t arg2) {
|
||||
ZThreadStartReq req{
|
||||
.thread_cap = thread_cap,
|
||||
|
@ -61,8 +61,8 @@ z_err_t ZThreadStart(uint64_t thread_cap, uint64_t entry, uint64_t arg1,
|
|||
|
||||
void ZThreadExit() { SysCall0(Z_THREAD_EXIT); }
|
||||
|
||||
z_err_t ZAddressSpaceMap(uint64_t vmas_cap, uint64_t vmas_offset,
|
||||
uint64_t vmmo_cap, uint64_t* vaddr) {
|
||||
z_err_t ZAddressSpaceMap(z_cap_t vmas_cap, uint64_t vmas_offset,
|
||||
z_cap_t vmmo_cap, uint64_t* vaddr) {
|
||||
ZAddressSpaceMapReq req{
|
||||
.vmas_cap = vmas_cap,
|
||||
.vmas_offset = vmas_offset,
|
||||
|
@ -74,7 +74,7 @@ z_err_t ZAddressSpaceMap(uint64_t vmas_cap, uint64_t vmas_offset,
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZMemoryObjectCreate(uint64_t size, uint64_t* vmmo_cap) {
|
||||
z_err_t ZMemoryObjectCreate(uint64_t size, z_cap_t* vmmo_cap) {
|
||||
ZMemoryObjectCreateReq req{
|
||||
.size = size,
|
||||
};
|
||||
|
@ -85,7 +85,7 @@ z_err_t ZMemoryObjectCreate(uint64_t size, uint64_t* vmmo_cap) {
|
|||
}
|
||||
|
||||
z_err_t ZMemoryObjectCreatePhysical(uint64_t paddr, uint64_t size,
|
||||
uint64_t* vmmo_cap) {
|
||||
z_cap_t* vmmo_cap) {
|
||||
ZMemoryObjectCreatePhysicalReq req{
|
||||
.paddr = paddr,
|
||||
.size = size,
|
||||
|
@ -96,7 +96,7 @@ z_err_t ZMemoryObjectCreatePhysical(uint64_t paddr, uint64_t size,
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZMemoryObjectCreateContiguous(uint64_t size, uint64_t* vmmo_cap,
|
||||
z_err_t ZMemoryObjectCreateContiguous(uint64_t size, z_cap_t* vmmo_cap,
|
||||
uint64_t* paddr) {
|
||||
ZMemoryObjectCreatePhysicalReq req{
|
||||
.paddr = 0,
|
||||
|
@ -109,7 +109,7 @@ z_err_t ZMemoryObjectCreateContiguous(uint64_t size, uint64_t* vmmo_cap,
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZTempPcieConfigObjectCreate(uint64_t* vmmo_cap, uint64_t* vmmo_size) {
|
||||
z_err_t ZTempPcieConfigObjectCreate(z_cap_t* vmmo_cap, uint64_t* vmmo_size) {
|
||||
ZTempPcieConfigObjectCreateResp resp;
|
||||
z_err_t ret = SysCall2(Z_TEMP_PCIE_CONFIG_OBJECT_CREATE, 0, &resp);
|
||||
*vmmo_cap = resp.vmmo_cap;
|
||||
|
@ -117,7 +117,7 @@ z_err_t ZTempPcieConfigObjectCreate(uint64_t* vmmo_cap, uint64_t* vmmo_size) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZChannelCreate(uint64_t* channel1, uint64_t* channel2) {
|
||||
z_err_t ZChannelCreate(z_cap_t* channel1, z_cap_t* channel2) {
|
||||
ZChannelCreateResp resp;
|
||||
z_err_t ret = SysCall2(Z_CHANNEL_CREATE, 0, &resp);
|
||||
*channel1 = resp.chan_cap1;
|
||||
|
@ -125,9 +125,9 @@ z_err_t ZChannelCreate(uint64_t* channel1, uint64_t* channel2) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZChannelSend(uint64_t chan_cap, uint64_t type, uint64_t num_bytes,
|
||||
z_err_t ZChannelSend(z_cap_t chan_cap, uint64_t type, uint64_t num_bytes,
|
||||
const uint8_t* bytes, uint64_t num_caps,
|
||||
const uint64_t* caps) {
|
||||
const z_cap_t* caps) {
|
||||
ZChannelSendReq req{
|
||||
.chan_cap = chan_cap,
|
||||
.message =
|
||||
|
@ -136,14 +136,14 @@ z_err_t ZChannelSend(uint64_t chan_cap, uint64_t type, uint64_t num_bytes,
|
|||
.num_bytes = num_bytes,
|
||||
.bytes = const_cast<uint8_t*>(bytes),
|
||||
.num_caps = num_caps,
|
||||
.caps = const_cast<uint64_t*>(caps),
|
||||
.caps = const_cast<z_cap_t*>(caps),
|
||||
},
|
||||
};
|
||||
return SysCall1(Z_CHANNEL_SEND, &req);
|
||||
}
|
||||
|
||||
z_err_t ZChannelRecv(uint64_t chan_cap, uint64_t num_bytes, uint8_t* bytes,
|
||||
uint64_t num_caps, uint64_t* caps, uint64_t* type,
|
||||
z_err_t ZChannelRecv(z_cap_t chan_cap, uint64_t num_bytes, uint8_t* bytes,
|
||||
uint64_t num_caps, z_cap_t* caps, uint64_t* type,
|
||||
uint64_t* actual_bytes, uint64_t* actual_caps) {
|
||||
ZChannelRecvReq req{
|
||||
.chan_cap = chan_cap,
|
||||
|
@ -163,15 +163,15 @@ z_err_t ZChannelRecv(uint64_t chan_cap, uint64_t num_bytes, uint8_t* bytes,
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZPortCreate(uint64_t* port_cap) {
|
||||
z_err_t ZPortCreate(z_cap_t* port_cap) {
|
||||
ZPortCreateResp resp;
|
||||
z_err_t ret = SysCall2(Z_PORT_CREATE, 0, &resp);
|
||||
*port_cap = resp.port_cap;
|
||||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZPortSend(uint64_t port_cap, uint64_t num_bytes, const uint8_t* bytes,
|
||||
uint64_t num_caps, uint64_t* caps) {
|
||||
z_err_t ZPortSend(z_cap_t port_cap, uint64_t num_bytes, const uint8_t* bytes,
|
||||
uint64_t num_caps, z_cap_t* caps) {
|
||||
ZPortSendReq req{.port_cap = port_cap,
|
||||
.message = {
|
||||
.type = 0,
|
||||
|
@ -183,8 +183,8 @@ z_err_t ZPortSend(uint64_t port_cap, uint64_t num_bytes, const uint8_t* bytes,
|
|||
return SysCall1(Z_PORT_SEND, &req);
|
||||
}
|
||||
|
||||
z_err_t ZPortRecv(uint64_t port_cap, uint64_t num_bytes, uint8_t* bytes,
|
||||
uint64_t num_caps, uint64_t* caps, uint64_t* type,
|
||||
z_err_t ZPortRecv(z_cap_t port_cap, uint64_t num_bytes, uint8_t* bytes,
|
||||
uint64_t num_caps, z_cap_t* caps, uint64_t* type,
|
||||
uint64_t* actual_bytes, uint64_t* actual_caps) {
|
||||
ZPortRecvReq req{
|
||||
.port_cap = port_cap,
|
||||
|
@ -204,8 +204,8 @@ z_err_t ZPortRecv(uint64_t port_cap, uint64_t num_bytes, uint8_t* bytes,
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZPortPoll(uint64_t port_cap, uint64_t num_bytes, uint8_t* bytes,
|
||||
uint64_t num_caps, uint64_t* caps, uint64_t* type,
|
||||
z_err_t ZPortPoll(z_cap_t port_cap, uint64_t num_bytes, uint8_t* bytes,
|
||||
uint64_t num_caps, z_cap_t* caps, uint64_t* type,
|
||||
uint64_t* actual_bytes, uint64_t* actual_caps) {
|
||||
ZPortRecvReq req{
|
||||
.port_cap = port_cap,
|
||||
|
@ -225,7 +225,7 @@ z_err_t ZPortPoll(uint64_t port_cap, uint64_t num_bytes, uint8_t* bytes,
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZIrqRegister(uint64_t irq_num, uint64_t* port_cap) {
|
||||
z_err_t ZIrqRegister(uint64_t irq_num, z_cap_t* port_cap) {
|
||||
ZIrqRegisterReq req{
|
||||
.irq_num = irq_num,
|
||||
};
|
||||
|
@ -235,7 +235,7 @@ z_err_t ZIrqRegister(uint64_t irq_num, uint64_t* port_cap) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
z_err_t ZCapDuplicate(uint64_t cap_in, uint64_t* cap_out) {
|
||||
z_err_t ZCapDuplicate(z_cap_t cap_in, z_cap_t* cap_out) {
|
||||
ZCapDuplicateReq req{
|
||||
.cap = cap_in,
|
||||
};
|
||||
|
|
|
@ -2,36 +2,38 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "include/ztypes.h"
|
||||
|
||||
struct ZProcessSpawnReq {
|
||||
uint64_t proc_cap;
|
||||
uint64_t bootstrap_cap;
|
||||
z_cap_t proc_cap;
|
||||
z_cap_t bootstrap_cap;
|
||||
};
|
||||
|
||||
struct ZProcessSpawnResp {
|
||||
uint64_t proc_cap;
|
||||
uint64_t vmas_cap;
|
||||
uint64_t bootstrap_cap;
|
||||
z_cap_t proc_cap;
|
||||
z_cap_t vmas_cap;
|
||||
z_cap_t bootstrap_cap;
|
||||
};
|
||||
|
||||
struct ZThreadCreateReq {
|
||||
uint64_t proc_cap;
|
||||
z_cap_t proc_cap;
|
||||
};
|
||||
|
||||
struct ZThreadCreateResp {
|
||||
uint64_t thread_cap;
|
||||
z_cap_t thread_cap;
|
||||
};
|
||||
|
||||
struct ZThreadStartReq {
|
||||
uint64_t thread_cap;
|
||||
z_cap_t thread_cap;
|
||||
uint64_t entry;
|
||||
uint64_t arg1;
|
||||
uint64_t arg2;
|
||||
};
|
||||
|
||||
struct ZAddressSpaceMapReq {
|
||||
uint64_t vmas_cap;
|
||||
uint64_t vmas_offset;
|
||||
uint64_t vmmo_cap;
|
||||
z_cap_t vmas_cap;
|
||||
z_cap_t vmas_offset;
|
||||
z_cap_t vmmo_cap;
|
||||
};
|
||||
|
||||
struct ZAddressSpaceMapResp {
|
||||
|
@ -43,7 +45,7 @@ struct ZMemoryObjectCreateReq {
|
|||
};
|
||||
|
||||
struct ZMemoryObjectCreateResp {
|
||||
uint64_t vmmo_cap;
|
||||
z_cap_t vmmo_cap;
|
||||
};
|
||||
|
||||
struct ZMemoryObjectCreatePhysicalReq {
|
||||
|
@ -52,18 +54,18 @@ struct ZMemoryObjectCreatePhysicalReq {
|
|||
};
|
||||
|
||||
struct ZMemoryObjectCreatePhysicalResp {
|
||||
uint64_t vmmo_cap;
|
||||
z_cap_t vmmo_cap;
|
||||
uint64_t paddr;
|
||||
};
|
||||
|
||||
struct ZTempPcieConfigObjectCreateResp {
|
||||
uint64_t vmmo_cap;
|
||||
z_cap_t vmmo_cap;
|
||||
uint64_t vmmo_size;
|
||||
};
|
||||
|
||||
struct ZChannelCreateResp {
|
||||
uint64_t chan_cap1;
|
||||
uint64_t chan_cap2;
|
||||
z_cap_t chan_cap1;
|
||||
z_cap_t chan_cap2;
|
||||
};
|
||||
|
||||
struct ZMessage {
|
||||
|
@ -73,30 +75,30 @@ struct ZMessage {
|
|||
uint8_t* bytes;
|
||||
|
||||
uint64_t num_caps;
|
||||
uint64_t* caps;
|
||||
z_cap_t* caps;
|
||||
};
|
||||
|
||||
struct ZChannelSendReq {
|
||||
uint64_t chan_cap;
|
||||
z_cap_t chan_cap;
|
||||
ZMessage message;
|
||||
};
|
||||
|
||||
struct ZChannelRecvReq {
|
||||
uint64_t chan_cap;
|
||||
z_cap_t chan_cap;
|
||||
ZMessage message;
|
||||
};
|
||||
|
||||
struct ZPortCreateResp {
|
||||
uint64_t port_cap;
|
||||
z_cap_t port_cap;
|
||||
};
|
||||
|
||||
struct ZPortSendReq {
|
||||
uint64_t port_cap;
|
||||
z_cap_t port_cap;
|
||||
ZMessage message;
|
||||
};
|
||||
|
||||
struct ZPortRecvReq {
|
||||
uint64_t port_cap;
|
||||
z_cap_t port_cap;
|
||||
ZMessage message;
|
||||
};
|
||||
|
||||
|
@ -105,13 +107,13 @@ struct ZIrqRegisterReq {
|
|||
};
|
||||
|
||||
struct ZIrqRegisterResp {
|
||||
uint64_t port_cap;
|
||||
z_cap_t port_cap;
|
||||
};
|
||||
|
||||
struct ZCapDuplicateReq {
|
||||
uint64_t cap;
|
||||
z_cap_t cap;
|
||||
};
|
||||
|
||||
struct ZCapDuplicateResp {
|
||||
uint64_t cap;
|
||||
z_cap_t cap;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue