mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Separate out StateAutoStart from StateInitialize
Separation allows for dependent drivers to be make a connection during the AutoStart phase of state initialization.
This commit is contained in:
parent
99d3a60b1f
commit
e4a969092b
@ -1800,6 +1800,9 @@ typedef int
|
|||||||
virStateInhibitCallback callback,
|
virStateInhibitCallback callback,
|
||||||
void *opaque);
|
void *opaque);
|
||||||
|
|
||||||
|
typedef void
|
||||||
|
(*virDrvStateAutoStart)(void);
|
||||||
|
|
||||||
typedef int
|
typedef int
|
||||||
(*virDrvStateCleanup)(void);
|
(*virDrvStateCleanup)(void);
|
||||||
|
|
||||||
@ -1815,6 +1818,7 @@ typedef virStateDriver *virStateDriverPtr;
|
|||||||
struct _virStateDriver {
|
struct _virStateDriver {
|
||||||
const char *name;
|
const char *name;
|
||||||
virDrvStateInitialize stateInitialize;
|
virDrvStateInitialize stateInitialize;
|
||||||
|
virDrvStateAutoStart stateAutoStart;
|
||||||
virDrvStateCleanup stateCleanup;
|
virDrvStateCleanup stateCleanup;
|
||||||
virDrvStateReload stateReload;
|
virDrvStateReload stateReload;
|
||||||
virDrvStateStop stateStop;
|
virDrvStateStop stateStop;
|
||||||
|
@ -808,7 +808,11 @@ virRegisterStateDriver(virStateDriverPtr driver)
|
|||||||
* @callback: callback to invoke to inhibit shutdown of the daemon
|
* @callback: callback to invoke to inhibit shutdown of the daemon
|
||||||
* @opaque: data to pass to @callback
|
* @opaque: data to pass to @callback
|
||||||
*
|
*
|
||||||
* Initialize all virtualization drivers.
|
* Initialize all virtualization drivers. Accomplished in two phases,
|
||||||
|
* the first being state and structure initialization followed by any
|
||||||
|
* auto start supported by the driver. This is done to ensure dependencies
|
||||||
|
* that some drivers may have on another driver having been initialized
|
||||||
|
* will exist, such as the storage driver's need to use the secret driver.
|
||||||
*
|
*
|
||||||
* Returns 0 if all succeed, -1 upon any failure.
|
* Returns 0 if all succeed, -1 upon any failure.
|
||||||
*/
|
*/
|
||||||
@ -836,6 +840,14 @@ int virStateInitialize(bool privileged,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < virStateDriverTabCount; i++) {
|
||||||
|
if (virStateDriverTab[i]->stateAutoStart) {
|
||||||
|
VIR_DEBUG("Running global auto start for %s state driver",
|
||||||
|
virStateDriverTab[i]->name);
|
||||||
|
virStateDriverTab[i]->stateAutoStart();
|
||||||
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user