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
Merge branch 'master' of github.com:Minep/lunaix-os
[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 4a22cd7fdfa66ce75d3f29036d91dee44cff652d..bd074c54d41b2466e1455fa7c0e8aee365d6384a 100644
(file)
--- a/
lunaix-os/includes/lunaix/mm/vmm.h
+++ b/
lunaix-os/includes/lunaix/mm/vmm.h
@@
-6,6
+6,18
@@
#include <stdint.h>
// Virtual memory manager
#include <stdint.h>
// Virtual memory manager
+#define VMAP_NULL 0
+/**
+ * @brief 映射模式:忽略已存在映射
+ *
+ */
+#define VMAP_IGNORE 1
+/**
+ * @brief 映射模式:不作实际映射。该功能用于预留出特定的地址空间
+ *
+ */
+#define VMAP_NOMAP 2
+
/**
* @brief 初始化虚拟内存管理器
*
/**
* @brief 初始化虚拟内存管理器
*
@@
-31,7
+43,11
@@
vmm_init_pd();
* @return int
*/
int
* @return int
*/
int
-vmm_set_mapping(uintptr_t mnt, uintptr_t va, uintptr_t pa, pt_attr attr);
+vmm_set_mapping(uintptr_t mnt,
+ uintptr_t va,
+ uintptr_t pa,
+ pt_attr attr,
+ int options);
/**
* @brief 删除一个映射
/**
* @brief 删除一个映射
@@
-41,7
+57,7
@@
vmm_set_mapping(uintptr_t mnt, uintptr_t va, uintptr_t pa, pt_attr attr);
* @param va
* @return int
*/
* @param va
* @return int
*/
-
in
t
+
uintptr_
t
vmm_del_mapping(uintptr_t mnt, uintptr_t va);
/**
vmm_del_mapping(uintptr_t mnt, uintptr_t va);
/**
@@
-62,6
+78,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 挂载另一个虚拟地址空间至当前虚拟地址空间
*