akern-gkgoat-fork/user/ablewasi/src/sys.rs

29 lines
743 B
Rust

#[repr(C)]
pub struct ROAResult(*const u8,i32);
pub type LocalObject = i64;
#[repr(C)]
pub struct GlobalObject(u64,u64,u64,u64);
impl From<[u64;4]> for GlobalObject {
fn from(value: [u64;4]) -> Self {
GlobalObject(value[0], value[1], value[2], value[3])
}
}
impl From<GlobalObject> for [u64; 4]{
fn from(value: GlobalObject) -> Self {
let GlobalObject(a,b,c,d) = value;
[a,b,c,d]
}
}
extern "C"{
pub fn create_object(a: *const u8, b: i32) -> LocalObject;
pub fn read_object_attribute(a: LocalObject, b: *const i8, c: i32) -> ROAResult;
pub fn take_global(a: GlobalObject) -> LocalObject;
pub fn make_global(a: LocalObject) -> GlobalObject;
pub fn drop_object(a: LocalObject);
}