Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/KuangjuX/hypocaust
/ functions
Functions
178 in github.com/KuangjuX/hypocaust
⨍
Functions
178
◇
Types & classes
45
↓ 32 callers
Method
ppn
(&self)
src/page_table/pte.rs:34
↓ 19 callers
Method
is_valid
(&self)
src/page_table/pte.rs:40
↓ 16 callers
Method
flags
(&self)
src/page_table/pte.rs:37
↓ 16 callers
Method
push
(&self, satp: usize, spt: P)
src/guest/pmap.rs:55
↓ 16 callers
Method
translate
将虚拟页号翻译成页表项
src/mm/memory_set.rs:317
↓ 15 callers
Method
get_pte_array
暂时的实现
src/page_table/address.rs:166
↓ 14 callers
Method
push
将内存区域 push 到页表中,并映射内存区域
src/mm/memory_set.rs:69
↓ 11 callers
Function
gpa2hpa
(va: usize, hart_id: usize)
src/guest/pmap.rs:85
↓ 10 callers
Method
map
(&mut self, page_table: &mut P)
src/mm/memory_set.rs:388
↓ 8 callers
Method
exclusive_access
Exclusive access inner data in UPSafeCell. Panic if the data has been borrowed.
src/sync/up.rs:28
↓ 7 callers
Method
get_csr
(&self, csr: usize)
src/guest/mod.rs:101
↓ 7 callers
Function
gpt2spt
(va: usize, hart_id: usize)
src/guest/pmap.rs:93
↓ 7 callers
Method
len
(&self)
src/mm/memory_region.rs:23
↓ 6 callers
Method
executable
(&self)
src/page_table/pte.rs:49
↓ 6 callers
Method
floor
(&self)
src/page_table/address.rs:102
↓ 6 callers
Method
get_start
(&self)
src/page_table/address.rs:212
↓ 6 callers
Method
page_offset
(&self)
src/page_table/address.rs:108
↓ 6 callers
Method
set_csr
(&mut self, csr: usize, val: usize)
src/guest/mod.rs:116
↓ 6 callers
Function
update_pte_readonly
(vpn: VirtPageNum, spt: &mut P)
src/guest/pmap.rs:106
↓ 6 callers
Method
writable
(&self)
src/page_table/pte.rs:46
↓ 5 callers
Function
frame_alloc
allocate a frame
src/hypervisor/hyp_alloc/frame_allocator.rs:108
↓ 5 callers
Method
get_end
(&self)
src/page_table/address.rs:215
↓ 5 callers
Method
guest_page_table
(&self)
src/guest/pmap.rs:66
↓ 5 callers
Method
step
(&mut self)
src/page_table/address.rs:184
↓ 5 callers
Method
token
(&self)
src/mm/memory_set.rs:48
↓ 4 callers
Method
find_pte
(&self, vpn: VirtPageNum)
src/page_table/sv39.rs:70
↓ 4 callers
Method
get_bytes_array
(&self)
src/page_table/address.rs:170
↓ 4 callers
Method
get_mut
(&self)
src/page_table/address.rs:174
↓ 4 callers
Method
readable
(&self)
src/page_table/pte.rs:43
↓ 4 callers
Function
set_timer
(stime: usize)
src/sbi.rs:37
↓ 4 callers
Method
smode
(&self)
src/guest/context.rs:91
↓ 3 callers
Method
ceil
(&self)
src/page_table/address.rs:105
↓ 3 callers
Function
decode_instruction_at_address
decode instruction from Guest OS address
src/hypervisor/trap/inst_fault.rs:127
↓ 3 callers
Function
forward_exception
向 guest kernel 转发异常
src/hypervisor/trap/forward.rs:38
↓ 3 callers
Function
ifault
处理特权级指令问题
src/hypervisor/trap/inst_fault.rs:19
↓ 3 callers
Method
indexes
(&self)
src/page_table/address.rs:153
↓ 3 callers
Method
map
(&mut self, vpn: VirtPageNum, ppn: PhysPageNum, flags: PTEFlags)
src/page_table/sv39.rs:112
↓ 3 callers
Method
shadow_page_table
(&self, satp: usize)
src/guest/pmap.rs:61
↓ 3 callers
Method
spts
(&self)
src/guest/pmap.rs:51
↓ 3 callers
Method
translate_guest_vaddr
GVA -> HPA
src/guest/pmap.rs:298
↓ 2 callers
Function
console_putchar
use sbi call to putchar in console (qemu uart handler)
src/sbi.rs:28
↓ 2 callers
Function
get_time
()
src/timer.rs:14
↓ 2 callers
Method
init
(&mut self, l: PhysPageNum, r: PhysPageNum)
src/hypervisor/hyp_alloc/frame_allocator.rs:54
↓ 2 callers
Method
install_root
(&mut self, spt_token: usize, mode: PageTableRoot)
src/guest/pmap.rs:75
↓ 2 callers
Method
map_one
(&mut self, page_table: &mut P, vpn: VirtPageNum, ppn_: Option<PhysPageNum>)
src/mm/memory_set.rs:365
↓ 2 callers
Method
map_trampoline
Mention that trampoline is not collected by areas.
src/mm/memory_set.rs:77
↓ 2 callers
Function
page_table_mode
(page_table: P, hart_id: usize)
src/guest/pmap.rs:97
↓ 2 callers
Method
root_ppn
(&self)
src/page_table/sv39.rs:46
↓ 2 callers
Function
sbi_call
general sbi call
src/sbi.rs:12
↓ 2 callers
Function
set_kernel_trap_entry
()
src/hypervisor/trap/mod.rs:46
↓ 2 callers
Method
shadow
用来检查应当使用哪一级的影子页表
src/guest/mod.rs:91
↓ 2 callers
Function
shutdown
use sbi call to shutdown the kernel
src/sbi.rs:42
↓ 2 callers
Method
translate_guest_paddr
GPA -> HPA
src/guest/pmap.rs:287
↓ 2 callers
Method
translate_guest_ppte
(&self, vpn: VirtPageNum)
src/guest/pmap.rs:308
↓ 2 callers
Method
translate_guest_vpte
(&self, vpn: VirtPageNum)
src/guest/pmap.rs:312
↓ 1 callers
Function
__switch
(current_task_cx_ptr: *mut TaskContext, next_task_cx_ptr: *const TaskContext)
src/guest/switch.rs:14
↓ 1 callers
Method
activate
激活根页表
src/mm/memory_set.rs:308
↓ 1 callers
Method
add_guest
(&mut self, guest: GuestKernel<P>)
src/hypervisor/mod.rs:49
↓ 1 callers
Method
alloc
(&mut self)
src/hypervisor/hyp_alloc/frame_allocator.rs:67
↓ 1 callers
Function
clear_bss
clear BSS segment
src/main.rs:80
↓ 1 callers
Function
clear_page_table
(spt: &mut P, va: usize, hart_id: usize)
src/guest/pmap.rs:117
↓ 1 callers
Function
console_getchar
use sbi call to getchar from console (qemu uart handler)
src/sbi.rs:33
↓ 1 callers
Method
copy_data
data: start-aligned but maybe with shorter length assume that all frames were cleared before
src/mm/memory_set.rs:420
↓ 1 callers
Method
current_guest
(&mut self)
src/hypervisor/mod.rs:63
↓ 1 callers
Method
current_trap_cx
(&mut self)
src/hypervisor/mod.rs:58
↓ 1 callers
Method
current_user_token
(&self)
src/hypervisor/mod.rs:53
↓ 1 callers
Method
dealloc
(&mut self, ppn: PhysPageNum)
src/hypervisor/hyp_alloc/frame_allocator.rs:77
↓ 1 callers
Function
enable_timer_interrupt
enable timer interrupt in sie CSR
src/hypervisor/trap/mod.rs:65
↓ 1 callers
Method
find_guest_pte
(&self, vpn: VirtPageNum, hart_id: usize)
src/page_table/sv39.rs:88
↓ 1 callers
Method
find_pte_create
(&mut self, vpn: VirtPageNum)
src/page_table/sv39.rs:50
↓ 1 callers
Function
frame_dealloc
deallocate a frame
src/hypervisor/hyp_alloc/frame_allocator.rs:116
↓ 1 callers
Function
get_default_timer
()
src/timer.rs:10
↓ 1 callers
Method
get_user_token
根据 `PageTableRoot` mode 来获取对应的 shadow page table token
src/guest/mod.rs:80
↓ 1 callers
Function
guest_kernel_test
()
src/mm/memory_set.rs:487
↓ 1 callers
Function
handle_page_fault
(guest: &mut GuestKernel<P>, ctx: &mut TrapContext)
src/hypervisor/trap/page_fault.rs:10
↓ 1 callers
Function
handle_qemu_virt
(guest: &mut GuestKernel<P>, ctx: &mut TrapContext)
src/hypervisor/trap/device.rs:16
↓ 1 callers
Function
handle_time_interrupt
时钟中断处理函数
src/hypervisor/trap/device.rs:35
↓ 1 callers
Function
heap_init
initiate heap allocator, frame allocator and kernel space
src/hypervisor/hyp_alloc/mod.rs:7
↓ 1 callers
Method
hyper_load_guest_kernel
加载客户操作系统
src/mm/memory_set.rs:286
↓ 1 callers
Method
in_region
(&self, addr: usize)
src/device_emu/mod.rs:41
↓ 1 callers
Function
init
initialize CSR `stvec` as the entry of `__alltraps`
src/hypervisor/trap/mod.rs:42
↓ 1 callers
Function
init_frame_allocator
initiate the frame allocator using `einitrd` and `MEMORY_END`
src/hypervisor/hyp_alloc/frame_allocator.rs:97
↓ 1 callers
Function
init_heap
initiate heap allocator
src/hypervisor/hyp_alloc/heap_allocator.rs:20
↓ 1 callers
Function
initialize_vmm
(meta: MachineMeta)
src/hypervisor/mod.rs:70
↓ 1 callers
Method
insert_framed_area
Assume that no conflicts.
src/mm/memory_set.rs:56
↓ 1 callers
Function
is_device_access
(guest_pa: usize)
src/device_emu/virtio.rs:47
↓ 1 callers
Function
kernel_stack_position
Return (bottom, top) of a kernel stack in kernel space.
src/constants/layout.rs:42
↓ 1 callers
Method
make_shadow_page_table
根据 satp 构建影子页表 需要将 GVA -> HPA
src/guest/pmap.rs:335
↓ 1 callers
Function
maybe_forward_interrupt
检测 Guest OS 是否发生中断,若有则进行转发
src/hypervisor/trap/forward.rs:13
↓ 1 callers
Method
next
(&mut self)
src/page_table/address.rs:250
↓ 1 callers
Method
pop_sie
ref: riscv-privileged The `SPIE` bit indicates whether supervisor interrupts were enabled prior to trapping into supervisor mode. When a trap is taken
src/guest/context.rs:83
↓ 1 callers
Function
print_guest_backtrace
(spt: &P, satp: usize, ctx: &TrapContext)
src/debug/backtrace.rs:8
↓ 1 callers
Function
print_guest_page_table
(pte_array: &[PageTableEntry], level: u8)
src/debug/pagedebug.rs:57
↓ 1 callers
Function
print_hypervisor_backtrace
(ctx: &TrapContext)
src/debug/backtrace.rs:52
↓ 1 callers
Function
print_page_table
(pte_array: &[PageTableEntry], level: u8)
src/debug/pagedebug.rs:39
↓ 1 callers
Method
push_sie
ref: riscv-privileged The `SPIE` bit indicates whether supervisor interrupts were enabled prior to trapping into supervisor mode. When a trap is taken
src/guest/context.rs:74
↓ 1 callers
Function
remap_test
()
src/mm/memory_set.rs:461
↓ 1 callers
Method
run_guest
(&self, guest_id: usize)
src/hypervisor/mod.rs:37
↓ 1 callers
Function
set_default_next_trigger
set the next timer interrupt
src/timer.rs:28
↓ 1 callers
Method
set_sp
set stack pointer to x_2 reg (sp)
src/hypervisor/trap/context.rs:25
next →
1–100 of 178, ranked by callers