提交 158795d2 编写于 作者: E Eric Blake

event: convert remaining domain events to new style

Following the patterns established by lifecycle events, this
creates all the new RPC calls needed to pass callback IDs
for every domain event, and changes the limits in client and
server codes to use modern style when possible.

I've tested all combinations: both 'old client and new server'
and 'new client and old server' continue to work with the old
RPCs, and 'new client and new server' benefit from server-side
filtering with the new RPCs.

* src/remote/remote_protocol.x (REMOTE_PROC_DOMAIN_EVENT_*): Add
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_* counterparts.
* daemon/remote.c (remoteRelayDomainEvent*): Send callbackID via
newer RPC when used with new-style registration.
(remoteDispatchConnectDomainEventCallbackRegisterAny): Extend to
cover all domain events.
* src/remote/remote_driver.c (remoteDomainBuildEvent*): Add new
Callback and Helper functions.
(remoteEvents): Match order of RPC numbers, register new handlers.
(remoteConnectDomainEventRegisterAny)
(remoteConnectDomainEventDeregisterAny): Extend to cover all
domain events.
* src/remote_protocol-structs: Regenerate.
Signed-off-by: NEric Blake <eblake@redhat.com>
上级 355ea626
......@@ -239,16 +239,25 @@ remoteRelayDomainEventReboot(virConnectPtr conn,
!remoteRelayDomainEventCheckACL(callback->client, conn, dom))
return -1;
VIR_DEBUG("Relaying domain reboot event %s %d, callback %d",
dom->name, dom->id, callback->callbackID);
VIR_DEBUG("Relaying domain reboot event %s %d, callback %d legacy %d",
dom->name, dom->id, callback->callbackID, callback->legacy);
/* build return data */
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_REBOOT,
(xdrproc_t)xdr_remote_domain_event_reboot_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_REBOOT,
(xdrproc_t)xdr_remote_domain_event_reboot_msg, &data);
} else {
remote_domain_event_callback_reboot_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_REBOOT,
(xdrproc_t)xdr_remote_domain_event_callback_reboot_msg, &msg);
}
return 0;
}
......@@ -267,17 +276,27 @@ remoteRelayDomainEventRTCChange(virConnectPtr conn,
!remoteRelayDomainEventCheckACL(callback->client, conn, dom))
return -1;
VIR_DEBUG("Relaying domain rtc change event %s %d %lld, callback %d",
dom->name, dom->id, offset, callback->callbackID);
VIR_DEBUG("Relaying domain rtc change event %s %d %lld, callback %d legacy %d",
dom->name, dom->id, offset,
callback->callbackID, callback->legacy);
/* build return data */
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
data.offset = offset;
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE,
(xdrproc_t)xdr_remote_domain_event_rtc_change_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE,
(xdrproc_t)xdr_remote_domain_event_rtc_change_msg, &data);
} else {
remote_domain_event_callback_rtc_change_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_RTC_CHANGE,
(xdrproc_t)xdr_remote_domain_event_callback_rtc_change_msg, &msg);
}
return 0;
}
......@@ -304,9 +323,18 @@ remoteRelayDomainEventWatchdog(virConnectPtr conn,
make_nonnull_domain(&data.dom, dom);
data.action = action;
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_WATCHDOG,
(xdrproc_t)xdr_remote_domain_event_watchdog_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_WATCHDOG,
(xdrproc_t)xdr_remote_domain_event_watchdog_msg, &data);
} else {
remote_domain_event_callback_watchdog_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_WATCHDOG,
(xdrproc_t)xdr_remote_domain_event_callback_watchdog_msg, &msg);
}
return 0;
}
......@@ -339,9 +367,18 @@ remoteRelayDomainEventIOError(virConnectPtr conn,
make_nonnull_domain(&data.dom, dom);
data.action = action;
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_IO_ERROR,
(xdrproc_t)xdr_remote_domain_event_io_error_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_IO_ERROR,
(xdrproc_t)xdr_remote_domain_event_io_error_msg, &data);
} else {
remote_domain_event_callback_io_error_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR,
(xdrproc_t)xdr_remote_domain_event_callback_io_error_msg, &msg);
}
return 0;
error:
......@@ -381,9 +418,18 @@ remoteRelayDomainEventIOErrorReason(virConnectPtr conn,
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON,
(xdrproc_t)xdr_remote_domain_event_io_error_reason_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON,
(xdrproc_t)xdr_remote_domain_event_io_error_reason_msg, &data);
} else {
remote_domain_event_callback_io_error_reason_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR_REASON,
(xdrproc_t)xdr_remote_domain_event_callback_io_error_reason_msg, &msg);
}
return 0;
......@@ -447,9 +493,18 @@ remoteRelayDomainEventGraphics(virConnectPtr conn,
}
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_GRAPHICS,
(xdrproc_t)xdr_remote_domain_event_graphics_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_GRAPHICS,
(xdrproc_t)xdr_remote_domain_event_graphics_msg, &data);
} else {
remote_domain_event_callback_graphics_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_GRAPHICS,
(xdrproc_t)xdr_remote_domain_event_callback_graphics_msg, &msg);
}
return 0;
......@@ -495,9 +550,18 @@ remoteRelayDomainEventBlockJob(virConnectPtr conn,
data.status = status;
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB,
(xdrproc_t)xdr_remote_domain_event_block_job_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB,
(xdrproc_t)xdr_remote_domain_event_block_job_msg, &data);
} else {
remote_domain_event_callback_block_job_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BLOCK_JOB,
(xdrproc_t)xdr_remote_domain_event_callback_block_job_msg, &msg);
}
return 0;
error:
......@@ -525,9 +589,18 @@ remoteRelayDomainEventControlError(virConnectPtr conn,
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR,
(xdrproc_t)xdr_remote_domain_event_control_error_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR,
(xdrproc_t)xdr_remote_domain_event_control_error_msg, &data);
} else {
remote_domain_event_callback_control_error_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_CONTROL_ERROR,
(xdrproc_t)xdr_remote_domain_event_callback_control_error_msg, &msg);
}
return 0;
}
......@@ -574,9 +647,18 @@ remoteRelayDomainEventDiskChange(virConnectPtr conn,
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE,
(xdrproc_t)xdr_remote_domain_event_disk_change_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE,
(xdrproc_t)xdr_remote_domain_event_disk_change_msg, &data);
} else {
remote_domain_event_callback_disk_change_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DISK_CHANGE,
(xdrproc_t)xdr_remote_domain_event_callback_disk_change_msg, &msg);
}
return 0;
......@@ -613,9 +695,18 @@ remoteRelayDomainEventTrayChange(virConnectPtr conn,
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_TRAY_CHANGE,
(xdrproc_t)xdr_remote_domain_event_tray_change_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_TRAY_CHANGE,
(xdrproc_t)xdr_remote_domain_event_tray_change_msg, &data);
} else {
remote_domain_event_callback_tray_change_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TRAY_CHANGE,
(xdrproc_t)xdr_remote_domain_event_callback_tray_change_msg, &msg);
}
return 0;
}
......@@ -640,9 +731,18 @@ remoteRelayDomainEventPMWakeup(virConnectPtr conn,
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_PMWAKEUP,
(xdrproc_t)xdr_remote_domain_event_pmwakeup_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_PMWAKEUP,
(xdrproc_t)xdr_remote_domain_event_pmwakeup_msg, &data);
} else {
remote_domain_event_callback_pmwakeup_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP,
(xdrproc_t)xdr_remote_domain_event_callback_pmwakeup_msg, &msg);
}
return 0;
}
......@@ -667,9 +767,18 @@ remoteRelayDomainEventPMSuspend(virConnectPtr conn,
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND,
(xdrproc_t)xdr_remote_domain_event_pmsuspend_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND,
(xdrproc_t)xdr_remote_domain_event_pmsuspend_msg, &data);
} else {
remote_domain_event_callback_pmsuspend_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND,
(xdrproc_t)xdr_remote_domain_event_callback_pmsuspend_msg, &msg);
}
return 0;
}
......@@ -695,9 +804,18 @@ remoteRelayDomainEventBalloonChange(virConnectPtr conn,
make_nonnull_domain(&data.dom, dom);
data.actual = actual;
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_BALLOON_CHANGE,
(xdrproc_t)xdr_remote_domain_event_balloon_change_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_BALLOON_CHANGE,
(xdrproc_t)xdr_remote_domain_event_balloon_change_msg, &data);
} else {
remote_domain_event_callback_balloon_change_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BALLOON_CHANGE,
(xdrproc_t)xdr_remote_domain_event_callback_balloon_change_msg, &msg);
}
return 0;
}
......@@ -723,9 +841,18 @@ remoteRelayDomainEventPMSuspendDisk(virConnectPtr conn,
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND_DISK,
(xdrproc_t)xdr_remote_domain_event_pmsuspend_disk_msg, &data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND_DISK,
(xdrproc_t)xdr_remote_domain_event_pmsuspend_disk_msg, &data);
} else {
remote_domain_event_callback_pmsuspend_disk_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK,
(xdrproc_t)xdr_remote_domain_event_callback_pmsuspend_disk_msg, &msg);
}
return 0;
}
......@@ -754,10 +881,20 @@ remoteRelayDomainEventDeviceRemoved(virConnectPtr conn,
make_nonnull_domain(&data.dom, dom);
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_DEVICE_REMOVED,
(xdrproc_t)xdr_remote_domain_event_device_removed_msg,
&data);
if (callback->legacy) {
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_DEVICE_REMOVED,
(xdrproc_t)xdr_remote_domain_event_device_removed_msg,
&data);
} else {
remote_domain_event_callback_device_removed_msg msg = { callback->callbackID,
data };
remoteDispatchObjectEventSend(callback->client, remoteProgram,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVED,
(xdrproc_t)xdr_remote_domain_event_callback_device_removed_msg,
&msg);
}
return 0;
}
......@@ -3589,8 +3726,7 @@ remoteDispatchConnectDomainEventCallbackRegisterAny(virNetServerPtr server ATTRI
!(dom = get_nonnull_domain(priv->conn, *args->dom)))
goto cleanup;
/* FIXME: support all domain events */
if (args->eventID != VIR_DOMAIN_EVENT_ID_LIFECYCLE) {
if (args->eventID >= VIR_DOMAIN_EVENT_ID_LAST || args->eventID < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, _("unsupported event ID %d"),
args->eventID);
goto cleanup;
......
此差异已折叠。
......@@ -2268,16 +2268,28 @@ struct remote_connect_domain_event_callback_deregister_any_args {
struct remote_domain_event_reboot_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_reboot_msg {
int callbackID;
remote_domain_event_reboot_msg msg;
};
struct remote_domain_event_rtc_change_msg {
remote_nonnull_domain dom;
hyper offset;
};
struct remote_domain_event_callback_rtc_change_msg {
int callbackID;
remote_domain_event_rtc_change_msg msg;
};
struct remote_domain_event_watchdog_msg {
remote_nonnull_domain dom;
int action;
};
struct remote_domain_event_callback_watchdog_msg {
int callbackID;
remote_domain_event_watchdog_msg msg;
};
struct remote_domain_event_io_error_msg {
remote_nonnull_domain dom;
......@@ -2285,6 +2297,10 @@ struct remote_domain_event_io_error_msg {
remote_nonnull_string devAlias;
int action;
};
struct remote_domain_event_callback_io_error_msg {
int callbackID;
remote_domain_event_io_error_msg msg;
};
struct remote_domain_event_io_error_reason_msg {
remote_nonnull_domain dom;
......@@ -2293,6 +2309,10 @@ struct remote_domain_event_io_error_reason_msg {
int action;
remote_nonnull_string reason;
};
struct remote_domain_event_callback_io_error_reason_msg {
int callbackID;
remote_domain_event_io_error_reason_msg msg;
};
struct remote_domain_event_graphics_address {
int family;
......@@ -2315,6 +2335,10 @@ struct remote_domain_event_graphics_msg {
remote_nonnull_string authScheme;
remote_domain_event_graphics_identity subject<REMOTE_DOMAIN_EVENT_GRAPHICS_IDENTITY_MAX>;
};
struct remote_domain_event_callback_graphics_msg {
int callbackID;
remote_domain_event_graphics_msg msg;
};
struct remote_domain_event_block_job_msg {
remote_nonnull_domain dom;
......@@ -2322,6 +2346,10 @@ struct remote_domain_event_block_job_msg {
int type;
int status;
};
struct remote_domain_event_callback_block_job_msg {
int callbackID;
remote_domain_event_block_job_msg msg;
};
struct remote_domain_event_disk_change_msg {
remote_nonnull_domain dom;
......@@ -2330,29 +2358,53 @@ struct remote_domain_event_disk_change_msg {
remote_nonnull_string devAlias;
int reason;
};
struct remote_domain_event_callback_disk_change_msg {
int callbackID;
remote_domain_event_disk_change_msg msg;
};
struct remote_domain_event_tray_change_msg {
remote_nonnull_domain dom;
remote_nonnull_string devAlias;
int reason;
};
struct remote_domain_event_callback_tray_change_msg {
int callbackID;
remote_domain_event_tray_change_msg msg;
};
struct remote_domain_event_pmwakeup_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_pmwakeup_msg {
int callbackID;
remote_domain_event_pmwakeup_msg msg;
};
struct remote_domain_event_pmsuspend_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_pmsuspend_msg {
int callbackID;
remote_domain_event_pmsuspend_msg msg;
};
struct remote_domain_event_balloon_change_msg {
remote_nonnull_domain dom;
unsigned hyper actual;
};
struct remote_domain_event_callback_balloon_change_msg {
int callbackID;
remote_domain_event_balloon_change_msg msg;
};
struct remote_domain_event_pmsuspend_disk_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_pmsuspend_disk_msg {
int callbackID;
remote_domain_event_pmsuspend_disk_msg msg;
};
struct remote_domain_managed_save_args {
remote_nonnull_domain dom;
......@@ -2631,6 +2683,10 @@ struct remote_domain_migrate_confirm3_args {
struct remote_domain_event_control_error_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_control_error_msg {
int callbackID;
remote_domain_event_control_error_msg msg;
};
struct remote_domain_get_control_info_args {
remote_nonnull_domain dom;
......@@ -2850,10 +2906,17 @@ struct remote_domain_migrate_confirm3_params_args {
int cancelled;
};
/* The device removed event is the last event where we have to support
* dual forms for back-compat to older clients; all future events can
* use just the modern form with callbackID. */
struct remote_domain_event_device_removed_msg {
remote_nonnull_domain dom;
remote_nonnull_string devAlias;
};
struct remote_domain_event_callback_device_removed_msg {
int callbackID;
remote_domain_event_device_removed_msg msg;
};
struct remote_connect_get_cpu_model_names_args {
remote_nonnull_string arch;
......@@ -5106,5 +5169,95 @@ enum remote_procedure {
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_LIFECYCLE = 318
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_LIFECYCLE = 318,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_REBOOT = 319,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_RTC_CHANGE = 320,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_WATCHDOG = 321,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR = 322,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_GRAPHICS = 323,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR_REASON = 324,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_CONTROL_ERROR = 325,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BLOCK_JOB = 326,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DISK_CHANGE = 327,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TRAY_CHANGE = 328,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP = 329,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND = 330,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BALLOON_CHANGE = 331,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK = 332,
/**
* @generate: both
* @acl: none
*/
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVED = 333
};
......@@ -1724,20 +1724,36 @@ struct remote_connect_domain_event_callback_deregister_any_args {
struct remote_domain_event_reboot_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_reboot_msg {
int callbackID;
remote_domain_event_reboot_msg msg;
};
struct remote_domain_event_rtc_change_msg {
remote_nonnull_domain dom;
int64_t offset;
};
struct remote_domain_event_callback_rtc_change_msg {
int callbackID;
remote_domain_event_rtc_change_msg msg;
};
struct remote_domain_event_watchdog_msg {
remote_nonnull_domain dom;
int action;
};
struct remote_domain_event_callback_watchdog_msg {
int callbackID;
remote_domain_event_watchdog_msg msg;
};
struct remote_domain_event_io_error_msg {
remote_nonnull_domain dom;
remote_nonnull_string srcPath;
remote_nonnull_string devAlias;
int action;
};
struct remote_domain_event_callback_io_error_msg {
int callbackID;
remote_domain_event_io_error_msg msg;
};
struct remote_domain_event_io_error_reason_msg {
remote_nonnull_domain dom;
remote_nonnull_string srcPath;
......@@ -1745,6 +1761,10 @@ struct remote_domain_event_io_error_reason_msg {
int action;
remote_nonnull_string reason;
};
struct remote_domain_event_callback_io_error_reason_msg {
int callbackID;
remote_domain_event_io_error_reason_msg msg;
};
struct remote_domain_event_graphics_address {
int family;
remote_nonnull_string node;
......@@ -1765,12 +1785,20 @@ struct remote_domain_event_graphics_msg {
remote_domain_event_graphics_identity * subject_val;
} subject;
};
struct remote_domain_event_callback_graphics_msg {
int callbackID;
remote_domain_event_graphics_msg msg;
};
struct remote_domain_event_block_job_msg {
remote_nonnull_domain dom;
remote_nonnull_string path;
int type;
int status;
};
struct remote_domain_event_callback_block_job_msg {
int callbackID;
remote_domain_event_block_job_msg msg;
};
struct remote_domain_event_disk_change_msg {
remote_nonnull_domain dom;
remote_string oldSrcPath;
......@@ -1778,24 +1806,48 @@ struct remote_domain_event_disk_change_msg {
remote_nonnull_string devAlias;
int reason;
};
struct remote_domain_event_callback_disk_change_msg {
int callbackID;
remote_domain_event_disk_change_msg msg;
};
struct remote_domain_event_tray_change_msg {
remote_nonnull_domain dom;
remote_nonnull_string devAlias;
int reason;
};
struct remote_domain_event_callback_tray_change_msg {
int callbackID;
remote_domain_event_tray_change_msg msg;
};
struct remote_domain_event_pmwakeup_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_pmwakeup_msg {
int callbackID;
remote_domain_event_pmwakeup_msg msg;
};
struct remote_domain_event_pmsuspend_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_pmsuspend_msg {
int callbackID;
remote_domain_event_pmsuspend_msg msg;
};
struct remote_domain_event_balloon_change_msg {
remote_nonnull_domain dom;
uint64_t actual;
};
struct remote_domain_event_callback_balloon_change_msg {
int callbackID;
remote_domain_event_balloon_change_msg msg;
};
struct remote_domain_event_pmsuspend_disk_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_pmsuspend_disk_msg {
int callbackID;
remote_domain_event_pmsuspend_disk_msg msg;
};
struct remote_domain_managed_save_args {
remote_nonnull_domain dom;
u_int flags;
......@@ -2064,6 +2116,10 @@ struct remote_domain_migrate_confirm3_args {
struct remote_domain_event_control_error_msg {
remote_nonnull_domain dom;
};
struct remote_domain_event_callback_control_error_msg {
int callbackID;
remote_domain_event_control_error_msg msg;
};
struct remote_domain_get_control_info_args {
remote_nonnull_domain dom;
u_int flags;
......@@ -2330,6 +2386,10 @@ struct remote_domain_event_device_removed_msg {
remote_nonnull_domain dom;
remote_nonnull_string devAlias;
};
struct remote_domain_event_callback_device_removed_msg {
int callbackID;
remote_domain_event_device_removed_msg msg;
};
struct remote_connect_get_cpu_model_names_args {
remote_nonnull_string arch;
int need_results;
......@@ -2677,4 +2737,19 @@ enum remote_procedure {
REMOTE_PROC_CONNECT_DOMAIN_EVENT_CALLBACK_REGISTER_ANY = 316,
REMOTE_PROC_CONNECT_DOMAIN_EVENT_CALLBACK_DEREGISTER_ANY = 317,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_LIFECYCLE = 318,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_REBOOT = 319,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_RTC_CHANGE = 320,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_WATCHDOG = 321,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR = 322,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_GRAPHICS = 323,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR_REASON = 324,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_CONTROL_ERROR = 325,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BLOCK_JOB = 326,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DISK_CHANGE = 327,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TRAY_CHANGE = 328,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP = 329,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND = 330,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BALLOON_CHANGE = 331,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK = 332,
REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVED = 333,
};
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册