blob: 9fa4154abc99ba46d4fba5e7045cdef4eb309d5d [file] [log] [blame]
Colin Crosscf8d1c22014-06-03 13:24:21 -07001/*
2 * Copyright 2014 Google, 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#ifndef _PROCESSGROUP_H_
18#define _PROCESSGROUP_H_
19
20#include <sys/cdefs.h>
21#include <sys/types.h>
22
23__BEGIN_DECLS
24
Tom Cherry20514c42017-04-21 13:48:49 -070025// Return 0 and removes the cgroup if there are no longer any processes in it.
26// Returns -1 in the case of an error occurring or if there are processes still running
27// even after retrying for up to 200ms.
Colin Crosscf8d1c22014-06-03 13:24:21 -070028int killProcessGroup(uid_t uid, int initialPid, int signal);
29
Tom Cherry20514c42017-04-21 13:48:49 -070030// Returns the same as killProcessGroup(), however it does not retry, which means
31// that it only returns 0 in the case that the cgroup exists and it contains no processes.
Keun-young Parkfac4b632017-03-28 17:25:24 -070032int killProcessGroupOnce(uid_t uid, int initialPid, int signal);
33
Colin Crosscf8d1c22014-06-03 13:24:21 -070034int createProcessGroup(uid_t uid, int initialPid);
35
Robert Benead4852262017-07-16 19:38:11 -070036bool setProcessGroupSwappiness(uid_t uid, int initialPid, int swappiness);
37bool setProcessGroupSoftLimit(uid_t uid, int initialPid, int64_t softLimitInBytes);
38bool setProcessGroupLimit(uid_t uid, int initialPid, int64_t limitInBytes);
39
Colin Crosscf8d1c22014-06-03 13:24:21 -070040void removeAllProcessGroups(void);
41
42__END_DECLS
43
44#endif