]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
python: Add python bindings for cgroup_setup_mode()
authorTom Hromatka <tom.hromatka@oracle.com>
Tue, 18 Oct 2022 19:24:44 +0000 (19:24 +0000)
committerTom Hromatka <tom.hromatka@oracle.com>
Tue, 25 Oct 2022 21:17:07 +0000 (15:17 -0600)
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
Reviewed-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
src/python/cgroup.pxd
src/python/libcgroup.pyx

index 7edf6b860732d20cb7ab850b628887b34d412524..4f85746e660d6de50faee55ef6ac8fab50b996b4 100644 (file)
@@ -21,6 +21,12 @@ cdef extern from "libcgroup.h":
         CGROUP_V2
         CGROUP_DISK
 
+    cdef enum cg_setup_mode_t:
+        CGROUP_MODE_UNK
+        CGROUP_MODE_LEGACY
+        CGROUP_MODE_HYBRID
+        CGROUP_MODE_UNIFIED
+
     cdef struct cgroup_library_version:
         unsigned int major
         unsigned int minor
@@ -54,4 +60,6 @@ cdef extern from "libcgroup.h":
     int cgroup_list_mount_points(const cg_version_t cgrp_version,
                                  char ***mount_paths)
 
+    cg_setup_mode_t cgroup_setup_mode()
+
 # vim: set et ts=4 sw=4:
index f1d361d904a262fc0aed076806b807efe5d7c777..6b4ff386fd2a7410201ea5087b43c747e74e8165 100644 (file)
@@ -22,6 +22,12 @@ cdef class Version:
     CGROUP_V2 = cgroup.CGROUP_V2
     CGROUP_DISK = cgroup.CGROUP_DISK
 
+cdef class Mode:
+    CGROUP_MODE_UNK = cgroup.CGROUP_MODE_UNK
+    CGROUP_MODE_LEGACY = cgroup.CGROUP_MODE_LEGACY
+    CGROUP_MODE_HYBRID = cgroup.CGROUP_MODE_HYBRID
+    CGROUP_MODE_UNIFIED = cgroup.CGROUP_MODE_UNIFIED
+
 def c_str(string):
     return bytes(string, "ascii")
 
@@ -310,6 +316,16 @@ cdef class Cgroup:
             i = i + 1
         return mount_points
 
+    @staticmethod
+    def cgroup_mode():
+        """Get the cgroup mode (legacy, hybrid, or unified)
+
+        Return:
+        The cgroup mode enumeration
+        """
+        Cgroup.cgroup_init()
+        return cgroup.cgroup_setup_mode()
+
     def __dealloc__(self):
         cgroup.cgroup_free(&self._cgp);