]>
Commit | Line | Data |
---|---|---|
0e9b5cd6 AG |
1 | /* |
2 | * Linux UFFD-WP support | |
3 | * | |
4 | * Copyright Virtuozzo GmbH, 2020 | |
5 | * | |
6 | * Authors: | |
7 | * Andrey Gruzdev <andrey.gruzdev@virtuozzo.com> | |
8 | * | |
9 | * This work is licensed under the terms of the GNU GPL, version 2 or | |
10 | * later. See the COPYING file in the top-level directory. | |
11 | */ | |
12 | ||
13 | #ifndef USERFAULTFD_H | |
14 | #define USERFAULTFD_H | |
15 | ||
16 | #include "qemu/osdep.h" | |
17 | #include "exec/hwaddr.h" | |
18 | #include <linux/userfaultfd.h> | |
19 | ||
20 | int uffd_query_features(uint64_t *features); | |
21 | int uffd_create_fd(uint64_t features, bool non_blocking); | |
22 | void uffd_close_fd(int uffd_fd); | |
23 | int uffd_register_memory(int uffd_fd, void *addr, uint64_t length, | |
24 | uint64_t mode, uint64_t *ioctls); | |
25 | int uffd_unregister_memory(int uffd_fd, void *addr, uint64_t length); | |
26 | int uffd_change_protection(int uffd_fd, void *addr, uint64_t length, | |
27 | bool wp, bool dont_wake); | |
28 | int uffd_copy_page(int uffd_fd, void *dst_addr, void *src_addr, | |
29 | uint64_t length, bool dont_wake); | |
30 | int uffd_zero_page(int uffd_fd, void *addr, uint64_t length, bool dont_wake); | |
31 | int uffd_wakeup(int uffd_fd, void *addr, uint64_t length); | |
32 | int uffd_read_events(int uffd_fd, struct uffd_msg *msgs, int count); | |
33 | bool uffd_poll_events(int uffd_fd, int tmo); | |
34 | ||
35 | #endif /* USERFAULTFD_H */ |