/DragonOS/docs/kernel/memory_management/ |
H A D | allocate-memory.md | 29 …AddressSpace`)的`mmap()`,`map_anonymous()`等函数,为用户程序分配内存。这些函数会自动将用户程序的内存映射到用户地址空间中,并且会自动创建VMA结构体。您可以…
|
/DragonOS/kernel/src/mm/ |
H A D | syscall.rs | 18 ucontext::{AddressSpace, DEFAULT_MMAP_MIN_ADDR}, 255 let address_space = AddressSpace::current()?; in brk() 275 let address_space = AddressSpace::current()?; in sbrk() 325 let current_address_space = AddressSpace::current()?; in mmap() 403 let current_address_space = AddressSpace::current()?; in mremap() 461 let current_address_space: Arc<AddressSpace> = AddressSpace::current()?; in munmap() 497 let current_address_space: Arc<AddressSpace> = AddressSpace::current()?; in mprotect() 533 let current_address_space: Arc<AddressSpace> = AddressSpace::current()?; in madvise() 584 let current_address_space = AddressSpace::current()?; in msync()
|
H A D | ucontext.rs | 61 pub struct AddressSpace { struct 65 impl AddressSpace { implementation 75 pub fn current() -> Result<Arc<AddressSpace>, SystemError> { in current() 94 impl core::ops::Deref for AddressSpace { implementation 102 impl core::ops::DerefMut for AddressSpace { implementation 161 pub fn try_clone(&mut self) -> Result<Arc<AddressSpace>, SystemError> { in try_clone() argument 163 let new_addr_space = AddressSpace::new(false)?; in try_clone() 1293 return AddressSpace::is_current(&space); in is_foreign() 1362 user_address_space: Option<Weak<AddressSpace>>, 1421 pub fn address_space(&self) -> Option<Weak<AddressSpace>> { in address_space() argument
|
H A D | mod.rs | 20 ucontext::{AddressSpace, LockedVMA, UserMapper}, 39 static mut __IDLE_PROCESS_ADDRESS_SPACE: Option<Arc<AddressSpace>> = None; 124 pub fn IDLE_PROCESS_ADDRESS_SPACE() -> Arc<AddressSpace> { in IDLE_PROCESS_ADDRESS_SPACE() 135 pub unsafe fn set_IDLE_PROCESS_ADDRESS_SPACE(address_space: Arc<AddressSpace>) { in set_IDLE_PROCESS_ADDRESS_SPACE() argument
|
/DragonOS/kernel/src/arch/riscv64/process/ |
H A D | syscall.rs | 8 mm::ucontext::AddressSpace, 43 let address_space = AddressSpace::new(true).expect("Failed to create new address space"); in do_execve() 52 AddressSpace::is_current(&address_space), in do_execve()
|
/DragonOS/kernel/src/arch/x86_64/process/ |
H A D | syscall.rs | 11 mm::ucontext::AddressSpace, 46 let address_space = AddressSpace::new(true).expect("Failed to create new address space"); in do_execve() 55 AddressSpace::is_current(&address_space), in do_execve()
|
/DragonOS/kernel/src/process/ |
H A D | exec.rs | 14 ucontext::{AddressSpace, UserStack}, 99 vm: Arc<AddressSpace>, 118 vm: Arc<AddressSpace>, in new() argument 134 pub fn vm(&self) -> &Arc<AddressSpace> { in vm() argument
|
H A D | mod.rs | 50 ucontext::AddressSpace, 125 AddressSpace::new(true).expect("Failed to create address space for INIT process."), in init() 1114 user_vm: Option<Arc<AddressSpace>>, 1128 user_vm: Option<Arc<AddressSpace>>, in new() argument 1169 pub fn user_vm(&self) -> Option<Arc<AddressSpace>> { in user_vm() argument 1173 pub unsafe fn set_user_vm(&mut self, user_vm: Option<Arc<AddressSpace>>) { in set_user_vm() argument
|
/DragonOS/kernel/src/arch/x86_64/mm/ |
H A D | fault.rs | 21 ucontext::{AddressSpace, LockedVMA}, 228 let current_address_space: Arc<AddressSpace> = AddressSpace::current().unwrap(); in do_user_addr_fault()
|
/DragonOS/kernel/src/ipc/ |
H A D | syscall.rs | 25 ucontext::{AddressSpace, VMA}, 310 let current_address_space = AddressSpace::current()?; in shmat() 421 let current_address_space = AddressSpace::current()?; in shmdt()
|
/DragonOS/kernel/src/libs/futex/ |
H A D | futex.rs | 20 mm::{ucontext::AddressSpace, MemoryManagementArch, VirtAddr}, 181 address_space: Option<Weak<AddressSpace>>, 532 let address_space = AddressSpace::current()?; in get_futex_key()
|