File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/personality.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: #ifndef _UAPI_LINUX_PERSONALITY_H
       2: #define _UAPI_LINUX_PERSONALITY_H
       3: 
       4: 
       5: /*
       6:  * Flags for bug emulation.
       7:  *
       8:  * These occupy the top three bytes.
       9:  */
      10: enum {
      11:     UNAME26    =               0x0020000,
      12:     ADDR_NO_RANDOMIZE =     0x0040000,    /* disable randomization of VA space */
      13:     FDPIC_FUNCPTRS =    0x0080000,    /* userspace function ptrs point to descriptors
      14:                          * (signal handling)
      15:                          */
      16:     MMAP_PAGE_ZERO =    0x0100000,
      17:     ADDR_COMPAT_LAYOUT =    0x0200000,
      18:     READ_IMPLIES_EXEC =    0x0400000,
      19:     ADDR_LIMIT_32BIT =    0x0800000,
      20:     SHORT_INODE =        0x1000000,
      21:     WHOLE_SECONDS =        0x2000000,
      22:     STICKY_TIMEOUTS    =    0x4000000,
      23:     ADDR_LIMIT_3GB =     0x8000000,
      24: };
      25: 
      26: /*
      27:  * Security-relevant compatibility flags that must be
      28:  * cleared upon setuid or setgid exec:
      29:  */
      30: #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC  | \
      31:                 ADDR_NO_RANDOMIZE  | \
      32:                 ADDR_COMPAT_LAYOUT | \
      33:                 MMAP_PAGE_ZERO)
      34: 
      35: /*
      36:  * Personality types.
      37:  *
      38:  * These go in the low byte.  Avoid using the top bit, it will
      39:  * conflict with error returns.
      40:  */
      41: enum {
      42:     PER_LINUX =        0x0000,
      43:     PER_LINUX_32BIT =    0x0000 | ADDR_LIMIT_32BIT,
      44:     PER_LINUX_FDPIC =    0x0000 | FDPIC_FUNCPTRS,
      45:     PER_SVR4 =        0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
      46:     PER_SVR3 =        0x0002 | STICKY_TIMEOUTS | SHORT_INODE,
      47:     PER_SCOSVR3 =        0x0003 | STICKY_TIMEOUTS |
      48:                      WHOLE_SECONDS | SHORT_INODE,
      49:     PER_OSR5 =        0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS,
      50:     PER_WYSEV386 =        0x0004 | STICKY_TIMEOUTS | SHORT_INODE,
      51:     PER_ISCR4 =        0x0005 | STICKY_TIMEOUTS,
      52:     PER_BSD =        0x0006,
      53:     PER_SUNOS =        0x0006 | STICKY_TIMEOUTS,
      54:     PER_XENIX =        0x0007 | STICKY_TIMEOUTS | SHORT_INODE,
      55:     PER_LINUX32 =        0x0008,
      56:     PER_LINUX32_3GB =    0x0008 | ADDR_LIMIT_3GB,
      57:     PER_IRIX32 =        0x0009 | STICKY_TIMEOUTS,/* IRIX5 32-bit */
      58:     PER_IRIXN32 =        0x000a | STICKY_TIMEOUTS,/* IRIX6 new 32-bit */
      59:     PER_IRIX64 =        0x000b | STICKY_TIMEOUTS,/* IRIX6 64-bit */
      60:     PER_RISCOS =        0x000c,
      61:     PER_SOLARIS =        0x000d | STICKY_TIMEOUTS,
      62:     PER_UW7 =        0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
      63:     PER_OSF4 =        0x000f,             /* OSF/1 v4 */
      64:     PER_HPUX =        0x0010,
      65:     PER_MASK =        0x00ff,
      66: };
      67: 
      68: 
      69: #endif /* _UAPI_LINUX_PERSONALITY_H */
      70: