include/linux/misc_cgroup.h
Source file repositories/reference/linux-study-clean/include/linux/misc_cgroup.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/misc_cgroup.h- Extension
.h- Size
- 3279 bytes
- Lines
- 139
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/cgroup.h
Detected Declarations
struct misc_cgstruct misc_resstruct misc_cgenum misc_res_typefunction css_miscfunction get_current_misc_cgfunction put_misc_cgfunction misc_cg_set_capacityfunction misc_cg_try_chargefunction misc_cg_unchargefunction put_misc_cg
Annotated Snippet
struct misc_res {
u64 max;
atomic64_t watermark;
atomic64_t usage;
atomic64_t events;
atomic64_t events_local;
};
/**
* struct misc_cg - Miscellaneous controller's cgroup structure.
* @css: cgroup subsys state object.
* @events_file: Handle for the misc resources events file.
* @res: Array of misc resources usage in the cgroup.
*/
struct misc_cg {
struct cgroup_subsys_state css;
/* misc.events */
struct cgroup_file events_file;
/* misc.events.local */
struct cgroup_file events_local_file;
struct misc_res res[MISC_CG_RES_TYPES];
};
int misc_cg_set_capacity(enum misc_res_type type, u64 capacity);
int misc_cg_try_charge(enum misc_res_type type, struct misc_cg *cg, u64 amount);
void misc_cg_uncharge(enum misc_res_type type, struct misc_cg *cg, u64 amount);
/**
* css_misc() - Get misc cgroup from the css.
* @css: cgroup subsys state object.
*
* Context: Any context.
* Return:
* * %NULL - If @css is null.
* * struct misc_cg* - misc cgroup pointer of the passed css.
*/
static inline struct misc_cg *css_misc(struct cgroup_subsys_state *css)
{
return css ? container_of(css, struct misc_cg, css) : NULL;
}
/*
* get_current_misc_cg() - Find and get the misc cgroup of the current task.
*
* Returned cgroup has its ref count increased by 1. Caller must call
* put_misc_cg() to return the reference.
*
* Return: Misc cgroup to which the current task belongs to.
*/
static inline struct misc_cg *get_current_misc_cg(void)
{
return css_misc(task_get_css(current, misc_cgrp_id));
}
/*
* put_misc_cg() - Put the misc cgroup and reduce its ref count.
* @cg - cgroup to put.
*/
static inline void put_misc_cg(struct misc_cg *cg)
{
if (cg)
css_put(&cg->css);
}
#else /* !CONFIG_CGROUP_MISC */
static inline int misc_cg_set_capacity(enum misc_res_type type, u64 capacity)
{
return 0;
}
static inline int misc_cg_try_charge(enum misc_res_type type,
struct misc_cg *cg,
u64 amount)
{
return 0;
}
static inline void misc_cg_uncharge(enum misc_res_type type,
struct misc_cg *cg,
u64 amount)
{
}
static inline struct misc_cg *get_current_misc_cg(void)
{
return NULL;
}
Annotation
- Immediate include surface: `linux/cgroup.h`.
- Detected declarations: `struct misc_cg`, `struct misc_res`, `struct misc_cg`, `enum misc_res_type`, `function css_misc`, `function get_current_misc_cg`, `function put_misc_cg`, `function misc_cg_set_capacity`, `function misc_cg_try_charge`, `function misc_cg_uncharge`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.