migration: delete QEMUFile buffer implementation

The qemu_bufopen() method is no longer used, so the memory
buffer based QEMUFile backend can be deleted entirely.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-Id: <1461751518-12128-20-git-send-email-berrange@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
This commit is contained in:
Daniel P. Berrange 2016-04-27 11:05:09 +01:00 committed by Amit Shah
parent 8925839f00
commit 8b7c5c0f52
2 changed files with 0 additions and 102 deletions

View File

@ -140,7 +140,6 @@ QEMUFile *qemu_fopen_socket(int fd, const char *mode);
QEMUFile *qemu_fopen_channel_input(QIOChannel *ioc);
QEMUFile *qemu_fopen_channel_output(QIOChannel *ioc);
QEMUFile *qemu_popen_cmd(const char *command, const char *mode);
QEMUFile *qemu_bufopen(const char *mode, QEMUSizedBuffer *input);
void qemu_file_set_hooks(QEMUFile *f, const QEMUFileHooks *hooks);
int qemu_get_fd(QEMUFile *f);
int qemu_fclose(QEMUFile *f);
@ -166,11 +165,6 @@ ssize_t qsb_write_at(QEMUSizedBuffer *qsb, const uint8_t *buf,
off_t pos, size_t count);
/*
* For use on files opened with qemu_bufopen
*/
const QEMUSizedBuffer *qemu_buf_get(QEMUFile *f);
static inline void qemu_put_ubyte(QEMUFile *f, unsigned int v)
{
qemu_put_byte(f, (int)v);

View File

@ -366,99 +366,3 @@ ssize_t qsb_write_at(QEMUSizedBuffer *qsb, const uint8_t *source,
return count;
}
typedef struct QEMUBuffer {
QEMUSizedBuffer *qsb;
QEMUFile *file;
bool qsb_allocated;
} QEMUBuffer;
static ssize_t buf_get_buffer(void *opaque, uint8_t *buf, int64_t pos,
size_t size)
{
QEMUBuffer *s = opaque;
ssize_t len = qsb_get_length(s->qsb) - pos;
if (len <= 0) {
return 0;
}
if (len > size) {
len = size;
}
return qsb_get_buffer(s->qsb, pos, len, buf);
}
static ssize_t buf_put_buffer(void *opaque, const uint8_t *buf,
int64_t pos, size_t size)
{
QEMUBuffer *s = opaque;
return qsb_write_at(s->qsb, buf, pos, size);
}
static int buf_close(void *opaque)
{
QEMUBuffer *s = opaque;
if (s->qsb_allocated) {
qsb_free(s->qsb);
}
g_free(s);
return 0;
}
const QEMUSizedBuffer *qemu_buf_get(QEMUFile *f)
{
QEMUBuffer *p;
qemu_fflush(f);
p = f->opaque;
return p->qsb;
}
static const QEMUFileOps buf_read_ops = {
.get_buffer = buf_get_buffer,
.close = buf_close,
};
static const QEMUFileOps buf_write_ops = {
.put_buffer = buf_put_buffer,
.close = buf_close,
};
QEMUFile *qemu_bufopen(const char *mode, QEMUSizedBuffer *input)
{
QEMUBuffer *s;
if (mode == NULL || (mode[0] != 'r' && mode[0] != 'w') ||
mode[1] != '\0') {
error_report("qemu_bufopen: Argument validity check failed");
return NULL;
}
s = g_new0(QEMUBuffer, 1);
s->qsb = input;
if (s->qsb == NULL) {
s->qsb = qsb_create(NULL, 0);
s->qsb_allocated = true;
}
if (!s->qsb) {
g_free(s);
error_report("qemu_bufopen: qsb_create failed");
return NULL;
}
if (mode[0] == 'r') {
s->file = qemu_fopen_ops(s, &buf_read_ops);
} else {
s->file = qemu_fopen_ops(s, &buf_write_ops);
}
return s->file;
}