git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: race condition and partial state issue on injecting signal context into user...
[lunaix-os.git]
/
lunaix-os
/
includes
/
lunaix
/
mm
/
vmm.h
diff --git
a/lunaix-os/includes/lunaix/mm/vmm.h
b/lunaix-os/includes/lunaix/mm/vmm.h
index 5d88f3c75b7f5e45a826de5db480beaa7ab46ad6..eab731589745221569db2354440449e4727ab41d 100644
(file)
--- a/
lunaix-os/includes/lunaix/mm/vmm.h
+++ b/
lunaix-os/includes/lunaix/mm/vmm.h
@@
-7,7
+7,22
@@
// Virtual memory manager
#define VMAP_NULL 0
// Virtual memory manager
#define VMAP_NULL 0
+/**
+ * @brief 映射模式:忽略已存在映射
+ *
+ */
#define VMAP_IGNORE 1
#define VMAP_IGNORE 1
+/**
+ * @brief 映射模式:不作实际映射。该功能用于预留出特定的地址空间
+ *
+ */
+#define VMAP_NOMAP 2
+
+/**
+ * @brief 规定下一个可用页映射应当限定在指定的4MB地址空间内
+ *
+ */
+#define VALLOC_PDE 1
/**
* @brief 初始化虚拟内存管理器
/**
* @brief 初始化虚拟内存管理器
@@
-69,6
+84,9
@@
vmm_lookup(uintptr_t va, v_mapping* mapping);
void*
vmm_dup_page(pid_t pid, void* pa);
void*
vmm_dup_page(pid_t pid, void* pa);
+void*
+vmm_dup_vmspace(pid_t pid);
+
/**
* @brief 挂载另一个虚拟地址空间至当前虚拟地址空间
*
/**
* @brief 挂载另一个虚拟地址空间至当前虚拟地址空间
*
@@
-85,4
+103,7
@@
vmm_mount_pd(uintptr_t mnt, void* pde);
void*
vmm_unmount_pd(uintptr_t mnt);
void*
vmm_unmount_pd(uintptr_t mnt);
+void*
+vmm_next_free(uintptr_t start, int options);
+
#endif /* __LUNAIX_VMM_H */
#endif /* __LUNAIX_VMM_H */