Add a table for cgroup v1 to v2 conversions - cgroup_v1_to_v2_map[]
Add a table for cgroup v2 to v2 conversions - cgroup_v2_to_v1_map[] Signed-off-by: Tom Hromatka <tom.hroma...@oracle.com> --- src/Makefile.am | 2 +- src/abstraction-map.c | 42 ++++++++++++++++++++++++++++++++++ src/abstraction-map.h | 52 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 src/abstraction-map.c create mode 100644 src/abstraction-map.h diff --git a/src/Makefile.am b/src/Makefile.am index f1e671b5da59..47c2ec6dc3e1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -15,7 +15,7 @@ CLEANFILES = lex.c parse.c parse.h AM_CPPFLAGS = -I$(top_srcdir)/include lib_LTLIBRARIES = libcgroup.la libcgroupfortesting.la -libcgroup_la_SOURCES = parse.h parse.y lex.l api.c config.c libcgroup-internal.h libcgroup.map wrapper.c log.c abstraction-common.c abstraction-common.h +libcgroup_la_SOURCES = parse.h parse.y lex.l api.c config.c libcgroup-internal.h libcgroup.map wrapper.c log.c abstraction-common.c abstraction-common.h abstraction-map.c abstraction-map.h libcgroup_la_LIBADD = -lpthread $(CODE_COVERAGE_LIBS) libcgroup_la_CFLAGS = $(CODE_COVERAGE_CFLAGS) -DSTATIC=static libcgroup_la_LDFLAGS = -Wl,--version-script,$(srcdir)/libcgroup.map \ diff --git a/src/abstraction-map.c b/src/abstraction-map.c new file mode 100644 index 000000000000..91fdec0e8818 --- /dev/null +++ b/src/abstraction-map.c @@ -0,0 +1,42 @@ +/** + * Libcgroup abstraction layer mappings + * + * Copyright (c) 2021 Oracle and/or its affiliates. + * Author: Tom Hromatka <tom.hroma...@oracle.com> + */ + +/* + * This library is free software; you can redistribute it and/or modify it + * under the terms of version 2.1 of the GNU Lesser General Public License as + * published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see <http://www.gnu.org/licenses>. + */ + +#include <libcgroup.h> +#include <libcgroup-internal.h> + +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#include "abstraction-common.h" +#include "abstraction-map.h" + +const struct cgroup_abstraction_map cgroup_v1_to_v2_map[] = { +}; +const int cgroup_v1_to_v2_map_sz = sizeof(cgroup_v1_to_v2_map) / + sizeof(cgroup_v1_to_v2_map[0]); + +const struct cgroup_abstraction_map cgroup_v2_to_v1_map[] = { +}; +const int cgroup_v2_to_v1_map_sz = sizeof(cgroup_v2_to_v1_map) / + sizeof(cgroup_v2_to_v1_map[0]); diff --git a/src/abstraction-map.h b/src/abstraction-map.h new file mode 100644 index 000000000000..538a66d59b01 --- /dev/null +++ b/src/abstraction-map.h @@ -0,0 +1,52 @@ +/** + * Libcgroup abstraction layer mappings + * + * Copyright (c) 2021 Oracle and/or its affiliates. + * Author: Tom Hromatka <tom.hroma...@oracle.com> + */ + +/* + * This library is free software; you can redistribute it and/or modify it + * under the terms of version 2.1 of the GNU Lesser General Public License as + * published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License + * for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see <http://www.gnu.org/licenses>. + */ +#ifndef __ABSTRACTION_MAP +#define __ABSTRACTION_MAP + +#ifdef __cplusplus +extern "C" { +#endif + +struct cgroup_abstraction_map { + /* if the conversion isn't a one-to-one mapping or the mathematical + * conversion is unique, create a custom conversion function. + */ + int (*cgroup_convert)(struct cgroup_controller * const dst_cgc, + const char * const in_value, + const char * const out_setting, + void *in_dflt, void *out_dflt); + char *in_setting; + void *in_dflt; + char *out_setting; + void *out_dflt; +}; + +extern const struct cgroup_abstraction_map cgroup_v1_to_v2_map[]; +extern const int cgroup_v1_to_v2_map_sz; + +extern const struct cgroup_abstraction_map cgroup_v2_to_v1_map[]; +extern const int cgroup_v2_to_v1_map_sz; + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __ABSTRACTION_MAP */ -- 2.25.1 _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel