| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _LINUX_PRCTL_H | 
|  | 2 | #define _LINUX_PRCTL_H | 
|  | 3 |  | 
|  | 4 | /* Values to pass as first argument to prctl() */ | 
|  | 5 |  | 
|  | 6 | #define PR_SET_PDEATHSIG  1  /* Second arg is a signal */ | 
|  | 7 | #define PR_GET_PDEATHSIG  2  /* Second arg is a ptr to return the signal */ | 
|  | 8 |  | 
|  | 9 | /* Get/set current->mm->dumpable */ | 
|  | 10 | #define PR_GET_DUMPABLE   3 | 
|  | 11 | #define PR_SET_DUMPABLE   4 | 
|  | 12 |  | 
|  | 13 | /* Get/set unaligned access control bits (if meaningful) */ | 
|  | 14 | #define PR_GET_UNALIGN	  5 | 
|  | 15 | #define PR_SET_UNALIGN	  6 | 
|  | 16 | # define PR_UNALIGN_NOPRINT	1	/* silently fix up unaligned user accesses */ | 
|  | 17 | # define PR_UNALIGN_SIGBUS	2	/* generate SIGBUS on unaligned user access */ | 
|  | 18 |  | 
| Andrew G. Morgan | 3898b1b | 2008-04-28 02:13:40 -0700 | [diff] [blame] | 19 | /* Get/set whether or not to drop capabilities on setuid() away from | 
|  | 20 | * uid 0 (as per security/commoncap.c) */ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 21 | #define PR_GET_KEEPCAPS   7 | 
|  | 22 | #define PR_SET_KEEPCAPS   8 | 
|  | 23 |  | 
|  | 24 | /* Get/set floating-point emulation control bits (if meaningful) */ | 
|  | 25 | #define PR_GET_FPEMU  9 | 
|  | 26 | #define PR_SET_FPEMU 10 | 
|  | 27 | # define PR_FPEMU_NOPRINT	1	/* silently emulate fp operations accesses */ | 
|  | 28 | # define PR_FPEMU_SIGFPE	2	/* don't emulate fp operations, send SIGFPE instead */ | 
|  | 29 |  | 
|  | 30 | /* Get/set floating-point exception mode (if meaningful) */ | 
|  | 31 | #define PR_GET_FPEXC	11 | 
|  | 32 | #define PR_SET_FPEXC	12 | 
|  | 33 | # define PR_FP_EXC_SW_ENABLE	0x80	/* Use FPEXC for FP exception enables */ | 
|  | 34 | # define PR_FP_EXC_DIV		0x010000	/* floating point divide by zero */ | 
|  | 35 | # define PR_FP_EXC_OVF		0x020000	/* floating point overflow */ | 
|  | 36 | # define PR_FP_EXC_UND		0x040000	/* floating point underflow */ | 
|  | 37 | # define PR_FP_EXC_RES		0x080000	/* floating point inexact result */ | 
|  | 38 | # define PR_FP_EXC_INV		0x100000	/* floating point invalid operation */ | 
|  | 39 | # define PR_FP_EXC_DISABLED	0	/* FP exceptions disabled */ | 
|  | 40 | # define PR_FP_EXC_NONRECOV	1	/* async non-recoverable exc. mode */ | 
|  | 41 | # define PR_FP_EXC_ASYNC	2	/* async recoverable exception mode */ | 
|  | 42 | # define PR_FP_EXC_PRECISE	3	/* precise exception mode */ | 
|  | 43 |  | 
|  | 44 | /* Get/set whether we use statistical process timing or accurate timestamp | 
|  | 45 | * based process timing */ | 
|  | 46 | #define PR_GET_TIMING   13 | 
|  | 47 | #define PR_SET_TIMING   14 | 
|  | 48 | # define PR_TIMING_STATISTICAL  0       /* Normal, traditional, | 
|  | 49 | statistical process timing */ | 
|  | 50 | # define PR_TIMING_TIMESTAMP    1       /* Accurate timestamp based | 
|  | 51 | process timing */ | 
|  | 52 |  | 
|  | 53 | #define PR_SET_NAME    15		/* Set process name */ | 
|  | 54 | #define PR_GET_NAME    16		/* Get process name */ | 
|  | 55 |  | 
| Anton Blanchard | 651d765 | 2006-06-07 16:10:19 +1000 | [diff] [blame] | 56 | /* Get/set process endian */ | 
|  | 57 | #define PR_GET_ENDIAN	19 | 
|  | 58 | #define PR_SET_ENDIAN	20 | 
|  | 59 | # define PR_ENDIAN_BIG		0 | 
|  | 60 | # define PR_ENDIAN_LITTLE	1	/* True little endian mode */ | 
|  | 61 | # define PR_ENDIAN_PPC_LITTLE	2	/* "PowerPC" pseudo little endian */ | 
|  | 62 |  | 
| Andrea Arcangeli | 1d9d02f | 2007-07-15 23:41:32 -0700 | [diff] [blame] | 63 | /* Get/set process seccomp mode */ | 
|  | 64 | #define PR_GET_SECCOMP	21 | 
|  | 65 | #define PR_SET_SECCOMP	22 | 
|  | 66 |  | 
| Andrew G. Morgan | 3898b1b | 2008-04-28 02:13:40 -0700 | [diff] [blame] | 67 | /* Get/set the capability bounding set (as per security/commoncap.c) */ | 
| Serge E. Hallyn | 3b7391d | 2008-02-04 22:29:45 -0800 | [diff] [blame] | 68 | #define PR_CAPBSET_READ 23 | 
|  | 69 | #define PR_CAPBSET_DROP 24 | 
|  | 70 |  | 
| Erik Bosman | 8fb402b | 2008-04-11 18:54:17 +0200 | [diff] [blame] | 71 | /* Get/set the process' ability to use the timestamp counter instruction */ | 
|  | 72 | #define PR_GET_TSC 25 | 
|  | 73 | #define PR_SET_TSC 26 | 
|  | 74 | # define PR_TSC_ENABLE		1	/* allow the use of the timestamp counter */ | 
|  | 75 | # define PR_TSC_SIGSEGV		2	/* throw a SIGSEGV instead of reading the TSC */ | 
|  | 76 |  | 
| Andrew G. Morgan | 3898b1b | 2008-04-28 02:13:40 -0700 | [diff] [blame] | 77 | /* Get/set securebits (as per security/commoncap.c) */ | 
|  | 78 | #define PR_GET_SECUREBITS 27 | 
|  | 79 | #define PR_SET_SECUREBITS 28 | 
|  | 80 |  | 
| Arjan van de Ven | 6976675 | 2008-09-01 15:52:40 -0700 | [diff] [blame] | 81 | /* | 
|  | 82 | * Get/set the timerslack as used by poll/select/nanosleep | 
|  | 83 | * A value of 0 means "use default" | 
|  | 84 | */ | 
|  | 85 | #define PR_SET_TIMERSLACK 29 | 
|  | 86 | #define PR_GET_TIMERSLACK 30 | 
|  | 87 |  | 
| Ingo Molnar | cdd6c48 | 2009-09-21 12:02:48 +0200 | [diff] [blame] | 88 | #define PR_TASK_PERF_EVENTS_DISABLE		31 | 
|  | 89 | #define PR_TASK_PERF_EVENTS_ENABLE		32 | 
| Ingo Molnar | 1d1c7dd | 2008-12-11 14:59:31 +0100 | [diff] [blame] | 90 |  | 
| Andi Kleen | 1087e9b | 2009-10-04 02:20:11 +0200 | [diff] [blame] | 91 | /* | 
|  | 92 | * Set early/late kill mode for hwpoison memory corruption. | 
|  | 93 | * This influences when the process gets killed on a memory corruption. | 
|  | 94 | */ | 
| Andi Kleen | 4db96cf | 2009-09-16 11:50:14 +0200 | [diff] [blame] | 95 | #define PR_MCE_KILL	33 | 
| Andi Kleen | 1087e9b | 2009-10-04 02:20:11 +0200 | [diff] [blame] | 96 | # define PR_MCE_KILL_CLEAR   0 | 
|  | 97 | # define PR_MCE_KILL_SET     1 | 
|  | 98 |  | 
|  | 99 | # define PR_MCE_KILL_LATE    0 | 
|  | 100 | # define PR_MCE_KILL_EARLY   1 | 
|  | 101 | # define PR_MCE_KILL_DEFAULT 2 | 
|  | 102 |  | 
|  | 103 | #define PR_MCE_KILL_GET 34 | 
| Andi Kleen | 4db96cf | 2009-09-16 11:50:14 +0200 | [diff] [blame] | 104 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 105 | #endif /* _LINUX_PRCTL_H */ |