diff options
Diffstat (limited to 'man2/personality.2')
-rw-r--r-- | man2/personality.2 | 296 |
1 files changed, 0 insertions, 296 deletions
diff --git a/man2/personality.2 b/man2/personality.2 deleted file mode 100644 index ae8db10..0000000 --- a/man2/personality.2 +++ /dev/null @@ -1,296 +0,0 @@ -.\" Copyright (C) 1995, Thomas K. Dyas <tdyas@eden.rutgers.edu> -.\" and Copyright (C) 2016, Michael Kerrisk <mtk.manpages@gmail.com> -.\" -.\" SPDX-License-Identifier: Linux-man-pages-copyleft -.\" -.\" Created Sat Aug 21 1995 Thomas K. Dyas <tdyas@eden.rutgers.edu> -.\" -.\" typo corrected, aeb, 950825 -.\" added layout change from joey, 960722 -.\" changed prototype, documented 0xffffffff, aeb, 030101 -.\" Modified 2004-11-03 patch from Martin Schulze <joey@infodrom.org> -.\" -.TH personality 2 2023-10-31 "Linux man-pages 6.7" -.SH NAME -personality \- set the process execution domain -.SH LIBRARY -Standard C library -.RI ( libc ", " \-lc ) -.SH SYNOPSIS -.nf -.B #include <sys/personality.h> -.P -.BI "int personality(unsigned long " persona ); -.fi -.SH DESCRIPTION -Linux supports different execution domains, or personalities, for each -process. -Among other things, execution domains tell Linux how to map -signal numbers into signal actions. -The execution domain system allows -Linux to provide limited support for binaries compiled under other -UNIX-like operating systems. -.P -If -.I persona -is not -0xffffffff, then -.BR personality () -sets the caller's execution domain to the value specified by -.IR persona . -Specifying -.I persona -as 0xffffffff provides a way of retrieving -the current persona without changing it. -.P -A list of the available execution domains can be found in -.IR <sys/personality.h> . -The execution domain is a 32-bit value in which the top three -bytes are set aside for flags that cause the kernel to modify the -behavior of certain system calls so as to emulate historical or -architectural quirks. -The least significant byte is a value defining the personality -the kernel should assume. -The flag values are as follows: -.TP -.BR ADDR_COMPAT_LAYOUT " (since Linux 2.6.9)" -With this flag set, provide legacy virtual address space layout. -.TP -.BR ADDR_NO_RANDOMIZE " (since Linux 2.6.12)" -With this flag set, disable address-space-layout randomization. -.TP -.BR ADDR_LIMIT_32BIT " (since Linux 2.2)" -Limit the address space to 32 bits. -.TP -.BR ADDR_LIMIT_3GB " (since Linux 2.4.0)" -With this flag set, use 0xc0000000 as the offset at which to search -a virtual memory chunk on -.BR mmap (2); -otherwise use 0xffffe000. -Applies to 32-bit x86 processes only. -.TP -.BR FDPIC_FUNCPTRS " (since Linux 2.6.11)" -User-space function pointers to signal handlers point -to descriptors. -Applies only to ARM if BINFMT_ELF_FDPIC and SuperH. -.TP -.BR MMAP_PAGE_ZERO " (since Linux 2.4.0)" -Map page 0 as read-only -(to support binaries that depend on this SVr4 behavior). -.TP -.BR READ_IMPLIES_EXEC " (since Linux 2.6.8)" -With this flag set, -.B PROT_READ -implies -.B PROT_EXEC -for -.BR mmap (2). -.TP -.BR SHORT_INODE " (since Linux 2.4.0)" -No effect. -.TP -.BR STICKY_TIMEOUTS " (since Linux 1.2.0)" -With this flag set, -.BR select (2), -.BR pselect (2), -and -.BR ppoll (2) -do not modify the returned timeout argument when -interrupted by a signal handler. -.TP -.BR UNAME26 " (since Linux 3.1)" -Have -.BR uname (2) -report a 2.6.(40+x) version number rather than a MAJOR.x version number. -Added as a stopgap measure to support broken applications that -could not handle the -kernel version-numbering switch from Linux 2.6.x to Linux 3.x. -.TP -.BR WHOLE_SECONDS " (since Linux 1.2.0)" -No effect. -.P -The available execution domains are: -.TP -.BR PER_BSD " (since Linux 1.2.0)" -BSD. (No effects.) -.TP -.BR PER_HPUX " (since Linux 2.4)" -Support for 32-bit HP/UX. -This support was never complete, and was dropped so that since Linux 4.0, -this value has no effect. -.TP -.BR PER_IRIX32 " (since Linux 2.2)" -IRIX 5 32-bit. -Never fully functional; support dropped in Linux 2.6.27. -Implies -.BR STICKY_TIMEOUTS . -.TP -.BR PER_IRIX64 " (since Linux 2.2)" -IRIX 6 64-bit. -Implies -.BR STICKY_TIMEOUTS ; -otherwise no effect. -.TP -.BR PER_IRIXN32 " (since Linux 2.2)" -IRIX 6 new 32-bit. -Implies -.BR STICKY_TIMEOUTS ; -otherwise no effect. -.TP -.BR PER_ISCR4 " (since Linux 1.2.0)" -Implies -.BR STICKY_TIMEOUTS ; -otherwise no effect. -.TP -.BR PER_LINUX " (since Linux 1.2.0)" -Linux. -.TP -.BR PER_LINUX32 " (since Linux 2.2)" -.BR uname (2) -returns the name of the 32-bit architecture in the -.I machine -field ("i686" instead of "x86_64", &c.). -.IP -Under ia64 (Itanium), processes with this personality don't have the -O_LARGEFILE -.BR open (2) -flag forced. -.IP -Under 64-bit ARM, setting this personality is forbidden if -.BR execve (2)ing -a 32-bit process would also be forbidden -(cf. the allow_mismatched_32bit_el0 kernel parameter and -.IR Documentation/arm64/asymmetric-32bit.rst ). -.TP -.BR PER_LINUX32_3GB " (since Linux 2.4)" -Same as -.BR PER_LINUX32 , -but implies -.BR ADDR_LIMIT_3GB . -.TP -.BR PER_LINUX_32BIT " (since Linux 2.0)" -Same as -.BR PER_LINUX , -but implies -.BR ADDR_LIMIT_32BIT . -.TP -.BR PER_LINUX_FDPIC " (since Linux 2.6.11)" -Same as -.BR PER_LINUX , -but implies -.BR FDPIC_FUNCPTRS . -.TP -.BR PER_OSF4 " (since Linux 2.4)" -OSF/1 v4. -.\" commit 987f20a9dcce3989e48d87cff3952c095c994445 -No effect since Linux 6.1, which removed a.out binary support. -Before, on alpha, -.\" Following is from a comment in arch/alpha/kernel/osf_sys.c -would clear top 32 bits of iov_len in the user's buffer for -compatibility with old versions of OSF/1 where iov_len -was defined as. -.IR int . -.TP -.BR PER_OSR5 " (since Linux 2.4)" -SCO OpenServer 5. -Implies -.B STICKY_TIMEOUTS -and -.BR WHOLE_SECONDS ; -otherwise no effect. -.TP -.BR PER_RISCOS " (since Linux 2.3.7; macro since Linux 2.3.13)" -Acorn RISC OS/Arthur (MIPS). -No effect. -.\" commit 125ec7b4e90cbae4eed5a7ff1ee479cc331dcf3c -Up to Linux v4.0, would set the emulation altroot to -.I /usr/gnemul/riscos -(cf.\& -.BR PER_SUNOS , -below). -Before then, up to Linux 2.6.3, just Arthur emulation. -.TP -.BR PER_SCOSVR3 " (since Linux 1.2.0)" -SCO UNIX System V Release 3. -Same as -.BR PER_OSR5 , -but also implies -.BR SHORT_INODE . -.TP -.BR PER_SOLARIS " (since Linux 2.4)" -Solaris. -Implies -.BR STICKY_TIMEOUTS ; -otherwise no effect. -.TP -.BR PER_SUNOS " (since Linux 2.4.0)" -Sun OS. -Same as -.BR PER_BSD , -but implies -.BR STICKY_TIMEOUTS . -Prior to Linux 2.6.26, -diverted library and dynamic linker searches to -.IR /usr/gnemul . -Buggy, largely unmaintained, and almost entirely unused. -.TP -.BR PER_SVR3 " (since Linux 1.2.0)" -AT&T UNIX System V Release 3. -Implies -.B STICKY_TIMEOUTS -and -.BR SHORT_INODE ; -otherwise no effect. -.TP -.BR PER_SVR4 " (since Linux 1.2.0)" -AT&T UNIX System V Release 4. -Implies -.B STICKY_TIMEOUTS -and -.BR MMAP_PAGE_ZERO ; -otherwise no effect. -.TP -.BR PER_UW7 " (since Linux 2.4)" -UnixWare 7. -Implies -.B STICKY_TIMEOUTS -and -.BR MMAP_PAGE_ZERO ; -otherwise no effect. -.TP -.BR PER_WYSEV386 " (since Linux 1.2.0)" -WYSE UNIX System V/386. -Implies -.B STICKY_TIMEOUTS -and -.BR SHORT_INODE ; -otherwise no effect. -.TP -.BR PER_XENIX " (since Linux 1.2.0)" -XENIX. -Implies -.B STICKY_TIMEOUTS -and -.BR SHORT_INODE ; -otherwise no effect. -.SH RETURN VALUE -On success, the previous -.I persona -is returned. -On error, \-1 is returned, and -.I errno -is set to indicate the error. -.SH ERRORS -.TP -.B EINVAL -The kernel was unable to change the personality. -.SH STANDARDS -Linux. -.SH HISTORY -Linux 1.1.20, -.\" (and thus first in a stable kernel release with Linux 1.2.0) -glibc 2.3. -.\" personality wrapper first appeared in glibc 1.90, -.\" <sys/personality.h> was added later in glibc 2.2.91. -.SH SEE ALSO -.BR setarch (8) |