1/*-
2 * Copyright (c) 2004 Tim J. Robbins
3 * Copyright (c) 2002 Doug Rabson
4 * Copyright (c) 2000 Marcel Moolenaar
5 * Copyright (c) 1994-1995 S��ren Schmidt
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer
13 *    in this position and unchanged.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in the
16 *    documentation and/or other materials provided with the distribution.
17 * 3. The name of the author may not be used to endorse or promote products
18 *    derived from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 *
31 * $FreeBSD$
32 */
33
34#ifndef _LINUX_MMAP_H_
35#define	_LINUX_MMAP_H_
36
37/* mmap options */
38#define	LINUX_MAP_SHARED	0x0001
39#define	LINUX_MAP_PRIVATE	0x0002
40#define	LINUX_MAP_FIXED		0x0010
41#define	LINUX_MAP_ANON		0x0020
42#define	LINUX_MAP_32BIT		0x0040
43#define	LINUX_MAP_GROWSDOWN	0x0100
44
45#define	LINUX_PROT_GROWSDOWN	0x01000000
46#define	LINUX_PROT_GROWSUP	0x02000000
47
48#define	LINUX_MADV_NORMAL	0
49#define	LINUX_MADV_RANDOM	1
50#define	LINUX_MADV_SEQUENTIAL	2
51#define	LINUX_MADV_WILLNEED	3
52#define	LINUX_MADV_DONTNEED	4
53#define	LINUX_MADV_FREE		8
54#define	LINUX_MADV_REMOVE	9
55#define	LINUX_MADV_DONTFORK	10
56#define	LINUX_MADV_DOFORK	11
57#define	LINUX_MADV_MERGEABLE	12
58#define	LINUX_MADV_UNMERGEABLE	13
59#define	LINUX_MADV_HUGEPAGE	14
60#define	LINUX_MADV_NOHUGEPAGE	15
61#define	LINUX_MADV_DONTDUMP	16
62#define	LINUX_MADV_DODUMP	17
63#define	LINUX_MADV_WIPEONFORK	18
64#define	LINUX_MADV_KEEPONFORK	19
65#define	LINUX_MADV_HWPOISON	100
66#define	LINUX_MADV_SOFT_OFFLINE	101
67
68int linux_mmap_common(struct thread *, uintptr_t, size_t, int, int,
69			int, off_t);
70int linux_mprotect_common(struct thread *, uintptr_t, size_t, int);
71int linux_madvise_common(struct thread *, uintptr_t, size_t, int);
72
73#endif	/* _LINUX_MMAP_H_ */
74