xref: /aosp_15_r20/external/kernel-headers/original/uapi/linux/resource.h (revision f80ad8b4341604f5951dab671d41019a6d7087ce)
1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_RESOURCE_H
3*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_LINUX_RESOURCE_H
4*f80ad8b4SAndroid Build Coastguard Worker 
5*f80ad8b4SAndroid Build Coastguard Worker #include <linux/time_types.h>
6*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h>
7*f80ad8b4SAndroid Build Coastguard Worker 
8*f80ad8b4SAndroid Build Coastguard Worker /*
9*f80ad8b4SAndroid Build Coastguard Worker  * Resource control/accounting header file for linux
10*f80ad8b4SAndroid Build Coastguard Worker  */
11*f80ad8b4SAndroid Build Coastguard Worker 
12*f80ad8b4SAndroid Build Coastguard Worker /*
13*f80ad8b4SAndroid Build Coastguard Worker  * Definition of struct rusage taken from BSD 4.3 Reno
14*f80ad8b4SAndroid Build Coastguard Worker  *
15*f80ad8b4SAndroid Build Coastguard Worker  * We don't support all of these yet, but we might as well have them....
16*f80ad8b4SAndroid Build Coastguard Worker  * Otherwise, each time we add new items, programs which depend on this
17*f80ad8b4SAndroid Build Coastguard Worker  * structure will lose.  This reduces the chances of that happening.
18*f80ad8b4SAndroid Build Coastguard Worker  */
19*f80ad8b4SAndroid Build Coastguard Worker #define	RUSAGE_SELF	0
20*f80ad8b4SAndroid Build Coastguard Worker #define	RUSAGE_CHILDREN	(-1)
21*f80ad8b4SAndroid Build Coastguard Worker #define RUSAGE_BOTH	(-2)		/* sys_wait4() uses this */
22*f80ad8b4SAndroid Build Coastguard Worker #define	RUSAGE_THREAD	1		/* only the calling thread */
23*f80ad8b4SAndroid Build Coastguard Worker 
24*f80ad8b4SAndroid Build Coastguard Worker struct	rusage {
25*f80ad8b4SAndroid Build Coastguard Worker 	struct __kernel_old_timeval ru_utime;	/* user time used */
26*f80ad8b4SAndroid Build Coastguard Worker 	struct __kernel_old_timeval ru_stime;	/* system time used */
27*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_maxrss;	/* maximum resident set size */
28*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_ixrss;	/* integral shared memory size */
29*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_idrss;	/* integral unshared data size */
30*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_isrss;	/* integral unshared stack size */
31*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_minflt;	/* page reclaims */
32*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_majflt;	/* page faults */
33*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_nswap;	/* swaps */
34*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_inblock;	/* block input operations */
35*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_oublock;	/* block output operations */
36*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_msgsnd;	/* messages sent */
37*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_msgrcv;	/* messages received */
38*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_nsignals;	/* signals received */
39*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_nvcsw;	/* voluntary context switches */
40*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_long_t	ru_nivcsw;	/* involuntary " */
41*f80ad8b4SAndroid Build Coastguard Worker };
42*f80ad8b4SAndroid Build Coastguard Worker 
43*f80ad8b4SAndroid Build Coastguard Worker struct rlimit {
44*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_ulong_t	rlim_cur;
45*f80ad8b4SAndroid Build Coastguard Worker 	__kernel_ulong_t	rlim_max;
46*f80ad8b4SAndroid Build Coastguard Worker };
47*f80ad8b4SAndroid Build Coastguard Worker 
48*f80ad8b4SAndroid Build Coastguard Worker #define RLIM64_INFINITY		(~0ULL)
49*f80ad8b4SAndroid Build Coastguard Worker 
50*f80ad8b4SAndroid Build Coastguard Worker struct rlimit64 {
51*f80ad8b4SAndroid Build Coastguard Worker 	__u64 rlim_cur;
52*f80ad8b4SAndroid Build Coastguard Worker 	__u64 rlim_max;
53*f80ad8b4SAndroid Build Coastguard Worker };
54*f80ad8b4SAndroid Build Coastguard Worker 
55*f80ad8b4SAndroid Build Coastguard Worker #define	PRIO_MIN	(-20)
56*f80ad8b4SAndroid Build Coastguard Worker #define	PRIO_MAX	20
57*f80ad8b4SAndroid Build Coastguard Worker 
58*f80ad8b4SAndroid Build Coastguard Worker #define	PRIO_PROCESS	0
59*f80ad8b4SAndroid Build Coastguard Worker #define	PRIO_PGRP	1
60*f80ad8b4SAndroid Build Coastguard Worker #define	PRIO_USER	2
61*f80ad8b4SAndroid Build Coastguard Worker 
62*f80ad8b4SAndroid Build Coastguard Worker /*
63*f80ad8b4SAndroid Build Coastguard Worker  * Limit the stack by to some sane default: root can always
64*f80ad8b4SAndroid Build Coastguard Worker  * increase this limit if needed..  8MB seems reasonable.
65*f80ad8b4SAndroid Build Coastguard Worker  */
66*f80ad8b4SAndroid Build Coastguard Worker #define _STK_LIM	(8*1024*1024)
67*f80ad8b4SAndroid Build Coastguard Worker 
68*f80ad8b4SAndroid Build Coastguard Worker /*
69*f80ad8b4SAndroid Build Coastguard Worker  * Limit the amount of locked memory by some sane default:
70*f80ad8b4SAndroid Build Coastguard Worker  * root can always increase this limit if needed.
71*f80ad8b4SAndroid Build Coastguard Worker  *
72*f80ad8b4SAndroid Build Coastguard Worker  * The main use-cases are (1) preventing sensitive memory
73*f80ad8b4SAndroid Build Coastguard Worker  * from being swapped; (2) real-time operations; (3) via
74*f80ad8b4SAndroid Build Coastguard Worker  * IOURING_REGISTER_BUFFERS.
75*f80ad8b4SAndroid Build Coastguard Worker  *
76*f80ad8b4SAndroid Build Coastguard Worker  * The first two don't need much. The latter will take as
77*f80ad8b4SAndroid Build Coastguard Worker  * much as it can get. 8MB is a reasonably sane default.
78*f80ad8b4SAndroid Build Coastguard Worker  */
79*f80ad8b4SAndroid Build Coastguard Worker #define MLOCK_LIMIT	(8*1024*1024)
80*f80ad8b4SAndroid Build Coastguard Worker 
81*f80ad8b4SAndroid Build Coastguard Worker /*
82*f80ad8b4SAndroid Build Coastguard Worker  * Due to binary compatibility, the actual resource numbers
83*f80ad8b4SAndroid Build Coastguard Worker  * may be different for different linux versions..
84*f80ad8b4SAndroid Build Coastguard Worker  */
85*f80ad8b4SAndroid Build Coastguard Worker #include <asm/resource.h>
86*f80ad8b4SAndroid Build Coastguard Worker 
87*f80ad8b4SAndroid Build Coastguard Worker 
88*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_LINUX_RESOURCE_H */
89