drc: add a timing hack for Internal Section
[pcsx_rearmed.git] / libpcsxcore / memmap.h
CommitLineData
503c59b2 1/* Copyright (C) 2010-2020 The RetroArch team
2 *
3 * ---------------------------------------------------------------------------------------
4 * The following license statement only applies to this file (memmap.h).
5 * ---------------------------------------------------------------------------------------
6 *
7 * Permission is hereby granted, free of charge,
8 * to any person obtaining a copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation the rights to
10 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
11 * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
16 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 */
22
ce0e7ac9 23#ifndef _MEMMAP_H
24#define _MEMMAP_H
25
26#ifdef _WIN32
27
503c59b2 28#ifndef _WIN32_WINNT /* Allow use of features specific to Windows XP or later. */
29#define _WIN32_WINNT 0x0501 /* Change this to the appropriate value to target other versions of Windows. */
ce0e7ac9 30#endif
31
32/* All the headers include this file. */
33#ifndef _MSC_VER
34#include <_mingw.h>
35#endif
36
37#include <sys/types.h>
38
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43#define PROT_NONE 0
44#define PROT_READ 1
45#define PROT_WRITE 2
46#define PROT_EXEC 4
47
48#define MAP_FILE 0
49#define MAP_SHARED 1
50#define MAP_PRIVATE 2
51#define MAP_TYPE 0xf
52#define MAP_FIXED 0x10
53#define MAP_ANONYMOUS 0x20
54#define MAP_ANON MAP_ANONYMOUS
55
56#define MAP_FAILED ((void *)-1)
57
58/* Flags for msync. */
59#define MS_ASYNC 1
60#define MS_SYNC 2
61#define MS_INVALIDATE 4
62
63void* mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);
64int munmap(void *addr, size_t len);
65int mprotect(void *addr, size_t len, int prot);
66int msync(void *addr, size_t len, int flags);
67int mlock(const void *addr, size_t len);
68int munlock(const void *addr, size_t len);
69
70#ifdef __cplusplus
71};
72#endif
73
74#else
75#include <sys/mman.h>
76#endif
77
78#endif