.. | .. |
---|
3 | 3 | #define __CGROUP_H__ |
---|
4 | 4 | |
---|
5 | 5 | #include <linux/refcount.h> |
---|
| 6 | +#include <linux/rbtree.h> |
---|
| 7 | +#include "util/env.h" |
---|
6 | 8 | |
---|
7 | 9 | struct option; |
---|
8 | 10 | |
---|
9 | 11 | struct cgroup { |
---|
10 | | - char *name; |
---|
11 | | - int fd; |
---|
12 | | - refcount_t refcnt; |
---|
| 12 | + struct rb_node node; |
---|
| 13 | + u64 id; |
---|
| 14 | + char *name; |
---|
| 15 | + int fd; |
---|
| 16 | + refcount_t refcnt; |
---|
13 | 17 | }; |
---|
14 | | - |
---|
15 | 18 | |
---|
16 | 19 | extern int nr_cgroups; /* number of explicit cgroups defined */ |
---|
17 | 20 | |
---|
18 | 21 | struct cgroup *cgroup__get(struct cgroup *cgroup); |
---|
19 | 22 | void cgroup__put(struct cgroup *cgroup); |
---|
20 | 23 | |
---|
21 | | -struct perf_evlist; |
---|
| 24 | +struct evlist; |
---|
| 25 | +struct rblist; |
---|
22 | 26 | |
---|
23 | | -struct cgroup *evlist__findnew_cgroup(struct perf_evlist *evlist, const char *name); |
---|
| 27 | +struct cgroup *evlist__findnew_cgroup(struct evlist *evlist, const char *name); |
---|
| 28 | +int evlist__expand_cgroup(struct evlist *evlist, const char *cgroups, |
---|
| 29 | + struct rblist *metric_events, bool open_cgroup); |
---|
24 | 30 | |
---|
25 | | -void evlist__set_default_cgroup(struct perf_evlist *evlist, struct cgroup *cgroup); |
---|
| 31 | +void evlist__set_default_cgroup(struct evlist *evlist, struct cgroup *cgroup); |
---|
26 | 32 | |
---|
27 | 33 | int parse_cgroups(const struct option *opt, const char *str, int unset); |
---|
28 | 34 | |
---|
| 35 | +struct cgroup *cgroup__findnew(struct perf_env *env, uint64_t id, |
---|
| 36 | + const char *path); |
---|
| 37 | +struct cgroup *cgroup__find(struct perf_env *env, uint64_t id); |
---|
| 38 | + |
---|
| 39 | +void perf_env__purge_cgroups(struct perf_env *env); |
---|
| 40 | + |
---|
29 | 41 | #endif /* __CGROUP_H__ */ |
---|