failover: Rename function to hide_device()
You should not use pasive. Signed-off-by: Juan Quintela <quintela@redhat.com> Message-Id: <20201118083748.1328-17-quintela@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
89631fed27
commit
b91ad981b8
@ -217,8 +217,8 @@ bool qdev_should_hide_device(QemuOpts *opts)
|
||||
DeviceListener *listener;
|
||||
|
||||
QTAILQ_FOREACH(listener, &device_listeners, link) {
|
||||
if (listener->should_be_hidden) {
|
||||
if (listener->should_be_hidden(listener, opts)) {
|
||||
if (listener->hide_device) {
|
||||
if (listener->hide_device(listener, opts)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -3161,8 +3161,8 @@ static void virtio_net_migration_state_notifier(Notifier *notifier, void *data)
|
||||
virtio_net_handle_migration_primary(n, s);
|
||||
}
|
||||
|
||||
static bool virtio_net_primary_should_be_hidden(DeviceListener *listener,
|
||||
QemuOpts *device_opts)
|
||||
static bool failover_hide_primary_device(DeviceListener *listener,
|
||||
QemuOpts *device_opts)
|
||||
{
|
||||
VirtIONet *n = container_of(listener, VirtIONet, primary_listener);
|
||||
bool hide;
|
||||
@ -3220,8 +3220,7 @@ static void virtio_net_device_realize(DeviceState *dev, Error **errp)
|
||||
}
|
||||
|
||||
if (n->failover) {
|
||||
n->primary_listener.should_be_hidden =
|
||||
virtio_net_primary_should_be_hidden;
|
||||
n->primary_listener.hide_device = failover_hide_primary_device;
|
||||
qatomic_set(&n->failover_primary_hidden, true);
|
||||
device_listener_register(&n->primary_listener);
|
||||
n->migration_state.notify = virtio_net_migration_state_notifier;
|
||||
|
@ -81,16 +81,17 @@ typedef void (*BusUnrealize)(BusState *bus);
|
||||
* </note>
|
||||
*
|
||||
* # Hiding a device #
|
||||
* To hide a device, a DeviceListener function should_be_hidden() needs to
|
||||
* To hide a device, a DeviceListener function hide_device() needs to
|
||||
* be registered.
|
||||
* It can be used to defer adding a device and therefore hide it from the
|
||||
* guest. The handler registering to this DeviceListener can save the QOpts
|
||||
* passed to it for re-using it later and must return that it wants the device
|
||||
* to be/remain hidden or not. When the handler function decides the device
|
||||
* shall not be hidden it will be added in qdev_device_add() and
|
||||
* realized as any other device. Otherwise qdev_device_add() will return early
|
||||
* without adding the device. The guest will not see a "hidden" device
|
||||
* until it was marked don't hide and qdev_device_add called again.
|
||||
* It can be used to defer adding a device and therefore hide it from
|
||||
* the guest. The handler registering to this DeviceListener can save
|
||||
* the QOpts passed to it for re-using it later. It must return if it
|
||||
* wants the device to be hidden or visible. When the handler function
|
||||
* decides the device shall be visible it will be added with
|
||||
* qdev_device_add() and realized as any other device. Otherwise
|
||||
* qdev_device_add() will return early without adding the device. The
|
||||
* guest will not see a "hidden" device until it was marked visible
|
||||
* and qdev_device_add called again.
|
||||
*
|
||||
*/
|
||||
struct DeviceClass {
|
||||
@ -196,11 +197,12 @@ struct DeviceListener {
|
||||
void (*realize)(DeviceListener *listener, DeviceState *dev);
|
||||
void (*unrealize)(DeviceListener *listener, DeviceState *dev);
|
||||
/*
|
||||
* This callback is called upon init of the DeviceState and allows to
|
||||
* inform qdev that a device should be hidden, depending on the device
|
||||
* opts, for example, to hide a standby device.
|
||||
* This callback is called upon init of the DeviceState and
|
||||
* informs qdev if a device should be visible or hidden. We can
|
||||
* hide a failover device depending for example on the device
|
||||
* opts.
|
||||
*/
|
||||
bool (*should_be_hidden)(DeviceListener *listener, QemuOpts *device_opts);
|
||||
bool (*hide_device)(DeviceListener *listener, QemuOpts *device_opts);
|
||||
QTAILQ_ENTRY(DeviceListener) link;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user