From c864b83e307e66fe0b04bc59eb5ce36976f84a02 Mon Sep 17 00:00:00 2001 From: chyyuu Date: Sat, 14 May 2022 14:58:04 +0000 Subject: [PATCH] deploy: 8e73480c991e4f7424046642954c729427863717 --- main/os/all.html | 2 +- .../block/sdcard/struct.PERIPHERALS.html | 4 +- .../block/virtio_blk/fn.virtio_dma_alloc.html | 2 +- .../virtio_blk/fn.virtio_dma_dealloc.html | 2 +- .../virtio_blk/fn.virtio_phys_to_virt.html | 2 +- .../virtio_blk/fn.virtio_virt_to_phys.html | 2 +- main/os/drivers/block/virtio_blk/index.html | 2 +- .../block/virtio_blk/struct.QUEUE_FRAMES.html | 10 +-- .../block/virtio_blk/struct.VirtIOBlock.html | 2 +- main/os/drivers/chardev/ns16550a/index.html | 2 +- .../drivers/chardev/ns16550a/struct.IER.html | 86 +++++++++---------- .../drivers/chardev/ns16550a/struct.LSR.html | 86 +++++++++---------- .../drivers/chardev/ns16550a/struct.MCR.html | 86 +++++++++---------- .../chardev/ns16550a/struct.NS16550a.html | 4 +- .../ns16550a/struct.NS16550aInner.html | 2 +- .../chardev/ns16550a/struct.NS16550aRaw.html | 4 +- .../ns16550a/struct.ReadWithoutDLAB.html | 2 +- .../ns16550a/struct.WriteWithoutDLAB.html | 2 +- main/os/drivers/chardev/trait.CharDevice.html | 2 +- main/os/fn.rust_main.html | 2 +- main/os/index.html | 2 +- .../struct.FRAME_ALLOCATOR.html | 4 +- main/os/struct.DEV_NON_BLOCKING_ACCESS.html | 10 +-- main/os/sync/condvar/index.html | 2 +- main/os/sync/condvar/struct.Condvar.html | 4 +- main/os/sync/condvar/struct.CondvarInner.html | 2 +- main/os/sync/up/index.html | 2 +- main/os/sync/up/struct.INTR_MASKING_INFO.html | 8 +- main/os/sync/up/struct.IntrMaskingInfo.html | 2 +- main/os/sync/up/struct.UPIntrFreeCell.html | 6 +- main/os/sync/up/struct.UPIntrRefMut.html | 8 +- main/os/task/fn.add_initproc.html | 2 +- main/os/task/fn.check_signals_of_current.html | 2 +- main/os/task/fn.current_add_signal.html | 2 +- .../os/task/fn.exit_current_and_run_next.html | 2 +- main/os/task/id/constant.IDLE_PID.html | 8 ++ main/os/task/id/fn.kernel_stack_position.html | 2 +- main/os/task/id/fn.kstack_alloc.html | 2 +- main/os/task/id/fn.pid_alloc.html | 2 +- .../task/id/fn.trap_cx_bottom_from_tid.html | 2 +- .../os/task/id/fn.ustack_bottom_from_tid.html | 2 +- main/os/task/id/index.html | 7 +- main/os/task/id/sidebar-items.js | 2 +- main/os/task/id/struct.KSTACK_ALLOCATOR.html | 4 +- main/os/task/id/struct.KernelStack.html | 2 +- main/os/task/id/struct.PID_ALLOCATOR.html | 4 +- main/os/task/id/struct.PidHandle.html | 2 +- main/os/task/id/struct.TaskUserRes.html | 4 +- main/os/task/index.html | 4 +- main/os/task/manager/struct.PID2PCB.html | 4 +- main/os/task/manager/struct.TASK_MANAGER.html | 4 +- .../task/processor/fn.current_kstack_top.html | 2 +- .../os/task/processor/fn.current_process.html | 2 +- main/os/task/processor/fn.current_task.html | 2 +- .../os/task/processor/fn.current_trap_cx.html | 2 +- .../processor/fn.current_trap_cx_user_va.html | 2 +- .../task/processor/fn.current_user_token.html | 2 +- main/os/task/processor/fn.run_tasks.html | 2 +- main/os/task/processor/fn.schedule.html | 2 +- .../task/processor/fn.take_current_task.html | 2 +- main/os/task/processor/struct.PROCESSOR.html | 10 +-- main/os/task/struct.INITPROC.html | 8 +- main/os/task/task/enum.TaskStatus.html | 8 +- main/os/task/task/index.html | 2 +- .../os/task/task/struct.TaskControlBlock.html | 4 +- .../task/struct.TaskControlBlockInner.html | 4 +- main/os/timer/struct.TIMERS.html | 4 +- main/search-index.js | 2 +- main/src/os/drivers/block/virtio_blk.rs.html | 4 +- main/src/os/drivers/chardev/ns16550a.rs.html | 2 - main/src/os/main.rs.html | 4 +- main/src/os/sync/condvar.rs.html | 8 +- main/src/os/sync/up.rs.html | 28 ++++-- main/src/os/task/id.rs.html | 4 + main/src/os/task/mod.rs.html | 16 +++- main/src/os/task/processor.rs.html | 8 +- main/src/os/task/task.rs.html | 8 +- main/src/os/trap/mod.rs.html | 14 +-- 78 files changed, 312 insertions(+), 263 deletions(-) create mode 100644 main/os/task/id/constant.IDLE_PID.html diff --git a/main/os/all.html b/main/os/all.html index 0888f550..bc8d494c 100644 --- a/main/os/all.html +++ b/main/os/all.html @@ -3,5 +3,5 @@

List of all items

Structs

Enums

Traits

Macros

Functions

Typedefs

Statics

Constants

+

Crate os

List of all items

Structs

Enums

Traits

Macros

Functions

Typedefs

Statics

Constants

\ No newline at end of file diff --git a/main/os/drivers/block/sdcard/struct.PERIPHERALS.html b/main/os/drivers/block/sdcard/struct.PERIPHERALS.html index 15d13479..4974adc1 100644 --- a/main/os/drivers/block/sdcard/struct.PERIPHERALS.html +++ b/main/os/drivers/block/sdcard/struct.PERIPHERALS.html @@ -6,8 +6,8 @@

PERIPHERALS

struct PERIPHERALS {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Peripherals>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Peripherals>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/main/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html b/main/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html index 80cc83e1..785a6e27 100644 --- a/main/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html +++ b/main/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html @@ -4,6 +4,6 @@
#[no_mangle]
+    

Function os::drivers::block::virtio_blk::virtio_dma_alloc

source · []
#[no_mangle]
 pub extern "C" fn virtio_dma_alloc(pages: usize) -> PhysAddr
\ No newline at end of file diff --git a/main/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html b/main/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html index 2db5445b..7f979ce2 100644 --- a/main/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html +++ b/main/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html @@ -4,6 +4,6 @@
#[no_mangle]
+    

Function os::drivers::block::virtio_blk::virtio_dma_dealloc

source · []
#[no_mangle]
 pub extern "C" fn virtio_dma_dealloc(
    pa: PhysAddr,
    pages: usize
) -> i32
\ No newline at end of file diff --git a/main/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html b/main/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html index fad49dd9..69f65364 100644 --- a/main/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html +++ b/main/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html @@ -4,6 +4,6 @@
#[no_mangle]
+    

Function os::drivers::block::virtio_blk::virtio_phys_to_virt

source · []
#[no_mangle]
 pub extern "C" fn virtio_phys_to_virt(paddr: PhysAddr) -> VirtAddr
\ No newline at end of file diff --git a/main/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html b/main/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html index ac9484ed..19bb894c 100644 --- a/main/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html +++ b/main/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html @@ -4,6 +4,6 @@
#[no_mangle]
+    

Function os::drivers::block::virtio_blk::virtio_virt_to_phys

source · []
#[no_mangle]
 pub extern "C" fn virtio_virt_to_phys(vaddr: VirtAddr) -> PhysAddr
\ No newline at end of file diff --git a/main/os/drivers/block/virtio_blk/index.html b/main/os/drivers/block/virtio_blk/index.html index d1521808..3c65e571 100644 --- a/main/os/drivers/block/virtio_blk/index.html +++ b/main/os/drivers/block/virtio_blk/index.html @@ -4,7 +4,7 @@

Structs

Constants

VIRTIO0 🔒

Functions

diff --git a/main/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html b/main/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html index a9a4dcaa..b5643800 100644 --- a/main/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html +++ b/main/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html @@ -4,12 +4,12 @@
struct QUEUE_FRAMES {
+    

Struct os::drivers::block::virtio_blk::QUEUE_FRAMES

source · []
struct QUEUE_FRAMES {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Vec<FrameTracker>>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Vec<FrameTracker>>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/drivers/block/virtio_blk/struct.VirtIOBlock.html b/main/os/drivers/block/virtio_blk/struct.VirtIOBlock.html index e0987bed..9aa14d48 100644 --- a/main/os/drivers/block/virtio_blk/struct.VirtIOBlock.html +++ b/main/os/drivers/block/virtio_blk/struct.VirtIOBlock.html @@ -7,7 +7,7 @@

Struct os::drivers::block::virtio_blk::VirtIOBlock

source · []
pub struct VirtIOBlock {
     virtio_blk: UPIntrFreeCell<VirtIOBlk<'static>>,
     condvars: BTreeMap<u16, Condvar>,
-}

Fields

virtio_blk: UPIntrFreeCell<VirtIOBlk<'static>>condvars: BTreeMap<u16, Condvar>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

virtio_blk: UPIntrFreeCell<VirtIOBlk<'static>>condvars: BTreeMap<u16, Condvar>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/drivers/chardev/ns16550a/index.html b/main/os/drivers/chardev/ns16550a/index.html index 16ea4fb7..a85427b7 100644 --- a/main/os/drivers/chardev/ns16550a/index.html +++ b/main/os/drivers/chardev/ns16550a/index.html @@ -4,7 +4,7 @@

Structs

InterruptEnableRegister

LineStatusRegister

Model Control Register

diff --git a/main/os/drivers/chardev/ns16550a/struct.IER.html b/main/os/drivers/chardev/ns16550a/struct.IER.html index c338774d..2c711499 100644 --- a/main/os/drivers/chardev/ns16550a/struct.IER.html +++ b/main/os/drivers/chardev/ns16550a/struct.IER.html @@ -4,17 +4,17 @@
pub struct IER {
+    

Struct os::drivers::chardev::ns16550a::IER

source · []
pub struct IER {
     bits: u8,
 }
Expand description

InterruptEnableRegister

-

Fields

bits: u8

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +

Fields

bits: u8

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -22,35 +22,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -58,55 +58,55 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

+

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

This method tests for self and other values to be equal, and is used by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

+

This method tests for !=.

+

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

+

Returns the set difference of the two sets of flags.

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/drivers/chardev/ns16550a/struct.LSR.html b/main/os/drivers/chardev/ns16550a/struct.LSR.html index c1e04892..2b9d5de0 100644 --- a/main/os/drivers/chardev/ns16550a/struct.LSR.html +++ b/main/os/drivers/chardev/ns16550a/struct.LSR.html @@ -4,17 +4,17 @@
pub struct LSR {
+    

Struct os::drivers::chardev::ns16550a::LSR

source · []
pub struct LSR {
     bits: u8,
 }
Expand description

LineStatusRegister

-

Fields

bits: u8

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +

Fields

bits: u8

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -22,35 +22,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -58,55 +58,55 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

+

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

This method tests for self and other values to be equal, and is used by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

+

This method tests for !=.

+

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

+

Returns the set difference of the two sets of flags.

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/drivers/chardev/ns16550a/struct.MCR.html b/main/os/drivers/chardev/ns16550a/struct.MCR.html index b581c5d8..d3ec7f5a 100644 --- a/main/os/drivers/chardev/ns16550a/struct.MCR.html +++ b/main/os/drivers/chardev/ns16550a/struct.MCR.html @@ -4,17 +4,17 @@
pub struct MCR {
+    

Struct os::drivers::chardev::ns16550a::MCR

source · []
pub struct MCR {
     bits: u8,
 }
Expand description

Model Control Register

-

Fields

bits: u8

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +

Fields

bits: u8

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -22,35 +22,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -58,55 +58,55 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

+

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

This method tests for self and other values to be equal, and is used by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

+

This method tests for !=.

+

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

+

Returns the set difference of the two sets of flags.

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/drivers/chardev/ns16550a/struct.NS16550a.html b/main/os/drivers/chardev/ns16550a/struct.NS16550a.html index 63042978..3a8b9285 100644 --- a/main/os/drivers/chardev/ns16550a/struct.NS16550a.html +++ b/main/os/drivers/chardev/ns16550a/struct.NS16550a.html @@ -4,10 +4,10 @@
pub struct NS16550a<const BASE_ADDR: usize> {
+    

Struct os::drivers::chardev::ns16550a::NS16550a

source · []
pub struct NS16550a<const BASE_ADDR: usize> {
     inner: UPIntrFreeCell<NS16550aInner>,
     condvar: Condvar,
-}

Fields

inner: UPIntrFreeCell<NS16550aInner>condvar: Condvar

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

inner: UPIntrFreeCell<NS16550aInner>condvar: Condvar

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/drivers/chardev/ns16550a/struct.NS16550aInner.html b/main/os/drivers/chardev/ns16550a/struct.NS16550aInner.html index 97e96b7d..9180237b 100644 --- a/main/os/drivers/chardev/ns16550a/struct.NS16550aInner.html +++ b/main/os/drivers/chardev/ns16550a/struct.NS16550aInner.html @@ -4,7 +4,7 @@
struct NS16550aInner {
+    

Struct os::drivers::chardev::ns16550a::NS16550aInner

source · []
struct NS16550aInner {
     ns16550a: NS16550aRaw,
     read_buffer: VecDeque<u8>,
 }

Fields

ns16550a: NS16550aRawread_buffer: VecDeque<u8>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

diff --git a/main/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html b/main/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html index 9bde42be..6edd6e3d 100644 --- a/main/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html +++ b/main/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html @@ -4,9 +4,9 @@
pub struct NS16550aRaw {
+    

Struct os::drivers::chardev::ns16550a::NS16550aRaw

source · []
pub struct NS16550aRaw {
     base_addr: usize,
-}

Fields

base_addr: usize

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

base_addr: usize

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html b/main/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html index 84d27912..3d9a3d79 100644 --- a/main/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html +++ b/main/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html @@ -4,7 +4,7 @@
#[repr(C)]
struct ReadWithoutDLAB { +

Struct os::drivers::chardev::ns16550a::ReadWithoutDLAB

source · []
#[repr(C)]
struct ReadWithoutDLAB { pub rbr: ReadOnly<u8>, pub ier: Volatile<IER>, pub iir: ReadOnly<u8>, diff --git a/main/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html b/main/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html index b98deab7..ef771402 100644 --- a/main/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html +++ b/main/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html @@ -4,7 +4,7 @@
#[repr(C)]
struct WriteWithoutDLAB { +

Struct os::drivers::chardev::ns16550a::WriteWithoutDLAB

source · []
#[repr(C)]
struct WriteWithoutDLAB { pub thr: WriteOnly<u8>, pub ier: Volatile<IER>, _padding0: ReadOnly<u8>, diff --git a/main/os/drivers/chardev/trait.CharDevice.html b/main/os/drivers/chardev/trait.CharDevice.html index 7be7388e..b7872958 100644 --- a/main/os/drivers/chardev/trait.CharDevice.html +++ b/main/os/drivers/chardev/trait.CharDevice.html @@ -8,5 +8,5 @@ fn read(&self) -> u8; fn write(&self, ch: u8); fn handle_irq(&self); -}

Required methods

Implementors

+}

Required methods

Implementors

\ No newline at end of file diff --git a/main/os/fn.rust_main.html b/main/os/fn.rust_main.html index 294d8d61..77129182 100644 --- a/main/os/fn.rust_main.html +++ b/main/os/fn.rust_main.html @@ -4,6 +4,6 @@
-

Function os::rust_main

source · []
#[no_mangle]
+    

Function os::rust_main

source · []
#[no_mangle]
 pub fn rust_main() -> !
\ No newline at end of file diff --git a/main/os/index.html b/main/os/index.html index 7dc1594a..7c64f878 100644 --- a/main/os/index.html +++ b/main/os/index.html @@ -4,7 +4,7 @@
-

Crate os

source · []

Modules

+

Crate os

source · []

Modules

board 🔒
config 🔒
console 🔒
drivers 🔒
fs 🔒
lang_items 🔒
mm 🔒
sbi 🔒
sync 🔒
syscall 🔒
task 🔒
timer 🔒
trap 🔒

Macros

Structs

Functions

diff --git a/main/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html b/main/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html index 220549ff..4611a9dc 100644 --- a/main/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html +++ b/main/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html @@ -6,8 +6,8 @@

FRAME_ALLOCATOR

pub struct FRAME_ALLOCATOR {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<StackFrameAllocator>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<StackFrameAllocator>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/main/os/struct.DEV_NON_BLOCKING_ACCESS.html b/main/os/struct.DEV_NON_BLOCKING_ACCESS.html index d4a44d05..6957969a 100644 --- a/main/os/struct.DEV_NON_BLOCKING_ACCESS.html +++ b/main/os/struct.DEV_NON_BLOCKING_ACCESS.html @@ -4,12 +4,12 @@
pub struct DEV_NON_BLOCKING_ACCESS {
+    

Struct os::DEV_NON_BLOCKING_ACCESS

source · []
pub struct DEV_NON_BLOCKING_ACCESS {
     pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<bool>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<bool>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/sync/condvar/index.html b/main/os/sync/condvar/index.html index 6e659d7f..97a47761 100644 --- a/main/os/sync/condvar/index.html +++ b/main/os/sync/condvar/index.html @@ -4,6 +4,6 @@
-

Module os::sync::condvar

source · []

Structs

+

Module os::sync::condvar

source · []

Structs

\ No newline at end of file diff --git a/main/os/sync/condvar/struct.Condvar.html b/main/os/sync/condvar/struct.Condvar.html index 46abc535..c576eabd 100644 --- a/main/os/sync/condvar/struct.Condvar.html +++ b/main/os/sync/condvar/struct.Condvar.html @@ -4,9 +4,9 @@
pub struct Condvar {
+    

Struct os::sync::condvar::Condvar

source · []
pub struct Condvar {
     pub inner: UPIntrFreeCell<CondvarInner>,
-}

Fields

inner: UPIntrFreeCell<CondvarInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

inner: UPIntrFreeCell<CondvarInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/sync/condvar/struct.CondvarInner.html b/main/os/sync/condvar/struct.CondvarInner.html index d9f44671..e2766b9c 100644 --- a/main/os/sync/condvar/struct.CondvarInner.html +++ b/main/os/sync/condvar/struct.CondvarInner.html @@ -4,7 +4,7 @@
pub struct CondvarInner {
+    

Struct os::sync::condvar::CondvarInner

source · []
pub struct CondvarInner {
     pub wait_queue: VecDeque<Arc<TaskControlBlock>>,
 }

Fields

wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/main/os/sync/up/index.html b/main/os/sync/up/index.html index f44396d7..c834f927 100644 --- a/main/os/sync/up/index.html +++ b/main/os/sync/up/index.html @@ -4,6 +4,6 @@
-

Module os::sync::up

source · []

Structs

+

Module os::sync::up

source · []

Structs

\ No newline at end of file diff --git a/main/os/sync/up/struct.INTR_MASKING_INFO.html b/main/os/sync/up/struct.INTR_MASKING_INFO.html index ffa9847c..27ce0064 100644 --- a/main/os/sync/up/struct.INTR_MASKING_INFO.html +++ b/main/os/sync/up/struct.INTR_MASKING_INFO.html @@ -4,11 +4,11 @@
struct INTR_MASKING_INFO {
+    

Struct os::sync::up::INTR_MASKING_INFO

source · []
struct INTR_MASKING_INFO {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPSafeCellRaw<IntrMaskingInfo>>

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

__private_field: ()

Methods from Deref<Target = UPSafeCellRaw<IntrMaskingInfo>>

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/sync/up/struct.IntrMaskingInfo.html b/main/os/sync/up/struct.IntrMaskingInfo.html index 393609ae..476c8ffd 100644 --- a/main/os/sync/up/struct.IntrMaskingInfo.html +++ b/main/os/sync/up/struct.IntrMaskingInfo.html @@ -7,7 +7,7 @@

Struct os::sync::up::IntrMaskingInfo

source · []
pub struct IntrMaskingInfo {
     nested_level: usize,
     sie_before_masking: bool,
-}

Fields

nested_level: usizesie_before_masking: bool

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

nested_level: usizesie_before_masking: bool

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/sync/up/struct.UPIntrFreeCell.html b/main/os/sync/up/struct.UPIntrFreeCell.html index bcc9a3d7..8f1e6d4b 100644 --- a/main/os/sync/up/struct.UPIntrFreeCell.html +++ b/main/os/sync/up/struct.UPIntrFreeCell.html @@ -4,11 +4,11 @@
pub struct UPIntrFreeCell<T> {
+    

Struct os::sync::up::UPIntrFreeCell

source · []
pub struct UPIntrFreeCell<T> {
     inner: RefCell<T>,
 }

Fields

inner: RefCell<T>

inner data

-

Implementations

Panic if the data has been borrowed.

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Implementations

Panic if the data has been borrowed.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/sync/up/struct.UPIntrRefMut.html b/main/os/sync/up/struct.UPIntrRefMut.html index 7bf33140..3ffeb865 100644 --- a/main/os/sync/up/struct.UPIntrRefMut.html +++ b/main/os/sync/up/struct.UPIntrRefMut.html @@ -4,10 +4,10 @@
pub struct UPIntrRefMut<'a, T>(Option<RefMut<'a, T>>);

Tuple Fields

0: Option<RefMut<'a, T>>

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Mutably dereferences the value.

-

Executes the destructor for this type. Read more

+

Struct os::sync::up::UPIntrRefMut

source · []
pub struct UPIntrRefMut<'a, T>(Option<RefMut<'a, T>>);

Tuple Fields

0: Option<RefMut<'a, T>>

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Mutably dereferences the value.

+

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/main/os/task/fn.add_initproc.html b/main/os/task/fn.add_initproc.html index 6f1623e4..872ab742 100644 --- a/main/os/task/fn.add_initproc.html +++ b/main/os/task/fn.add_initproc.html @@ -4,5 +4,5 @@
-

Function os::task::add_initproc

source · []
pub fn add_initproc()
+

Function os::task::add_initproc

source · []
pub fn add_initproc()
\ No newline at end of file diff --git a/main/os/task/fn.check_signals_of_current.html b/main/os/task/fn.check_signals_of_current.html index fd45fe2f..cd6ea4c3 100644 --- a/main/os/task/fn.check_signals_of_current.html +++ b/main/os/task/fn.check_signals_of_current.html @@ -4,5 +4,5 @@
pub fn check_signals_of_current() -> Option<(i32, &'static str)>
+

Function os::task::check_signals_of_current

source · []
pub fn check_signals_of_current() -> Option<(i32, &'static str)>
\ No newline at end of file diff --git a/main/os/task/fn.current_add_signal.html b/main/os/task/fn.current_add_signal.html index 9b9d856e..f969ccc0 100644 --- a/main/os/task/fn.current_add_signal.html +++ b/main/os/task/fn.current_add_signal.html @@ -4,5 +4,5 @@
pub fn current_add_signal(signal: SignalFlags)
+

Function os::task::current_add_signal

source · []
pub fn current_add_signal(signal: SignalFlags)
\ No newline at end of file diff --git a/main/os/task/fn.exit_current_and_run_next.html b/main/os/task/fn.exit_current_and_run_next.html index b6a60e59..c141348a 100644 --- a/main/os/task/fn.exit_current_and_run_next.html +++ b/main/os/task/fn.exit_current_and_run_next.html @@ -4,5 +4,5 @@
pub fn exit_current_and_run_next(exit_code: i32)
+

Function os::task::exit_current_and_run_next

source · []
pub fn exit_current_and_run_next(exit_code: i32)
\ No newline at end of file diff --git a/main/os/task/id/constant.IDLE_PID.html b/main/os/task/id/constant.IDLE_PID.html new file mode 100644 index 00000000..996482b5 --- /dev/null +++ b/main/os/task/id/constant.IDLE_PID.html @@ -0,0 +1,8 @@ +IDLE_PID in os::task::id - Rust + +
+

Constant os::task::id::IDLE_PID

source · []
pub const IDLE_PID: usize = 0;
+ \ No newline at end of file diff --git a/main/os/task/id/fn.kernel_stack_position.html b/main/os/task/id/fn.kernel_stack_position.html index d5f5895f..8281e565 100644 --- a/main/os/task/id/fn.kernel_stack_position.html +++ b/main/os/task/id/fn.kernel_stack_position.html @@ -4,6 +4,6 @@
pub fn kernel_stack_position(kstack_id: usize) -> (usize, usize)
Expand description

Return (bottom, top) of a kernel stack in kernel space.

+

Function os::task::id::kernel_stack_position

source · []
pub fn kernel_stack_position(kstack_id: usize) -> (usize, usize)
Expand description

Return (bottom, top) of a kernel stack in kernel space.

\ No newline at end of file diff --git a/main/os/task/id/fn.kstack_alloc.html b/main/os/task/id/fn.kstack_alloc.html index 6358f391..db3e7490 100644 --- a/main/os/task/id/fn.kstack_alloc.html +++ b/main/os/task/id/fn.kstack_alloc.html @@ -4,5 +4,5 @@
-

Function os::task::id::kstack_alloc

source · []
pub fn kstack_alloc() -> KernelStack
+

Function os::task::id::kstack_alloc

source · []
pub fn kstack_alloc() -> KernelStack
\ No newline at end of file diff --git a/main/os/task/id/fn.pid_alloc.html b/main/os/task/id/fn.pid_alloc.html index 3e975810..6a8d8f2b 100644 --- a/main/os/task/id/fn.pid_alloc.html +++ b/main/os/task/id/fn.pid_alloc.html @@ -4,5 +4,5 @@
-

Function os::task::id::pid_alloc

source · []
pub fn pid_alloc() -> PidHandle
+

Function os::task::id::pid_alloc

source · []
pub fn pid_alloc() -> PidHandle
\ No newline at end of file diff --git a/main/os/task/id/fn.trap_cx_bottom_from_tid.html b/main/os/task/id/fn.trap_cx_bottom_from_tid.html index cf4bbce1..f3af5048 100644 --- a/main/os/task/id/fn.trap_cx_bottom_from_tid.html +++ b/main/os/task/id/fn.trap_cx_bottom_from_tid.html @@ -4,5 +4,5 @@
fn trap_cx_bottom_from_tid(tid: usize) -> usize
+

Function os::task::id::trap_cx_bottom_from_tid

source · []
fn trap_cx_bottom_from_tid(tid: usize) -> usize
\ No newline at end of file diff --git a/main/os/task/id/fn.ustack_bottom_from_tid.html b/main/os/task/id/fn.ustack_bottom_from_tid.html index 5a8977b7..f8ced263 100644 --- a/main/os/task/id/fn.ustack_bottom_from_tid.html +++ b/main/os/task/id/fn.ustack_bottom_from_tid.html @@ -4,5 +4,5 @@
fn ustack_bottom_from_tid(ustack_base: usize, tid: usize) -> usize
+

Function os::task::id::ustack_bottom_from_tid

source · []
fn ustack_bottom_from_tid(ustack_base: usize, tid: usize) -> usize
\ No newline at end of file diff --git a/main/os/task/id/index.html b/main/os/task/id/index.html index 2b27e6cb..1ebc8120 100644 --- a/main/os/task/id/index.html +++ b/main/os/task/id/index.html @@ -3,9 +3,10 @@

-

Module os::task::id

source · []

Structs

-

Functions

+

Module id

\ No newline at end of file diff --git a/main/os/task/id/sidebar-items.js b/main/os/task/id/sidebar-items.js index 693c0c6e..87951670 100644 --- a/main/os/task/id/sidebar-items.js +++ b/main/os/task/id/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["kernel_stack_position","Return (bottom, top) of a kernel stack in kernel space."],["kstack_alloc",""],["pid_alloc",""],["trap_cx_bottom_from_tid",""],["ustack_bottom_from_tid",""]],"struct":[["KSTACK_ALLOCATOR",""],["KernelStack",""],["PID_ALLOCATOR",""],["PidHandle",""],["RecycleAllocator",""],["TaskUserRes",""]]}); \ No newline at end of file +initSidebarItems({"constant":[["IDLE_PID",""]],"fn":[["kernel_stack_position","Return (bottom, top) of a kernel stack in kernel space."],["kstack_alloc",""],["pid_alloc",""],["trap_cx_bottom_from_tid",""],["ustack_bottom_from_tid",""]],"struct":[["KSTACK_ALLOCATOR",""],["KernelStack",""],["PID_ALLOCATOR",""],["PidHandle",""],["RecycleAllocator",""],["TaskUserRes",""]]}); \ No newline at end of file diff --git a/main/os/task/id/struct.KSTACK_ALLOCATOR.html b/main/os/task/id/struct.KSTACK_ALLOCATOR.html index 664a0598..15c28b78 100644 --- a/main/os/task/id/struct.KSTACK_ALLOCATOR.html +++ b/main/os/task/id/struct.KSTACK_ALLOCATOR.html @@ -6,8 +6,8 @@

KSTACK_ALLOCATOR

struct KSTACK_ALLOCATOR {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<RecycleAllocator>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<RecycleAllocator>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/main/os/task/id/struct.KernelStack.html b/main/os/task/id/struct.KernelStack.html index 730c4e8f..422fd0d2 100644 --- a/main/os/task/id/struct.KernelStack.html +++ b/main/os/task/id/struct.KernelStack.html @@ -4,7 +4,7 @@
-

Struct os::task::id::KernelStack

source · []
pub struct KernelStack(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Executes the destructor for this type. Read more

+

Struct os::task::id::KernelStack

source · []
pub struct KernelStack(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/main/os/task/id/struct.PID_ALLOCATOR.html b/main/os/task/id/struct.PID_ALLOCATOR.html index fa33b77e..3cae143f 100644 --- a/main/os/task/id/struct.PID_ALLOCATOR.html +++ b/main/os/task/id/struct.PID_ALLOCATOR.html @@ -6,8 +6,8 @@

PID_ALLOCATOR

struct PID_ALLOCATOR {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<RecycleAllocator>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<RecycleAllocator>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/main/os/task/id/struct.PidHandle.html b/main/os/task/id/struct.PidHandle.html index a4431f41..3e6b2c26 100644 --- a/main/os/task/id/struct.PidHandle.html +++ b/main/os/task/id/struct.PidHandle.html @@ -4,7 +4,7 @@
-

Struct os::task::id::PidHandle

source · []
pub struct PidHandle(pub usize);

Tuple Fields

0: usize

Trait Implementations

Executes the destructor for this type. Read more

+

Struct os::task::id::PidHandle

source · []
pub struct PidHandle(pub usize);

Tuple Fields

0: usize

Trait Implementations

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/main/os/task/id/struct.TaskUserRes.html b/main/os/task/id/struct.TaskUserRes.html index 28430208..db120cf6 100644 --- a/main/os/task/id/struct.TaskUserRes.html +++ b/main/os/task/id/struct.TaskUserRes.html @@ -4,11 +4,11 @@
-

Struct os::task::id::TaskUserRes

source · []
pub struct TaskUserRes {
+    

Struct os::task::id::TaskUserRes

source · []
pub struct TaskUserRes {
     pub tid: usize,
     pub ustack_base: usize,
     pub process: Weak<ProcessControlBlock>,
-}

Fields

tid: usizeustack_base: usizeprocess: Weak<ProcessControlBlock>

Implementations

Trait Implementations

Executes the destructor for this type. Read more

+}

Fields

tid: usizeustack_base: usizeprocess: Weak<ProcessControlBlock>

Implementations

Trait Implementations

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/main/os/task/index.html b/main/os/task/index.html index 5a6126ed..fa5ecf38 100644 --- a/main/os/task/index.html +++ b/main/os/task/index.html @@ -4,8 +4,8 @@
-

Module os::task

source · []

Re-exports

-
pub use context::TaskContext;
pub use id::kstack_alloc;
pub use id::pid_alloc;
pub use id::KernelStack;
pub use id::PidHandle;
pub use manager::add_task;
pub use manager::pid2process;
pub use manager::remove_from_pid2process;
pub use processor::current_kstack_top;
pub use processor::current_process;
pub use processor::current_task;
pub use processor::current_trap_cx;
pub use processor::current_trap_cx_user_va;
pub use processor::current_user_token;
pub use processor::run_tasks;
pub use processor::schedule;
pub use processor::take_current_task;
pub use signal::SignalFlags;
pub use task::TaskControlBlock;
pub use task::TaskStatus;

Modules

+

Module os::task

source · []

Re-exports

+
pub use context::TaskContext;
pub use id::kstack_alloc;
pub use id::pid_alloc;
pub use id::KernelStack;
pub use id::PidHandle;
pub use id::IDLE_PID;
pub use manager::add_task;
pub use manager::pid2process;
pub use manager::remove_from_pid2process;
pub use processor::current_kstack_top;
pub use processor::current_process;
pub use processor::current_task;
pub use processor::current_trap_cx;
pub use processor::current_trap_cx_user_va;
pub use processor::current_user_token;
pub use processor::run_tasks;
pub use processor::schedule;
pub use processor::take_current_task;
pub use signal::SignalFlags;
pub use task::TaskControlBlock;
pub use task::TaskStatus;

Modules

context 🔒
id 🔒
manager 🔒
process 🔒
processor 🔒
signal 🔒
switch 🔒
task 🔒

Structs

Functions

This function must be followed by a schedule

diff --git a/main/os/task/manager/struct.PID2PCB.html b/main/os/task/manager/struct.PID2PCB.html index ddc1768e..5ea4b7cd 100644 --- a/main/os/task/manager/struct.PID2PCB.html +++ b/main/os/task/manager/struct.PID2PCB.html @@ -6,8 +6,8 @@

PID2PCB

pub struct PID2PCB {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/main/os/task/manager/struct.TASK_MANAGER.html b/main/os/task/manager/struct.TASK_MANAGER.html index d79d6bb7..51e5e3a4 100644 --- a/main/os/task/manager/struct.TASK_MANAGER.html +++ b/main/os/task/manager/struct.TASK_MANAGER.html @@ -6,8 +6,8 @@

TASK_MANAGER

pub struct TASK_MANAGER {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<TaskManager>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<TaskManager>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/main/os/task/processor/fn.current_kstack_top.html b/main/os/task/processor/fn.current_kstack_top.html index a8311038..64b5b3d0 100644 --- a/main/os/task/processor/fn.current_kstack_top.html +++ b/main/os/task/processor/fn.current_kstack_top.html @@ -4,5 +4,5 @@
pub fn current_kstack_top() -> usize
+

Function os::task::processor::current_kstack_top

source · []
pub fn current_kstack_top() -> usize
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_process.html b/main/os/task/processor/fn.current_process.html index 8a611bbf..bc4fd217 100644 --- a/main/os/task/processor/fn.current_process.html +++ b/main/os/task/processor/fn.current_process.html @@ -4,5 +4,5 @@
pub fn current_process() -> Arc<ProcessControlBlock>
+

Function os::task::processor::current_process

source · []
pub fn current_process() -> Arc<ProcessControlBlock>
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_task.html b/main/os/task/processor/fn.current_task.html index 77698381..ab638a6e 100644 --- a/main/os/task/processor/fn.current_task.html +++ b/main/os/task/processor/fn.current_task.html @@ -4,5 +4,5 @@
pub fn current_task() -> Option<Arc<TaskControlBlock>>
+

Function os::task::processor::current_task

source · []
pub fn current_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_trap_cx.html b/main/os/task/processor/fn.current_trap_cx.html index 4d225fb2..1a718a17 100644 --- a/main/os/task/processor/fn.current_trap_cx.html +++ b/main/os/task/processor/fn.current_trap_cx.html @@ -4,5 +4,5 @@
pub fn current_trap_cx() -> &'static mut TrapContext
+

Function os::task::processor::current_trap_cx

source · []
pub fn current_trap_cx() -> &'static mut TrapContext
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_trap_cx_user_va.html b/main/os/task/processor/fn.current_trap_cx_user_va.html index 66c0e49b..27324e8e 100644 --- a/main/os/task/processor/fn.current_trap_cx_user_va.html +++ b/main/os/task/processor/fn.current_trap_cx_user_va.html @@ -4,5 +4,5 @@
pub fn current_trap_cx_user_va() -> usize
+

Function os::task::processor::current_trap_cx_user_va

source · []
pub fn current_trap_cx_user_va() -> usize
\ No newline at end of file diff --git a/main/os/task/processor/fn.current_user_token.html b/main/os/task/processor/fn.current_user_token.html index 2bd10fc4..1b0a3b9b 100644 --- a/main/os/task/processor/fn.current_user_token.html +++ b/main/os/task/processor/fn.current_user_token.html @@ -4,5 +4,5 @@
pub fn current_user_token() -> usize
+

Function os::task::processor::current_user_token

source · []
pub fn current_user_token() -> usize
\ No newline at end of file diff --git a/main/os/task/processor/fn.run_tasks.html b/main/os/task/processor/fn.run_tasks.html index 66fae337..8c8212d5 100644 --- a/main/os/task/processor/fn.run_tasks.html +++ b/main/os/task/processor/fn.run_tasks.html @@ -4,5 +4,5 @@
pub fn run_tasks()
+

Function os::task::processor::run_tasks

source · []
pub fn run_tasks()
\ No newline at end of file diff --git a/main/os/task/processor/fn.schedule.html b/main/os/task/processor/fn.schedule.html index 757ba6d9..6a06be98 100644 --- a/main/os/task/processor/fn.schedule.html +++ b/main/os/task/processor/fn.schedule.html @@ -4,5 +4,5 @@
pub fn schedule(switched_task_cx_ptr: *mut TaskContext)
+

Function os::task::processor::schedule

source · []
pub fn schedule(switched_task_cx_ptr: *mut TaskContext)
\ No newline at end of file diff --git a/main/os/task/processor/fn.take_current_task.html b/main/os/task/processor/fn.take_current_task.html index 4bd10924..5393a0d8 100644 --- a/main/os/task/processor/fn.take_current_task.html +++ b/main/os/task/processor/fn.take_current_task.html @@ -4,5 +4,5 @@
pub fn take_current_task() -> Option<Arc<TaskControlBlock>>
+

Function os::task::processor::take_current_task

source · []
pub fn take_current_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file diff --git a/main/os/task/processor/struct.PROCESSOR.html b/main/os/task/processor/struct.PROCESSOR.html index 9f641f4b..444b295d 100644 --- a/main/os/task/processor/struct.PROCESSOR.html +++ b/main/os/task/processor/struct.PROCESSOR.html @@ -4,12 +4,12 @@
pub struct PROCESSOR {
+    

Struct os::task::processor::PROCESSOR

source · []
pub struct PROCESSOR {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Processor>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Processor>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/task/struct.INITPROC.html b/main/os/task/struct.INITPROC.html index 44bf6146..c0cf3db7 100644 --- a/main/os/task/struct.INITPROC.html +++ b/main/os/task/struct.INITPROC.html @@ -4,11 +4,11 @@
-

Struct os::task::INITPROC

source · []
pub struct INITPROC {
+    

Struct os::task::INITPROC

source · []
pub struct INITPROC {
     __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/task/task/enum.TaskStatus.html b/main/os/task/task/enum.TaskStatus.html index c1b018e2..8a62581e 100644 --- a/main/os/task/task/enum.TaskStatus.html +++ b/main/os/task/task/enum.TaskStatus.html @@ -4,16 +4,16 @@
pub enum TaskStatus {
+    

Enum os::task::task::TaskStatus

source · []
pub enum TaskStatus {
     Ready,
     Running,
     Blocking,
-}

Variants

Ready

Running

Blocking

Trait Implementations

Returns a copy of the value. Read more

+}

Variants

Ready

Running

Blocking

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

This method tests for self and other values to be equal, and is used +

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/task/task/index.html b/main/os/task/task/index.html index b79fb126..10045566 100644 --- a/main/os/task/task/index.html +++ b/main/os/task/task/index.html @@ -4,7 +4,7 @@
-

Module os::task::task

source · []

Structs

+

Module os::task::task

source · []

Structs

Enums

\ No newline at end of file diff --git a/main/os/task/task/struct.TaskControlBlock.html b/main/os/task/task/struct.TaskControlBlock.html index ee92603c..f7a39243 100644 --- a/main/os/task/task/struct.TaskControlBlock.html +++ b/main/os/task/task/struct.TaskControlBlock.html @@ -4,11 +4,11 @@
pub struct TaskControlBlock {
+    

Struct os::task::task::TaskControlBlock

source · []
pub struct TaskControlBlock {
     pub process: Weak<ProcessControlBlock>,
     pub kstack: KernelStack,
     pub inner: UPIntrFreeCell<TaskControlBlockInner>,
-}

Fields

process: Weak<ProcessControlBlock>kstack: KernelStackinner: UPIntrFreeCell<TaskControlBlockInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

process: Weak<ProcessControlBlock>kstack: KernelStackinner: UPIntrFreeCell<TaskControlBlockInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/task/task/struct.TaskControlBlockInner.html b/main/os/task/task/struct.TaskControlBlockInner.html index 8655a9fe..f8b7f86d 100644 --- a/main/os/task/task/struct.TaskControlBlockInner.html +++ b/main/os/task/task/struct.TaskControlBlockInner.html @@ -4,13 +4,13 @@
pub struct TaskControlBlockInner {
+    

Struct os::task::task::TaskControlBlockInner

source · []
pub struct TaskControlBlockInner {
     pub res: Option<TaskUserRes>,
     pub trap_cx_ppn: PhysPageNum,
     pub task_cx: TaskContext,
     pub task_status: TaskStatus,
     pub exit_code: Option<i32>,
-}

Fields

res: Option<TaskUserRes>trap_cx_ppn: PhysPageNumtask_cx: TaskContexttask_status: TaskStatusexit_code: Option<i32>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

res: Option<TaskUserRes>trap_cx_ppn: PhysPageNumtask_cx: TaskContexttask_status: TaskStatusexit_code: Option<i32>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

diff --git a/main/os/timer/struct.TIMERS.html b/main/os/timer/struct.TIMERS.html index ee318e25..d6da243e 100644 --- a/main/os/timer/struct.TIMERS.html +++ b/main/os/timer/struct.TIMERS.html @@ -6,8 +6,8 @@

TIMERS

Struct os::timer::TIMERS

source · []
struct TIMERS {
     __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<BinaryHeap<TimerCondVar>>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<BinaryHeap<TimerCondVar>>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/main/search-index.js b/main/search-index.js index b325e485..5bfdc451 100644 --- a/main/search-index.js +++ b/main/search-index.js @@ -1,4 +1,4 @@ var searchIndex = JSON.parse('{\ -"os":{"doc":"","t":[3,12,0,11,11,5,0,0,11,0,11,0,11,0,0,14,14,5,0,0,0,0,0,0,11,11,11,6,17,6,17,17,17,5,5,17,17,17,17,17,17,17,17,3,11,11,11,11,5,11,11,11,11,0,0,0,3,12,5,11,11,11,11,11,0,11,11,11,0,12,13,13,12,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,11,11,13,12,12,13,12,12,12,12,12,12,12,12,12,12,11,4,12,12,12,12,12,12,12,3,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,17,17,17,17,17,17,12,12,17,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,3,17,3,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,5,5,5,11,8,3,12,11,11,11,11,10,11,0,10,11,11,11,10,18,18,18,18,3,3,3,3,3,3,18,18,3,18,18,3,12,12,12,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,13,3,13,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,0,0,10,10,0,10,10,18,3,3,3,18,18,3,18,18,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,5,11,11,11,12,5,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,13,13,13,3,3,17,4,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,5,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,0,0,0,5,0,0,12,12,12,12,17,17,3,3,3,3,8,17,6,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,8,6,3,3,12,10,11,11,11,11,11,11,11,12,10,11,11,11,12,11,5,5,5,11,11,11,11,5,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,7,7,5,5,5,13,13,3,3,3,4,3,18,18,18,18,12,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,5,5,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,12,11,12,11,11,11,11,11,12,11,11,11,5,11,11,5,5,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,18,18,18,3,3,3,18,18,3,3,18,18,18,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,5,5,5,5,5,0,0,0,0,3,3,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,11,8,3,3,3,11,11,11,11,11,11,11,11,11,12,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,3,3,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,12,3,3,3,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,0,0,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,12,5,5,5,11,11,5,0,5,11,5,11,0,11,0,0,0,0,5,0,0,11,11,11,3,11,11,11,11,11,12,12,12,11,11,11,11,12,12,3,3,3,3,3,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,5,12,11,12,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,11,3,3,3,12,12,11,5,11,11,11,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,5,12,5,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,12,12,11,11,12,12,11,11,11,11,11,11,12,11,11,11,12,12,12,11,12,12,12,12,12,12,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,12,5,5,5,5,5,5,11,11,11,11,12,11,11,11,5,5,11,5,11,11,11,11,11,11,18,18,18,18,18,3,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,13,13,13,3,3,4,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,11,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,17,17,3,3,12,5,11,11,11,11,5,11,11,11,12,11,11,5,5,11,11,11,5,12,11,11,11,11,11,11,0,5,5,5,5,5,5,5,5,5,3,11,11,11,11,11,11,12,12,12,11,12,12,11,11,11,12],"n":["DEV_NON_BLOCKING_ACCESS","__private_field","board","borrow","borrow_mut","clear_bss","config","console","deref","drivers","from","fs","into","lang_items","mm","print","println","rust_main","sbi","sync","syscall","task","timer","trap","try_from","try_into","type_id","BlockDeviceImpl","CLOCK_FREQ","CharDeviceImpl","MMIO","VIRT_PLIC","VIRT_UART","device_init","irq_handler","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","MEMORY_END","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT_BASE","USER_STACK_SIZE","Stdout","borrow","borrow_mut","from","into","print","try_from","try_into","type_id","write_str","block","chardev","plic","BLOCK_DEVICE","__private_field","block_device_test","borrow","borrow_mut","deref","from","into","sdcard","try_from","try_into","type_id","virtio_blk","0","ACMD23","ACMD41","CID_CRC","CMD","CMD0","CMD10","CMD12","CMD16","CMD17","CMD18","CMD24","CMD25","CMD55","CMD58","CMD59","CMD8","CMD9","CMDFailed","CSDStruct","CSD_CRC","CS_HIGH","CS_LOW","CannotGetCardInfo","CardBlockSize","CardCapacity","CardCapacityStatusNotSet","CardComdClasses","ContentProtectAppli","CopyFlag","DSRImpl","DeviceSize","ECC","EraseGrMul","EraseGrSize","FileFormat","FileFormatGroup","HIGH_SPEED_ENABLE","InitError","ManDeflECC","ManufactDate","ManufacturerID","MaxBusClkFrec","MaxWrBlockLen","NSAC","OEM_AppliID","PERIPHERALS","PartBlockRead","PermWrProtect","ProdName1","ProdName2","ProdRev","ProdSN","RdBlockLen","RdBlockMisalign","Reserved1","Reserved1","Reserved2","Reserved2","Reserved3","Reserved4","SDCard","SDCardCID","SDCardCSD","SDCardInfo","SDCardWrapper","SD_CS","SD_CS_GPIONUM","SD_START_DATA_MULTIPLE_BLOCK_READ","SD_START_DATA_MULTIPLE_BLOCK_WRITE","SD_START_DATA_SINGLE_BLOCK_READ","SD_START_DATA_SINGLE_BLOCK_WRITE","SD_cid","SD_csd","SEC_LEN","SysSpecVersion","TAAC","TempWrProtect","WrBlockMisalign","WrProtectGrEnable","WrProtectGrSize","WrSpeedFact","WriteBlockPaPartial","__private_field","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cs_gpionum","deref","end_cmd","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_cardinfo","get_cidregister","get_csdregister","get_dataresponse","get_response","handle_irq","init","init_sdcard","into","into","into","into","into","into","into","into","io_init","lowlevel_init","new","new","read_block","read_data","read_sector","send_cmd","spi","spi_cs","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","write_block","write_data","write_sector","0","0","1","QUEUE_FRAMES","VIRTIO0","VirtIOBlock","__private_field","borrow","borrow","borrow_mut","borrow_mut","condvars","deref","from","from","handle_irq","into","into","new","read_block","try_from","try_from","try_into","try_into","type_id","type_id","virtio_blk","virtio_dma_alloc","virtio_dma_dealloc","virtio_phys_to_virt","virtio_virt_to_phys","write_block","CharDevice","UART","__private_field","borrow","borrow_mut","deref","from","handle_irq","into","ns16550a","read","try_from","try_into","type_id","write","AUX_OUTPUT1","AUX_OUTPUT2","DATA_AVAILABLE","DATA_TERMINAL_READY","IER","LSR","MCR","NS16550a","NS16550aInner","NS16550aRaw","REQUEST_TO_SEND","RX_AVAILABLE","ReadWithoutDLAB","THR_EMPTY","TX_EMPTY","WriteWithoutDLAB","_padding0","_padding1","_padding1","_padding2","all","all","all","base_addr","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","complement","complement","complement","condvar","contains","contains","contains","difference","difference","difference","empty","empty","empty","eq","eq","eq","extend","extend","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_iter","from_iter","from_iter","handle_irq","hash","hash","hash","ier","ier","iir","init","inner","insert","insert","insert","intersection","intersection","intersection","intersects","intersects","intersects","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_empty","is_empty","is_empty","lcr","lcr","lsr","lsr","mcr","mcr","ne","ne","ne","new","new","not","not","not","ns16550a","partial_cmp","partial_cmp","partial_cmp","rbr","read","read","read_buffer","read_end","remove","remove","remove","set","set","set","sub","sub","sub","sub_assign","sub_assign","sub_assign","symmetric_difference","symmetric_difference","symmetric_difference","thr","to_owned","to_owned","to_owned","toggle","toggle","toggle","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","union","union","write","write","write_end","IntrTargetPriority","Machine","PLIC","Supervisor","base_addr","borrow","borrow","borrow_mut","borrow_mut","claim","claim_comp_ptr_of_hart_with_priority","clone","clone_into","complete","disable","enable","enable_ptr","from","from","get_priority","get_threshold","hart_id_with_priority","into","into","new","priority_ptr","set_priority","set_threshold","supported_number","threshold_ptr_of_hart_with_priority","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","File","inode","pipe","read","readable","stdio","writable","write","CREATE","OSInode","OSInodeInner","OpenFlags","RDONLY","RDWR","ROOT_INODE","TRUNC","WRONLY","__private_field","all","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","cmp","complement","contains","deref","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","inner","inode","insert","intersection","intersects","into","into","into","into","is_all","is_empty","list_apps","ne","new","not","offset","open_file","partial_cmp","read","read_all","read_write","readable","readable","remove","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","union","writable","writable","write","Empty","Full","Normal","Pipe","PipeRingBuffer","RING_BUFFER_SIZE","RingBufferStatus","all_write_ends_closed","arr","available_read","available_write","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buffer","clone","clone_into","eq","from","from","from","head","into","into","into","make_pipe","new","read","read_byte","read_end_with_buffer","readable","readable","set_write_end","status","tail","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","writable","writable","write","write_byte","write_end","write_end_with_buffer","Stdin","Stdout","borrow","borrow","borrow_mut","borrow_mut","from","from","into","into","read","read","readable","readable","try_from","try_from","try_into","try_into","type_id","type_id","writable","writable","write","write","backtrace","panic","address","frame_allocator","heap_allocator","init","memory_set","page_table","0","0","0","0","PA_WIDTH_SV39","PPN_WIDTH_SV39","PhysAddr","PhysPageNum","SimpleRange","SimpleRangeIterator","StepByOne","VA_WIDTH_SV39","VPNRange","VPN_WIDTH_SV39","VirtAddr","VirtPageNum","aligned","aligned","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ceil","ceil","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","current","end","eq","eq","eq","eq","floor","floor","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bytes_array","get_end","get_mut","get_mut","get_pte_array","get_ref","get_start","indexes","into","into","into","into","into","into","into_iter","into_iter","l","ne","ne","ne","ne","new","new","next","page_offset","page_offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","step","step","step","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","FRAME_ALLOCATOR","FrameAllocator","FrameAllocatorImpl","FrameTracker","StackFrameAllocator","__private_field","alloc","alloc","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","current","dealloc","dealloc","deref","drop","end","fmt","frame_alloc","frame_allocator_test","frame_dealloc","from","from","from","init","init_frame_allocator","into","into","into","new","new","new","ppn","recycled","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","HEAP_ALLOCATOR","HEAP_SPACE","handle_alloc_error","heap_test","init_heap","Framed","Identical","KERNEL_SPACE","MapArea","MapPermission","MapType","MemorySet","R","U","W","X","__private_field","activate","all","areas","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","complement","contains","copy_data","data_frames","deref","difference","ebss","edata","ekernel","empty","eq","eq","erodata","etext","extend","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_another","from_bits","from_bits_truncate","from_bits_unchecked","from_elf","from_existed_user","from_iter","hash","insert","insert_framed_area","intersection","intersects","into","into","into","into","into","is_all","is_empty","kernel_token","map","map_one","map_perm","map_trampoline","map_type","ne","new","new_bare","new_kernel","not","page_table","partial_cmp","push","recycle_data_pages","remap_test","remove","remove_area_with_start_vpn","sbss_with_stack","sdata","set","srodata","stext","strampoline","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unmap_one","vpn_range","A","D","G","PTEFlags","PageTable","PageTableEntry","R","U","UserBuffer","UserBufferIterator","V","W","X","all","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffers","buffers","clone","clone","clone_into","clone_into","cmp","complement","contains","current_buffer","current_idx","difference","empty","empty","eq","executable","extend","find_pte","find_pte_create","flags","fmt","fmt","fmt","fmt","fmt","frames","from","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","from_token","hash","insert","intersection","intersects","into","into","into","into","into","into_iter","into_iter","is_all","is_empty","is_valid","len","map","ne","new","new","new","next","not","partial_cmp","ppn","readable","remove","root_ppn","set","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","translate_va","translated_byte_buffer","translated_ref","translated_refmut","translated_str","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","writable","SBI_CLEAR_IPI","SBI_CONSOLE_GETCHAR","SBI_CONSOLE_PUTCHAR","SBI_REMOTE_FENCE_I","SBI_REMOTE_SFENCE_VMA","SBI_REMOTE_SFENCE_VMA_ASID","SBI_SEND_IPI","SBI_SET_TIMER","SBI_SHUTDOWN","console_getchar","console_putchar","sbi_call","set_timer","shutdown","condvar","mutex","semaphore","up","Condvar","CondvarInner","borrow","borrow","borrow_mut","borrow_mut","from","from","inner","into","into","new","signal","try_from","try_from","try_into","try_into","type_id","type_id","wait_no_sched","wait_queue","wait_with_mutex","Mutex","MutexBlocking","MutexBlockingInner","MutexSpin","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","from","from","from","inner","into","into","into","lock","lock","lock","locked","locked","new","new","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unlock","unlock","unlock","wait_queue","Semaphore","SemaphoreInner","borrow","borrow","borrow_mut","borrow_mut","count","down","from","from","inner","into","into","new","try_from","try_from","try_into","try_into","type_id","type_id","up","wait_queue","0","INTR_MASKING_INFO","IntrMaskingInfo","UPIntrFreeCell","UPIntrRefMut","UPSafeCellRaw","__private_field","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref_mut","drop","enter","exclusive_access","exclusive_session","exit","from","from","from","from","from","get_mut","inner","inner","into","into","into","into","into","nested_level","new","new","new","sie_before_masking","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","SYSCALL_CLOSE","SYSCALL_CONDVAR_CREATE","SYSCALL_CONDVAR_SIGNAL","SYSCALL_CONDVAR_WAIT","SYSCALL_DUP","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_GETPID","SYSCALL_GETTID","SYSCALL_GET_TIME","SYSCALL_KILL","SYSCALL_MUTEX_CREATE","SYSCALL_MUTEX_LOCK","SYSCALL_MUTEX_UNLOCK","SYSCALL_OPEN","SYSCALL_PIPE","SYSCALL_READ","SYSCALL_SEMAPHORE_CREATE","SYSCALL_SEMAPHORE_DOWN","SYSCALL_SEMAPHORE_UP","SYSCALL_SLEEP","SYSCALL_THREAD_CREATE","SYSCALL_WAITPID","SYSCALL_WAITTID","SYSCALL_WRITE","SYSCALL_YIELD","fs","process","sync","syscall","thread","sys_close","sys_dup","sys_open","sys_pipe","sys_read","sys_write","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_kill","sys_waitpid","sys_yield","sys_condvar_create","sys_condvar_signal","sys_condvar_wait","sys_mutex_create","sys_mutex_lock","sys_mutex_unlock","sys_semaphore_create","sys_semaphore_down","sys_semaphore_up","sys_sleep","sys_gettid","sys_thread_create","sys_waittid","INITPROC","__private_field","add_initproc","block_current_and_run_next","block_current_task","borrow","borrow_mut","check_signals_of_current","context","current_add_signal","deref","exit_current_and_run_next","from","id","into","manager","process","processor","signal","suspend_current_and_run_next","switch","task","try_from","try_into","type_id","TaskContext","borrow","borrow_mut","from","goto_trap_return","into","ra","s","sp","try_from","try_into","type_id","zero_init","0","0","KSTACK_ALLOCATOR","KernelStack","PID_ALLOCATOR","PidHandle","RecycleAllocator","TaskUserRes","__private_field","__private_field","alloc","alloc_tid","alloc_user_res","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","current","dealloc","dealloc_tid","dealloc_user_res","deref","deref","drop","drop","drop","from","from","from","from","from","from","get_top","into","into","into","into","into","into","kernel_stack_position","kstack_alloc","new","new","pid_alloc","process","push_on_top","recycled","tid","trap_cx_bottom_from_tid","trap_cx_ppn","trap_cx_user_va","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","ustack_base","ustack_base","ustack_bottom_from_tid","ustack_top","PID2PCB","TASK_MANAGER","TaskManager","__private_field","__private_field","add","add_task","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","fetch","fetch_task","from","from","from","insert_into_pid2process","into","into","into","new","pid2process","ready_queue","remove_from_pid2process","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","ProcessControlBlock","ProcessControlBlockInner","alloc_fd","alloc_tid","borrow","borrow","borrow_mut","borrow_mut","children","condvar_list","dealloc_tid","exec","exit_code","fd_table","fork","from","from","get_task","get_user_token","getpid","inner","inner_exclusive_access","into","into","is_zombie","memory_set","mutex_list","new","parent","pid","semaphore_list","signals","task_res_allocator","tasks","thread_count","try_from","try_from","try_into","try_into","type_id","type_id","PROCESSOR","Processor","__private_field","borrow","borrow","borrow_mut","borrow_mut","current","current","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","from","from","get_idle_task_cx_ptr","idle_task_cx","into","into","new","run_tasks","schedule","take_current","take_current_task","try_from","try_from","try_into","try_into","type_id","type_id","SIGABRT","SIGFPE","SIGILL","SIGINT","SIGSEGV","SignalFlags","all","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow_mut","check_error","clone","clone_into","cmp","complement","contains","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","insert","intersection","intersects","into","is_all","is_empty","ne","not","partial_cmp","remove","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_into","type_id","union","__switch","Blocking","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","eq","exit_code","from","from","from","get_status","get_trap_cx","get_user_token","inner","inner_exclusive_access","into","into","into","kstack","new","process","res","task_cx","task_status","to_owned","trap_cx_ppn","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","MSEC_PER_SEC","TICKS_PER_SEC","TIMERS","TimerCondVar","__private_field","add_timer","borrow","borrow","borrow_mut","borrow_mut","check_timer","cmp","deref","eq","expire_ms","from","from","get_time","get_time_ms","into","into","partial_cmp","set_next_trigger","task","try_from","try_from","try_into","try_into","type_id","type_id","context","disable_supervisor_interrupt","enable_supervisor_interrupt","enable_timer_interrupt","init","set_kernel_trap_entry","set_user_trap_entry","trap_from_kernel","trap_handler","trap_return","TrapContext","app_init_context","borrow","borrow_mut","fmt","from","into","kernel_satp","kernel_sp","sepc","set_sp","sstatus","trap_handler","try_from","try_into","type_id","x"],"q":["os","","","","","","","","","","","","","","","","","","","","","","","","","","","os::board","","","","","","","","os::config","","","","","","","","os::console","","","","","","","","","","os::drivers","","","os::drivers::block","","","","","","","","","","","","","os::drivers::block::sdcard","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::block::sdcard::InitError","","","os::drivers::block::virtio_blk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::chardev","","","","","","","","","","","","","","","os::drivers::chardev::ns16550a","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::plic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs","","","","","","","","os::fs::inode","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs::pipe","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs::stdio","","","","","","","","","","","","","","","","","","","","","","","","os::lang_items","","os::mm","","","","","","os::mm::address","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::frame_allocator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::heap_allocator","","","","","os::mm::memory_set","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::page_table","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sbi","","","","","","","","","","","","","","os::sync","","","","os::sync::condvar","","","","","","","","","","","","","","","","","","","","","","os::sync::mutex","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sync::semaphore","","","","","","","","","","","","","","","","","","","","","","os::sync::up","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall::fs","","","","","","os::syscall::process","","","","","","","","os::syscall::sync","","","","","","","","","","os::syscall::thread","","","os::task","","","","","","","","","","","","","","","","","","","","","","","","","os::task::context","","","","","","","","","","","","","os::task::id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::manager","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::process","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::signal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::switch","os::task::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::timer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::trap","","","","","","","","","","os::trap::context","","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","Number of blocks to erase (SDC) ","Initiate initialization process (SDC) ","","SD commands ","Software reset ","Read CID register ","Stop to read data ","Change R/W block size ","Read block ","Read multiple blocks ","Write a block ","Write multiple blocks ","Leading command for ACMD* ","Read OCR ","Enable/disable CRC check ","Check voltage range (SDC V2) ","Read CSD register ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Card Identification Data: CID Register","Card Specific Data: CSD Register","Card information","","CS value passed to SPI controller, this is a dummy value …","GPIOHS GPIO number to use for controlling the SD card CS …","Data token start byte, Start Multiple Block Read ","Data token start byte, Start Multiple Block Write ","Data token start byte, Start Single Block Read ","Data token start byte, Start Single Block Write ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Connect pins to internal functions ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","InterruptEnableRegister","LineStatusRegister","Model Control Register","","","","","","","","","","ignore FCR","ignore MSR","ignore other registers","ignore SCR","Returns the set containing all flags.","Returns the set containing all flags.","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Adds the set of flags.","Adds the set of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","","","","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Toggles the set of flags.","Toggles the set of flags.","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns an empty set of flags.","Returns an empty set of flags.","Returns an empty set of flags.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","","","","","","","","interrupt enable register","interrupt enable register","interrupt identification register","","","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","line control register","line control register","line status register","line status register","model control register","modem control register","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","","","","receiver buffer register","","","","","Removes the specified flags in-place.","Removes the specified flags in-place.","Removes the specified flags in-place.","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","transmitter holding register","","","","Toggles the specified flags in-place.","Toggles the specified flags in-place.","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","Returns the complement of this set of flags.","","","","","","Do not check validity for simplicity Return (readable, …","","","Removes the specified flags in-place.","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (read_end, write_end)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Definitions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","data: start-aligned but maybe with shorter length assume …","","","Returns the difference between the flags in self and other.","","","","Returns an empty set of flags.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Include sections in elf and trampoline, also returns …","","","","Inserts the specified flags in-place.","Assume that no conflicts.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","Mention that trampoline is not collected by areas.","","","","","Without kernel stacks.","Returns the complement of this set of flags.","","","","","","Removes the specified flags in-place.","","","","Inserts or removes the specified flags depending on the …","","","","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","Returns the set containing all flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","Temporarily used to get arguments from user space.","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","","","","","Returns the complement of this set of flags.","","","","Removes the specified flags in-place.","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","Load a string from other address spaces into kernel space …","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Panic if the data has been borrowed.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","inner data","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","","","","","thread does not exist, return -1 thread has not exited …","","","","","This function must be followed by a schedule","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (bottom, top) of a kernel stack in kernel space.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Only support processes with a single thread.","","","Only support processes with a single thread.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","Returns the complement of this set of flags.","","Removes the specified flags in-place.","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","",""],"i":[0,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,2,2,2,2,0,0,0,0,3,0,3,3,3,3,3,0,3,3,3,0,4,5,5,6,0,5,5,5,5,5,5,5,5,5,5,5,5,5,7,8,8,9,9,7,10,10,7,8,8,8,8,8,8,8,8,8,8,9,0,8,6,6,8,8,8,6,0,8,8,6,6,6,6,8,8,8,6,8,6,8,8,0,0,0,0,0,0,0,0,0,0,0,10,10,0,8,8,8,8,8,8,8,8,11,9,4,5,7,8,6,10,11,9,4,5,7,8,6,10,11,5,7,8,6,10,5,7,8,6,10,9,11,9,5,5,7,8,6,10,9,4,5,7,8,6,10,11,9,9,9,9,9,4,9,0,9,4,5,7,8,6,10,11,0,9,9,4,4,9,9,9,9,9,5,7,8,6,10,9,4,5,7,8,6,10,11,9,4,5,7,8,6,10,11,9,4,5,7,8,6,10,11,4,9,9,12,13,12,0,0,0,14,15,14,15,14,15,14,15,14,15,15,14,15,15,15,14,15,14,15,14,15,0,0,0,0,15,0,0,16,16,16,16,16,17,16,0,17,16,16,16,17,18,18,19,18,0,0,0,0,0,0,18,20,0,19,20,0,21,22,21,22,20,19,18,23,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,22,21,23,24,25,20,19,18,22,21,23,24,25,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,25,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,20,20,20,20,20,19,19,19,19,19,18,18,18,18,18,22,21,23,24,25,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,25,20,19,18,22,21,22,23,25,20,19,18,20,19,18,20,19,18,22,21,23,24,25,20,19,18,20,19,18,20,19,18,22,21,22,21,22,21,20,19,18,23,25,20,19,18,24,20,19,18,22,23,25,24,23,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,21,20,19,18,20,19,18,22,21,23,24,25,20,19,18,22,21,23,24,25,20,19,18,22,21,23,24,25,20,19,18,20,19,18,23,25,23,0,26,0,26,27,27,26,27,26,27,27,26,26,27,27,27,27,27,26,27,27,27,27,26,27,27,27,27,26,27,26,27,26,27,26,27,26,0,0,0,28,28,0,28,28,29,0,0,0,29,29,0,29,29,30,29,29,29,29,29,29,29,29,29,31,32,30,29,31,32,30,29,29,29,29,29,29,30,29,29,29,29,29,29,29,29,29,31,32,30,29,29,29,29,29,29,31,32,29,29,29,31,32,30,29,29,29,0,29,31,29,32,0,29,31,31,29,31,31,29,29,29,29,29,29,29,31,32,30,29,31,32,30,29,31,32,30,29,29,31,31,31,33,33,33,0,0,0,0,34,34,34,34,35,34,33,35,34,33,35,33,33,33,35,34,33,34,35,34,33,0,34,35,34,35,35,35,34,34,34,33,35,34,33,35,34,33,35,34,33,35,35,35,34,34,35,0,0,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,0,0,0,0,0,0,0,0,38,39,40,41,0,0,0,0,0,0,0,0,0,0,0,0,38,39,42,38,39,40,41,43,42,38,39,40,41,43,38,39,38,39,40,41,43,38,39,40,41,43,38,39,40,41,42,42,38,39,40,41,38,39,38,39,40,41,42,38,38,38,39,39,39,40,40,40,41,41,41,43,40,43,38,40,40,38,43,41,42,38,39,40,41,43,42,43,43,38,39,40,41,42,43,42,38,39,38,39,40,41,43,44,40,41,38,39,40,41,43,42,38,39,40,41,43,42,38,39,40,41,43,42,38,39,40,41,43,0,0,0,0,0,45,46,47,48,47,45,48,47,45,47,46,47,45,48,47,48,0,0,0,48,47,45,47,0,48,47,45,46,48,47,48,47,48,47,45,48,47,45,48,47,45,0,0,0,0,0,49,49,0,0,0,0,0,50,50,50,50,51,52,50,52,50,50,50,50,50,50,50,50,52,53,51,49,50,52,53,51,49,50,49,50,49,50,50,50,50,53,53,51,50,0,0,0,50,49,50,0,0,50,49,50,50,50,50,50,52,53,51,49,50,53,50,50,50,52,52,50,50,50,52,50,50,52,53,51,49,50,50,50,0,53,53,53,52,53,50,53,52,52,50,52,50,52,52,0,50,52,0,0,50,0,0,0,50,50,50,49,50,50,52,52,52,53,51,49,50,52,53,51,49,50,52,53,51,49,50,50,53,53,53,54,54,54,0,0,0,54,54,0,0,54,54,54,54,54,54,54,54,54,54,55,54,54,56,57,58,54,55,56,57,58,54,55,57,58,54,55,54,55,54,54,54,58,58,54,54,55,54,55,54,56,56,55,54,54,54,54,54,56,56,57,58,54,55,54,54,54,54,56,54,54,54,54,56,57,58,54,55,57,58,54,54,55,57,56,54,56,57,55,58,54,54,55,55,54,56,54,54,54,54,54,55,54,56,56,56,0,0,0,0,56,57,58,54,55,56,57,58,54,55,56,57,58,54,55,54,56,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,60,59,60,59,60,59,59,60,59,59,59,60,59,60,59,60,59,60,59,0,0,0,0,61,62,63,61,62,63,61,62,63,62,61,62,63,64,61,62,61,63,61,62,61,62,63,61,62,63,61,62,63,64,61,62,63,0,0,65,66,65,66,66,65,65,66,65,65,66,65,65,66,65,66,65,66,65,66,67,0,0,0,0,0,68,69,70,71,67,68,69,70,71,67,68,67,68,67,67,70,71,71,70,69,70,71,67,68,69,69,71,69,70,71,67,68,70,69,70,71,70,69,70,71,67,68,69,70,71,67,68,69,70,71,67,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,0,0,0,72,72,0,0,0,72,0,72,0,72,0,0,0,0,0,0,0,72,72,72,0,73,73,73,73,73,73,73,73,73,73,73,73,74,75,0,0,0,0,0,0,76,77,78,79,79,78,74,75,79,76,77,78,74,75,79,76,77,78,78,79,79,76,77,74,75,79,78,74,75,79,76,77,75,78,74,75,79,76,77,0,0,78,79,0,79,75,78,79,0,79,79,78,74,75,79,76,77,78,74,75,79,76,77,78,74,75,79,76,77,79,79,0,79,0,0,0,80,81,82,0,82,80,81,82,80,81,80,81,82,0,82,80,81,0,82,80,81,82,0,82,0,82,80,81,82,80,81,82,80,81,0,0,83,83,84,83,84,83,83,83,83,84,83,83,84,84,83,83,83,84,84,84,84,83,83,83,83,84,83,84,83,83,83,83,83,84,83,84,83,84,83,0,0,85,86,85,86,85,86,86,0,0,0,0,0,0,85,86,85,86,86,86,85,86,0,0,86,0,86,85,86,85,86,85,87,87,87,87,87,0,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,0,88,88,88,0,0,0,89,90,88,89,90,88,88,88,88,90,89,90,88,90,90,89,89,89,89,90,88,89,89,89,90,90,90,88,90,89,90,88,89,90,88,89,90,88,0,0,0,0,91,0,92,91,92,91,0,92,91,92,92,92,91,0,0,92,91,92,0,92,92,91,92,91,92,91,0,0,0,0,0,0,0,0,0,0,0,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93],"f":[null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,null,[[["",0]],["upintrfreecell",3]],null,[[]],null,[[]],null,null,null,null,[[],["never",0]],null,null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[]],[[]],null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[["arguments",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["str",0]],["result",6]],null,null,null,null,null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["arc",3]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],[[["",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["cmd",4]],[[["",0]],["initerror",4]],[[["",0]],["sdcardcsd",3]],[[["",0]],["sdcardcid",3]],[[["",0]],["sdcardinfo",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[["",0]],["upintrfreecell",3]],[[["",0]]],[[["",0],["cmd",4]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["result",4,[["sdcardinfo",3]]]],[[["",0]],["result",4,[["sdcardcid",3]]]],[[["",0]],["result",4,[["sdcardcsd",3]]]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],[[["",0]]],[[["",0]],["result",4,[["sdcardinfo",3],["initerror",4]]]],[[],["sdcard",3,[["spiimpl",3,[["spi0",3]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["u32",0],["u8",0]]],[[]],[[["",0],["usize",0]]],[[["",0]]],[[["",0],["u32",0]],["result",4]],[[["",0],["cmd",4],["u32",0],["u8",0]]],null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["usize",0]]],[[["",0]]],[[["",0],["u32",0]],["result",4]],null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["upintrfreecell",3]],[[]],[[]],[[["",0]]],[[]],[[]],[[]],[[["",0],["usize",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[["usize",0]],["physaddr",3]],[[["physaddr",3],["usize",0]],["i32",0]],[[["physaddr",3]],["virtaddr",3]],[[["virtaddr",3]],["physaddr",3]],[[["",0],["usize",0]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["arc",3]],[[]],[[["",0]]],[[]],null,[[["",0]],["u8",0]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["u8",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["ier",3]]],[[["lsr",3]]],[[["mcr",3]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],null,null,null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["ier",3]],[[["",0]],["lsr",3]],[[["",0]],["mcr",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["ier",3]],["ordering",4]],[[["",0],["lsr",3]],["ordering",4]],[[["",0],["mcr",3]],["ordering",4]],[[]],[[]],[[]],null,[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["ier",3]],["bool",0]],[[["",0],["lsr",3]],["bool",0]],[[["",0],["mcr",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["intoiterator",8]]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["u8",0]],["option",4]],[[["u8",0]],["option",4]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["intoiterator",8]]],[[["intoiterator",8]]],[[["intoiterator",8]]],[[["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[["",0]]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],null,null,null,null,null,null,[[["",0],["ier",3]],["bool",0]],[[["",0],["lsr",3]],["bool",0]],[[["",0],["mcr",3]],["bool",0]],[[["usize",0]]],[[]],[[]],[[]],[[]],null,[[["",0],["ier",3]],["option",4,[["ordering",4]]]],[[["",0],["lsr",3]],["option",4,[["ordering",4]]]],[[["",0],["mcr",3]],["option",4,[["ordering",4]]]],null,[[["",0]],["option",4,[["u8",0]]]],[[["",0]],["u8",0]],null,[[["",0]],["readwithoutdlab",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0],["bool",0]]],[[["",0],["bool",0]]],[[["",0],["bool",0]]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[["",0],["u8",0]]],[[["",0],["u8",0]]],[[["",0]],["writewithoutdlab",3]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["usize",0],["intrtargetpriority",4]],["u32",0]],[[["",0],["usize",0],["intrtargetpriority",4]]],[[["",0]],["intrtargetpriority",4]],[[["",0],["",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["u32",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[]],[[]],[[["",0],["usize",0]],["u32",0]],[[["",0],["usize",0],["intrtargetpriority",4]],["u32",0]],[[["usize",0],["intrtargetpriority",4]],["usize",0]],[[]],[[]],[[["usize",0]]],[[["",0],["usize",0]]],[[["",0],["usize",0],["u32",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["u32",0]]],[[],["usize",0]],[[["",0],["usize",0],["intrtargetpriority",4]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["bool",0]],null,[[["",0]],["bool",0]],[[["",0],["userbuffer",3]],["usize",0]],null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[["",0]]],[[["openflags",3]]],[[["",0]]],[[["",0]],["u32",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["openflags",3]],[[["",0],["",0]]],[[["",0],["openflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[["",0]],["arc",3]],[[]],[[]],[[["",0],["openflags",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["u32",0]],["option",4]],[[["u32",0]]],[[["u32",0]]],[[["intoiterator",8]]],[[["",0],["",0]]],null,null,[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[["",0],["openflags",3]],["bool",0]],[[["bool",0],["bool",0],["arc",3,[["inode",3]]]]],[[]],null,[[["str",0],["openflags",3]],["option",4,[["arc",3,[["osinode",3]]]]]],[[["",0],["openflags",3]],["option",4,[["ordering",4]]]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["vec",3,[["u8",0]]]],[[["",0]]],[[["",0]],["bool",0]],null,[[["",0]]],[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0]],["bool",0]],null,[[["",0],["userbuffer",3]],["usize",0]],null,null,null,null,null,null,null,[[["",0]],["bool",0]],null,[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["ringbufferstatus",4]],[[["",0],["",0]]],[[["",0],["ringbufferstatus",4]],["bool",0]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["u8",0]],[[["arc",3,[["upintrfreecell",3,[["piperingbuffer",3]]]]]]],[[["",0]],["bool",0]],null,[[["",0],["arc",3]]],null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["bool",0]],null,[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["u8",0]]],null,[[["arc",3,[["upintrfreecell",3,[["piperingbuffer",3]]]]]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["userbuffer",3]],["usize",0]],[[]],[[["panicinfo",3]],["never",0]],null,null,null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0]],["physaddr",3]],[[["",0]],["virtaddr",3]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0]],["simplerange",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["physaddr",3]],["ordering",4]],[[["",0],["virtaddr",3]],["ordering",4]],[[["",0],["physpagenum",3]],["ordering",4]],[[["",0],["virtpagenum",3]],["ordering",4]],null,null,[[["",0],["physaddr",3]],["bool",0]],[[["",0],["virtaddr",3]],["bool",0]],[[["",0],["physpagenum",3]],["bool",0]],[[["",0],["virtpagenum",3]],["bool",0]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["usize",0]]],[[]],[[["physpagenum",3]]],[[["usize",0]]],[[["virtpagenum",3]]],[[]],[[]],[[["physaddr",3]]],[[["usize",0]]],[[["virtaddr",3]]],[[["usize",0]]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[["",0]],["",0]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["physaddr",3]],["bool",0]],[[["",0],["virtaddr",3]],["bool",0]],[[["",0],["physpagenum",3]],["bool",0]],[[["",0],["virtpagenum",3]],["bool",0]],[[]],[[]],[[["",0]],["option",4]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0],["physaddr",3]],["option",4,[["ordering",4]]]],[[["",0],["virtaddr",3]],["option",4,[["ordering",4]]]],[[["",0],["physpagenum",3]],["option",4,[["ordering",4]]]],[[["",0],["virtpagenum",3]],["option",4,[["ordering",4]]]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[["",0]],["option",4,[["physpagenum",3]]]],[[["",0]],["option",4,[["physpagenum",3]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["physpagenum",3]]],[[["",0],["physpagenum",3]]],[[["",0]],["upintrfreecell",3]],[[["",0]]],null,[[["",0],["formatter",3]],["result",6]],[[],["option",4,[["frametracker",3]]]],[[]],[[["physpagenum",3]]],[[]],[[]],[[]],[[["",0],["physpagenum",3],["physpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[["physpagenum",3]]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[["layout",3]],["never",0]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],[[]],null,[[]],[[["",0]]],[[["mappermission",3]]],[[["",0]]],[[["",0]],["u8",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["maptype",4]],[[["",0]],["mappermission",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["mappermission",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[["",0],["pagetable",3]]],null,[[["",0]],["arc",3]],[[]],null,null,null,[[]],[[["",0],["maptype",4]],["bool",0]],[[["",0],["mappermission",3]],["bool",0]],null,null,[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["maparea",3]]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[]],[[["memoryset",3]],["memoryset",3]],[[["intoiterator",8]]],[[["",0],["",0]]],[[["",0]]],[[["",0],["virtaddr",3],["virtaddr",3],["mappermission",3]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[],["usize",0]],[[["",0],["pagetable",3]]],[[["",0],["pagetable",3],["virtpagenum",3]]],null,[[["",0]]],null,[[["",0],["mappermission",3]],["bool",0]],[[["virtaddr",3],["virtaddr",3],["maptype",4],["mappermission",3]]],[[]],[[]],[[]],null,[[["",0],["mappermission",3]],["option",4,[["ordering",4]]]],[[["",0],["maparea",3],["option",4]]],[[["",0]]],[[]],[[["",0]]],[[["",0],["virtpagenum",3]]],null,null,[[["",0],["bool",0]]],null,null,null,[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0],["pagetable",3]]],[[["",0],["pagetable",3],["virtpagenum",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[["",0]]],[[["pteflags",3]]],[[["",0]]],[[["",0]],["u8",0]],null,null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[["",0]],["pteflags",3]],[[["",0]],["pagetableentry",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["pteflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],null,null,[[]],[[]],[[]],[[["",0],["pteflags",3]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0]],["pteflags",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[]],[[]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[["intoiterator",8]]],[[["usize",0]]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3],["physpagenum",3],["pteflags",3]]],[[["",0],["pteflags",3]],["bool",0]],[[]],[[["vec",3]]],[[["physpagenum",3],["pteflags",3]]],[[["",0]],["option",4]],[[]],[[["",0],["pteflags",3]],["option",4,[["ordering",4]]]],[[["",0]],["physpagenum",3]],[[["",0]],["bool",0]],[[["",0]]],null,[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0],["virtaddr",3]],["option",4,[["physaddr",3]]]],[[["usize",0],["usize",0]],["vec",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0],["virtpagenum",3]]],[[["",0]],["bool",0]],null,null,null,null,null,null,null,null,null,[[],["usize",0]],[[["usize",0]]],[[["usize",0],["usize",0],["usize",0],["usize",0]],["usize",0]],[[["usize",0]]],[[],["never",0]],null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],null,[[]],[[]],[[]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]]],null,[[["",0],["arc",3,[["mutex",8]]]]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],null,null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]]],[[["",0]]],[[["",0]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]]],[[]],[[]],null,[[]],[[]],[[["usize",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]]],null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[["",0]],["upsafecellraw",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["upintrrefmut",3]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],null,null,[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["usize",0]],["isize",0]],null,[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["u32",0]],["isize",0]],[[],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[],["isize",0]],[[["i32",0]],["never",0]],[[],["isize",0]],[[],["isize",0]],[[],["isize",0]],[[["usize",0],["u32",0]],["isize",0]],[[["isize",0]],["isize",0]],[[],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["bool",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["usize",0]],["i32",0]],null,null,[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[],["option",4]],null,[[["signalflags",3]]],[[["",0]],["arc",3]],[[["i32",0]]],[[]],null,[[]],null,null,null,null,[[]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["usize",0]]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["usize",0]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["usize",0]]],[[["",0]]],[[["",0]]],[[["",0]],["upintrfreecell",3]],[[["",0]],["upintrfreecell",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["usize",0]]],[[],["kernelstack",3]],[[]],[[["arc",3,[["processcontrolblock",3]]],["usize",0],["bool",0]]],[[],["pidhandle",3]],null,[[["",0]]],null,null,[[["usize",0]],["usize",0]],[[["",0]],["physpagenum",3]],[[["",0]],["usize",0]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["usize",0]],null,[[["usize",0],["usize",0]],["usize",0]],[[["",0]],["usize",0]],null,null,null,null,null,[[["",0],["arc",3,[["taskcontrolblock",3]]]]],[[["arc",3,[["taskcontrolblock",3]]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["upintrfreecell",3]],[[["",0]],["upintrfreecell",3]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[]],[[]],[[]],[[["usize",0],["arc",3,[["processcontrolblock",3]]]]],[[]],[[]],[[]],[[]],[[["usize",0]],["option",4,[["arc",3,[["processcontrolblock",3]]]]]],null,[[["usize",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[["",0],["usize",0]]],[[["arc",3],["vec",3,[["string",3]]]]],null,null,[[["arc",3]],["arc",3]],[[]],[[]],[[["",0],["usize",0]],["arc",3,[["taskcontrolblock",3]]]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],null,[[["",0]],["upintrrefmut",3,[["processcontrolblockinner",3]]]],[[]],[[]],null,null,null,[[],["arc",3]],null,null,null,null,null,null,[[["",0]],["usize",0]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],null,[[],["usize",0]],[[],["arc",3,[["processcontrolblock",3]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["trapcontext",3]],[[],["usize",0]],[[],["usize",0]],[[["",0]],["upintrfreecell",3]],[[]],[[]],[[["",0]]],null,[[]],[[]],[[]],[[]],[[]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[["",0]]],[[["signalflags",3]]],[[["",0]]],[[["",0]],["u32",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["option",4]],[[["",0]],["signalflags",3]],[[["",0],["",0]]],[[["",0],["signalflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[["",0],["signalflags",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["u32",0]],["option",4]],[[["u32",0]]],[[["u32",0]]],[[["intoiterator",8]]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["signalflags",3]],["bool",0]],[[]],[[["",0],["signalflags",3]],["option",4,[["ordering",4]]]],[[["",0]]],[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["taskstatus",4]],[[["",0],["",0]]],[[["",0],["taskstatus",4]],["bool",0]],null,[[]],[[]],[[]],[[["",0]],["taskstatus",4]],[[["",0]],["trapcontext",3]],[[["",0]],["usize",0]],null,[[["",0]],["upintrrefmut",3,[["taskcontrolblockinner",3]]]],[[]],[[]],[[]],null,[[["arc",3,[["processcontrolblock",3]]],["usize",0],["bool",0]]],null,null,null,null,[[["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,[[["usize",0],["arc",3,[["taskcontrolblock",3]]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0],["",0]],["ordering",4]],[[["",0]],["upintrfreecell",3]],[[["",0],["",0]],["bool",0]],null,[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0],["",0]],["option",4,[["ordering",4]]]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[["trapcontext",3]]],[[],["never",0]],[[],["never",0]],null,[[["usize",0],["usize",0],["usize",0],["usize",0],["usize",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,null,null,[[["",0],["usize",0]]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null],"p":[[3,"DEV_NON_BLOCKING_ACCESS"],[3,"Stdout"],[3,"BLOCK_DEVICE"],[3,"SDCardWrapper"],[4,"CMD"],[3,"SDCardCID"],[4,"InitError"],[3,"SDCardCSD"],[3,"SDCard"],[3,"SDCardInfo"],[3,"PERIPHERALS"],[13,"CMDFailed"],[13,"CardCapacityStatusNotSet"],[3,"QUEUE_FRAMES"],[3,"VirtIOBlock"],[3,"UART"],[8,"CharDevice"],[3,"MCR"],[3,"LSR"],[3,"IER"],[3,"WriteWithoutDLAB"],[3,"ReadWithoutDLAB"],[3,"NS16550aRaw"],[3,"NS16550aInner"],[3,"NS16550a"],[4,"IntrTargetPriority"],[3,"PLIC"],[8,"File"],[3,"OpenFlags"],[3,"ROOT_INODE"],[3,"OSInode"],[3,"OSInodeInner"],[4,"RingBufferStatus"],[3,"PipeRingBuffer"],[3,"Pipe"],[3,"Stdin"],[3,"Stdout"],[3,"PhysAddr"],[3,"VirtAddr"],[3,"PhysPageNum"],[3,"VirtPageNum"],[3,"SimpleRangeIterator"],[3,"SimpleRange"],[8,"StepByOne"],[3,"FRAME_ALLOCATOR"],[8,"FrameAllocator"],[3,"StackFrameAllocator"],[3,"FrameTracker"],[4,"MapType"],[3,"MapPermission"],[3,"KERNEL_SPACE"],[3,"MemorySet"],[3,"MapArea"],[3,"PTEFlags"],[3,"PageTableEntry"],[3,"PageTable"],[3,"UserBuffer"],[3,"UserBufferIterator"],[3,"Condvar"],[3,"CondvarInner"],[3,"MutexSpin"],[3,"MutexBlocking"],[3,"MutexBlockingInner"],[8,"Mutex"],[3,"Semaphore"],[3,"SemaphoreInner"],[3,"UPIntrRefMut"],[3,"INTR_MASKING_INFO"],[3,"UPSafeCellRaw"],[3,"IntrMaskingInfo"],[3,"UPIntrFreeCell"],[3,"INITPROC"],[3,"TaskContext"],[3,"PidHandle"],[3,"KernelStack"],[3,"PID_ALLOCATOR"],[3,"KSTACK_ALLOCATOR"],[3,"RecycleAllocator"],[3,"TaskUserRes"],[3,"TASK_MANAGER"],[3,"PID2PCB"],[3,"TaskManager"],[3,"ProcessControlBlockInner"],[3,"ProcessControlBlock"],[3,"PROCESSOR"],[3,"Processor"],[3,"SignalFlags"],[4,"TaskStatus"],[3,"TaskControlBlock"],[3,"TaskControlBlockInner"],[3,"TIMERS"],[3,"TimerCondVar"],[3,"TrapContext"]]}\ +"os":{"doc":"","t":[3,12,0,11,11,5,0,0,11,0,11,0,11,0,0,14,14,5,0,0,0,0,0,0,11,11,11,6,17,6,17,17,17,5,5,17,17,17,17,17,17,17,17,3,11,11,11,11,5,11,11,11,11,0,0,0,3,12,5,11,11,11,11,11,0,11,11,11,0,12,13,13,12,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,11,11,13,12,12,13,12,12,12,12,12,12,12,12,12,12,11,4,12,12,12,12,12,12,12,3,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,17,17,17,17,17,17,12,12,17,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,3,17,3,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,5,5,5,11,8,3,12,11,11,11,11,10,11,0,10,11,11,11,10,18,18,18,18,3,3,3,3,3,3,18,18,3,18,18,3,12,12,12,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,13,3,13,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,0,0,10,10,0,10,10,18,3,3,3,18,18,3,18,18,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,5,11,11,11,12,5,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,13,13,13,3,3,17,4,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,5,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,0,0,0,5,0,0,12,12,12,12,17,17,3,3,3,3,8,17,6,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,8,6,3,3,12,10,11,11,11,11,11,11,11,12,10,11,11,11,12,11,5,5,5,11,11,11,11,5,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,7,7,5,5,5,13,13,3,3,3,4,3,18,18,18,18,12,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,5,5,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,12,11,12,11,11,11,11,11,12,11,11,11,5,11,11,5,5,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,18,18,18,3,3,3,18,18,3,3,18,18,18,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,5,5,5,5,5,0,0,0,0,3,3,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,11,8,3,3,3,11,11,11,11,11,11,11,11,11,12,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,10,11,11,12,3,3,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,12,3,3,3,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,0,0,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,12,5,5,5,11,11,5,0,5,11,5,11,0,11,0,0,0,0,5,0,0,11,11,11,3,11,11,11,11,11,12,12,12,11,11,11,11,12,12,17,3,3,3,3,3,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,5,12,11,12,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,11,3,3,3,12,12,11,5,11,11,11,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,5,12,5,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,12,12,11,11,12,12,11,11,11,11,11,11,12,11,11,11,12,12,12,11,12,12,12,12,12,12,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,12,5,5,5,5,5,5,11,11,11,11,12,11,11,11,5,5,11,5,11,11,11,11,11,11,18,18,18,18,18,3,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,13,13,13,3,3,4,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,11,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,17,17,3,3,12,5,11,11,11,11,5,11,11,11,12,11,11,5,5,11,11,11,5,12,11,11,11,11,11,11,0,5,5,5,5,5,5,5,5,5,3,11,11,11,11,11,11,12,12,12,11,12,12,11,11,11,12],"n":["DEV_NON_BLOCKING_ACCESS","__private_field","board","borrow","borrow_mut","clear_bss","config","console","deref","drivers","from","fs","into","lang_items","mm","print","println","rust_main","sbi","sync","syscall","task","timer","trap","try_from","try_into","type_id","BlockDeviceImpl","CLOCK_FREQ","CharDeviceImpl","MMIO","VIRT_PLIC","VIRT_UART","device_init","irq_handler","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","MEMORY_END","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT_BASE","USER_STACK_SIZE","Stdout","borrow","borrow_mut","from","into","print","try_from","try_into","type_id","write_str","block","chardev","plic","BLOCK_DEVICE","__private_field","block_device_test","borrow","borrow_mut","deref","from","into","sdcard","try_from","try_into","type_id","virtio_blk","0","ACMD23","ACMD41","CID_CRC","CMD","CMD0","CMD10","CMD12","CMD16","CMD17","CMD18","CMD24","CMD25","CMD55","CMD58","CMD59","CMD8","CMD9","CMDFailed","CSDStruct","CSD_CRC","CS_HIGH","CS_LOW","CannotGetCardInfo","CardBlockSize","CardCapacity","CardCapacityStatusNotSet","CardComdClasses","ContentProtectAppli","CopyFlag","DSRImpl","DeviceSize","ECC","EraseGrMul","EraseGrSize","FileFormat","FileFormatGroup","HIGH_SPEED_ENABLE","InitError","ManDeflECC","ManufactDate","ManufacturerID","MaxBusClkFrec","MaxWrBlockLen","NSAC","OEM_AppliID","PERIPHERALS","PartBlockRead","PermWrProtect","ProdName1","ProdName2","ProdRev","ProdSN","RdBlockLen","RdBlockMisalign","Reserved1","Reserved1","Reserved2","Reserved2","Reserved3","Reserved4","SDCard","SDCardCID","SDCardCSD","SDCardInfo","SDCardWrapper","SD_CS","SD_CS_GPIONUM","SD_START_DATA_MULTIPLE_BLOCK_READ","SD_START_DATA_MULTIPLE_BLOCK_WRITE","SD_START_DATA_SINGLE_BLOCK_READ","SD_START_DATA_SINGLE_BLOCK_WRITE","SD_cid","SD_csd","SEC_LEN","SysSpecVersion","TAAC","TempWrProtect","WrBlockMisalign","WrProtectGrEnable","WrProtectGrSize","WrSpeedFact","WriteBlockPaPartial","__private_field","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cs_gpionum","deref","end_cmd","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_cardinfo","get_cidregister","get_csdregister","get_dataresponse","get_response","handle_irq","init","init_sdcard","into","into","into","into","into","into","into","into","io_init","lowlevel_init","new","new","read_block","read_data","read_sector","send_cmd","spi","spi_cs","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","write_block","write_data","write_sector","0","0","1","QUEUE_FRAMES","VIRTIO0","VirtIOBlock","__private_field","borrow","borrow","borrow_mut","borrow_mut","condvars","deref","from","from","handle_irq","into","into","new","read_block","try_from","try_from","try_into","try_into","type_id","type_id","virtio_blk","virtio_dma_alloc","virtio_dma_dealloc","virtio_phys_to_virt","virtio_virt_to_phys","write_block","CharDevice","UART","__private_field","borrow","borrow_mut","deref","from","handle_irq","into","ns16550a","read","try_from","try_into","type_id","write","AUX_OUTPUT1","AUX_OUTPUT2","DATA_AVAILABLE","DATA_TERMINAL_READY","IER","LSR","MCR","NS16550a","NS16550aInner","NS16550aRaw","REQUEST_TO_SEND","RX_AVAILABLE","ReadWithoutDLAB","THR_EMPTY","TX_EMPTY","WriteWithoutDLAB","_padding0","_padding1","_padding1","_padding2","all","all","all","base_addr","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","complement","complement","complement","condvar","contains","contains","contains","difference","difference","difference","empty","empty","empty","eq","eq","eq","extend","extend","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_iter","from_iter","from_iter","handle_irq","hash","hash","hash","ier","ier","iir","init","inner","insert","insert","insert","intersection","intersection","intersection","intersects","intersects","intersects","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_empty","is_empty","is_empty","lcr","lcr","lsr","lsr","mcr","mcr","ne","ne","ne","new","new","not","not","not","ns16550a","partial_cmp","partial_cmp","partial_cmp","rbr","read","read","read_buffer","read_end","remove","remove","remove","set","set","set","sub","sub","sub","sub_assign","sub_assign","sub_assign","symmetric_difference","symmetric_difference","symmetric_difference","thr","to_owned","to_owned","to_owned","toggle","toggle","toggle","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","union","union","write","write","write_end","IntrTargetPriority","Machine","PLIC","Supervisor","base_addr","borrow","borrow","borrow_mut","borrow_mut","claim","claim_comp_ptr_of_hart_with_priority","clone","clone_into","complete","disable","enable","enable_ptr","from","from","get_priority","get_threshold","hart_id_with_priority","into","into","new","priority_ptr","set_priority","set_threshold","supported_number","threshold_ptr_of_hart_with_priority","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","File","inode","pipe","read","readable","stdio","writable","write","CREATE","OSInode","OSInodeInner","OpenFlags","RDONLY","RDWR","ROOT_INODE","TRUNC","WRONLY","__private_field","all","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","cmp","complement","contains","deref","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","inner","inode","insert","intersection","intersects","into","into","into","into","is_all","is_empty","list_apps","ne","new","not","offset","open_file","partial_cmp","read","read_all","read_write","readable","readable","remove","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","union","writable","writable","write","Empty","Full","Normal","Pipe","PipeRingBuffer","RING_BUFFER_SIZE","RingBufferStatus","all_write_ends_closed","arr","available_read","available_write","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buffer","clone","clone_into","eq","from","from","from","head","into","into","into","make_pipe","new","read","read_byte","read_end_with_buffer","readable","readable","set_write_end","status","tail","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","writable","writable","write","write_byte","write_end","write_end_with_buffer","Stdin","Stdout","borrow","borrow","borrow_mut","borrow_mut","from","from","into","into","read","read","readable","readable","try_from","try_from","try_into","try_into","type_id","type_id","writable","writable","write","write","backtrace","panic","address","frame_allocator","heap_allocator","init","memory_set","page_table","0","0","0","0","PA_WIDTH_SV39","PPN_WIDTH_SV39","PhysAddr","PhysPageNum","SimpleRange","SimpleRangeIterator","StepByOne","VA_WIDTH_SV39","VPNRange","VPN_WIDTH_SV39","VirtAddr","VirtPageNum","aligned","aligned","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","ceil","ceil","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","current","end","eq","eq","eq","eq","floor","floor","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bytes_array","get_end","get_mut","get_mut","get_pte_array","get_ref","get_start","indexes","into","into","into","into","into","into","into_iter","into_iter","l","ne","ne","ne","ne","new","new","next","page_offset","page_offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","step","step","step","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","FRAME_ALLOCATOR","FrameAllocator","FrameAllocatorImpl","FrameTracker","StackFrameAllocator","__private_field","alloc","alloc","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","current","dealloc","dealloc","deref","drop","end","fmt","frame_alloc","frame_allocator_test","frame_dealloc","from","from","from","init","init_frame_allocator","into","into","into","new","new","new","ppn","recycled","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","HEAP_ALLOCATOR","HEAP_SPACE","handle_alloc_error","heap_test","init_heap","Framed","Identical","KERNEL_SPACE","MapArea","MapPermission","MapType","MemorySet","R","U","W","X","__private_field","activate","all","areas","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","complement","contains","copy_data","data_frames","deref","difference","ebss","edata","ekernel","empty","eq","eq","erodata","etext","extend","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_another","from_bits","from_bits_truncate","from_bits_unchecked","from_elf","from_existed_user","from_iter","hash","insert","insert_framed_area","intersection","intersects","into","into","into","into","into","is_all","is_empty","kernel_token","map","map_one","map_perm","map_trampoline","map_type","ne","new","new_bare","new_kernel","not","page_table","partial_cmp","push","recycle_data_pages","remap_test","remove","remove_area_with_start_vpn","sbss_with_stack","sdata","set","srodata","stext","strampoline","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unmap_one","vpn_range","A","D","G","PTEFlags","PageTable","PageTableEntry","R","U","UserBuffer","UserBufferIterator","V","W","X","all","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffers","buffers","clone","clone","clone_into","clone_into","cmp","complement","contains","current_buffer","current_idx","difference","empty","empty","eq","executable","extend","find_pte","find_pte_create","flags","fmt","fmt","fmt","fmt","fmt","frames","from","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","from_token","hash","insert","intersection","intersects","into","into","into","into","into","into_iter","into_iter","is_all","is_empty","is_valid","len","map","ne","new","new","new","next","not","partial_cmp","ppn","readable","remove","root_ppn","set","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","translate_va","translated_byte_buffer","translated_ref","translated_refmut","translated_str","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","writable","SBI_CLEAR_IPI","SBI_CONSOLE_GETCHAR","SBI_CONSOLE_PUTCHAR","SBI_REMOTE_FENCE_I","SBI_REMOTE_SFENCE_VMA","SBI_REMOTE_SFENCE_VMA_ASID","SBI_SEND_IPI","SBI_SET_TIMER","SBI_SHUTDOWN","console_getchar","console_putchar","sbi_call","set_timer","shutdown","condvar","mutex","semaphore","up","Condvar","CondvarInner","borrow","borrow","borrow_mut","borrow_mut","from","from","inner","into","into","new","signal","try_from","try_from","try_into","try_into","type_id","type_id","wait_no_sched","wait_queue","wait_with_mutex","Mutex","MutexBlocking","MutexBlockingInner","MutexSpin","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","from","from","from","inner","into","into","into","lock","lock","lock","locked","locked","new","new","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unlock","unlock","unlock","wait_queue","Semaphore","SemaphoreInner","borrow","borrow","borrow_mut","borrow_mut","count","down","from","from","inner","into","into","new","try_from","try_from","try_into","try_into","type_id","type_id","up","wait_queue","0","INTR_MASKING_INFO","IntrMaskingInfo","UPIntrFreeCell","UPIntrRefMut","UPSafeCellRaw","__private_field","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref_mut","drop","enter","exclusive_access","exclusive_session","exit","from","from","from","from","from","get_mut","inner","inner","into","into","into","into","into","nested_level","new","new","new","sie_before_masking","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","SYSCALL_CLOSE","SYSCALL_CONDVAR_CREATE","SYSCALL_CONDVAR_SIGNAL","SYSCALL_CONDVAR_WAIT","SYSCALL_DUP","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_GETPID","SYSCALL_GETTID","SYSCALL_GET_TIME","SYSCALL_KILL","SYSCALL_MUTEX_CREATE","SYSCALL_MUTEX_LOCK","SYSCALL_MUTEX_UNLOCK","SYSCALL_OPEN","SYSCALL_PIPE","SYSCALL_READ","SYSCALL_SEMAPHORE_CREATE","SYSCALL_SEMAPHORE_DOWN","SYSCALL_SEMAPHORE_UP","SYSCALL_SLEEP","SYSCALL_THREAD_CREATE","SYSCALL_WAITPID","SYSCALL_WAITTID","SYSCALL_WRITE","SYSCALL_YIELD","fs","process","sync","syscall","thread","sys_close","sys_dup","sys_open","sys_pipe","sys_read","sys_write","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_kill","sys_waitpid","sys_yield","sys_condvar_create","sys_condvar_signal","sys_condvar_wait","sys_mutex_create","sys_mutex_lock","sys_mutex_unlock","sys_semaphore_create","sys_semaphore_down","sys_semaphore_up","sys_sleep","sys_gettid","sys_thread_create","sys_waittid","INITPROC","__private_field","add_initproc","block_current_and_run_next","block_current_task","borrow","borrow_mut","check_signals_of_current","context","current_add_signal","deref","exit_current_and_run_next","from","id","into","manager","process","processor","signal","suspend_current_and_run_next","switch","task","try_from","try_into","type_id","TaskContext","borrow","borrow_mut","from","goto_trap_return","into","ra","s","sp","try_from","try_into","type_id","zero_init","0","0","IDLE_PID","KSTACK_ALLOCATOR","KernelStack","PID_ALLOCATOR","PidHandle","RecycleAllocator","TaskUserRes","__private_field","__private_field","alloc","alloc_tid","alloc_user_res","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","current","dealloc","dealloc_tid","dealloc_user_res","deref","deref","drop","drop","drop","from","from","from","from","from","from","get_top","into","into","into","into","into","into","kernel_stack_position","kstack_alloc","new","new","pid_alloc","process","push_on_top","recycled","tid","trap_cx_bottom_from_tid","trap_cx_ppn","trap_cx_user_va","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","ustack_base","ustack_base","ustack_bottom_from_tid","ustack_top","PID2PCB","TASK_MANAGER","TaskManager","__private_field","__private_field","add","add_task","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","fetch","fetch_task","from","from","from","insert_into_pid2process","into","into","into","new","pid2process","ready_queue","remove_from_pid2process","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","ProcessControlBlock","ProcessControlBlockInner","alloc_fd","alloc_tid","borrow","borrow","borrow_mut","borrow_mut","children","condvar_list","dealloc_tid","exec","exit_code","fd_table","fork","from","from","get_task","get_user_token","getpid","inner","inner_exclusive_access","into","into","is_zombie","memory_set","mutex_list","new","parent","pid","semaphore_list","signals","task_res_allocator","tasks","thread_count","try_from","try_from","try_into","try_into","type_id","type_id","PROCESSOR","Processor","__private_field","borrow","borrow","borrow_mut","borrow_mut","current","current","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","from","from","get_idle_task_cx_ptr","idle_task_cx","into","into","new","run_tasks","schedule","take_current","take_current_task","try_from","try_from","try_into","try_into","type_id","type_id","SIGABRT","SIGFPE","SIGILL","SIGINT","SIGSEGV","SignalFlags","all","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow_mut","check_error","clone","clone_into","cmp","complement","contains","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","insert","intersection","intersects","into","is_all","is_empty","ne","not","partial_cmp","remove","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_into","type_id","union","__switch","Blocking","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","eq","exit_code","from","from","from","get_status","get_trap_cx","get_user_token","inner","inner_exclusive_access","into","into","into","kstack","new","process","res","task_cx","task_status","to_owned","trap_cx_ppn","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","MSEC_PER_SEC","TICKS_PER_SEC","TIMERS","TimerCondVar","__private_field","add_timer","borrow","borrow","borrow_mut","borrow_mut","check_timer","cmp","deref","eq","expire_ms","from","from","get_time","get_time_ms","into","into","partial_cmp","set_next_trigger","task","try_from","try_from","try_into","try_into","type_id","type_id","context","disable_supervisor_interrupt","enable_supervisor_interrupt","enable_timer_interrupt","init","set_kernel_trap_entry","set_user_trap_entry","trap_from_kernel","trap_handler","trap_return","TrapContext","app_init_context","borrow","borrow_mut","fmt","from","into","kernel_satp","kernel_sp","sepc","set_sp","sstatus","trap_handler","try_from","try_into","type_id","x"],"q":["os","","","","","","","","","","","","","","","","","","","","","","","","","","","os::board","","","","","","","","os::config","","","","","","","","os::console","","","","","","","","","","os::drivers","","","os::drivers::block","","","","","","","","","","","","","os::drivers::block::sdcard","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::block::sdcard::InitError","","","os::drivers::block::virtio_blk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::chardev","","","","","","","","","","","","","","","os::drivers::chardev::ns16550a","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::plic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs","","","","","","","","os::fs::inode","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs::pipe","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs::stdio","","","","","","","","","","","","","","","","","","","","","","","","os::lang_items","","os::mm","","","","","","os::mm::address","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::frame_allocator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::heap_allocator","","","","","os::mm::memory_set","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::page_table","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sbi","","","","","","","","","","","","","","os::sync","","","","os::sync::condvar","","","","","","","","","","","","","","","","","","","","","","os::sync::mutex","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sync::semaphore","","","","","","","","","","","","","","","","","","","","","","os::sync::up","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall::fs","","","","","","os::syscall::process","","","","","","","","os::syscall::sync","","","","","","","","","","os::syscall::thread","","","os::task","","","","","","","","","","","","","","","","","","","","","","","","","os::task::context","","","","","","","","","","","","","os::task::id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::manager","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::process","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::signal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::switch","os::task::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::timer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::trap","","","","","","","","","","os::trap::context","","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","Number of blocks to erase (SDC) ","Initiate initialization process (SDC) ","","SD commands ","Software reset ","Read CID register ","Stop to read data ","Change R/W block size ","Read block ","Read multiple blocks ","Write a block ","Write multiple blocks ","Leading command for ACMD* ","Read OCR ","Enable/disable CRC check ","Check voltage range (SDC V2) ","Read CSD register ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Card Identification Data: CID Register","Card Specific Data: CSD Register","Card information","","CS value passed to SPI controller, this is a dummy value …","GPIOHS GPIO number to use for controlling the SD card CS …","Data token start byte, Start Multiple Block Read ","Data token start byte, Start Multiple Block Write ","Data token start byte, Start Single Block Read ","Data token start byte, Start Single Block Write ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Connect pins to internal functions ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","InterruptEnableRegister","LineStatusRegister","Model Control Register","","","","","","","","","","ignore FCR","ignore MSR","ignore other registers","ignore SCR","Returns the set containing all flags.","Returns the set containing all flags.","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Adds the set of flags.","Adds the set of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","","","","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Toggles the set of flags.","Toggles the set of flags.","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns an empty set of flags.","Returns an empty set of flags.","Returns an empty set of flags.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","","","","","","","","interrupt enable register","interrupt enable register","interrupt identification register","","","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","line control register","line control register","line status register","line status register","model control register","modem control register","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","","","","receiver buffer register","","","","","Removes the specified flags in-place.","Removes the specified flags in-place.","Removes the specified flags in-place.","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","transmitter holding register","","","","Toggles the specified flags in-place.","Toggles the specified flags in-place.","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","Returns the complement of this set of flags.","","","","","","Do not check validity for simplicity Return (readable, …","","","Removes the specified flags in-place.","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (read_end, write_end)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Definitions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","data: start-aligned but maybe with shorter length assume …","","","Returns the difference between the flags in self and other.","","","","Returns an empty set of flags.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Include sections in elf and trampoline, also returns …","","","","Inserts the specified flags in-place.","Assume that no conflicts.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","Mention that trampoline is not collected by areas.","","","","","Without kernel stacks.","Returns the complement of this set of flags.","","","","","","Removes the specified flags in-place.","","","","Inserts or removes the specified flags depending on the …","","","","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","Returns the set containing all flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","Temporarily used to get arguments from user space.","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","","","","","Returns the complement of this set of flags.","","","","Removes the specified flags in-place.","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","Load a string from other address spaces into kernel space …","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Panic if the data has been borrowed.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","inner data","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","","","","","thread does not exist, return -1 thread has not exited …","","","","","This function must be followed by a schedule","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (bottom, top) of a kernel stack in kernel space.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Only support processes with a single thread.","","","Only support processes with a single thread.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","Returns the complement of this set of flags.","","Removes the specified flags in-place.","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","",""],"i":[0,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,2,2,2,2,0,0,0,0,3,0,3,3,3,3,3,0,3,3,3,0,4,5,5,6,0,5,5,5,5,5,5,5,5,5,5,5,5,5,7,8,8,9,9,7,10,10,7,8,8,8,8,8,8,8,8,8,8,9,0,8,6,6,8,8,8,6,0,8,8,6,6,6,6,8,8,8,6,8,6,8,8,0,0,0,0,0,0,0,0,0,0,0,10,10,0,8,8,8,8,8,8,8,8,11,9,4,5,7,8,6,10,11,9,4,5,7,8,6,10,11,5,7,8,6,10,5,7,8,6,10,9,11,9,5,5,7,8,6,10,9,4,5,7,8,6,10,11,9,9,9,9,9,4,9,0,9,4,5,7,8,6,10,11,0,9,9,4,4,9,9,9,9,9,5,7,8,6,10,9,4,5,7,8,6,10,11,9,4,5,7,8,6,10,11,9,4,5,7,8,6,10,11,4,9,9,12,13,12,0,0,0,14,15,14,15,14,15,14,15,14,15,15,14,15,15,15,14,15,14,15,14,15,0,0,0,0,15,0,0,16,16,16,16,16,17,16,0,17,16,16,16,17,18,18,19,18,0,0,0,0,0,0,18,20,0,19,20,0,21,22,21,22,20,19,18,23,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,22,21,23,24,25,20,19,18,22,21,23,24,25,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,25,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,20,20,20,20,20,19,19,19,19,19,18,18,18,18,18,22,21,23,24,25,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,25,20,19,18,22,21,22,23,25,20,19,18,20,19,18,20,19,18,22,21,23,24,25,20,19,18,20,19,18,20,19,18,22,21,22,21,22,21,20,19,18,23,25,20,19,18,24,20,19,18,22,23,25,24,23,20,19,18,20,19,18,20,19,18,20,19,18,20,19,18,21,20,19,18,20,19,18,22,21,23,24,25,20,19,18,22,21,23,24,25,20,19,18,22,21,23,24,25,20,19,18,20,19,18,23,25,23,0,26,0,26,27,27,26,27,26,27,27,26,26,27,27,27,27,27,26,27,27,27,27,26,27,27,27,27,26,27,26,27,26,27,26,27,26,0,0,0,28,28,0,28,28,29,0,0,0,29,29,0,29,29,30,29,29,29,29,29,29,29,29,29,31,32,30,29,31,32,30,29,29,29,29,29,29,30,29,29,29,29,29,29,29,29,29,31,32,30,29,29,29,29,29,29,31,32,29,29,29,31,32,30,29,29,29,0,29,31,29,32,0,29,31,31,29,31,31,29,29,29,29,29,29,29,31,32,30,29,31,32,30,29,31,32,30,29,29,31,31,31,33,33,33,0,0,0,0,34,34,34,34,35,34,33,35,34,33,35,33,33,33,35,34,33,34,35,34,33,0,34,35,34,35,35,35,34,34,34,33,35,34,33,35,34,33,35,34,33,35,35,35,34,34,35,0,0,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,36,37,0,0,0,0,0,0,0,0,38,39,40,41,0,0,0,0,0,0,0,0,0,0,0,0,38,39,42,38,39,40,41,43,42,38,39,40,41,43,38,39,38,39,40,41,43,38,39,40,41,43,38,39,40,41,42,42,38,39,40,41,38,39,38,39,40,41,42,38,38,38,39,39,39,40,40,40,41,41,41,43,40,43,38,40,40,38,43,41,42,38,39,40,41,43,42,43,43,38,39,40,41,42,43,42,38,39,38,39,40,41,43,44,40,41,38,39,40,41,43,42,38,39,40,41,43,42,38,39,40,41,43,42,38,39,40,41,43,0,0,0,0,0,45,46,47,48,47,45,48,47,45,47,46,47,45,48,47,48,0,0,0,48,47,45,47,0,48,47,45,46,48,47,48,47,48,47,45,48,47,45,48,47,45,0,0,0,0,0,49,49,0,0,0,0,0,50,50,50,50,51,52,50,52,50,50,50,50,50,50,50,50,52,53,51,49,50,52,53,51,49,50,49,50,49,50,50,50,50,53,53,51,50,0,0,0,50,49,50,0,0,50,49,50,50,50,50,50,52,53,51,49,50,53,50,50,50,52,52,50,50,50,52,50,50,52,53,51,49,50,50,50,0,53,53,53,52,53,50,53,52,52,50,52,50,52,52,0,50,52,0,0,50,0,0,0,50,50,50,49,50,50,52,52,52,53,51,49,50,52,53,51,49,50,52,53,51,49,50,50,53,53,53,54,54,54,0,0,0,54,54,0,0,54,54,54,54,54,54,54,54,54,54,55,54,54,56,57,58,54,55,56,57,58,54,55,57,58,54,55,54,55,54,54,54,58,58,54,54,55,54,55,54,56,56,55,54,54,54,54,54,56,56,57,58,54,55,54,54,54,54,56,54,54,54,54,56,57,58,54,55,57,58,54,54,55,57,56,54,56,57,55,58,54,54,55,55,54,56,54,54,54,54,54,55,54,56,56,56,0,0,0,0,56,57,58,54,55,56,57,58,54,55,56,57,58,54,55,54,56,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,60,59,60,59,60,59,59,60,59,59,59,60,59,60,59,60,59,60,59,0,0,0,0,61,62,63,61,62,63,61,62,63,62,61,62,63,64,61,62,61,63,61,62,61,62,63,61,62,63,61,62,63,64,61,62,63,0,0,65,66,65,66,66,65,65,66,65,65,66,65,65,66,65,66,65,66,65,66,67,0,0,0,0,0,68,69,70,71,67,68,69,70,71,67,68,67,68,67,67,70,71,71,70,69,70,71,67,68,69,69,71,69,70,71,67,68,70,69,70,71,70,69,70,71,67,68,69,70,71,67,68,69,70,71,67,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,0,0,0,72,72,0,0,0,72,0,72,0,72,0,0,0,0,0,0,0,72,72,72,0,73,73,73,73,73,73,73,73,73,73,73,73,74,75,0,0,0,0,0,0,0,76,77,78,79,79,78,74,75,79,76,77,78,74,75,79,76,77,78,78,79,79,76,77,74,75,79,78,74,75,79,76,77,75,78,74,75,79,76,77,0,0,78,79,0,79,75,78,79,0,79,79,78,74,75,79,76,77,78,74,75,79,76,77,78,74,75,79,76,77,79,79,0,79,0,0,0,80,81,82,0,82,80,81,82,80,81,80,81,82,0,82,80,81,0,82,80,81,82,0,82,0,82,80,81,82,80,81,82,80,81,0,0,83,83,84,83,84,83,83,83,83,84,83,83,84,84,83,83,83,84,84,84,84,83,83,83,83,84,83,84,83,83,83,83,83,84,83,84,83,84,83,0,0,85,86,85,86,85,86,86,0,0,0,0,0,0,85,86,85,86,86,86,85,86,0,0,86,0,86,85,86,85,86,85,87,87,87,87,87,0,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,0,88,88,88,0,0,0,89,90,88,89,90,88,88,88,88,90,89,90,88,90,90,89,89,89,89,90,88,89,89,89,90,90,90,88,90,89,90,88,89,90,88,89,90,88,0,0,0,0,91,0,92,91,92,91,0,92,91,92,92,92,91,0,0,92,91,92,0,92,92,91,92,91,92,91,0,0,0,0,0,0,0,0,0,0,0,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93],"f":[null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,null,[[["",0]],["upintrfreecell",3]],null,[[]],null,[[]],null,null,null,null,[[],["never",0]],null,null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[]],[[]],null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[["arguments",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["str",0]],["result",6]],null,null,null,null,null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["arc",3]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],[[["",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["cmd",4]],[[["",0]],["initerror",4]],[[["",0]],["sdcardcsd",3]],[[["",0]],["sdcardcid",3]],[[["",0]],["sdcardinfo",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[["",0]],["upintrfreecell",3]],[[["",0]]],[[["",0],["cmd",4]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["result",4,[["sdcardinfo",3]]]],[[["",0]],["result",4,[["sdcardcid",3]]]],[[["",0]],["result",4,[["sdcardcsd",3]]]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],[[["",0]]],[[["",0]],["result",4,[["sdcardinfo",3],["initerror",4]]]],[[],["sdcard",3,[["spiimpl",3,[["spi0",3]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["u32",0],["u8",0]]],[[]],[[["",0],["usize",0]]],[[["",0]]],[[["",0],["u32",0]],["result",4]],[[["",0],["cmd",4],["u32",0],["u8",0]]],null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["usize",0]]],[[["",0]]],[[["",0],["u32",0]],["result",4]],null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["upintrfreecell",3]],[[]],[[]],[[["",0]]],[[]],[[]],[[]],[[["",0],["usize",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[["usize",0]],["physaddr",3]],[[["physaddr",3],["usize",0]],["i32",0]],[[["physaddr",3]],["virtaddr",3]],[[["virtaddr",3]],["physaddr",3]],[[["",0],["usize",0]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["arc",3]],[[]],[[["",0]]],[[]],null,[[["",0]],["u8",0]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["u8",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["ier",3]]],[[["lsr",3]]],[[["mcr",3]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],null,null,null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["ier",3]],[[["",0]],["lsr",3]],[[["",0]],["mcr",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["ier",3]],["ordering",4]],[[["",0],["lsr",3]],["ordering",4]],[[["",0],["mcr",3]],["ordering",4]],[[]],[[]],[[]],null,[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["ier",3]],["bool",0]],[[["",0],["lsr",3]],["bool",0]],[[["",0],["mcr",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["intoiterator",8]]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["u8",0]],["option",4]],[[["u8",0]],["option",4]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["intoiterator",8]]],[[["intoiterator",8]]],[[["intoiterator",8]]],[[["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[["",0]]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],null,null,null,null,null,null,[[["",0],["ier",3]],["bool",0]],[[["",0],["lsr",3]],["bool",0]],[[["",0],["mcr",3]],["bool",0]],[[["usize",0]]],[[]],[[]],[[]],[[]],null,[[["",0],["ier",3]],["option",4,[["ordering",4]]]],[[["",0],["lsr",3]],["option",4,[["ordering",4]]]],[[["",0],["mcr",3]],["option",4,[["ordering",4]]]],null,[[["",0]],["option",4,[["u8",0]]]],[[["",0]],["u8",0]],null,[[["",0]],["readwithoutdlab",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0],["bool",0]]],[[["",0],["bool",0]]],[[["",0],["bool",0]]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[["",0],["u8",0]]],[[["",0],["u8",0]]],[[["",0]],["writewithoutdlab",3]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["usize",0],["intrtargetpriority",4]],["u32",0]],[[["",0],["usize",0],["intrtargetpriority",4]]],[[["",0]],["intrtargetpriority",4]],[[["",0],["",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["u32",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[]],[[]],[[["",0],["usize",0]],["u32",0]],[[["",0],["usize",0],["intrtargetpriority",4]],["u32",0]],[[["usize",0],["intrtargetpriority",4]],["usize",0]],[[]],[[]],[[["usize",0]]],[[["",0],["usize",0]]],[[["",0],["usize",0],["u32",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["u32",0]]],[[],["usize",0]],[[["",0],["usize",0],["intrtargetpriority",4]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["bool",0]],null,[[["",0]],["bool",0]],[[["",0],["userbuffer",3]],["usize",0]],null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[["",0]]],[[["openflags",3]]],[[["",0]]],[[["",0]],["u32",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["openflags",3]],[[["",0],["",0]]],[[["",0],["openflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[["",0]],["arc",3]],[[]],[[]],[[["",0],["openflags",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["u32",0]],["option",4]],[[["u32",0]]],[[["u32",0]]],[[["intoiterator",8]]],[[["",0],["",0]]],null,null,[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[["",0],["openflags",3]],["bool",0]],[[["bool",0],["bool",0],["arc",3,[["inode",3]]]]],[[]],null,[[["str",0],["openflags",3]],["option",4,[["arc",3,[["osinode",3]]]]]],[[["",0],["openflags",3]],["option",4,[["ordering",4]]]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["vec",3,[["u8",0]]]],[[["",0]]],[[["",0]],["bool",0]],null,[[["",0]]],[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0]],["bool",0]],null,[[["",0],["userbuffer",3]],["usize",0]],null,null,null,null,null,null,null,[[["",0]],["bool",0]],null,[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["ringbufferstatus",4]],[[["",0],["",0]]],[[["",0],["ringbufferstatus",4]],["bool",0]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["u8",0]],[[["arc",3,[["upintrfreecell",3,[["piperingbuffer",3]]]]]]],[[["",0]],["bool",0]],null,[[["",0],["arc",3]]],null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["bool",0]],null,[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["u8",0]]],null,[[["arc",3,[["upintrfreecell",3,[["piperingbuffer",3]]]]]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["userbuffer",3]],["usize",0]],[[]],[[["panicinfo",3]],["never",0]],null,null,null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0]],["physaddr",3]],[[["",0]],["virtaddr",3]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0]],["simplerange",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["physaddr",3]],["ordering",4]],[[["",0],["virtaddr",3]],["ordering",4]],[[["",0],["physpagenum",3]],["ordering",4]],[[["",0],["virtpagenum",3]],["ordering",4]],null,null,[[["",0],["physaddr",3]],["bool",0]],[[["",0],["virtaddr",3]],["bool",0]],[[["",0],["physpagenum",3]],["bool",0]],[[["",0],["virtpagenum",3]],["bool",0]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["physpagenum",3]]],[[["usize",0]]],[[]],[[["usize",0]]],[[["virtpagenum",3]]],[[]],[[]],[[["physaddr",3]]],[[["usize",0]]],[[["virtaddr",3]]],[[["usize",0]]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[["",0]],["",0]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["physaddr",3]],["bool",0]],[[["",0],["virtaddr",3]],["bool",0]],[[["",0],["physpagenum",3]],["bool",0]],[[["",0],["virtpagenum",3]],["bool",0]],[[]],[[]],[[["",0]],["option",4]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0],["physaddr",3]],["option",4,[["ordering",4]]]],[[["",0],["virtaddr",3]],["option",4,[["ordering",4]]]],[[["",0],["physpagenum",3]],["option",4,[["ordering",4]]]],[[["",0],["virtpagenum",3]],["option",4,[["ordering",4]]]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[["",0]],["option",4,[["physpagenum",3]]]],[[["",0]],["option",4,[["physpagenum",3]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["physpagenum",3]]],[[["",0],["physpagenum",3]]],[[["",0]],["upintrfreecell",3]],[[["",0]]],null,[[["",0],["formatter",3]],["result",6]],[[],["option",4,[["frametracker",3]]]],[[]],[[["physpagenum",3]]],[[]],[[]],[[]],[[["",0],["physpagenum",3],["physpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[["physpagenum",3]]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[["layout",3]],["never",0]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],[[]],null,[[]],[[["",0]]],[[["mappermission",3]]],[[["",0]]],[[["",0]],["u8",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["maptype",4]],[[["",0]],["mappermission",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["mappermission",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[["",0],["pagetable",3]]],null,[[["",0]],["arc",3]],[[]],null,null,null,[[]],[[["",0],["maptype",4]],["bool",0]],[[["",0],["mappermission",3]],["bool",0]],null,null,[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["maparea",3]]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[]],[[["memoryset",3]],["memoryset",3]],[[["intoiterator",8]]],[[["",0],["",0]]],[[["",0]]],[[["",0],["virtaddr",3],["virtaddr",3],["mappermission",3]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[],["usize",0]],[[["",0],["pagetable",3]]],[[["",0],["pagetable",3],["virtpagenum",3]]],null,[[["",0]]],null,[[["",0],["mappermission",3]],["bool",0]],[[["virtaddr",3],["virtaddr",3],["maptype",4],["mappermission",3]]],[[]],[[]],[[]],null,[[["",0],["mappermission",3]],["option",4,[["ordering",4]]]],[[["",0],["maparea",3],["option",4]]],[[["",0]]],[[]],[[["",0]]],[[["",0],["virtpagenum",3]]],null,null,[[["",0],["bool",0]]],null,null,null,[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0],["pagetable",3]]],[[["",0],["pagetable",3],["virtpagenum",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[["",0]]],[[["pteflags",3]]],[[["",0]]],[[["",0]],["u8",0]],null,null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[["",0]],["pteflags",3]],[[["",0]],["pagetableentry",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["pteflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],null,null,[[]],[[]],[[]],[[["",0],["pteflags",3]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0]],["pteflags",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[]],[[]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[["intoiterator",8]]],[[["usize",0]]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3],["physpagenum",3],["pteflags",3]]],[[["",0],["pteflags",3]],["bool",0]],[[]],[[["vec",3]]],[[["physpagenum",3],["pteflags",3]]],[[["",0]],["option",4]],[[]],[[["",0],["pteflags",3]],["option",4,[["ordering",4]]]],[[["",0]],["physpagenum",3]],[[["",0]],["bool",0]],[[["",0]]],null,[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0],["virtaddr",3]],["option",4,[["physaddr",3]]]],[[["usize",0],["usize",0]],["vec",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0],["virtpagenum",3]]],[[["",0]],["bool",0]],null,null,null,null,null,null,null,null,null,[[],["usize",0]],[[["usize",0]]],[[["usize",0],["usize",0],["usize",0],["usize",0]],["usize",0]],[[["usize",0]]],[[],["never",0]],null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],null,[[]],[[]],[[]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]]],null,[[["",0],["arc",3,[["mutex",8]]]]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],null,null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]]],[[["",0]]],[[["",0]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]]],[[]],[[]],null,[[]],[[]],[[["usize",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]]],null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[["",0]],["upsafecellraw",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["upintrrefmut",3]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],null,null,[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["usize",0]],["isize",0]],null,[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["u32",0]],["isize",0]],[[],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[],["isize",0]],[[["i32",0]],["never",0]],[[],["isize",0]],[[],["isize",0]],[[],["isize",0]],[[["usize",0],["u32",0]],["isize",0]],[[["isize",0]],["isize",0]],[[],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["bool",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["usize",0]],["i32",0]],null,null,[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[],["option",4]],null,[[["signalflags",3]]],[[["",0]],["arc",3]],[[["i32",0]]],[[]],null,[[]],null,null,null,null,[[]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["usize",0]]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["usize",0]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["usize",0]]],[[["",0]]],[[["",0]]],[[["",0]],["upintrfreecell",3]],[[["",0]],["upintrfreecell",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["usize",0]]],[[],["kernelstack",3]],[[]],[[["arc",3,[["processcontrolblock",3]]],["usize",0],["bool",0]]],[[],["pidhandle",3]],null,[[["",0]]],null,null,[[["usize",0]],["usize",0]],[[["",0]],["physpagenum",3]],[[["",0]],["usize",0]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["usize",0]],null,[[["usize",0],["usize",0]],["usize",0]],[[["",0]],["usize",0]],null,null,null,null,null,[[["",0],["arc",3,[["taskcontrolblock",3]]]]],[[["arc",3,[["taskcontrolblock",3]]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["upintrfreecell",3]],[[["",0]],["upintrfreecell",3]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[]],[[]],[[]],[[["usize",0],["arc",3,[["processcontrolblock",3]]]]],[[]],[[]],[[]],[[]],[[["usize",0]],["option",4,[["arc",3,[["processcontrolblock",3]]]]]],null,[[["usize",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[["",0],["usize",0]]],[[["arc",3],["vec",3,[["string",3]]]]],null,null,[[["arc",3]],["arc",3]],[[]],[[]],[[["",0],["usize",0]],["arc",3,[["taskcontrolblock",3]]]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],null,[[["",0]],["upintrrefmut",3,[["processcontrolblockinner",3]]]],[[]],[[]],null,null,null,[[],["arc",3]],null,null,null,null,null,null,[[["",0]],["usize",0]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],null,[[],["usize",0]],[[],["arc",3,[["processcontrolblock",3]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["trapcontext",3]],[[],["usize",0]],[[],["usize",0]],[[["",0]],["upintrfreecell",3]],[[]],[[]],[[["",0]]],null,[[]],[[]],[[]],[[]],[[]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[["",0]]],[[["signalflags",3]]],[[["",0]]],[[["",0]],["u32",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["option",4]],[[["",0]],["signalflags",3]],[[["",0],["",0]]],[[["",0],["signalflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[["",0],["signalflags",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["u32",0]],["option",4]],[[["u32",0]]],[[["u32",0]]],[[["intoiterator",8]]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["signalflags",3]],["bool",0]],[[]],[[["",0],["signalflags",3]],["option",4,[["ordering",4]]]],[[["",0]]],[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["taskstatus",4]],[[["",0],["",0]]],[[["",0],["taskstatus",4]],["bool",0]],null,[[]],[[]],[[]],[[["",0]],["taskstatus",4]],[[["",0]],["trapcontext",3]],[[["",0]],["usize",0]],null,[[["",0]],["upintrrefmut",3,[["taskcontrolblockinner",3]]]],[[]],[[]],[[]],null,[[["arc",3,[["processcontrolblock",3]]],["usize",0],["bool",0]]],null,null,null,null,[[["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,[[["usize",0],["arc",3,[["taskcontrolblock",3]]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0],["",0]],["ordering",4]],[[["",0]],["upintrfreecell",3]],[[["",0],["",0]],["bool",0]],null,[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0],["",0]],["option",4,[["ordering",4]]]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[["trapcontext",3]]],[[],["never",0]],[[],["never",0]],null,[[["usize",0],["usize",0],["usize",0],["usize",0],["usize",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,null,null,[[["",0],["usize",0]]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null],"p":[[3,"DEV_NON_BLOCKING_ACCESS"],[3,"Stdout"],[3,"BLOCK_DEVICE"],[3,"SDCardWrapper"],[4,"CMD"],[3,"SDCardCID"],[4,"InitError"],[3,"SDCardCSD"],[3,"SDCard"],[3,"SDCardInfo"],[3,"PERIPHERALS"],[13,"CMDFailed"],[13,"CardCapacityStatusNotSet"],[3,"QUEUE_FRAMES"],[3,"VirtIOBlock"],[3,"UART"],[8,"CharDevice"],[3,"MCR"],[3,"LSR"],[3,"IER"],[3,"WriteWithoutDLAB"],[3,"ReadWithoutDLAB"],[3,"NS16550aRaw"],[3,"NS16550aInner"],[3,"NS16550a"],[4,"IntrTargetPriority"],[3,"PLIC"],[8,"File"],[3,"OpenFlags"],[3,"ROOT_INODE"],[3,"OSInode"],[3,"OSInodeInner"],[4,"RingBufferStatus"],[3,"PipeRingBuffer"],[3,"Pipe"],[3,"Stdin"],[3,"Stdout"],[3,"PhysAddr"],[3,"VirtAddr"],[3,"PhysPageNum"],[3,"VirtPageNum"],[3,"SimpleRangeIterator"],[3,"SimpleRange"],[8,"StepByOne"],[3,"FRAME_ALLOCATOR"],[8,"FrameAllocator"],[3,"StackFrameAllocator"],[3,"FrameTracker"],[4,"MapType"],[3,"MapPermission"],[3,"KERNEL_SPACE"],[3,"MemorySet"],[3,"MapArea"],[3,"PTEFlags"],[3,"PageTableEntry"],[3,"PageTable"],[3,"UserBuffer"],[3,"UserBufferIterator"],[3,"Condvar"],[3,"CondvarInner"],[3,"MutexSpin"],[3,"MutexBlocking"],[3,"MutexBlockingInner"],[8,"Mutex"],[3,"Semaphore"],[3,"SemaphoreInner"],[3,"UPIntrRefMut"],[3,"INTR_MASKING_INFO"],[3,"UPSafeCellRaw"],[3,"IntrMaskingInfo"],[3,"UPIntrFreeCell"],[3,"INITPROC"],[3,"TaskContext"],[3,"PidHandle"],[3,"KernelStack"],[3,"PID_ALLOCATOR"],[3,"KSTACK_ALLOCATOR"],[3,"RecycleAllocator"],[3,"TaskUserRes"],[3,"TASK_MANAGER"],[3,"PID2PCB"],[3,"TaskManager"],[3,"ProcessControlBlockInner"],[3,"ProcessControlBlock"],[3,"PROCESSOR"],[3,"Processor"],[3,"SignalFlags"],[4,"TaskStatus"],[3,"TaskControlBlock"],[3,"TaskControlBlockInner"],[3,"TIMERS"],[3,"TimerCondVar"],[3,"TrapContext"]]}\ }'); if (window.initSearch) {window.initSearch(searchIndex)}; \ No newline at end of file diff --git a/main/src/os/drivers/block/virtio_blk.rs.html b/main/src/os/drivers/block/virtio_blk.rs.html index d71c857a..f497fe00 100644 --- a/main/src/os/drivers/block/virtio_blk.rs.html +++ b/main/src/os/drivers/block/virtio_blk.rs.html @@ -133,6 +133,7 @@ 128 129 130 +131
use super::BlockDevice;
 use crate::mm::{
     frame_alloc, frame_dealloc, kernel_token, FrameTracker, PageTable, PhysAddr, PhysPageNum,
@@ -155,7 +156,8 @@
 }
 
 lazy_static! {
-    static ref QUEUE_FRAMES: UPIntrFreeCell<Vec<FrameTracker>> = unsafe { UPIntrFreeCell::new(Vec::new()) };
+    static ref QUEUE_FRAMES: UPIntrFreeCell<Vec<FrameTracker>> =
+        unsafe { UPIntrFreeCell::new(Vec::new()) };
 }
 
 impl BlockDevice for VirtIOBlock {
diff --git a/main/src/os/drivers/chardev/ns16550a.rs.html b/main/src/os/drivers/chardev/ns16550a.rs.html
index 212e0c0b..10178f76 100644
--- a/main/src/os/drivers/chardev/ns16550a.rs.html
+++ b/main/src/os/drivers/chardev/ns16550a.rs.html
@@ -178,11 +178,9 @@
 173
 174
 175
-176
 
///! Ref: https://www.lammertbies.nl/comm/info/serial-uart
 ///! Ref: ns16550a datasheet: https://datasheetspdf.com/pdf-file/605590/NationalSemiconductor/NS16550A/1
 ///! Ref: ns16450 datasheet: https://datasheetspdf.com/pdf-file/1311818/NationalSemiconductor/NS16450/1
-
 use super::CharDevice;
 use crate::sync::{Condvar, UPIntrFreeCell};
 use crate::task::schedule;
diff --git a/main/src/os/main.rs.html b/main/src/os/main.rs.html
index c4e383a5..c8df5227 100644
--- a/main/src/os/main.rs.html
+++ b/main/src/os/main.rs.html
@@ -68,6 +68,7 @@
 63
 64
 65
+66
 
#![no_std]
 #![no_main]
 #![feature(panic_info_message)]
@@ -116,7 +117,8 @@
 use sync::UPIntrFreeCell;
 
 lazy_static! {
-    pub static ref DEV_NON_BLOCKING_ACCESS: UPIntrFreeCell<bool> = unsafe { UPIntrFreeCell::new(false) };
+    pub static ref DEV_NON_BLOCKING_ACCESS: UPIntrFreeCell<bool> =
+        unsafe { UPIntrFreeCell::new(false) };
 }
 
 #[no_mangle]
diff --git a/main/src/os/sync/condvar.rs.html b/main/src/os/sync/condvar.rs.html
index 7a5e42b2..50482e57 100644
--- a/main/src/os/sync/condvar.rs.html
+++ b/main/src/os/sync/condvar.rs.html
@@ -58,8 +58,14 @@
 53
 54
 55
+56
+57
+58
 
use crate::sync::{Mutex, UPIntrFreeCell};
-use crate::task::{add_task, block_current_task, block_current_and_run_next, current_task, TaskControlBlock, TaskContext};
+use crate::task::{
+    add_task, block_current_and_run_next, block_current_task, current_task, TaskContext,
+    TaskControlBlock,
+};
 use alloc::{collections::VecDeque, sync::Arc};
 
 pub struct Condvar {
diff --git a/main/src/os/sync/up.rs.html b/main/src/os/sync/up.rs.html
index 422457bf..2d55fd25 100644
--- a/main/src/os/sync/up.rs.html
+++ b/main/src/os/sync/up.rs.html
@@ -137,10 +137,16 @@
 132
 133
 134
+135
+136
+137
+138
+139
+140
 
use core::cell::{RefCell, RefMut, UnsafeCell};
 use core::ops::{Deref, DerefMut};
-use riscv::register::sstatus;
 use lazy_static::*;
+use riscv::register::sstatus;
 
 /*
 /// Wrap a static data structure inside it so that we are
@@ -195,9 +201,8 @@ impl<T> UPSafeCell<T> {
 }
 
 lazy_static! {
-    static ref INTR_MASKING_INFO: UPSafeCellRaw<IntrMaskingInfo> = unsafe {
-        UPSafeCellRaw::new(IntrMaskingInfo::new()) 
-    };
+    static ref INTR_MASKING_INFO: UPSafeCellRaw<IntrMaskingInfo> =
+        unsafe { UPSafeCellRaw::new(IntrMaskingInfo::new()) };
 }
 
 impl IntrMaskingInfo {
@@ -210,7 +215,9 @@ impl<T> UPSafeCell<T> {
 
     pub fn enter(&mut self) {
         let sie = sstatus::read().sie();
-        unsafe { sstatus::clear_sie(); }
+        unsafe {
+            sstatus::clear_sie();
+        }
         if self.nested_level == 0 {
             self.sie_before_masking = sie;
         }
@@ -220,7 +227,9 @@ impl<T> UPSafeCell<T> {
     pub fn exit(&mut self) {
         self.nested_level -= 1;
         if self.nested_level == 0 && self.sie_before_masking {
-            unsafe { sstatus::set_sie(); }            
+            unsafe {
+                sstatus::set_sie();
+            }
         }
     }
 }
@@ -240,13 +249,17 @@ impl<T> UPSafeCell<T> {
             inner: RefCell::new(value),
         }
     }
+
     /// Panic if the data has been borrowed.
     pub fn exclusive_access(&self) -> UPIntrRefMut<'_, T> {
         INTR_MASKING_INFO.get_mut().enter();
         UPIntrRefMut(Some(self.inner.borrow_mut()))
     }
 
-    pub fn exclusive_session<F, V>(&self, f: F) -> V where F: FnOnce(&mut T) -> V {
+    pub fn exclusive_session<F, V>(&self, f: F) -> V
+    where
+        F: FnOnce(&mut T) -> V,
+    {
         let mut inner = self.exclusive_access();
         f(inner.deref_mut())
     }
@@ -270,7 +283,6 @@ impl<T> UPSafeCell<T> {
         self.0.as_mut().unwrap().deref_mut()
     }
 }
-
 
\ No newline at end of file diff --git a/main/src/os/task/id.rs.html b/main/src/os/task/id.rs.html index ad72bcd4..c26504d7 100644 --- a/main/src/os/task/id.rs.html +++ b/main/src/os/task/id.rs.html @@ -226,6 +226,8 @@ 221 222 223 +224 +225
use super::ProcessControlBlock;
 use crate::config::{KERNEL_STACK_SIZE, PAGE_SIZE, TRAMPOLINE, TRAP_CONTEXT_BASE, USER_STACK_SIZE};
 use crate::mm::{MapPermission, PhysPageNum, VirtAddr, KERNEL_SPACE};
@@ -274,6 +276,8 @@
         unsafe { UPIntrFreeCell::new(RecycleAllocator::new()) };
 }
 
+pub const IDLE_PID: usize = 0;
+
 pub struct PidHandle(pub usize);
 
 pub fn pid_alloc() -> PidHandle {
diff --git a/main/src/os/task/mod.rs.html b/main/src/os/task/mod.rs.html
index 00d18831..8702df56 100644
--- a/main/src/os/task/mod.rs.html
+++ b/main/src/os/task/mod.rs.html
@@ -146,6 +146,11 @@
 141
 142
 143
+144
+145
+146
+147
+148
 
mod context;
 mod id;
 mod manager;
@@ -165,7 +170,7 @@
 use switch::__switch;
 
 pub use context::TaskContext;
-pub use id::{kstack_alloc, pid_alloc, KernelStack, PidHandle};
+pub use id::{kstack_alloc, pid_alloc, KernelStack, PidHandle, IDLE_PID};
 pub use manager::{add_task, pid2process, remove_from_pid2process};
 pub use processor::{
     current_kstack_top, current_process, current_task, current_trap_cx, current_trap_cx_user_va,
@@ -201,7 +206,7 @@
 }
 
 pub fn block_current_and_run_next() {
-    let task_cx_ptr = block_current_task(); 
+    let task_cx_ptr = block_current_task();
     schedule(task_cx_ptr);
 }
 
@@ -220,7 +225,12 @@
     // however, if this is the main thread of current process
     // the process should terminate at once
     if tid == 0 {
-        remove_from_pid2process(process.getpid());
+        let pid = process.getpid();
+        if pid == IDLE_PID {
+            println!("[kernel] Idle process exit ...");
+            crate::sbi::shutdown();
+        }
+        remove_from_pid2process(pid);
         let mut process_inner = process.inner_exclusive_access();
         // mark this process as a zombie process
         process_inner.is_zombie = true;
diff --git a/main/src/os/task/processor.rs.html b/main/src/os/task/processor.rs.html
index 9a6a180b..e2a174c3 100644
--- a/main/src/os/task/processor.rs.html
+++ b/main/src/os/task/processor.rs.html
@@ -138,7 +138,8 @@
 }
 
 lazy_static! {
-    pub static ref PROCESSOR: UPIntrFreeCell<Processor> = unsafe { UPIntrFreeCell::new(Processor::new()) };
+    pub static ref PROCESSOR: UPIntrFreeCell<Processor> =
+        unsafe { UPIntrFreeCell::new(Processor::new()) };
 }
 
 pub fn run_tasks() {
@@ -202,9 +203,8 @@
 }
 
 pub fn schedule(switched_task_cx_ptr: *mut TaskContext) {
-    let idle_task_cx_ptr = PROCESSOR.exclusive_session(|processor| {
-        processor.get_idle_task_cx_ptr()
-    });
+    let idle_task_cx_ptr =
+        PROCESSOR.exclusive_session(|processor| processor.get_idle_task_cx_ptr());
     unsafe {
         __switch(switched_task_cx_ptr, idle_task_cx_ptr);
     }
diff --git a/main/src/os/task/task.rs.html b/main/src/os/task/task.rs.html
index 4556f7bb..40e345cf 100644
--- a/main/src/os/task/task.rs.html
+++ b/main/src/os/task/task.rs.html
@@ -80,10 +80,16 @@
 75
 76
 77
+78
+79
+80
 
use super::id::TaskUserRes;
 use super::{kstack_alloc, KernelStack, ProcessControlBlock, TaskContext};
 use crate::trap::TrapContext;
-use crate::{mm::PhysPageNum, sync::{UPIntrFreeCell, UPIntrRefMut}};
+use crate::{
+    mm::PhysPageNum,
+    sync::{UPIntrFreeCell, UPIntrRefMut},
+};
 use alloc::sync::{Arc, Weak};
 
 pub struct TaskControlBlock {
diff --git a/main/src/os/trap/mod.rs.html b/main/src/os/trap/mod.rs.html
index cddd0ab6..d29ebdb7 100644
--- a/main/src/os/trap/mod.rs.html
+++ b/main/src/os/trap/mod.rs.html
@@ -185,7 +185,7 @@
 use riscv::register::{
     mtvec::TrapMode,
     scause::{self, Exception, Interrupt, Trap},
-    sie, stval, stvec, sstatus, sscratch,
+    sie, sscratch, sstatus, stval, stvec,
 };
 
 global_asm!(include_str!("trap.S"));
@@ -197,7 +197,7 @@
 fn set_kernel_trap_entry() {
     extern "C" {
         fn __alltraps();
-        fn __alltraps_k(); 
+        fn __alltraps_k();
     }
     let __alltraps_k_va = __alltraps_k as usize - __alltraps as usize + TRAMPOLINE;
     unsafe {
@@ -226,7 +226,7 @@
 
 fn disable_supervisor_interrupt() {
     unsafe {
-        sstatus::clear_sie(); 
+        sstatus::clear_sie();
     }
 }
 
@@ -241,7 +241,7 @@
             // jump to next instruction anyway
             let mut cx = current_trap_cx();
             cx.sepc += 4;
-            
+
             enable_supervisor_interrupt();
 
             // get system call return value
@@ -324,19 +324,19 @@
     match scause.cause() {
         Trap::Interrupt(Interrupt::SupervisorExternal) => {
             crate::board::irq_handler();
-        },
+        }
         Trap::Interrupt(Interrupt::SupervisorTimer) => {
             set_next_trigger();
             check_timer();
             // do not schedule now
-        },
+        }
         _ => {
             panic!(
                 "Unsupported trap from kernel: {:?}, stval = {:#x}!",
                 scause.cause(),
                 stval
             );
-        },
+        }
     }
 }