mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
multifd: Make no compression operations into its own structure
It will be used later. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> --- No comp value needs to be zero.
This commit is contained in:
parent
a2d07731e7
commit
ab7cbb0b9a
5 changed files with 214 additions and 8 deletions
|
@ -25,6 +25,11 @@ int multifd_queue_page(QEMUFile *f, RAMBlock *block, ram_addr_t offset);
|
|||
|
||||
#define MULTIFD_FLAG_SYNC (1 << 0)
|
||||
|
||||
/* We reserve 3 bits for compression methods */
|
||||
#define MULTIFD_FLAG_COMPRESSION_MASK (7 << 1)
|
||||
/* we need to be compatible. Before compression value was 0 */
|
||||
#define MULTIFD_FLAG_NOCOMP (0 << 1)
|
||||
|
||||
/* This value needs to be a multiple of qemu_target_page_size() */
|
||||
#define MULTIFD_PACKET_SIZE (512 * 1024)
|
||||
|
||||
|
@ -96,6 +101,8 @@ typedef struct {
|
|||
uint64_t num_pages;
|
||||
/* syncs main thread and channels */
|
||||
QemuSemaphore sem_sync;
|
||||
/* used for compression methods */
|
||||
void *data;
|
||||
} MultiFDSendParams;
|
||||
|
||||
typedef struct {
|
||||
|
@ -133,7 +140,26 @@ typedef struct {
|
|||
uint64_t num_pages;
|
||||
/* syncs main thread and channels */
|
||||
QemuSemaphore sem_sync;
|
||||
/* used for de-compression methods */
|
||||
void *data;
|
||||
} MultiFDRecvParams;
|
||||
|
||||
typedef struct {
|
||||
/* Setup for sending side */
|
||||
int (*send_setup)(MultiFDSendParams *p, Error **errp);
|
||||
/* Cleanup for sending side */
|
||||
void (*send_cleanup)(MultiFDSendParams *p, Error **errp);
|
||||
/* Prepare the send packet */
|
||||
int (*send_prepare)(MultiFDSendParams *p, uint32_t used, Error **errp);
|
||||
/* Write the send packet */
|
||||
int (*send_write)(MultiFDSendParams *p, uint32_t used, Error **errp);
|
||||
/* Setup for receiving side */
|
||||
int (*recv_setup)(MultiFDRecvParams *p, Error **errp);
|
||||
/* Cleanup for receiving side */
|
||||
void (*recv_cleanup)(MultiFDRecvParams *p);
|
||||
/* Read all pages */
|
||||
int (*recv_pages)(MultiFDRecvParams *p, uint32_t used, Error **errp);
|
||||
} MultiFDMethods;
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue