1 /* A limited emulation of sys/resource.h.
3 Copyright (C) 2016-2017 Free Software Foundation, Inc.
5 This file is part of GNU Emacs.
7 GNU Emacs is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or (at
10 your option) any later version.
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
20 #ifndef INC_SYS_RESOURCE_H_
21 #define INC_SYS_RESOURCE_H_
23 /* We only support RLIMIT_STACK and RLIMIT_NOFILE for now. */
24 enum rlimit_resource
{
26 #define RLIMIT_STACK RLIMIT_STACK
29 #define RLIMIT_NOFILE RLIMIT_NOFILE
32 #define RLIMIT_NLIMITS RLIMIT_NLIMITS
35 typedef enum rlimit_resource rlimit_resource_t
;
37 /* We use a 64-bit data type because some values could potentially be
38 64-bit wide even in 32-bit builds. */
39 typedef long long rlim_t
;
41 #define RLIMIT_INFINITY ((rlim_t) -1)
44 rlim_t rlim_cur
; /* current soft limit */
45 rlim_t rlim_max
; /* hard limit */
48 extern int getrlimit (rlimit_resource_t
, struct rlimit
*);
49 extern int setrlimit (rlimit_resource_t
, const struct rlimit
*);
51 #endif /* INC_SYS_RESOURCE_H_ */