diff options
| author | Missy Connell <missyc@us.ibm.com> | 2011-09-07 14:34:48 -0500 |
|---|---|---|
| committer | Melissa J. Connell <missyc@us.ibm.com> | 2011-09-15 23:19:29 -0500 |
| commit | a740789978e866ce8e9c278ecb05b0060751f090 (patch) | |
| tree | b3e6babc2767801f22ace9745dc56457e8eff218 /src/include/kernel/vmmmgr.H | |
| parent | a5f6b8ec8b637628dd843ec8f187e01acb678b67 (diff) | |
| download | blackbird-hostboot-a740789978e866ce8e9c278ecb05b0060751f090.tar.gz blackbird-hostboot-a740789978e866ce8e9c278ecb05b0060751f090.zip | |
Adding new interface to update page permissions.. Interface only.
Added changes from review comments
Updated new enum for system call
Change-Id: I8a55b5e2f67427e59263eae31913e438ca782006
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/331
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: Melissa J. Connell <missyc@us.ibm.com>
Diffstat (limited to 'src/include/kernel/vmmmgr.H')
| -rw-r--r-- | src/include/kernel/vmmmgr.H | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/include/kernel/vmmmgr.H b/src/include/kernel/vmmmgr.H index 2d0d0297d..ef8e6c362 100644 --- a/src/include/kernel/vmmmgr.H +++ b/src/include/kernel/vmmmgr.H @@ -118,6 +118,19 @@ class VmmManager */ static int mmRemovePages(PAGE_REMOVAL_OPS i_op, void* i_vaddr, uint64_t i_size); + /** + * @brief Sets the permissions for a given page or range of pages + * @param i_va[in] - Virtual address of the page to update permission + * @param i_size[in] - range of memory that needs permissions updated... + * if i_size equals 0 then we only need to update an + * individual page. + * @return int - 0 for successful permission update, non-zero otherwise + * + * The given virtual address will be 'rounded' down to the nearest page + * boundary, along with the given size will be 'rounded' up to the + * nearest divisible page size. + */ + static int mmSetPermission(void* i_va,uint64_t i_size, PAGE_PERMISSIONS i_access_type); protected: VmmManager(); @@ -141,6 +154,9 @@ class VmmManager /** See findPhysicalAddress */ uint64_t _findPhysicalAddress(uint64_t i_vaddr); + /* See mmSetPermission */ + int _mmSetPermission(void* i_va,uint64_t i_size, PAGE_PERMISSIONS i_access_type); + public: friend class Block; |

