mirror of https://github.com/xemu-project/xemu.git
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:
parent
ec2135eec8
commit
02bdbe172d
|
@ -32,27 +32,11 @@
|
||||||
#include "yank_functions.h"
|
#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 = {
|
static const QEMUFileOps channel_input_ops = {
|
||||||
.get_return_path = channel_get_input_return_path,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const QEMUFileOps channel_output_ops = {
|
static const QEMUFileOps channel_output_ops = {
|
||||||
.get_return_path = channel_get_output_return_path,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -95,18 +95,6 @@ int qemu_file_shutdown(QEMUFile *f)
|
||||||
return ret;
|
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)
|
bool qemu_file_mode_is_not_valid(const char *mode)
|
||||||
{
|
{
|
||||||
if (mode == NULL ||
|
if (mode == NULL ||
|
||||||
|
@ -134,6 +122,16 @@ static QEMUFile *qemu_file_new_impl(QIOChannel *ioc,
|
||||||
return f;
|
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)
|
QEMUFile *qemu_file_new_output(QIOChannel *ioc, const QEMUFileOps *ops)
|
||||||
{
|
{
|
||||||
return qemu_file_new_impl(ioc, ops, true);
|
return qemu_file_new_impl(ioc, ops, true);
|
||||||
|
|
|
@ -55,13 +55,7 @@ typedef size_t (QEMURamSaveFunc)(QEMUFile *f,
|
||||||
size_t size,
|
size_t size,
|
||||||
uint64_t *bytes_sent);
|
uint64_t *bytes_sent);
|
||||||
|
|
||||||
/*
|
|
||||||
* Return a QEMUFile for comms in the opposite direction
|
|
||||||
*/
|
|
||||||
typedef QEMUFile *(QEMURetPathFunc)(void *opaque);
|
|
||||||
|
|
||||||
typedef struct QEMUFileOps {
|
typedef struct QEMUFileOps {
|
||||||
QEMURetPathFunc *get_return_path;
|
|
||||||
} QEMUFileOps;
|
} QEMUFileOps;
|
||||||
|
|
||||||
typedef struct QEMUFileHooks {
|
typedef struct QEMUFileHooks {
|
||||||
|
|
Loading…
Reference in New Issue