Implements virDomainSetBlkioParameters and virDomainGetBlkioParameters and initialization
Signed-off-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
virMemoryParameterPtr params,
int *nparams,
unsigned int flags);
+typedef int
+ (*virDrvDomainSetBlkioParameters)
+ (virDomainPtr domain,
+ virBlkioParameterPtr params,
+ int nparams,
+ unsigned int flags);
+typedef int
+ (*virDrvDomainGetBlkioParameters)
+ (virDomainPtr domain,
+ virBlkioParameterPtr params,
+ int *nparams,
+ unsigned int flags);
typedef int
(*virDrvDomainGetInfo) (virDomainPtr domain,
virDomainInfoPtr info);
virDrvDomainSetMaxMemory domainSetMaxMemory;
virDrvDomainSetMemory domainSetMemory;
virDrvDomainSetMemoryFlags domainSetMemoryFlags;
+ virDrvDomainSetMemoryParameters domainSetMemoryParameters;
+ virDrvDomainGetMemoryParameters domainGetMemoryParameters;
+ virDrvDomainSetBlkioParameters domainSetBlkioParameters;
+ virDrvDomainGetBlkioParameters domainGetBlkioParameters;
virDrvDomainGetInfo domainGetInfo;
virDrvDomainSave domainSave;
virDrvDomainRestore domainRestore;
virDrvDomainRevertToSnapshot domainRevertToSnapshot;
virDrvDomainSnapshotDelete domainSnapshotDelete;
virDrvQemuDomainMonitorCommand qemuDomainMonitorCommand;
- virDrvDomainSetMemoryParameters domainSetMemoryParameters;
- virDrvDomainGetMemoryParameters domainGetMemoryParameters;
virDrvDomainOpenConsole domainOpenConsole;
};
esxDomainSetMaxMemory, /* domainSetMaxMemory */
esxDomainSetMemory, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ esxDomainSetMemoryParameters, /* domainSetMemoryParameters */
+ esxDomainGetMemoryParameters, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
esxDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
esxDomainRevertToSnapshot, /* domainRevertToSnapshot */
esxDomainSnapshotDelete, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- esxDomainSetMemoryParameters, /* domainSetMemoryParameters */
- esxDomainGetMemoryParameters, /* domainGetMemoryParameters */
NULL, /* domainOpenConsole */
};
return -1;
}
-
/**
* virDomainSetMemoryParameters:
* @domain: pointer to domain object
return -1;
}
+/**
+ * virDomainSetBlkioParameters:
+ * @domain: pointer to domain object
+ * @params: pointer to blkio parameter objects
+ * @nparams: number of blkio parameters (this value should be same or
+ * less than the number of parameters supported)
+ * @flags: currently unused, for future extension
+ *
+ * Change the blkio tunables
+ * This function requires privileged access to the hypervisor.
+ *
+ * Returns -1 in case of error, 0 in case of success.
+ */
+int
+virDomainSetBlkioParameters(virDomainPtr domain,
+ virBlkioParameterPtr params,
+ int nparams, unsigned int flags)
+{
+ virConnectPtr conn;
+
+ VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u",
+ params, nparams, flags);
+
+ virResetLastError();
+
+ if (!VIR_IS_CONNECTED_DOMAIN(domain)) {
+ virLibDomainError(VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
+ virDispatchError(NULL);
+ return -1;
+ }
+ if (domain->conn->flags & VIR_CONNECT_RO) {
+ virLibDomainError(VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ goto error;
+ }
+ if ((nparams <= 0) || (params == NULL)) {
+ virLibDomainError(VIR_ERR_INVALID_ARG, __FUNCTION__);
+ goto error;
+ }
+ conn = domain->conn;
+
+ if (conn->driver->domainSetBlkioParameters) {
+ int ret;
+ ret = conn->driver->domainSetBlkioParameters (domain, params, nparams, flags);
+ if (ret < 0)
+ goto error;
+ return ret;
+ }
+
+ virLibConnError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+ virDispatchError(domain->conn);
+ return -1;
+}
+
+/**
+ * virDomainGetBlkioParameters:
+ * @domain: pointer to domain object
+ * @params: pointer to blkio parameter object
+ * (return value, allocated by the caller)
+ * @nparams: pointer to number of blkio parameters
+ * @flags: currently unused, for future extension
+ *
+ * Get the blkio parameters, the @params array will be filled with the values
+ * equal to the number of parameters suggested by @nparams
+ *
+ * This function requires privileged access to the hypervisor. This function
+ * expects the caller to allocate the @params.
+ *
+ * Returns -1 in case of error, 0 in case of success.
+ */
+int
+virDomainGetBlkioParameters(virDomainPtr domain,
+ virBlkioParameterPtr params,
+ int *nparams, unsigned int flags)
+{
+ virConnectPtr conn;
+
+ VIR_DOMAIN_DEBUG(domain, "params=%p, nparams=%d, flags=%u",
+ params, (nparams) ? *nparams : -1, flags);
+
+ virResetLastError();
+
+ if (!VIR_IS_CONNECTED_DOMAIN(domain)) {
+ virLibDomainError(VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
+ virDispatchError(NULL);
+ return -1;
+ }
+ if ((nparams == NULL) || (*nparams < 0)) {
+ virLibDomainError(VIR_ERR_INVALID_ARG, __FUNCTION__);
+ goto error;
+ }
+ conn = domain->conn;
+
+ if (conn->driver->domainGetBlkioParameters) {
+ int ret;
+ ret = conn->driver->domainGetBlkioParameters (domain, params, nparams, flags);
+ if (ret < 0)
+ goto error;
+ return ret;
+ }
+ virLibConnError (VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+ virDispatchError(domain->conn);
+ return -1;
+}
+
/**
* virDomainGetInfo:
* @domain: a domain object
LIBVIRT_0.9.0 {
global:
+ virDomainGetBlkioParameters;
+ virDomainSetBlkioParameters;
virDomainSetMemoryFlags;
virEventRegisterDefaultImpl;
virEventRunDefaultImpl;
lxcDomainSetMaxMemory, /* domainSetMaxMemory */
lxcDomainSetMemory, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ lxcDomainSetMemoryParameters, /* domainSetMemoryParameters */
+ lxcDomainGetMemoryParameters, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
lxcDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- lxcDomainSetMemoryParameters, /* domainSetMemoryParameters */
- lxcDomainGetMemoryParameters, /* domainGetMemoryParameters */
lxcDomainOpenConsole, /* domainOpenConsole */
};
NULL, /* domainSetMaxMemory */
NULL, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
oneDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- NULL, /* domainSetMemoryParameters */
- NULL, /* domainGetMemoryParameters */
NULL, /* domainOpenConsole */
};
NULL, /* domainSetMaxMemory */
NULL, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
openvzDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- NULL, /* domainSetMemoryParameters */
- NULL, /* domainGetMemoryParameters */
NULL, /* domainOpenConsole */
};
NULL, /* domainSetMaxMemory */
NULL, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
phypDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuMonitorCommand */
- NULL, /* domainSetMemoryParameters */
- NULL, /* domainGetMemoryParameters */
NULL, /* domainOpenConsole */
};
NULL, /* domainSetMaxMemory */
qemudDomainSetMemory, /* domainSetMemory */
qemudDomainSetMemoryFlags, /* domainSetMemoryFlags */
+ qemuDomainSetMemoryParameters, /* domainSetMemoryParameters */
+ qemuDomainGetMemoryParameters, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
qemudDomainGetInfo, /* domainGetInfo */
qemudDomainSave, /* domainSave */
qemudDomainRestore, /* domainRestore */
qemuDomainRevertToSnapshot, /* domainRevertToSnapshot */
qemuDomainSnapshotDelete, /* domainSnapshotDelete */
qemuDomainMonitorCommand, /* qemuDomainMonitorCommand */
- qemuDomainSetMemoryParameters, /* domainSetMemoryParameters */
- qemuDomainGetMemoryParameters, /* domainGetMemoryParameters */
qemuDomainOpenConsole, /* domainOpenConsole */
};
remoteDomainSetMaxMemory, /* domainSetMaxMemory */
remoteDomainSetMemory, /* domainSetMemory */
remoteDomainSetMemoryFlags, /* domainSetMemoryFlags */
+ remoteDomainSetMemoryParameters, /* domainSetMemoryParameters */
+ remoteDomainGetMemoryParameters, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
remoteDomainGetInfo, /* domainGetInfo */
remoteDomainSave, /* domainSave */
remoteDomainRestore, /* domainRestore */
remoteDomainRevertToSnapshot, /* domainRevertToSnapshot */
remoteDomainSnapshotDelete, /* domainSnapshotDelete */
remoteQemuDomainMonitorCommand, /* qemuDomainMonitorCommand */
- remoteDomainSetMemoryParameters, /* domainSetMemoryParameters */
- remoteDomainGetMemoryParameters, /* domainGetMemoryParameters */
remoteDomainOpenConsole, /* domainOpenConsole */
};
testSetMaxMemory, /* domainSetMaxMemory */
testSetMemory, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
testGetDomainInfo, /* domainGetInfo */
testDomainSave, /* domainSave */
testDomainRestore, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- NULL, /* domainSetMemoryParameters */
- NULL, /* domainGetMemoryParameters */
NULL, /* domainOpenConsole */
};
umlDomainSetMaxMemory, /* domainSetMaxMemory */
umlDomainSetMemory, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
umlDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- NULL, /* domainSetMemoryParamters */
- NULL, /* domainGetMemoryParamters */
umlDomainOpenConsole, /* domainOpenConsole */
};
NULL, /* domainSetMaxMemory */
vboxDomainSetMemory, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
vboxDomainGetInfo, /* domainGetInfo */
vboxDomainSave, /* domainSave */
NULL, /* domainRestore */
vboxDomainRevertToSnapshot, /* domainRevertToSnapshot */
vboxDomainSnapshotDelete, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- NULL, /* domainSetMemoryParameters */
- NULL, /* domainGetMemoryParameters */
NULL, /* domainOpenConsole */
};
NULL, /* domainSetMaxMemory */
NULL, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
vmwareDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- NULL, /* domainSetMemoryParameters */
- NULL, /* domainGetMemoryParameters */
NULL, /* domainOpenConsole */
};
xenUnifiedDomainSetMaxMemory, /* domainSetMaxMemory */
xenUnifiedDomainSetMemory, /* domainSetMemory */
NULL, /*domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
xenUnifiedDomainGetInfo, /* domainGetInfo */
xenUnifiedDomainSave, /* domainSave */
xenUnifiedDomainRestore, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- NULL, /* domainSetMemoryParameters */
- NULL, /* domainGetMemoryParameters */
xenUnifiedDomainOpenConsole, /* domainOpenConsole */
};
xenapiDomainSetMaxMemory, /* domainSetMaxMemory */
NULL, /* domainSetMemory */
NULL, /* domainSetMemoryFlags */
+ NULL, /* domainSetMemoryParameters */
+ NULL, /* domainGetMemoryParameters */
+ NULL, /* domainSetBlkioParameters */
+ NULL, /* domainGetBlkioParameters */
xenapiDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
NULL, /* domainRevertToSnapshot */
NULL, /* domainSnapshotDelete */
NULL, /* qemuDomainMonitorCommand */
- NULL, /* domainSetMemoryParameters */
- NULL, /* domainGetMemoryParameters */
NULL, /* domainOpenConsole */
};