diff options
Diffstat (limited to 'upstream/opensuse-tumbleweed/man2/memfd_create.2')
-rw-r--r-- | upstream/opensuse-tumbleweed/man2/memfd_create.2 | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/upstream/opensuse-tumbleweed/man2/memfd_create.2 b/upstream/opensuse-tumbleweed/man2/memfd_create.2 index fb18abc3..525bd43a 100644 --- a/upstream/opensuse-tumbleweed/man2/memfd_create.2 +++ b/upstream/opensuse-tumbleweed/man2/memfd_create.2 @@ -3,7 +3,7 @@ .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" -.TH memfd_create 2 2023-05-03 "Linux man-pages 6.05.01" +.TH memfd_create 2 2024-05-02 "Linux man-pages (unreleased)" .SH NAME memfd_create \- create an anonymous file .SH LIBRARY @@ -13,7 +13,7 @@ Standard C library .nf .BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */" .B #include <sys/mman.h> -.PP +.P .BI "int memfd_create(const char *" name ", unsigned int " flags ");" .fi .SH DESCRIPTION @@ -39,14 +39,14 @@ memory allocations such as those allocated using with the .B MAP_ANONYMOUS flag. -.PP +.P The initial size of the file is set to 0. Following the call, the file size should be set using .BR ftruncate (2). (Alternatively, the file may be populated by calls to .BR write (2) or similar.) -.PP +.P The name supplied in .I name is used as a filename and will be displayed @@ -57,7 +57,7 @@ The displayed name is always prefixed with and serves only for debugging purposes. Names do not affect the behavior of the file descriptor, and as such multiple files can have the same name without any side effects. -.PP +.P The following values may be bitwise ORed in .I flags to change the behavior of @@ -105,7 +105,11 @@ in .I flags is supported since Linux 4.16. .TP -.BR MFD_HUGE_2MB ", " MFD_HUGE_1GB ", " "..." +.B MFD_HUGE_2MB +.TQ +.B MFD_HUGE_1GB +.TQ +\&.\|.\|. Used in conjunction with .B MFD_HUGETLB to select alternative hugetlb page sizes (respectively, 2\ MB, 1\ GB, ...) @@ -117,11 +121,11 @@ huge page sizes are included in the header file For details on encoding huge page sizes not included in the header file, see the discussion of the similarly named constants in .BR mmap (2). -.PP +.P Unused bits in .I flags must be 0. -.PP +.P As its return value, .BR memfd_create () returns a new file descriptor that can be used to refer to the file. @@ -130,7 +134,7 @@ This file descriptor is opened for both reading and writing and .B O_LARGEFILE is set for the file descriptor. -.PP +.P With respect to .BR fork (2) and @@ -215,7 +219,7 @@ The primary purpose of is to create files and associated file descriptors that are used with the file-sealing APIs provided by .BR fcntl (2). -.PP +.P The .BR memfd_create () system call also has uses without file sealing @@ -247,13 +251,13 @@ location in the shared memory region. (Dealing with this possibility necessitates the use of a handler for the .B SIGBUS signal.) -.PP +.P Dealing with untrusted peers imposes extra complexity on code that employs shared memory. Memory sealing enables that extra complexity to be eliminated, by allowing a process to operate secure in the knowledge that its peer can't modify the shared memory in an undesired fashion. -.PP +.P An example of the usage of the sealing mechanism is as follows: .IP (1) 5 The first process creates a @@ -342,7 +346,7 @@ seal has not yet been applied). Below are shown two example programs that demonstrate the use of .BR memfd_create () and the file sealing API. -.PP +.P The first program, .IR t_memfd_create.c , creates a @@ -357,18 +361,18 @@ The first argument is the name to associate with the file, the second argument is the size to be set for the file, and the optional third argument is a string of characters that specify seals to be set on the file. -.PP +.P The second program, .IR t_get_seals.c , can be used to open an existing file that was created via .BR memfd_create () and inspect the set of seals that have been applied to that file. -.PP +.P The following shell session demonstrates the use of these programs. First we create a .BR tmpfs (5) file and set some seals on it: -.PP +.P .in +4n .EX $ \fB./t_memfd_create my_memfd_file 4096 sw &\fP @@ -376,7 +380,7 @@ $ \fB./t_memfd_create my_memfd_file 4096 sw &\fP PID: 11775; fd: 3; /proc/11775/fd/3 .EE .in -.PP +.P At this point, the .I t_memfd_create program continues to run in the background. @@ -392,7 +396,7 @@ Using that pathname, we inspect the content of the symbolic link, and use our .I t_get_seals program to view the seals that have been placed on the file: -.PP +.P .in +4n .EX $ \fBreadlink /proc/11775/fd/3\fP @@ -413,6 +417,7 @@ Existing seals: WRITE SHRINK #include <stdlib.h> #include <string.h> #include <sys/mman.h> +#include <sys/types.h> #include <unistd.h> \& int |