Build original Ada port core, V client, and x86-64 boot milestone
This commit is contained in:
1 parent
9af96aa1e1
commit
fc2bee6f32
28 files changed
+865
-7
No files matched your search
@@ -0,0 +1,29 @@
|
||||
module main
|
||||
#flag -I @VMODROOT/include
|
||||
#flag -L @VMODROOT/build/lib
|
||||
#flag -lagila_host
|
||||
#include "agila_ports.h"
|
||||
fn C.agila_port_create(u32) u32
|
||||
fn C.agila_port_allow_sender(u32,u32,u32) int
|
||||
fn C.agila_port_revoke_sender(u32,u32,u32) int
|
||||
fn C.agila_port_send(u32,u32,u32) int
|
||||
fn C.agila_port_receive(u32,u32,&u32) int
|
||||
fn C.agila_port_close(u32,u32) int
|
||||
fn main() {
|
||||
owner := u32(10)
|
||||
worker := u32(20)
|
||||
port := C.agila_port_create(owner)
|
||||
assert port != 0
|
||||
assert C.agila_port_send(port,worker,42) == 2 // denied until owner grants
|
||||
assert C.agila_port_allow_sender(port,owner,worker) == 0
|
||||
assert C.agila_port_send(port,worker,42) == 0
|
||||
mut value := u32(0)
|
||||
assert C.agila_port_receive(port,owner,&value) == 0
|
||||
assert value == 42
|
||||
assert C.agila_port_revoke_sender(port,owner,worker) == 0
|
||||
assert C.agila_port_send(port,worker,7) == 2
|
||||
assert C.agila_port_close(port,owner) == 0
|
||||
assert C.agila_port_send(port,owner,7) == 1
|
||||
println('ADA_V_PORTS_OK value=${value}')
|
||||
println('Host ABI demo: caller IDs are trusted inputs; no process isolation is claimed.')
|
||||
}
|
||||
Reference in new issue
Block a user