Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef _UAPI_LINUX_PERSONALITY_H
0003 #define _UAPI_LINUX_PERSONALITY_H
0004 
0005 
0006 /*
0007  * Flags for bug emulation.
0008  *
0009  * These occupy the top three bytes.
0010  */
0011 enum {
0012     UNAME26 =               0x0020000,
0013     ADDR_NO_RANDOMIZE =     0x0040000,  /* disable randomization of VA space */
0014     FDPIC_FUNCPTRS =    0x0080000,  /* userspace function ptrs point to descriptors
0015                          * (signal handling)
0016                          */
0017     MMAP_PAGE_ZERO =    0x0100000,
0018     ADDR_COMPAT_LAYOUT =    0x0200000,
0019     READ_IMPLIES_EXEC = 0x0400000,
0020     ADDR_LIMIT_32BIT =  0x0800000,
0021     SHORT_INODE =       0x1000000,
0022     WHOLE_SECONDS =     0x2000000,
0023     STICKY_TIMEOUTS =   0x4000000,
0024     ADDR_LIMIT_3GB =    0x8000000,
0025 };
0026 
0027 /*
0028  * Security-relevant compatibility flags that must be
0029  * cleared upon setuid or setgid exec:
0030  */
0031 #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC  | \
0032                 ADDR_NO_RANDOMIZE  | \
0033                 ADDR_COMPAT_LAYOUT | \
0034                 MMAP_PAGE_ZERO)
0035 
0036 /*
0037  * Personality types.
0038  *
0039  * These go in the low byte.  Avoid using the top bit, it will
0040  * conflict with error returns.
0041  */
0042 enum {
0043     PER_LINUX =     0x0000,
0044     PER_LINUX_32BIT =   0x0000 | ADDR_LIMIT_32BIT,
0045     PER_LINUX_FDPIC =   0x0000 | FDPIC_FUNCPTRS,
0046     PER_SVR4 =      0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
0047     PER_SVR3 =      0x0002 | STICKY_TIMEOUTS | SHORT_INODE,
0048     PER_SCOSVR3 =       0x0003 | STICKY_TIMEOUTS |
0049                      WHOLE_SECONDS | SHORT_INODE,
0050     PER_OSR5 =      0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS,
0051     PER_WYSEV386 =      0x0004 | STICKY_TIMEOUTS | SHORT_INODE,
0052     PER_ISCR4 =     0x0005 | STICKY_TIMEOUTS,
0053     PER_BSD =       0x0006,
0054     PER_SUNOS =     0x0006 | STICKY_TIMEOUTS,
0055     PER_XENIX =     0x0007 | STICKY_TIMEOUTS | SHORT_INODE,
0056     PER_LINUX32 =       0x0008,
0057     PER_LINUX32_3GB =   0x0008 | ADDR_LIMIT_3GB,
0058     PER_IRIX32 =        0x0009 | STICKY_TIMEOUTS,/* IRIX5 32-bit */
0059     PER_IRIXN32 =       0x000a | STICKY_TIMEOUTS,/* IRIX6 new 32-bit */
0060     PER_IRIX64 =        0x000b | STICKY_TIMEOUTS,/* IRIX6 64-bit */
0061     PER_RISCOS =        0x000c,
0062     PER_SOLARIS =       0x000d | STICKY_TIMEOUTS,
0063     PER_UW7 =       0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
0064     PER_OSF4 =      0x000f,          /* OSF/1 v4 */
0065     PER_HPUX =      0x0010,
0066     PER_MASK =      0x00ff,
0067 };
0068 
0069 
0070 #endif /* _UAPI_LINUX_PERSONALITY_H */