forked from AbleOS/ableos
29 lines
743 B
Rust
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);
|
|
} |