mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 02:03:56 -06:00
util: pull Buffer code out of VNC module
The Buffer code in the VNC server is useful for the IO channel code, so pull it out into a shared module, QIOBuffer. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
10817bf09d
commit
88c5f205fa
6 changed files with 191 additions and 58 deletions
43
ui/vnc.c
43
ui/vnc.c
|
@ -647,49 +647,6 @@ void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h,
|
|||
vnc_write_s32(vs, encoding);
|
||||
}
|
||||
|
||||
void buffer_reserve(Buffer *buffer, size_t len)
|
||||
{
|
||||
if ((buffer->capacity - buffer->offset) < len) {
|
||||
buffer->capacity += (len + 1024);
|
||||
buffer->buffer = g_realloc(buffer->buffer, buffer->capacity);
|
||||
}
|
||||
}
|
||||
|
||||
static int buffer_empty(Buffer *buffer)
|
||||
{
|
||||
return buffer->offset == 0;
|
||||
}
|
||||
|
||||
uint8_t *buffer_end(Buffer *buffer)
|
||||
{
|
||||
return buffer->buffer + buffer->offset;
|
||||
}
|
||||
|
||||
void buffer_reset(Buffer *buffer)
|
||||
{
|
||||
buffer->offset = 0;
|
||||
}
|
||||
|
||||
void buffer_free(Buffer *buffer)
|
||||
{
|
||||
g_free(buffer->buffer);
|
||||
buffer->offset = 0;
|
||||
buffer->capacity = 0;
|
||||
buffer->buffer = NULL;
|
||||
}
|
||||
|
||||
void buffer_append(Buffer *buffer, const void *data, size_t len)
|
||||
{
|
||||
memcpy(buffer->buffer + buffer->offset, data, len);
|
||||
buffer->offset += len;
|
||||
}
|
||||
|
||||
void buffer_advance(Buffer *buf, size_t len)
|
||||
{
|
||||
memmove(buf->buffer, buf->buffer + len,
|
||||
(buf->offset - len));
|
||||
buf->offset -= len;
|
||||
}
|
||||
|
||||
static void vnc_desktop_resize(VncState *vs)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue