|
@@ -388,9 +388,12 @@ enum charge_type {
|
|
|
};
|
|
|
|
|
|
/* for encoding cft->private value on file */
|
|
|
-#define _MEM (0)
|
|
|
-#define _MEMSWAP (1)
|
|
|
-#define _OOM_TYPE (2)
|
|
|
+enum res_type {
|
|
|
+ _MEM,
|
|
|
+ _MEMSWAP,
|
|
|
+ _OOM_TYPE,
|
|
|
+};
|
|
|
+
|
|
|
#define MEMFILE_PRIVATE(x, val) ((x) << 16 | (val))
|
|
|
#define MEMFILE_TYPE(val) ((val) >> 16 & 0xffff)
|
|
|
#define MEMFILE_ATTR(val) ((val) & 0xffff)
|
|
@@ -3952,7 +3955,8 @@ static ssize_t mem_cgroup_read(struct cgroup *cont, struct cftype *cft,
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_cont(cont);
|
|
|
char str[64];
|
|
|
u64 val;
|
|
|
- int type, name, len;
|
|
|
+ int name, len;
|
|
|
+ enum res_type type;
|
|
|
|
|
|
type = MEMFILE_TYPE(cft->private);
|
|
|
name = MEMFILE_ATTR(cft->private);
|
|
@@ -3988,7 +3992,8 @@ static int mem_cgroup_write(struct cgroup *cont, struct cftype *cft,
|
|
|
const char *buffer)
|
|
|
{
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_cont(cont);
|
|
|
- int type, name;
|
|
|
+ enum res_type type;
|
|
|
+ int name;
|
|
|
unsigned long long val;
|
|
|
int ret;
|
|
|
|
|
@@ -4064,7 +4069,8 @@ out:
|
|
|
static int mem_cgroup_reset(struct cgroup *cont, unsigned int event)
|
|
|
{
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_cont(cont);
|
|
|
- int type, name;
|
|
|
+ int name;
|
|
|
+ enum res_type type;
|
|
|
|
|
|
type = MEMFILE_TYPE(event);
|
|
|
name = MEMFILE_ATTR(event);
|
|
@@ -4400,7 +4406,7 @@ static int mem_cgroup_usage_register_event(struct cgroup *cgrp,
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);
|
|
|
struct mem_cgroup_thresholds *thresholds;
|
|
|
struct mem_cgroup_threshold_ary *new;
|
|
|
- int type = MEMFILE_TYPE(cft->private);
|
|
|
+ enum res_type type = MEMFILE_TYPE(cft->private);
|
|
|
u64 threshold, usage;
|
|
|
int i, size, ret;
|
|
|
|
|
@@ -4483,7 +4489,7 @@ static void mem_cgroup_usage_unregister_event(struct cgroup *cgrp,
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);
|
|
|
struct mem_cgroup_thresholds *thresholds;
|
|
|
struct mem_cgroup_threshold_ary *new;
|
|
|
- int type = MEMFILE_TYPE(cft->private);
|
|
|
+ enum res_type type = MEMFILE_TYPE(cft->private);
|
|
|
u64 usage;
|
|
|
int i, j, size;
|
|
|
|
|
@@ -4561,7 +4567,7 @@ static int mem_cgroup_oom_register_event(struct cgroup *cgrp,
|
|
|
{
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);
|
|
|
struct mem_cgroup_eventfd_list *event;
|
|
|
- int type = MEMFILE_TYPE(cft->private);
|
|
|
+ enum res_type type = MEMFILE_TYPE(cft->private);
|
|
|
|
|
|
BUG_ON(type != _OOM_TYPE);
|
|
|
event = kmalloc(sizeof(*event), GFP_KERNEL);
|
|
@@ -4586,7 +4592,7 @@ static void mem_cgroup_oom_unregister_event(struct cgroup *cgrp,
|
|
|
{
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);
|
|
|
struct mem_cgroup_eventfd_list *ev, *tmp;
|
|
|
- int type = MEMFILE_TYPE(cft->private);
|
|
|
+ enum res_type type = MEMFILE_TYPE(cft->private);
|
|
|
|
|
|
BUG_ON(type != _OOM_TYPE);
|
|
|
|