diff options
Diffstat (limited to 'usr/src')
| -rw-r--r-- | usr/src/lib/brand/lx/lx_brand/common/mem.c | 11 |
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 |
