*/
} virCgroupFlags;
-bool virCgroupAvailable(void)
+
+bool
+virCgroupAvailable(void)
{
bool ret = false;
#ifdef HAVE_GETMNTENT_R
if (STRNEQ(tmp, name) &&
STRNEQ(tmp, partname) &&
STRNEQ(tmp, scopename)) {
- VIR_DEBUG("Name '%s' for controller '%s' does not match '%s', '%s' or '%s'",
- tmp, virCgroupControllerTypeToString(i), name, partname, scopename);
+ VIR_DEBUG("Name '%s' for controller '%s' does not match "
+ "'%s', '%s' or '%s'",
+ tmp, virCgroupControllerTypeToString(i),
+ name, partname, scopename);
goto cleanup;
}
}
}
#endif
+
/**
* virCgroupFree:
*
* @group: The group structure to free
*/
-void virCgroupFree(virCgroupPtr *group)
+void
+virCgroupFree(virCgroupPtr *group)
{
size_t i;
VIR_FREE(*group);
}
+
/**
* virCgroupHasController: query whether a cgroup controller is present
*
* Returns true if a cgroup controller is mounted and is associated
* with this cgroup object.
*/
-bool virCgroupHasController(virCgroupPtr cgroup, int controller)
+bool
+virCgroupHasController(virCgroupPtr cgroup, int controller)
{
if (!cgroup)
return false;
}
#if defined HAVE_MNTENT_H && defined HAVE_GETMNTENT_R
-static int virCgroupCopyMounts(virCgroupPtr group,
- virCgroupPtr parent)
+static int
+virCgroupCopyMounts(virCgroupPtr group,
+ virCgroupPtr parent)
{
size_t i;
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
return 0;
}
+
/*
* Process /proc/mounts figuring out what controllers are
* mounted and where
*/
-static int virCgroupDetectMounts(virCgroupPtr group)
+static int
+virCgroupDetectMounts(virCgroupPtr group)
{
size_t i;
FILE *mounts = NULL;
VIR_FREE(linksrc);
} else {
virReportSystemError(errno,
- _("Cannot stat %s"), linksrc);
+ _("Cannot stat %s"),
+ linksrc);
goto error;
}
} else {
}
-static int virCgroupCopyPlacement(virCgroupPtr group,
- const char *path,
- virCgroupPtr parent)
+static int
+virCgroupCopyPlacement(virCgroupPtr group,
+ const char *path,
+ virCgroupPtr parent)
{
size_t i;
for (i = 0; i < VIR_CGROUP_CONTROLLER_LAST; i++) {
*
* It then appends @path to each detected path.
*/
-static int virCgroupDetectPlacement(virCgroupPtr group,
- pid_t pid,
- const char *path)
+static int
+virCgroupDetectPlacement(virCgroupPtr group,
+ pid_t pid,
+ const char *path)
{
size_t i;
FILE *mapping = NULL;
return ret;
}
-static int virCgroupDetect(virCgroupPtr group,
- pid_t pid,
- int controllers,
- const char *path,
- virCgroupPtr parent)
+
+static int
+virCgroupDetect(virCgroupPtr group,
+ pid_t pid,
+ int controllers,
+ const char *path,
+ virCgroupPtr parent)
{
size_t i;
size_t j;
#endif
-int virCgroupPathOfController(virCgroupPtr group,
- int controller,
- const char *key,
- char **path)
+int
+virCgroupPathOfController(virCgroupPtr group,
+ int controller,
+ const char *key,
+ char **path)
{
if (controller == -1) {
size_t i;
}
-static int virCgroupSetValueStr(virCgroupPtr group,
- int controller,
- const char *key,
- const char *value)
+static int
+virCgroupSetValueStr(virCgroupPtr group,
+ int controller,
+ const char *key,
+ const char *value)
{
int ret = -1;
char *keypath = NULL;
return ret;
}
-static int virCgroupGetValueStr(virCgroupPtr group,
- int controller,
- const char *key,
- char **value)
+
+static int
+virCgroupGetValueStr(virCgroupPtr group,
+ int controller,
+ const char *key,
+ char **value)
{
char *keypath = NULL;
int ret = -1, rc;
return ret;
}
-static int virCgroupSetValueU64(virCgroupPtr group,
- int controller,
- const char *key,
- unsigned long long int value)
+
+static int
+virCgroupSetValueU64(virCgroupPtr group,
+ int controller,
+ const char *key,
+ unsigned long long int value)
{
char *strval = NULL;
int ret;
}
-
-static int virCgroupSetValueI64(virCgroupPtr group,
- int controller,
- const char *key,
- long long int value)
+static int
+virCgroupSetValueI64(virCgroupPtr group,
+ int controller,
+ const char *key,
+ long long int value)
{
char *strval = NULL;
int ret;
return ret;
}
-static int virCgroupGetValueI64(virCgroupPtr group,
- int controller,
- const char *key,
- long long int *value)
+
+static int
+virCgroupGetValueI64(virCgroupPtr group,
+ int controller,
+ const char *key,
+ long long int *value)
{
char *strval = NULL;
int ret = -1;
return ret;
}
-static int virCgroupGetValueU64(virCgroupPtr group,
- int controller,
- const char *key,
- unsigned long long int *value)
+
+static int
+virCgroupGetValueU64(virCgroupPtr group,
+ int controller,
+ const char *key,
+ unsigned long long int *value)
{
char *strval = NULL;
int ret = -1;
#if defined HAVE_MNTENT_H && defined HAVE_GETMNTENT_R
-static int virCgroupCpuSetInherit(virCgroupPtr parent, virCgroupPtr group)
+static int
+virCgroupCpuSetInherit(virCgroupPtr parent, virCgroupPtr group)
{
size_t i;
const char *inherit_values[] = {
return 0;
}
-static int virCgroupSetMemoryUseHierarchy(virCgroupPtr group)
+
+static int
+virCgroupSetMemoryUseHierarchy(virCgroupPtr group)
{
unsigned long long value;
const char *filename = "memory.use_hierarchy";
return 0;
}
-static int virCgroupMakeGroup(virCgroupPtr parent,
- virCgroupPtr group,
- bool create,
- unsigned int flags)
+
+static int
+virCgroupMakeGroup(virCgroupPtr parent,
+ virCgroupPtr group,
+ bool create,
+ unsigned int flags)
{
size_t i;
int ret = -1;
}
if (group->controllers[VIR_CGROUP_CONTROLLER_CPUSET].mountPoint != NULL &&
(i == VIR_CGROUP_CONTROLLER_CPUSET ||
- STREQ(group->controllers[i].mountPoint, group->controllers[VIR_CGROUP_CONTROLLER_CPUSET].mountPoint))) {
+ STREQ(group->controllers[i].mountPoint,
+ group->controllers[VIR_CGROUP_CONTROLLER_CPUSET].mountPoint))) {
if (virCgroupCpuSetInherit(parent, group) < 0) {
VIR_FREE(path);
goto cleanup;
if ((flags & VIR_CGROUP_MEM_HIERACHY) &&
(group->controllers[VIR_CGROUP_CONTROLLER_MEMORY].mountPoint != NULL) &&
(i == VIR_CGROUP_CONTROLLER_MEMORY ||
- STREQ(group->controllers[i].mountPoint, group->controllers[VIR_CGROUP_CONTROLLER_MEMORY].mountPoint))) {
+ STREQ(group->controllers[i].mountPoint,
+ group->controllers[VIR_CGROUP_CONTROLLER_MEMORY].mountPoint))) {
if (virCgroupSetMemoryUseHierarchy(group) < 0) {
VIR_FREE(path);
goto cleanup;
*
* Returns 0 on success, -1 on error
*/
-static int virCgroupNew(pid_t pid,
- const char *path,
- virCgroupPtr parent,
- int controllers,
- virCgroupPtr *group)
+static int
+virCgroupNew(pid_t pid,
+ const char *path,
+ virCgroupPtr parent,
+ int controllers,
+ virCgroupPtr *group)
{
VIR_DEBUG("parent=%p path=%s controllers=%d",
parent, path, controllers);
#endif
#if defined _DIRENT_HAVE_D_TYPE
-int virCgroupRemoveRecursively(char *grppath)
+int
+virCgroupRemoveRecursively(char *grppath)
{
DIR *grpdir;
struct dirent *ent;
return rc;
}
#else
-int virCgroupRemoveRecursively(char *grppath ATTRIBUTE_UNUSED)
+int
+virCgroupRemoveRecursively(char *grppath ATTRIBUTE_UNUSED)
{
virReportSystemError(ENXIO, "%s",
_("Control groups not supported on this platform"));
}
#endif
+
/**
* virCgroupRemove:
*
*
* Returns: 0 on success
*/
-int virCgroupRemove(virCgroupPtr group)
+int
+virCgroupRemove(virCgroupPtr group)
{
int rc = 0;
size_t i;
*
* Returns: 0 on success, -1 on error
*/
-int virCgroupAddTask(virCgroupPtr group, pid_t pid)
+int
+virCgroupAddTask(virCgroupPtr group, pid_t pid)
{
int ret = -1;
size_t i;
if (i == VIR_CGROUP_CONTROLLER_SYSTEMD)
continue;
- if (virCgroupSetValueU64(group, i, "tasks", (unsigned long long)pid) < 0)
+ if (virCgroupSetValueU64(group, i, "tasks", pid) < 0)
goto cleanup;
}
return ret;
}
+
/**
* virCgroupAddTaskController:
*
*
* Returns: 0 on success or -1 on error
*/
-int virCgroupAddTaskController(virCgroupPtr group, pid_t pid, int controller)
+int
+virCgroupAddTaskController(virCgroupPtr group, pid_t pid, int controller)
{
if (controller < 0 || controller >= VIR_CGROUP_CONTROLLER_LAST) {
virReportError(VIR_ERR_INTERNAL_ERROR,
}
-static int virCgroupAddTaskStrController(virCgroupPtr group,
- const char *pidstr,
- int controller)
+static int
+virCgroupAddTaskStrController(virCgroupPtr group,
+ const char *pidstr,
+ int controller)
{
char *str = NULL, *cur = NULL, *next = NULL;
unsigned long long p = 0;
return rc;
}
+
/**
* virCgroupMoveTask:
*
*
* Returns: 0 on success or -1 on failure
*/
-int virCgroupMoveTask(virCgroupPtr src_group, virCgroupPtr dest_group)
+int
+virCgroupMoveTask(virCgroupPtr src_group, virCgroupPtr dest_group)
{
int ret = -1;
char *content = NULL;
#if defined HAVE_MNTENT_H && defined HAVE_GETMNTENT_R
-static int virCgroupPartitionNeedsEscaping(const char *path)
+static int
+virCgroupPartitionNeedsEscaping(const char *path)
{
FILE *fp = NULL;
int ret = 0;
return ret;
}
-static int virCgroupPartitionEscape(char **path)
+
+static int
+virCgroupPartitionEscape(char **path)
{
size_t len = strlen(*path) + 1;
int rc;
return 0;
}
-static int virCgroupSetPartitionSuffix(const char *path, char **res)
+
+static int
+virCgroupSetPartitionSuffix(const char *path, char **res)
{
char **tokens;
size_t i;
return ret;
}
+
/**
* virCgroupNewPartition:
* @path: path for the partition
*
* Returns 0 on success, -1 on failure
*/
-int virCgroupNewPartition(const char *path,
- bool create,
- int controllers,
- virCgroupPtr *group)
+int
+virCgroupNewPartition(const char *path,
+ bool create,
+ int controllers,
+ virCgroupPtr *group)
{
int ret = -1;
char *parentPath = NULL;
return ret;
}
#else
-int virCgroupNewPartition(const char *path ATTRIBUTE_UNUSED,
- bool create ATTRIBUTE_UNUSED,
- int controllers ATTRIBUTE_UNUSED,
- virCgroupPtr *group ATTRIBUTE_UNUSED)
+int
+virCgroupNewPartition(const char *path ATTRIBUTE_UNUSED,
+ bool create ATTRIBUTE_UNUSED,
+ int controllers ATTRIBUTE_UNUSED,
+ virCgroupPtr *group ATTRIBUTE_UNUSED)
{
virReportSystemError(ENXIO, "%s",
_("Control groups not supported on this platform"));
*
* Returns 0 on success, or -1 on error
*/
-int virCgroupNewSelf(virCgroupPtr *group)
+int
+virCgroupNewSelf(virCgroupPtr *group)
{
return virCgroupNewDetect(-1, -1, group);
}
* Returns 0 on success, or -1 on error
*/
#if defined HAVE_MNTENT_H && defined HAVE_GETMNTENT_R
-int virCgroupNewDomainPartition(virCgroupPtr partition,
- const char *driver,
- const char *name,
- bool create,
- virCgroupPtr *group)
+int
+virCgroupNewDomainPartition(virCgroupPtr partition,
+ const char *driver,
+ const char *name,
+ bool create,
+ virCgroupPtr *group)
{
int ret = -1;
char *grpname = NULL;
* a group for driver, is to avoid overhead to track
* cumulative usage that we don't need.
*/
- if (virCgroupMakeGroup(partition, *group, create, VIR_CGROUP_MEM_HIERACHY) < 0) {
+ if (virCgroupMakeGroup(partition, *group, create,
+ VIR_CGROUP_MEM_HIERACHY) < 0) {
virCgroupRemove(*group);
virCgroupFree(group);
goto cleanup;
return ret;
}
#else
-int virCgroupNewDomainPartition(virCgroupPtr partition ATTRIBUTE_UNUSED,
- const char *driver ATTRIBUTE_UNUSED,
- const char *name ATTRIBUTE_UNUSED,
- bool create ATTRIBUTE_UNUSED,
- virCgroupPtr *group ATTRIBUTE_UNUSED)
+int
+virCgroupNewDomainPartition(virCgroupPtr partition ATTRIBUTE_UNUSED,
+ const char *driver ATTRIBUTE_UNUSED,
+ const char *name ATTRIBUTE_UNUSED,
+ bool create ATTRIBUTE_UNUSED,
+ virCgroupPtr *group ATTRIBUTE_UNUSED)
{
virReportSystemError(ENXIO, "%s",
_("Control groups not supported on this platform"));
}
#endif
+
/**
* virCgroupNewVcpu:
*
* Returns 0 on success, or -1 on error
*/
#if defined HAVE_MNTENT_H && defined HAVE_GETMNTENT_R
-int virCgroupNewVcpu(virCgroupPtr domain,
- int vcpuid,
- bool create,
- virCgroupPtr *group)
+int
+virCgroupNewVcpu(virCgroupPtr domain,
+ int vcpuid,
+ bool create,
+ virCgroupPtr *group)
{
int ret = -1;
char *name = NULL;
return ret;
}
#else
-int virCgroupNewVcpu(virCgroupPtr domain ATTRIBUTE_UNUSED,
- int vcpuid ATTRIBUTE_UNUSED,
- bool create ATTRIBUTE_UNUSED,
- virCgroupPtr *group ATTRIBUTE_UNUSED)
+int
+virCgroupNewVcpu(virCgroupPtr domain ATTRIBUTE_UNUSED,
+ int vcpuid ATTRIBUTE_UNUSED,
+ bool create ATTRIBUTE_UNUSED,
+ virCgroupPtr *group ATTRIBUTE_UNUSED)
{
virReportSystemError(ENXIO, "%s",
_("Control groups not supported on this platform"));
}
#endif
+
/**
* virCgroupNewEmulator:
*
* Returns: 0 on success or -1 on error
*/
#if defined HAVE_MNTENT_H && defined HAVE_GETMNTENT_R
-int virCgroupNewEmulator(virCgroupPtr domain,
- bool create,
- virCgroupPtr *group)
+int
+virCgroupNewEmulator(virCgroupPtr domain,
+ bool create,
+ virCgroupPtr *group)
{
int ret = -1;
int controllers;
return ret;
}
#else
-int virCgroupNewEmulator(virCgroupPtr domain ATTRIBUTE_UNUSED,
- bool create ATTRIBUTE_UNUSED,
- virCgroupPtr *group ATTRIBUTE_UNUSED)
+int
+virCgroupNewEmulator(virCgroupPtr domain ATTRIBUTE_UNUSED,
+ bool create ATTRIBUTE_UNUSED,
+ virCgroupPtr *group ATTRIBUTE_UNUSED)
{
virReportSystemError(ENXIO, "%s",
_("Control groups not supported on this platform"));
#if defined HAVE_MNTENT_H && defined HAVE_GETMNTENT_R
-int virCgroupNewDetect(pid_t pid,
- int controllers,
- virCgroupPtr *group)
+int
+virCgroupNewDetect(pid_t pid,
+ int controllers,
+ virCgroupPtr *group)
{
return virCgroupNew(pid, "", NULL, controllers, group);
}
#else
-int virCgroupNewDetect(pid_t pid ATTRIBUTE_UNUSED,
- int controllers ATTRIBUTE_UNUSED,
- virCgroupPtr *group ATTRIBUTE_UNUSED)
+int
+virCgroupNewDetect(pid_t pid ATTRIBUTE_UNUSED,
+ int controllers ATTRIBUTE_UNUSED,
+ virCgroupPtr *group ATTRIBUTE_UNUSED)
{
virReportSystemError(ENXIO, "%s",
_("Control groups not supported on this platform"));
}
#endif
+
/*
* Returns 0 on success (but @group may be NULL), -1 on fatal error
*/
-int virCgroupNewDetectMachine(const char *name,
- const char *drivername,
- pid_t pid,
- const char *partition,
- int controllers,
- virCgroupPtr *group)
+int
+virCgroupNewDetectMachine(const char *name,
+ const char *drivername,
+ pid_t pid,
+ const char *partition,
+ int controllers,
+ virCgroupPtr *group)
{
if (virCgroupNewDetect(pid, controllers, group) < 0) {
if (virCgroupNewIgnoreError())
return -1;
}
- if (!virCgroupValidateMachineGroup(*group, name, drivername, partition, true)) {
+ if (!virCgroupValidateMachineGroup(*group, name, drivername, partition,
+ true)) {
VIR_DEBUG("Failed to validate machine name for '%s' driver '%s'",
name, drivername);
virCgroupFree(group);
return 0;
}
+
/*
* Returns 0 on success, -1 on fatal error, -2 on systemd not available
*/
return ret;
}
+
static int
virCgroupNewMachineManual(const char *name,
const char *drivername,
return ret;
}
-int virCgroupNewMachine(const char *name,
- const char *drivername,
- bool privileged,
- const unsigned char *uuid,
- const char *rootdir,
- pid_t pidleader,
- bool isContainer,
- const char *partition,
- int controllers,
- virCgroupPtr *group)
+
+int
+virCgroupNewMachine(const char *name,
+ const char *drivername,
+ bool privileged,
+ const unsigned char *uuid,
+ const char *rootdir,
+ pid_t pidleader,
+ bool isContainer,
+ const char *partition,
+ int controllers,
+ virCgroupPtr *group)
{
int rv;
group);
}
-bool virCgroupNewIgnoreError(void)
+
+bool
+virCgroupNewIgnoreError(void)
{
if (virLastErrorIsSystemErrno(ENXIO) ||
virLastErrorIsSystemErrno(EPERM) ||
return false;
}
+
/**
* virCgroupSetBlkioWeight:
*
*
* Returns: 0 on success, -1 on error
*/
-int virCgroupSetBlkioWeight(virCgroupPtr group, unsigned int weight)
+int
+virCgroupSetBlkioWeight(virCgroupPtr group, unsigned int weight)
{
if (weight > 1000 || weight < 100) {
virReportError(VIR_ERR_INVALID_ARG,
weight);
}
+
/**
* virCgroupGetBlkioWeight:
*
*
* Returns: 0 on success, -1 on error
*/
-int virCgroupGetBlkioWeight(virCgroupPtr group, unsigned int *weight)
+int
+virCgroupGetBlkioWeight(virCgroupPtr group, unsigned int *weight)
{
unsigned long long tmp;
int ret;
return ret;
}
+
/**
* virCgroupSetBlkioDeviceWeight:
*
* Returns: 0 on success, -1 on error
*/
#if defined(major) && defined(minor)
-int virCgroupSetBlkioDeviceWeight(virCgroupPtr group,
- const char *path,
- unsigned int weight)
+int
+virCgroupSetBlkioDeviceWeight(virCgroupPtr group,
+ const char *path,
+ unsigned int weight)
{
char *str;
struct stat sb;
}
#endif
+
/**
* virCgroupSetMemory:
*
*
* Returns: 0 on success
*/
-int virCgroupSetMemory(virCgroupPtr group, unsigned long long kb)
+int
+virCgroupSetMemory(virCgroupPtr group, unsigned long long kb)
{
unsigned long long maxkb = VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
kb << 10);
}
+
/**
* virCgroupGetMemoryUsage:
*
*
* Returns: 0 on success
*/
-int virCgroupGetMemoryUsage(virCgroupPtr group, unsigned long *kb)
+int
+virCgroupGetMemoryUsage(virCgroupPtr group, unsigned long *kb)
{
long long unsigned int usage_in_bytes;
int ret;
return ret;
}
+
/**
* virCgroupSetMemoryHardLimit:
*
*
* Returns: 0 on success
*/
-int virCgroupSetMemoryHardLimit(virCgroupPtr group, unsigned long long kb)
+int
+virCgroupSetMemoryHardLimit(virCgroupPtr group, unsigned long long kb)
{
return virCgroupSetMemory(group, kb);
}
+
/**
* virCgroupGetMemoryHardLimit:
*
*
* Returns: 0 on success
*/
-int virCgroupGetMemoryHardLimit(virCgroupPtr group, unsigned long long *kb)
+int
+virCgroupGetMemoryHardLimit(virCgroupPtr group, unsigned long long *kb)
{
long long unsigned int limit_in_bytes;
int ret;
return ret;
}
+
/**
* virCgroupSetMemorySoftLimit:
*
*
* Returns: 0 on success
*/
-int virCgroupSetMemorySoftLimit(virCgroupPtr group, unsigned long long kb)
+int
+virCgroupSetMemorySoftLimit(virCgroupPtr group, unsigned long long kb)
{
unsigned long long maxkb = VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
*
* Returns: 0 on success
*/
-int virCgroupGetMemorySoftLimit(virCgroupPtr group, unsigned long long *kb)
+int
+virCgroupGetMemorySoftLimit(virCgroupPtr group, unsigned long long *kb)
{
long long unsigned int limit_in_bytes;
int ret;
return ret;
}
+
/**
* virCgroupSetMemSwapHardLimit:
*
*
* Returns: 0 on success
*/
-int virCgroupSetMemSwapHardLimit(virCgroupPtr group, unsigned long long kb)
+int
+virCgroupSetMemSwapHardLimit(virCgroupPtr group, unsigned long long kb)
{
unsigned long long maxkb = VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
kb << 10);
}
+
/**
* virCgroupGetMemSwapHardLimit:
*
*
* Returns: 0 on success
*/
-int virCgroupGetMemSwapHardLimit(virCgroupPtr group, unsigned long long *kb)
+int
+virCgroupGetMemSwapHardLimit(virCgroupPtr group, unsigned long long *kb)
{
long long unsigned int limit_in_bytes;
int ret;
return ret;
}
+
/**
* virCgroupGetMemSwapUsage:
*
*
* Returns: 0 on success
*/
-int virCgroupGetMemSwapUsage(virCgroupPtr group, unsigned long long *kb)
+int
+virCgroupGetMemSwapUsage(virCgroupPtr group, unsigned long long *kb)
{
long long unsigned int usage_in_bytes;
int ret;
return ret;
}
+
/**
* virCgroupSetCpusetMems:
*
*
* Returns: 0 on success
*/
-int virCgroupSetCpusetMems(virCgroupPtr group, const char *mems)
+int
+virCgroupSetCpusetMems(virCgroupPtr group, const char *mems)
{
return virCgroupSetValueStr(group,
VIR_CGROUP_CONTROLLER_CPUSET,
mems);
}
+
/**
* virCgroupGetCpusetMems:
*
*
* Returns: 0 on success
*/
-int virCgroupGetCpusetMems(virCgroupPtr group, char **mems)
+int
+virCgroupGetCpusetMems(virCgroupPtr group, char **mems)
{
return virCgroupGetValueStr(group,
VIR_CGROUP_CONTROLLER_CPUSET,
mems);
}
+
/**
* virCgroupSetCpusetCpus:
*
*
* Retuens: 0 on success
*/
-int virCgroupSetCpusetCpus(virCgroupPtr group, const char *cpus)
+int
+virCgroupSetCpusetCpus(virCgroupPtr group, const char *cpus)
{
return virCgroupSetValueStr(group,
VIR_CGROUP_CONTROLLER_CPUSET,
cpus);
}
+
/**
* virCgroupGetCpusetCpus:
*
*
* Retuens: 0 on success
*/
-int virCgroupGetCpusetCpus(virCgroupPtr group, char **cpus)
+int
+virCgroupGetCpusetCpus(virCgroupPtr group, char **cpus)
{
return virCgroupGetValueStr(group,
VIR_CGROUP_CONTROLLER_CPUSET,
cpus);
}
+
/**
* virCgroupDenyAllDevices:
*
*
* Returns: 0 on success
*/
-int virCgroupDenyAllDevices(virCgroupPtr group)
+int
+virCgroupDenyAllDevices(virCgroupPtr group)
{
return virCgroupSetValueStr(group,
VIR_CGROUP_CONTROLLER_DEVICES,
"a");
}
+
/**
* virCgroupAllowDevice:
*
*
* Returns: 0 on success
*/
-int virCgroupAllowDevice(virCgroupPtr group, char type, int major, int minor,
- int perms)
+int
+virCgroupAllowDevice(virCgroupPtr group, char type, int major, int minor,
+ int perms)
{
int ret = -1;
char *devstr = NULL;
return ret;
}
+
/**
* virCgroupAllowDeviceMajor:
*
*
* Returns: 0 on success
*/
-int virCgroupAllowDeviceMajor(virCgroupPtr group, char type, int major,
- int perms)
+int
+virCgroupAllowDeviceMajor(virCgroupPtr group, char type, int major,
+ int perms)
{
int ret = -1;
char *devstr = NULL;
return ret;
}
+
/**
* virCgroupAllowDevicePath:
*
* -1 on error
*/
#if defined(major) && defined(minor)
-int virCgroupAllowDevicePath(virCgroupPtr group, const char *path, int perms)
+int
+virCgroupAllowDevicePath(virCgroupPtr group, const char *path, int perms)
{
struct stat sb;
perms);
}
#else
-int virCgroupAllowDevicePath(virCgroupPtr group ATTRIBUTE_UNUSED,
- const char *path ATTRIBUTE_UNUSED,
- int perms ATTRIBUTE_UNUSED)
+int
+virCgroupAllowDevicePath(virCgroupPtr group ATTRIBUTE_UNUSED,
+ const char *path ATTRIBUTE_UNUSED,
+ int perms ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Control groups not supported on this platform"));
*
* Returns: 0 on success
*/
-int virCgroupDenyDevice(virCgroupPtr group, char type, int major, int minor,
- int perms)
+int
+virCgroupDenyDevice(virCgroupPtr group, char type, int major, int minor,
+ int perms)
{
int ret = -1;
char *devstr = NULL;
return ret;
}
+
/**
* virCgroupDenyDeviceMajor:
*
*
* Returns: 0 on success
*/
-int virCgroupDenyDeviceMajor(virCgroupPtr group, char type, int major,
- int perms)
+int
+virCgroupDenyDeviceMajor(virCgroupPtr group, char type, int major,
+ int perms)
{
int ret = -1;
char *devstr = NULL;
return ret;
}
+
#if defined(major) && defined(minor)
-int virCgroupDenyDevicePath(virCgroupPtr group, const char *path, int perms)
+int
+virCgroupDenyDevicePath(virCgroupPtr group, const char *path, int perms)
{
struct stat sb;
perms);
}
#else
-int virCgroupDenyDevicePath(virCgroupPtr group ATTRIBUTE_UNUSED,
- const char *path ATTRIBUTE_UNUSED,
- int perms ATTRIBUTE_UNUSED)
+int
+virCgroupDenyDevicePath(virCgroupPtr group ATTRIBUTE_UNUSED,
+ const char *path ATTRIBUTE_UNUSED,
+ int perms ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Control groups not supported on this platform"));
}
#endif
-int virCgroupSetCpuShares(virCgroupPtr group, unsigned long long shares)
+
+int
+virCgroupSetCpuShares(virCgroupPtr group, unsigned long long shares)
{
return virCgroupSetValueU64(group,
VIR_CGROUP_CONTROLLER_CPU,
"cpu.shares", shares);
}
-int virCgroupGetCpuShares(virCgroupPtr group, unsigned long long *shares)
+
+int
+virCgroupGetCpuShares(virCgroupPtr group, unsigned long long *shares)
{
return virCgroupGetValueU64(group,
VIR_CGROUP_CONTROLLER_CPU,
"cpu.shares", shares);
}
+
/**
* virCgroupSetCpuCfsPeriod:
*
*
* Returns: 0 on success
*/
-int virCgroupSetCpuCfsPeriod(virCgroupPtr group, unsigned long long cfs_period)
+int
+virCgroupSetCpuCfsPeriod(virCgroupPtr group, unsigned long long cfs_period)
{
/* The cfs_period shoule be greater or equal than 1ms, and less or equal
* than 1s.
"cpu.cfs_period_us", cfs_period);
}
+
/**
* virCgroupGetCpuCfsPeriod:
*
*
* Returns: 0 on success
*/
-int virCgroupGetCpuCfsPeriod(virCgroupPtr group, unsigned long long *cfs_period)
+int
+virCgroupGetCpuCfsPeriod(virCgroupPtr group, unsigned long long *cfs_period)
{
return virCgroupGetValueU64(group,
VIR_CGROUP_CONTROLLER_CPU,
"cpu.cfs_period_us", cfs_period);
}
+
/**
* virCgroupSetCpuCfsQuota:
*
*
* Returns: 0 on success
*/
-int virCgroupSetCpuCfsQuota(virCgroupPtr group, long long cfs_quota)
+int
+virCgroupSetCpuCfsQuota(virCgroupPtr group, long long cfs_quota)
{
/* The cfs_quota should be greater or equal than 1ms */
if (cfs_quota >= 0 &&
"cpu.cfs_quota_us", cfs_quota);
}
+
/**
* virCgroupGetCpuCfsQuota:
*
*
* Returns: 0 on success
*/
-int virCgroupGetCpuCfsQuota(virCgroupPtr group, long long *cfs_quota)
+int
+virCgroupGetCpuCfsQuota(virCgroupPtr group, long long *cfs_quota)
{
return virCgroupGetValueI64(group,
VIR_CGROUP_CONTROLLER_CPU,
"cpu.cfs_quota_us", cfs_quota);
}
-int virCgroupGetCpuacctUsage(virCgroupPtr group, unsigned long long *usage)
+
+int
+virCgroupGetCpuacctUsage(virCgroupPtr group, unsigned long long *usage)
{
return virCgroupGetValueU64(group,
VIR_CGROUP_CONTROLLER_CPUACCT,
"cpuacct.usage", usage);
}
-int virCgroupGetCpuacctPercpuUsage(virCgroupPtr group, char **usage)
+
+int
+virCgroupGetCpuacctPercpuUsage(virCgroupPtr group, char **usage)
{
return virCgroupGetValueStr(group, VIR_CGROUP_CONTROLLER_CPUACCT,
"cpuacct.usage_percpu", usage);
}
+
#ifdef _SC_CLK_TCK
-int virCgroupGetCpuacctStat(virCgroupPtr group, unsigned long long *user,
- unsigned long long *sys)
+int
+virCgroupGetCpuacctStat(virCgroupPtr group, unsigned long long *user,
+ unsigned long long *sys)
{
char *str;
char *p;
return ret;
}
#else
-int virCgroupGetCpuacctStat(virCgroupPtr group ATTRIBUTE_UNUSED,
- unsigned long long *user ATTRIBUTE_UNUSED,
- unsigned long long *sys ATTRIBUTE_UNUSED)
+int
+virCgroupGetCpuacctStat(virCgroupPtr group ATTRIBUTE_UNUSED,
+ unsigned long long *user ATTRIBUTE_UNUSED,
+ unsigned long long *sys ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Control groups not supported on this platform"));
}
#endif
-int virCgroupSetFreezerState(virCgroupPtr group, const char *state)
+
+int
+virCgroupSetFreezerState(virCgroupPtr group, const char *state)
{
return virCgroupSetValueStr(group,
VIR_CGROUP_CONTROLLER_FREEZER,
"freezer.state", state);
}
-int virCgroupGetFreezerState(virCgroupPtr group, char **state)
+
+int
+virCgroupGetFreezerState(virCgroupPtr group, char **state)
{
return virCgroupGetValueStr(group,
VIR_CGROUP_CONTROLLER_FREEZER,
/*
* Returns 1 if some PIDs are killed, 0 if none are killed, or -1 on error
*/
-static int virCgroupKillInternal(virCgroupPtr group, int signum, virHashTablePtr pids)
+static int
+virCgroupKillInternal(virCgroupPtr group, int signum, virHashTablePtr pids)
{
int ret = -1;
bool killedAny = false;
}
-static uint32_t virCgroupPidCode(const void *name, uint32_t seed)
+static uint32_t
+virCgroupPidCode(const void *name, uint32_t seed)
{
unsigned long pid_value = (unsigned long)(intptr_t)name;
return virHashCodeGen(&pid_value, sizeof(pid_value), seed);
}
-static bool virCgroupPidEqual(const void *namea, const void *nameb)
+
+
+static bool
+virCgroupPidEqual(const void *namea, const void *nameb)
{
return namea == nameb;
}
-static void *virCgroupPidCopy(const void *name)
+
+
+static void *
+virCgroupPidCopy(const void *name)
{
return (void*)name;
}
+
/*
* Returns 1 if some PIDs are killed, 0 if none are killed, or -1 on error
*/
-int virCgroupKill(virCgroupPtr group, int signum)
+int
+virCgroupKill(virCgroupPtr group, int signum)
{
VIR_DEBUG("group=%p path=%s signum=%d", group, group->path, signum);
int ret;
}
-static int virCgroupKillRecursiveInternal(virCgroupPtr group, int signum, virHashTablePtr pids, bool dormdir)
+static int
+virCgroupKillRecursiveInternal(virCgroupPtr group,
+ int signum,
+ virHashTablePtr pids,
+ bool dormdir)
{
int ret = -1;
int rc;
DIR *dp;
virCgroupPtr subgroup = NULL;
struct dirent *ent;
- VIR_DEBUG("group=%p path=%s signum=%d pids=%p", group, group->path, signum, pids);
+ VIR_DEBUG("group=%p path=%s signum=%d pids=%p",
+ group, group->path, signum, pids);
if (virCgroupPathOfController(group, -1, "", &keypath) < 0)
return -1;
if (virCgroupNew(-1, ent->d_name, group, -1, &subgroup) < 0)
goto cleanup;
- if ((rc = virCgroupKillRecursiveInternal(subgroup, signum, pids, true)) < 0)
+ if ((rc = virCgroupKillRecursiveInternal(subgroup, signum, pids,
+ true)) < 0)
goto cleanup;
if (rc == 1)
killedAny = true;
return ret;
}
-int virCgroupKillRecursive(virCgroupPtr group, int signum)
+
+int
+virCgroupKillRecursive(virCgroupPtr group, int signum)
{
int ret;
VIR_DEBUG("group=%p path=%s signum=%d", group, group->path, signum);
}
-int virCgroupKillPainfully(virCgroupPtr group)
+int
+virCgroupKillPainfully(virCgroupPtr group)
{
size_t i;
int ret;
}
#else /* !(HAVE_KILL, HAVE_MNTENT_H, HAVE_GETMNTENT_R) */
-int virCgroupKill(virCgroupPtr group ATTRIBUTE_UNUSED,
- int signum ATTRIBUTE_UNUSED)
+int
+virCgroupKill(virCgroupPtr group ATTRIBUTE_UNUSED,
+ int signum ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Control groups not supported on this platform"));
return -1;
}
-int virCgroupKillRecursive(virCgroupPtr group ATTRIBUTE_UNUSED,
- int signum ATTRIBUTE_UNUSED)
+
+
+int
+virCgroupKillRecursive(virCgroupPtr group ATTRIBUTE_UNUSED,
+ int signum ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Control groups not supported on this platform"));
return -1;
}
-int virCgroupKillPainfully(virCgroupPtr group ATTRIBUTE_UNUSED)
+
+int
+virCgroupKillPainfully(virCgroupPtr group ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Control groups not supported on this platform"));
}
#endif /* HAVE_KILL, HAVE_MNTENT_H, HAVE_GETMNTENT_R */
+
#ifdef __linux__
-static char *virCgroupIdentifyRoot(virCgroupPtr group)
+static char *
+virCgroupIdentifyRoot(virCgroupPtr group)
{
char *ret = NULL;
size_t i;
}
-int virCgroupIsolateMount(virCgroupPtr group, const char *oldroot,
- const char *mountopts)
+int
+virCgroupIsolateMount(virCgroupPtr group, const char *oldroot,
+ const char *mountopts)
{
int ret = -1;
size_t i;
group->controllers[i].placement) < 0)
goto cleanup;
- VIR_DEBUG("Create mount point '%s'", group->controllers[i].mountPoint);
+ VIR_DEBUG("Create mount point '%s'",
+ group->controllers[i].mountPoint);
if (virFileMakePath(group->controllers[i].mountPoint) < 0) {
virReportSystemError(errno,
_("Unable to create directory %s"),
goto cleanup;
}
- if (mount(src, group->controllers[i].mountPoint, NULL, MS_BIND, NULL) < 0) {
+ if (mount(src, group->controllers[i].mountPoint, NULL, MS_BIND,
+ NULL) < 0) {
virReportSystemError(errno,
_("Failed to bind cgroup '%s' on '%s'"),
src, group->controllers[i].mountPoint);
return ret;
}
#else /* __linux__ */
-int virCgroupIsolateMount(virCgroupPtr group ATTRIBUTE_UNUSED,
- const char *oldroot ATTRIBUTE_UNUSED,
- const char *mountopts ATTRIBUTE_UNUSED)
+int
+virCgroupIsolateMount(virCgroupPtr group ATTRIBUTE_UNUSED,
+ const char *oldroot ATTRIBUTE_UNUSED,
+ const char *mountopts ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s",
_("Control groups not supported on this platform"));