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.') }