39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
#pragma once
|
|
|
|
#include "qemu/osdep.h"
|
|
#include "migration/qemu-file.h"
|
|
|
|
#include "io/channel.h"
|
|
#include "qom/object.h"
|
|
|
|
#define QEMU_FILE_RAM_LIMIT (32 * 1024 * 1024)
|
|
|
|
#define TYPE_QIO_CHANNEL_BUFFER_WRITEBACK "qio-channel-buffer-writeback"
|
|
OBJECT_DECLARE_SIMPLE_TYPE(QIOChannelBufferWriteback, QIO_CHANNEL_BUFFER_WRITEBACK)
|
|
|
|
struct QIOChannelBufferWriteback {
|
|
QIOChannel parent;
|
|
|
|
size_t capacity;
|
|
size_t usage;
|
|
size_t offset;
|
|
uint8_t* data;
|
|
|
|
uint8_t* writeback_buf;
|
|
size_t writeback_buf_capacity;
|
|
size_t* writeback_buf_usage;
|
|
|
|
bool internal_allocation;
|
|
};
|
|
|
|
QIOChannelBufferWriteback* qio_channel_buffer_writeback_new(size_t capacity, uint8_t* writeback_buf, size_t writeback_buf_capacity, size_t* writeback_buf_usage);
|
|
|
|
/**
|
|
* qio_channel_buffer_new_external:
|
|
* @buf: the buffer used
|
|
* @capacity: the total capacity of the underlying buffer
|
|
* @usage: The size actually used by the buffer
|
|
*/
|
|
QIOChannelBufferWriteback*
|
|
qio_channel_buffer_writeback_new_external(uint8_t* buf, size_t capacity, size_t usage, uint8_t* writeback_buf, size_t writeback_buf_capacity, size_t* writeback_buf_usage);
|