yggdrasil/libk/src/lib.rs

57 lines
1010 B
Rust
Raw Normal View History

#![no_std]
2023-12-10 20:54:15 +02:00
#![feature(
maybe_uninit_slice,
step_trait,
const_trait_impl,
effects,
slice_ptr_get,
strict_provenance,
never_type,
let_chains,
2024-01-04 21:22:18 +02:00
allocator_api,
maybe_uninit_uninit_array,
const_maybe_uninit_uninit_array,
new_uninit,
inline_const,
trait_alias
2023-12-10 20:54:15 +02:00
)]
use core::time::Duration;
use yggdrasil_abi::{error::Error, process::Signal};
extern crate alloc;
pub(crate) mod api;
pub mod device;
pub mod runtime;
pub mod sync;
pub mod thread;
2023-09-06 18:48:00 +03:00
2023-12-11 21:13:33 +02:00
#[inline]
pub fn cpu_index() -> usize {
unsafe { api::__cpu_index() }
}
#[inline]
pub fn cpu_count() -> usize {
unsafe { api::__cpu_count() }
}
2024-01-04 21:22:18 +02:00
#[inline]
pub fn signal_process_group(group_id: u32, signal: Signal) {
unsafe { api::__signal_process_group(group_id, signal) }
}
2023-09-06 18:48:00 +03:00
#[repr(C)]
pub struct AlignedTo<Align, Bytes: ?Sized> {
pub align: [Align; 0],
pub bytes: Bytes,
}
#[inline]
pub fn monotonic_timestamp() -> Result<Duration, Error> {
unsafe { api::__monotonic_timestamp() }
}