[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH v2 09/17] vircgroup: introduce virCgroupV2DevicesGetKey



Device rules are stored in BPF map that is a hash type, this function
will create a key based on major and minor id of device.

Signed-off-by: Pavel Hrdina <phrdina redhat com>
---
 src/libvirt_private.syms      | 1 +
 src/util/vircgroupv2devices.c | 8 ++++++++
 src/util/vircgroupv2devices.h | 4 ++++
 3 files changed, 13 insertions(+)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 0d25911bc1..f1da5ede71 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1616,6 +1616,7 @@ virCgroupV2DevicesAttachProg;
 virCgroupV2DevicesAvailable;
 virCgroupV2DevicesCreateProg;
 virCgroupV2DevicesDetectProg;
+virCgroupV2DevicesGetKey;
 virCgroupV2DevicesGetPerms;
 virCgroupV2DevicesPrepareProg;
 virCgroupV2DevicesRemoveProg;
diff --git a/src/util/vircgroupv2devices.c b/src/util/vircgroupv2devices.c
index 9cf9edee3a..8bf5100724 100644
--- a/src/util/vircgroupv2devices.c
+++ b/src/util/vircgroupv2devices.c
@@ -524,3 +524,11 @@ virCgroupV2DevicesGetPerms(int perms ATTRIBUTE_UNUSED,
     return 0;
 }
 #endif /* !HAVE_DECL_BPF_CGROUP_DEVICE */
+
+
+uint64_t
+virCgroupV2DevicesGetKey(int major,
+                         int minor)
+{
+    return (uint64_t)major << 32 | ((uint64_t)minor & 0x00000000ffffffff);
+}
diff --git a/src/util/vircgroupv2devices.h b/src/util/vircgroupv2devices.h
index cbfd9ae119..d717c9755f 100644
--- a/src/util/vircgroupv2devices.h
+++ b/src/util/vircgroupv2devices.h
@@ -47,4 +47,8 @@ uint32_t
 virCgroupV2DevicesGetPerms(int perms,
                            char type);
 
+uint64_t
+virCgroupV2DevicesGetKey(int major,
+                         int minor);
+
 #endif /* LIBVIRT_VIRCGROUPV2DEVICES_H */
-- 
2.20.1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]