Skip to content

Instantly share code, notes, and snippets.

@drakenclimber
Last active February 6, 2020 03:17
Show Gist options
  • Save drakenclimber/12f274ec0e9f155829f6ffac3db5d334 to your computer and use it in GitHub Desktop.
Save drakenclimber/12f274ec0e9f155829f6ffac3db5d334 to your computer and use it in GitHub Desktop.
libcgroup print struct cgroup
void print_control_values(const struct control_value * const cv)
{
fprintf(stdout, "\t\tcontrol_value: %s\n", cv->name);
fprintf(stdout, "\t\t\tvalue = %s\n", cv->value);
fprintf(stdout, "\t\t\tmultiline_value = %s\n", cv->multiline_value);
fprintf(stdout, "\t\t\tdirty = %d\n", cv->dirty);
}
void print_controller(const struct cgroup_controller * const controller)
{
int i;
fprintf(stdout, "\tcontroller: %s\n", controller->name);
fprintf(stdout, "\t\tcgroup = %p\n", controller->cgroup);
fprintf(stdout, "\t\tindex = %d\n", controller->index);
for (i = 0; i < controller->index; i++) {
print_control_values(controller->values[i]);
}
}
void print_cgroup(const struct cgroup * const cg)
{
int i;
fprintf(stdout, "cgroup: %s\n", cg->name);
fprintf(stdout, "\tptr = %p\n", cg);
fprintf(stdout, "\ttasks_uid = %d\n", cg->tasks_uid);
fprintf(stdout, "\ttasks_gid = %d\n", cg->tasks_gid);
fprintf(stdout, "\ttask_fperm = 0x%06x\n", cg->task_fperm);
fprintf(stdout, "\tcontrol_uid = %d\n", cg->control_uid);
fprintf(stdout, "\tcontrol_gid = %d\n", cg->control_gid);
fprintf(stdout, "\tcontrol_fperm = 0x%06x\n", cg->control_fperm);
fprintf(stdout, "\tcontrol_dperm = 0x%06x\n", cg->control_dperm);
fprintf(stdout, "\tindex = %d\n", cg->index);
for (i = 0; i < cg->index; i++) {
print_controller(cg->controller[i]);
}
}
void print_cgroups(struct cgroup *cg_list[], int cg_list_len)
{
int i;
for (i = 0; i < cg_list_len; i++) {
print_cgroup(cg_list[i]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment