git log -SWHOLE_SECONDS on a unified pre-2.6 linux repository reveals the following three releases: Author: Andrew Morton <akpm@xxxxxxxx> Date: Sun Aug 31 04:30:04 2003 -0700 [PATCH] abi doc update From: <ffrederick@xxxxxxxxxxxxx> Update the abi sysctl documentation. Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Date: Mon Feb 4 20:17:27 2002 -0800 v2.4.9.7 -> v2.4.9.8 - Christoph Hellwig: clean up personality handling a bit - Robert Love: update sysctl/vm documentation - make the three-argument (that everybody hates) "min()" be "min_t()", and introduce a type-anal "min()" that complains about arguments of different types. Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxx> Date: Fri Nov 23 15:09:30 2007 -0500 Import 1.1.14 1.1.14 adds personality.h: diff --git a/include/linux/personality.h b/include/linux/personality.h new file mode 100644 index 0000000000..714a5a66b5 --- /dev/null +++ b/include/linux/personality.h @@ -0,0 +1,12 @@ +/* Flags for bug emulation. These occupy the top three bytes. */ +#define STICKY_TIMEOUTS 0x8000000 +#define WHOLE_SECONDS 0x4000000 + +/* Personality types. These go in the low byte. */ +#define PER_MASK (0x00ff) +#define PER_LINUX (0x0000) +#define PER_SVR4 (0x0001 | STICKY_TIMEOUTS) +#define PER_SVR3 (0x0002 | STICKY_TIMEOUTS) +#define PER_SCOSVR3 (0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS) +#define PER_WYSEV386 (0x0004 | STICKY_TIMEOUTS) +#define PER_ISCR4 (0x0005 | STICKY_TIMEOUTS) 2.4.9.8 shuffles it around with no substantial changes (hunk enhanced to show texture): diff --git a/include/linux/personality.h b/include/linux/personality.h index 58cab509e3..230d394603 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h @@ -1,68 +1,126 @@ -/* Flags for bug emulation. These occupy the top three bytes. */ -#define STICKY_TIMEOUTS 0x4000000 -#define WHOLE_SECONDS 0x2000000 -#define ADDR_LIMIT_32BIT 0x0800000 -/* Personality types. These go in the low byte. Avoid using the top bit, - * it will conflict with error returns. +/* + * Flags for bug emulation. + * + * These occupy the top three bytes. */ -#define PER_MASK (0x00ff) -#define PER_LINUX (0x0000) -#define PER_LINUX_32BIT (0x0000 | ADDR_LIMIT_32BIT) -#define PER_SVR4 (0x0001 | STICKY_TIMEOUTS) -#define PER_SVR3 (0x0002 | STICKY_TIMEOUTS) -#define PER_SCOSVR3 (0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS) -#define PER_WYSEV386 (0x0004 | STICKY_TIMEOUTS) -#define PER_ISCR4 (0x0005 | STICKY_TIMEOUTS) -#define PER_BSD (0x0006) -#define PER_SUNOS (PER_BSD | STICKY_TIMEOUTS) -#define PER_XENIX (0x0007 | STICKY_TIMEOUTS) -#define PER_LINUX32 (0x0008) -#define PER_IRIX32 (0x0009 | STICKY_TIMEOUTS) /* IRIX5 32-bit */ -#define PER_IRIXN32 (0x000a | STICKY_TIMEOUTS) /* IRIX6 new 32-bit */ -#define PER_IRIX64 (0x000b | STICKY_TIMEOUTS) /* IRIX6 64-bit */ -#define PER_RISCOS (0x000c) -#define PER_SOLARIS (0x000d | STICKY_TIMEOUTS) - -/* Description of an execution domain - personality range supported, - * lcall7 syscall handler, start up / shut down functions etc. - * N.B. The name and lcall7 handler must be where they are since the - * offset of the handler is hard coded in kernel/sys_call.S. +enum { + MMAP_PAGE_ZERO = 0x0100000, + ADDR_LIMIT_32BIT = 0x0800000, + SHORT_INODE = 0x1000000, + WHOLE_SECONDS = 0x2000000, + STICKY_TIMEOUTS = 0x4000000, +}; + +/* + * Personality types. + * + * These go in the low byte. Avoid using the top bit, it will + * conflict with error returns. + */ +enum { + PER_LINUX = 0x0000, + PER_LINUX_32BIT = 0x0000 | ADDR_LIMIT_32BIT, + PER_SVR4 = 0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, + PER_SVR3 = 0x0002 | STICKY_TIMEOUTS | SHORT_INODE, + PER_SCOSVR3 = 0x0003 | STICKY_TIMEOUTS | + WHOLE_SECONDS | SHORT_INODE, + PER_OSR5 = 0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS, + PER_WYSEV386 = 0x0004 | STICKY_TIMEOUTS | SHORT_INODE, + PER_ISCR4 = 0x0005 | STICKY_TIMEOUTS, + PER_BSD = 0x0006, + PER_SUNOS = 0x0006 | STICKY_TIMEOUTS, + PER_XENIX = 0x0007 | STICKY_TIMEOUTS | SHORT_INODE, + PER_LINUX32 = 0x0008, + PER_IRIX32 = 0x0009 | STICKY_TIMEOUTS,/* IRIX5 32-bit */ + PER_IRIXN32 = 0x000a | STICKY_TIMEOUTS,/* IRIX6 new 32-bit */ + PER_IRIX64 = 0x000b | STICKY_TIMEOUTS,/* IRIX6 64-bit */ + PER_RISCOS = 0x000c, + PER_SOLARIS = 0x000d | STICKY_TIMEOUTS, + PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, + PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, + PER_MASK = 0x00ff, +}; And the ABI doc creates Documentation/sysctl/abi.txt, noting +defhandler_coff: +defined value : +PER_SCOSVR3 +0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS | SHORT_INODE The same log of mainline reveals, apart from the original 2.6.12-rc2 import: 1. 607ca46e97a1b6594b29647d98a32d545c24bdff ("UAPI: (Scripted) Disintegrate include/linux") ‒ include/linux/{=> uapi/}personality.h 2. 53b9537509654a6267c3f56b4d2e7409b9089686 ("docs: sysctl: convert to ReST") ‒ Documentation/sysctl/abi.{rst => txt} 3. 9f35cf8bd7e3347b0679c3f9b5e0bc5493925a1f ("docs: rewrite admin-guide/sysctl/abi.rst") ‒ rewrites Documentation/admin-guide/sysctl/abi.rst entirely, removing all personality bits ("all the existing entries are no longer present, so this removes them;") Current mainline contains WHOLE_SECONDS thrice: include/uapi/linux/personality.h: WHOLE_SECONDS = 0x2000000, include/uapi/linux/personality.h- PER_SCOSVR3 = 0x0003 | STICKY_TIMEOUTS | include/uapi/linux/personality.h: WHOLE_SECONDS | SHORT_INODE, include/uapi/linux/personality.h: PER_OSR5 = 0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS, It never did anything. Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx> --- man2/personality.2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man2/personality.2 b/man2/personality.2 index b42692896..8f1b623b6 100644 --- a/man2/personality.2 +++ b/man2/personality.2 @@ -120,8 +120,8 @@ report a 2.6.40+ version number rather than a 3.x version number. Added as a stopgap measure to support broken applications that could not handle the kernel version-numbering switch from 2.6.x to 3.x. .TP -.BR WHOLE_SECONDS " (since Linux 1.2.0)" -No effects(?). +.BR WHOLE_SECONDS " (since Linux 1.1.14)" +No effect. .PP The available execution domains are: .TP -- 2.30.2
Attachment:
signature.asc
Description: PGP signature