/*
 * Copyright (c) 2009 The Regents of the University of California
 * Barret Rhoden <brho@cs.berkeley.edu>
 * See LICENSE for details.
 *
 * Memory management flags, currently used in mmap().
 * Try to keep these in sync with /usr/include/bits/mman.h so we have less
 * issues with userspace.
 */

#pragma once

/* Memory protection states (what you're allowed to do */
#define PROT_READ		0x1
#define PROT_WRITE		0x2
#define PROT_EXEC		0x4
#define PROT_NONE		0x0
#define PROT_GROWSDOWN	0x01000000
#define PROT_GROWSUP	0x02000000
// TODO NOT A REAL STATE
#define PROT_UNMAP		0x100

/* mmap flags, only anonymous is supported now, feel free to pass others */
#define MAP_SHARED		0x01
#define MAP_PRIVATE		0x02
#define MAP_FIXED		0x10
#define MAP_ANONYMOUS	0x20
#define MAP_ANON MAP_ANONYMOUS

#define MAP_GROWSDOWN	0x00100
#define MAP_DENYWRITE	0x00800
#define MAP_EXECUTABLE	0x01000
#define MAP_LOCKED		0x02000
#define MAP_NORESERVE	0x04000
#define MAP_POPULATE	0x08000
#define MAP_NONBLOCK	0x10000
#define MAP_STACK		0x20000

#define MAP_FAILED		((void*)-1)

/* Other mmap flags, which we probably won't support
#define MAP_32BIT
*/
