summaryrefslogtreecommitdiffstats
path: root/templates/man2/userfaultfd.2.pot
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-17 10:52:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-17 10:52:03 +0000
commit932e4432596447eb9331cc2a2bb74a26a35b4efc (patch)
tree95161711ea07fd64f0c82d6e7943024c033dd5a8 /templates/man2/userfaultfd.2.pot
parentAdding debian version 4.22.0-1. (diff)
downloadmanpages-l10n-932e4432596447eb9331cc2a2bb74a26a35b4efc.tar.xz
manpages-l10n-932e4432596447eb9331cc2a2bb74a26a35b4efc.zip
Merging upstream version 4.23.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'templates/man2/userfaultfd.2.pot')
-rw-r--r--templates/man2/userfaultfd.2.pot238
1 files changed, 28 insertions, 210 deletions
diff --git a/templates/man2/userfaultfd.2.pot b/templates/man2/userfaultfd.2.pot
index e20ccd99..f03d619d 100644
--- a/templates/man2/userfaultfd.2.pot
+++ b/templates/man2/userfaultfd.2.pot
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2024-03-01 17:12+0100\n"
+"POT-Creation-Date: 2024-06-01 06:33+0200\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"
@@ -24,15 +24,15 @@ msgid "userfaultfd"
msgstr ""
#. type: TH
-#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#: archlinux debian-unstable opensuse-tumbleweed
#, no-wrap
-msgid "2024-02-12"
+msgid "2024-05-02"
msgstr ""
#. type: TH
-#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#: archlinux debian-unstable
#, no-wrap
-msgid "Linux man-pages 6.06"
+msgid "Linux man-pages 6.8"
msgstr ""
#. type: SH
@@ -349,7 +349,7 @@ msgstr ""
#. problematic for multi-threaded monitor. I even suspect that it would be
#. impossible to ensure synchronization between page faults and non-page
#. fault events in multi-threaded monitor.
-#. .PP
+#. .P
#. FIXME elaborate about non-cooperating mode, describe its limitations
#. for kernels before Linux 4.11, features added in Linux 4.11
#. and limitations remaining in Linux 4.11
@@ -409,7 +409,7 @@ msgstr ""
#. problematic for multi-threaded monitor. I even suspect that it would be
#. impossible to ensure synchronization between page faults and non-page
#. fault events in multi-threaded monitor.
-#. .PP
+#. .P
#. FIXME elaborate about non-cooperating mode, describe its limitations
#. for kernels before Linux 4.11, features added in Linux 4.11
#. and limitations remaining in Linux 4.11
@@ -444,7 +444,8 @@ msgid "Userfaultfd operation"
msgstr ""
#. type: Plain text
-#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
msgid ""
"After the userfaultfd object is created with B<userfaultfd>(), the "
"application must enable it using the B<UFFDIO_API> B<ioctl>(2) operation. "
@@ -456,7 +457,8 @@ msgid ""
msgstr ""
#. type: Plain text
-#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
msgid ""
"After a successful B<UFFDIO_API> operation, the application then registers "
"memory address ranges using the B<UFFDIO_REGISTER> B<ioctl>(2) operation. "
@@ -1298,7 +1300,8 @@ msgid "Program source"
msgstr ""
#. type: Plain text
-#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
#, no-wrap
msgid ""
"/* userfaultfd_demo.c\n"
@@ -1537,7 +1540,7 @@ msgid "Linux man-pages 6.03"
msgstr ""
#. type: Plain text
-#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#: debian-bookworm opensuse-leap-15-6
msgid ""
"After the userfaultfd object is created with B<userfaultfd>(), the "
"application must enable it using the B<UFFDIO_API> B<ioctl>(2) operation. "
@@ -1548,7 +1551,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed
+#: debian-bookworm opensuse-leap-15-6
msgid ""
"After a successful B<UFFDIO_API> operation, the application then registers "
"memory address ranges using the B<UFFDIO_REGISTER> B<ioctl>(2) operation. "
@@ -2083,212 +2086,21 @@ msgid ""
msgstr ""
#. type: TH
-#: debian-unstable opensuse-tumbleweed
+#: fedora-40 fedora-rawhide mageia-cauldron
#, no-wrap
-msgid "2023-05-03"
+msgid "2024-02-12"
msgstr ""
#. type: TH
-#: debian-unstable opensuse-tumbleweed
+#: fedora-40 mageia-cauldron
#, no-wrap
-msgid "Linux man-pages 6.05.01"
+msgid "Linux man-pages 6.06"
msgstr ""
-#. type: Plain text
-#: debian-unstable opensuse-tumbleweed
+#. type: TH
+#: fedora-rawhide
#, no-wrap
-msgid ""
-"/* userfaultfd_demo.c\n"
-"\\&\n"
-" Licensed under the GNU General Public License version 2 or later.\n"
-"*/\n"
-"#define _GNU_SOURCE\n"
-"#include E<lt>err.hE<gt>\n"
-"#include E<lt>errno.hE<gt>\n"
-"#include E<lt>fcntl.hE<gt>\n"
-"#include E<lt>inttypes.hE<gt>\n"
-"#include E<lt>linux/userfaultfd.hE<gt>\n"
-"#include E<lt>poll.hE<gt>\n"
-"#include E<lt>pthread.hE<gt>\n"
-"#include E<lt>stdio.hE<gt>\n"
-"#include E<lt>stdlib.hE<gt>\n"
-"#include E<lt>string.hE<gt>\n"
-"#include E<lt>sys/ioctl.hE<gt>\n"
-"#include E<lt>sys/mman.hE<gt>\n"
-"#include E<lt>sys/syscall.hE<gt>\n"
-"#include E<lt>unistd.hE<gt>\n"
-"\\&\n"
-"static int page_size;\n"
-"\\&\n"
-"static void *\n"
-"fault_handler_thread(void *arg)\n"
-"{\n"
-" int nready;\n"
-" long uffd; /* userfaultfd file descriptor */\n"
-" ssize_t nread;\n"
-" struct pollfd pollfd;\n"
-" struct uffdio_copy uffdio_copy;\n"
-"\\&\n"
-" static int fault_cnt = 0; /* Number of faults so far handled */\n"
-" static char *page = NULL;\n"
-" static struct uffd_msg msg; /* Data read from userfaultfd */\n"
-"\\&\n"
-" uffd = (long) arg;\n"
-"\\&\n"
-" /* Create a page that will be copied into the faulting region. */\n"
-"\\&\n"
-" if (page == NULL) {\n"
-" page = mmap(NULL, page_size, PROT_READ | PROT_WRITE,\n"
-" MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);\n"
-" if (page == MAP_FAILED)\n"
-" err(EXIT_FAILURE, \"mmap\");\n"
-" }\n"
-"\\&\n"
-" /* Loop, handling incoming events on the userfaultfd\n"
-" file descriptor. */\n"
-"\\&\n"
-" for (;;) {\n"
-"\\&\n"
-" /* See what poll() tells us about the userfaultfd. */\n"
-"\\&\n"
-" pollfd.fd = uffd;\n"
-" pollfd.events = POLLIN;\n"
-" nready = poll(&pollfd, 1, -1);\n"
-" if (nready == -1)\n"
-" err(EXIT_FAILURE, \"poll\");\n"
-"\\&\n"
-" printf(\"\\enfault_handler_thread():\\en\");\n"
-" printf(\" poll() returns: nready = %d; \"\n"
-" \"POLLIN = %d; POLLERR = %d\\en\", nready,\n"
-" (pollfd.revents & POLLIN) != 0,\n"
-" (pollfd.revents & POLLERR) != 0);\n"
-"\\&\n"
-" /* Read an event from the userfaultfd. */\n"
-"\\&\n"
-" nread = read(uffd, &msg, sizeof(msg));\n"
-" if (nread == 0) {\n"
-" printf(\"EOF on userfaultfd!\\en\");\n"
-" exit(EXIT_FAILURE);\n"
-" }\n"
-"\\&\n"
-" if (nread == -1)\n"
-" err(EXIT_FAILURE, \"read\");\n"
-"\\&\n"
-" /* We expect only one kind of event; verify that assumption. */\n"
-"\\&\n"
-" if (msg.event != UFFD_EVENT_PAGEFAULT) {\n"
-" fprintf(stderr, \"Unexpected event on userfaultfd\\en\");\n"
-" exit(EXIT_FAILURE);\n"
-" }\n"
-"\\&\n"
-" /* Display info about the page-fault event. */\n"
-"\\&\n"
-" printf(\" UFFD_EVENT_PAGEFAULT event: \");\n"
-" printf(\"flags = %\"PRIx64\"; \", msg.arg.pagefault.flags);\n"
-" printf(\"address = %\"PRIx64\"\\en\", msg.arg.pagefault.address);\n"
-"\\&\n"
-" /* Copy the page pointed to by \\[aq]page\\[aq] into the faulting\n"
-" region. Vary the contents that are copied in, so that it\n"
-" is more obvious that each fault is handled separately. */\n"
-"\\&\n"
-" memset(page, \\[aq]A\\[aq] + fault_cnt % 20, page_size);\n"
-" fault_cnt++;\n"
-"\\&\n"
-" uffdio_copy.src = (unsigned long) page;\n"
-"\\&\n"
-" /* We need to handle page faults in units of pages(!).\n"
-" So, round faulting address down to page boundary. */\n"
-"\\&\n"
-" uffdio_copy.dst = (unsigned long) msg.arg.pagefault.address &\n"
-" \\[ti](page_size - 1);\n"
-" uffdio_copy.len = page_size;\n"
-" uffdio_copy.mode = 0;\n"
-" uffdio_copy.copy = 0;\n"
-" if (ioctl(uffd, UFFDIO_COPY, &uffdio_copy) == -1)\n"
-" err(EXIT_FAILURE, \"ioctl-UFFDIO_COPY\");\n"
-"\\&\n"
-" printf(\" (uffdio_copy.copy returned %\"PRId64\")\\en\",\n"
-" uffdio_copy.copy);\n"
-" }\n"
-"}\n"
-"\\&\n"
-"int\n"
-"main(int argc, char *argv[])\n"
-"{\n"
-" int s;\n"
-" char c;\n"
-" char *addr; /* Start of region handled by userfaultfd */\n"
-" long uffd; /* userfaultfd file descriptor */\n"
-" size_t len, l; /* Length of region handled by userfaultfd */\n"
-" pthread_t thr; /* ID of thread that handles page faults */\n"
-" struct uffdio_api uffdio_api;\n"
-" struct uffdio_register uffdio_register;\n"
-"\\&\n"
-" if (argc != 2) {\n"
-" fprintf(stderr, \"Usage: %s num-pages\\en\", argv[0]);\n"
-" exit(EXIT_FAILURE);\n"
-" }\n"
-"\\&\n"
-" page_size = sysconf(_SC_PAGE_SIZE);\n"
-" len = strtoull(argv[1], NULL, 0) * page_size;\n"
-"\\&\n"
-" /* Create and enable userfaultfd object. */\n"
-"\\&\n"
-" uffd = syscall(SYS_userfaultfd, O_CLOEXEC | O_NONBLOCK);\n"
-" if (uffd == -1)\n"
-" err(EXIT_FAILURE, \"userfaultfd\");\n"
-"\\&\n"
-" uffdio_api.api = UFFD_API;\n"
-" uffdio_api.features = 0;\n"
-" if (ioctl(uffd, UFFDIO_API, &uffdio_api) == -1)\n"
-" err(EXIT_FAILURE, \"ioctl-UFFDIO_API\");\n"
-"\\&\n"
-" /* Create a private anonymous mapping. The memory will be\n"
-" demand-zero paged--that is, not yet allocated. When we\n"
-" actually touch the memory, it will be allocated via\n"
-" the userfaultfd. */\n"
-"\\&\n"
-" addr = mmap(NULL, len, PROT_READ | PROT_WRITE,\n"
-" MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);\n"
-" if (addr == MAP_FAILED)\n"
-" err(EXIT_FAILURE, \"mmap\");\n"
-"\\&\n"
-" printf(\"Address returned by mmap() = %p\\en\", addr);\n"
-"\\&\n"
-" /* Register the memory range of the mapping we just created for\n"
-" handling by the userfaultfd object. In mode, we request to track\n"
-" missing pages (i.e., pages that have not yet been faulted in). */\n"
-"\\&\n"
-" uffdio_register.range.start = (unsigned long) addr;\n"
-" uffdio_register.range.len = len;\n"
-" uffdio_register.mode = UFFDIO_REGISTER_MODE_MISSING;\n"
-" if (ioctl(uffd, UFFDIO_REGISTER, &uffdio_register) == -1)\n"
-" err(EXIT_FAILURE, \"ioctl-UFFDIO_REGISTER\");\n"
-"\\&\n"
-" /* Create a thread that will process the userfaultfd events. */\n"
-"\\&\n"
-" s = pthread_create(&thr, NULL, fault_handler_thread, (void *) uffd);\n"
-" if (s != 0) {\n"
-" errc(EXIT_FAILURE, s, \"pthread_create\");\n"
-" }\n"
-"\\&\n"
-" /* Main thread now touches memory in the mapping, touching\n"
-" locations 1024 bytes apart. This will trigger userfaultfd\n"
-" events for all pages in the region. */\n"
-"\\&\n"
-" l = 0xf; /* Ensure that faulting address is not on a page\n"
-" boundary, in order to test that we correctly\n"
-" handle that case in fault_handling_thread(). */\n"
-" while (l E<lt> len) {\n"
-" c = addr[l];\n"
-" printf(\"Read address %p in %s(): \", addr + l, __func__);\n"
-" printf(\"%c\\en\", c);\n"
-" l += 1024;\n"
-" usleep(100000); /* Slow things down a little */\n"
-" }\n"
-"\\&\n"
-" exit(EXIT_SUCCESS);\n"
-"}\n"
+msgid "Linux man-pages 6.7"
msgstr ""
#. type: TH
@@ -2302,3 +2114,9 @@ msgstr ""
#, no-wrap
msgid "Linux man-pages 6.04"
msgstr ""
+
+#. type: TH
+#: opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages (unreleased)"
+msgstr ""