diff options
| author | Doug Gilbert <dgilbert@us.ibm.com> | 2012-06-27 17:59:25 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-07-11 08:18:00 -0500 |
| commit | a23283c6facfee055c9c6d43e23a04ca02edc467 (patch) | |
| tree | 51c7e8e5af9344041941a140be33950159b00972 /src/kernel/syscall.C | |
| parent | 2a37ac4be40500b6849444168181931202892a96 (diff) | |
| download | talos-hostboot-a23283c6facfee055c9c6d43e23a04ca02edc467.tar.gz talos-hostboot-a23283c6facfee055c9c6d43e23a04ca02edc467.zip | |
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 <iawillia@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/kernel/syscall.C')
| -rw-r--r-- | src/kernel/syscall.C | 13 |
1 files changed, 13 insertions, 0 deletions
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); + } }; |

