diff --git a/issue-104/implementors/core/marker/trait.Freeze.js b/issue-104/implementors/core/marker/trait.Freeze.js
index 52368e3c..3ae99fe0 100644
--- a/issue-104/implementors/core/marker/trait.Freeze.js
+++ b/issue-104/implementors/core/marker/trait.Freeze.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl Freeze for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Freeze for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !Freeze for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Freeze for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Freeze for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Freeze for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Freeze for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Freeze for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Freeze for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Freeze for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Freeze for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Freeze for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Freeze for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !Freeze for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Freeze for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Freeze for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !Freeze for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Freeze for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl !Freeze for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Freeze for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Freeze for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Freeze for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl !Freeze for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl Freeze for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Freeze for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !Freeze for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Freeze for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Freeze for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Freeze for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Freeze for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Freeze for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Freeze for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Freeze for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Freeze for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Freeze for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Freeze for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Freeze for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Freeze for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Freeze for SimpleRange<T> where T: Freeze, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Freeze for SimpleRangeIterator<T> where T: Freeze, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Freeze for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Freeze for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Freeze for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Freeze for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Freeze for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Freeze for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Freeze for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Freeze for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Freeze for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Freeze for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Freeze for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Freeze for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Freeze for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !Freeze for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Freeze for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl !Freeze for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !Freeze for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Freeze for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !Freeze for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Freeze for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> !Freeze for UPSafeCellRaw<T>","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Freeze for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Freeze for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> !Freeze for UPIntrFreeCell<T>","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> Freeze for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Freeze for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Freeze for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Freeze for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Freeze for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Freeze for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Freeze for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Freeze for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Freeze for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Freeze for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Freeze for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !Freeze for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Freeze for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Freeze for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Freeze for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Freeze for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !Freeze for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Freeze for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Freeze for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Freeze for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Freeze for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Freeze for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Freeze for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Freeze for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl Freeze for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl Freeze for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl !Freeze for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl Freeze for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Freeze for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
+implementors["os"] = [{"text":"impl Freeze for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Freeze for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !Freeze for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Freeze for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Freeze for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Freeze for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Freeze for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Freeze for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Freeze for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Freeze for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Freeze for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Freeze for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Freeze for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !Freeze for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Freeze for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Freeze for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !Freeze for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Freeze for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl !Freeze for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Freeze for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Freeze for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Freeze for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl !Freeze for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl Freeze for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Freeze for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !Freeze for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Freeze for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Freeze for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Freeze for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Freeze for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Freeze for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Freeze for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Freeze for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Freeze for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Freeze for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Freeze for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Freeze for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Freeze for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Freeze for SimpleRange<T> where T: Freeze, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Freeze for SimpleRangeIterator<T> where T: Freeze, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Freeze for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Freeze for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Freeze for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Freeze for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Freeze for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Freeze for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Freeze for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Freeze for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Freeze for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Freeze for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Freeze for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Freeze for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Freeze for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !Freeze for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Freeze for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl !Freeze for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !Freeze for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Freeze for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !Freeze for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Freeze for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl Freeze for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Freeze for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Freeze for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Freeze for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Freeze for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Freeze for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Freeze for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Freeze for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Freeze for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Freeze for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !Freeze for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Freeze for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Freeze for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Freeze for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Freeze for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !Freeze for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Freeze for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Freeze for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Freeze for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Freeze for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Freeze for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Freeze for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Freeze for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl Freeze for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl Freeze for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl !Freeze for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl Freeze for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Freeze for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/core/marker/trait.Send.js b/issue-104/implementors/core/marker/trait.Send.js
index 146fc97b..45b0c653 100644
--- a/issue-104/implementors/core/marker/trait.Send.js
+++ b/issue-104/implementors/core/marker/trait.Send.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl Send for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Send for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Send for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Send for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Send for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Send for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Send for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Send for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Send for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Send for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Send for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Send for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Send for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Send for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Send for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Send for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Send for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Send for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl Send for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Send for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Send for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Send for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl Send for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl Send for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Send for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Send for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Send for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Send for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Send for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Send for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Send for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Send for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Send for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Send for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Send for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Send for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Send for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Send for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Send for SimpleRange<T> where T: Send, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Send for SimpleRangeIterator<T> where T: Send, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Send for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Send for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Send for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Send for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Send for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Send for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Send for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Send for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Send for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Send for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Send for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Send for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Send for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Send for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Send for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Send for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Send for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Send for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Send for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Send for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> Send for UPSafeCellRaw<T> where T: Send, ","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Send for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Send for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> Send for UPIntrFreeCell<T> where T: Send, ","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !Send for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Send for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Send for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Send for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Send for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Send for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Send for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Send for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Send for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Send for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Send for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Send for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Send for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Send for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Send for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Send for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Send for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Send for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Send for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Send for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Send for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Send for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Send for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Send for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl Send for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl Send for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl Send for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl Send for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Send for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
+implementors["os"] = [{"text":"impl Send for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Send for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Send for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Send for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Send for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Send for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Send for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Send for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Send for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Send for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Send for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Send for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Send for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Send for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Send for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Send for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Send for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Send for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl Send for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Send for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Send for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Send for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl Send for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl Send for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Send for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Send for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Send for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Send for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Send for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Send for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Send for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Send for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Send for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Send for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Send for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Send for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Send for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Send for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Send for SimpleRange<T> where T: Send, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Send for SimpleRangeIterator<T> where T: Send, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Send for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Send for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Send for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Send for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Send for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Send for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Send for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Send for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Send for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Send for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Send for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Send for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Send for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Send for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Send for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Send for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Send for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Send for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Send for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Send for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl Send for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Send for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Send for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Send for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Send for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Send for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Send for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Send for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Send for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Send for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Send for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Send for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Send for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Send for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Send for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Send for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Send for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Send for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Send for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Send for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Send for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Send for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Send for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl Send for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl Send for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl Send for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl Send for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Send for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/core/marker/trait.Sync.js b/issue-104/implementors/core/marker/trait.Sync.js
index ee493075..99562165 100644
--- a/issue-104/implementors/core/marker/trait.Sync.js
+++ b/issue-104/implementors/core/marker/trait.Sync.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl Sync for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Sync for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Sync for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Sync for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Sync for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Sync for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Sync for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Sync for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Sync for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Sync for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Sync for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Sync for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Sync for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Sync for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Sync for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Sync for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Sync for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Sync for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl Sync for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Sync for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Sync for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Sync for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl Sync for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl Sync for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Sync for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Sync for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Sync for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Sync for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Sync for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Sync for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Sync for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Sync for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Sync for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Sync for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Sync for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Sync for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Sync for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Sync for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Sync for SimpleRange<T> where T: Sync, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Sync for SimpleRangeIterator<T> where T: Sync, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Sync for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Sync for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Sync for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Sync for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Sync for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Sync for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Sync for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Sync for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Sync for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Sync for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Sync for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Sync for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Sync for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Sync for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Sync for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Sync for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Sync for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Sync for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Sync for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Sync for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl Sync for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Sync for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<'a, T> !Sync for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Sync for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Sync for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Sync for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Sync for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Sync for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Sync for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Sync for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Sync for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Sync for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Sync for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Sync for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Sync for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Sync for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Sync for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Sync for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Sync for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Sync for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Sync for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Sync for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Sync for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Sync for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Sync for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Sync for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl Sync for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl Sync for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl Sync for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl Sync for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Sync for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]},{"text":"impl<T> Sync for UPSafeCellRaw<T>","synthetic":false,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl<T> Sync for UPIntrFreeCell<T>","synthetic":false,"types":["os::sync::up::UPIntrFreeCell"]}];
+implementors["os"] = [{"text":"impl Sync for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Sync for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Sync for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Sync for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Sync for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Sync for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Sync for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Sync for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Sync for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Sync for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Sync for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Sync for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Sync for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Sync for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Sync for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Sync for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Sync for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Sync for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl Sync for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Sync for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Sync for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Sync for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl Sync for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl Sync for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Sync for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Sync for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Sync for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Sync for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Sync for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Sync for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Sync for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Sync for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Sync for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Sync for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Sync for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Sync for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Sync for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Sync for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Sync for SimpleRange<T> where T: Sync, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Sync for SimpleRangeIterator<T> where T: Sync, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Sync for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Sync for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Sync for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Sync for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Sync for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Sync for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Sync for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Sync for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Sync for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Sync for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Sync for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Sync for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Sync for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Sync for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Sync for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Sync for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Sync for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Sync for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Sync for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Sync for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl Sync for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Sync for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Sync for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Sync for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Sync for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Sync for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Sync for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Sync for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Sync for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Sync for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Sync for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Sync for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Sync for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Sync for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Sync for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Sync for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Sync for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Sync for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Sync for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Sync for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Sync for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Sync for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Sync for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl Sync for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl Sync for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl Sync for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl Sync for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Sync for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/core/marker/trait.Unpin.js b/issue-104/implementors/core/marker/trait.Unpin.js
index 46846f3d..eb96bcbe 100644
--- a/issue-104/implementors/core/marker/trait.Unpin.js
+++ b/issue-104/implementors/core/marker/trait.Unpin.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl Unpin for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Unpin for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Unpin for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Unpin for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Unpin for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Unpin for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Unpin for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Unpin for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Unpin for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Unpin for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Unpin for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Unpin for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Unpin for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Unpin for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Unpin for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Unpin for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Unpin for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Unpin for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl Unpin for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Unpin for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Unpin for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Unpin for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl Unpin for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl Unpin for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Unpin for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Unpin for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Unpin for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Unpin for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Unpin for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Unpin for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Unpin for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Unpin for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Unpin for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Unpin for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Unpin for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Unpin for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Unpin for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Unpin for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Unpin for SimpleRange<T> where T: Unpin, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Unpin for SimpleRangeIterator<T> where T: Unpin, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Unpin for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Unpin for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Unpin for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Unpin for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Unpin for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Unpin for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Unpin for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Unpin for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Unpin for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Unpin for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Unpin for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Unpin for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Unpin for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Unpin for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Unpin for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Unpin for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Unpin for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Unpin for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Unpin for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Unpin for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> Unpin for UPSafeCellRaw<T> where T: Unpin, ","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Unpin for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Unpin for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> Unpin for UPIntrFreeCell<T> where T: Unpin, ","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> Unpin for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Unpin for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Unpin for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Unpin for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Unpin for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Unpin for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Unpin for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Unpin for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Unpin for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Unpin for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Unpin for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Unpin for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Unpin for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Unpin for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Unpin for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Unpin for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Unpin for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Unpin for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Unpin for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Unpin for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Unpin for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Unpin for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Unpin for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Unpin for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl Unpin for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl Unpin for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl Unpin for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl Unpin for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Unpin for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
+implementors["os"] = [{"text":"impl Unpin for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Unpin for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Unpin for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Unpin for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Unpin for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Unpin for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Unpin for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Unpin for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Unpin for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Unpin for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Unpin for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Unpin for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Unpin for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Unpin for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Unpin for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Unpin for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Unpin for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Unpin for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl Unpin for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Unpin for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Unpin for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Unpin for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl Unpin for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl Unpin for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Unpin for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Unpin for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Unpin for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Unpin for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Unpin for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Unpin for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Unpin for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Unpin for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Unpin for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Unpin for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Unpin for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Unpin for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Unpin for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Unpin for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Unpin for SimpleRange<T> where T: Unpin, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Unpin for SimpleRangeIterator<T> where T: Unpin, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Unpin for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Unpin for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Unpin for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Unpin for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Unpin for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Unpin for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Unpin for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Unpin for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Unpin for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Unpin for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Unpin for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Unpin for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Unpin for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Unpin for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Unpin for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Unpin for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Unpin for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Unpin for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Unpin for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Unpin for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl Unpin for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Unpin for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Unpin for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Unpin for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Unpin for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Unpin for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Unpin for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Unpin for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Unpin for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Unpin for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Unpin for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Unpin for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Unpin for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Unpin for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Unpin for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Unpin for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Unpin for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Unpin for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Unpin for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Unpin for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Unpin for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Unpin for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Unpin for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl Unpin for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl Unpin for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl Unpin for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl Unpin for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Unpin for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/core/ops/deref/trait.Deref.js b/issue-104/implementors/core/ops/deref/trait.Deref.js
index 85d23d3a..e7e1a037 100644
--- a/issue-104/implementors/core/ops/deref/trait.Deref.js
+++ b/issue-104/implementors/core/ops/deref/trait.Deref.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl Deref for BLOCK_DEVICE","synthetic":false,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Deref for QUEUE_FRAMES","synthetic":false,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Deref for UART","synthetic":false,"types":["os::drivers::chardev::UART"]},{"text":"impl Deref for GPU_DEVICE","synthetic":false,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Deref for KEYBOARD_DEVICE","synthetic":false,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Deref for MOUSE_DEVICE","synthetic":false,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Deref for NET_DEVICE","synthetic":false,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl Deref for ROOT_INODE","synthetic":false,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Deref for FRAME_ALLOCATOR","synthetic":false,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Deref for KERNEL_SPACE","synthetic":false,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Deref for INTR_MASKING_INFO","synthetic":false,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<'a, T> Deref for UPIntrRefMut<'a, T>","synthetic":false,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Deref for PID_ALLOCATOR","synthetic":false,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Deref for KSTACK_ALLOCATOR","synthetic":false,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Deref for TASK_MANAGER","synthetic":false,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Deref for PID2PCB","synthetic":false,"types":["os::task::manager::PID2PCB"]},{"text":"impl Deref for PROCESSOR","synthetic":false,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Deref for INITPROC","synthetic":false,"types":["os::task::INITPROC"]},{"text":"impl Deref for TIMERS","synthetic":false,"types":["os::timer::TIMERS"]},{"text":"impl Deref for SOCKET_TABLE","synthetic":false,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl Deref for LOSE_NET_STACK","synthetic":false,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Deref for DEV_NON_BLOCKING_ACCESS","synthetic":false,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
+implementors["os"] = [{"text":"impl Deref for BLOCK_DEVICE","synthetic":false,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Deref for QUEUE_FRAMES","synthetic":false,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Deref for UART","synthetic":false,"types":["os::drivers::chardev::UART"]},{"text":"impl Deref for GPU_DEVICE","synthetic":false,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Deref for KEYBOARD_DEVICE","synthetic":false,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Deref for MOUSE_DEVICE","synthetic":false,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Deref for NET_DEVICE","synthetic":false,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl Deref for ROOT_INODE","synthetic":false,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Deref for FRAME_ALLOCATOR","synthetic":false,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Deref for KERNEL_SPACE","synthetic":false,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Deref for PID_ALLOCATOR","synthetic":false,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Deref for KSTACK_ALLOCATOR","synthetic":false,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Deref for TASK_MANAGER","synthetic":false,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Deref for PID2PCB","synthetic":false,"types":["os::task::manager::PID2PCB"]},{"text":"impl Deref for PROCESSOR","synthetic":false,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Deref for INITPROC","synthetic":false,"types":["os::task::INITPROC"]},{"text":"impl Deref for TIMERS","synthetic":false,"types":["os::timer::TIMERS"]},{"text":"impl Deref for SOCKET_TABLE","synthetic":false,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl Deref for LOSE_NET_STACK","synthetic":false,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl Deref for DEV_NON_BLOCKING_ACCESS","synthetic":false,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/core/ops/deref/trait.DerefMut.js b/issue-104/implementors/core/ops/deref/trait.DerefMut.js
deleted file mode 100644
index 764822db..00000000
--- a/issue-104/implementors/core/ops/deref/trait.DerefMut.js
+++ /dev/null
@@ -1,3 +0,0 @@
-(function() {var implementors = {};
-implementors["os"] = [{"text":"impl<'a, T> DerefMut for UPIntrRefMut<'a, T>","synthetic":false,"types":["os::sync::up::UPIntrRefMut"]}];
-if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/core/ops/drop/trait.Drop.js b/issue-104/implementors/core/ops/drop/trait.Drop.js
index 431e032c..e893a0e2 100644
--- a/issue-104/implementors/core/ops/drop/trait.Drop.js
+++ b/issue-104/implementors/core/ops/drop/trait.Drop.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl Drop for FrameTracker","synthetic":false,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl<'a, T> Drop for UPIntrRefMut<'a, T>","synthetic":false,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Drop for PidHandle","synthetic":false,"types":["os::task::id::PidHandle"]},{"text":"impl Drop for KernelStack","synthetic":false,"types":["os::task::id::KernelStack"]},{"text":"impl Drop for TaskUserRes","synthetic":false,"types":["os::task::id::TaskUserRes"]},{"text":"impl Drop for UDP","synthetic":false,"types":["os::net::udp::UDP"]}];
+implementors["os"] = [{"text":"impl Drop for FrameTracker","synthetic":false,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Drop for PidHandle","synthetic":false,"types":["os::task::id::PidHandle"]},{"text":"impl Drop for KernelStack","synthetic":false,"types":["os::task::id::KernelStack"]},{"text":"impl Drop for TaskUserRes","synthetic":false,"types":["os::task::id::TaskUserRes"]},{"text":"impl Drop for UDP","synthetic":false,"types":["os::net::udp::UDP"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/issue-104/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
index 4484a872..27967d40 100644
--- a/issue-104/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
+++ b/issue-104/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl RefUnwindSafe for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl RefUnwindSafe for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !RefUnwindSafe for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl RefUnwindSafe for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl RefUnwindSafe for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl RefUnwindSafe for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl RefUnwindSafe for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl RefUnwindSafe for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl RefUnwindSafe for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl RefUnwindSafe for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl RefUnwindSafe for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl RefUnwindSafe for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl RefUnwindSafe for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !RefUnwindSafe for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl RefUnwindSafe for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl RefUnwindSafe for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !RefUnwindSafe for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl RefUnwindSafe for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl !RefUnwindSafe for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl RefUnwindSafe for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl RefUnwindSafe for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl RefUnwindSafe for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl !RefUnwindSafe for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl RefUnwindSafe for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl RefUnwindSafe for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !RefUnwindSafe for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl !RefUnwindSafe for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl RefUnwindSafe for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl RefUnwindSafe for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl !RefUnwindSafe for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl RefUnwindSafe for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl !RefUnwindSafe for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl RefUnwindSafe for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl RefUnwindSafe for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl RefUnwindSafe for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl RefUnwindSafe for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl RefUnwindSafe for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl RefUnwindSafe for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> RefUnwindSafe for SimpleRange<T> where T: RefUnwindSafe, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> RefUnwindSafe for SimpleRangeIterator<T> where T: RefUnwindSafe, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl RefUnwindSafe for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl RefUnwindSafe for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl RefUnwindSafe for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl RefUnwindSafe for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl RefUnwindSafe for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl RefUnwindSafe for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl RefUnwindSafe for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl RefUnwindSafe for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl RefUnwindSafe for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl RefUnwindSafe for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl RefUnwindSafe for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl RefUnwindSafe for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl RefUnwindSafe for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !RefUnwindSafe for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl !RefUnwindSafe for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl !RefUnwindSafe for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !RefUnwindSafe for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl !RefUnwindSafe for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !RefUnwindSafe for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl !RefUnwindSafe for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> !RefUnwindSafe for UPSafeCellRaw<T>","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl RefUnwindSafe for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl RefUnwindSafe for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> !RefUnwindSafe for UPIntrFreeCell<T>","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !RefUnwindSafe for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl RefUnwindSafe for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl RefUnwindSafe for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl RefUnwindSafe for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl RefUnwindSafe for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl RefUnwindSafe for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl RefUnwindSafe for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl !RefUnwindSafe for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl !RefUnwindSafe for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl RefUnwindSafe for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl RefUnwindSafe for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !RefUnwindSafe for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl !RefUnwindSafe for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl !RefUnwindSafe for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl RefUnwindSafe for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl RefUnwindSafe for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !RefUnwindSafe for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl !RefUnwindSafe for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl RefUnwindSafe for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl RefUnwindSafe for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl !RefUnwindSafe for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl RefUnwindSafe for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl RefUnwindSafe for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl RefUnwindSafe for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl RefUnwindSafe for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl RefUnwindSafe for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl !RefUnwindSafe for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl RefUnwindSafe for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl RefUnwindSafe for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
+implementors["os"] = [{"text":"impl RefUnwindSafe for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl RefUnwindSafe for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !RefUnwindSafe for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl RefUnwindSafe for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl RefUnwindSafe for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl RefUnwindSafe for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl RefUnwindSafe for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl RefUnwindSafe for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl RefUnwindSafe for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl RefUnwindSafe for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl RefUnwindSafe for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl RefUnwindSafe for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl RefUnwindSafe for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !RefUnwindSafe for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl RefUnwindSafe for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl RefUnwindSafe for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !RefUnwindSafe for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl RefUnwindSafe for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl !RefUnwindSafe for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl RefUnwindSafe for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl RefUnwindSafe for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl RefUnwindSafe for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl !RefUnwindSafe for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl RefUnwindSafe for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl RefUnwindSafe for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !RefUnwindSafe for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl !RefUnwindSafe for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl RefUnwindSafe for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl RefUnwindSafe for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl !RefUnwindSafe for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl RefUnwindSafe for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl !RefUnwindSafe for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl RefUnwindSafe for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl RefUnwindSafe for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl RefUnwindSafe for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl RefUnwindSafe for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl RefUnwindSafe for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl RefUnwindSafe for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> RefUnwindSafe for SimpleRange<T> where T: RefUnwindSafe, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> RefUnwindSafe for SimpleRangeIterator<T> where T: RefUnwindSafe, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl RefUnwindSafe for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl RefUnwindSafe for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl RefUnwindSafe for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl RefUnwindSafe for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl RefUnwindSafe for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl RefUnwindSafe for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl RefUnwindSafe for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl RefUnwindSafe for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl RefUnwindSafe for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl RefUnwindSafe for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl RefUnwindSafe for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl RefUnwindSafe for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl RefUnwindSafe for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !RefUnwindSafe for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl !RefUnwindSafe for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl !RefUnwindSafe for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !RefUnwindSafe for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl !RefUnwindSafe for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !RefUnwindSafe for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl !RefUnwindSafe for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl RefUnwindSafe for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl RefUnwindSafe for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl RefUnwindSafe for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl RefUnwindSafe for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl RefUnwindSafe for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl RefUnwindSafe for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl !RefUnwindSafe for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl !RefUnwindSafe for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl RefUnwindSafe for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl RefUnwindSafe for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !RefUnwindSafe for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl !RefUnwindSafe for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl !RefUnwindSafe for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl RefUnwindSafe for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl RefUnwindSafe for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !RefUnwindSafe for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl !RefUnwindSafe for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl RefUnwindSafe for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl RefUnwindSafe for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl !RefUnwindSafe for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl RefUnwindSafe for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl RefUnwindSafe for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl RefUnwindSafe for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl RefUnwindSafe for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl RefUnwindSafe for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl !RefUnwindSafe for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl RefUnwindSafe for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl RefUnwindSafe for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/issue-104/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
index 56108ab1..5587d53c 100644
--- a/issue-104/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
+++ b/issue-104/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl UnwindSafe for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl UnwindSafe for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !UnwindSafe for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl UnwindSafe for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl UnwindSafe for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl UnwindSafe for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl UnwindSafe for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl UnwindSafe for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl UnwindSafe for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl UnwindSafe for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl UnwindSafe for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl UnwindSafe for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl UnwindSafe for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !UnwindSafe for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl UnwindSafe for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl UnwindSafe for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !UnwindSafe for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl !UnwindSafe for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl !UnwindSafe for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl UnwindSafe for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl UnwindSafe for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl UnwindSafe for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl !UnwindSafe for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl UnwindSafe for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl UnwindSafe for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !UnwindSafe for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl !UnwindSafe for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl UnwindSafe for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl UnwindSafe for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl !UnwindSafe for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl UnwindSafe for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl !UnwindSafe for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl UnwindSafe for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl UnwindSafe for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl UnwindSafe for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl UnwindSafe for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl UnwindSafe for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl UnwindSafe for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> UnwindSafe for SimpleRange<T> where T: UnwindSafe, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> UnwindSafe for SimpleRangeIterator<T> where T: UnwindSafe, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl UnwindSafe for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl UnwindSafe for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl UnwindSafe for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl UnwindSafe for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl UnwindSafe for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl UnwindSafe for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl UnwindSafe for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl UnwindSafe for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl UnwindSafe for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl UnwindSafe for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl UnwindSafe for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl !UnwindSafe for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl !UnwindSafe for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !UnwindSafe for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl !UnwindSafe for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl UnwindSafe for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !UnwindSafe for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl !UnwindSafe for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !UnwindSafe for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl !UnwindSafe for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> UnwindSafe for UPSafeCellRaw<T> where T: UnwindSafe, ","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl UnwindSafe for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl UnwindSafe for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> UnwindSafe for UPIntrFreeCell<T> where T: UnwindSafe, ","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !UnwindSafe for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl UnwindSafe for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl UnwindSafe for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl UnwindSafe for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl UnwindSafe for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl UnwindSafe for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl UnwindSafe for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl !UnwindSafe for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl !UnwindSafe for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl UnwindSafe for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl UnwindSafe for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !UnwindSafe for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl !UnwindSafe for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl !UnwindSafe for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl UnwindSafe for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl UnwindSafe for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !UnwindSafe for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl !UnwindSafe for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl UnwindSafe for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl UnwindSafe for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl !UnwindSafe for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl UnwindSafe for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl UnwindSafe for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl UnwindSafe for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl UnwindSafe for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl UnwindSafe for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl UnwindSafe for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl UnwindSafe for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl UnwindSafe for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
+implementors["os"] = [{"text":"impl UnwindSafe for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl UnwindSafe for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !UnwindSafe for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl UnwindSafe for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl UnwindSafe for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl UnwindSafe for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl UnwindSafe for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl UnwindSafe for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl UnwindSafe for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl UnwindSafe for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl UnwindSafe for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl UnwindSafe for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl UnwindSafe for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !UnwindSafe for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl UnwindSafe for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl UnwindSafe for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !UnwindSafe for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl !UnwindSafe for VirtIOInputInner","synthetic":true,"types":["os::drivers::input::VirtIOInputInner"]},{"text":"impl !UnwindSafe for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl UnwindSafe for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl UnwindSafe for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl UnwindSafe for NET_DEVICE","synthetic":true,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl !UnwindSafe for VirtIONetWrapper","synthetic":true,"types":["os::drivers::net::VirtIONetWrapper"]},{"text":"impl UnwindSafe for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl UnwindSafe for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !UnwindSafe for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl !UnwindSafe for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl UnwindSafe for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl UnwindSafe for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl !UnwindSafe for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl UnwindSafe for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl !UnwindSafe for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl UnwindSafe for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl UnwindSafe for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl UnwindSafe for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl UnwindSafe for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl UnwindSafe for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl UnwindSafe for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> UnwindSafe for SimpleRange<T> where T: UnwindSafe, ","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> UnwindSafe for SimpleRangeIterator<T> where T: UnwindSafe, ","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl UnwindSafe for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl UnwindSafe for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl UnwindSafe for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl UnwindSafe for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl UnwindSafe for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl UnwindSafe for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl UnwindSafe for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl UnwindSafe for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl UnwindSafe for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl UnwindSafe for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl UnwindSafe for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl !UnwindSafe for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl !UnwindSafe for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !UnwindSafe for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl !UnwindSafe for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl UnwindSafe for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !UnwindSafe for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl !UnwindSafe for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !UnwindSafe for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl !UnwindSafe for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl UnwindSafe for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl UnwindSafe for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl UnwindSafe for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl UnwindSafe for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl UnwindSafe for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl UnwindSafe for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl !UnwindSafe for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl !UnwindSafe for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl UnwindSafe for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl UnwindSafe for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !UnwindSafe for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl !UnwindSafe for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl !UnwindSafe for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl UnwindSafe for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl UnwindSafe for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !UnwindSafe for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl !UnwindSafe for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl UnwindSafe for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl UnwindSafe for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl !UnwindSafe for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl UnwindSafe for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl UnwindSafe for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl UnwindSafe for UDP","synthetic":true,"types":["os::net::udp::UDP"]},{"text":"impl UnwindSafe for Socket","synthetic":true,"types":["os::net::socket::Socket"]},{"text":"impl UnwindSafe for SOCKET_TABLE","synthetic":true,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl UnwindSafe for NetStack","synthetic":true,"types":["os::net::NetStack"]},{"text":"impl UnwindSafe for LOSE_NET_STACK","synthetic":true,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl UnwindSafe for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/implementors/lazy_static/trait.LazyStatic.js b/issue-104/implementors/lazy_static/trait.LazyStatic.js
index 4714bb7e..8b66e169 100644
--- a/issue-104/implementors/lazy_static/trait.LazyStatic.js
+++ b/issue-104/implementors/lazy_static/trait.LazyStatic.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["os"] = [{"text":"impl LazyStatic for BLOCK_DEVICE","synthetic":false,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl LazyStatic for QUEUE_FRAMES","synthetic":false,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl LazyStatic for UART","synthetic":false,"types":["os::drivers::chardev::UART"]},{"text":"impl LazyStatic for GPU_DEVICE","synthetic":false,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl LazyStatic for KEYBOARD_DEVICE","synthetic":false,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl LazyStatic for MOUSE_DEVICE","synthetic":false,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl LazyStatic for NET_DEVICE","synthetic":false,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl LazyStatic for ROOT_INODE","synthetic":false,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl LazyStatic for FRAME_ALLOCATOR","synthetic":false,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl LazyStatic for KERNEL_SPACE","synthetic":false,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl LazyStatic for INTR_MASKING_INFO","synthetic":false,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl LazyStatic for PID_ALLOCATOR","synthetic":false,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl LazyStatic for KSTACK_ALLOCATOR","synthetic":false,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl LazyStatic for TASK_MANAGER","synthetic":false,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl LazyStatic for PID2PCB","synthetic":false,"types":["os::task::manager::PID2PCB"]},{"text":"impl LazyStatic for PROCESSOR","synthetic":false,"types":["os::task::processor::PROCESSOR"]},{"text":"impl LazyStatic for INITPROC","synthetic":false,"types":["os::task::INITPROC"]},{"text":"impl LazyStatic for TIMERS","synthetic":false,"types":["os::timer::TIMERS"]},{"text":"impl LazyStatic for SOCKET_TABLE","synthetic":false,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl LazyStatic for LOSE_NET_STACK","synthetic":false,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl LazyStatic for DEV_NON_BLOCKING_ACCESS","synthetic":false,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
+implementors["os"] = [{"text":"impl LazyStatic for BLOCK_DEVICE","synthetic":false,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl LazyStatic for QUEUE_FRAMES","synthetic":false,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl LazyStatic for UART","synthetic":false,"types":["os::drivers::chardev::UART"]},{"text":"impl LazyStatic for GPU_DEVICE","synthetic":false,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl LazyStatic for KEYBOARD_DEVICE","synthetic":false,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl LazyStatic for MOUSE_DEVICE","synthetic":false,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl LazyStatic for NET_DEVICE","synthetic":false,"types":["os::drivers::net::NET_DEVICE"]},{"text":"impl LazyStatic for ROOT_INODE","synthetic":false,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl LazyStatic for FRAME_ALLOCATOR","synthetic":false,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl LazyStatic for KERNEL_SPACE","synthetic":false,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl LazyStatic for PID_ALLOCATOR","synthetic":false,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl LazyStatic for KSTACK_ALLOCATOR","synthetic":false,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl LazyStatic for TASK_MANAGER","synthetic":false,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl LazyStatic for PID2PCB","synthetic":false,"types":["os::task::manager::PID2PCB"]},{"text":"impl LazyStatic for PROCESSOR","synthetic":false,"types":["os::task::processor::PROCESSOR"]},{"text":"impl LazyStatic for INITPROC","synthetic":false,"types":["os::task::INITPROC"]},{"text":"impl LazyStatic for TIMERS","synthetic":false,"types":["os::timer::TIMERS"]},{"text":"impl LazyStatic for SOCKET_TABLE","synthetic":false,"types":["os::net::socket::SOCKET_TABLE"]},{"text":"impl LazyStatic for LOSE_NET_STACK","synthetic":false,"types":["os::net::LOSE_NET_STACK"]},{"text":"impl LazyStatic for DEV_NON_BLOCKING_ACCESS","synthetic":false,"types":["os::DEV_NON_BLOCKING_ACCESS"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/issue-104/os/all.html b/issue-104/os/all.html
index e52abc82..8e52e9dc 100644
--- a/issue-104/os/all.html
+++ b/issue-104/os/all.html
@@ -1 +1 @@
-
\ No newline at end of file
diff --git a/issue-104/os/drivers/block/virtio_blk/struct.VirtIOBlock.html b/issue-104/os/drivers/block/virtio_blk/struct.VirtIOBlock.html
index e1735da4..ecc6c04c 100644
--- a/issue-104/os/drivers/block/virtio_blk/struct.VirtIOBlock.html
+++ b/issue-104/os/drivers/block/virtio_blk/struct.VirtIOBlock.html
@@ -1,7 +1,7 @@
VirtIOBlock in os::drivers::block::virtio_blk - Rust
\ No newline at end of file
diff --git a/issue-104/os/fs/inode/index.html b/issue-104/os/fs/inode/index.html
index 703da839..d770beaf 100644
--- a/issue-104/os/fs/inode/index.html
+++ b/issue-104/os/fs/inode/index.html
@@ -1 +1 @@
-os::fs::inode - Rust
\ No newline at end of file
diff --git a/issue-104/os/fs/inode/struct.OSInode.html b/issue-104/os/fs/inode/struct.OSInode.html
index fa5c5b1b..0daa85a7 100644
--- a/issue-104/os/fs/inode/struct.OSInode.html
+++ b/issue-104/os/fs/inode/struct.OSInode.html
@@ -1,8 +1,8 @@
OSInode in os::fs::inode - Rust
\ No newline at end of file
diff --git a/issue-104/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html b/issue-104/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
index 6c3ed9e1..bb1e66b3 100644
--- a/issue-104/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
+++ b/issue-104/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
@@ -1,8 +1,8 @@
FRAME_ALLOCATOR in os::mm::frame_allocator - Rust
\ No newline at end of file
diff --git a/issue-104/os/sync/mutex/struct.MutexBlocking.html b/issue-104/os/sync/mutex/struct.MutexBlocking.html
index 21ab8fe3..d05cc976 100644
--- a/issue-104/os/sync/mutex/struct.MutexBlocking.html
+++ b/issue-104/os/sync/mutex/struct.MutexBlocking.html
@@ -1,6 +1,6 @@
MutexBlocking in os::sync::mutex - Rust
diff --git a/issue-104/os/sync/sidebar-items.js b/issue-104/os/sync/sidebar-items.js
index 1ee8d463..442a3bc3 100644
--- a/issue-104/os/sync/sidebar-items.js
+++ b/issue-104/os/sync/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"mod":[["condvar",""],["mutex",""],["semaphore",""],["up",""]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"mod":[["condvar",""],["mutex",""],["semaphore",""],["up",""]],"struct":[["UPIntrFreeCell",""],["UPIntrRefMut",""]]};
\ No newline at end of file
diff --git a/issue-104/os/sync/struct.UPIntrFreeCell.html b/issue-104/os/sync/struct.UPIntrFreeCell.html
new file mode 100644
index 00000000..fab25d60
--- /dev/null
+++ b/issue-104/os/sync/struct.UPIntrFreeCell.html
@@ -0,0 +1,28 @@
+UPIntrFreeCell in os::sync - Rust
\ No newline at end of file
diff --git a/issue-104/os/sync/struct.UPIntrRefMut.html b/issue-104/os/sync/struct.UPIntrRefMut.html
new file mode 100644
index 00000000..cd637ceb
--- /dev/null
+++ b/issue-104/os/sync/struct.UPIntrRefMut.html
@@ -0,0 +1,28 @@
+UPIntrRefMut in os::sync - Rust
\ No newline at end of file
diff --git a/issue-104/os/sync/up/fn.enable_intr.html b/issue-104/os/sync/up/fn.enable_intr.html
new file mode 100644
index 00000000..b041b2e7
--- /dev/null
+++ b/issue-104/os/sync/up/fn.enable_intr.html
@@ -0,0 +1,2 @@
+enable_intr in os::sync::up - Rust
\ No newline at end of file
diff --git a/issue-104/os/sync/up/fn.swap_and_disable_intr.html b/issue-104/os/sync/up/fn.swap_and_disable_intr.html
new file mode 100644
index 00000000..44d83e6f
--- /dev/null
+++ b/issue-104/os/sync/up/fn.swap_and_disable_intr.html
@@ -0,0 +1,2 @@
+swap_and_disable_intr in os::sync::up - Rust
\ No newline at end of file
diff --git a/issue-104/os/sync/up/index.html b/issue-104/os/sync/up/index.html
index 8f591d47..f23080d9 100644
--- a/issue-104/os/sync/up/index.html
+++ b/issue-104/os/sync/up/index.html
@@ -1 +1 @@
-os::sync::up - Rust
\ No newline at end of file
diff --git a/issue-104/os/sync/up/sidebar-items.js b/issue-104/os/sync/up/sidebar-items.js
index 6494946f..782c1d1e 100644
--- a/issue-104/os/sync/up/sidebar-items.js
+++ b/issue-104/os/sync/up/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"struct":[["INTR_MASKING_INFO",""],["IntrMaskingInfo",""],["UPIntrFreeCell",""],["UPIntrRefMut",""],["UPSafeCellRaw",""]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"fn":[["enable_intr",""],["swap_and_disable_intr",""]],"struct":[["UPIntrFreeCell",""],["UPIntrRefMut",""]]};
\ No newline at end of file
diff --git a/issue-104/os/sync/up/struct.INTR_MASKING_INFO.html b/issue-104/os/sync/up/struct.INTR_MASKING_INFO.html
deleted file mode 100644
index 0b5024f1..00000000
--- a/issue-104/os/sync/up/struct.INTR_MASKING_INFO.html
+++ /dev/null
@@ -1,28 +0,0 @@
-INTR_MASKING_INFO in os::sync::up - Rust
\ No newline at end of file
diff --git a/issue-104/os/sync/up/struct.IntrMaskingInfo.html b/issue-104/os/sync/up/struct.IntrMaskingInfo.html
deleted file mode 100644
index 569888ca..00000000
--- a/issue-104/os/sync/up/struct.IntrMaskingInfo.html
+++ /dev/null
@@ -1,27 +0,0 @@
-IntrMaskingInfo in os::sync::up - Rust
\ No newline at end of file
diff --git a/issue-104/os/sync/up/struct.UPIntrFreeCell.html b/issue-104/os/sync/up/struct.UPIntrFreeCell.html
index dfbd9f3f..f9362601 100644
--- a/issue-104/os/sync/up/struct.UPIntrFreeCell.html
+++ b/issue-104/os/sync/up/struct.UPIntrFreeCell.html
@@ -1,8 +1,8 @@
-UPIntrFreeCell in os::sync::up - Rust
\ No newline at end of file
diff --git a/issue-104/os/syscall/process/fn.sys_exec.html b/issue-104/os/syscall/process/fn.sys_exec.html
index 9fbc67be..6bc35718 100644
--- a/issue-104/os/syscall/process/fn.sys_exec.html
+++ b/issue-104/os/syscall/process/fn.sys_exec.html
@@ -1 +1 @@
-sys_exec in os::syscall::process - Rust
\ No newline at end of file
diff --git a/issue-104/os/syscall/process/fn.sys_kill.html b/issue-104/os/syscall/process/fn.sys_kill.html
index a4a096e2..a108d940 100644
--- a/issue-104/os/syscall/process/fn.sys_kill.html
+++ b/issue-104/os/syscall/process/fn.sys_kill.html
@@ -1 +1 @@
-sys_kill in os::syscall::process - Rust
\ No newline at end of file
diff --git a/issue-104/os/syscall/process/fn.sys_waitpid.html b/issue-104/os/syscall/process/fn.sys_waitpid.html
index fa2f4357..b2ab3802 100644
--- a/issue-104/os/syscall/process/fn.sys_waitpid.html
+++ b/issue-104/os/syscall/process/fn.sys_waitpid.html
@@ -1,3 +1,3 @@
-sys_waitpid in os::syscall::process - Rust
If there is not a child process whose pid is same as given, return -1.
Else if there is a child process but it is still running, return -2.
\ No newline at end of file
diff --git a/issue-104/os/syscall/process/index.html b/issue-104/os/syscall/process/index.html
index 1595a357..db4b63da 100644
--- a/issue-104/os/syscall/process/index.html
+++ b/issue-104/os/syscall/process/index.html
@@ -1,3 +1,3 @@
-os::syscall::process - Rust