/*
 * 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
*/
