migration: remove the QEMUFileOps 'get_return_path' callback

This directly implements the get_return_path logic using QIOChannel APIs.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2022-06-20 12:02:04 +01:00 committed by Dr. David Alan Gilbert
parent ec2135eec8
commit 02bdbe172d
3 changed files with 10 additions and 34 deletions

View File

@ -32,27 +32,11 @@
#include "yank_functions.h"
static QEMUFile *channel_get_input_return_path(void *opaque)
{
QIOChannel *ioc = QIO_CHANNEL(opaque);
return qemu_fopen_channel_output(ioc);
}
static QEMUFile *channel_get_output_return_path(void *opaque)
{
QIOChannel *ioc = QIO_CHANNEL(opaque);
return qemu_fopen_channel_input(ioc);
}
static const QEMUFileOps channel_input_ops = {
.get_return_path = channel_get_input_return_path,
};
static const QEMUFileOps channel_output_ops = {
.get_return_path = channel_get_output_return_path,
};

View File

@ -95,18 +95,6 @@ int qemu_file_shutdown(QEMUFile *f)
return ret;
}
/*
* Result: QEMUFile* for a 'return path' for comms in the opposite direction
* NULL if not available
*/
QEMUFile *qemu_file_get_return_path(QEMUFile *f)
{
if (!f->ops->get_return_path) {
return NULL;
}
return f->ops->get_return_path(f->ioc);
}
bool qemu_file_mode_is_not_valid(const char *mode)
{
if (mode == NULL ||
@ -134,6 +122,16 @@ static QEMUFile *qemu_file_new_impl(QIOChannel *ioc,
return f;
}
/*
* Result: QEMUFile* for a 'return path' for comms in the opposite direction
* NULL if not available
*/
QEMUFile *qemu_file_get_return_path(QEMUFile *f)
{
object_ref(f->ioc);
return qemu_file_new_impl(f->ioc, f->ops, !f->is_writable);
}
QEMUFile *qemu_file_new_output(QIOChannel *ioc, const QEMUFileOps *ops)
{
return qemu_file_new_impl(ioc, ops, true);

View File

@ -55,13 +55,7 @@ typedef size_t (QEMURamSaveFunc)(QEMUFile *f,
size_t size,
uint64_t *bytes_sent);
/*
* Return a QEMUFile for comms in the opposite direction
*/
typedef QEMUFile *(QEMURetPathFunc)(void *opaque);
typedef struct QEMUFileOps {
QEMURetPathFunc *get_return_path;
} QEMUFileOps;
typedef struct QEMUFileHooks {