| 1 | /* |
| 2 | * QEMU page protection definitions. |
| 3 | * |
| 4 | * Copyright (c) 2003 Fabrice Bellard |
| 5 | * |
| 6 | * SPDX-License-Identifier: LGPL-2.1+ |
| 7 | */ |
| 8 | #ifndef EXEC_PAGE_PROT_COMMON_H |
| 9 | #define EXEC_PAGE_PROT_COMMON_H |
| 10 | |
| 11 | /* same as PROT_xxx */ |
| 12 | #define PAGE_READ 0x0001 |
| 13 | #define PAGE_WRITE 0x0002 |
| 14 | #define PAGE_EXEC 0x0004 |
| 15 | #define PAGE_RWX (PAGE_READ | PAGE_WRITE | PAGE_EXEC) |
| 16 | #define PAGE_VALID 0x0008 |
| 17 | /* |
| 18 | * Original state of the write flag (used when tracking self-modifying code) |
| 19 | */ |
| 20 | #define PAGE_WRITE_ORG 0x0010 |
| 21 | /* |
| 22 | * Invalidate the TLB entry immediately, helpful for s390x |
| 23 | * Low-Address-Protection. Used with PAGE_WRITE in tlb_set_page_with_attrs() |
| 24 | */ |
| 25 | #define PAGE_WRITE_INV 0x0020 |
| 26 | /* |
| 27 | * For linux-user, indicates that the page is mapped with the same semantics |
| 28 | * in both guest and host. |
| 29 | */ |
| 30 | #define PAGE_PASSTHROUGH 0x40 |
| 31 | /* For linux-user, indicates that the page is MAP_ANON. */ |
| 32 | #define PAGE_ANON 0x0080 |
| 33 | /* |
| 34 | * For linux-user, indicates that the page should not be |
| 35 | * included in a core dump. |
| 36 | */ |
| 37 | #define PAGE_DONTDUMP 0x0100 |
| 38 | /* Target-specific bits that will be used via page_get_flags(). */ |
| 39 | #define PAGE_TARGET_1 0x0200 |
| 40 | #define PAGE_TARGET_2 0x0400 |
| 41 | |
| 42 | #endif |