mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-25 15:15:25 +00:00
xen: reduce callback special cases
The callback struct is great when iterating through several possibilities, but when calling a known callback, it's just overhead. We can make the direct call in those cases. * src/xen/xen_driver.c (xenUnifiedOpen, xenUnifiedDomainSuspend) (xenUnifiedDomainResume, xenUnifiedDomainDestroyFlags): Make direct calls instead of going through callback.
This commit is contained in:
parent
f859919fed
commit
03e5f8bbbf
@ -351,8 +351,7 @@ xenUnifiedOpen (virConnectPtr conn, virConnectAuthPtr auth, unsigned int flags)
|
|||||||
/* Hypervisor is only run with privilege & required to succeed */
|
/* Hypervisor is only run with privilege & required to succeed */
|
||||||
if (xenHavePrivilege()) {
|
if (xenHavePrivilege()) {
|
||||||
VIR_DEBUG("Trying hypervisor sub-driver");
|
VIR_DEBUG("Trying hypervisor sub-driver");
|
||||||
if (drivers[XEN_UNIFIED_HYPERVISOR_OFFSET]->xenOpen(conn, auth, flags) ==
|
if (xenHypervisorOpen(conn, auth, flags) == VIR_DRV_OPEN_SUCCESS) {
|
||||||
VIR_DRV_OPEN_SUCCESS) {
|
|
||||||
VIR_DEBUG("Activated hypervisor sub-driver");
|
VIR_DEBUG("Activated hypervisor sub-driver");
|
||||||
priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] = 1;
|
priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] = 1;
|
||||||
}
|
}
|
||||||
@ -360,8 +359,7 @@ xenUnifiedOpen (virConnectPtr conn, virConnectAuthPtr auth, unsigned int flags)
|
|||||||
|
|
||||||
/* XenD is required to succeed if privileged */
|
/* XenD is required to succeed if privileged */
|
||||||
VIR_DEBUG("Trying XenD sub-driver");
|
VIR_DEBUG("Trying XenD sub-driver");
|
||||||
if (drivers[XEN_UNIFIED_XEND_OFFSET]->xenOpen(conn, auth, flags) ==
|
if (xenDaemonOpen(conn, auth, flags) == VIR_DRV_OPEN_SUCCESS) {
|
||||||
VIR_DRV_OPEN_SUCCESS) {
|
|
||||||
VIR_DEBUG("Activated XenD sub-driver");
|
VIR_DEBUG("Activated XenD sub-driver");
|
||||||
priv->opened[XEN_UNIFIED_XEND_OFFSET] = 1;
|
priv->opened[XEN_UNIFIED_XEND_OFFSET] = 1;
|
||||||
|
|
||||||
@ -369,15 +367,13 @@ xenUnifiedOpen (virConnectPtr conn, virConnectAuthPtr auth, unsigned int flags)
|
|||||||
* succeed if root, optional otherwise */
|
* succeed if root, optional otherwise */
|
||||||
if (priv->xendConfigVersion <= 2) {
|
if (priv->xendConfigVersion <= 2) {
|
||||||
VIR_DEBUG("Trying XM sub-driver");
|
VIR_DEBUG("Trying XM sub-driver");
|
||||||
if (drivers[XEN_UNIFIED_XM_OFFSET]->xenOpen(conn, auth, flags) ==
|
if (xenXMOpen(conn, auth, flags) == VIR_DRV_OPEN_SUCCESS) {
|
||||||
VIR_DRV_OPEN_SUCCESS) {
|
|
||||||
VIR_DEBUG("Activated XM sub-driver");
|
VIR_DEBUG("Activated XM sub-driver");
|
||||||
priv->opened[XEN_UNIFIED_XM_OFFSET] = 1;
|
priv->opened[XEN_UNIFIED_XM_OFFSET] = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VIR_DEBUG("Trying XS sub-driver");
|
VIR_DEBUG("Trying XS sub-driver");
|
||||||
if (drivers[XEN_UNIFIED_XS_OFFSET]->xenOpen(conn, auth, flags) ==
|
if (xenStoreOpen(conn, auth, flags) == VIR_DRV_OPEN_SUCCESS) {
|
||||||
VIR_DRV_OPEN_SUCCESS) {
|
|
||||||
VIR_DEBUG("Activated XS sub-driver");
|
VIR_DEBUG("Activated XS sub-driver");
|
||||||
priv->opened[XEN_UNIFIED_XS_OFFSET] = 1;
|
priv->opened[XEN_UNIFIED_XS_OFFSET] = 1;
|
||||||
} else {
|
} else {
|
||||||
@ -404,8 +400,7 @@ xenUnifiedOpen (virConnectPtr conn, virConnectAuthPtr auth, unsigned int flags)
|
|||||||
#if WITH_XEN_INOTIFY
|
#if WITH_XEN_INOTIFY
|
||||||
if (xenHavePrivilege()) {
|
if (xenHavePrivilege()) {
|
||||||
VIR_DEBUG("Trying Xen inotify sub-driver");
|
VIR_DEBUG("Trying Xen inotify sub-driver");
|
||||||
if (drivers[XEN_UNIFIED_INOTIFY_OFFSET]->xenOpen(conn, auth, flags) ==
|
if (xenInotifyOpen(conn, auth, flags) == VIR_DRV_OPEN_SUCCESS) {
|
||||||
VIR_DRV_OPEN_SUCCESS) {
|
|
||||||
VIR_DEBUG("Activated Xen inotify sub-driver");
|
VIR_DEBUG("Activated Xen inotify sub-driver");
|
||||||
priv->opened[XEN_UNIFIED_INOTIFY_OFFSET] = 1;
|
priv->opened[XEN_UNIFIED_INOTIFY_OFFSET] = 1;
|
||||||
}
|
}
|
||||||
@ -840,8 +835,7 @@ xenUnifiedDomainSuspend (virDomainPtr dom)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] &&
|
if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] &&
|
||||||
drivers[XEN_UNIFIED_HYPERVISOR_OFFSET]->xenDomainSuspend &&
|
xenHypervisorPauseDomain(dom) == 0)
|
||||||
drivers[XEN_UNIFIED_HYPERVISOR_OFFSET]->xenDomainSuspend (dom) == 0)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
@ -864,8 +858,7 @@ xenUnifiedDomainResume (virDomainPtr dom)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] &&
|
if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] &&
|
||||||
drivers[XEN_UNIFIED_HYPERVISOR_OFFSET]->xenDomainResume &&
|
xenHypervisorResumeDomain(dom) == 0)
|
||||||
drivers[XEN_UNIFIED_HYPERVISOR_OFFSET]->xenDomainResume (dom) == 0)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
@ -921,9 +914,7 @@ xenUnifiedDomainDestroyFlags(virDomainPtr dom,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] &&
|
if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET] &&
|
||||||
drivers[XEN_UNIFIED_HYPERVISOR_OFFSET]->xenDomainDestroyFlags&&
|
xenHypervisorDestroyDomainFlags(dom, flags) == 0)
|
||||||
drivers[XEN_UNIFIED_HYPERVISOR_OFFSET]->xenDomainDestroyFlags(dom,
|
|
||||||
flags) == 0)
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user