xref: /original-bsd/sys/sys/mman.h (revision 0997b878)
1 /*-
2  * Copyright (c) 1982, 1986, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  *
7  *	@(#)mman.h	8.2 (Berkeley) 01/09/95
8  */
9 
10 /*
11  * Protections are chosen from these bits, or-ed together
12  */
13 #define	PROT_NONE	0x00	/* no permissions */
14 #define	PROT_READ	0x01	/* pages can be read */
15 #define	PROT_WRITE	0x02	/* pages can be written */
16 #define	PROT_EXEC	0x04	/* pages can be executed */
17 
18 /*
19  * Flags contain sharing type and options.
20  * Sharing types; choose one.
21  */
22 #define	MAP_SHARED	0x0001	/* share changes */
23 #define	MAP_PRIVATE	0x0002	/* changes are private */
24 #define	MAP_COPY	0x0004	/* "copy" region at mmap time */
25 
26 /*
27  * Other flags
28  */
29 #define	MAP_FIXED	 0x0010	/* map addr must be exactly as requested */
30 #define	MAP_RENAME	 0x0020	/* Sun: rename private pages to file */
31 #define	MAP_NORESERVE	 0x0040	/* Sun: don't reserve needed swap area */
32 #define	MAP_INHERIT	 0x0080	/* region is retained after exec */
33 #define	MAP_NOEXTEND	 0x0100	/* for MAP_FILE, don't change file size */
34 #define	MAP_HASSEMAPHORE 0x0200	/* region may contain semaphores */
35 
36 /*
37  * Mapping type
38  */
39 #define	MAP_FILE	0x0000	/* map from file (default) */
40 #define	MAP_ANON	0x1000	/* allocated from memory, swap space */
41 
42 /*
43  * Advice to madvise
44  */
45 #define	MADV_NORMAL	0	/* no further special treatment */
46 #define	MADV_RANDOM	1	/* expect random page references */
47 #define	MADV_SEQUENTIAL	2	/* expect sequential page references */
48 #define	MADV_WILLNEED	3	/* will need these pages */
49 #define	MADV_DONTNEED	4	/* dont need these pages */
50 
51 #ifndef KERNEL
52 
53 #include <sys/cdefs.h>
54 
55 __BEGIN_DECLS
56 /* Some of these int's should probably be size_t's */
57 caddr_t	mmap __P((caddr_t, size_t, int, int, int, off_t));
58 int	mprotect __P((caddr_t, size_t, int));
59 int	munmap __P((caddr_t, size_t));
60 int	msync __P((caddr_t, size_t));
61 int	mlock __P((caddr_t, size_t));
62 int	munlock __P((caddr_t, size_t));
63 int	madvise __P((caddr_t, size_t, int));
64 __END_DECLS
65 
66 #endif /* !KERNEL */
67