summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/sys/mman.h
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/sys/mman.h')
-rw-r--r--freebsd/sys/sys/mman.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/freebsd/sys/sys/mman.h b/freebsd/sys/sys/mman.h
index 4872d631..5ed9cdd6 100644
--- a/freebsd/sys/sys/mman.h
+++ b/freebsd/sys/sys/mman.h
@@ -82,11 +82,15 @@
*/
#define MAP_FILE 0x0000 /* map from file (default) */
#define MAP_ANON 0x1000 /* allocated from memory, swap space */
+#ifndef _KERNEL
+#define MAP_ANONYMOUS MAP_ANON /* For compatibility. */
+#endif /* !_KERNEL */
/*
* Extended flags
*/
#define MAP_NOCORE 0x00020000 /* dont include these pages in a coredump */
+#define MAP_PREFAULT_READ 0x00040000 /* prefault mapping for reading */
#endif /* __BSD_VISIBLE */
#if __POSIX_VISIBLE >= 199309
@@ -174,9 +178,11 @@ typedef __size_t size_t;
#define _SIZE_T_DECLARED
#endif
-#ifdef _KERNEL
+#if defined(_KERNEL) || defined(_WANT_FILE)
#include <vm/vm.h>
+struct file;
+
struct shmfd {
size_t shm_size;
vm_object_t shm_object;
@@ -184,6 +190,7 @@ struct shmfd {
uid_t shm_uid;
gid_t shm_gid;
mode_t shm_mode;
+ int shm_kmappings;
/*
* Values maintained solely to make this a better-behaved file
@@ -195,10 +202,16 @@ struct shmfd {
struct timespec shm_birthtime;
struct label *shm_label; /* MAC label */
+ const char *shm_path;
};
+#endif
+#ifdef _KERNEL
int shm_mmap(struct shmfd *shmfd, vm_size_t objsize, vm_ooffset_t foff,
vm_object_t *obj);
+int shm_map(struct file *fp, size_t size, off_t offset, void **memp);
+int shm_unmap(struct file *fp, void *mem, size_t size);
+void shm_path(struct shmfd *shmfd, char *path, size_t size);
#else /* !_KERNEL */