haku2: VM logging

This commit is contained in:
りき萌 2025-06-11 10:43:22 +02:00
parent 5de4f9d7c6
commit 7658e0d4e8
5 changed files with 105 additions and 2 deletions

View file

@ -5,6 +5,7 @@ use std::{
marker::{PhantomData, PhantomPinned},
mem::forget,
ptr::{self, NonNull},
slice,
};
#[unsafe(no_mangle)]
@ -40,6 +41,54 @@ unsafe extern "C" fn __haku2_dealloc(ptr: *mut u8, size: usize, align: usize) {
}
}
#[unsafe(no_mangle)]
unsafe extern "C" fn __haku2_log_err(
scope: *const u8,
scope_len: usize,
msg: *const u8,
len: usize,
) {
let scope = String::from_utf8_lossy(slice::from_raw_parts(scope, scope_len));
let msg = String::from_utf8_lossy(slice::from_raw_parts(msg, len));
log::error!("{scope}: {msg}");
}
#[unsafe(no_mangle)]
unsafe extern "C" fn __haku2_log_warn(
scope: *const u8,
scope_len: usize,
msg: *const u8,
len: usize,
) {
let scope = String::from_utf8_lossy(slice::from_raw_parts(scope, scope_len));
let msg = String::from_utf8_lossy(slice::from_raw_parts(msg, len));
log::warn!("{scope}: {msg}");
}
#[unsafe(no_mangle)]
unsafe extern "C" fn __haku2_log_info(
scope: *const u8,
scope_len: usize,
msg: *const u8,
len: usize,
) {
let scope = String::from_utf8_lossy(slice::from_raw_parts(scope, scope_len));
let msg = String::from_utf8_lossy(slice::from_raw_parts(msg, len));
log::info!("{scope}: {msg}");
}
#[unsafe(no_mangle)]
unsafe extern "C" fn __haku2_log_debug(
scope: *const u8,
scope_len: usize,
msg: *const u8,
len: usize,
) {
let scope = String::from_utf8_lossy(slice::from_raw_parts(scope, scope_len));
let msg = String::from_utf8_lossy(slice::from_raw_parts(msg, len));
log::debug!("{scope}: {msg}");
}
#[repr(C)]
struct ScratchC {
_data: (),