proxygen
SysResource.h
Go to the documentation of this file.
1 /*
2  * Copyright 2016-present Facebook, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #pragma once
18 
19 #ifndef _WIN32
20 #include <sys/resource.h>
21 #else
22 #include <cstdint>
23 
25 
26 #define PRIO_PROCESS 1
27 
28 #define RLIMIT_CORE 0
29 #define RLIMIT_NOFILE 0
30 #define RLIMIT_DATA 0
31 #define RLIMIT_STACK 3
32 #define RLIM_INFINITY SIZE_MAX
33 
34 #define RUSAGE_SELF 0
35 #define RUSAGE_CHILDREN 0
36 #define RUSAGE_THREAD 0
37 
38 using rlim_t = size_t;
39 struct rlimit {
40  rlim_t rlim_cur;
41  rlim_t rlim_max;
42 };
43 
44 struct rusage {
45  timeval ru_utime;
46  timeval ru_stime;
47  long ru_maxrss;
48  long ru_ixrss;
49  long ru_idrss;
50  long ru_isrss;
51  long ru_minflt;
52  long ru_majflt;
53  long ru_nswap;
54  long ru_inblock;
55  long ru_oublock;
56  long ru_msgsnd;
57  long ru_msgrcv;
58  long ru_nsignals;
59  long ru_nvcsw;
60  long ru_nivcsw;
61 };
62 
63 extern "C" {
64 int getrlimit(int type, rlimit* dst);
65 int getrusage(int who, rusage* usage);
66 int setrlimit(int type, rlimit* src);
67 
68 int getpriority(int which, int who);
69 int setpriority(int which, int who, int value);
70 }
71 #endif
PskType type
static const char *const value
Definition: Conv.cpp:50