Fix copyright lines
[folly.git] / folly / portability / SysResource.h
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
24 #include <folly/portability/SysTime.h>
25
26 #define RLIMIT_CORE 0
27 #define RLIMIT_NOFILE 0
28 #define RLIMIT_DATA 0
29 #define RLIMIT_STACK 3
30 #define RLIM_INFINITY SIZE_MAX
31
32 #define RUSAGE_SELF 0
33 #define RUSAGE_CHILDREN 0
34 #define RUSAGE_THREAD 0
35
36 using rlim_t = size_t;
37 struct rlimit {
38   rlim_t rlim_cur;
39   rlim_t rlim_max;
40 };
41
42 struct rusage {
43   timeval ru_utime;
44   timeval ru_stime;
45   long ru_maxrss;
46   long ru_ixrss;
47   long ru_idrss;
48   long ru_isrss;
49   long ru_minflt;
50   long ru_majflt;
51   long ru_nswap;
52   long ru_inblock;
53   long ru_oublock;
54   long ru_msgsnd;
55   long ru_msgrcv;
56   long ru_nsignals;
57   long ru_nvcsw;
58   long ru_nivcsw;
59 };
60
61 extern "C" {
62 int getrlimit(int type, rlimit* dst);
63 int getrusage(int who, rusage* usage);
64 int setrlimit(int type, rlimit* src);
65 }
66 #endif