mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Create virDomainEventRTCChange to get rid of the huge union
This commit is contained in:
parent
2c0008cc3e
commit
8a29ffcf9a
@ -86,9 +86,11 @@ struct _virObjectEventCallback {
|
|||||||
static virClassPtr virObjectEventClass;
|
static virClassPtr virObjectEventClass;
|
||||||
static virClassPtr virDomainEventClass;
|
static virClassPtr virDomainEventClass;
|
||||||
static virClassPtr virDomainEventLifecycleClass;
|
static virClassPtr virDomainEventLifecycleClass;
|
||||||
|
static virClassPtr virDomainEventRTCChangeClass;
|
||||||
static void virObjectEventDispose(void *obj);
|
static void virObjectEventDispose(void *obj);
|
||||||
static void virDomainEventDispose(void *obj);
|
static void virDomainEventDispose(void *obj);
|
||||||
static void virDomainEventLifecycleDispose(void *obj);
|
static void virDomainEventLifecycleDispose(void *obj);
|
||||||
|
static void virDomainEventRTCChangeDispose(void *obj);
|
||||||
|
|
||||||
struct _virObjectEvent {
|
struct _virObjectEvent {
|
||||||
virObject parent;
|
virObject parent;
|
||||||
@ -101,9 +103,6 @@ struct _virDomainEvent {
|
|||||||
virObjectMeta meta;
|
virObjectMeta meta;
|
||||||
|
|
||||||
union {
|
union {
|
||||||
struct {
|
|
||||||
long long offset;
|
|
||||||
} rtcChange;
|
|
||||||
struct {
|
struct {
|
||||||
int action;
|
int action;
|
||||||
} watchdog;
|
} watchdog;
|
||||||
@ -154,6 +153,13 @@ struct _virDomainEventLifecycle {
|
|||||||
typedef struct _virDomainEventLifecycle virDomainEventLifecycle;
|
typedef struct _virDomainEventLifecycle virDomainEventLifecycle;
|
||||||
typedef virDomainEventLifecycle *virDomainEventLifecyclePtr;
|
typedef virDomainEventLifecycle *virDomainEventLifecyclePtr;
|
||||||
|
|
||||||
|
struct _virDomainEventRTCChange {
|
||||||
|
virDomainEvent parent;
|
||||||
|
|
||||||
|
long long offset;
|
||||||
|
};
|
||||||
|
typedef struct _virDomainEventRTCChange virDomainEventRTCChange;
|
||||||
|
typedef virDomainEventRTCChange *virDomainEventRTCChangePtr;
|
||||||
|
|
||||||
static int virObjectEventOnceInit(void)
|
static int virObjectEventOnceInit(void)
|
||||||
{
|
{
|
||||||
@ -175,6 +181,12 @@ static int virObjectEventOnceInit(void)
|
|||||||
sizeof(virDomainEventLifecycle),
|
sizeof(virDomainEventLifecycle),
|
||||||
virDomainEventLifecycleDispose)))
|
virDomainEventLifecycleDispose)))
|
||||||
return -1;
|
return -1;
|
||||||
|
if (!(virDomainEventRTCChangeClass =
|
||||||
|
virClassNew(virDomainEventClass,
|
||||||
|
"virDomainEventRTCChange",
|
||||||
|
sizeof(virDomainEventRTCChange),
|
||||||
|
virDomainEventRTCChangeDispose)))
|
||||||
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,6 +273,12 @@ static void virDomainEventLifecycleDispose(void *obj)
|
|||||||
VIR_DEBUG("obj=%p", event);
|
VIR_DEBUG("obj=%p", event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void virDomainEventRTCChangeDispose(void *obj)
|
||||||
|
{
|
||||||
|
virDomainEventRTCChangePtr event = obj;
|
||||||
|
VIR_DEBUG("obj=%p", event);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virObjectEventCallbackListFree:
|
* virObjectEventCallbackListFree:
|
||||||
* @list: event callback list head
|
* @list: event callback list head
|
||||||
@ -861,37 +879,37 @@ virDomainEventPtr virDomainEventRebootNewFromObj(virDomainObjPtr obj)
|
|||||||
virDomainEventPtr virDomainEventRTCChangeNewFromDom(virDomainPtr dom,
|
virDomainEventPtr virDomainEventRTCChangeNewFromDom(virDomainPtr dom,
|
||||||
long long offset)
|
long long offset)
|
||||||
{
|
{
|
||||||
virDomainEventPtr ev;
|
virDomainEventRTCChangePtr ev;
|
||||||
|
|
||||||
if (virObjectEventInitialize() < 0)
|
if (virObjectEventInitialize() < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!(ev = virDomainEventNew(virDomainEventClass,
|
if (!(ev = virDomainEventNew(virDomainEventRTCChangeClass,
|
||||||
VIR_DOMAIN_EVENT_ID_RTC_CHANGE,
|
VIR_DOMAIN_EVENT_ID_RTC_CHANGE,
|
||||||
dom->id, dom->name, dom->uuid)))
|
dom->id, dom->name, dom->uuid)))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ev->data.rtcChange.offset = offset;
|
ev->offset = offset;
|
||||||
|
|
||||||
return ev;
|
return (virDomainEventPtr)ev;
|
||||||
}
|
}
|
||||||
virDomainEventPtr virDomainEventRTCChangeNewFromObj(virDomainObjPtr obj,
|
virDomainEventPtr virDomainEventRTCChangeNewFromObj(virDomainObjPtr obj,
|
||||||
long long offset)
|
long long offset)
|
||||||
{
|
{
|
||||||
virDomainEventPtr ev;
|
virDomainEventRTCChangePtr ev;
|
||||||
|
|
||||||
if (virObjectEventInitialize() < 0)
|
if (virObjectEventInitialize() < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!(ev = virDomainEventNew(virDomainEventClass,
|
if (!(ev = virDomainEventNew(virDomainEventRTCChangeClass,
|
||||||
VIR_DOMAIN_EVENT_ID_RTC_CHANGE,
|
VIR_DOMAIN_EVENT_ID_RTC_CHANGE,
|
||||||
obj->def->id, obj->def->name,
|
obj->def->id, obj->def->name,
|
||||||
obj->def->uuid)))
|
obj->def->uuid)))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ev->data.rtcChange.offset = offset;
|
ev->offset = offset;
|
||||||
|
|
||||||
return ev;
|
return (virDomainEventPtr)ev;
|
||||||
}
|
}
|
||||||
|
|
||||||
virDomainEventPtr virDomainEventWatchdogNewFromDom(virDomainPtr dom,
|
virDomainEventPtr virDomainEventWatchdogNewFromDom(virDomainPtr dom,
|
||||||
@ -1499,10 +1517,15 @@ virDomainEventDispatchDefaultFunc(virConnectPtr conn,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
case VIR_DOMAIN_EVENT_ID_RTC_CHANGE:
|
case VIR_DOMAIN_EVENT_ID_RTC_CHANGE:
|
||||||
|
{
|
||||||
|
virDomainEventRTCChangePtr rtcChangeEvent;
|
||||||
|
|
||||||
|
rtcChangeEvent = (virDomainEventRTCChangePtr)event;
|
||||||
((virConnectDomainEventRTCChangeCallback)cb)(conn, dom,
|
((virConnectDomainEventRTCChangeCallback)cb)(conn, dom,
|
||||||
event->data.rtcChange.offset,
|
rtcChangeEvent->offset,
|
||||||
cbopaque);
|
cbopaque);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
case VIR_DOMAIN_EVENT_ID_WATCHDOG:
|
case VIR_DOMAIN_EVENT_ID_WATCHDOG:
|
||||||
((virConnectDomainEventWatchdogCallback)cb)(conn, dom,
|
((virConnectDomainEventWatchdogCallback)cb)(conn, dom,
|
||||||
|
Loading…
Reference in New Issue
Block a user