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