|
@@ -19,7 +19,8 @@
|
|
|
*/
|
|
|
#define UFFD_API ((__u64)0xAA)
|
|
|
#define UFFD_API_FEATURES (UFFD_FEATURE_EVENT_FORK | \
|
|
|
- UFFD_FEATURE_EVENT_REMAP)
|
|
|
+ UFFD_FEATURE_EVENT_REMAP | \
|
|
|
+ UFFD_FEATURE_EVENT_MADVDONTNEED)
|
|
|
#define UFFD_API_IOCTLS \
|
|
|
((__u64)1 << _UFFDIO_REGISTER | \
|
|
|
(__u64)1 << _UFFDIO_UNREGISTER | \
|
|
@@ -83,6 +84,11 @@ struct uffd_msg {
|
|
|
__u64 len;
|
|
|
} remap;
|
|
|
|
|
|
+ struct {
|
|
|
+ __u64 start;
|
|
|
+ __u64 end;
|
|
|
+ } madv_dn;
|
|
|
+
|
|
|
struct {
|
|
|
/* unused reserved fields */
|
|
|
__u64 reserved1;
|
|
@@ -98,6 +104,7 @@ struct uffd_msg {
|
|
|
#define UFFD_EVENT_PAGEFAULT 0x12
|
|
|
#define UFFD_EVENT_FORK 0x13
|
|
|
#define UFFD_EVENT_REMAP 0x14
|
|
|
+#define UFFD_EVENT_MADVDONTNEED 0x15
|
|
|
|
|
|
/* flags for UFFD_EVENT_PAGEFAULT */
|
|
|
#define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */
|
|
@@ -119,6 +126,7 @@ struct uffdio_api {
|
|
|
#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
|
|
|
#define UFFD_FEATURE_EVENT_FORK (1<<1)
|
|
|
#define UFFD_FEATURE_EVENT_REMAP (1<<2)
|
|
|
+#define UFFD_FEATURE_EVENT_MADVDONTNEED (1<<3)
|
|
|
__u64 features;
|
|
|
|
|
|
__u64 ioctls;
|