summaryrefslogtreecommitdiffstats
path: root/templates/man2/ioctl_userfaultfd.2.pot
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--templates/man2/ioctl_userfaultfd.2.pot1769
1 files changed, 1769 insertions, 0 deletions
diff --git a/templates/man2/ioctl_userfaultfd.2.pot b/templates/man2/ioctl_userfaultfd.2.pot
new file mode 100644
index 00000000..c99b8bae
--- /dev/null
+++ b/templates/man2/ioctl_userfaultfd.2.pot
@@ -0,0 +1,1769 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2024-03-01 16:59+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ioctl_userfaultfd"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"ioctl_userfaultfd - create a file descriptor for handling page faults in "
+"user space"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<#include E<lt>linux/userfaultfd.hE<gt>> /* Definition of B<UFFD*> constants */\n"
+"B<#include E<lt>sys/ioctl.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<int ioctl(int >I<fd>B<, int >I<cmd>B<, ...);>\n"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Various B<ioctl>(2) operations can be performed on a userfaultfd object "
+"(created by a call to B<userfaultfd>(2)) using calls of the form:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ioctl(fd, cmd, argp);\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In the above, I<fd> is a file descriptor referring to a userfaultfd object, "
+"I<cmd> is one of the commands listed below, and I<argp> is a pointer to a "
+"data structure that is specific to I<cmd>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The various B<ioctl>(2) operations are described below. The B<UFFDIO_API>, "
+"B<UFFDIO_REGISTER>, and B<UFFDIO_UNREGISTER> operations are used to "
+"I<configure> userfaultfd behavior. These operations allow the caller to "
+"choose what features will be enabled and what kinds of events will be "
+"delivered to the application. The remaining operations are I<range> "
+"operations. These operations enable the calling application to resolve page-"
+"fault events."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "UFFDIO_API"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(Since Linux 4.3.) Enable operation of the userfaultfd and perform API "
+"handshake."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<argp> argument is a pointer to a I<uffdio_api> structure, defined as:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct uffdio_api {\n"
+" __u64 api; /* Requested API version (input) */\n"
+" __u64 features; /* Requested features (input/output) */\n"
+" __u64 ioctls; /* Available ioctl() operations (output) */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"The I<api> field denotes the API version requested by the application. The "
+"kernel verifies that it can support the requested API version, and sets the "
+"I<features> and I<ioctls> fields to bit masks representing all the available "
+"features and the generic B<ioctl>(2) operations available."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"Since Linux 4.11, applications should use the I<features> field to perform a "
+"two-step handshake. First, B<UFFDIO_API> is called with the I<features> "
+"field set to zero. The kernel responds by setting all supported feature "
+"bits."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"Applications which do not require any specific features can begin using the "
+"userfaultfd immediately. Applications which do need specific features "
+"should call B<UFFDIO_API> again with a subset of the reported feature bits "
+"set to enable those features."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Before Linux 4.11, the I<features> field must be initialized to zero before "
+"the call to B<UFFDIO_API>, and zero (i.e., no feature bits) is placed in the "
+"I<features> field by the kernel upon return from B<ioctl>(2)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"If the application sets unsupported feature bits, the kernel will zero out "
+"the returned I<uffdio_api> structure and return B<EINVAL>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The following feature bits may be set:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_EVENT_FORK> (since Linux 4.11)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When this feature is enabled, the userfaultfd objects associated with a "
+"parent process are duplicated into the child process during B<fork>(2) and "
+"a B<UFFD_EVENT_FORK> event is delivered to the userfaultfd monitor"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_EVENT_REMAP> (since Linux 4.11)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature is enabled, when the faulting process invokes B<mremap>(2), "
+"the userfaultfd monitor will receive an event of type B<UFFD_EVENT_REMAP>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_EVENT_REMOVE> (since Linux 4.11)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature is enabled, when the faulting process calls B<madvise>(2) "
+"with the B<MADV_DONTNEED> or B<MADV_REMOVE> advice value to free a virtual "
+"memory area the userfaultfd monitor will receive an event of type "
+"B<UFFD_EVENT_REMOVE>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_EVENT_UNMAP> (since Linux 4.11)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature is enabled, when the faulting process unmaps virtual memory "
+"either explicitly with B<munmap>(2), or implicitly during either B<mmap>(2) "
+"or B<mremap>(2), the userfaultfd monitor will receive an event of type "
+"B<UFFD_EVENT_UNMAP>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_MISSING_HUGETLBFS> (since Linux 4.11)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature bit is set, the kernel supports registering userfaultfd "
+"ranges on hugetlbfs virtual memory areas"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_MISSING_SHMEM> (since Linux 4.11)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature bit is set, the kernel supports registering userfaultfd "
+"ranges on shared memory areas. This includes all kernel shared memory APIs: "
+"System V shared memory, B<tmpfs>(5), shared mappings of I</dev/zero>, "
+"B<mmap>(2) with the B<MAP_SHARED> flag set, B<memfd_create>(2), and so on."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_SIGBUS> (since Linux 4.14)"
+msgstr ""
+
+#. commit 2d6d6f5a09a96cc1fec7ed992b825e05f64cb50e
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature bit is set, no page-fault events (B<UFFD_EVENT_PAGEFAULT>) "
+"will be delivered. Instead, a B<SIGBUS> signal will be sent to the faulting "
+"process. Applications using this feature will not require the use of a "
+"userfaultfd monitor for processing memory accesses to the regions registered "
+"with userfaultfd."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_THREAD_ID> (since Linux 4.14)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature bit is set, I<uffd_msg.pagefault.feat.ptid> will be set to "
+"the faulted thread ID for each page-fault message."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<UFFD_FEATURE_PAGEFAULT_FLAG_WP> (since Linux 5.10)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"If this feature bit is set, userfaultfd supports write-protect faults for "
+"anonymous memory. (Note that shmem / hugetlbfs support is indicated by a "
+"separate feature.)"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_MINOR_HUGETLBFS> (since Linux 5.13)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature bit is set, the kernel supports registering userfaultfd "
+"ranges in minor mode on hugetlbfs-backed memory areas."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_MINOR_SHMEM> (since Linux 5.14)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If this feature bit is set, the kernel supports registering userfaultfd "
+"ranges in minor mode on shmem-backed memory areas."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFD_FEATURE_EXACT_ADDRESS> (since Linux 5.18)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+msgid ""
+"If this feature bit is set, I<uffd_msg.pagefault.address> will be set to the "
+"exact page-fault address that was reported by the hardware, and will not "
+"mask the offset within the page. Note that old Linux versions might "
+"indicate the exact address as well, even though the feature bit is not set."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<UFFD_FEATURE_WP_HUGETLBFS_SHMEM> (since Linux 5.19)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"If this feature bit is set, userfaultfd supports write-protect faults for "
+"hugetlbfs and shmem / tmpfs memory."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<UFFD_FEATURE_WP_UNPOPULATED> (since Linux 6.4)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"If this feature bit is set, the kernel will handle anonymous memory the same "
+"way as file memory, by allowing the user to write-protect unpopulated page "
+"table entries."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<UFFD_FEATURE_POISON> (since Linux 6.6)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"If this feature bit is set, the kernel supports resolving faults with the "
+"B<UFFDIO_POISON> ioctl."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<UFFD_FEATURE_WP_ASYNC> (since Linux 6.7)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"If this feature bit is set, the write protection faults would be "
+"asynchronously resolved by the kernel."
+msgstr ""
+
+#. FIXME This user-space API seems not fully polished. Why are there
+#. not constants defined for each of the bit-mask values listed below?
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The returned I<ioctls> field can contain the following bits:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_API>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The B<UFFDIO_API> operation is supported."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_REGISTER>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The B<UFFDIO_REGISTER> operation is supported."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_UNREGISTER>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The B<UFFDIO_UNREGISTER> operation is supported."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"This B<ioctl>(2) operation returns 0 on success. On error, -1 is returned "
+"and I<errno> is set to indicate the error. If an error occurs, the kernel "
+"may zero the provided I<uffdio_api> structure. The caller should treat its "
+"contents as unspecified, and reinitialize it before re-attempting another "
+"B<UFFDIO_API> call. Possible errors include:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EFAULT>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<argp> refers to an address that is outside the calling process's "
+"accessible address space."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr ""
+
+# #-#-#-#-# debian-bookworm: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#
+# #-#-#-#-# debian-unstable: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#
+# #-#-#-#-# opensuse-leap-15-6: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#
+# #-#-#-#-# opensuse-tumbleweed: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#
+#. #-#-#-#-# archlinux: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: Plain text
+#. #-#-#-#-# debian-bookworm: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME In the above error case, the returned 'uffdio_api' structure is
+#. zeroed out. Why is this done? This should be explained in the manual page.
+#. Mike Rapoport:
+#. In my understanding the uffdio_api
+#. structure is zeroed to allow the caller
+#. to distinguish the reasons for -EINVAL.
+#. type: Plain text
+#. #-#-#-#-# debian-unstable: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME In the above error case, the returned 'uffdio_api' structure is
+#. zeroed out. Why is this done? This should be explained in the manual page.
+#. Mike Rapoport:
+#. In my understanding the uffdio_api
+#. structure is zeroed to allow the caller
+#. to distinguish the reasons for -EINVAL.
+#. type: Plain text
+#. #-#-#-#-# fedora-40: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: Plain text
+#. #-#-#-#-# fedora-rawhide: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: Plain text
+#. #-#-#-#-# mageia-cauldron: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. type: Plain text
+#. #-#-#-#-# opensuse-leap-15-6: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME In the above error case, the returned 'uffdio_api' structure is
+#. zeroed out. Why is this done? This should be explained in the manual page.
+#. Mike Rapoport:
+#. In my understanding the uffdio_api
+#. structure is zeroed to allow the caller
+#. to distinguish the reasons for -EINVAL.
+#. type: Plain text
+#. #-#-#-#-# opensuse-tumbleweed: ioctl_userfaultfd.2.pot (PACKAGE VERSION) #-#-#-#-#
+#. FIXME In the above error case, the returned 'uffdio_api' structure is
+#. zeroed out. Why is this done? This should be explained in the manual page.
+#. Mike Rapoport:
+#. In my understanding the uffdio_api
+#. structure is zeroed to allow the caller
+#. to distinguish the reasons for -EINVAL.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The API version requested in the I<api> field is not supported by this "
+"kernel, or the I<features> field passed to the kernel includes feature bits "
+"that are not supported by the current kernel version."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"A previous B<UFFDIO_API> call already enabled one or more features for this "
+"userfaultfd. Calling B<UFFDIO_API> twice, the first time with no features "
+"set, is explicitly allowed as per the two-step feature detection handshake."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<EPERM>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"The B<UFFD_FEATURE_EVENT_FORK> feature was enabled, but the calling process "
+"doesn't have the B<CAP_SYS_PTRACE> capability."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "UFFDIO_REGISTER"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"(Since Linux 4.3.) Register a memory address range with the userfaultfd "
+"object. The pages in the range must be \\[lq]compatible\\[rq]. Please "
+"refer to the list of register modes below for the compatible memory backends "
+"for each mode."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<argp> argument is a pointer to a I<uffdio_register> structure, defined "
+"as:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct uffdio_range {\n"
+" __u64 start; /* Start of range */\n"
+" __u64 len; /* Length of range (bytes) */\n"
+"};\n"
+"\\&\n"
+"struct uffdio_register {\n"
+" struct uffdio_range range;\n"
+" __u64 mode; /* Desired mode of operation (input) */\n"
+" __u64 ioctls; /* Available ioctl() operations (output) */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<range> field defines a memory range starting at I<start> and "
+"continuing for I<len> bytes that should be handled by the userfaultfd."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<mode> field defines the mode of operation desired for this memory "
+"region. The following values may be bitwise ORed to set the userfaultfd "
+"mode for the specified range:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_REGISTER_MODE_MISSING>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Track page faults on missing pages. Since Linux 4.3, only private anonymous "
+"ranges are compatible. Since Linux 4.11, hugetlbfs and shared memory ranges "
+"are also compatible."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_REGISTER_MODE_WP>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Track page faults on write-protected pages. Since Linux 5.7, only private "
+"anonymous ranges are compatible."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_REGISTER_MODE_MINOR>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Track minor page faults. Since Linux 5.13, only hugetlbfs ranges are "
+"compatible. Since Linux 5.14, compatibility with shmem ranges was added."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the operation is successful, the kernel modifies the I<ioctls> bit-mask "
+"field to indicate which B<ioctl>(2) operations are available for the "
+"specified range. This returned bit mask can contain the following bits:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_COPY>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The B<UFFDIO_COPY> operation is supported."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_WAKE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The B<UFFDIO_WAKE> operation is supported."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_WRITEPROTECT>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid "The B<UFFDIO_WRITEPROTECT> operation is supported."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_ZEROPAGE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The B<UFFDIO_ZEROPAGE> operation is supported."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_CONTINUE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The B<UFFDIO_CONTINUE> operation is supported."
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<1 E<lt>E<lt> _UFFDIO_POISON>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid "The B<UFFDIO_POISON> operation is supported."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This B<ioctl>(2) operation returns 0 on success. On error, -1 is returned "
+"and I<errno> is set to indicate the error. Possible errors include:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EBUSY>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A mapping in the specified range is registered with another userfaultfd "
+"object."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"An invalid or unsupported bit was specified in the I<mode> field; or the "
+"I<mode> field was zero."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "There is no mapping in the specified address range."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<range.start> or I<range.len> is not a multiple of the system page size; "
+"or, I<range.len> is zero; or these fields are otherwise invalid."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "There as an incompatible mapping in the specified address range."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "UFFDIO_UNREGISTER"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"(Since Linux 4.3.) Unregister a memory address range from userfaultfd. The "
+"pages in the range must be \\[lq]compatible\\[rq] (see the description of "
+"B<UFFDIO_REGISTER>.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The address range to unregister is specified in the I<uffdio_range> "
+"structure pointed to by I<argp>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Either the I<start> or the I<len> field of the I<ufdio_range> structure was "
+"not a multiple of the system page size; or the I<len> field was zero; or "
+"these fields were otherwise invalid."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "There was no mapping in the specified address range."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "UFFDIO_COPY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(Since Linux 4.3.) Atomically copy a continuous memory chunk into the "
+"userfault registered range and optionally wake up the blocked thread. The "
+"source and destination addresses and the number of bytes to copy are "
+"specified by the I<src>, I<dst>, and I<len> fields of the I<uffdio_copy> "
+"structure pointed to by I<argp>:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct uffdio_copy {\n"
+" __u64 dst; /* Destination of copy */\n"
+" __u64 src; /* Source of copy */\n"
+" __u64 len; /* Number of bytes to copy */\n"
+" __u64 mode; /* Flags controlling behavior of copy */\n"
+" __s64 copy; /* Number of bytes copied, or negated error */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following value may be bitwise ORed in I<mode> to change the behavior of "
+"the B<UFFDIO_COPY> operation:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_COPY_MODE_DONTWAKE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Do not wake up the thread that waits for page-fault resolution"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_COPY_MODE_WP>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Copy the page with read-only permission. This allows the user to trap the "
+"next write to the page, which will block and generate another write-protect "
+"userfault message. This is used only when both "
+"B<UFFDIO_REGISTER_MODE_MISSING> and B<UFFDIO_REGISTER_MODE_WP> modes are "
+"enabled for the registered range."
+msgstr ""
+
+#. FIXME Above: Why is the 'copy' field used to return error values?
+#. This should be explained in the manual page.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<copy> field is used by the kernel to return the number of bytes that "
+"was actually copied, or an error (a negated I<errno>-style value). If the "
+"value returned in I<copy> doesn't match the value that was specified in "
+"I<len>, the operation fails with the error B<EAGAIN>. The I<copy> field is "
+"output-only; it is not read by the B<UFFDIO_COPY> operation."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This B<ioctl>(2) operation returns 0 on success. In this case, the entire "
+"area was copied. On error, -1 is returned and I<errno> is set to indicate "
+"the error. Possible errors include:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EAGAIN>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The number of bytes copied (i.e., the value returned in the I<copy> field) "
+"does not equal the value that was specified in the I<len> field."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Either I<dst> or I<len> was not a multiple of the system page size, or the "
+"range specified by I<src> and I<len> or I<dst> and I<len> was invalid."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "An invalid bit was specified in the I<mode> field."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOENT> (since Linux 4.11)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The faulting process has changed its virtual memory layout simultaneously "
+"with an outstanding B<UFFDIO_COPY> operation."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOSPC> (from Linux 4.11 until Linux 4.13)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The faulting process has exited at the time of a B<UFFDIO_COPY> operation."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ESRCH> (since Linux 4.13)"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "UFFDIO_ZEROPAGE"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(Since Linux 4.3.) Zero out a memory range registered with userfaultfd."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The requested range is specified by the I<range> field of the "
+"I<uffdio_zeropage> structure pointed to by I<argp>:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct uffdio_zeropage {\n"
+" struct uffdio_range range;\n"
+" __u64 mode; /* Flags controlling behavior of copy */\n"
+" __s64 zeropage; /* Number of bytes zeroed, or negated error */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following value may be bitwise ORed in I<mode> to change the behavior of "
+"the B<UFFDIO_ZEROPAGE> operation:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_ZEROPAGE_MODE_DONTWAKE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Do not wake up the thread that waits for page-fault resolution."
+msgstr ""
+
+#. FIXME Why is the 'zeropage' field used to return error values?
+#. This should be explained in the manual page.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<zeropage> field is used by the kernel to return the number of bytes "
+"that was actually zeroed, or an error in the same manner as B<UFFDIO_COPY>. "
+"If the value returned in the I<zeropage> field doesn't match the value that "
+"was specified in I<range.len>, the operation fails with the error "
+"B<EAGAIN>. The I<zeropage> field is output-only; it is not read by the "
+"B<UFFDIO_ZEROPAGE> operation."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This B<ioctl>(2) operation returns 0 on success. In this case, the entire "
+"area was zeroed. On error, -1 is returned and I<errno> is set to indicate "
+"the error. Possible errors include:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The number of bytes zeroed (i.e., the value returned in the I<zeropage> "
+"field) does not equal the value that was specified in the I<range.len> "
+"field."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Either I<range.start> or I<range.len> was not a multiple of the system page "
+"size; or I<range.len> was zero; or the range specified was invalid."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The faulting process has exited at the time of a B<UFFDIO_ZEROPAGE> "
+"operation."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "UFFDIO_WAKE"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(Since Linux 4.3.) Wake up the thread waiting for page-fault resolution on "
+"a specified memory address range."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<UFFDIO_WAKE> operation is used in conjunction with B<UFFDIO_COPY> and "
+"B<UFFDIO_ZEROPAGE> operations that have the B<UFFDIO_COPY_MODE_DONTWAKE> or "
+"B<UFFDIO_ZEROPAGE_MODE_DONTWAKE> bit set in the I<mode> field. The "
+"userfault monitor can perform several B<UFFDIO_COPY> and B<UFFDIO_ZEROPAGE> "
+"operations in a batch and then explicitly wake up the faulting thread using "
+"B<UFFDIO_WAKE>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<argp> argument is a pointer to a I<uffdio_range> structure (shown "
+"above) that specifies the address range."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<start> or the I<len> field of the I<ufdio_range> structure was not a "
+"multiple of the system page size; or I<len> was zero; or the specified range "
+"was otherwise invalid."
+msgstr ""
+
+#. type: SS
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "UFFDIO_WRITEPROTECT"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"(Since Linux 5.7.) Write-protect or write-unprotect a userfaultfd-"
+"registered memory range registered with mode B<UFFDIO_REGISTER_MODE_WP>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<argp> argument is a pointer to a I<uffdio_range> structure as shown "
+"below:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct uffdio_writeprotect {\n"
+" struct uffdio_range range; /* Range to change write permission*/\n"
+" __u64 mode; /* Mode to change write permission */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "There are two mode bits that are supported in this structure:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_WRITEPROTECT_MODE_WP>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When this mode bit is set, the ioctl will be a write-protect operation upon "
+"the memory range specified by I<range>. Otherwise it will be a write-"
+"unprotect operation upon the specified range, which can be used to resolve a "
+"userfaultfd write-protect page fault."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_WRITEPROTECT_MODE_DONTWAKE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When this mode bit is set, do not wake up any thread that waits for page-"
+"fault resolution after the operation. This can be specified only if "
+"B<UFFDIO_WRITEPROTECT_MODE_WP> is not specified."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The process was interrupted; retry this call."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOENT>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The range specified in I<range> is not valid. For example, the virtual "
+"address does not exist, or not registered with userfaultfd write-protect "
+"mode."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Encountered a generic fault during processing."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "UFFDIO_CONTINUE"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(Since Linux 5.13.) Resolve a minor page fault by installing page table "
+"entries for existing pages in the page cache."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<argp> argument is a pointer to a I<uffdio_continue> structure as shown "
+"below:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"struct uffdio_continue {\n"
+" struct uffdio_range range;\n"
+" /* Range to install PTEs for and continue */\n"
+" __u64 mode; /* Flags controlling the behavior of continue */\n"
+" __s64 mapped; /* Number of bytes mapped, or negated error */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following value may be bitwise ORed in I<mode> to change the behavior of "
+"the B<UFFDIO_CONTINUE> operation:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<UFFDIO_CONTINUE_MODE_DONTWAKE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<mapped> field is used by the kernel to return the number of bytes that "
+"were actually mapped, or an error in the same manner as B<UFFDIO_COPY>. If "
+"the value returned in the I<mapped> field doesn't match the value that was "
+"specified in I<range.len>, the operation fails with the error B<EAGAIN>. "
+"The I<mapped> field is output-only; it is not read by the B<UFFDIO_CONTINUE> "
+"operation."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This B<ioctl>(2) operation returns 0 on success. In this case, the entire "
+"area was mapped. On error, -1 is returned and I<errno> is set to indicate "
+"the error. Possible errors include:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The number of bytes mapped (i.e., the value returned in the I<mapped> "
+"field) does not equal the value that was specified in the I<range.len> "
+"field."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EEXIST>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "One or more pages were already mapped in the given range."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "No existing page could be found in the page cache for the given range."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The faulting process has changed its virtual memory layout simultaneously "
+"with an outstanding B<UFFDIO_CONTINUE> operation."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOMEM>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Allocating memory needed to setup the page table mappings failed."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ESRCH>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The faulting process has exited at the time of a B<UFFDIO_CONTINUE> "
+"operation."
+msgstr ""
+
+#. type: SS
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "UFFDIO_POISON"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"(Since Linux 6.6.) Mark an address range as \"poisoned\". Future accesses "
+"to these addresses will raise a B<SIGBUS> signal. Unlike B<MADV_HWPOISON> "
+"this works by installing page table entries, rather than \"really\" "
+"poisoning the underlying physical pages. This means it only affects this "
+"particular address space."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"The I<argp> argument is a pointer to a I<uffdio_poison> structure as shown "
+"below:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid ""
+"struct uffdio_poison {\n"
+"\tstruct uffdio_range range;\n"
+"\t /* Range to install poison PTE markers in */\n"
+"\t__u64 mode; /* Flags controlling the behavior of poison */\n"
+"\t__s64 updated; /* Number of bytes poisoned, or negated error */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"The following value may be bitwise ORed in I<mode> to change the behavior of "
+"the B<UFFDIO_POISON> operation:"
+msgstr ""
+
+#. type: TP
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "B<UFFDIO_POISON_MODE_DONTWAKE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"The I<updated> field is used by the kernel to return the number of bytes "
+"that were actually poisoned, or an error in the same manner as "
+"B<UFFDIO_COPY>. If the value returned in the I<updated> field doesn't match "
+"the value that was specified in I<range.len>, the operation fails with the "
+"error B<EAGAIN>. The I<updated> field is output-only; it is not read by the "
+"B<UFFDIO_POISON> operation."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"This B<ioctl>(2) operation returns 0 on success. In this case, the entire "
+"area was poisoned. On error, -1 is returned and I<errno> is set to indicate "
+"the error. Possible errors include:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"The number of bytes mapped (i.e., the value returned in the I<updated> "
+"field) does not equal the value that was specified in the I<range.len> "
+"field."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"The faulting process has changed its virtual memory layout simultaneously "
+"with an outstanding B<UFFDIO_POISON> operation."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid "Allocating memory for page table entries failed."
+msgstr ""
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"The faulting process has exited at the time of a B<UFFDIO_POISON> operation."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "See descriptions of the individual operations, above."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"See descriptions of the individual operations, above. In addition, the "
+"following general errors can occur for all of the operations described above:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<argp> does not point to a valid memory address."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(For all operations except B<UFFDIO_API>.) The userfaultfd object has not "
+"yet been enabled (via the B<UFFDIO_API> operation)."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"In order to detect available userfault features and enable some subset of "
+"those features the userfaultfd file descriptor must be closed after the "
+"first B<UFFDIO_API> operation that queries features availability and "
+"reopened before the second B<UFFDIO_API> operation that actually enables the "
+"desired features."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "See B<userfaultfd>(2)."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<ioctl>(2), B<mmap>(2), B<userfaultfd>(2)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<Documentation/admin-guide/mm/userfaultfd.rst> in the Linux kernel source "
+"tree"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2022-12-15"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The I<api> field denotes the API version requested by the application."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The kernel verifies that it can support the requested API version, and sets "
+"the I<features> and I<ioctls> fields to bit masks representing all the "
+"available features and the generic B<ioctl>(2) operations available."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Starting from Linux 4.11, the I<features> field can be used to ask whether "
+"particular features are supported and explicitly enable userfaultfd features "
+"that are disabled by default. The kernel always reports all the available "
+"features in the I<features> field."
+msgstr ""
+
+#. FIXME add more details about feature negotiation and enablement
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"To enable userfaultfd features the application should set a bit "
+"corresponding to each feature it wants to enable in the I<features> field. "
+"If the kernel supports all the requested features it will enable them. "
+"Otherwise it will zero out the returned I<uffdio_api> structure and return "
+"B<EINVAL>."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The userfaultfd has already been enabled by a previous B<UFFDIO_API> "
+"operation."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(Since Linux 4.3.) Register a memory address range with the userfaultfd "
+"object. The pages in the range must be \"compatible\". Please refer to the "
+"list of register modes below for the compatible memory backends for each "
+"mode."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"struct uffdio_range {\n"
+" __u64 start; /* Start of range */\n"
+" __u64 len; /* Length of range (bytes) */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"struct uffdio_register {\n"
+" struct uffdio_range range;\n"
+" __u64 mode; /* Desired mode of operation (input) */\n"
+" __u64 ioctls; /* Available ioctl() operations (output) */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The B<UFFDIO_WRITEPROTECT>"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(Since Linux 4.3.) Unregister a memory address range from userfaultfd. The "
+"pages in the range must be \"compatible\" (see the description of "
+"B<UFFDIO_REGISTER>.)"
+msgstr ""
+
+#. type: SS
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "UFFDIO_WRITEPROTECT (Since Linux 5.7)"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Write-protect or write-unprotect a userfaultfd-registered memory range "
+"registered with mode B<UFFDIO_REGISTER_MODE_WP>."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid "These B<ioctl>(2) operations are Linux-specific."
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-05-03"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr ""