/*
 * sys/mman.h
 */

#ifndef _SYS_MMAN_H
#define _SYS_MMAN_H

#include <klibc/extern.h>
#include <sys/types.h>
#include <asm/mman.h>

#define MAP_FAILED ((void *)-1)

__extern void *mmap(void *, size_t, int, int, int, off_t);
__extern int munmap(void *, size_t);
__extern void *mremap(void *, size_t, size_t, unsigned long);
__extern int shm_open(const char *, int, mode_t);
__extern int shm_unlink(const char *);
__extern int msync(const void *, size_t, int);
__extern int mprotect(const void *, size_t, int);
__extern int mlockall(int);
__extern int munlockall(void);
__extern int mlock(const void *, size_t);
__extern int munlock(const void *, size_t);

#endif				/* _SYS_MMAN_H */
