summary refs log tree commit diff
path: root/sys_util
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2018-06-18 16:18:52 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-06-21 16:31:43 -0700
commit298b41cf82dc807b21e0352c6658c52d5550374d (patch)
tree22074ba7b29df9190c840f5f7e3df106a397b398 /sys_util
parent22272dd4b26cf1e3797ea8f7ea0331d71cbd399a (diff)
downloadcrosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.gz
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.bz2
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.lz
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.xz
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.tar.zst
crosvm-298b41cf82dc807b21e0352c6658c52d5550374d.zip
sys_util: move round_to_page_size to sys_util
This function will be used elsewhere in gpu_display.

TEST=None
BUG=None

Change-Id: I58b820511ea5a55a53ad640fdfe7c96d2dbdc73b
Reviewed-on: https://chromium-review.googlesource.com/1105481
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'sys_util')
-rw-r--r--sys_util/src/lib.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys_util/src/lib.rs b/sys_util/src/lib.rs
index 701622b..caef4c2 100644
--- a/sys_util/src/lib.rs
+++ b/sys_util/src/lib.rs
@@ -75,6 +75,14 @@ pub fn pagesize() -> usize {
     unsafe { sysconf(_SC_PAGESIZE) as usize }
 }
 
+
+/// Uses the system's page size in bytes to round the given value up to the nearest page boundary.
+#[inline(always)]
+pub fn round_up_to_page_size(v: usize) -> usize {
+    let page_mask = pagesize() - 1;
+    (v + page_mask) & !page_mask
+}
+
 /// This bypasses `libc`'s caching `getpid(2)` wrapper which can be invalid if a raw clone was used
 /// elsewhere.
 #[inline(always)]