refactor(adapter): split trap/page_table/smp/entry by concern; trim comments
This commit is contained in:
@@ -7,7 +7,7 @@ pub struct KernelCell<T> {
|
||||
inner: UnsafeCell<MaybeUninit<T>>,
|
||||
}
|
||||
|
||||
// Single-core, interrupts disabled during kernel access.
|
||||
// Access is serialized by the kernel lock.
|
||||
unsafe impl<T> Sync for KernelCell<T> {}
|
||||
|
||||
impl<T> KernelCell<T> {
|
||||
@@ -18,8 +18,7 @@ impl<T> KernelCell<T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Initializes the cell by letting `build` write the value straight
|
||||
/// into its storage, so a large `T` never lives on the stack.
|
||||
/// Initializes in place, so a large `T` never lives on the stack.
|
||||
///
|
||||
/// # Safety
|
||||
/// `build` must fully initialize the `T` behind the pointer.
|
||||
@@ -28,9 +27,7 @@ impl<T> KernelCell<T> {
|
||||
self.initialized.store(true, Ordering::Release);
|
||||
}
|
||||
|
||||
/// Returns a raw pointer to the kernel. Callers must ensure
|
||||
/// no aliasing `&mut` references exist. Safe on single-core
|
||||
/// with interrupts disabled during kernel calls.
|
||||
/// Raw pointer to the kernel; callers must avoid aliasing `&mut`.
|
||||
pub fn as_ptr(&self) -> *mut T {
|
||||
debug_assert!(self.initialized.load(Ordering::Acquire));
|
||||
unsafe { (*self.inner.get()).as_mut_ptr() }
|
||||
|
||||
Reference in New Issue
Block a user