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