";var infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \
restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \
enum, trait, type, macro, \
diff --git a/ch8/os/all.html b/ch8/os/all.html
index 2098908e..c2e60e96 100644
--- a/ch8/os/all.html
+++ b/ch8/os/all.html
@@ -1,5 +1,7 @@
List of all items in this crate
-
\ No newline at end of file
diff --git a/ch8/os/board/constant.CLOCK_FREQ.html b/ch8/os/board/constant.CLOCK_FREQ.html
index 21b6c272..146b54a9 100644
--- a/ch8/os/board/constant.CLOCK_FREQ.html
+++ b/ch8/os/board/constant.CLOCK_FREQ.html
@@ -1,6 +1,8 @@
CLOCK_FREQ in os::board - Rust
-
\ No newline at end of file
diff --git a/ch8/os/board/constant.MMIO.html b/ch8/os/board/constant.MMIO.html
index 9c9406c0..fdfc1078 100644
--- a/ch8/os/board/constant.MMIO.html
+++ b/ch8/os/board/constant.MMIO.html
@@ -1,6 +1,8 @@
MMIO in os::board - Rust
-
\ No newline at end of file
diff --git a/ch8/os/board/type.BlockDeviceImpl.html b/ch8/os/board/type.BlockDeviceImpl.html
index 7a46b4cd..65d401c3 100644
--- a/ch8/os/board/type.BlockDeviceImpl.html
+++ b/ch8/os/board/type.BlockDeviceImpl.html
@@ -1,6 +1,8 @@
BlockDeviceImpl in os::board - Rust
-
\ No newline at end of file
diff --git a/ch8/os/config/constant.KERNEL_HEAP_SIZE.html b/ch8/os/config/constant.KERNEL_HEAP_SIZE.html
index 37fbf1ef..c5fc811a 100644
--- a/ch8/os/config/constant.KERNEL_HEAP_SIZE.html
+++ b/ch8/os/config/constant.KERNEL_HEAP_SIZE.html
@@ -1,6 +1,8 @@
KERNEL_HEAP_SIZE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch8/os/config/constant.KERNEL_STACK_SIZE.html b/ch8/os/config/constant.KERNEL_STACK_SIZE.html
index 0870895a..1e547346 100644
--- a/ch8/os/config/constant.KERNEL_STACK_SIZE.html
+++ b/ch8/os/config/constant.KERNEL_STACK_SIZE.html
@@ -1,6 +1,8 @@
KERNEL_STACK_SIZE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch8/os/config/constant.MEMORY_END.html b/ch8/os/config/constant.MEMORY_END.html
index 50a51128..5ab07242 100644
--- a/ch8/os/config/constant.MEMORY_END.html
+++ b/ch8/os/config/constant.MEMORY_END.html
@@ -1,6 +1,8 @@
MEMORY_END in os::config - Rust
-
\ No newline at end of file
diff --git a/ch8/os/config/constant.PAGE_SIZE.html b/ch8/os/config/constant.PAGE_SIZE.html
index 6a65de1f..91a51506 100644
--- a/ch8/os/config/constant.PAGE_SIZE.html
+++ b/ch8/os/config/constant.PAGE_SIZE.html
@@ -1,6 +1,8 @@
PAGE_SIZE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch8/os/config/constant.PAGE_SIZE_BITS.html b/ch8/os/config/constant.PAGE_SIZE_BITS.html
index 5356ad2d..0a0d83fd 100644
--- a/ch8/os/config/constant.PAGE_SIZE_BITS.html
+++ b/ch8/os/config/constant.PAGE_SIZE_BITS.html
@@ -1,6 +1,8 @@
PAGE_SIZE_BITS in os::config - Rust
-
\ No newline at end of file
diff --git a/ch8/os/config/constant.TRAMPOLINE.html b/ch8/os/config/constant.TRAMPOLINE.html
index 306d3252..420fd50c 100644
--- a/ch8/os/config/constant.TRAMPOLINE.html
+++ b/ch8/os/config/constant.TRAMPOLINE.html
@@ -1,6 +1,8 @@
TRAMPOLINE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch8/os/config/constant.TRAP_CONTEXT_BASE.html b/ch8/os/config/constant.TRAP_CONTEXT_BASE.html
index a7375a83..9b319503 100644
--- a/ch8/os/config/constant.TRAP_CONTEXT_BASE.html
+++ b/ch8/os/config/constant.TRAP_CONTEXT_BASE.html
@@ -1,6 +1,8 @@
TRAP_CONTEXT_BASE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch8/os/config/constant.USER_STACK_SIZE.html b/ch8/os/config/constant.USER_STACK_SIZE.html
index 7b13b4aa..2c8a959e 100644
--- a/ch8/os/config/constant.USER_STACK_SIZE.html
+++ b/ch8/os/config/constant.USER_STACK_SIZE.html
@@ -1,6 +1,8 @@
USER_STACK_SIZE in os::config - Rust
-
\ No newline at end of file
diff --git a/ch8/os/console/fn.print.html b/ch8/os/console/fn.print.html
index 11eb46a6..f8119bcb 100644
--- a/ch8/os/console/fn.print.html
+++ b/ch8/os/console/fn.print.html
@@ -1,6 +1,8 @@
print in os::console - Rust
-
\ No newline at end of file
diff --git a/ch8/os/console/struct.Stdout.html b/ch8/os/console/struct.Stdout.html
index aacab1d0..1f956495 100644
--- a/ch8/os/console/struct.Stdout.html
+++ b/ch8/os/console/struct.Stdout.html
@@ -1,19 +1,23 @@
Stdout in os::console - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/fn.block_device_test.html b/ch8/os/drivers/block/fn.block_device_test.html
index d5273e9f..0e374a0e 100644
--- a/ch8/os/drivers/block/fn.block_device_test.html
+++ b/ch8/os/drivers/block/fn.block_device_test.html
@@ -1,6 +1,8 @@
block_device_test in os::drivers::block - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/constant.SD_CS.html b/ch8/os/drivers/block/sdcard/constant.SD_CS.html
index 7745c03f..55b18129 100644
--- a/ch8/os/drivers/block/sdcard/constant.SD_CS.html
+++ b/ch8/os/drivers/block/sdcard/constant.SD_CS.html
@@ -1,10 +1,10 @@
-SD_CS in os::drivers::block::sdcard - Rust
-
CS value passed to SPI controller, this is a dummy value as SPI0_CS3 is not mapping to anything
+in the FPIOA
+
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/constant.SD_CS_GPIONUM.html b/ch8/os/drivers/block/sdcard/constant.SD_CS_GPIONUM.html
index cb3d07b6..20e23ef7 100644
--- a/ch8/os/drivers/block/sdcard/constant.SD_CS_GPIONUM.html
+++ b/ch8/os/drivers/block/sdcard/constant.SD_CS_GPIONUM.html
@@ -1,7 +1,9 @@
SD_CS_GPIONUM in os::drivers::block::sdcard - Rust
-
GPIOHS GPIO number to use for controlling the SD card CS pin
+
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_READ.html b/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_READ.html
index 2a05a15e..661bff1f 100644
--- a/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_READ.html
+++ b/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_READ.html
@@ -1,7 +1,9 @@
SD_START_DATA_MULTIPLE_BLOCK_READ in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html b/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html
index 3b76b968..190cac5a 100644
--- a/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html
+++ b/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html
@@ -1,7 +1,9 @@
SD_START_DATA_MULTIPLE_BLOCK_WRITE in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_READ.html b/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_READ.html
index 3ebef1e6..8b50884e 100644
--- a/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_READ.html
+++ b/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_READ.html
@@ -1,7 +1,9 @@
SD_START_DATA_SINGLE_BLOCK_READ in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_WRITE.html b/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_WRITE.html
index a760dd29..4d70d58b 100644
--- a/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_WRITE.html
+++ b/ch8/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_WRITE.html
@@ -1,7 +1,9 @@
SD_START_DATA_SINGLE_BLOCK_WRITE in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/constant.SEC_LEN.html b/ch8/os/drivers/block/sdcard/constant.SEC_LEN.html
index 8afb9c1d..c15a12a2 100644
--- a/ch8/os/drivers/block/sdcard/constant.SEC_LEN.html
+++ b/ch8/os/drivers/block/sdcard/constant.SEC_LEN.html
@@ -1,6 +1,8 @@
SEC_LEN in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/enum.CMD.html b/ch8/os/drivers/block/sdcard/enum.CMD.html
index 192ad23c..9b31e561 100644
--- a/ch8/os/drivers/block/sdcard/enum.CMD.html
+++ b/ch8/os/drivers/block/sdcard/enum.CMD.html
@@ -1,8 +1,10 @@
CMD in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/enum.InitError.html b/ch8/os/drivers/block/sdcard/enum.InitError.html
index fb02d6df..595bda38 100644
--- a/ch8/os/drivers/block/sdcard/enum.InitError.html
+++ b/ch8/os/drivers/block/sdcard/enum.InitError.html
@@ -1,25 +1,29 @@
InitError in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/fn.init_sdcard.html b/ch8/os/drivers/block/sdcard/fn.init_sdcard.html
index e2370784..01baf5c5 100644
--- a/ch8/os/drivers/block/sdcard/fn.init_sdcard.html
+++ b/ch8/os/drivers/block/sdcard/fn.init_sdcard.html
@@ -1,6 +1,8 @@
init_sdcard in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/fn.io_init.html b/ch8/os/drivers/block/sdcard/fn.io_init.html
index 90bf0d50..de329858 100644
--- a/ch8/os/drivers/block/sdcard/fn.io_init.html
+++ b/ch8/os/drivers/block/sdcard/fn.io_init.html
@@ -1,7 +1,9 @@
io_init in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/sidebar-items.js b/ch8/os/drivers/block/sdcard/sidebar-items.js
index 793a4709..e5a624de 100644
--- a/ch8/os/drivers/block/sdcard/sidebar-items.js
+++ b/ch8/os/drivers/block/sdcard/sidebar-items.js
@@ -1 +1 @@
-initSidebarItems({"constant":[["SD_CS","CS value passed to SPI controller, this is a dummy value as SPI0_CS3 is not mapping to anything"],["SD_CS_GPIONUM","GPIOHS GPIO number to use for controlling the SD card CS pin "],["SD_START_DATA_MULTIPLE_BLOCK_READ","Data token start byte, Start Multiple Block Read "],["SD_START_DATA_MULTIPLE_BLOCK_WRITE","Data token start byte, Start Multiple Block Write "],["SD_START_DATA_SINGLE_BLOCK_READ","Data token start byte, Start Single Block Read "],["SD_START_DATA_SINGLE_BLOCK_WRITE","Data token start byte, Start Single Block Write "],["SEC_LEN",""]],"enum":[["CMD","SD commands "],["InitError",""]],"fn":[["init_sdcard",""],["io_init","Connect pins to internal functions "]],"struct":[["PERIPHERALS",""],["SDCard",""],["SDCardCID","Card Identification Data: CID Register"],["SDCardCSD","Card Specific Data: CSD Register"],["SDCardInfo","Card information"],["SDCardWrapper",""]]});
\ No newline at end of file
+initSidebarItems({"constant":[["SD_CS","CS value passed to SPI controller, this is a dummy value as SPI0_CS3 is not mapping to anything in the FPIOA "],["SD_CS_GPIONUM","GPIOHS GPIO number to use for controlling the SD card CS pin "],["SD_START_DATA_MULTIPLE_BLOCK_READ","Data token start byte, Start Multiple Block Read "],["SD_START_DATA_MULTIPLE_BLOCK_WRITE","Data token start byte, Start Multiple Block Write "],["SD_START_DATA_SINGLE_BLOCK_READ","Data token start byte, Start Single Block Read "],["SD_START_DATA_SINGLE_BLOCK_WRITE","Data token start byte, Start Single Block Write "],["SEC_LEN",""]],"enum":[["CMD","SD commands "],["InitError",""]],"fn":[["init_sdcard",""],["io_init","Connect pins to internal functions "]],"struct":[["PERIPHERALS",""],["SDCard",""],["SDCardCID","Card Identification Data: CID Register"],["SDCardCSD","Card Specific Data: CSD Register"],["SDCardInfo","Card information"],["SDCardWrapper",""]]});
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/struct.PERIPHERALS.html b/ch8/os/drivers/block/sdcard/struct.PERIPHERALS.html
index 3518da6a..759ea5eb 100644
--- a/ch8/os/drivers/block/sdcard/struct.PERIPHERALS.html
+++ b/ch8/os/drivers/block/sdcard/struct.PERIPHERALS.html
@@ -1,20 +1,24 @@
PERIPHERALS in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/struct.SDCard.html b/ch8/os/drivers/block/sdcard/struct.SDCard.html
index 53415fce..a5c7926f 100644
--- a/ch8/os/drivers/block/sdcard/struct.SDCard.html
+++ b/ch8/os/drivers/block/sdcard/struct.SDCard.html
@@ -1,19 +1,23 @@
SDCard in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/struct.SDCardCID.html b/ch8/os/drivers/block/sdcard/struct.SDCardCID.html
index 2db6395b..c8bb5e6c 100644
--- a/ch8/os/drivers/block/sdcard/struct.SDCardCID.html
+++ b/ch8/os/drivers/block/sdcard/struct.SDCardCID.html
@@ -1,8 +1,10 @@
SDCardCID in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/struct.SDCardCSD.html b/ch8/os/drivers/block/sdcard/struct.SDCardCSD.html
index 36d14247..0989ce3b 100644
--- a/ch8/os/drivers/block/sdcard/struct.SDCardCSD.html
+++ b/ch8/os/drivers/block/sdcard/struct.SDCardCSD.html
@@ -1,8 +1,10 @@
SDCardCSD in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/struct.SDCardInfo.html b/ch8/os/drivers/block/sdcard/struct.SDCardInfo.html
index c6004a71..b8df7a02 100644
--- a/ch8/os/drivers/block/sdcard/struct.SDCardInfo.html
+++ b/ch8/os/drivers/block/sdcard/struct.SDCardInfo.html
@@ -1,29 +1,31 @@
SDCardInfo in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/sdcard/struct.SDCardWrapper.html b/ch8/os/drivers/block/sdcard/struct.SDCardWrapper.html
index ba739d02..94f63800 100644
--- a/ch8/os/drivers/block/sdcard/struct.SDCardWrapper.html
+++ b/ch8/os/drivers/block/sdcard/struct.SDCardWrapper.html
@@ -1,15 +1,19 @@
SDCardWrapper in os::drivers::block::sdcard - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/struct.BLOCK_DEVICE.html b/ch8/os/drivers/block/struct.BLOCK_DEVICE.html
index 14fce12c..c56b5de3 100644
--- a/ch8/os/drivers/block/struct.BLOCK_DEVICE.html
+++ b/ch8/os/drivers/block/struct.BLOCK_DEVICE.html
@@ -1,19 +1,23 @@
BLOCK_DEVICE in os::drivers::block - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/virtio_blk/constant.VIRTIO0.html b/ch8/os/drivers/block/virtio_blk/constant.VIRTIO0.html
index ceead833..6cd46f6e 100644
--- a/ch8/os/drivers/block/virtio_blk/constant.VIRTIO0.html
+++ b/ch8/os/drivers/block/virtio_blk/constant.VIRTIO0.html
@@ -1,6 +1,8 @@
VIRTIO0 in os::drivers::block::virtio_blk - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html b/ch8/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html
index 7b7df50b..304546b4 100644
--- a/ch8/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html
+++ b/ch8/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html
@@ -1,7 +1,9 @@
virtio_dma_alloc in os::drivers::block::virtio_blk - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html b/ch8/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html
index 4236fcd4..292c54bc 100644
--- a/ch8/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html
+++ b/ch8/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html
@@ -1,7 +1,9 @@
virtio_dma_dealloc in os::drivers::block::virtio_blk - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html b/ch8/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html
index 6ace07c8..7d23a8dd 100644
--- a/ch8/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html
+++ b/ch8/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html
@@ -1,7 +1,9 @@
virtio_phys_to_virt in os::drivers::block::virtio_blk - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html b/ch8/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html
index 155b2eba..199c4b17 100644
--- a/ch8/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html
+++ b/ch8/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html
@@ -1,7 +1,9 @@
virtio_virt_to_phys in os::drivers::block::virtio_blk - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html b/ch8/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html
index 16844a32..98827067 100644
--- a/ch8/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html
+++ b/ch8/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html
@@ -1,20 +1,24 @@
QUEUE_FRAMES in os::drivers::block::virtio_blk - Rust
-
\ No newline at end of file
diff --git a/ch8/os/drivers/block/virtio_blk/struct.VirtIOBlock.html b/ch8/os/drivers/block/virtio_blk/struct.VirtIOBlock.html
index 50969a66..26a60e87 100644
--- a/ch8/os/drivers/block/virtio_blk/struct.VirtIOBlock.html
+++ b/ch8/os/drivers/block/virtio_blk/struct.VirtIOBlock.html
@@ -1,15 +1,19 @@
VirtIOBlock in os::drivers::block::virtio_blk - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fn.clear_bss.html b/ch8/os/fn.clear_bss.html
index 7f6b047a..c2be7826 100644
--- a/ch8/os/fn.clear_bss.html
+++ b/ch8/os/fn.clear_bss.html
@@ -1,6 +1,8 @@
clear_bss in os - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fn.rust_main.html b/ch8/os/fn.rust_main.html
index d912d8eb..c3e31425 100644
--- a/ch8/os/fn.rust_main.html
+++ b/ch8/os/fn.rust_main.html
@@ -1,7 +1,9 @@
rust_main in os - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/inode/fn.list_apps.html b/ch8/os/fs/inode/fn.list_apps.html
index a461c96f..58d6c376 100644
--- a/ch8/os/fs/inode/fn.list_apps.html
+++ b/ch8/os/fs/inode/fn.list_apps.html
@@ -1,6 +1,8 @@
list_apps in os::fs::inode - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/inode/fn.open_file.html b/ch8/os/fs/inode/fn.open_file.html
index d7f883a7..7f6647aa 100644
--- a/ch8/os/fs/inode/fn.open_file.html
+++ b/ch8/os/fs/inode/fn.open_file.html
@@ -1,6 +1,8 @@
open_file in os::fs::inode - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/inode/struct.OSInode.html b/ch8/os/fs/inode/struct.OSInode.html
index dc461108..8292a355 100644
--- a/ch8/os/fs/inode/struct.OSInode.html
+++ b/ch8/os/fs/inode/struct.OSInode.html
@@ -1,19 +1,23 @@
OSInode in os::fs::inode - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/inode/struct.OSInodeInner.html b/ch8/os/fs/inode/struct.OSInodeInner.html
index 1d39bc94..bef94187 100644
--- a/ch8/os/fs/inode/struct.OSInodeInner.html
+++ b/ch8/os/fs/inode/struct.OSInodeInner.html
@@ -1,18 +1,22 @@
OSInodeInner in os::fs::inode - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/inode/struct.OpenFlags.html b/ch8/os/fs/inode/struct.OpenFlags.html
index 44a23a72..1ec21add 100644
--- a/ch8/os/fs/inode/struct.OpenFlags.html
+++ b/ch8/os/fs/inode/struct.OpenFlags.html
@@ -1,53 +1,55 @@
OpenFlags in os::fs::inode - Rust
-
Returns the union of between the flags in self and other.
Specifically, the returned set contains all flags which are
present in eitherselforother, 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.
Specifically, the returned set contains the flags present which
are present in self or other, but that are not present in
@@ -55,67 +57,69 @@ 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.
\ No newline at end of file
diff --git a/ch8/os/fs/inode/struct.ROOT_INODE.html b/ch8/os/fs/inode/struct.ROOT_INODE.html
index 8569472f..c51618b4 100644
--- a/ch8/os/fs/inode/struct.ROOT_INODE.html
+++ b/ch8/os/fs/inode/struct.ROOT_INODE.html
@@ -1,19 +1,23 @@
ROOT_INODE in os::fs::inode - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/pipe/constant.RING_BUFFER_SIZE.html b/ch8/os/fs/pipe/constant.RING_BUFFER_SIZE.html
index 9300f28c..31a764da 100644
--- a/ch8/os/fs/pipe/constant.RING_BUFFER_SIZE.html
+++ b/ch8/os/fs/pipe/constant.RING_BUFFER_SIZE.html
@@ -1,6 +1,8 @@
RING_BUFFER_SIZE in os::fs::pipe - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/pipe/enum.RingBufferStatus.html b/ch8/os/fs/pipe/enum.RingBufferStatus.html
index 93b37d92..1dfc770f 100644
--- a/ch8/os/fs/pipe/enum.RingBufferStatus.html
+++ b/ch8/os/fs/pipe/enum.RingBufferStatus.html
@@ -1,27 +1,31 @@
RingBufferStatus in os::fs::pipe - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/pipe/fn.make_pipe.html b/ch8/os/fs/pipe/fn.make_pipe.html
index b74a8220..cbf68237 100644
--- a/ch8/os/fs/pipe/fn.make_pipe.html
+++ b/ch8/os/fs/pipe/fn.make_pipe.html
@@ -1,7 +1,9 @@
make_pipe in os::fs::pipe - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/pipe/struct.Pipe.html b/ch8/os/fs/pipe/struct.Pipe.html
index 8cb868f4..8fd30707 100644
--- a/ch8/os/fs/pipe/struct.Pipe.html
+++ b/ch8/os/fs/pipe/struct.Pipe.html
@@ -1,19 +1,23 @@
Pipe in os::fs::pipe - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/pipe/struct.PipeRingBuffer.html b/ch8/os/fs/pipe/struct.PipeRingBuffer.html
index 2aa49c2f..6dcf6b08 100644
--- a/ch8/os/fs/pipe/struct.PipeRingBuffer.html
+++ b/ch8/os/fs/pipe/struct.PipeRingBuffer.html
@@ -1,21 +1,25 @@
PipeRingBuffer in os::fs::pipe - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/stdio/struct.Stdin.html b/ch8/os/fs/stdio/struct.Stdin.html
index 51c54b43..7d4982e5 100644
--- a/ch8/os/fs/stdio/struct.Stdin.html
+++ b/ch8/os/fs/stdio/struct.Stdin.html
@@ -1,15 +1,19 @@
Stdin in os::fs::stdio - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/stdio/struct.Stdout.html b/ch8/os/fs/stdio/struct.Stdout.html
index eb6560f0..c4b1338c 100644
--- a/ch8/os/fs/stdio/struct.Stdout.html
+++ b/ch8/os/fs/stdio/struct.Stdout.html
@@ -1,15 +1,19 @@
Stdout in os::fs::stdio - Rust
-
\ No newline at end of file
diff --git a/ch8/os/fs/trait.File.html b/ch8/os/fs/trait.File.html
index 778df109..941e0404 100644
--- a/ch8/os/fs/trait.File.html
+++ b/ch8/os/fs/trait.File.html
@@ -1,11 +1,13 @@
File in os::fs - Rust
-
\ No newline at end of file
diff --git a/ch8/os/index.html b/ch8/os/index.html
index 6eb7998c..fe9cb500 100644
--- a/ch8/os/index.html
+++ b/ch8/os/index.html
@@ -1,9 +1,11 @@
os - Rust
-
\ No newline at end of file
diff --git a/ch8/os/lang_items/fn.backtrace.html b/ch8/os/lang_items/fn.backtrace.html
index 39864fc1..1a725d71 100644
--- a/ch8/os/lang_items/fn.backtrace.html
+++ b/ch8/os/lang_items/fn.backtrace.html
@@ -1,6 +1,8 @@
backtrace in os::lang_items - Rust
-
\ No newline at end of file
diff --git a/ch8/os/lang_items/fn.panic.html b/ch8/os/lang_items/fn.panic.html
index 70a8c97f..1dea5955 100644
--- a/ch8/os/lang_items/fn.panic.html
+++ b/ch8/os/lang_items/fn.panic.html
@@ -1,6 +1,8 @@
panic in os::lang_items - Rust
-
\ No newline at end of file
diff --git a/ch8/os/macro.print.html b/ch8/os/macro.print.html
index 17d519f7..df49b790 100644
--- a/ch8/os/macro.print.html
+++ b/ch8/os/macro.print.html
@@ -1,9 +1,11 @@
print in os - Rust
-
\ No newline at end of file
diff --git a/ch8/os/macro.println.html b/ch8/os/macro.println.html
index 6f58012d..40626a4a 100644
--- a/ch8/os/macro.println.html
+++ b/ch8/os/macro.println.html
@@ -1,9 +1,11 @@
println in os - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/constant.PA_WIDTH_SV39.html b/ch8/os/mm/address/constant.PA_WIDTH_SV39.html
index d7ded0db..581afc43 100644
--- a/ch8/os/mm/address/constant.PA_WIDTH_SV39.html
+++ b/ch8/os/mm/address/constant.PA_WIDTH_SV39.html
@@ -1,6 +1,8 @@
PA_WIDTH_SV39 in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/constant.PPN_WIDTH_SV39.html b/ch8/os/mm/address/constant.PPN_WIDTH_SV39.html
index 07bf60dc..9d5254cb 100644
--- a/ch8/os/mm/address/constant.PPN_WIDTH_SV39.html
+++ b/ch8/os/mm/address/constant.PPN_WIDTH_SV39.html
@@ -1,6 +1,8 @@
PPN_WIDTH_SV39 in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/constant.VA_WIDTH_SV39.html b/ch8/os/mm/address/constant.VA_WIDTH_SV39.html
index 1f0e06d1..c8821bd0 100644
--- a/ch8/os/mm/address/constant.VA_WIDTH_SV39.html
+++ b/ch8/os/mm/address/constant.VA_WIDTH_SV39.html
@@ -1,6 +1,8 @@
VA_WIDTH_SV39 in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/constant.VPN_WIDTH_SV39.html b/ch8/os/mm/address/constant.VPN_WIDTH_SV39.html
index 124aa845..c4e11101 100644
--- a/ch8/os/mm/address/constant.VPN_WIDTH_SV39.html
+++ b/ch8/os/mm/address/constant.VPN_WIDTH_SV39.html
@@ -1,6 +1,8 @@
VPN_WIDTH_SV39 in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/struct.PhysAddr.html b/ch8/os/mm/address/struct.PhysAddr.html
index dd88701f..4cc80990 100644
--- a/ch8/os/mm/address/struct.PhysAddr.html
+++ b/ch8/os/mm/address/struct.PhysAddr.html
@@ -1,43 +1,47 @@
PhysAddr in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/struct.PhysPageNum.html b/ch8/os/mm/address/struct.PhysPageNum.html
index b8b8d1ee..e47184f1 100644
--- a/ch8/os/mm/address/struct.PhysPageNum.html
+++ b/ch8/os/mm/address/struct.PhysPageNum.html
@@ -1,39 +1,43 @@
PhysPageNum in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/struct.SimpleRange.html b/ch8/os/mm/address/struct.SimpleRange.html
index 163d0da6..ef54a37f 100644
--- a/ch8/os/mm/address/struct.SimpleRange.html
+++ b/ch8/os/mm/address/struct.SimpleRange.html
@@ -1,26 +1,30 @@
SimpleRange in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/struct.SimpleRangeIterator.html b/ch8/os/mm/address/struct.SimpleRangeIterator.html
index 988ccfa1..2ff2157c 100644
--- a/ch8/os/mm/address/struct.SimpleRangeIterator.html
+++ b/ch8/os/mm/address/struct.SimpleRangeIterator.html
@@ -1,130 +1,137 @@
SimpleRangeIterator in os::mm::address - Rust
-
Creates an iterator which can use the peek and peek_mut methods
to look at the next element of the iterator without consuming it. See
their documentation for more information. Read more
🔬 This is a nightly-only experimental API. (iter_partition_in_place)
Reorders the elements of this iterator in-place according to the given predicate,
such that all those that return true precede all those that return false.
Returns the number of true elements found. Read more
🔬 This is a nightly-only experimental API. (iter_is_partitioned)
Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return true precede all those that return false. Read more
🔬 This is a nightly-only experimental API. (iterator_try_reduce)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the
closure returns a failure, the failure is propagated back to the caller immediately. Read more
\ No newline at end of file
diff --git a/ch8/os/mm/address/struct.VirtAddr.html b/ch8/os/mm/address/struct.VirtAddr.html
index fff94adf..f9d83ce2 100644
--- a/ch8/os/mm/address/struct.VirtAddr.html
+++ b/ch8/os/mm/address/struct.VirtAddr.html
@@ -1,40 +1,44 @@
VirtAddr in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/struct.VirtPageNum.html b/ch8/os/mm/address/struct.VirtPageNum.html
index 7f222ee9..9749bdc5 100644
--- a/ch8/os/mm/address/struct.VirtPageNum.html
+++ b/ch8/os/mm/address/struct.VirtPageNum.html
@@ -1,39 +1,43 @@
VirtPageNum in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/trait.StepByOne.html b/ch8/os/mm/address/trait.StepByOne.html
index 63b7ba1c..1e7ad700 100644
--- a/ch8/os/mm/address/trait.StepByOne.html
+++ b/ch8/os/mm/address/trait.StepByOne.html
@@ -1,8 +1,10 @@
StepByOne in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/address/type.VPNRange.html b/ch8/os/mm/address/type.VPNRange.html
index c1fbb02e..cbcf60e8 100644
--- a/ch8/os/mm/address/type.VPNRange.html
+++ b/ch8/os/mm/address/type.VPNRange.html
@@ -1,6 +1,8 @@
VPNRange in os::mm::address - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/fn.init.html b/ch8/os/mm/fn.init.html
index 816c9a63..5c7f8c41 100644
--- a/ch8/os/mm/fn.init.html
+++ b/ch8/os/mm/fn.init.html
@@ -1,6 +1,8 @@
init in os::mm - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/fn.frame_alloc.html b/ch8/os/mm/frame_allocator/fn.frame_alloc.html
index e484e1df..84b63b35 100644
--- a/ch8/os/mm/frame_allocator/fn.frame_alloc.html
+++ b/ch8/os/mm/frame_allocator/fn.frame_alloc.html
@@ -1,6 +1,8 @@
frame_alloc in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/fn.frame_allocator_test.html b/ch8/os/mm/frame_allocator/fn.frame_allocator_test.html
index d2f7f0c1..433ea4ff 100644
--- a/ch8/os/mm/frame_allocator/fn.frame_allocator_test.html
+++ b/ch8/os/mm/frame_allocator/fn.frame_allocator_test.html
@@ -1,6 +1,8 @@
frame_allocator_test in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/fn.frame_dealloc.html b/ch8/os/mm/frame_allocator/fn.frame_dealloc.html
index 32d523ad..90d4f695 100644
--- a/ch8/os/mm/frame_allocator/fn.frame_dealloc.html
+++ b/ch8/os/mm/frame_allocator/fn.frame_dealloc.html
@@ -1,6 +1,8 @@
frame_dealloc in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/fn.init_frame_allocator.html b/ch8/os/mm/frame_allocator/fn.init_frame_allocator.html
index 5125c9df..e64de651 100644
--- a/ch8/os/mm/frame_allocator/fn.init_frame_allocator.html
+++ b/ch8/os/mm/frame_allocator/fn.init_frame_allocator.html
@@ -1,6 +1,8 @@
init_frame_allocator in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html b/ch8/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
index d96d51d3..899a902b 100644
--- a/ch8/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
+++ b/ch8/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html
@@ -1,20 +1,24 @@
FRAME_ALLOCATOR in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/struct.FrameTracker.html b/ch8/os/mm/frame_allocator/struct.FrameTracker.html
index dfc45fe7..b496d54b 100644
--- a/ch8/os/mm/frame_allocator/struct.FrameTracker.html
+++ b/ch8/os/mm/frame_allocator/struct.FrameTracker.html
@@ -1,19 +1,23 @@
FrameTracker in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/struct.StackFrameAllocator.html b/ch8/os/mm/frame_allocator/struct.StackFrameAllocator.html
index 5a401b3a..ba254d29 100644
--- a/ch8/os/mm/frame_allocator/struct.StackFrameAllocator.html
+++ b/ch8/os/mm/frame_allocator/struct.StackFrameAllocator.html
@@ -1,19 +1,23 @@
StackFrameAllocator in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/trait.FrameAllocator.html b/ch8/os/mm/frame_allocator/trait.FrameAllocator.html
index 00839253..f7667df8 100644
--- a/ch8/os/mm/frame_allocator/trait.FrameAllocator.html
+++ b/ch8/os/mm/frame_allocator/trait.FrameAllocator.html
@@ -1,10 +1,12 @@
FrameAllocator in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/frame_allocator/type.FrameAllocatorImpl.html b/ch8/os/mm/frame_allocator/type.FrameAllocatorImpl.html
index d9a85d3e..424c3b48 100644
--- a/ch8/os/mm/frame_allocator/type.FrameAllocatorImpl.html
+++ b/ch8/os/mm/frame_allocator/type.FrameAllocatorImpl.html
@@ -1,6 +1,8 @@
FrameAllocatorImpl in os::mm::frame_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/heap_allocator/fn.handle_alloc_error.html b/ch8/os/mm/heap_allocator/fn.handle_alloc_error.html
index f85900a1..2530c916 100644
--- a/ch8/os/mm/heap_allocator/fn.handle_alloc_error.html
+++ b/ch8/os/mm/heap_allocator/fn.handle_alloc_error.html
@@ -1,6 +1,8 @@
handle_alloc_error in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/heap_allocator/fn.heap_test.html b/ch8/os/mm/heap_allocator/fn.heap_test.html
index 60341633..6475c14f 100644
--- a/ch8/os/mm/heap_allocator/fn.heap_test.html
+++ b/ch8/os/mm/heap_allocator/fn.heap_test.html
@@ -1,6 +1,8 @@
heap_test in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/heap_allocator/fn.init_heap.html b/ch8/os/mm/heap_allocator/fn.init_heap.html
index 043c81db..6fafa7c1 100644
--- a/ch8/os/mm/heap_allocator/fn.init_heap.html
+++ b/ch8/os/mm/heap_allocator/fn.init_heap.html
@@ -1,6 +1,8 @@
init_heap in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html b/ch8/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html
index 80e8d72a..bf4b1785 100644
--- a/ch8/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html
+++ b/ch8/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html
@@ -1,6 +1,8 @@
HEAP_ALLOCATOR in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/heap_allocator/static.HEAP_SPACE.html b/ch8/os/mm/heap_allocator/static.HEAP_SPACE.html
index 16025214..10553534 100644
--- a/ch8/os/mm/heap_allocator/static.HEAP_SPACE.html
+++ b/ch8/os/mm/heap_allocator/static.HEAP_SPACE.html
@@ -1,6 +1,8 @@
HEAP_SPACE in os::mm::heap_allocator - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/enum.MapType.html b/ch8/os/mm/memory_set/enum.MapType.html
index f680740a..6069230e 100644
--- a/ch8/os/mm/memory_set/enum.MapType.html
+++ b/ch8/os/mm/memory_set/enum.MapType.html
@@ -1,27 +1,31 @@
MapType in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.ebss.html b/ch8/os/mm/memory_set/fn.ebss.html
index 3bd8584f..abf3a54a 100644
--- a/ch8/os/mm/memory_set/fn.ebss.html
+++ b/ch8/os/mm/memory_set/fn.ebss.html
@@ -1,6 +1,8 @@
ebss in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.edata.html b/ch8/os/mm/memory_set/fn.edata.html
index b9f4cc53..e300398a 100644
--- a/ch8/os/mm/memory_set/fn.edata.html
+++ b/ch8/os/mm/memory_set/fn.edata.html
@@ -1,6 +1,8 @@
edata in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.ekernel.html b/ch8/os/mm/memory_set/fn.ekernel.html
index a68105d6..4104c50a 100644
--- a/ch8/os/mm/memory_set/fn.ekernel.html
+++ b/ch8/os/mm/memory_set/fn.ekernel.html
@@ -1,6 +1,8 @@
ekernel in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.erodata.html b/ch8/os/mm/memory_set/fn.erodata.html
index 7a42fc8f..ea14c701 100644
--- a/ch8/os/mm/memory_set/fn.erodata.html
+++ b/ch8/os/mm/memory_set/fn.erodata.html
@@ -1,6 +1,8 @@
erodata in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.etext.html b/ch8/os/mm/memory_set/fn.etext.html
index dfa43cfd..37af16a3 100644
--- a/ch8/os/mm/memory_set/fn.etext.html
+++ b/ch8/os/mm/memory_set/fn.etext.html
@@ -1,6 +1,8 @@
etext in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.kernel_token.html b/ch8/os/mm/memory_set/fn.kernel_token.html
index 91f879db..9cd7a4b8 100644
--- a/ch8/os/mm/memory_set/fn.kernel_token.html
+++ b/ch8/os/mm/memory_set/fn.kernel_token.html
@@ -1,6 +1,8 @@
kernel_token in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.remap_test.html b/ch8/os/mm/memory_set/fn.remap_test.html
index 73f364ce..e68483f1 100644
--- a/ch8/os/mm/memory_set/fn.remap_test.html
+++ b/ch8/os/mm/memory_set/fn.remap_test.html
@@ -1,6 +1,8 @@
remap_test in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.sbss_with_stack.html b/ch8/os/mm/memory_set/fn.sbss_with_stack.html
index ecbf7b8a..6b2051e1 100644
--- a/ch8/os/mm/memory_set/fn.sbss_with_stack.html
+++ b/ch8/os/mm/memory_set/fn.sbss_with_stack.html
@@ -1,6 +1,8 @@
sbss_with_stack in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.sdata.html b/ch8/os/mm/memory_set/fn.sdata.html
index 21790d43..f9c26016 100644
--- a/ch8/os/mm/memory_set/fn.sdata.html
+++ b/ch8/os/mm/memory_set/fn.sdata.html
@@ -1,6 +1,8 @@
sdata in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.srodata.html b/ch8/os/mm/memory_set/fn.srodata.html
index 12becf5b..04e306e2 100644
--- a/ch8/os/mm/memory_set/fn.srodata.html
+++ b/ch8/os/mm/memory_set/fn.srodata.html
@@ -1,6 +1,8 @@
srodata in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.stext.html b/ch8/os/mm/memory_set/fn.stext.html
index f462b9fc..054f5de6 100644
--- a/ch8/os/mm/memory_set/fn.stext.html
+++ b/ch8/os/mm/memory_set/fn.stext.html
@@ -1,6 +1,8 @@
stext in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/fn.strampoline.html b/ch8/os/mm/memory_set/fn.strampoline.html
index 6dd5b9da..d4c09c0c 100644
--- a/ch8/os/mm/memory_set/fn.strampoline.html
+++ b/ch8/os/mm/memory_set/fn.strampoline.html
@@ -1,6 +1,8 @@
strampoline in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/struct.KERNEL_SPACE.html b/ch8/os/mm/memory_set/struct.KERNEL_SPACE.html
index ff47bab0..66b47393 100644
--- a/ch8/os/mm/memory_set/struct.KERNEL_SPACE.html
+++ b/ch8/os/mm/memory_set/struct.KERNEL_SPACE.html
@@ -1,19 +1,23 @@
KERNEL_SPACE in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/struct.MapArea.html b/ch8/os/mm/memory_set/struct.MapArea.html
index 67f30feb..7af32b7e 100644
--- a/ch8/os/mm/memory_set/struct.MapArea.html
+++ b/ch8/os/mm/memory_set/struct.MapArea.html
@@ -1,22 +1,26 @@
MapArea in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/struct.MapPermission.html b/ch8/os/mm/memory_set/struct.MapPermission.html
index 8b760210..a4817995 100644
--- a/ch8/os/mm/memory_set/struct.MapPermission.html
+++ b/ch8/os/mm/memory_set/struct.MapPermission.html
@@ -1,53 +1,55 @@
MapPermission in os::mm::memory_set - Rust
-
Returns the union of between the flags in self and other.
Specifically, the returned set contains all flags which are
present in eitherselforother, 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.
Specifically, the returned set contains the flags present which
are present in self or other, but that are not present in
@@ -55,65 +57,67 @@ 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.
\ No newline at end of file
diff --git a/ch8/os/mm/memory_set/struct.MemorySet.html b/ch8/os/mm/memory_set/struct.MemorySet.html
index 7487efc3..1291cff6 100644
--- a/ch8/os/mm/memory_set/struct.MemorySet.html
+++ b/ch8/os/mm/memory_set/struct.MemorySet.html
@@ -1,23 +1,27 @@
MemorySet in os::mm::memory_set - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/fn.translated_byte_buffer.html b/ch8/os/mm/page_table/fn.translated_byte_buffer.html
index 0a78b767..8cd4e849 100644
--- a/ch8/os/mm/page_table/fn.translated_byte_buffer.html
+++ b/ch8/os/mm/page_table/fn.translated_byte_buffer.html
@@ -1,6 +1,8 @@
translated_byte_buffer in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/fn.translated_ref.html b/ch8/os/mm/page_table/fn.translated_ref.html
index ec3d9511..9023b1e0 100644
--- a/ch8/os/mm/page_table/fn.translated_ref.html
+++ b/ch8/os/mm/page_table/fn.translated_ref.html
@@ -1,6 +1,8 @@
translated_ref in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/fn.translated_refmut.html b/ch8/os/mm/page_table/fn.translated_refmut.html
index 2c696d79..d4bf929c 100644
--- a/ch8/os/mm/page_table/fn.translated_refmut.html
+++ b/ch8/os/mm/page_table/fn.translated_refmut.html
@@ -1,6 +1,8 @@
translated_refmut in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/fn.translated_str.html b/ch8/os/mm/page_table/fn.translated_str.html
index 9660da3e..052e1ab9 100644
--- a/ch8/os/mm/page_table/fn.translated_str.html
+++ b/ch8/os/mm/page_table/fn.translated_str.html
@@ -1,7 +1,9 @@
translated_str in os::mm::page_table - Rust
-
Load a string from other address spaces into kernel space without an end \0.
-
+
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/struct.PTEFlags.html b/ch8/os/mm/page_table/struct.PTEFlags.html
index f73ea52f..569d8117 100644
--- a/ch8/os/mm/page_table/struct.PTEFlags.html
+++ b/ch8/os/mm/page_table/struct.PTEFlags.html
@@ -1,53 +1,55 @@
PTEFlags in os::mm::page_table - Rust
-
Returns the union of between the flags in self and other.
Specifically, the returned set contains all flags which are
present in eitherselforother, 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.
Specifically, the returned set contains the flags present which
are present in self or other, but that are not present in
@@ -55,65 +57,67 @@ 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.
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/struct.PageTable.html b/ch8/os/mm/page_table/struct.PageTable.html
index 07010acc..856767ba 100644
--- a/ch8/os/mm/page_table/struct.PageTable.html
+++ b/ch8/os/mm/page_table/struct.PageTable.html
@@ -1,20 +1,24 @@
PageTable in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/struct.PageTableEntry.html b/ch8/os/mm/page_table/struct.PageTableEntry.html
index cc67b5da..a22fe547 100644
--- a/ch8/os/mm/page_table/struct.PageTableEntry.html
+++ b/ch8/os/mm/page_table/struct.PageTableEntry.html
@@ -1,22 +1,26 @@
PageTableEntry in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/struct.UserBuffer.html b/ch8/os/mm/page_table/struct.UserBuffer.html
index 933e4bcb..00e81d2b 100644
--- a/ch8/os/mm/page_table/struct.UserBuffer.html
+++ b/ch8/os/mm/page_table/struct.UserBuffer.html
@@ -1,20 +1,24 @@
UserBuffer in os::mm::page_table - Rust
-
\ No newline at end of file
diff --git a/ch8/os/mm/page_table/struct.UserBufferIterator.html b/ch8/os/mm/page_table/struct.UserBufferIterator.html
index c4f95bb8..318948d9 100644
--- a/ch8/os/mm/page_table/struct.UserBufferIterator.html
+++ b/ch8/os/mm/page_table/struct.UserBufferIterator.html
@@ -1,131 +1,138 @@
UserBufferIterator in os::mm::page_table - Rust
-
Creates an iterator which can use the peek and peek_mut methods
to look at the next element of the iterator without consuming it. See
their documentation for more information. Read more
🔬 This is a nightly-only experimental API. (iter_partition_in_place)
Reorders the elements of this iterator in-place according to the given predicate,
such that all those that return true precede all those that return false.
Returns the number of true elements found. Read more
🔬 This is a nightly-only experimental API. (iter_is_partitioned)
Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return true precede all those that return false. Read more
🔬 This is a nightly-only experimental API. (iterator_try_reduce)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the
closure returns a failure, the failure is propagated back to the caller immediately. Read more
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_CLEAR_IPI.html b/ch8/os/sbi/constant.SBI_CLEAR_IPI.html
index c191974c..f5d56dfa 100644
--- a/ch8/os/sbi/constant.SBI_CLEAR_IPI.html
+++ b/ch8/os/sbi/constant.SBI_CLEAR_IPI.html
@@ -1,6 +1,8 @@
SBI_CLEAR_IPI in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_CONSOLE_GETCHAR.html b/ch8/os/sbi/constant.SBI_CONSOLE_GETCHAR.html
index 12640c16..042f0251 100644
--- a/ch8/os/sbi/constant.SBI_CONSOLE_GETCHAR.html
+++ b/ch8/os/sbi/constant.SBI_CONSOLE_GETCHAR.html
@@ -1,6 +1,8 @@
SBI_CONSOLE_GETCHAR in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html b/ch8/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html
index 11240f3f..fca7335b 100644
--- a/ch8/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html
+++ b/ch8/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html
@@ -1,6 +1,8 @@
SBI_CONSOLE_PUTCHAR in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_REMOTE_FENCE_I.html b/ch8/os/sbi/constant.SBI_REMOTE_FENCE_I.html
index 35e0c19e..cb9d263a 100644
--- a/ch8/os/sbi/constant.SBI_REMOTE_FENCE_I.html
+++ b/ch8/os/sbi/constant.SBI_REMOTE_FENCE_I.html
@@ -1,6 +1,8 @@
SBI_REMOTE_FENCE_I in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html b/ch8/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html
index 4bedd2b5..4a7078eb 100644
--- a/ch8/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html
+++ b/ch8/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html
@@ -1,6 +1,8 @@
SBI_REMOTE_SFENCE_VMA in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html b/ch8/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html
index 06c69ce2..3c7e411b 100644
--- a/ch8/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html
+++ b/ch8/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html
@@ -1,6 +1,8 @@
SBI_REMOTE_SFENCE_VMA_ASID in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_SEND_IPI.html b/ch8/os/sbi/constant.SBI_SEND_IPI.html
index a3da3df2..07195820 100644
--- a/ch8/os/sbi/constant.SBI_SEND_IPI.html
+++ b/ch8/os/sbi/constant.SBI_SEND_IPI.html
@@ -1,6 +1,8 @@
SBI_SEND_IPI in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_SET_TIMER.html b/ch8/os/sbi/constant.SBI_SET_TIMER.html
index b8c22ab8..5fcd7bc4 100644
--- a/ch8/os/sbi/constant.SBI_SET_TIMER.html
+++ b/ch8/os/sbi/constant.SBI_SET_TIMER.html
@@ -1,6 +1,8 @@
SBI_SET_TIMER in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/constant.SBI_SHUTDOWN.html b/ch8/os/sbi/constant.SBI_SHUTDOWN.html
index 1019984f..bfed6936 100644
--- a/ch8/os/sbi/constant.SBI_SHUTDOWN.html
+++ b/ch8/os/sbi/constant.SBI_SHUTDOWN.html
@@ -1,6 +1,8 @@
SBI_SHUTDOWN in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/fn.console_getchar.html b/ch8/os/sbi/fn.console_getchar.html
index 877c7578..1223ca43 100644
--- a/ch8/os/sbi/fn.console_getchar.html
+++ b/ch8/os/sbi/fn.console_getchar.html
@@ -1,6 +1,8 @@
console_getchar in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/fn.console_putchar.html b/ch8/os/sbi/fn.console_putchar.html
index d1f365ff..f65a2732 100644
--- a/ch8/os/sbi/fn.console_putchar.html
+++ b/ch8/os/sbi/fn.console_putchar.html
@@ -1,6 +1,8 @@
console_putchar in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/fn.sbi_call.html b/ch8/os/sbi/fn.sbi_call.html
index 00731305..7555efc9 100644
--- a/ch8/os/sbi/fn.sbi_call.html
+++ b/ch8/os/sbi/fn.sbi_call.html
@@ -1,6 +1,8 @@
sbi_call in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/fn.set_timer.html b/ch8/os/sbi/fn.set_timer.html
index baa87c5b..a189954c 100644
--- a/ch8/os/sbi/fn.set_timer.html
+++ b/ch8/os/sbi/fn.set_timer.html
@@ -1,6 +1,8 @@
set_timer in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sbi/fn.shutdown.html b/ch8/os/sbi/fn.shutdown.html
index 14b7a2d8..67e910eb 100644
--- a/ch8/os/sbi/fn.shutdown.html
+++ b/ch8/os/sbi/fn.shutdown.html
@@ -1,6 +1,8 @@
shutdown in os::sbi - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sync/condvar/struct.Condvar.html b/ch8/os/sync/condvar/struct.Condvar.html
index 2b8f17fd..7de6e6c9 100644
--- a/ch8/os/sync/condvar/struct.Condvar.html
+++ b/ch8/os/sync/condvar/struct.Condvar.html
@@ -1,17 +1,21 @@
Condvar in os::sync::condvar - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sync/condvar/struct.CondvarInner.html b/ch8/os/sync/condvar/struct.CondvarInner.html
index f1dd3996..d9f44671 100644
--- a/ch8/os/sync/condvar/struct.CondvarInner.html
+++ b/ch8/os/sync/condvar/struct.CondvarInner.html
@@ -1,17 +1,21 @@
CondvarInner in os::sync::condvar - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sync/mutex/struct.MutexBlocking.html b/ch8/os/sync/mutex/struct.MutexBlocking.html
index 41ae1b0e..6e832bfb 100644
--- a/ch8/os/sync/mutex/struct.MutexBlocking.html
+++ b/ch8/os/sync/mutex/struct.MutexBlocking.html
@@ -1,17 +1,21 @@
MutexBlocking in os::sync::mutex - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sync/mutex/struct.MutexBlockingInner.html b/ch8/os/sync/mutex/struct.MutexBlockingInner.html
index 374cd9d3..8247043b 100644
--- a/ch8/os/sync/mutex/struct.MutexBlockingInner.html
+++ b/ch8/os/sync/mutex/struct.MutexBlockingInner.html
@@ -1,18 +1,22 @@
MutexBlockingInner in os::sync::mutex - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sync/mutex/struct.MutexSpin.html b/ch8/os/sync/mutex/struct.MutexSpin.html
index 0abe1c3e..cad53354 100644
--- a/ch8/os/sync/mutex/struct.MutexSpin.html
+++ b/ch8/os/sync/mutex/struct.MutexSpin.html
@@ -1,17 +1,21 @@
MutexSpin in os::sync::mutex - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sync/mutex/trait.Mutex.html b/ch8/os/sync/mutex/trait.Mutex.html
index dfd4727c..e8e6685b 100644
--- a/ch8/os/sync/mutex/trait.Mutex.html
+++ b/ch8/os/sync/mutex/trait.Mutex.html
@@ -1,9 +1,11 @@
Mutex in os::sync::mutex - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sync/semaphore/struct.Semaphore.html b/ch8/os/sync/semaphore/struct.Semaphore.html
index 41a734d1..d61f2ad0 100644
--- a/ch8/os/sync/semaphore/struct.Semaphore.html
+++ b/ch8/os/sync/semaphore/struct.Semaphore.html
@@ -1,17 +1,21 @@
Semaphore in os::sync::semaphore - Rust
-
\ No newline at end of file
diff --git a/ch8/os/sync/semaphore/struct.SemaphoreInner.html b/ch8/os/sync/semaphore/struct.SemaphoreInner.html
index b8fcc22b..f66c0a4c 100644
--- a/ch8/os/sync/semaphore/struct.SemaphoreInner.html
+++ b/ch8/os/sync/semaphore/struct.SemaphoreInner.html
@@ -1,18 +1,22 @@
SemaphoreInner in os::sync::semaphore - Rust
-
Wrap a static data structure inside it so that we are
able to access it without any unsafe.
-
+
\ No newline at end of file
diff --git a/ch8/os/sync/up/struct.UPSafeCell.html b/ch8/os/sync/up/struct.UPSafeCell.html
index d29e93de..c8e804ed 100644
--- a/ch8/os/sync/up/struct.UPSafeCell.html
+++ b/ch8/os/sync/up/struct.UPSafeCell.html
@@ -1,8 +1,10 @@
UPSafeCell in os::sync::up - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_CLOSE.html b/ch8/os/syscall/constant.SYSCALL_CLOSE.html
index c189a9c2..e0d288be 100644
--- a/ch8/os/syscall/constant.SYSCALL_CLOSE.html
+++ b/ch8/os/syscall/constant.SYSCALL_CLOSE.html
@@ -1,6 +1,8 @@
SYSCALL_CLOSE in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html b/ch8/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html
index 81a37d17..a43d1795 100644
--- a/ch8/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html
+++ b/ch8/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html
@@ -1,6 +1,8 @@
SYSCALL_CONDVAR_CREATE in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html b/ch8/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html
index de1ca4a3..bd45f526 100644
--- a/ch8/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html
+++ b/ch8/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html
@@ -1,6 +1,8 @@
SYSCALL_CONDVAR_SIGNAL in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html b/ch8/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html
index 95304d26..23bcbc75 100644
--- a/ch8/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html
+++ b/ch8/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html
@@ -1,6 +1,8 @@
SYSCALL_CONDVAR_WAIT in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_DUP.html b/ch8/os/syscall/constant.SYSCALL_DUP.html
index 4a3ed056..abb0e748 100644
--- a/ch8/os/syscall/constant.SYSCALL_DUP.html
+++ b/ch8/os/syscall/constant.SYSCALL_DUP.html
@@ -1,6 +1,8 @@
SYSCALL_DUP in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_EXEC.html b/ch8/os/syscall/constant.SYSCALL_EXEC.html
index ca11f1f5..20ddef91 100644
--- a/ch8/os/syscall/constant.SYSCALL_EXEC.html
+++ b/ch8/os/syscall/constant.SYSCALL_EXEC.html
@@ -1,6 +1,8 @@
SYSCALL_EXEC in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_EXIT.html b/ch8/os/syscall/constant.SYSCALL_EXIT.html
index 4ab8b379..e4a6afb6 100644
--- a/ch8/os/syscall/constant.SYSCALL_EXIT.html
+++ b/ch8/os/syscall/constant.SYSCALL_EXIT.html
@@ -1,6 +1,8 @@
SYSCALL_EXIT in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_FORK.html b/ch8/os/syscall/constant.SYSCALL_FORK.html
index a60495ae..af17f5eb 100644
--- a/ch8/os/syscall/constant.SYSCALL_FORK.html
+++ b/ch8/os/syscall/constant.SYSCALL_FORK.html
@@ -1,6 +1,8 @@
SYSCALL_FORK in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_GETPID.html b/ch8/os/syscall/constant.SYSCALL_GETPID.html
index 3b32faa9..7792b40b 100644
--- a/ch8/os/syscall/constant.SYSCALL_GETPID.html
+++ b/ch8/os/syscall/constant.SYSCALL_GETPID.html
@@ -1,6 +1,8 @@
SYSCALL_GETPID in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_GETTID.html b/ch8/os/syscall/constant.SYSCALL_GETTID.html
index ca733626..5c8c3f51 100644
--- a/ch8/os/syscall/constant.SYSCALL_GETTID.html
+++ b/ch8/os/syscall/constant.SYSCALL_GETTID.html
@@ -1,6 +1,8 @@
SYSCALL_GETTID in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_GET_TIME.html b/ch8/os/syscall/constant.SYSCALL_GET_TIME.html
index 343a08f8..7ef5f3a5 100644
--- a/ch8/os/syscall/constant.SYSCALL_GET_TIME.html
+++ b/ch8/os/syscall/constant.SYSCALL_GET_TIME.html
@@ -1,6 +1,8 @@
SYSCALL_GET_TIME in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_KILL.html b/ch8/os/syscall/constant.SYSCALL_KILL.html
index bf5ec3eb..ebe9dcd8 100644
--- a/ch8/os/syscall/constant.SYSCALL_KILL.html
+++ b/ch8/os/syscall/constant.SYSCALL_KILL.html
@@ -1,6 +1,8 @@
SYSCALL_KILL in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_MUTEX_CREATE.html b/ch8/os/syscall/constant.SYSCALL_MUTEX_CREATE.html
index 6ed93ace..5839dacd 100644
--- a/ch8/os/syscall/constant.SYSCALL_MUTEX_CREATE.html
+++ b/ch8/os/syscall/constant.SYSCALL_MUTEX_CREATE.html
@@ -1,6 +1,8 @@
SYSCALL_MUTEX_CREATE in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_MUTEX_LOCK.html b/ch8/os/syscall/constant.SYSCALL_MUTEX_LOCK.html
index 3f352e9d..5f5373a7 100644
--- a/ch8/os/syscall/constant.SYSCALL_MUTEX_LOCK.html
+++ b/ch8/os/syscall/constant.SYSCALL_MUTEX_LOCK.html
@@ -1,6 +1,8 @@
SYSCALL_MUTEX_LOCK in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html b/ch8/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html
index 074de3fe..f209704a 100644
--- a/ch8/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html
+++ b/ch8/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html
@@ -1,6 +1,8 @@
SYSCALL_MUTEX_UNLOCK in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_OPEN.html b/ch8/os/syscall/constant.SYSCALL_OPEN.html
index 6db5ddbd..e10e6a42 100644
--- a/ch8/os/syscall/constant.SYSCALL_OPEN.html
+++ b/ch8/os/syscall/constant.SYSCALL_OPEN.html
@@ -1,6 +1,8 @@
SYSCALL_OPEN in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_PIPE.html b/ch8/os/syscall/constant.SYSCALL_PIPE.html
index e92c2618..414cc34f 100644
--- a/ch8/os/syscall/constant.SYSCALL_PIPE.html
+++ b/ch8/os/syscall/constant.SYSCALL_PIPE.html
@@ -1,6 +1,8 @@
SYSCALL_PIPE in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_READ.html b/ch8/os/syscall/constant.SYSCALL_READ.html
index 028c955f..cf445b3b 100644
--- a/ch8/os/syscall/constant.SYSCALL_READ.html
+++ b/ch8/os/syscall/constant.SYSCALL_READ.html
@@ -1,6 +1,8 @@
SYSCALL_READ in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html b/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html
index 42485644..90be423c 100644
--- a/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html
+++ b/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html
@@ -1,6 +1,8 @@
SYSCALL_SEMAPHORE_CREATE in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html b/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html
index e7b97375..9c178b9c 100644
--- a/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html
+++ b/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html
@@ -1,6 +1,8 @@
SYSCALL_SEMAPHORE_DOWN in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html b/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html
index ce325bb6..be10fecd 100644
--- a/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html
+++ b/ch8/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html
@@ -1,6 +1,8 @@
SYSCALL_SEMAPHORE_UP in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_SLEEP.html b/ch8/os/syscall/constant.SYSCALL_SLEEP.html
index e1e9e0bc..8f1480da 100644
--- a/ch8/os/syscall/constant.SYSCALL_SLEEP.html
+++ b/ch8/os/syscall/constant.SYSCALL_SLEEP.html
@@ -1,6 +1,8 @@
SYSCALL_SLEEP in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_THREAD_CREATE.html b/ch8/os/syscall/constant.SYSCALL_THREAD_CREATE.html
index 2fe08c30..f873b513 100644
--- a/ch8/os/syscall/constant.SYSCALL_THREAD_CREATE.html
+++ b/ch8/os/syscall/constant.SYSCALL_THREAD_CREATE.html
@@ -1,6 +1,8 @@
SYSCALL_THREAD_CREATE in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_WAITPID.html b/ch8/os/syscall/constant.SYSCALL_WAITPID.html
index d902aa1a..e4746848 100644
--- a/ch8/os/syscall/constant.SYSCALL_WAITPID.html
+++ b/ch8/os/syscall/constant.SYSCALL_WAITPID.html
@@ -1,6 +1,8 @@
SYSCALL_WAITPID in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_WAITTID.html b/ch8/os/syscall/constant.SYSCALL_WAITTID.html
index c259da17..a6c07f23 100644
--- a/ch8/os/syscall/constant.SYSCALL_WAITTID.html
+++ b/ch8/os/syscall/constant.SYSCALL_WAITTID.html
@@ -1,6 +1,8 @@
SYSCALL_WAITTID in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_WRITE.html b/ch8/os/syscall/constant.SYSCALL_WRITE.html
index 73f23b78..ffce29df 100644
--- a/ch8/os/syscall/constant.SYSCALL_WRITE.html
+++ b/ch8/os/syscall/constant.SYSCALL_WRITE.html
@@ -1,6 +1,8 @@
SYSCALL_WRITE in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/constant.SYSCALL_YIELD.html b/ch8/os/syscall/constant.SYSCALL_YIELD.html
index 45bf9297..0ab0ec57 100644
--- a/ch8/os/syscall/constant.SYSCALL_YIELD.html
+++ b/ch8/os/syscall/constant.SYSCALL_YIELD.html
@@ -1,6 +1,8 @@
SYSCALL_YIELD in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/fn.syscall.html b/ch8/os/syscall/fn.syscall.html
index fd17cd3b..baa1d5a6 100644
--- a/ch8/os/syscall/fn.syscall.html
+++ b/ch8/os/syscall/fn.syscall.html
@@ -1,6 +1,8 @@
syscall in os::syscall - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/fs/fn.sys_close.html b/ch8/os/syscall/fs/fn.sys_close.html
index 43b0efef..3e3471a6 100644
--- a/ch8/os/syscall/fs/fn.sys_close.html
+++ b/ch8/os/syscall/fs/fn.sys_close.html
@@ -1,6 +1,8 @@
sys_close in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/fs/fn.sys_dup.html b/ch8/os/syscall/fs/fn.sys_dup.html
index d0b39347..4e4ac120 100644
--- a/ch8/os/syscall/fs/fn.sys_dup.html
+++ b/ch8/os/syscall/fs/fn.sys_dup.html
@@ -1,6 +1,8 @@
sys_dup in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/fs/fn.sys_open.html b/ch8/os/syscall/fs/fn.sys_open.html
index 3bc3a469..34f41857 100644
--- a/ch8/os/syscall/fs/fn.sys_open.html
+++ b/ch8/os/syscall/fs/fn.sys_open.html
@@ -1,6 +1,8 @@
sys_open in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/fs/fn.sys_pipe.html b/ch8/os/syscall/fs/fn.sys_pipe.html
index 57c88e7d..84cd0af0 100644
--- a/ch8/os/syscall/fs/fn.sys_pipe.html
+++ b/ch8/os/syscall/fs/fn.sys_pipe.html
@@ -1,6 +1,8 @@
sys_pipe in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/fs/fn.sys_read.html b/ch8/os/syscall/fs/fn.sys_read.html
index b18050d3..17ff86fd 100644
--- a/ch8/os/syscall/fs/fn.sys_read.html
+++ b/ch8/os/syscall/fs/fn.sys_read.html
@@ -1,6 +1,8 @@
sys_read in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/fs/fn.sys_write.html b/ch8/os/syscall/fs/fn.sys_write.html
index 2bd61525..961b7436 100644
--- a/ch8/os/syscall/fs/fn.sys_write.html
+++ b/ch8/os/syscall/fs/fn.sys_write.html
@@ -1,6 +1,8 @@
sys_write in os::syscall::fs - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/process/fn.sys_exec.html b/ch8/os/syscall/process/fn.sys_exec.html
index 25d4e70b..be527834 100644
--- a/ch8/os/syscall/process/fn.sys_exec.html
+++ b/ch8/os/syscall/process/fn.sys_exec.html
@@ -1,6 +1,8 @@
sys_exec in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/process/fn.sys_exit.html b/ch8/os/syscall/process/fn.sys_exit.html
index 72a69ef6..52320f5f 100644
--- a/ch8/os/syscall/process/fn.sys_exit.html
+++ b/ch8/os/syscall/process/fn.sys_exit.html
@@ -1,6 +1,8 @@
sys_exit in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/process/fn.sys_fork.html b/ch8/os/syscall/process/fn.sys_fork.html
index e743f157..330a5cc1 100644
--- a/ch8/os/syscall/process/fn.sys_fork.html
+++ b/ch8/os/syscall/process/fn.sys_fork.html
@@ -1,6 +1,8 @@
sys_fork in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/process/fn.sys_get_time.html b/ch8/os/syscall/process/fn.sys_get_time.html
index fcf96d5b..2803d48f 100644
--- a/ch8/os/syscall/process/fn.sys_get_time.html
+++ b/ch8/os/syscall/process/fn.sys_get_time.html
@@ -1,6 +1,8 @@
sys_get_time in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/process/fn.sys_getpid.html b/ch8/os/syscall/process/fn.sys_getpid.html
index 4ab103f0..4fc5f586 100644
--- a/ch8/os/syscall/process/fn.sys_getpid.html
+++ b/ch8/os/syscall/process/fn.sys_getpid.html
@@ -1,6 +1,8 @@
sys_getpid in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/process/fn.sys_kill.html b/ch8/os/syscall/process/fn.sys_kill.html
index 08b9fd05..50f8c820 100644
--- a/ch8/os/syscall/process/fn.sys_kill.html
+++ b/ch8/os/syscall/process/fn.sys_kill.html
@@ -1,6 +1,8 @@
sys_kill in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/process/fn.sys_waitpid.html b/ch8/os/syscall/process/fn.sys_waitpid.html
index edae9303..237f1475 100644
--- a/ch8/os/syscall/process/fn.sys_waitpid.html
+++ b/ch8/os/syscall/process/fn.sys_waitpid.html
@@ -1,8 +1,10 @@
sys_waitpid in os::syscall::process - Rust
-
If there is not a child process whose pid is same as given, return -1.
Else if there is a child process but it is still running, return -2.
-
+
\ No newline at end of file
diff --git a/ch8/os/syscall/process/fn.sys_yield.html b/ch8/os/syscall/process/fn.sys_yield.html
index 7a2409fb..149022eb 100644
--- a/ch8/os/syscall/process/fn.sys_yield.html
+++ b/ch8/os/syscall/process/fn.sys_yield.html
@@ -1,6 +1,8 @@
sys_yield in os::syscall::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_condvar_create.html b/ch8/os/syscall/sync/fn.sys_condvar_create.html
index 221b0c76..86bcab39 100644
--- a/ch8/os/syscall/sync/fn.sys_condvar_create.html
+++ b/ch8/os/syscall/sync/fn.sys_condvar_create.html
@@ -1,6 +1,8 @@
sys_condvar_create in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_condvar_signal.html b/ch8/os/syscall/sync/fn.sys_condvar_signal.html
index f944c3ec..02a16101 100644
--- a/ch8/os/syscall/sync/fn.sys_condvar_signal.html
+++ b/ch8/os/syscall/sync/fn.sys_condvar_signal.html
@@ -1,6 +1,8 @@
sys_condvar_signal in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_condvar_wait.html b/ch8/os/syscall/sync/fn.sys_condvar_wait.html
index fde84215..3330d0df 100644
--- a/ch8/os/syscall/sync/fn.sys_condvar_wait.html
+++ b/ch8/os/syscall/sync/fn.sys_condvar_wait.html
@@ -1,6 +1,8 @@
sys_condvar_wait in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_mutex_create.html b/ch8/os/syscall/sync/fn.sys_mutex_create.html
index 723f7cf5..5a136428 100644
--- a/ch8/os/syscall/sync/fn.sys_mutex_create.html
+++ b/ch8/os/syscall/sync/fn.sys_mutex_create.html
@@ -1,6 +1,8 @@
sys_mutex_create in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_mutex_lock.html b/ch8/os/syscall/sync/fn.sys_mutex_lock.html
index 15d64cba..b1bdd2df 100644
--- a/ch8/os/syscall/sync/fn.sys_mutex_lock.html
+++ b/ch8/os/syscall/sync/fn.sys_mutex_lock.html
@@ -1,6 +1,8 @@
sys_mutex_lock in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_mutex_unlock.html b/ch8/os/syscall/sync/fn.sys_mutex_unlock.html
index e192e54a..7f70a93a 100644
--- a/ch8/os/syscall/sync/fn.sys_mutex_unlock.html
+++ b/ch8/os/syscall/sync/fn.sys_mutex_unlock.html
@@ -1,6 +1,8 @@
sys_mutex_unlock in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_semaphore_create.html b/ch8/os/syscall/sync/fn.sys_semaphore_create.html
index 2370a3fa..bcfc382b 100644
--- a/ch8/os/syscall/sync/fn.sys_semaphore_create.html
+++ b/ch8/os/syscall/sync/fn.sys_semaphore_create.html
@@ -1,6 +1,8 @@
sys_semaphore_create in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_semaphore_down.html b/ch8/os/syscall/sync/fn.sys_semaphore_down.html
index 34a07f69..9e403e41 100644
--- a/ch8/os/syscall/sync/fn.sys_semaphore_down.html
+++ b/ch8/os/syscall/sync/fn.sys_semaphore_down.html
@@ -1,6 +1,8 @@
sys_semaphore_down in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_semaphore_up.html b/ch8/os/syscall/sync/fn.sys_semaphore_up.html
index 7281694d..645d3eca 100644
--- a/ch8/os/syscall/sync/fn.sys_semaphore_up.html
+++ b/ch8/os/syscall/sync/fn.sys_semaphore_up.html
@@ -1,6 +1,8 @@
sys_semaphore_up in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/sync/fn.sys_sleep.html b/ch8/os/syscall/sync/fn.sys_sleep.html
index 8c7a649d..7f3a339e 100644
--- a/ch8/os/syscall/sync/fn.sys_sleep.html
+++ b/ch8/os/syscall/sync/fn.sys_sleep.html
@@ -1,6 +1,8 @@
sys_sleep in os::syscall::sync - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/thread/fn.sys_gettid.html b/ch8/os/syscall/thread/fn.sys_gettid.html
index 1faf620b..c00cd702 100644
--- a/ch8/os/syscall/thread/fn.sys_gettid.html
+++ b/ch8/os/syscall/thread/fn.sys_gettid.html
@@ -1,6 +1,8 @@
sys_gettid in os::syscall::thread - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/thread/fn.sys_thread_create.html b/ch8/os/syscall/thread/fn.sys_thread_create.html
index 59d09cec..1de9c924 100644
--- a/ch8/os/syscall/thread/fn.sys_thread_create.html
+++ b/ch8/os/syscall/thread/fn.sys_thread_create.html
@@ -1,6 +1,8 @@
sys_thread_create in os::syscall::thread - Rust
-
\ No newline at end of file
diff --git a/ch8/os/syscall/thread/fn.sys_waittid.html b/ch8/os/syscall/thread/fn.sys_waittid.html
index b5168fa5..489c2e9b 100644
--- a/ch8/os/syscall/thread/fn.sys_waittid.html
+++ b/ch8/os/syscall/thread/fn.sys_waittid.html
@@ -1,9 +1,11 @@
sys_waittid in os::syscall::thread - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/context/struct.TaskContext.html b/ch8/os/task/context/struct.TaskContext.html
index 86c3149c..76dd0a3a 100644
--- a/ch8/os/task/context/struct.TaskContext.html
+++ b/ch8/os/task/context/struct.TaskContext.html
@@ -1,19 +1,23 @@
TaskContext in os::task::context - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/fn.add_initproc.html b/ch8/os/task/fn.add_initproc.html
index 1e291ee6..bd7498f5 100644
--- a/ch8/os/task/fn.add_initproc.html
+++ b/ch8/os/task/fn.add_initproc.html
@@ -1,6 +1,8 @@
add_initproc in os::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/fn.block_current_and_run_next.html b/ch8/os/task/fn.block_current_and_run_next.html
index eb1ff107..ef47bdfd 100644
--- a/ch8/os/task/fn.block_current_and_run_next.html
+++ b/ch8/os/task/fn.block_current_and_run_next.html
@@ -1,6 +1,8 @@
block_current_and_run_next in os::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/fn.check_signals_of_current.html b/ch8/os/task/fn.check_signals_of_current.html
index 60f17b5b..ee2c3b91 100644
--- a/ch8/os/task/fn.check_signals_of_current.html
+++ b/ch8/os/task/fn.check_signals_of_current.html
@@ -1,6 +1,8 @@
check_signals_of_current in os::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/fn.current_add_signal.html b/ch8/os/task/fn.current_add_signal.html
index dc27d6e4..ae57127e 100644
--- a/ch8/os/task/fn.current_add_signal.html
+++ b/ch8/os/task/fn.current_add_signal.html
@@ -1,6 +1,8 @@
current_add_signal in os::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/fn.exit_current_and_run_next.html b/ch8/os/task/fn.exit_current_and_run_next.html
index 2360abc0..a0368b0f 100644
--- a/ch8/os/task/fn.exit_current_and_run_next.html
+++ b/ch8/os/task/fn.exit_current_and_run_next.html
@@ -1,6 +1,8 @@
exit_current_and_run_next in os::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/fn.suspend_current_and_run_next.html b/ch8/os/task/fn.suspend_current_and_run_next.html
index f0529347..fcfd9bd3 100644
--- a/ch8/os/task/fn.suspend_current_and_run_next.html
+++ b/ch8/os/task/fn.suspend_current_and_run_next.html
@@ -1,6 +1,8 @@
suspend_current_and_run_next in os::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/fn.kernel_stack_position.html b/ch8/os/task/id/fn.kernel_stack_position.html
index 4d746b7c..d5f5895f 100644
--- a/ch8/os/task/id/fn.kernel_stack_position.html
+++ b/ch8/os/task/id/fn.kernel_stack_position.html
@@ -1,7 +1,9 @@
kernel_stack_position in os::task::id - Rust
-
Return (bottom, top) of a kernel stack in kernel space.
+
\ No newline at end of file
diff --git a/ch8/os/task/id/fn.kstack_alloc.html b/ch8/os/task/id/fn.kstack_alloc.html
index ed362ad4..6358f391 100644
--- a/ch8/os/task/id/fn.kstack_alloc.html
+++ b/ch8/os/task/id/fn.kstack_alloc.html
@@ -1,6 +1,8 @@
kstack_alloc in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/fn.pid_alloc.html b/ch8/os/task/id/fn.pid_alloc.html
index 9e76e058..3e975810 100644
--- a/ch8/os/task/id/fn.pid_alloc.html
+++ b/ch8/os/task/id/fn.pid_alloc.html
@@ -1,6 +1,8 @@
pid_alloc in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/fn.trap_cx_bottom_from_tid.html b/ch8/os/task/id/fn.trap_cx_bottom_from_tid.html
index 5e5d08cb..cf4bbce1 100644
--- a/ch8/os/task/id/fn.trap_cx_bottom_from_tid.html
+++ b/ch8/os/task/id/fn.trap_cx_bottom_from_tid.html
@@ -1,6 +1,8 @@
trap_cx_bottom_from_tid in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/fn.ustack_bottom_from_tid.html b/ch8/os/task/id/fn.ustack_bottom_from_tid.html
index 954d1cb8..5a8977b7 100644
--- a/ch8/os/task/id/fn.ustack_bottom_from_tid.html
+++ b/ch8/os/task/id/fn.ustack_bottom_from_tid.html
@@ -1,6 +1,8 @@
ustack_bottom_from_tid in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/struct.KSTACK_ALLOCATOR.html b/ch8/os/task/id/struct.KSTACK_ALLOCATOR.html
index 428f7cba..d784d715 100644
--- a/ch8/os/task/id/struct.KSTACK_ALLOCATOR.html
+++ b/ch8/os/task/id/struct.KSTACK_ALLOCATOR.html
@@ -1,20 +1,24 @@
KSTACK_ALLOCATOR in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/struct.KernelStack.html b/ch8/os/task/id/struct.KernelStack.html
index 2a4cf7f3..730c4e8f 100644
--- a/ch8/os/task/id/struct.KernelStack.html
+++ b/ch8/os/task/id/struct.KernelStack.html
@@ -1,16 +1,20 @@
KernelStack in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/struct.PID_ALLOCATOR.html b/ch8/os/task/id/struct.PID_ALLOCATOR.html
index d4e9fa16..66cbad98 100644
--- a/ch8/os/task/id/struct.PID_ALLOCATOR.html
+++ b/ch8/os/task/id/struct.PID_ALLOCATOR.html
@@ -1,20 +1,24 @@
PID_ALLOCATOR in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/struct.PidHandle.html b/ch8/os/task/id/struct.PidHandle.html
index 9a28040a..a4431f41 100644
--- a/ch8/os/task/id/struct.PidHandle.html
+++ b/ch8/os/task/id/struct.PidHandle.html
@@ -1,16 +1,20 @@
PidHandle in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/struct.RecycleAllocator.html b/ch8/os/task/id/struct.RecycleAllocator.html
index d92efefd..5c11bac4 100644
--- a/ch8/os/task/id/struct.RecycleAllocator.html
+++ b/ch8/os/task/id/struct.RecycleAllocator.html
@@ -1,18 +1,22 @@
RecycleAllocator in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/id/struct.TaskUserRes.html b/ch8/os/task/id/struct.TaskUserRes.html
index 4e56392e..28430208 100644
--- a/ch8/os/task/id/struct.TaskUserRes.html
+++ b/ch8/os/task/id/struct.TaskUserRes.html
@@ -1,20 +1,24 @@
TaskUserRes in os::task::id - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/manager/fn.add_task.html b/ch8/os/task/manager/fn.add_task.html
index d3aefe8a..619e917f 100644
--- a/ch8/os/task/manager/fn.add_task.html
+++ b/ch8/os/task/manager/fn.add_task.html
@@ -1,6 +1,8 @@
add_task in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/manager/fn.fetch_task.html b/ch8/os/task/manager/fn.fetch_task.html
index 89e0c2af..f01de50e 100644
--- a/ch8/os/task/manager/fn.fetch_task.html
+++ b/ch8/os/task/manager/fn.fetch_task.html
@@ -1,6 +1,8 @@
fetch_task in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/manager/fn.insert_into_pid2process.html b/ch8/os/task/manager/fn.insert_into_pid2process.html
index 88bc64fb..0462649f 100644
--- a/ch8/os/task/manager/fn.insert_into_pid2process.html
+++ b/ch8/os/task/manager/fn.insert_into_pid2process.html
@@ -1,6 +1,8 @@
insert_into_pid2process in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/manager/fn.pid2process.html b/ch8/os/task/manager/fn.pid2process.html
index f5deabaa..50b50905 100644
--- a/ch8/os/task/manager/fn.pid2process.html
+++ b/ch8/os/task/manager/fn.pid2process.html
@@ -1,6 +1,8 @@
pid2process in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/manager/fn.remove_from_pid2process.html b/ch8/os/task/manager/fn.remove_from_pid2process.html
index 1ad81b39..97514522 100644
--- a/ch8/os/task/manager/fn.remove_from_pid2process.html
+++ b/ch8/os/task/manager/fn.remove_from_pid2process.html
@@ -1,6 +1,8 @@
remove_from_pid2process in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/manager/struct.PID2PCB.html b/ch8/os/task/manager/struct.PID2PCB.html
index a698294c..1521bb72 100644
--- a/ch8/os/task/manager/struct.PID2PCB.html
+++ b/ch8/os/task/manager/struct.PID2PCB.html
@@ -1,20 +1,24 @@
PID2PCB in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/manager/struct.TASK_MANAGER.html b/ch8/os/task/manager/struct.TASK_MANAGER.html
index 4fd04940..83770f6c 100644
--- a/ch8/os/task/manager/struct.TASK_MANAGER.html
+++ b/ch8/os/task/manager/struct.TASK_MANAGER.html
@@ -1,20 +1,24 @@
TASK_MANAGER in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/manager/struct.TaskManager.html b/ch8/os/task/manager/struct.TaskManager.html
index 06461f22..78cc2788 100644
--- a/ch8/os/task/manager/struct.TaskManager.html
+++ b/ch8/os/task/manager/struct.TaskManager.html
@@ -1,18 +1,22 @@
TaskManager in os::task::manager - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/process/struct.ProcessControlBlock.html b/ch8/os/task/process/struct.ProcessControlBlock.html
index 98ff06f6..db899063 100644
--- a/ch8/os/task/process/struct.ProcessControlBlock.html
+++ b/ch8/os/task/process/struct.ProcessControlBlock.html
@@ -1,20 +1,24 @@
ProcessControlBlock in os::task::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/process/struct.ProcessControlBlockInner.html b/ch8/os/task/process/struct.ProcessControlBlockInner.html
index 16b348af..408ecf11 100644
--- a/ch8/os/task/process/struct.ProcessControlBlockInner.html
+++ b/ch8/os/task/process/struct.ProcessControlBlockInner.html
@@ -1,8 +1,10 @@
ProcessControlBlockInner in os::task::process - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.current_kstack_top.html b/ch8/os/task/processor/fn.current_kstack_top.html
index 8dac726d..64b5b3d0 100644
--- a/ch8/os/task/processor/fn.current_kstack_top.html
+++ b/ch8/os/task/processor/fn.current_kstack_top.html
@@ -1,6 +1,8 @@
current_kstack_top in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.current_process.html b/ch8/os/task/processor/fn.current_process.html
index d5903bf0..bc4fd217 100644
--- a/ch8/os/task/processor/fn.current_process.html
+++ b/ch8/os/task/processor/fn.current_process.html
@@ -1,6 +1,8 @@
current_process in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.current_task.html b/ch8/os/task/processor/fn.current_task.html
index f6f6bccc..ab638a6e 100644
--- a/ch8/os/task/processor/fn.current_task.html
+++ b/ch8/os/task/processor/fn.current_task.html
@@ -1,6 +1,8 @@
current_task in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.current_trap_cx.html b/ch8/os/task/processor/fn.current_trap_cx.html
index 79f846c8..1a718a17 100644
--- a/ch8/os/task/processor/fn.current_trap_cx.html
+++ b/ch8/os/task/processor/fn.current_trap_cx.html
@@ -1,6 +1,8 @@
current_trap_cx in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.current_trap_cx_user_va.html b/ch8/os/task/processor/fn.current_trap_cx_user_va.html
index a42a3ccc..27324e8e 100644
--- a/ch8/os/task/processor/fn.current_trap_cx_user_va.html
+++ b/ch8/os/task/processor/fn.current_trap_cx_user_va.html
@@ -1,6 +1,8 @@
current_trap_cx_user_va in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.current_user_token.html b/ch8/os/task/processor/fn.current_user_token.html
index 6087a229..1b0a3b9b 100644
--- a/ch8/os/task/processor/fn.current_user_token.html
+++ b/ch8/os/task/processor/fn.current_user_token.html
@@ -1,6 +1,8 @@
current_user_token in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.run_tasks.html b/ch8/os/task/processor/fn.run_tasks.html
index d9451900..0f715a6f 100644
--- a/ch8/os/task/processor/fn.run_tasks.html
+++ b/ch8/os/task/processor/fn.run_tasks.html
@@ -1,6 +1,8 @@
run_tasks in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.schedule.html b/ch8/os/task/processor/fn.schedule.html
index 3e7f480b..92fb33e1 100644
--- a/ch8/os/task/processor/fn.schedule.html
+++ b/ch8/os/task/processor/fn.schedule.html
@@ -1,6 +1,8 @@
schedule in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/fn.take_current_task.html b/ch8/os/task/processor/fn.take_current_task.html
index 11abf37c..5393a0d8 100644
--- a/ch8/os/task/processor/fn.take_current_task.html
+++ b/ch8/os/task/processor/fn.take_current_task.html
@@ -1,6 +1,8 @@
take_current_task in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/struct.PROCESSOR.html b/ch8/os/task/processor/struct.PROCESSOR.html
index 02d16739..0c4a9675 100644
--- a/ch8/os/task/processor/struct.PROCESSOR.html
+++ b/ch8/os/task/processor/struct.PROCESSOR.html
@@ -1,20 +1,24 @@
PROCESSOR in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/processor/struct.Processor.html b/ch8/os/task/processor/struct.Processor.html
index 9fc6cc87..48ca87af 100644
--- a/ch8/os/task/processor/struct.Processor.html
+++ b/ch8/os/task/processor/struct.Processor.html
@@ -1,18 +1,22 @@
Processor in os::task::processor - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/signal/struct.SignalFlags.html b/ch8/os/task/signal/struct.SignalFlags.html
index c994d201..aa8a6398 100644
--- a/ch8/os/task/signal/struct.SignalFlags.html
+++ b/ch8/os/task/signal/struct.SignalFlags.html
@@ -1,53 +1,55 @@
SignalFlags in os::task::signal - Rust
-
Returns the union of between the flags in self and other.
Specifically, the returned set contains all flags which are
present in eitherselforother, 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.
Specifically, the returned set contains the flags present which
are present in self or other, but that are not present in
@@ -55,65 +57,67 @@ 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.
\ No newline at end of file
diff --git a/ch8/os/task/struct.INITPROC.html b/ch8/os/task/struct.INITPROC.html
index 8fdf6391..386bfae5 100644
--- a/ch8/os/task/struct.INITPROC.html
+++ b/ch8/os/task/struct.INITPROC.html
@@ -1,19 +1,23 @@
INITPROC in os::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/switch/fn.__switch.html b/ch8/os/task/switch/fn.__switch.html
index 7d5e620d..71540423 100644
--- a/ch8/os/task/switch/fn.__switch.html
+++ b/ch8/os/task/switch/fn.__switch.html
@@ -1,6 +1,8 @@
__switch in os::task::switch - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/task/enum.TaskStatus.html b/ch8/os/task/task/enum.TaskStatus.html
index 77dce7dc..1fba410c 100644
--- a/ch8/os/task/task/enum.TaskStatus.html
+++ b/ch8/os/task/task/enum.TaskStatus.html
@@ -1,27 +1,31 @@
TaskStatus in os::task::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/task/struct.TaskControlBlock.html b/ch8/os/task/task/struct.TaskControlBlock.html
index 6de2a314..57936985 100644
--- a/ch8/os/task/task/struct.TaskControlBlock.html
+++ b/ch8/os/task/task/struct.TaskControlBlock.html
@@ -1,19 +1,23 @@
TaskControlBlock in os::task::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/task/task/struct.TaskControlBlockInner.html b/ch8/os/task/task/struct.TaskControlBlockInner.html
index 4b70818b..3179f845 100644
--- a/ch8/os/task/task/struct.TaskControlBlockInner.html
+++ b/ch8/os/task/task/struct.TaskControlBlockInner.html
@@ -1,21 +1,25 @@
TaskControlBlockInner in os::task::task - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/constant.MSEC_PER_SEC.html b/ch8/os/timer/constant.MSEC_PER_SEC.html
index 3c422973..819371c1 100644
--- a/ch8/os/timer/constant.MSEC_PER_SEC.html
+++ b/ch8/os/timer/constant.MSEC_PER_SEC.html
@@ -1,6 +1,8 @@
MSEC_PER_SEC in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/constant.TICKS_PER_SEC.html b/ch8/os/timer/constant.TICKS_PER_SEC.html
index 296cfd51..65ff446c 100644
--- a/ch8/os/timer/constant.TICKS_PER_SEC.html
+++ b/ch8/os/timer/constant.TICKS_PER_SEC.html
@@ -1,6 +1,8 @@
TICKS_PER_SEC in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/fn.add_timer.html b/ch8/os/timer/fn.add_timer.html
index bb2c944a..062214c0 100644
--- a/ch8/os/timer/fn.add_timer.html
+++ b/ch8/os/timer/fn.add_timer.html
@@ -1,6 +1,8 @@
add_timer in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/fn.check_timer.html b/ch8/os/timer/fn.check_timer.html
index 4084c492..1597850d 100644
--- a/ch8/os/timer/fn.check_timer.html
+++ b/ch8/os/timer/fn.check_timer.html
@@ -1,6 +1,8 @@
check_timer in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/fn.get_time.html b/ch8/os/timer/fn.get_time.html
index b217a3fb..052a1cfd 100644
--- a/ch8/os/timer/fn.get_time.html
+++ b/ch8/os/timer/fn.get_time.html
@@ -1,6 +1,8 @@
get_time in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/fn.get_time_ms.html b/ch8/os/timer/fn.get_time_ms.html
index 1749b65b..24cd029c 100644
--- a/ch8/os/timer/fn.get_time_ms.html
+++ b/ch8/os/timer/fn.get_time_ms.html
@@ -1,6 +1,8 @@
get_time_ms in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/fn.set_next_trigger.html b/ch8/os/timer/fn.set_next_trigger.html
index 5e597118..a39e0225 100644
--- a/ch8/os/timer/fn.set_next_trigger.html
+++ b/ch8/os/timer/fn.set_next_trigger.html
@@ -1,6 +1,8 @@
set_next_trigger in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/struct.TIMERS.html b/ch8/os/timer/struct.TIMERS.html
index 13c5aced..61a5f265 100644
--- a/ch8/os/timer/struct.TIMERS.html
+++ b/ch8/os/timer/struct.TIMERS.html
@@ -1,20 +1,24 @@
TIMERS in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/timer/struct.TimerCondVar.html b/ch8/os/timer/struct.TimerCondVar.html
index 3abc9cab..b41ccedc 100644
--- a/ch8/os/timer/struct.TimerCondVar.html
+++ b/ch8/os/timer/struct.TimerCondVar.html
@@ -1,32 +1,36 @@
TimerCondVar in os::timer - Rust
-
\ No newline at end of file
diff --git a/ch8/os/trap/context/struct.TrapContext.html b/ch8/os/trap/context/struct.TrapContext.html
index 25f423a0..ed6178e8 100644
--- a/ch8/os/trap/context/struct.TrapContext.html
+++ b/ch8/os/trap/context/struct.TrapContext.html
@@ -1,23 +1,27 @@
TrapContext in os::trap::context - Rust
-
\ No newline at end of file
diff --git a/ch8/os/trap/fn.enable_timer_interrupt.html b/ch8/os/trap/fn.enable_timer_interrupt.html
index d33259e0..e1324c0c 100644
--- a/ch8/os/trap/fn.enable_timer_interrupt.html
+++ b/ch8/os/trap/fn.enable_timer_interrupt.html
@@ -1,6 +1,8 @@
enable_timer_interrupt in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch8/os/trap/fn.init.html b/ch8/os/trap/fn.init.html
index 296c51cd..84ca830f 100644
--- a/ch8/os/trap/fn.init.html
+++ b/ch8/os/trap/fn.init.html
@@ -1,6 +1,8 @@
init in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch8/os/trap/fn.set_kernel_trap_entry.html b/ch8/os/trap/fn.set_kernel_trap_entry.html
index 547682d6..f2a71039 100644
--- a/ch8/os/trap/fn.set_kernel_trap_entry.html
+++ b/ch8/os/trap/fn.set_kernel_trap_entry.html
@@ -1,6 +1,8 @@
set_kernel_trap_entry in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch8/os/trap/fn.set_user_trap_entry.html b/ch8/os/trap/fn.set_user_trap_entry.html
index aa677228..201ea76d 100644
--- a/ch8/os/trap/fn.set_user_trap_entry.html
+++ b/ch8/os/trap/fn.set_user_trap_entry.html
@@ -1,6 +1,8 @@
set_user_trap_entry in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch8/os/trap/fn.trap_from_kernel.html b/ch8/os/trap/fn.trap_from_kernel.html
index a26ced20..1c4e3296 100644
--- a/ch8/os/trap/fn.trap_from_kernel.html
+++ b/ch8/os/trap/fn.trap_from_kernel.html
@@ -1,7 +1,9 @@
trap_from_kernel in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch8/os/trap/fn.trap_handler.html b/ch8/os/trap/fn.trap_handler.html
index dd960d1a..5283d373 100644
--- a/ch8/os/trap/fn.trap_handler.html
+++ b/ch8/os/trap/fn.trap_handler.html
@@ -1,7 +1,9 @@
trap_handler in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch8/os/trap/fn.trap_return.html b/ch8/os/trap/fn.trap_return.html
index 916a98a6..1db45cd7 100644
--- a/ch8/os/trap/fn.trap_return.html
+++ b/ch8/os/trap/fn.trap_return.html
@@ -1,7 +1,9 @@
trap_return in os::trap - Rust
-
\ No newline at end of file
diff --git a/ch8/rustdoc.css b/ch8/rustdoc.css
index deed2f8a..674a5af6 100644
--- a/ch8/rustdoc.css
+++ b/ch8/rustdoc.css
@@ -1 +1 @@
- @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.4 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.4rem;}h3{font-size:1.3rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;border-bottom:1px dashed #DDDDDD;padding-bottom:6px;margin-bottom:15px;padding-left:1px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4,.sidebar .others h3{border-bottom:1px solid;}h3.code-header{font-size:1.1rem;}h4.code-header{font-size:1rem;}h3.code-header,h4.code-header{font-weight:600;border-bottom-style:none;padding:0;margin:0;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;margin-top:16px;margin-bottom:10px;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}.content ul.crate a.crate{font-size:1rem/1.6;}ol,ul{padding-left:25px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.6em;}p{margin:0 0 .6em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.1em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{width:200px;overflow-y:scroll;position:sticky;min-width:200px;height:100vh;top:0;left:0;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(:first-child){transition:opacity 0.5s,visibility 0.2s;opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*{opacity:1;visibility:visible;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.sidebar .block>ul>li{margin-right:-10px;}.hidden{display:none !important;}.logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.logo-container>img{height:100px;width:100px;}.sidebar .location{border:1px solid;font-size:1.0625rem;margin:30px 10px 20px 10px;text-align:center;word-wrap:break-word;font-weight:inherit;padding:0;}.sidebar .version{font-size:0.9375rem;text-align:center;border-bottom:1px solid;overflow-wrap:break-word;overflow-wrap:anywhere;word-wrap:break-word;word-break:break-word;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.location a:hover{text-decoration:underline;}.block{padding:0;margin-bottom:14px;}.block h2,.block h3{text-align:center;}.block ul,.block li{margin:0 10px;padding:0;list-style:none;}.block a{display:block;text-overflow:ellipsis;overflow:hidden;line-height:15px;padding:7px 5px;font-size:0.875rem;font-weight:300;transition:border 500ms ease-out;}.sidebar-title{border-top:1px solid;border-bottom:1px solid;text-align:center;font-size:1.0625rem;margin-bottom:5px;font-weight:inherit;padding:0;}.sidebar-links{margin-bottom:15px;}.sidebar-links>a{padding-left:10px;width:100%;}.sidebar-menu{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.3rem;}.top-doc .docblock h3{font-size:1.15rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.1rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.95rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;text-align:right;margin-left:auto;margin-right:0;font-size:1.15rem;padding:0 0 0 12px;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header,.invisible>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.1rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;overflow-wrap:normal;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.8rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .item-info code{font-size:0.81rem;}.content .item-info{position:relative;margin-left:33px;}.sub-variant>div>.item-info{margin-top:initial;}.content .item-info::before{content:'⬑';font-size:1.5625rem;position:absolute;top:-6px;left:-19px;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;}nav:not(.sidebar){flex-grow:1;border-bottom:1px solid;padding-bottom:10px;margin-bottom:25px;}.source nav:not(.sidebar).sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.invisible>.srclink,.method>.code-header+.srclink{position:absolute;top:0;right:0;font-size:1.0625rem;font-weight:normal;}.block a.current.crate{font-weight:500;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.2rem;}.search-container{position:relative;max-width:960px;}.search-container>div{display:inline-flex;width:calc(100% - 63px);}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.2em;padding-left:0.3em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container>.top-button{position:absolute;right:0;top:10px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:none;border-radius:1px;margin-top:5px;padding:10px 16px;font-size:1.0625rem;transition:border-color 300ms ease;transition:border-radius 300ms ease-in-out;transition:box-shadow 300ms ease-in-out;width:100%;}.search-input:focus{border-radius:2px;border:0;outline:0;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:table;}.stab{padding:3px;margin-bottom:5px;font-size:0.9rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.2rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.8rem;line-height:1.2;margin-bottom:0;margin-left:.3em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.impl .srclink{font-size:1.0625rem;}.rightside{float:right;}.has-srclink{font-size:1rem;margin-bottom:12px;justify-content:space-between;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.3rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}a.test-arrow:hover{text-decoration:none;}.section-header:hover a:before{position:absolute;left:-25px;padding-right:10px;content:'\2002\00a7\2002';}.section-header:hover a{text-decoration:none;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;margin-right:5px;}h3.variant{font-weight:600;font-size:1.1rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}.top-doc .docblock>.section-header:first-child{margin-left:15px;}.top-doc .docblock>.section-header:first-child:hover>a:before{left:-10px;}.docblock>.section-header:first-child{margin-top:0;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#all-types{text-align:center;border:1px solid;margin:0 10px;margin-bottom:10px;display:block;border-radius:7px;}#all-types>p{margin:5px 0;}#sidebar-toggle{position:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.2rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-34px;top:9px;}.theme-picker button{outline:none;}#settings-menu,#help-button{position:absolute;top:10px;}#settings-menu{right:0;outline:none;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:4px;font-size:16px;width:27px;height:29px;border:1px solid;border-radius:3px;cursor:pointer;}#help-button{right:30px;font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:16px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;box-shadow:inset 0 -1px 0;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.1875rem;display:block;}#implementors-list>.impl-items .table-display .out-of-band{font-size:1.0625rem;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.7rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:3px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:17px;height:max(17px,1.1em);background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.rustdoc.source .sidebar{transition:width .5s;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){body{padding-top:0px;}main{padding-left:15px;padding-top:0px;}#theme-picker{display:none;width:0;}.rustdoc{flex-direction:column;}.rustdoc:not(.source)>.sidebar{width:100%;height:45px;min-height:40px;max-height:45px;margin:0;padding:0 15px;position:static;z-index:11;overflow-y:hidden;}.rustdoc.source>.sidebar{position:fixed;top:0;left:0;margin:0;z-index:11;width:0;}.sidebar.mobile{position:sticky !important;top:0;left:0;width:100%;margin-left:0;background-color:rgba(0,0,0,0);}.sidebar>.location{float:right;margin:0px;margin-top:2px;padding:3px 10px 1px 10px;min-height:39px;background:inherit;text-align:left;font-size:1.5rem;}.sidebar .location:empty{padding:0;}.rustdoc:not(.source) .sidebar .logo-container{width:35px;height:35px;margin-top:5px;margin-bottom:5px;float:left;margin-left:50px;}.sidebar .logo-container>img{max-width:35px;max-height:35px;}.sidebar-menu{position:fixed;z-index:10;font-size:2rem;cursor:pointer;width:45px;left:0;top:0;text-align:center;display:block;border-bottom:1px solid;border-right:1px solid;height:45px;}.rustdoc.source>.sidebar>.sidebar-menu{display:none;}.sidebar-elems{position:fixed;z-index:1;top:45px;bottom:0;width:246px;left:-246px;overflow-y:auto;border-right:1px solid;}.sidebar>.block.version{overflow:hidden;border-bottom:none;margin-bottom:0;height:100%;padding-left:12px;}.sidebar>.block.version>div.narrow-helper{float:left;width:1px;height:100%;}.sidebar>.block.version>p{margin:0;min-width:55px;display:flex;align-items:center;height:100%;}.source nav:not(.sidebar).sub{margin-left:32px;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.theme-picker{z-index:1;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}.show-it,.sidebar-elems:focus-within{z-index:2;left:0;}.show-it>.block.items{margin:8px 0;}.show-it>.block.items>ul{margin:0;}.show-it>.block.items>ul>li{text-align:center;margin:2px 0;}.show-it>.block.items>ul>li>a{font-size:1.3125rem;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}#all-types{margin:10px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-container>div{width:calc(100% - 32px);}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}.search-container>div{display:block;width:calc(100% - 37px);}#crate-search{border-radius:4px;border:0;}#theme-picker,#settings-menu{padding:5px;width:31px;height:31px;}#theme-picker{margin-top:-2px;}#settings-menu{top:7px;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock table code{overflow-wrap:normal;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;}
\ No newline at end of file
+ @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;flex-wrap:wrap;justify-content:space-between;padding-bottom:6px;margin-bottom:15px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4{border-bottom:1px solid;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;border-bottom-style:none;margin:0;padding:0;margin-top:0.6em;margin-bottom:0.4em;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p{margin:0 0 .75em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{padding:1px 6px;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{font-size:0.875rem;width:250px;min-width:200px;overflow-y:scroll;position:sticky;height:100vh;top:0;left:0;}.sidebar-elems,.sidebar>.location{padding-left:24px;}.sidebar .location{overflow-wrap:anywhere;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(#sidebar-toggle){opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*:not(#sidebar-toggle){opacity:1;visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.hidden{display:none !important;}.sidebar .logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.block{padding:0;}.block ul,.block li{padding:0;margin:0;list-style:none;}.block a,h2.location a{display:block;padding:0.25rem;margin-left:-0.25rem;text-overflow:ellipsis;overflow:hidden;}.sidebar h2{border-bottom:none;font-weight:500;padding:0;margin:0;margin-top:0.7rem;margin-bottom:0.7rem;}.sidebar h3{font-size:1.125rem;font-weight:500;padding:0;margin:0;}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;}.mobile-topbar{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.line-numbers{text-align:right;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;font-size:1.125rem;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.125rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.875rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.item-info{display:block;}.content .item-info code{font-size:0.875rem;}.content .item-info{position:relative;margin-left:24px;}.sub-variant>div>.item-info{margin-top:initial;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;margin-left:0;}nav.sub{flex-grow:1;margin-bottom:25px;}.source nav.sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.block a.current.crate{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.25rem;}.search-container{position:relative;display:flex;height:34px;}.search-container>*{height:100%;}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.25em;padding-left:0.3125em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container{margin-top:4px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:1px solid;border-radius:2px;padding:8px;font-size:1rem;transition:border-color 300ms ease;width:100%;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:inline-block;}.stab{padding:3px;margin-bottom:5px;font-size:0.875rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.25rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.875rem;line-height:1.2;margin-bottom:0;margin-left:0.3125em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.rightside{float:right;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}a.test-arrow:hover{text-decoration:none;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;}h3.variant{font-weight:600;font-size:1.125rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;display:block;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#sidebar-toggle{position:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-38px;top:4px;}.theme-picker button{outline:none;}#settings-menu,#help-button{margin-left:4px;outline:none;}#theme-picker,#copy-path{height:34px;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:5px;width:33px;border:1px solid;border-radius:2px;cursor:pointer;}#help-button{font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:20px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.125rem;display:block;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.625rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{padding-top:0px;display:block;}main{padding-left:15px;padding-top:0px;}.rustdoc,.main-heading{flex-direction:column;}.content .out-of-band{text-align:left;margin-left:initial;padding:initial;}.content .out-of-band .since::before{content:"Since ";}#copy-path{display:none;}.sidebar .sidebar-logo,.sidebar .location{display:none;}.sidebar-elems{margin-top:1em;}.sidebar{position:fixed;top:45px;left:-1000px;margin-left:0;background-color:rgba(0,0,0,0);margin:0;padding:0;z-index:11;height:calc(100vh - 45px);}.source main,.source .sidebar{top:0;padding:0;}.sidebar.shown,.sidebar.expanded,.sidebar:focus-within{left:0;}.rustdoc.source>.sidebar{position:fixed;margin:0;z-index:11;width:0;}.mobile-topbar .location a{padding:0;margin:0;}.mobile-topbar .location{border:none;padding:0;margin:auto 0.5em auto auto;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:24px;}.mobile-topbar .logo-container{max-height:45px;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin-left:20px;margin-top:5px;margin-bottom:5px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.source .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;}.source nav:not(.sidebar).sub{margin-left:32px;}#theme-picker{display:none;width:0;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}#crate-search{border-radius:4px;border:0;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.method-toggle summary,.implementors-toggle summary,.impl{margin-bottom:0.75em;}.method-toggle[open]{margin-bottom:2em;}.implementors-toggle[open]{margin-bottom:2em;}#trait-implementations-list .method-toggle,#synthetic-implementations-list .method-toggle,#blanket-implementations-list .method-toggle{margin-bottom:1em;}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;}
\ No newline at end of file
diff --git a/ch8/search-index.js b/ch8/search-index.js
index 64157d28..8adee2be 100644
--- a/ch8/search-index.js
+++ b/ch8/search-index.js
@@ -1,4 +1,4 @@
var searchIndex = JSON.parse('{\
-"os":{"doc":"","t":[0,5,0,0,0,0,0,0,14,14,5,0,0,0,0,0,0,6,17,17,17,17,17,17,17,17,17,17,3,11,11,11,11,5,11,11,11,11,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,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,12,3,17,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,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,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,3,11,11,11,11,12,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,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,3,11,11,11,11,11,11,12,12,12,11,12,12,11,11,11,12],"n":["board","clear_bss","config","console","drivers","fs","lang_items","mm","print","println","rust_main","sbi","sync","syscall","task","timer","trap","BlockDeviceImpl","CLOCK_FREQ","MMIO","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","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","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","0","QUEUE_FRAMES","VIRTIO0","VirtIOBlock","__private_field","borrow","borrow","borrow_mut","borrow_mut","deref","from","from","into","into","new","read_block","try_from","try_from","try_into","try_into","type_id","type_id","virtio_dma_alloc","virtio_dma_dealloc","virtio_phys_to_virt","virtio_virt_to_phys","write_block","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","wait_queue","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","UPSafeCell","borrow","borrow_mut","exclusive_access","from","inner","into","new","try_from","try_into","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","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","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::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":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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 ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Connect pins to internal functions ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","","","","","","","","","","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 …","","","","","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return (read_end, write_end)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Definitions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","","","","","","","","","","","","","","","","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 …","","","","","","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.","","","","","","","","","","","","","","","","","","","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 …","","","","","","","","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Wrap a static data structure inside it so that we are able …","","","Panic if the data has been borrowed.","","inner data","","User is responsible to guarantee that inner struct is only …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","","","","","thread does not exist, return -1 thread has not exited …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return (bottom, top) of a kernel stack in kernel space.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Only support processes with a single thread.","","","Only support processes with a single thread.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","","","","","","","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 …","","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.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[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,1,1,1,1,0,1,1,1,1,0,0,2,0,2,2,2,2,2,0,2,2,2,0,3,4,4,5,0,4,4,4,4,4,4,4,4,4,4,4,4,4,6,7,7,8,8,6,9,9,6,7,7,7,7,7,7,7,7,7,7,8,0,7,5,5,7,7,7,5,0,7,7,5,5,5,5,7,7,7,5,7,5,7,7,0,0,0,0,0,0,0,0,0,0,0,9,9,0,7,7,7,7,7,7,7,7,10,8,3,4,6,7,5,9,10,8,3,4,6,7,5,9,10,4,6,7,5,9,4,6,7,5,9,8,10,8,4,4,6,7,5,9,8,3,4,6,7,5,9,10,8,8,8,8,8,8,0,8,3,4,6,7,5,9,10,0,8,8,3,3,8,8,8,8,8,4,6,7,5,9,8,3,4,6,7,5,9,10,8,3,4,6,7,5,9,10,8,3,4,6,7,5,9,10,3,8,8,11,12,11,13,0,0,0,14,13,14,13,14,14,13,14,13,14,13,13,13,14,13,14,13,14,0,0,0,0,13,0,0,0,15,15,0,15,15,16,0,0,0,16,16,0,16,16,17,16,16,16,16,16,16,16,16,16,18,19,17,16,18,19,17,16,16,16,16,16,16,17,16,16,16,16,16,16,16,16,16,18,19,17,16,16,16,16,16,16,18,19,16,16,16,18,19,17,16,16,16,0,16,18,16,19,0,16,18,18,16,18,18,16,16,16,16,16,16,16,18,19,17,16,18,19,17,16,18,19,17,16,16,18,18,18,20,20,20,0,0,0,0,21,21,21,21,22,21,20,22,21,20,22,20,20,20,22,21,20,21,22,21,20,0,21,22,21,22,22,22,21,21,21,20,22,21,20,22,21,20,22,21,20,22,22,22,21,21,22,0,0,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,0,0,0,0,0,0,0,0,25,26,27,28,0,0,0,0,0,0,0,0,0,0,0,0,25,26,29,25,26,27,28,30,29,25,26,27,28,30,25,26,25,26,27,28,30,25,26,27,28,30,25,26,27,28,29,29,25,26,27,28,25,26,25,26,27,28,29,25,25,25,26,26,26,27,27,27,28,28,28,30,27,30,25,27,27,25,30,28,29,25,26,27,28,30,29,30,30,25,26,27,28,29,30,29,25,26,25,26,27,28,30,31,27,28,25,26,27,28,30,29,25,26,27,28,30,29,25,26,27,28,30,29,25,26,27,28,30,0,0,0,0,0,32,33,34,35,34,32,35,34,32,34,33,34,32,35,34,35,0,0,0,35,34,32,34,0,35,34,32,33,35,34,35,34,35,34,32,35,34,32,35,34,32,0,0,0,0,0,36,36,0,0,0,0,0,37,37,37,37,38,39,37,39,37,37,37,37,37,37,37,37,39,40,38,36,37,39,40,38,36,37,36,37,36,37,37,37,37,40,40,38,37,0,0,0,37,36,37,0,0,37,36,37,37,37,37,37,39,40,38,36,37,40,37,37,37,39,39,37,37,37,39,37,37,39,40,38,36,37,37,37,0,40,40,40,39,40,37,40,39,39,37,39,37,39,39,0,37,39,0,0,37,0,0,0,37,37,37,36,37,37,39,39,39,40,38,36,37,39,40,38,36,37,39,40,38,36,37,37,40,40,40,41,41,41,0,0,0,41,41,0,0,41,41,41,41,41,41,41,41,41,41,42,41,41,43,44,45,41,42,43,44,45,41,42,44,45,41,42,41,42,41,41,41,45,45,41,41,42,41,42,41,43,43,42,41,41,41,41,41,43,43,44,45,41,42,41,41,41,41,43,41,41,41,41,43,44,45,41,42,44,45,41,41,42,44,43,41,43,44,42,45,41,41,42,42,41,43,41,41,41,41,41,42,41,43,43,43,0,0,0,0,43,44,45,41,42,43,44,45,41,42,43,44,45,41,42,41,43,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,47,46,47,46,47,46,46,47,46,46,46,47,46,47,46,47,46,47,0,0,0,0,48,49,50,48,49,50,48,49,50,49,48,49,50,51,48,49,48,50,48,49,48,49,50,48,49,50,48,49,50,51,48,49,50,0,0,52,53,52,53,53,52,52,53,52,52,53,52,52,53,52,53,52,53,52,53,0,54,54,54,54,54,54,54,54,54,54,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,55,0,0,55,55,0,0,0,55,0,55,0,55,0,0,0,0,0,0,0,55,55,55,0,56,56,56,56,56,56,56,56,56,56,56,56,57,58,0,0,0,0,0,0,59,60,61,62,62,61,57,58,62,59,60,61,57,58,62,59,60,61,61,62,62,59,60,57,58,62,61,57,58,62,59,60,58,61,57,58,62,59,60,0,0,61,62,0,62,58,61,62,0,62,62,61,57,58,62,59,60,61,57,58,62,59,60,61,57,58,62,59,60,62,62,0,62,0,0,0,63,64,65,0,65,63,64,65,63,64,63,64,65,0,65,63,64,0,65,63,64,65,0,65,0,65,63,64,65,63,64,65,63,64,0,0,66,66,67,66,67,66,66,66,66,67,66,66,67,67,66,66,66,67,67,67,67,66,66,66,66,67,66,67,66,66,66,66,66,67,66,67,66,67,66,0,0,68,69,68,69,68,69,69,0,0,0,0,0,0,68,69,68,69,69,69,68,69,0,0,69,0,69,68,69,68,69,68,70,70,70,70,70,0,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,0,71,71,71,0,0,0,72,73,71,72,73,71,71,71,71,73,72,73,71,73,73,72,72,72,72,73,71,72,72,72,73,73,73,71,73,72,73,71,72,73,71,72,73,71,0,0,0,0,74,0,75,74,75,74,0,75,74,75,75,75,74,0,0,75,74,75,0,75,75,74,75,74,75,74,0,0,0,0,0,0,0,0,0,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76],"f":[null,[[]],null,null,null,null,null,null,null,null,[[],["never",15]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["arguments",3]]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["str",15]],["result",6]],null,null,null,[[]],[[]],[[]],[[],["arc",3]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["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,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,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["cmd",4]],[[],["initerror",4]],[[],["sdcardcsd",3]],[[],["sdcardcid",3]],[[],["sdcardinfo",3]],[[]],[[]],[[]],[[]],[[]],null,[[],["upsafecell",3]],[[]],[[["cmd",4]],["bool",15]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4,[["sdcardinfo",3]]]],[[],["result",4,[["sdcardcid",3]]]],[[],["result",4,[["sdcardcsd",3]]]],[[],["u8",15]],[[],["u8",15]],[[],["result",4,[["sdcardinfo",3],["initerror",4]]]],[[],["sdcard",3,[["spiimpl",3,[["spi0",3]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["u32",15],["u8",15]]],[[]],[[["usize",15]]],[[]],[[["u32",15]],["result",4]],[[["cmd",4],["u32",15],["u8",15]]],null,null,[[]],[[]],[[]],[[]],[[]],[[],["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]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["usize",15]]],[[]],[[["u32",15]],["result",4]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["upsafecell",3]],[[]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[["usize",15]],["physaddr",3]],[[["physaddr",3],["usize",15]],["i32",15]],[[["physaddr",3]],["virtaddr",3]],[[["virtaddr",3]],["physaddr",3]],[[["usize",15]]],null,null,null,[[["userbuffer",3]],["usize",15]],[[],["bool",15]],null,[[],["bool",15]],[[["userbuffer",3]],["usize",15]],null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[["openflags",3]]],[[]],[[],["u32",15]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["openflags",3]],[[]],[[["openflags",3]],["ordering",4]],[[]],[[],["bool",15]],[[],["arc",3]],[[]],[[]],[[["openflags",3]],["bool",15]],[[["intoiterator",8]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["u32",15]],["option",4]],[[["u32",15]]],[[["u32",15]]],[[["intoiterator",8]]],[[]],null,null,[[]],[[]],[[],["bool",15]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[]],[[["openflags",3]],["bool",15]],[[["bool",15],["bool",15],["arc",3,[["inode",3]]]]],[[]],null,[[["str",15],["openflags",3]],["option",4,[["arc",3,[["osinode",3]]]]]],[[["openflags",3]],["option",4,[["ordering",4]]]],[[["userbuffer",3]],["usize",15]],[[],["vec",3,[["u8",15]]]],[[]],[[],["bool",15]],null,[[]],[[["bool",15]]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[],["bool",15]],null,[[["userbuffer",3]],["usize",15]],null,null,null,null,null,null,null,[[],["bool",15]],null,[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["ringbufferstatus",4]],[[]],[[["ringbufferstatus",4]],["bool",15]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[["userbuffer",3]],["usize",15]],[[],["u8",15]],[[["arc",3,[["upsafecell",3,[["piperingbuffer",3]]]]]]],[[],["bool",15]],null,[[["arc",3]]],null,null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["bool",15]],null,[[["userbuffer",3]],["usize",15]],[[["u8",15]]],null,[[["arc",3,[["upsafecell",3,[["piperingbuffer",3]]]]]]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["userbuffer",3]],["usize",15]],[[["userbuffer",3]],["usize",15]],[[],["bool",15]],[[],["bool",15]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["bool",15]],[[],["bool",15]],[[["userbuffer",3]],["usize",15]],[[["userbuffer",3]],["usize",15]],[[]],[[["panicinfo",3]],["never",15]],null,null,null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],["bool",15]],[[],["bool",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["physpagenum",3]],[[],["virtpagenum",3]],[[],["physaddr",3]],[[],["virtaddr",3]],[[],["physpagenum",3]],[[],["virtpagenum",3]],[[],["simplerange",3]],[[]],[[]],[[]],[[]],[[]],[[["physaddr",3]],["ordering",4]],[[["virtaddr",3]],["ordering",4]],[[["physpagenum",3]],["ordering",4]],[[["virtpagenum",3]],["ordering",4]],null,null,[[["physaddr",3]],["bool",15]],[[["virtaddr",3]],["bool",15]],[[["physpagenum",3]],["bool",15]],[[["virtpagenum",3]],["bool",15]],[[],["physpagenum",3]],[[],["virtpagenum",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["usize",15]]],[[["physpagenum",3]]],[[["virtpagenum",3]]],[[]],[[["usize",15]]],[[]],[[["usize",15]]],[[["physaddr",3]]],[[]],[[["virtaddr",3]]],[[["usize",15]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["physaddr",3]],["bool",15]],[[["virtaddr",3]],["bool",15]],[[["physpagenum",3]],["bool",15]],[[["virtpagenum",3]],["bool",15]],[[]],[[]],[[],["option",4]],[[],["usize",15]],[[],["usize",15]],[[["physaddr",3]],["option",4,[["ordering",4]]]],[[["virtaddr",3]],["option",4,[["ordering",4]]]],[[["physpagenum",3]],["option",4,[["ordering",4]]]],[[["virtpagenum",3]],["option",4,[["ordering",4]]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,[[],["option",4,[["physpagenum",3]]]],[[],["option",4,[["physpagenum",3]]]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["physpagenum",3]]],[[["physpagenum",3]]],[[],["upsafecell",3]],[[]],null,[[["formatter",3]],["result",6]],[[],["option",4,[["frametracker",3]]]],[[]],[[["physpagenum",3]]],[[]],[[]],[[]],[[["physpagenum",3],["physpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[["physpagenum",3]]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[["layout",3]],["never",15]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],null,[[]],[[]],[[["mappermission",3]]],[[]],[[],["u8",15]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["maptype",4]],[[],["mappermission",3]],[[]],[[]],[[["mappermission",3]],["ordering",4]],[[]],[[],["bool",15]],[[["pagetable",3]]],null,[[],["arc",3]],[[]],null,null,null,[[]],[[["maptype",4]],["bool",15]],[[["mappermission",3]],["bool",15]],null,null,[[["intoiterator",8]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["maparea",3]]],[[["u8",15]],["option",4]],[[["u8",15]]],[[["u8",15]]],[[]],[[["memoryset",3]],["memoryset",3]],[[["intoiterator",8]]],[[]],[[]],[[["virtaddr",3],["virtaddr",3],["mappermission",3]]],[[]],[[],["bool",15]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["usize",15]],[[["pagetable",3]]],[[["pagetable",3],["virtpagenum",3]]],null,[[]],null,[[["mappermission",3]],["bool",15]],[[["virtaddr",3],["virtaddr",3],["maptype",4],["mappermission",3]]],[[]],[[]],[[]],null,[[["mappermission",3]],["option",4,[["ordering",4]]]],[[["maparea",3],["option",4]]],[[]],[[]],[[]],[[["virtpagenum",3]]],null,null,[[["bool",15]]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",15]],[[["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]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[["pagetable",3]]],[[["pagetable",3],["virtpagenum",3]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[["pteflags",3]]],[[]],[[],["u8",15]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["pteflags",3]],[[],["pagetableentry",3]],[[]],[[]],[[["pteflags",3]],["ordering",4]],[[]],[[],["bool",15]],null,null,[[]],[[]],[[]],[[["pteflags",3]],["bool",15]],[[],["bool",15]],[[["intoiterator",8]]],[[["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[],["pteflags",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[]],[[]],[[["u8",15]],["option",4]],[[["u8",15]]],[[["u8",15]]],[[["intoiterator",8]]],[[["usize",15]]],[[]],[[]],[[]],[[],["bool",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["bool",15]],[[],["bool",15]],[[],["bool",15]],[[],["usize",15]],[[["virtpagenum",3],["physpagenum",3],["pteflags",3]]],[[["pteflags",3]],["bool",15]],[[]],[[["vec",3]]],[[["physpagenum",3],["pteflags",3]]],[[],["option",4]],[[]],[[["pteflags",3]],["option",4,[["ordering",4]]]],[[],["physpagenum",3]],[[],["bool",15]],[[]],null,[[["bool",15]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",15]],[[["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["virtaddr",3]],["option",4,[["physaddr",3]]]],[[["usize",15],["usize",15]],["vec",3]],[[["usize",15]]],[[["usize",15]]],[[["usize",15]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[["virtpagenum",3]]],[[],["bool",15]],null,null,null,null,null,null,null,null,null,[[],["usize",15]],[[["usize",15]]],[[["usize",15],["usize",15],["usize",15],["usize",15]],["usize",15]],[[["usize",15]]],[[],["never",15]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[["arc",3,[["mutex",8]]]]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,null,null,[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],null,[[]],[[]],[[["usize",15]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],null,null,[[]],[[]],[[],["refmut",3]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["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",15]],["isize",15]],null,[[["usize",15]],["isize",15]],[[["usize",15]],["isize",15]],[[["u32",15]],["isize",15]],[[],["isize",15]],[[["usize",15],["usize",15]],["isize",15]],[[["usize",15],["usize",15]],["isize",15]],[[],["isize",15]],[[["i32",15]],["never",15]],[[],["isize",15]],[[],["isize",15]],[[],["isize",15]],[[["usize",15],["u32",15]],["isize",15]],[[["isize",15]],["isize",15]],[[],["isize",15]],[[["usize",15]],["isize",15]],[[["usize",15]],["isize",15]],[[["usize",15],["usize",15]],["isize",15]],[[["bool",15]],["isize",15]],[[["usize",15]],["isize",15]],[[["usize",15]],["isize",15]],[[["usize",15]],["isize",15]],[[["usize",15]],["isize",15]],[[["usize",15]],["isize",15]],[[["usize",15]],["isize",15]],[[],["isize",15]],[[["usize",15],["usize",15]],["isize",15]],[[["usize",15]],["i32",15]],null,null,[[]],[[]],[[]],[[]],[[],["option",4]],null,[[["signalflags",3]]],[[],["arc",3]],[[["i32",15]]],[[]],null,[[]],null,null,null,null,[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],[[]],[[["usize",15]]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,null,null,null,null,null,[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["usize",15]]],[[]],[[]],[[],["upsafecell",3]],[[],["upsafecell",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",15]],[[]],[[]],[[]],[[]],[[]],[[]],[[["usize",15]]],[[],["kernelstack",3]],[[]],[[["arc",3,[["processcontrolblock",3]]],["usize",15],["bool",15]]],[[],["pidhandle",3]],null,[[]],null,null,[[["usize",15]],["usize",15]],[[],["physpagenum",3]],[[],["usize",15]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["usize",15]],null,[[["usize",15],["usize",15]],["usize",15]],[[],["usize",15]],null,null,null,null,null,[[["arc",3,[["taskcontrolblock",3]]]]],[[["arc",3,[["taskcontrolblock",3]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["upsafecell",3]],[[],["upsafecell",3]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[]],[[]],[[]],[[["usize",15],["arc",3,[["processcontrolblock",3]]]]],[[]],[[]],[[]],[[]],[[["usize",15]],["option",4,[["arc",3,[["processcontrolblock",3]]]]]],null,[[["usize",15]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[]],[[]],null,null,[[["usize",15]]],[[["arc",3],["vec",3,[["string",3]]]]],null,null,[[["arc",3]],["arc",3]],[[]],[[]],[[["usize",15]],["arc",3,[["taskcontrolblock",3]]]],[[],["usize",15]],[[],["usize",15]],null,[[],["refmut",3,[["processcontrolblockinner",3]]]],[[]],[[]],null,null,null,[[],["arc",3]],null,null,null,null,null,null,[[],["usize",15]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,[[]],[[]],[[]],[[]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],null,[[],["usize",15]],[[],["arc",3,[["processcontrolblock",3]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["trapcontext",3]],[[],["usize",15]],[[],["usize",15]],[[],["upsafecell",3]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[["signalflags",3]]],[[]],[[],["u32",15]],null,[[]],[[]],[[]],[[]],[[],["option",4]],[[],["signalflags",3]],[[]],[[["signalflags",3]],["ordering",4]],[[]],[[],["bool",15]],[[]],[[]],[[["signalflags",3]],["bool",15]],[[["intoiterator",8]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[["u32",15]],["option",4]],[[["u32",15]]],[[["u32",15]]],[[["intoiterator",8]]],[[]],[[]],[[]],[[],["bool",15]],[[]],[[],["bool",15]],[[],["bool",15]],[[["signalflags",3]],["bool",15]],[[]],[[["signalflags",3]],["option",4,[["ordering",4]]]],[[]],[[["bool",15]]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["taskstatus",4]],[[]],[[["taskstatus",4]],["bool",15]],null,[[]],[[]],[[]],[[],["taskstatus",4]],[[],["trapcontext",3]],[[],["usize",15]],null,[[],["refmut",3,[["taskcontrolblockinner",3]]]],[[]],[[]],[[]],null,[[["arc",3,[["processcontrolblock",3]]],["usize",15],["bool",15]]],null,null,null,null,[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,[[["usize",15],["arc",3,[["taskcontrolblock",3]]]]],[[]],[[]],[[]],[[]],[[]],[[],["ordering",4]],[[],["upsafecell",3]],[[],["bool",15]],null,[[]],[[]],[[],["usize",15]],[[],["usize",15]],[[]],[[]],[[],["option",4,[["ordering",4]]]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,[[]],[[]],[[]],[[]],[[],["never",15]],[[],["never",15]],[[],["never",15]],null,[[["usize",15],["usize",15],["usize",15],["usize",15],["usize",15]]],[[]],[[]],[[["formatter",3]],["result",6]],[[]],[[]],null,null,null,[[["usize",15]]],null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null],"p":[[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,"VirtIOBlock"],[3,"QUEUE_FRAMES"],[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,"UPSafeCell"],[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":[0,5,0,0,0,0,0,0,14,14,5,0,0,0,0,0,0,6,17,17,17,17,17,17,17,17,17,17,3,11,11,11,11,5,11,11,11,11,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,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,12,3,17,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,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,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,3,11,11,11,11,12,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,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,3,11,11,11,11,11,11,12,12,12,11,12,12,11,11,11,12],"n":["board","clear_bss","config","console","drivers","fs","lang_items","mm","print","println","rust_main","sbi","sync","syscall","task","timer","trap","BlockDeviceImpl","CLOCK_FREQ","MMIO","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","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","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","0","QUEUE_FRAMES","VIRTIO0","VirtIOBlock","__private_field","borrow","borrow","borrow_mut","borrow_mut","deref","from","from","into","into","new","read_block","try_from","try_from","try_into","try_into","type_id","type_id","virtio_dma_alloc","virtio_dma_dealloc","virtio_phys_to_virt","virtio_virt_to_phys","write_block","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","wait_queue","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","UPSafeCell","borrow","borrow_mut","exclusive_access","from","inner","into","new","try_from","try_into","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","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","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::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).","","","","","","","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 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).","","","","","","","","","","Wrap a static data structure inside it so that we are able …","","","Panic if the data has been borrowed.","Returns the argument unchanged.","inner data","Calls U::from(self).","User is responsible to guarantee that inner struct is only …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","","","","","thread does not exist, return -1 thread has not exited …","","","","","","","","","","","","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,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,1,1,1,1,0,1,1,1,1,0,0,2,0,2,2,2,2,2,0,2,2,2,0,3,4,4,5,0,4,4,4,4,4,4,4,4,4,4,4,4,4,6,7,7,8,8,6,9,9,6,7,7,7,7,7,7,7,7,7,7,8,0,7,5,5,7,7,7,5,0,7,7,5,5,5,5,7,7,7,5,7,5,7,7,0,0,0,0,0,0,0,0,0,0,0,9,9,0,7,7,7,7,7,7,7,7,10,8,3,4,6,7,5,9,10,8,3,4,6,7,5,9,10,4,6,7,5,9,4,6,7,5,9,8,10,8,4,4,6,7,5,9,8,3,4,6,7,5,9,10,8,8,8,8,8,8,0,8,3,4,6,7,5,9,10,0,8,8,3,3,8,8,8,8,8,4,6,7,5,9,8,3,4,6,7,5,9,10,8,3,4,6,7,5,9,10,8,3,4,6,7,5,9,10,3,8,8,11,12,11,13,0,0,0,14,13,14,13,14,14,13,14,13,14,13,13,13,14,13,14,13,14,0,0,0,0,13,0,0,0,15,15,0,15,15,16,0,0,0,16,16,0,16,16,17,16,16,16,16,16,16,16,16,16,18,19,17,16,18,19,17,16,16,16,16,16,16,17,16,16,16,16,16,16,16,16,16,18,19,17,16,16,16,16,16,16,18,19,16,16,16,18,19,17,16,16,16,0,16,18,16,19,0,16,18,18,16,18,18,16,16,16,16,16,16,16,18,19,17,16,18,19,17,16,18,19,17,16,16,18,18,18,20,20,20,0,0,0,0,21,21,21,21,22,21,20,22,21,20,22,20,20,20,22,21,20,21,22,21,20,0,21,22,21,22,22,22,21,21,21,20,22,21,20,22,21,20,22,21,20,22,22,22,21,21,22,0,0,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,0,0,0,0,0,0,0,0,25,26,27,28,0,0,0,0,0,0,0,0,0,0,0,0,25,26,29,25,26,27,28,30,29,25,26,27,28,30,25,26,25,26,27,28,30,25,26,27,28,30,25,26,27,28,29,29,25,26,27,28,25,26,25,26,27,28,29,25,25,25,26,26,26,27,27,27,28,28,28,30,27,30,25,27,27,25,30,28,29,25,26,27,28,30,29,30,30,25,26,27,28,29,30,29,25,26,25,26,27,28,30,31,27,28,25,26,27,28,30,29,25,26,27,28,30,29,25,26,27,28,30,29,25,26,27,28,30,0,0,0,0,0,32,33,34,35,34,32,35,34,32,34,33,34,32,35,34,35,0,0,0,35,34,32,34,0,35,34,32,33,35,34,35,34,35,34,32,35,34,32,35,34,32,0,0,0,0,0,36,36,0,0,0,0,0,37,37,37,37,38,39,37,39,37,37,37,37,37,37,37,37,39,40,38,36,37,39,40,38,36,37,36,37,36,37,37,37,37,40,40,38,37,0,0,0,37,36,37,0,0,37,36,37,37,37,37,37,39,40,38,36,37,40,37,37,37,39,39,37,37,37,39,37,37,39,40,38,36,37,37,37,0,40,40,40,39,40,37,40,39,39,37,39,37,39,39,0,37,39,0,0,37,0,0,0,37,37,37,36,37,37,39,39,39,40,38,36,37,39,40,38,36,37,39,40,38,36,37,37,40,40,40,41,41,41,0,0,0,41,41,0,0,41,41,41,41,41,41,41,41,41,41,42,41,41,43,44,45,41,42,43,44,45,41,42,44,45,41,42,41,42,41,41,41,45,45,41,41,42,41,42,41,43,43,42,41,41,41,41,41,43,43,44,45,41,42,41,41,41,41,43,41,41,41,41,43,44,45,41,42,44,45,41,41,42,44,43,41,43,44,42,45,41,41,42,42,41,43,41,41,41,41,41,42,41,43,43,43,0,0,0,0,43,44,45,41,42,43,44,45,41,42,43,44,45,41,42,41,43,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,47,46,47,46,47,46,46,47,46,46,46,47,46,47,46,47,46,47,0,0,0,0,48,49,50,48,49,50,48,49,50,49,48,49,50,51,48,49,48,50,48,49,48,49,50,48,49,50,48,49,50,51,48,49,50,0,0,52,53,52,53,53,52,52,53,52,52,53,52,52,53,52,53,52,53,52,53,0,54,54,54,54,54,54,54,54,54,54,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,55,0,0,55,55,0,0,0,55,0,55,0,55,0,0,0,0,0,0,0,55,55,55,0,56,56,56,56,56,56,56,56,56,56,56,56,57,58,0,0,0,0,0,0,59,60,61,62,62,61,57,58,62,59,60,61,57,58,62,59,60,61,61,62,62,59,60,57,58,62,61,57,58,62,59,60,58,61,57,58,62,59,60,0,0,61,62,0,62,58,61,62,0,62,62,61,57,58,62,59,60,61,57,58,62,59,60,61,57,58,62,59,60,62,62,0,62,0,0,0,63,64,65,0,65,63,64,65,63,64,63,64,65,0,65,63,64,0,65,63,64,65,0,65,0,65,63,64,65,63,64,65,63,64,0,0,66,66,67,66,67,66,66,66,66,67,66,66,67,67,66,66,66,67,67,67,67,66,66,66,66,67,66,67,66,66,66,66,66,67,66,67,66,67,66,0,0,68,69,68,69,68,69,69,0,0,0,0,0,0,68,69,68,69,69,69,68,69,0,0,69,0,69,68,69,68,69,68,70,70,70,70,70,0,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,0,71,71,71,0,0,0,72,73,71,72,73,71,71,71,71,73,72,73,71,73,73,72,72,72,72,73,71,72,72,72,73,73,73,71,73,72,73,71,72,73,71,72,73,71,0,0,0,0,74,0,75,74,75,74,0,75,74,75,75,75,74,0,0,75,74,75,0,75,75,74,75,74,75,74,0,0,0,0,0,0,0,0,0,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76],"f":[null,[[]],null,null,null,null,null,null,null,null,[[],["never",0]],null,null,null,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,[[]],[[["",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]],["upsafecell",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]],["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,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["upsafecell",3]],[[]],[[]],[[]],[[]],[[]],[[["",0],["usize",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["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],["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,[["upsafecell",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,[["upsafecell",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]],["upsafecell",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],["arc",3,[["mutex",8]]]]],null,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,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["refmut",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,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]],["upsafecell",3]],[[["",0]],["upsafecell",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]],["upsafecell",3]],[[["",0]],["upsafecell",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]],["refmut",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]],["upsafecell",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]],["refmut",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]],["upsafecell",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,[[]],[[]],[[]],[[]],[[],["never",0]],[[],["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,"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,"VirtIOBlock"],[3,"QUEUE_FRAMES"],[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,"UPSafeCell"],[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/ch8/search.js b/ch8/search.js
index 3aa50607..a8026db5 100644
--- a/ch8/search.js
+++ b/ch8/search.js
@@ -1,2 +1,2 @@
-(function(){var itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){if(nb===0||nb===1||nb===2){searchState.currentTab=nb}var nb_copy=nb;onEachLazy(document.getElementById("titles").childNodes,function(elem){if(nb_copy===0){addClass(elem,"selected")}else{removeClass(elem,"selected")}nb_copy-=1});onEachLazy(document.getElementById("results").childNodes,function(elem){if(nb===0){addClass(elem,"active")}else{removeClass(elem,"active")}nb-=1})}function removeEmptyStringsFromArray(x){for(var i=0,len=x.length;i-1){var obj=searchIndex[result.id];obj.lev=result.lev;var res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates[obj.fullPath]){continue}duplicates[obj.fullPath]=true;obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType){var ar=[];for(var entry in results){if(hasOwnPropertyRustdoc(results,entry)){var result=results[entry];result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};ar.push(result)}}results=ar;if(results.length===0){return[]}results.sort(function(aaa,bbb){var a,b;a=(aaa.word!==val);b=(bbb.word!==val);if(a!==b){return a-b}a=(aaa.lev);b=(bbb.lev);if(a!==b){return a-b}a=(aaa.item.crate!==window.currentCrate);b=(bbb.item.crate!==window.currentCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});for(var i=0,len=results.length;i"));return{name:val.substring(0,val.indexOf("<")),generics:values.split(/\s*,\s*/),}}return{name:val,generics:[],}}function checkGenerics(obj,val){var tmp_lev,elem_name;if(val.generics.length>0){if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>=val.generics.length){var elems=Object.create(null);var elength=obj[GENERICS_DATA].length;for(var x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length>0){var elems=Object.create(null);len=obj[GENERICS_DATA].length;for(x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length!==0){tmp_lev=checkGenerics(obj,val);if(tmp_lev<=MAX_LEV_DISTANCE){return tmp_lev}}}}else if(literalSearch){var found=false;if((!val.generics||val.generics.length===0)&&obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){found=obj[GENERICS_DATA].some(function(gen){return gen[NAME]===val.name})}return found?0:MAX_LEV_DISTANCE+1}lev_distance=Math.min(levenshtein(obj[NAME],val.name),lev_distance);if(lev_distance<=MAX_LEV_DISTANCE){lev_distance=Math.ceil((checkGenerics(obj,val)+lev_distance)/2)}if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){var olength=obj[GENERICS_DATA].length;for(x=0;x0){var length=obj.type[INPUTS_DATA].length;for(var i=0;iOUTPUT_DATA){var ret=obj.type[OUTPUT_DATA];if(typeof ret[0]==="string"){ret=[ret]}for(var x=0,len=ret.length;xlength){return MAX_LEV_DISTANCE+1}for(var i=0;ilength){break}var lev_total=0;var aborted=false;for(var x=0;xMAX_LEV_DISTANCE){aborted=true;break}lev_total+=lev}if(!aborted){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER)return true;if(filter===type)return true;var name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,}}function handleAliases(ret,query,filterCrates){var aliases=[];var crateAliases=[];if(filterCrates!==undefined){if(ALIASES[filterCrates]&&ALIASES[filterCrates][query.search]){var query_aliases=ALIASES[filterCrates][query.search];var len=query_aliases.length;for(var i=0;iMAX_RESULTS){ret.others.pop()}};onEach(aliases,pushFunc);onEach(crateAliases,pushFunc)}function addIntoResults(isExact,res,fullId,id,index,lev){if(lev===0||(!isExact&&lev<=MAX_LEV_DISTANCE)){if(res[fullId]!==undefined){var result=res[fullId];if(result.dontValidate||result.lev<=lev){return}}res[fullId]={id:id,index:index,dontValidate:isExact,lev:lev,}}}var nSearchWords=searchWords.length;var i,it;var ty;var fullId;var returned;var in_args;var len;if((val.charAt(0)==="\""||val.charAt(0)==="'")&&val.charAt(val.length-1)===val.charAt(0)){val=extractGenerics(val.substr(1,val.length-2));for(i=0;i")>-1){var trimmer=function(s){return s.trim()};var parts=val.split("->").map(trimmer);var input=parts[0];var inputs=input.split(",").map(trimmer).sort();for(i=0,len=inputs.length;i0){firstNonZeroDistance=distance;break}}in_args=firstNonZeroDistance}addIntoResults(true,results_in_args,fullId,i,-1,in_args);addIntoResults(true,results_returned,fullId,i,-1,returned);if(is_module){addIntoResults(true,results,fullId,i,-1,0)}}}query.inputs=inputs.map(function(input){return input.name});query.output=output.name}else{query.inputs=[val];query.output=val;query.search=val;val=val.replace(/_/g,"");var valGenerics=extractGenerics(val);var paths=valLower.split("::");removeEmptyStringsFromArray(paths);val=paths[paths.length-1];var contains=paths.slice(0,paths.length>1?paths.length-1:1);var lev,j;for(j=0;j1){lev=checkPath(contains,paths[paths.length-1],ty);if(lev>MAX_LEV_DISTANCE){continue}else if(lev>0){lev_add=lev/10}}returned=MAX_LEV_DISTANCE+1;in_args=MAX_LEV_DISTANCE+1;var index=-1;lev=MAX_LEV_DISTANCE+1;fullId=ty.id;if(searchWords[j].indexOf(split[i])>-1||searchWords[j].indexOf(val)>-1||ty.normalizedName.indexOf(val)>-1){if(typePassesFilter(typeFilter,ty.ty)&&results[fullId]===undefined){index=ty.normalizedName.indexOf(val)}}if((lev=levenshtein(searchWords[j],val))<=MAX_LEV_DISTANCE){if(typePassesFilter(typeFilter,ty.ty)){lev+=1}else{lev=MAX_LEV_DISTANCE+1}}in_args=findArg(ty,valGenerics,false,typeFilter);returned=checkReturned(ty,valGenerics,false,typeFilter);lev+=lev_add;if(lev>0&&val.length>3&&searchWords[j].indexOf(val)>-1){if(val.length<6){lev-=1}else{lev=0}}addIntoResults(false,results_in_args,fullId,j,index,in_args);addIntoResults(false,results_returned,fullId,j,index,returned);if(typePassesFilter(typeFilter,ty.ty)&&(index!==-1||lev<=MAX_LEV_DISTANCE)){if(index!==-1&&paths.length<2){lev=0}addIntoResults(false,results,fullId,j,index,lev)}}}var ret={"in_args":sortResults(results_in_args,true),"returned":sortResults(results_returned,true),"others":sortResults(results,false),};handleAliases(ret,query,filterCrates);return ret}function validateResult(name,path,keys,parent){for(var i=0,len=keys.length;i-1||path.indexOf(keys[i])>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(keys[i])>-1)||levenshtein(name,keys[i])<=MAX_LEV_DISTANCE)){return false}}return true}function getQuery(raw){var matches,type="",query;query=raw;matches=query.match(/^(fn|mod|struct|enum|trait|type|const|macro)\s*:\s*/i);if(matches){type=matches[1].replace(/^const$/,"constant");query=query.substring(matches[0].length)}return{raw:raw,query:query,type:type,id:query+type}}function nextTab(direction){var next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){var target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#titles > button").item(searchState.currentTab);if(target){target.focus()}}function buildHrefAndPath(item){var displayPath;var href;var type=itemTypes[item.ty];var name=item.name;var path=item.path;if(type==="mod"){displayPath=path+"::";href=window.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="primitive"||type==="keyword"){displayPath="";href=window.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=window.rootPath+name+"/index.html"}else if(item.parent!==undefined){var myparent=item.parent;var anchor="#"+type+"."+name;var parentType=itemTypes[myparent.ty];var pageType=parentType;var pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){var enumNameIdx=item.path.lastIndexOf("::");var enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=window.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=window.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function escape(content){var h1=document.createElement("h1");h1.textContent=content;return h1.innerHTML}function pathSplitter(path){var tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){var extraClass="";if(display===true){extraClass=" active"}var output=document.createElement("div");var length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(function(item){var name=item.name;var type=itemTypes[item.ty];length+=1;var extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}var link=document.createElement("a");link.className="result-"+type;link.href=item.href;var wrapper=document.createElement("div");var resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){var alias=document.createElement("span");alias.className="alias";var bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");wrapper.appendChild(resultName);var description=document.createElement("div");description.className="desc";var spanDesc=document.createElement("span");spanDesc.insertAdjacentHTML("beforeend",item.desc);description.appendChild(spanDesc);wrapper.appendChild(description);link.appendChild(wrapper);output.appendChild(link)})}else{output.className="search-failed"+extraClass;output.innerHTML="No results :( "+"Try on DuckDuckGo?
"+"Or try looking in one of these:
The Rust Reference "+" for technical details about the language.