summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/lib/brand/lx/lx_brand/common/mem.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/usr/src/lib/brand/lx/lx_brand/common/mem.c b/usr/src/lib/brand/lx/lx_brand/common/mem.c
index 15b077bd33..9578d34da5 100644
--- a/usr/src/lib/brand/lx/lx_brand/common/mem.c
+++ b/usr/src/lib/brand/lx/lx_brand/common/mem.c
@@ -21,10 +21,9 @@
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ * Copyright 2014 Joyent, Inc. All rights reserved.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <errno.h>
#include <unistd.h>
#include <sys/mman.h>
@@ -45,6 +44,7 @@
int pagesize; /* needed for mmap2() */
#define LX_MAP_ANONYMOUS 0x00020
+#define LX_MAP_LOCKED 0x02000
#define LX_MAP_NORESERVE 0x04000
static int
@@ -107,8 +107,11 @@ mmap_common(uintptr_t p1, uintptr_t p2, uintptr_t p3, uintptr_t p4,
if (ret == MAP_FAILED)
return (errno == EOVERFLOW ? -ENOMEM : -errno);
- else
- return ((int)ret);
+
+ if (flags & LX_MAP_LOCKED)
+ (void) mlock(ret, len);
+
+ return ((int)ret);
}
int