diff options
author | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2018-03-12 17:20:59 +0000 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2018-03-20 05:03:27 +0200 |
commit | 1693c64c27a9af3fa0bb4093ab2ce12ec5bdb33f (patch) | |
tree | 73d7b6cfb2afeb4ad25fbf8d6ebc94285f1db4a2 /migration/postcopy-ram.h | |
parent | 2ce16640b4cc9ab9e7e6bde9e4264b102e0eb73d (diff) |
postcopy: Add notifier chain
Add a notifier chain for postcopy with a 'reason' flag
and an opportunity for a notifier member to return an error.
Call it when enabling postcopy.
This will initially used to enable devices to declare they're unable
to postcopy and later to notify of devices of stages within postcopy.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'migration/postcopy-ram.h')
-rw-r--r-- | migration/postcopy-ram.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/migration/postcopy-ram.h b/migration/postcopy-ram.h index 14f6cadcbd..2e879bbacb 100644 --- a/migration/postcopy-ram.h +++ b/migration/postcopy-ram.h @@ -116,4 +116,30 @@ PostcopyState postcopy_state_set(PostcopyState new_state); void postcopy_fault_thread_notify(MigrationIncomingState *mis); +/* + * To be called once at the start before any device initialisation + */ +void postcopy_infrastructure_init(void); + +/* Add a notifier to a list to be called when checking whether the devices + * can support postcopy. + * It's data is a *PostcopyNotifyData + * It should return 0 if OK, or a negative value on failure. + * On failure it must set the data->errp to an error. + * + */ +enum PostcopyNotifyReason { + POSTCOPY_NOTIFY_PROBE = 0, +}; + +struct PostcopyNotifyData { + enum PostcopyNotifyReason reason; + Error **errp; +}; + +void postcopy_add_notifier(NotifierWithReturn *nn); +void postcopy_remove_notifier(NotifierWithReturn *n); +/* Call the notifier list set by postcopy_add_start_notifier */ +int postcopy_notify(enum PostcopyNotifyReason reason, Error **errp); + #endif |