aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xg_private.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-10-23 09:52:51 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-10-23 09:52:51 +0100
commita3fc4d842ee8ff9de41a234d0dfc4252ea3f19ec (patch)
tree206b826018b807ed533391714457157a1b11d888 /tools/libxc/xg_private.c
parent7aae32885d19d76db269b7231a313d3c91a1e10a (diff)
downloadxen-a3fc4d842ee8ff9de41a234d0dfc4252ea3f19ec.tar.gz
xen-a3fc4d842ee8ff9de41a234d0dfc4252ea3f19ec.tar.bz2
xen-a3fc4d842ee8ff9de41a234d0dfc4252ea3f19ec.zip
[SOLARIS] Don't mlock() hypercall buffers.
On solaris mlock requires a page aligned address and mlock doesn't ensure the pages won't minor page fault. Signed-off-by: Mark Johnson <mark.johnson@sun.com>
Diffstat (limited to 'tools/libxc/xg_private.c')
-rw-r--r--tools/libxc/xg_private.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/tools/libxc/xg_private.c b/tools/libxc/xg_private.c
index a23d05de51..86cef6efa8 100644
--- a/tools/libxc/xg_private.c
+++ b/tools/libxc/xg_private.c
@@ -11,6 +11,22 @@
#include "xg_private.h"
+int lock_pages(void *addr, size_t len)
+{
+ int e = 0;
+#ifndef __sun__
+ e = mlock(addr, len);
+#endif
+ return (e);
+}
+
+void unlock_pages(void *addr, size_t len)
+{
+#ifndef __sun__
+ safe_munlock(addr, len);
+#endif
+}
+
char *xc_read_image(const char *filename, unsigned long *size)
{
int kernel_fd = -1;