event: pass reason for PM events

Commit 57ddcc23 (v0.9.11) introduced the pmwakeup event, with
an optional 'reason' field reserved for possible future expansion.
But it failed to wire the field through RPC, so even if we do
add a reason in the future, we will be unable to get it back
to the user.

Worse, commit 7ba5defb (v1.0.0) repeated the same mistake with
the pmsuspend_disk event.

As long as we are adding new RPC calls, we might as well fix
the events to actually match the signature so that we don't have
to add yet another RPC in the future if we do decide to start
using the reason field.

* src/remote/remote_protocol.x
(remote_domain_event_callback_pmwakeup_msg)
(remote_domain_event_callback_pmsuspend_msg)
(remote_domain_event_callback_pmsuspend_disk_msg): Add reason
field.
* daemon/remote.c (remoteRelayDomainEventPMWakeup)
(remoteRelayDomainEventPMSuspend)
(remoteRelayDomainEventPMSuspendDisk): Pass reason to client.
* src/conf/domain_event.h (virDomainEventPMWakeupNewFromDom)
(virDomainEventPMSuspendNewFromDom)
(virDomainEventPMSuspendDiskNewFromDom): Require additional
parameter.
* src/conf/domain_event.c (virDomainEventPMClass): New class.
(virDomainEventPMDispose): New function.
(virDomainEventPMWakeupNew*, virDomainEventPMSuspendNew*)
(virDomainEventPMSuspendDiskNew*)
(virDomainEventDispatchDefaultFunc): Use new class.
* src/remote/remote_driver.c (remoteDomainBuildEvent*PM*): Pass
reason through.
* src/remote_protocol-structs: Regenerate.

Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Eric Blake 2014-01-28 17:41:34 -07:00
parent 158795d20e
commit 6831c1d327
6 changed files with 112 additions and 48 deletions

View File

@ -714,7 +714,7 @@ remoteRelayDomainEventTrayChange(virConnectPtr conn,
static int static int
remoteRelayDomainEventPMWakeup(virConnectPtr conn, remoteRelayDomainEventPMWakeup(virConnectPtr conn,
virDomainPtr dom, virDomainPtr dom,
int reason ATTRIBUTE_UNUSED, int reason,
void *opaque) void *opaque)
{ {
daemonClientEventCallbackPtr callback = opaque; daemonClientEventCallbackPtr callback = opaque;
@ -737,7 +737,7 @@ remoteRelayDomainEventPMWakeup(virConnectPtr conn,
(xdrproc_t)xdr_remote_domain_event_pmwakeup_msg, &data); (xdrproc_t)xdr_remote_domain_event_pmwakeup_msg, &data);
} else { } else {
remote_domain_event_callback_pmwakeup_msg msg = { callback->callbackID, remote_domain_event_callback_pmwakeup_msg msg = { callback->callbackID,
data }; reason, data };
remoteDispatchObjectEventSend(callback->client, remoteProgram, remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP, REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP,
@ -750,7 +750,7 @@ remoteRelayDomainEventPMWakeup(virConnectPtr conn,
static int static int
remoteRelayDomainEventPMSuspend(virConnectPtr conn, remoteRelayDomainEventPMSuspend(virConnectPtr conn,
virDomainPtr dom, virDomainPtr dom,
int reason ATTRIBUTE_UNUSED, int reason,
void *opaque) void *opaque)
{ {
daemonClientEventCallbackPtr callback = opaque; daemonClientEventCallbackPtr callback = opaque;
@ -773,7 +773,7 @@ remoteRelayDomainEventPMSuspend(virConnectPtr conn,
(xdrproc_t)xdr_remote_domain_event_pmsuspend_msg, &data); (xdrproc_t)xdr_remote_domain_event_pmsuspend_msg, &data);
} else { } else {
remote_domain_event_callback_pmsuspend_msg msg = { callback->callbackID, remote_domain_event_callback_pmsuspend_msg msg = { callback->callbackID,
data }; reason, data };
remoteDispatchObjectEventSend(callback->client, remoteProgram, remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND, REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND,
@ -824,7 +824,7 @@ remoteRelayDomainEventBalloonChange(virConnectPtr conn,
static int static int
remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn, remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn,
virDomainPtr dom, virDomainPtr dom,
int reason ATTRIBUTE_UNUSED, int reason,
void *opaque) void *opaque)
{ {
daemonClientEventCallbackPtr callback = opaque; daemonClientEventCallbackPtr callback = opaque;
@ -847,7 +847,7 @@ remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn,
(xdrproc_t)xdr_remote_domain_event_pmsuspend_disk_msg, &data); (xdrproc_t)xdr_remote_domain_event_pmsuspend_disk_msg, &data);
} else { } else {
remote_domain_event_callback_pmsuspend_disk_msg msg = { callback->callbackID, remote_domain_event_callback_pmsuspend_disk_msg msg = { callback->callbackID,
data }; reason, data };
remoteDispatchObjectEventSend(callback->client, remoteProgram, remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK, REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK,

View File

@ -47,6 +47,7 @@ static virClassPtr virDomainEventDiskChangeClass;
static virClassPtr virDomainEventTrayChangeClass; static virClassPtr virDomainEventTrayChangeClass;
static virClassPtr virDomainEventBalloonChangeClass; static virClassPtr virDomainEventBalloonChangeClass;
static virClassPtr virDomainEventDeviceRemovedClass; static virClassPtr virDomainEventDeviceRemovedClass;
static virClassPtr virDomainEventPMClass;
static void virDomainEventDispose(void *obj); static void virDomainEventDispose(void *obj);
@ -60,6 +61,7 @@ static void virDomainEventDiskChangeDispose(void *obj);
static void virDomainEventTrayChangeDispose(void *obj); static void virDomainEventTrayChangeDispose(void *obj);
static void virDomainEventBalloonChangeDispose(void *obj); static void virDomainEventBalloonChangeDispose(void *obj);
static void virDomainEventDeviceRemovedDispose(void *obj); static void virDomainEventDeviceRemovedDispose(void *obj);
static void virDomainEventPMDispose(void *obj);
static void static void
virDomainEventDispatchDefaultFunc(virConnectPtr conn, virDomainEventDispatchDefaultFunc(virConnectPtr conn,
@ -171,6 +173,14 @@ struct _virDomainEventDeviceRemoved {
typedef struct _virDomainEventDeviceRemoved virDomainEventDeviceRemoved; typedef struct _virDomainEventDeviceRemoved virDomainEventDeviceRemoved;
typedef virDomainEventDeviceRemoved *virDomainEventDeviceRemovedPtr; typedef virDomainEventDeviceRemoved *virDomainEventDeviceRemovedPtr;
struct _virDomainEventPM {
virDomainEvent parent;
int reason;
};
typedef struct _virDomainEventPM virDomainEventPM;
typedef virDomainEventPM *virDomainEventPMPtr;
static int static int
virDomainEventsOnceInit(void) virDomainEventsOnceInit(void)
@ -241,6 +251,12 @@ virDomainEventsOnceInit(void)
sizeof(virDomainEventDeviceRemoved), sizeof(virDomainEventDeviceRemoved),
virDomainEventDeviceRemovedDispose))) virDomainEventDeviceRemovedDispose)))
return -1; return -1;
if (!(virDomainEventPMClass =
virClassNew(virDomainEventClass,
"virDomainEventPM",
sizeof(virDomainEventPM),
virDomainEventPMDispose)))
return -1;
return 0; return 0;
} }
@ -359,6 +375,13 @@ virDomainEventDeviceRemovedDispose(void *obj)
VIR_FREE(event->devAlias); VIR_FREE(event->devAlias);
} }
static void
virDomainEventPMDispose(void *obj)
{
virDomainEventPMPtr event = obj;
VIR_DEBUG("obj=%p", event);
}
static void * static void *
virDomainEventNew(virClassPtr klass, virDomainEventNew(virClassPtr klass,
@ -907,19 +930,21 @@ virDomainEventTrayChangeNewFromDom(virDomainPtr dom,
static virObjectEventPtr static virObjectEventPtr
virDomainEventPMWakeupNew(int id, virDomainEventPMWakeupNew(int id,
const char *name, const char *name,
unsigned char *uuid) unsigned char *uuid,
int reason)
{ {
virObjectEventPtr ev; virDomainEventPMPtr ev;
if (virDomainEventsInitialize() < 0) if (virDomainEventsInitialize() < 0)
return NULL; return NULL;
if (!(ev = virDomainEventNew(virDomainEventClass, if (!(ev = virDomainEventNew(virDomainEventPMClass,
VIR_DOMAIN_EVENT_ID_PMWAKEUP, VIR_DOMAIN_EVENT_ID_PMWAKEUP,
id, name, uuid))) id, name, uuid)))
return NULL; return NULL;
return ev; ev->reason = reason;
return (virObjectEventPtr)ev;
} }
virObjectEventPtr virObjectEventPtr
@ -927,31 +952,34 @@ virDomainEventPMWakeupNewFromObj(virDomainObjPtr obj)
{ {
return virDomainEventPMWakeupNew(obj->def->id, return virDomainEventPMWakeupNew(obj->def->id,
obj->def->name, obj->def->name,
obj->def->uuid); obj->def->uuid,
0);
} }
virObjectEventPtr virObjectEventPtr
virDomainEventPMWakeupNewFromDom(virDomainPtr dom) virDomainEventPMWakeupNewFromDom(virDomainPtr dom, int reason)
{ {
return virDomainEventPMWakeupNew(dom->id, dom->name, dom->uuid); return virDomainEventPMWakeupNew(dom->id, dom->name, dom->uuid, reason);
} }
static virObjectEventPtr static virObjectEventPtr
virDomainEventPMSuspendNew(int id, virDomainEventPMSuspendNew(int id,
const char *name, const char *name,
unsigned char *uuid) unsigned char *uuid,
int reason)
{ {
virObjectEventPtr ev; virDomainEventPMPtr ev;
if (virDomainEventsInitialize() < 0) if (virDomainEventsInitialize() < 0)
return NULL; return NULL;
if (!(ev = virDomainEventNew(virDomainEventClass, if (!(ev = virDomainEventNew(virDomainEventPMClass,
VIR_DOMAIN_EVENT_ID_PMSUSPEND, VIR_DOMAIN_EVENT_ID_PMSUSPEND,
id, name, uuid))) id, name, uuid)))
return NULL; return NULL;
return ev; ev->reason = reason;
return (virObjectEventPtr)ev;
} }
virObjectEventPtr virObjectEventPtr
@ -959,30 +987,34 @@ virDomainEventPMSuspendNewFromObj(virDomainObjPtr obj)
{ {
return virDomainEventPMSuspendNew(obj->def->id, return virDomainEventPMSuspendNew(obj->def->id,
obj->def->name, obj->def->name,
obj->def->uuid); obj->def->uuid,
0);
} }
virObjectEventPtr virObjectEventPtr
virDomainEventPMSuspendNewFromDom(virDomainPtr dom) virDomainEventPMSuspendNewFromDom(virDomainPtr dom, int reason)
{ {
return virDomainEventPMSuspendNew(dom->id, dom->name, dom->uuid); return virDomainEventPMSuspendNew(dom->id, dom->name, dom->uuid, reason);
} }
static virObjectEventPtr static virObjectEventPtr
virDomainEventPMSuspendDiskNew(int id, virDomainEventPMSuspendDiskNew(int id,
const char *name, const char *name,
unsigned char *uuid) unsigned char *uuid,
int reason)
{ {
virObjectEventPtr ev; virDomainEventPMPtr ev;
if (virDomainEventsInitialize() < 0) if (virDomainEventsInitialize() < 0)
return NULL; return NULL;
if (!(ev = virDomainEventNew(virDomainEventClass, if (!(ev = virDomainEventNew(virDomainEventPMClass,
VIR_DOMAIN_EVENT_ID_PMSUSPEND_DISK, VIR_DOMAIN_EVENT_ID_PMSUSPEND_DISK,
id, name, uuid))) id, name, uuid)))
return NULL; return NULL;
return ev;
ev->reason = reason;
return (virObjectEventPtr)ev;
} }
virObjectEventPtr virObjectEventPtr
@ -990,13 +1022,15 @@ virDomainEventPMSuspendDiskNewFromObj(virDomainObjPtr obj)
{ {
return virDomainEventPMSuspendDiskNew(obj->def->id, return virDomainEventPMSuspendDiskNew(obj->def->id,
obj->def->name, obj->def->name,
obj->def->uuid); obj->def->uuid,
0);
} }
virObjectEventPtr virObjectEventPtr
virDomainEventPMSuspendDiskNewFromDom(virDomainPtr dom) virDomainEventPMSuspendDiskNewFromDom(virDomainPtr dom, int reason)
{ {
return virDomainEventPMSuspendDiskNew(dom->id, dom->name, dom->uuid); return virDomainEventPMSuspendDiskNew(dom->id, dom->name, dom->uuid,
reason);
} }
virObjectEventPtr virObjectEventPtr
@ -1217,12 +1251,24 @@ virDomainEventDispatchDefaultFunc(virConnectPtr conn,
} }
case VIR_DOMAIN_EVENT_ID_PMWAKEUP: case VIR_DOMAIN_EVENT_ID_PMWAKEUP:
((virConnectDomainEventPMWakeupCallback)cb)(conn, dom, 0, cbopaque); {
goto cleanup; virDomainEventPMPtr pmEvent = (virDomainEventPMPtr)event;
((virConnectDomainEventPMWakeupCallback)cb)(conn, dom,
pmEvent->reason,
cbopaque);
goto cleanup;
}
case VIR_DOMAIN_EVENT_ID_PMSUSPEND: case VIR_DOMAIN_EVENT_ID_PMSUSPEND:
((virConnectDomainEventPMSuspendCallback)cb)(conn, dom, 0, cbopaque); {
goto cleanup; virDomainEventPMPtr pmEvent = (virDomainEventPMPtr)event;
((virConnectDomainEventPMSuspendCallback)cb)(conn, dom,
pmEvent->reason,
cbopaque);
goto cleanup;
}
case VIR_DOMAIN_EVENT_ID_BALLOON_CHANGE: case VIR_DOMAIN_EVENT_ID_BALLOON_CHANGE:
{ {
@ -1236,8 +1282,14 @@ virDomainEventDispatchDefaultFunc(virConnectPtr conn,
} }
case VIR_DOMAIN_EVENT_ID_PMSUSPEND_DISK: case VIR_DOMAIN_EVENT_ID_PMSUSPEND_DISK:
((virConnectDomainEventPMSuspendDiskCallback)cb)(conn, dom, 0, cbopaque); {
goto cleanup; virDomainEventPMPtr pmEvent = (virDomainEventPMPtr)event;
((virConnectDomainEventPMSuspendDiskCallback)cb)(conn, dom,
pmEvent->reason,
cbopaque);
goto cleanup;
}
case VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED: case VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED:
{ {

View File

@ -149,11 +149,11 @@ virDomainEventTrayChangeNewFromDom(virDomainPtr dom,
virObjectEventPtr virObjectEventPtr
virDomainEventPMWakeupNewFromObj(virDomainObjPtr obj); virDomainEventPMWakeupNewFromObj(virDomainObjPtr obj);
virObjectEventPtr virObjectEventPtr
virDomainEventPMWakeupNewFromDom(virDomainPtr dom); virDomainEventPMWakeupNewFromDom(virDomainPtr dom, int reason);
virObjectEventPtr virObjectEventPtr
virDomainEventPMSuspendNewFromObj(virDomainObjPtr obj); virDomainEventPMSuspendNewFromObj(virDomainObjPtr obj);
virObjectEventPtr virObjectEventPtr
virDomainEventPMSuspendNewFromDom(virDomainPtr dom); virDomainEventPMSuspendNewFromDom(virDomainPtr dom, int reason);
virObjectEventPtr virObjectEventPtr
virDomainEventBalloonChangeNewFromDom(virDomainPtr dom, virDomainEventBalloonChangeNewFromDom(virDomainPtr dom,
@ -165,7 +165,7 @@ virDomainEventBalloonChangeNewFromObj(virDomainObjPtr obj,
virObjectEventPtr virObjectEventPtr
virDomainEventPMSuspendDiskNewFromObj(virDomainObjPtr obj); virDomainEventPMSuspendDiskNewFromObj(virDomainObjPtr obj);
virObjectEventPtr virObjectEventPtr
virDomainEventPMSuspendDiskNewFromDom(virDomainPtr dom); virDomainEventPMSuspendDiskNewFromDom(virDomainPtr dom, int reason);
virObjectEventPtr virObjectEventPtr
virDomainEventDeviceRemovedNewFromObj(virDomainObjPtr obj, virDomainEventDeviceRemovedNewFromObj(virDomainObjPtr obj,

View File

@ -5189,7 +5189,8 @@ remoteDomainBuildEventCallbackTrayChange(virNetClientProgramPtr prog ATTRIBUTE_U
static void static void
remoteDomainBuildEventPMWakeupHelper(virConnectPtr conn, remoteDomainBuildEventPMWakeupHelper(virConnectPtr conn,
remote_domain_event_pmwakeup_msg *msg, remote_domain_event_pmwakeup_msg *msg,
int callbackID) int callbackID,
int reason)
{ {
struct private_data *priv = conn->privateData; struct private_data *priv = conn->privateData;
virDomainPtr dom; virDomainPtr dom;
@ -5199,7 +5200,7 @@ remoteDomainBuildEventPMWakeupHelper(virConnectPtr conn,
if (!dom) if (!dom)
return; return;
event = virDomainEventPMWakeupNewFromDom(dom); event = virDomainEventPMWakeupNewFromDom(dom, reason);
virDomainFree(dom); virDomainFree(dom);
@ -5212,7 +5213,7 @@ remoteDomainBuildEventPMWakeup(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
{ {
virConnectPtr conn = opaque; virConnectPtr conn = opaque;
remote_domain_event_pmwakeup_msg *msg = evdata; remote_domain_event_pmwakeup_msg *msg = evdata;
remoteDomainBuildEventPMWakeupHelper(conn, msg, -1); remoteDomainBuildEventPMWakeupHelper(conn, msg, -1, 0);
} }
static void static void
remoteDomainBuildEventCallbackPMWakeup(virNetClientProgramPtr prog ATTRIBUTE_UNUSED, remoteDomainBuildEventCallbackPMWakeup(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
@ -5221,13 +5222,15 @@ remoteDomainBuildEventCallbackPMWakeup(virNetClientProgramPtr prog ATTRIBUTE_UNU
{ {
virConnectPtr conn = opaque; virConnectPtr conn = opaque;
remote_domain_event_callback_pmwakeup_msg *msg = evdata; remote_domain_event_callback_pmwakeup_msg *msg = evdata;
remoteDomainBuildEventPMWakeupHelper(conn, &msg->msg, msg->callbackID); remoteDomainBuildEventPMWakeupHelper(conn, &msg->msg, msg->callbackID,
msg->reason);
} }
static void static void
remoteDomainBuildEventPMSuspendHelper(virConnectPtr conn, remoteDomainBuildEventPMSuspendHelper(virConnectPtr conn,
remote_domain_event_pmsuspend_msg *msg, remote_domain_event_pmsuspend_msg *msg,
int callbackID) int callbackID,
int reason)
{ {
struct private_data *priv = conn->privateData; struct private_data *priv = conn->privateData;
virDomainPtr dom; virDomainPtr dom;
@ -5237,7 +5240,7 @@ remoteDomainBuildEventPMSuspendHelper(virConnectPtr conn,
if (!dom) if (!dom)
return; return;
event = virDomainEventPMSuspendNewFromDom(dom); event = virDomainEventPMSuspendNewFromDom(dom, reason);
virDomainFree(dom); virDomainFree(dom);
@ -5250,7 +5253,7 @@ remoteDomainBuildEventPMSuspend(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
{ {
virConnectPtr conn = opaque; virConnectPtr conn = opaque;
remote_domain_event_pmsuspend_msg *msg = evdata; remote_domain_event_pmsuspend_msg *msg = evdata;
remoteDomainBuildEventPMSuspendHelper(conn, msg, -1); remoteDomainBuildEventPMSuspendHelper(conn, msg, -1, 0);
} }
static void static void
remoteDomainBuildEventCallbackPMSuspend(virNetClientProgramPtr prog ATTRIBUTE_UNUSED, remoteDomainBuildEventCallbackPMSuspend(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
@ -5259,7 +5262,8 @@ remoteDomainBuildEventCallbackPMSuspend(virNetClientProgramPtr prog ATTRIBUTE_UN
{ {
virConnectPtr conn = opaque; virConnectPtr conn = opaque;
remote_domain_event_callback_pmsuspend_msg *msg = evdata; remote_domain_event_callback_pmsuspend_msg *msg = evdata;
remoteDomainBuildEventPMSuspendHelper(conn, &msg->msg, msg->callbackID); remoteDomainBuildEventPMSuspendHelper(conn, &msg->msg, msg->callbackID,
msg->reason);
} }
@ -5304,7 +5308,8 @@ remoteDomainBuildEventCallbackBalloonChange(virNetClientProgramPtr prog ATTRIBUT
static void static void
remoteDomainBuildEventPMSuspendDiskHelper(virConnectPtr conn, remoteDomainBuildEventPMSuspendDiskHelper(virConnectPtr conn,
remote_domain_event_pmsuspend_disk_msg *msg, remote_domain_event_pmsuspend_disk_msg *msg,
int callbackID) int callbackID,
int reason)
{ {
struct private_data *priv = conn->privateData; struct private_data *priv = conn->privateData;
virDomainPtr dom; virDomainPtr dom;
@ -5314,7 +5319,7 @@ remoteDomainBuildEventPMSuspendDiskHelper(virConnectPtr conn,
if (!dom) if (!dom)
return; return;
event = virDomainEventPMSuspendDiskNewFromDom(dom); event = virDomainEventPMSuspendDiskNewFromDom(dom, reason);
virDomainFree(dom); virDomainFree(dom);
@ -5327,7 +5332,7 @@ remoteDomainBuildEventPMSuspendDisk(virNetClientProgramPtr prog ATTRIBUTE_UNUSED
{ {
virConnectPtr conn = opaque; virConnectPtr conn = opaque;
remote_domain_event_pmsuspend_disk_msg *msg = evdata; remote_domain_event_pmsuspend_disk_msg *msg = evdata;
remoteDomainBuildEventPMSuspendDiskHelper(conn, msg, -1); remoteDomainBuildEventPMSuspendDiskHelper(conn, msg, -1, 0);
} }
static void static void
remoteDomainBuildEventCallbackPMSuspendDisk(virNetClientProgramPtr prog ATTRIBUTE_UNUSED, remoteDomainBuildEventCallbackPMSuspendDisk(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
@ -5336,7 +5341,8 @@ remoteDomainBuildEventCallbackPMSuspendDisk(virNetClientProgramPtr prog ATTRIBUT
{ {
virConnectPtr conn = opaque; virConnectPtr conn = opaque;
remote_domain_event_callback_pmsuspend_disk_msg *msg = evdata; remote_domain_event_callback_pmsuspend_disk_msg *msg = evdata;
remoteDomainBuildEventPMSuspendDiskHelper(conn, &msg->msg, msg->callbackID); remoteDomainBuildEventPMSuspendDiskHelper(conn, &msg->msg, msg->callbackID,
msg->reason);
} }

View File

@ -2378,6 +2378,7 @@ struct remote_domain_event_pmwakeup_msg {
}; };
struct remote_domain_event_callback_pmwakeup_msg { struct remote_domain_event_callback_pmwakeup_msg {
int callbackID; int callbackID;
int reason;
remote_domain_event_pmwakeup_msg msg; remote_domain_event_pmwakeup_msg msg;
}; };
@ -2386,6 +2387,7 @@ struct remote_domain_event_pmsuspend_msg {
}; };
struct remote_domain_event_callback_pmsuspend_msg { struct remote_domain_event_callback_pmsuspend_msg {
int callbackID; int callbackID;
int reason;
remote_domain_event_pmsuspend_msg msg; remote_domain_event_pmsuspend_msg msg;
}; };
@ -2403,6 +2405,7 @@ struct remote_domain_event_pmsuspend_disk_msg {
}; };
struct remote_domain_event_callback_pmsuspend_disk_msg { struct remote_domain_event_callback_pmsuspend_disk_msg {
int callbackID; int callbackID;
int reason;
remote_domain_event_pmsuspend_disk_msg msg; remote_domain_event_pmsuspend_disk_msg msg;
}; };

View File

@ -1824,6 +1824,7 @@ struct remote_domain_event_pmwakeup_msg {
}; };
struct remote_domain_event_callback_pmwakeup_msg { struct remote_domain_event_callback_pmwakeup_msg {
int callbackID; int callbackID;
int reason;
remote_domain_event_pmwakeup_msg msg; remote_domain_event_pmwakeup_msg msg;
}; };
struct remote_domain_event_pmsuspend_msg { struct remote_domain_event_pmsuspend_msg {
@ -1831,6 +1832,7 @@ struct remote_domain_event_pmsuspend_msg {
}; };
struct remote_domain_event_callback_pmsuspend_msg { struct remote_domain_event_callback_pmsuspend_msg {
int callbackID; int callbackID;
int reason;
remote_domain_event_pmsuspend_msg msg; remote_domain_event_pmsuspend_msg msg;
}; };
struct remote_domain_event_balloon_change_msg { struct remote_domain_event_balloon_change_msg {
@ -1846,6 +1848,7 @@ struct remote_domain_event_pmsuspend_disk_msg {
}; };
struct remote_domain_event_callback_pmsuspend_disk_msg { struct remote_domain_event_callback_pmsuspend_disk_msg {
int callbackID; int callbackID;
int reason;
remote_domain_event_pmsuspend_disk_msg msg; remote_domain_event_pmsuspend_disk_msg msg;
}; };
struct remote_domain_managed_save_args { struct remote_domain_managed_save_args {