Skip to main content

MatiOS_SDK/
process_start_info.rs

1use core::cell::OnceCell;
2use crate::uuid::Uuid;
3use core::panic::PanicInfo;
4
5pub static mut GLOBAL_PROCESS_START_INFO:  OnceCell< ProcessStartInfo> = OnceCell::new();
6pub struct ProcessStartInfo {
7    pub processId: Uuid,
8    pub debugPrint: extern "win64" fn(&str),
9    pub debugPrintInt: extern "win64" fn(u64),
10    pub debugPrintUuid: extern "win64" fn(Uuid),
11    pub debugPanicRust: extern "win64" fn(&PanicInfo),
12    pub allocate: extern "win64" fn(size: u64, align: u64) -> u64,
13    pub syscallSync: extern "win64" fn(usize) -> usize,
14}
15impl ProcessStartInfo {
16    pub fn init(info: ProcessStartInfo) {
17        unsafe {
18            GLOBAL_PROCESS_START_INFO = OnceCell::from(info);
19        }
20    }
21}