From: Marc-André Lureau <marcandre.lureau@xxxxxxxxx> --- server/red_record_qxl.c | 35 ++++++++++++++++++++++++++++------- server/red_record_qxl.h | 18 +++--------------- server/red_worker.c | 32 +++++--------------------------- 3 files changed, 36 insertions(+), 49 deletions(-) diff --git a/server/red_record_qxl.c b/server/red_record_qxl.c index a72a200..5c27311 100644 --- a/server/red_record_qxl.c +++ b/server/red_record_qxl.c @@ -659,8 +659,8 @@ static void red_record_compat_drawable(FILE *fd, RedMemSlotInfo *slots, int grou }; } -void red_record_drawable(FILE *fd, RedMemSlotInfo *slots, int group_id, - QXLPHYSICAL addr, uint32_t flags) +static void red_record_drawable(FILE *fd, RedMemSlotInfo *slots, int group_id, + QXLPHYSICAL addr, uint32_t flags) { fprintf(fd, "drawable\n"); if (flags & QXL_COMMAND_FLAG_COMPAT) { @@ -670,8 +670,8 @@ void red_record_drawable(FILE *fd, RedMemSlotInfo *slots, int group_id, } } -void red_record_update_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id, - QXLPHYSICAL addr) +static void red_record_update_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id, + QXLPHYSICAL addr) { QXLUpdateCmd *qxl; int error; @@ -685,8 +685,8 @@ void red_record_update_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id, fprintf(fd, "surface_id %d\n", qxl->surface_id); } -void red_record_message(FILE *fd, RedMemSlotInfo *slots, int group_id, - QXLPHYSICAL addr) +static void red_record_message(FILE *fd, RedMemSlotInfo *slots, int group_id, + QXLPHYSICAL addr) { QXLMessage *qxl; int error; @@ -702,7 +702,7 @@ void red_record_message(FILE *fd, RedMemSlotInfo *slots, int group_id, write_binary(fd, "message", strlen((char*)qxl->data), (uint8_t*)qxl->data); } -void red_record_surface_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id, +static void red_record_surface_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id, QXLPHYSICAL addr) { QXLSurfaceCmd *qxl; @@ -804,3 +804,24 @@ void red_record_event(FILE *fd, int what, uint32_t type, unsigned long ts) // (that can be up to VGA_FRAMEBUFFER large) fprintf(fd, "event %d %d %u %lu\n", counter++, what, type, ts); } + +void red_record_qxl_command(FILE *fd, RedMemSlotInfo *slots, + QXLCommandExt ext_cmd, unsigned long ts) +{ + red_record_event(fd, 0, ext_cmd.cmd.type, ts); + + switch (ext_cmd.cmd.type) { + case QXL_CMD_DRAW: + red_record_drawable(fd, slots, ext_cmd.group_id, ext_cmd.cmd.data, ext_cmd.flags); + break; + case QXL_CMD_UPDATE: + red_record_update_cmd(fd, slots, ext_cmd.group_id, ext_cmd.cmd.data); + break; + case QXL_CMD_MESSAGE: + red_record_message(fd, slots, ext_cmd.group_id, ext_cmd.cmd.data); + break; + case QXL_CMD_SURFACE: + red_record_surface_cmd(fd, slots, ext_cmd.group_id, ext_cmd.cmd.data); + break; + } +} diff --git a/server/red_record_qxl.h b/server/red_record_qxl.h index f7dcdc0..b737db8 100644 --- a/server/red_record_qxl.h +++ b/server/red_record_qxl.h @@ -23,24 +23,12 @@ #include "red_common.h" #include "red_memslots.h" -void red_record_drawable(FILE *fd, RedMemSlotInfo *slots, int group_id, - QXLPHYSICAL addr, uint32_t flags); - -void red_record_update_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id, - QXLPHYSICAL addr); - -void red_record_message(FILE *fd, RedMemSlotInfo *slots, int group_id, - QXLPHYSICAL addr); - -void red_record_surface_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id, - QXLPHYSICAL addr); - -void red_record_cursor_cmd(FILE *fd, RedMemSlotInfo *slots, int group_id, - QXLPHYSICAL addr); - void red_record_dev_input_primary_surface_create( FILE *fd, QXLDevSurfaceCreate *surface, uint8_t *line_0); void red_record_event(FILE *fd, int what, uint32_t type, unsigned long ts); +void red_record_qxl_command(FILE *fd, RedMemSlotInfo *slots, + QXLCommandExt ext_cmd, unsigned long ts); + #endif diff --git a/server/red_worker.c b/server/red_worker.c index 98a39dd..b47472a 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -5019,30 +5019,6 @@ static RedDrawable *red_drawable_new(void) return red; } -static void red_record_command(RedWorker *worker, QXLCommandExt ext_cmd) -{ - red_record_event(worker->record_fd, 0, ext_cmd.cmd.type, stat_now()); - - switch (ext_cmd.cmd.type) { - case QXL_CMD_DRAW: - red_record_drawable(worker->record_fd, &worker->mem_slots, ext_cmd.group_id, - ext_cmd.cmd.data, ext_cmd.flags); - break; - case QXL_CMD_UPDATE: - red_record_update_cmd(worker->record_fd, &worker->mem_slots, ext_cmd.group_id, - ext_cmd.cmd.data); - break; - case QXL_CMD_MESSAGE: - red_record_message(worker->record_fd, &worker->mem_slots, ext_cmd.group_id, - ext_cmd.cmd.data); - break; - case QXL_CMD_SURFACE: - red_record_surface_cmd(worker->record_fd, &worker->mem_slots, ext_cmd.group_id, - ext_cmd.cmd.data); - break; - } -} - static int red_process_commands(RedWorker *worker, uint32_t max_pipe_size, int *ring_is_empty) { QXLCommandExt ext_cmd; @@ -5073,9 +5049,11 @@ static int red_process_commands(RedWorker *worker, uint32_t max_pipe_size, int * } continue; } - if (worker->record_fd) { - red_record_command(worker, ext_cmd); - } + + if (worker->record_fd) + red_record_qxl_command(worker->record_fd, &worker->mem_slots, ext_cmd, + stat_now()); + stat_inc_counter(worker->command_counter, 1); worker->repoll_cmd_ring = 0; switch (ext_cmd.cmd.type) { -- 2.4.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel