Crinit -- Configurable Rootfs Init
Loading...
Searching...
No Matches
cgroup.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
6#ifndef __CGROUP_H__
7#define __CGROUP_H__
8
9#ifdef ENABLE_CGROUP
10
11#include <fcntl.h>
12#include <stdbool.h>
13#include <stddef.h>
14
15#ifndef CRINIT_CGROUP_PATH
16#define CRINIT_CGROUP_PATH "/sys/fs/cgroup"
17#endif
18
20typedef struct {
21 char *filename;
22 char *option;
23} crinitCgroupParam_t;
24
26typedef struct {
27 crinitCgroupParam_t *param;
28 size_t paramCount;
29} crinitCgroupConfiguration_t;
30
32struct crinitCgroup;
33typedef struct crinitCgroup crinitCgroup_t;
34
35struct crinitCgroup {
36 char *name;
37 int groupFd;
38 crinitCgroup_t *parent;
39 crinitCgroupConfiguration_t *config;
40};
41
47int crinitFreeCgroupParam(crinitCgroupParam_t *param);
48
54int crinitFreeCgroupConfiguration(crinitCgroupConfiguration_t *config);
55
61int crinitFreeCgroup(crinitCgroup_t *cgroup);
62
69int crinitCopyCgroupParam(crinitCgroupParam_t *orig, crinitCgroupParam_t *out);
70
77int crinitCgroupConvertSingleParamToObject(const char *in, crinitCgroupParam_t *out);
78
85int crinitCopyCgroupConfiguration(crinitCgroupConfiguration_t *orig, crinitCgroupConfiguration_t *out);
86
93int crinitCopyCgroup(crinitCgroup_t *orig, crinitCgroup_t *out);
94
106int crinitConvertConfigArrayToCGroupConfiguration(char **confArray, const int confArraySize,
107 crinitCgroupConfiguration_t *result);
108
115crinitCgroup_t *crinitFindCgroupByName(crinitCgroup_t **cgroups, size_t cgroupsCount, const char *name);
116
132int crinitCGroupConfigure(crinitCgroup_t *cgroup);
133
152int crinitCGroupAssignPID(crinitCgroup_t *cgroup, pid_t pid);
153
158int crinitCreateGlobalCGroups(void);
159
167int crinitCgroupGlobalParamSplitNameAndParam(const char *val, char **name, char **param);
168
175int crinitCgroupNameIsGlobalCgroup(const char *name, bool *isGlobal);
176
177#endif
178
179#endif