mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
Add object event namespaces for the event IDs
Each unique event ID will thus be composed by 1 byte for the namespace and 1 byte for a namespace-specific ID. The namespace for domain event needs to be 0 for compatibility reasons.
This commit is contained in:
parent
67d91cb2bd
commit
abb65994b7
@ -1912,11 +1912,17 @@ virObjectEventStateDispatchFunc(virConnectPtr conn,
|
|||||||
void *opaque)
|
void *opaque)
|
||||||
{
|
{
|
||||||
virObjectEventStatePtr state = opaque;
|
virObjectEventStatePtr state = opaque;
|
||||||
|
virEventNamespaceID namespace = (event->eventID & 0xFF00) >> 8;
|
||||||
|
|
||||||
/* Drop the lock whle dispatching, for sake of re-entrancy */
|
/* Drop the lock whle dispatching, for sake of re-entrancy */
|
||||||
virObjectEventStateUnlock(state);
|
virObjectEventStateUnlock(state);
|
||||||
|
switch (namespace)
|
||||||
|
{
|
||||||
|
case VIR_EVENT_NAMESPACE_DOMAIN:
|
||||||
virDomainEventDispatchDefaultFunc(conn, event,
|
virDomainEventDispatchDefaultFunc(conn, event,
|
||||||
VIR_DOMAIN_EVENT_CALLBACK(cb), cbopaque, NULL);
|
VIR_DOMAIN_EVENT_CALLBACK(cb), cbopaque, NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
virObjectEventStateLock(state);
|
virObjectEventStateLock(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,14 @@
|
|||||||
|
|
||||||
# include "domain_conf.h"
|
# include "domain_conf.h"
|
||||||
|
|
||||||
|
|
||||||
|
/** Event IDs are computed in the following way:
|
||||||
|
virEventNamespaceID << 8 + vir*EventId
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
VIR_EVENT_NAMESPACE_DOMAIN = 0, /* 0 to keep value of virDomainEventId unchanged */
|
||||||
|
} virEventNamespaceID;
|
||||||
|
|
||||||
typedef struct _virObjectEventCallback virObjectEventCallback;
|
typedef struct _virObjectEventCallback virObjectEventCallback;
|
||||||
typedef virObjectEventCallback *virObjectEventCallbackPtr;
|
typedef virObjectEventCallback *virObjectEventCallbackPtr;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user