From a23283c6facfee055c9c6d43e23a04ca02edc467 Mon Sep 17 00:00:00 2001 From: Doug Gilbert Date: Wed, 27 Jun 2012 17:59:25 -0500 Subject: Improve memory page manager for low memory situations RTC: 40831 Change-Id: I7889f91eec44a10d56ffc94e03c7557f8085100a Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1272 Reviewed-by: A. Patrick Williams III Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell --- src/kernel/syscall.C | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/kernel/syscall.C') diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C index dd3d10949..1ed68624e 100644 --- a/src/kernel/syscall.C +++ b/src/kernel/syscall.C @@ -101,6 +101,7 @@ namespace Systemcalls void MmAllocBlock(task_t *t); void MmRemovePages(task_t *t); void MmSetPermission(task_t *t); + void MmFlushPages(task_t *t); syscall syscalls[] = @@ -134,6 +135,7 @@ namespace Systemcalls &MmAllocBlock, // MM_ALLOC_BLOCK &MmRemovePages, // MM_REMOVE_PAGES &MmSetPermission, // MM_SET_PERMISSION + &MmFlushPages, // MM_FLUSH_PAGES }; }; @@ -668,5 +670,16 @@ namespace Systemcalls TASK_SETRTN(t, VmmManager::mmSetPermission(va,size, access_type)); } + /** + * Flush and Cast out 'old' pages + * @param[in] t: The task used. + */ + void MmFlushPages(task_t* t) + { + VmmManager::castout_t sev = (VmmManager::castout_t)TASK_GETARG0(t); + VmmManager::flushPageTable(); + VmmManager::castOutPages(sev); + TASK_SETRTN(t,0); + } }; -- cgit v1.2.1