rCore-Tutorial-v3/ch6-dbg/search-index.js
2022-07-25 03:51:09 +00:00

6 lines
55 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var searchIndex = JSON.parse('{\
"os":{"doc":"The main module and entrypoint","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,8,17,3,17,12,11,11,10,11,5,10,11,10,11,11,11,11,11,11,11,2,17,17,2,2,17,17,17,17,17,3,11,11,11,11,5,11,11,11,11,2,2,0,3,2,2,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,3,3,3,3,12,12,0,5,5,10,10,12,0,10,12,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,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,12,12,12,12,3,3,3,3,3,3,3,3,8,3,3,3,3,12,0,12,12,12,12,12,12,12,5,0,5,12,0,5,5,0,0,12,12,5,12,10,5,5,5,5,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,3,12,0,3,11,11,11,11,12,11,11,11,11,11,17,17,17,17,17,17,17,17,17,17,17,0,0,5,5,5,5,5,5,5,5,5,5,5,5,12,17,3,3,3,3,3,3,3,12,5,5,11,11,0,12,12,5,5,5,11,5,5,11,12,11,12,0,0,12,5,0,12,12,12,5,12,5,12,5,0,5,0,11,11,11,12,3,11,11,11,11,11,12,12,12,11,11,11,11,3,7,3,12,11,5,11,11,11,11,11,11,5,11,11,11,11,11,12,11,12,11,11,11,11,11,11,12,12,3,3,3,3,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,12,5,11,12,11,11,11,11,11,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,12,5,5,5,11,11,11,11,12,11,11,11,5,5,11,5,11,11,11,11,11,11,5,13,13,3,3,4,13,11,12,11,11,11,11,11,11,12,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,12,11,12,12,12,12,11,12,11,11,11,11,11,11,11,11,11,17,17,5,5,5,3,0,5,5,12,12,12,5,5,12,5,5,12,5,12,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","EXIT_FAILURE","EXIT_FAILURE_FLAG","EXIT_RESET","EXIT_SUCCESS","MEMORY_END","MMIO","QEMUExit","QEMU_EXIT_HANDLE","RISCV64","VIRT_TEST","addr","borrow","borrow_mut","exit","exit","exit_code_encode","exit_failure","exit_failure","exit_success","exit_success","from","into","new","try_from","try_into","type_id","CLOCK_FREQ","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","MEMORY_END","MMIO","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT","USER_STACK_SIZE","Stdout","borrow","borrow_mut","from","into","print","try_from","try_into","type_id","write_str","BLOCK_DEVICE","BLOCK_DEVICE","block","BLOCK_DEVICE","SDCardWrapper","VirtIOBlock","__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","OSInode","OpenFlags","Stdin","Stdout","bits","inner","inode","list_apps","open_file","read","readable","readable","stdio","writable","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","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","panic","0","0","0","0","FrameTracker","KERNEL_SPACE","MapPermission","MemorySet","PageTable","PageTableEntry","PhysAddr","PhysPageNum","StepByOne","UserBuffer","UserBufferIterator","VirtAddr","VirtPageNum","__private_field","address","areas","bits","bits","buffers","buffers","current_buffer","current_idx","frame_alloc","frame_allocator","frame_dealloc","frames","heap_allocator","init","kernel_token","memory_set","page_table","page_table","ppn","remap_test","root_ppn","step","translated_byte_buffer","translated_ref","translated_refmut","translated_str","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","UPSafeCell","inner","up","UPSafeCell","borrow","borrow_mut","exclusive_access","from","inner","into","new","try_from","try_into","type_id","SYSCALL_CLOSE","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_GETPID","SYSCALL_GET_TIME","SYSCALL_OPEN","SYSCALL_READ","SYSCALL_WAITPID","SYSCALL_WRITE","SYSCALL_YIELD","fs","process","syscall","sys_close","sys_open","sys_read","sys_write","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_waitpid","sys_yield","0","IDLE_PID","INITPROC","KernelStack","PidAllocator","PidHandle","Processor","TaskContext","TaskManager","__private_field","add_initproc","add_task","borrow","borrow_mut","context","current","current","current_task","current_trap_cx","current_user_token","deref","exit_current_and_run_next","fetch_task","from","idle_task_cx","into","lower_border","manager","pid","pid","pid_alloc","processor","ra","ready_queue","recycled","run_tasks","s","schedule","sp","suspend_current_and_run_next","switch","take_current_task","task","try_from","try_into","type_id","upper_border","TaskContext","borrow","borrow_mut","from","goto_trap_return","into","ra","s","sp","try_from","try_into","type_id","zero_init","TASK_MANAGER","TM_RQ","TaskManager","__private_field","add","add_task","borrow","borrow","borrow_mut","borrow_mut","deref","fetch","fetch_task","from","from","get_ready_queue_pointer","into","into","lower_border","new","ready_queue","try_from","try_from","try_into","try_into","type_id","type_id","upper_border","0","KernelStack","PID_ALLOCATOR","PidAllocator","PidHandle","__private_field","alloc","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","current","dealloc","deref","drop","drop","from","from","from","from","get_top","into","into","into","into","kernel_stack_position","new","new","pid","pid_alloc","push_on_top","recycled","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","PROCESSOR","Processor","__private_field","borrow","borrow","borrow_mut","borrow_mut","current","current","current_task","current_trap_cx","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","__switch","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","Zombie","alloc_fd","base_size","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","children","clone","clone_into","eq","exec","exit_code","fd_table","fork","from","from","from","get_status","get_trap_cx","get_user_token","getpid","inner","inner_exclusive_access","into","into","into","is_zombie","kernel_stack","memory_set","new","parent","pid","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","get_time","get_time_ms","set_next_trigger","TrapContext","context","enable_timer_interrupt","init","kernel_satp","kernel_sp","sepc","set_kernel_trap_entry","set_user_trap_entry","sstatus","trap_from_kernel","trap_handler","trap_handler","trap_return","x","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::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::up","","","","","","","","","","","os::syscall","","","","","","","","","","","","","","os::syscall::fs","","","","os::syscall::process","","","","","","","os::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::context","","","","","","","","","","","","","os::task::manager","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::pid","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::switch","os::task::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::timer","","","","","os::trap","","","","","","","","","","","","","","","os::trap::context","","","","","","","","","","","","","","","",""],"d":["","clear BSS segment","Constants used in rCore","SBI console driver, for text output","","File system in os","The panic handler","Memory management implementation","print string macro","println string macro","the rust entry-point of os","SBI call wrappers","Synchronization and interior mutability primitives","Implementation of syscalls","Task management implementation","RISC-V timer-related functionality","Trap handling functionality","","","","","","","","","","","RISCV64 configuration","","Address of the sifive_test mapped device.","","","Exit with specified return code.","Exit qemu with specified exit code.","Encode the exit code using EXIT_FAILURE_FLAG.","Exit QEMU using <code>EXIT_FAILURE</code>, aka <code>1</code>.","","Exit QEMU using <code>EXIT_SUCCESS</code>, aka <code>0</code>, if possible.","","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Create an instance.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","","","","","","","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 <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Connect pins to internal functions ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","File trait","A wrapper around a filesystem inode to implement File …","Open file flags","Standard input","Standard output","","","<code>Arc&lt;Inode&gt;</code> -&gt; <code>OSInodeInner</code>: In order to open files …","List all files in the filesystems","Open file with flags","Read file to <code>UserBuffer</code>","If readable","","Stdin &amp; Stdout","If writable","","Write <code>UserBuffer</code> to file","Allow create","A wrapper around a filesystem inode to implement File …","The OS inode inner in UPSafeCell","Open file flags","Read only","Read &amp; Write","","Clear file and return an empty one","Write only","","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 <code>true</code> if all of the flags in <code>other</code> are contained …","","Returns the difference between the flags in <code>self</code> and <code>other</code>.","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 <code>self</code> and …","Returns <code>true</code> if there are flags common to both <code>self</code> and …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Returns <code>true</code> if all flags are currently set.","Returns <code>true</code> if no flags are currently stored.","List all files in the filesystems","","Construct an OS inode from a inode","Returns the complement of this set of flags.","","Open file with flags","","","Read all data inside a inode into vector","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 <code>self</code> …","","Toggles the specified flags in-place.","","","","","","","","","","","","","Returns the union of between the flags in <code>self</code> and <code>other</code>.","","","","Standard input","Standard output","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","","","","","","","manage a frame which has the same lifecycle as the tracker","a memory set instance through lazy_static! managing kernel …","map permission corresponding to that in pte: <code>R W X U</code>","memory set structure, controls virtual-memory space","Record root ppn and has the same lifetime as 1 and 2 level …","page table entry structure","Definitions","phiscal page number","Add value by one","Array of u8 slice that user communicate with os","Iterator of <code>UserBuffer</code>","virtual address","virtual page number","","Implementation of physical and virtual address and page …","","","PTE","U8 vec","","","","allocate a frame","Implementation of <code>FrameAllocator</code> which controls all the …","deallocate a frame","","The global allocator","initiate heap allocator, frame allocator and kernel space","Get kernelspace root ppn","Implementation of <code>MapArea</code> and <code>MemorySet</code>.","Implementation of <code>PageTableEntry</code> and <code>PageTable</code>.","","","Check PageTable running correctly","","Add value by one","Translate a pointer to a mutable u8 Vec through page table","Translate a generic through page table and return a …","Translate a generic through page table and return a …","Translate a pointer to a mutable u8 Vec end with <code>\\\\0</code> …","","","","","","","Definitions","phiscal page number","a simple range structure for type T","iterator for the simple range structure","Add value by one","","a simple range structure for virtual page number","","virtual address","virtual page number","Check page aligned","Check page aligned","","","","","","","","","","","","","<code>PhysAddr</code>-&gt;<code>PhysPageNum</code>","<code>VirtAddr</code>-&gt;<code>VirtPageNum</code>","","","","","","","","","","","","","","","","","","","","","<code>PhysAddr</code>-&gt;<code>PhysPageNum</code>","<code>VirtAddr</code>-&gt;<code>VirtPageNum</code>","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Get u8 array on <code>PhysPageNum</code>","","Get mutable reference to <code>PhysAddr</code> value","Get Get mutable reference to <code>PhysAddr</code> value on <code>PhysPageNum</code>","Get <code>PageTableEntry</code> on <code>PhysPageNum</code>","Get reference to <code>PhysAddr</code> value","","Return VPN 3 level index","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","Get page offset","Get page offset","","","","","","Add value by one","","","","","","","","","","","","","","","","","","","","","","","","","","frame allocator instance through lazy_static!","","","manage a frame which has the same lifecycle as the tracker","an implementation for frame allocator","","","","","","","","","","","","","","","","","allocate a frame","a simple test for frame allocator","deallocate a frame","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","initiate the frame allocator using <code>ekernel</code> and <code>MEMORY_END</code>","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","Create an empty <code>FrameTracker</code>","","","","","","","","","","","","","heap allocator instance","heap space ([u8; KERNEL_HEAP_SIZE])","panic when heap allocation error occurs","","initiate heap allocator","","","a memory set instance through lazy_static! managing kernel …","map area structure, controls a contiguous piece of virtual …","map permission corresponding to that in pte: <code>R W X U</code>","map type for memory set: identical or framed","memory set structure, controls virtual-memory space","Readable","Accessible in U mode","Writable","Excutable","","Refresh TLB with <code>sfence.vma</code>","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 <code>true</code> if all of the flags in <code>other</code> are contained …","data: start-aligned but maybe with shorter length assume …","","","Returns the difference between the flags in <code>self</code> and <code>other</code>.","","","","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 and TrapContext and …","Clone a same <code>MemorySet</code>","","","Inserts the specified flags in-place.","Assume that no conflicts.","Returns the intersection between the flags in <code>self</code> and …","Returns <code>true</code> if there are flags common to both <code>self</code> and …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Returns <code>true</code> if all flags are currently set.","Returns <code>true</code> if no flags are currently stored.","Get kernelspace root ppn","","","","Mention that trampoline is not collected by areas.","","","","Create an empty <code>MemorySet</code>","Without kernel stacks.","Returns the complement of this set of flags.","","","","Remove all <code>MapArea</code>","Check PageTable running correctly","Removes the specified flags in-place.","Remove <code>MapArea</code> that starts with <code>start_vpn</code>","","","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 <code>self</code> …","","","Toggles the specified flags in-place.","Get pagetable <code>root_ppn</code>","Translate throuth pagetable","","","","","","","","","","","","","","","","Returns the union of between the flags in <code>self</code> and <code>other</code>.","","","","","","","","Record root ppn and has the same lifetime as 1 and 2 level …","page table entry structure","","","Array of u8 slice that user communicate with os","Iterator of <code>UserBuffer</code>","","","","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.","","PTE","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","U8 vec","","","","","","","Returns the complement of this set of flags.","Returns <code>true</code> if all of the flags in <code>other</code> are contained …","","","Returns the difference between the flags in <code>self</code> and <code>other</code>.","Returns an empty set of flags.","Return an empty PTE","","Check PTE executable","","Find phsical address by virtual address","Find phsical address by virtual address, create a frame if …","Return 10bit flag","","","","","","","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 <code>self</code> and …","Returns <code>true</code> if there are flags common to both <code>self</code> and …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","Returns <code>true</code> if all flags are currently set.","Returns <code>true</code> if no flags are currently stored.","Check PTE valid","Length of <code>UserBuffer</code>","Create a mapping form <code>vpn</code> to <code>ppn</code>","","Create an empty <code>PageTable</code>","Create a <code>UserBuffer</code> by parameter","Create a PTE from ppn","","Returns the complement of this set of flags.","","Return 44bit ppn","Check PTE 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 <code>self</code> …","","","Toggles the specified flags in-place.","Get root ppn","Translate <code>VirtPageNum</code> to <code>PageTableEntry</code>","Translate <code>VirtAddr</code> to <code>PhysAddr</code>","Translate a pointer to a mutable u8 Vec through page table","Translate a generic through page table and return a …","Translate a generic through page table and return a …","Translate a pointer to a mutable u8 Vec end with <code>\\\\0</code> …","","","","","","","","","","","","","","","","Returns the union of between the flags in <code>self</code> and <code>other</code>.","Delete a mapping form <code>vpn</code>","Check PTE writable","","","","","","","","","","use sbi call to getchar from console (qemu uart handler)","use sbi call to putchar in console (qemu uart handler)","general sbi call","use sbi call to set timer","use sbi call to shutdown the kernel","Wrap a static data structure inside it so that we are able …","inner data","Uniprocessor interior mutability primitives","Wrap a static data structure inside it so that we are able …","","","Exclusive access inner data in UPSafeCell. Panic if the …","Returns the argument unchanged.","inner data","Calls <code>U::from(self)</code>.","User is responsible to guarantee that inner struct is only …","","","","","","","","","","","","","","","File and filesystem-related syscalls","","handle syscall exception with <code>syscall_id</code> and other …","","","","","","","","","","If there is not a child process whose pid is same as …","","","pid of usertests app in make run TEST=1","Globle process that init user shell","Kernelstack for app","Pid Allocator struct","Bind pid lifetime to <code>PidHandle</code>","Processor management structure","task context structure containing some registers","A array of <code>TaskControlBlock</code> that is thread-safe","","Add init process to the manager","Interface offered to add task","","","Implementation of <code>TaskContext</code>","","The task currently executing on the current processor","Get running task","Get the mutable reference to trap context of current task","Get token of the address space of current task","","Exit the current Running task and run the next task …","Interface offered to pop the first task","Returns the argument unchanged.","The basic control flow of each core, helping to select and …","Calls <code>U::from(self)</code>.","lower_border","Implementation of <code>TaskManager</code>","Implementation of <code>PidAllocator</code>","","Allocate a pid from PID_ALLOCATOR","Implementation of <code>Processor</code> and Intersection of control …","return address ( e.g. __restore ) of __switch ASM function","ready_queue","","The main part of process execution and scheduling Loop …","s0-11 register, callee saved","Return to idle control flow for new scheduling","kernel stack pointer of app","Suspend the current Running task and run the next …","Wrap <code>switch.S</code> as a function","Take the current task,leaving a None in its place","Implementation of <code>TaskControlBlock</code>","","","","upper_border","task context structure containing some registers","","","Returns the argument unchanged.","set Task Context{__restore ASM funciton: trap_return, sp: …","Calls <code>U::from(self)</code>.","return address ( e.g. __restore ) of __switch ASM function","s0-11 register, callee saved","kernel stack pointer of app","","","","init task context","","","A array of <code>TaskControlBlock</code> that is thread-safe","","Add a task to <code>TaskManager</code>","Interface offered to add task","","","","","","Remove the first task and return it,or <code>None</code> if <code>TaskManager</code> …","Interface offered to pop the first task","Returns the argument unchanged.","Returns the argument unchanged.","Get ready_queue_pointer","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","lower_border","Creat an empty TaskManager","ready_queue","","","","","","","upper_border","","Kernelstack for app","","Pid Allocator struct","Bind pid lifetime to <code>PidHandle</code>","","Allocate a pid","","","","","","","","","","Recycle a pid","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the value on the top of kernelstack","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Return (bottom, top) of a kernel stack in kernel space.","Create an empty <code>PidAllocator</code>","Create a kernelstack from pid","","Allocate a pid from PID_ALLOCATOR","Push a value on top of kernelstack","","","","","","","","","","","","","","","Processor management structure","","","","","","Get current task in cloning semanteme","The task currently executing on the current processor","Get running task","Get the mutable reference to trap context of current task","Get token of the address space of current task","","Returns the argument unchanged.","Returns the argument unchanged.","Get mutable reference to <code>idle_task_cx</code>","The basic control flow of each core, helping to select and …","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Create an empty Processor","The main part of process execution and scheduling Loop …","Return to idle control flow for new scheduling","Get current task in moving semanteme","Take the current task,leaving a None in its place","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","Calls <code>U::from(self)</code>.","","","","","","","","","","","","","","","","","","","","","","get current time","get current time in microseconds","set the next timer interrupt","trap context structure containing sstatus, sepc and …","Implementation of <code>TrapContext</code>","enable timer interrupt in sie CSR","initialize CSR <code>stvec</code> as the entry of <code>__alltraps</code>","Addr of Page Table","kernel stack","CSR sepc","","","CSR sstatus ","Unimplement: traps/interrupts/exceptions from kernel mode …","handle an interrupt, exception, or system call from user …","Addr of trap_handler function","set the new addr of __restore asm function in TRAMPOLINE …","general regs[0..31]","trap context structure containing sstatus, sepc and …","init app context","","","","Returns the argument unchanged.","Calls <code>U::from(self)</code>.","Addr of Page Table","kernel stack","CSR sepc","set stack pointer to x_2 reg (sp)","CSR sstatus ","Addr of trap_handler function","","","","general regs[0..31]"],"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,3,3,3,82,3,0,82,3,82,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,0,8,8,8,8,0,0,0,0,0,0,11,0,11,11,11,11,11,0,11,11,11,0,27,15,15,18,0,15,15,15,15,15,15,15,15,15,15,15,15,15,16,17,17,14,14,16,19,19,16,17,17,17,17,17,17,17,17,17,17,14,0,17,18,18,17,17,17,18,0,17,17,18,18,18,18,17,17,17,18,17,18,17,17,0,0,0,0,0,0,0,0,0,0,0,19,19,0,17,17,17,17,17,17,17,17,20,14,27,15,16,17,18,19,20,14,27,15,16,17,18,19,20,15,16,17,18,19,15,16,17,18,19,14,20,14,15,15,16,17,18,19,14,27,15,16,17,18,19,20,14,14,14,14,14,14,0,14,27,15,16,17,18,19,20,0,14,14,27,27,14,14,14,14,14,15,16,17,18,19,14,27,15,16,17,18,19,20,14,27,15,16,17,18,19,20,14,27,15,16,17,18,19,20,27,14,14,83,84,83,30,0,0,0,29,30,29,30,29,29,30,29,30,29,30,30,30,29,30,29,30,29,0,0,0,0,30,0,0,0,0,0,34,35,0,0,0,85,85,35,0,85,35,85,34,0,0,0,34,34,0,34,34,39,34,34,34,34,34,34,34,34,34,35,86,39,34,35,86,39,34,34,34,34,34,34,39,34,34,34,34,34,34,34,34,34,35,86,39,34,34,34,34,34,34,35,86,34,34,34,35,86,39,34,34,34,0,34,35,34,86,0,34,35,35,34,35,35,34,34,34,34,34,34,34,35,86,39,34,35,86,39,34,35,86,39,34,34,35,35,35,0,0,43,44,43,44,43,44,43,44,43,44,43,44,43,44,43,44,43,44,43,44,43,44,0,31,33,47,49,0,0,0,0,0,0,0,0,0,0,0,0,0,61,0,56,57,62,37,64,64,64,0,0,0,60,0,0,0,0,0,56,46,0,60,87,0,0,0,0,31,33,47,49,0,0,0,0,0,0,0,0,0,0,0,0,31,33,52,31,33,47,49,51,52,31,33,47,49,51,31,33,31,33,47,49,51,31,33,47,49,51,31,33,47,49,52,52,31,33,47,49,31,33,31,33,47,49,52,31,31,31,33,33,33,47,47,47,49,49,49,51,47,51,31,47,47,31,51,49,52,31,33,47,49,51,52,51,51,31,33,47,49,52,51,52,31,33,31,33,47,49,51,87,47,49,31,33,47,49,51,52,31,33,47,49,51,52,31,33,47,49,51,52,31,33,47,49,51,0,0,0,0,0,54,88,53,46,53,54,46,53,54,53,88,53,54,46,53,46,0,0,0,46,53,54,53,0,46,53,54,88,46,53,46,53,46,53,54,46,53,54,46,53,54,0,0,0,0,0,58,58,0,0,0,0,0,57,57,57,57,61,56,57,56,57,57,57,57,57,57,57,57,56,59,61,58,57,56,59,61,58,57,58,57,58,57,57,57,57,59,59,61,57,0,0,0,57,58,57,0,0,57,58,57,57,57,57,57,56,59,61,58,57,59,57,57,57,56,56,57,57,57,56,57,57,56,59,61,58,57,57,57,0,59,59,59,56,59,57,59,56,56,57,56,57,56,56,0,57,56,0,0,57,0,0,0,57,57,57,58,57,57,56,56,56,59,61,58,57,56,59,61,58,57,56,59,61,58,57,57,59,59,59,63,63,63,0,0,0,63,63,0,0,63,63,63,63,63,63,63,63,63,63,62,63,63,60,37,64,63,62,60,37,64,63,62,37,64,63,62,63,62,63,63,63,64,64,63,63,62,63,62,63,60,60,62,63,63,63,63,63,60,60,37,64,63,62,63,63,63,63,60,63,63,63,63,60,37,64,63,62,37,64,63,63,62,37,60,63,60,37,62,64,63,63,62,62,63,60,63,63,63,63,63,62,63,60,60,60,0,0,0,0,60,37,64,63,62,60,37,64,63,62,60,37,64,63,62,63,60,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,21,21,21,21,21,21,21,21,21,21,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,70,0,0,0,0,0,0,0,0,69,0,0,69,69,0,75,78,0,0,0,69,0,0,69,78,69,72,0,0,77,0,0,71,72,75,0,71,0,71,0,0,0,0,69,69,69,72,0,71,71,71,71,71,71,71,71,71,71,71,71,0,0,0,73,72,0,72,73,72,73,73,72,0,72,73,72,72,73,72,72,72,72,73,72,73,72,73,72,70,0,0,0,0,76,75,75,70,77,76,75,70,77,76,75,75,76,70,77,75,70,77,76,77,75,70,77,76,0,75,77,77,0,77,75,75,70,77,76,75,70,77,76,75,70,77,76,0,0,79,78,79,78,79,78,78,0,0,0,79,78,79,78,78,78,79,78,0,0,78,0,78,79,78,79,78,79,0,81,81,0,0,0,81,80,80,67,80,81,67,80,81,80,81,81,81,67,80,80,67,67,80,81,80,80,80,67,67,67,67,80,81,80,67,80,67,80,67,80,80,81,80,67,80,81,67,80,81,67,80,81,0,0,0,0,0,0,0,0,0,68,68,68,0,0,68,0,0,68,0,68,0,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68],"f":[0,[[]],0,0,0,0,0,0,0,0,[[],1],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[2,1],[[3,2],1],[2,2],[[],1],[3,1],[[],1],[3,1],[[]],[[]],[4,3],[[],5],[[],5],[[],6],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[7],[[],5],[[],5],[[],6],[[8,9],10],0,0,0,0,0,0,0,[[]],[[]],[[]],[11,12],[[]],[[]],0,[[],5],[[],5],[[],6],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[14,[13]]]],[[[14,[13]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[[14,[13]]]],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,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[15,15],[16,16],[17,17],[18,18],[19,19],[[]],[[]],[[]],[[]],[[]],0,[20,21],[[[14,[13]]]],[[15,15],22],[[15,23],10],[[16,23],10],[[17,23],10],[[18,23],10],[[19,23],10],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[14,[13]]],[[5,[19]]]],[[[14,[13]]],[[5,[18]]]],[[[14,[13]]],[[5,[17]]]],[[[14,[13]]],24],[[[14,[13]]],24],[[[14,[13]]],[[5,[19,16]]]],[[],[[14,[[26,[25]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[14,[13]]]],[[13,2,24],[[14,[13]]]],[[],27],[[27,28]],[[[14,[13]]]],[[[14,[13]],2],5],[[[14,[13]],15,2,24]],0,0,[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[27,28]],[[[14,[13]]]],[[[14,[13]],2],5],0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[29,21],[[]],[[]],[[]],[[]],[[],30],[[30,28]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[28,31],[[31,28],32],[31,33],[33,31],[[30,28]],0,0,0,0,0,0,0,0,[[]],[[9,34],[[36,[[12,[35]]]]]],[37,28],[[],22],0,0,[[],22],0,[37,28],0,0,0,0,0,0,0,0,0,0,[[],34],[[34,34],34],[[34,34]],[[34,34],34],[[34,34]],[34,2],0,[[34,34],34],[[34,34]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[34,34],[[]],[[34,34],38],[34,34],[[34,34],22],[39,12],[[34,34],34],[[],34],[[34,34],22],[[34,40]],[[34,23],10],[[34,23],10],[[34,23],10],[[34,23],10],[[34,23],10],[[]],[[]],[[]],[[]],[2,[[36,[34]]]],[2,34],[2,34],[40,34],[34],0,0,[[34,34]],[[34,34],34],[[34,34],22],[[]],[[]],[[]],[[]],[34,22],[34,22],[[]],[[34,34],22],[[22,22,[12,[41]]],35],[34,34],0,[[9,34],[[36,[[12,[35]]]]]],[[34,34],[[36,[38]]]],[[35,37],28],[35,[[42,[24]]]],[34],[35,22],0,[[34,34]],[[34,34,22]],[[34,34],34],[[34,34]],[[34,34],34],[[]],[[34,34]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[34,34],34],[35,22],0,[[35,37],28],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[43,37],28],[[44,37],28],[43,22],[44,22],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[43,22],[44,22],[[43,37],28],[[44,37],28],[45,1],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,[[],[[36,[46]]]],0,[47],0,0,[[]],[[],28],0,0,0,0,[[]],0,[[]],[[28,24,28],42],[28],[28],[[28,24],48],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[31,22],[33,22],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[31,47],[33,49],[31,31],[33,33],[47,47],[49,49],[[[51,[50]]],[[51,[50]]]],[[]],[[]],[[]],[[]],[[]],[[31,31],38],[[33,33],38],[[47,47],38],[[49,49],38],0,0,[[31,31],22],[[33,33],22],[[47,47],22],[[49,49],22],[31,47],[33,49],[[31,23],10],[[33,23],10],[[47,23],10],[[49,23],10],[[]],[47,31],[[]],[28,31],[28,33],[49,33],[[]],[31,47],[28,47],[[]],[28,49],[[]],[33,49],[[]],[47],[51],[31],[47],[47],[31],[51],[49],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[51],0,[[31,31],22],[[33,33],22],[[47,47],22],[[49,49],22],[[],52],[[],51],[52,36],[31,28],[33,28],[[31,31],[[36,[38]]]],[[33,33],[[36,[38]]]],[[47,47],[[36,[38]]]],[[49,49],[[36,[38]]]],0,[[]],[47],[49],[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],0,0,0,0,0,0,[[],[[36,[47]]]],[53,[[36,[47]]]],[[]],[[]],[[]],[[]],[[]],[[]],0,[47],[[53,47]],[54,21],[46],0,[[46,23],10],[[],[[36,[46]]]],[[]],[47],[[]],[[]],[[]],[[53,47,47]],[[]],[[]],[[]],[[]],[[]],[47,46],[[],53],0,0,[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],0,0,[55,1],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,[56],[[],57],0,[[57,57],57],[[57,57]],[[57,57],57],[[57,57]],[57,24],0,[[57,57],57],[[57,57]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[58,58],[57,57],[[]],[[]],[[57,57],38],[57,57],[[57,57],22],[[59,60]],0,[61,12],[[57,57],57],0,0,0,[[],57],[[58,58],22],[[57,57],22],0,0,[[57,40]],[[58,23],10],[[57,23],10],[[57,23],10],[[57,23],10],[[57,23],10],[[57,23],10],[[]],[[]],[[]],[[]],[[]],[59,59],[24,[[36,[57]]]],[24,57],[24,57],[[]],[56,56],[40,57],[57],[[57,57]],[[56,33,33,57]],[[57,57],57],[[57,57],22],[[]],[[]],[[]],[[]],[[]],[57,22],[57,22],[[],28],[[59,60]],[[59,60,49]],0,[56],0,[[57,57],22],[[33,33,58,57],59],[[],56],[[],56],[57,57],0,[[57,57],[[36,[38]]]],[[56,59,36]],[56],[[]],[[57,57]],[[56,49]],0,0,[[57,57,22]],0,0,0,[[57,57],57],[[57,57]],[[57,57],57],[[]],[[]],[[57,57]],[56,28],[[56,49],[[36,[62]]]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[57,57],57],[[59,60]],[[59,60,49]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],63],[[63,63],63],[[63,63]],[[63,63],63],[[63,63]],[63,24],0,0,[[63,63],63],[[63,63]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[63,63],[62,62],[[]],[[]],[[63,63],38],[63,63],[[63,63],22],0,0,[[63,63],63],[[],63],[[],62],[[63,63],22],[62,22],[[63,40]],[[60,49],[[36,[62]]]],[[60,49],[[36,[62]]]],[62,63],[[63,23],10],[[63,23],10],[[63,23],10],[[63,23],10],[[63,23],10],0,[[]],[[]],[[]],[[]],[[]],[24,[[36,[63]]]],[24,63],[24,63],[40,63],[28,60],[63],[[63,63]],[[63,63],63],[[63,63],22],[[]],[[]],[[]],[[]],[[]],[37],[[]],[63,22],[63,22],[62,22],[37,28],[[60,49,47,63]],[[63,63],22],[[],60],[42,37],[[47,63],62],[64,36],[63,63],[[63,63],[[36,[38]]]],[62,47],[62,22],[[63,63]],0,[[63,63,22]],[[63,63],63],[[63,63]],[[63,63],63],[[]],[[]],[[63,63]],[60,28],[[60,49],[[36,[62]]]],[[60,33],[[36,[31]]]],[[28,24,28],42],[28],[28],[[28,24],48],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[63,63],63],[[60,49]],[62,22],0,0,0,0,0,0,0,0,0,[[],28],[28],[[28,28,28,28],28],[28],[[],1],0,0,0,0,[[]],[[]],[21,65],[[]],0,[[]],[[],21],[[],5],[[],5],[[],6],0,0,0,0,0,0,0,0,0,0,0,0,0,[28,66],[28,66],[[24,2],66],[[28,24,28],66],[[28,24,28],66],[24,66],[32,1],[[],66],[[],66],[[],66],[[66,32],66],[[],66],0,0,0,0,0,0,0,0,0,0,[[]],[[[12,[67]]]],[[]],[[]],0,0,0,[[],[[36,[[12,[67]]]]]],[[],68],[[],28],[69,12],[32],[[],[[36,[[12,[67]]]]]],[[]],0,[[]],0,0,0,0,[[],70],0,0,0,0,[[]],0,[71],0,[[]],0,[[],[[36,[[12,[67]]]]]],0,[[],5],[[],5],[[],6],0,0,[[]],[[]],[[]],[28,71],[[]],0,0,0,[[],5],[[],5],[[],6],[[],71],0,0,0,0,[[72,[12,[67]]]],[[[12,[67]]]],[[]],[[]],[[]],[[]],[73,21],[72,[[36,[[12,[67]]]]]],[[],[[36,[[12,[67]]]]]],[[]],[[]],[72,74],[[]],[[]],0,[[],72],0,[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],0,0,0,0,0,0,0,[75,70],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[75,28]],[76,21],[70],[77],[[]],[[]],[[]],[[]],[77,28],[[]],[[]],[[]],[[]],[28],[[],75],[70,77],0,[[],70],[77],0,[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],0,0,0,[[]],[[]],[[]],[[]],[78,[[36,[[12,[67]]]]]],0,[[],[[36,[[12,[67]]]]]],[[],68],[[],28],[79,21],[[]],[[]],[78,71],0,[[]],[[]],[[],78],[[]],[71],[78,[[36,[[12,[67]]]]]],[[],[[36,[[12,[67]]]]]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],0,0,0,0,0,0,0,[80,28],0,[[]],[[]],[[]],[[]],[[]],[[]],0,[81,81],[[]],[[81,81],22],[67],0,0,[12,[[12,[67]]]],[[]],[[]],[[]],[80,81],[80,68],[80,28],[67,28],0,[67,[[65,[80]]]],[[]],[[]],[[]],[80,22],0,0,[[],67],0,0,0,0,[[]],0,[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],0,0,[[],28],[[],28],[[]],0,0,[[]],[[]],0,0,0,[[]],[[]],0,[[],1],[[],1],0,[[],1],0,0,[[28,28,28,28,28],68],[[]],[[]],[[68,23],10],[[]],[[]],0,0,0,[[68,28]],0,0,[[],5],[[],5],[[],6],0],"p":[[15,"never"],[15,"u32"],[3,"RISCV64"],[15,"u64"],[4,"Result"],[3,"TypeId"],[3,"Arguments"],[3,"Stdout"],[15,"str"],[6,"Result"],[3,"BLOCK_DEVICE"],[3,"Arc"],[8,"SPI"],[3,"SDCard"],[4,"CMD"],[4,"InitError"],[3,"SDCardCSD"],[3,"SDCardCID"],[3,"SDCardInfo"],[3,"PERIPHERALS"],[3,"UPSafeCell"],[15,"bool"],[3,"Formatter"],[15,"u8"],[3,"SPI0"],[3,"SPIImpl"],[3,"SDCardWrapper"],[15,"usize"],[3,"QUEUE_FRAMES"],[3,"VirtIOBlock"],[3,"PhysAddr"],[15,"i32"],[3,"VirtAddr"],[3,"OpenFlags"],[3,"OSInode"],[4,"Option"],[3,"UserBuffer"],[4,"Ordering"],[3,"ROOT_INODE"],[8,"IntoIterator"],[3,"Inode"],[3,"Vec"],[3,"Stdin"],[3,"Stdout"],[3,"PanicInfo"],[3,"FrameTracker"],[3,"PhysPageNum"],[3,"String"],[3,"VirtPageNum"],[8,"Clone"],[3,"SimpleRange"],[3,"SimpleRangeIterator"],[3,"StackFrameAllocator"],[3,"FRAME_ALLOCATOR"],[3,"Layout"],[3,"MemorySet"],[3,"MapPermission"],[4,"MapType"],[3,"MapArea"],[3,"PageTable"],[3,"KERNEL_SPACE"],[3,"PageTableEntry"],[3,"PTEFlags"],[3,"UserBufferIterator"],[3,"RefMut"],[15,"isize"],[3,"TaskControlBlock"],[3,"TrapContext"],[3,"INITPROC"],[3,"PidHandle"],[3,"TaskContext"],[3,"TaskManager"],[3,"TASK_MANAGER"],[3,"VecDeque"],[3,"PidAllocator"],[3,"PID_ALLOCATOR"],[3,"KernelStack"],[3,"Processor"],[3,"PROCESSOR"],[3,"TaskControlBlockInner"],[4,"TaskStatus"],[8,"QEMUExit"],[13,"CMDFailed"],[13,"CardCapacityStatusNotSet"],[8,"File"],[3,"OSInodeInner"],[8,"StepByOne"],[8,"FrameAllocator"]]}\
}');
if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex};