summaryrefslogtreecommitdiffstats
path: root/src/include/kernel/vmmmgr.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/kernel/vmmmgr.H')
-rw-r--r--src/include/kernel/vmmmgr.H23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/include/kernel/vmmmgr.H b/src/include/kernel/vmmmgr.H
index ef8e6c362..5c7a75d5d 100644
--- a/src/include/kernel/vmmmgr.H
+++ b/src/include/kernel/vmmmgr.H
@@ -55,6 +55,12 @@ class VmmManager
RO_EXE_ACCESS,
};
+ enum castout_t
+ {
+ NORMAL,
+ CRITICAL,
+ };
+
static void init();
static void init_slb();
@@ -104,6 +110,17 @@ class VmmManager
* @return the physical address or -EFAULT @see errno.h
*/
static uint64_t findPhysicalAddress(uint64_t i_vaddr);
+
+ /**
+ * @brief Cast out older physical memory pages
+ * @param[in] castout constraint
+ */
+ static void castOutPages(castout_t i_ct);
+
+ /**
+ * @brief Flush pagetable, Update shadow page info
+ */
+ static void flushPageTable( void);
/**
* @brief Remove pages by a specified operation of the given size
@@ -157,6 +174,12 @@ class VmmManager
/* See mmSetPermission */
int _mmSetPermission(void* i_va,uint64_t i_size, PAGE_PERMISSIONS i_access_type);
+ /** See castOutPages */
+ void _castOutPages(castout_t i_ct);
+
+ /** See flushPageTable */
+ void _flushPageTable( void );
+
public:
friend class Block;
OpenPOWER on IntegriCloud