return false;
if (controller < 0 || controller >= VIR_CGROUP_CONTROLLER_LAST)
return false;
- return cgroup->controllers[controller].mountPoint != NULL;
+
+ return cgroup->backend->hasController(cgroup, controller);
}
(*virCgroupDetectControllersCB)(virCgroupPtr group,
int controllers);
+typedef bool
+(*virCgroupHasControllerCB)(virCgroupPtr cgroup,
+ int controller);
+
struct _virCgroupBackend {
virCgroupBackendType type;
virCgroupValidatePlacementCB validatePlacement;
virCgroupStealPlacementCB stealPlacement;
virCgroupDetectControllersCB detectControllers;
+ virCgroupHasControllerCB hasController;
};
typedef struct _virCgroupBackend virCgroupBackend;
typedef virCgroupBackend *virCgroupBackendPtr;
}
+static bool
+virCgroupV1HasController(virCgroupPtr group,
+ int controller)
+{
+ return group->controllers[controller].mountPoint != NULL;
+}
+
+
virCgroupBackend virCgroupV1Backend = {
.type = VIR_CGROUP_BACKEND_TYPE_V1,
.validatePlacement = virCgroupV1ValidatePlacement,
.stealPlacement = virCgroupV1StealPlacement,
.detectControllers = virCgroupV1DetectControllers,
+ .hasController = virCgroupV1HasController,
};