From: Tom Hromatka Date: Wed, 15 Dec 2021 21:11:28 +0000 (+0000) Subject: abstraction: Add name conversion function X-Git-Tag: v3.0~232 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da04c8641e01a498c50887db849902274b4f7346;p=thirdparty%2Flibcgroup.git abstraction: Add name conversion function Add a function to the abstraction layer that can convert from one cgroup setting name to another setting name. The values are not adjusted by this function. For example, this can be used for conversions like cpuset.effective_cpus to cpuset.cpus.effective. Signed-off-by: Tom Hromatka Reviewed-by: Kamalesh Babulal --- diff --git a/src/abstraction-common.c b/src/abstraction-common.c index 319f0161..734f303e 100644 --- a/src/abstraction-common.c +++ b/src/abstraction-common.c @@ -116,6 +116,14 @@ out: return ret; } +int cgroup_convert_name_only(struct cgroup_controller * const dst_cgc, + const char * const in_value, + const char * const out_setting, + void *in_dflt, void *out_dflt) +{ + return cgroup_add_value_string(dst_cgc, out_setting, in_value); +} + static int convert_setting(struct cgroup_controller * const out_cgc, const struct control_value * const in_ctrl_val) { diff --git a/src/abstraction-common.h b/src/abstraction-common.h index bbd25d73..f7118e9d 100644 --- a/src/abstraction-common.h +++ b/src/abstraction-common.h @@ -57,6 +57,21 @@ int cgroup_convert_int(struct cgroup_controller * const dst_cgc, const char * const out_setting, void *in_dflt, void *out_dflt); +/** + * Convert only the name from one setting to another. The contents remain + * the same + * + * @param dst_cgc Destination cgroup controller + * @param in_value Contents of the input setting + * @param out_setting Destination cgroup setting + * @param in_dflt Default value of the input setting (unused) + * @param out_dflt Default value of the output setting (unused) + */ +int cgroup_convert_name_only(struct cgroup_controller * const dst_cgc, + const char * const in_value, + const char * const out_setting, + void *in_dflt, void *out_dflt); + #ifdef __cplusplus } /* extern "C" */ #endif