Remove support for non-threaded VNC server
QEMU now has a fundamental requirement for pthreads, so there
is no compelling reason to retain support for the non-threaded
VNC server. Remove the --{enable,disable}-vnc-thread configure
arguments, and all CONFIG_VNC_THREAD conditionals
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
			
			
This commit is contained in:
		
							parent
							
								
									a307beb6e8
								
							
						
					
					
						commit
						2624bab836
					
				
							
								
								
									
										9
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@ -134,7 +134,6 @@ vnc_tls=""
 | 
				
			|||||||
vnc_sasl=""
 | 
					vnc_sasl=""
 | 
				
			||||||
vnc_jpeg=""
 | 
					vnc_jpeg=""
 | 
				
			||||||
vnc_png=""
 | 
					vnc_png=""
 | 
				
			||||||
vnc_thread="no"
 | 
					 | 
				
			||||||
xen=""
 | 
					xen=""
 | 
				
			||||||
xen_ctrl_version=""
 | 
					xen_ctrl_version=""
 | 
				
			||||||
xen_pci_passthrough=""
 | 
					xen_pci_passthrough=""
 | 
				
			||||||
@ -667,10 +666,6 @@ for opt do
 | 
				
			|||||||
  ;;
 | 
					  ;;
 | 
				
			||||||
  --enable-vnc-png) vnc_png="yes"
 | 
					  --enable-vnc-png) vnc_png="yes"
 | 
				
			||||||
  ;;
 | 
					  ;;
 | 
				
			||||||
  --disable-vnc-thread) vnc_thread="no"
 | 
					 | 
				
			||||||
  ;;
 | 
					 | 
				
			||||||
  --enable-vnc-thread) vnc_thread="yes"
 | 
					 | 
				
			||||||
  ;;
 | 
					 | 
				
			||||||
  --disable-slirp) slirp="no"
 | 
					  --disable-slirp) slirp="no"
 | 
				
			||||||
  ;;
 | 
					  ;;
 | 
				
			||||||
  --disable-uuid) uuid="no"
 | 
					  --disable-uuid) uuid="no"
 | 
				
			||||||
@ -3024,7 +3019,6 @@ if test "$vnc" = "yes" ; then
 | 
				
			|||||||
    echo "VNC SASL support  $vnc_sasl"
 | 
					    echo "VNC SASL support  $vnc_sasl"
 | 
				
			||||||
    echo "VNC JPEG support  $vnc_jpeg"
 | 
					    echo "VNC JPEG support  $vnc_jpeg"
 | 
				
			||||||
    echo "VNC PNG support   $vnc_png"
 | 
					    echo "VNC PNG support   $vnc_png"
 | 
				
			||||||
    echo "VNC thread        $vnc_thread"
 | 
					 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
if test -n "$sparc_cpu"; then
 | 
					if test -n "$sparc_cpu"; then
 | 
				
			||||||
    echo "Target Sparc Arch $sparc_cpu"
 | 
					    echo "Target Sparc Arch $sparc_cpu"
 | 
				
			||||||
@ -3200,9 +3194,6 @@ if test "$vnc_png" = "yes" ; then
 | 
				
			|||||||
  echo "CONFIG_VNC_PNG=y" >> $config_host_mak
 | 
					  echo "CONFIG_VNC_PNG=y" >> $config_host_mak
 | 
				
			||||||
  echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak
 | 
					  echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
if test "$vnc_thread" = "yes" ; then
 | 
					 | 
				
			||||||
  echo "CONFIG_VNC_THREAD=y" >> $config_host_mak
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
if test "$fnmatch" = "yes" ; then
 | 
					if test "$fnmatch" = "yes" ; then
 | 
				
			||||||
  echo "CONFIG_FNMATCH=y" >> $config_host_mak
 | 
					  echo "CONFIG_FNMATCH=y" >> $config_host_mak
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
				
			|||||||
@ -4,11 +4,7 @@ vnc-obj-y += vnc-enc-tight.o vnc-palette.o
 | 
				
			|||||||
vnc-obj-y += vnc-enc-zrle.o
 | 
					vnc-obj-y += vnc-enc-zrle.o
 | 
				
			||||||
vnc-obj-$(CONFIG_VNC_TLS) += vnc-tls.o vnc-auth-vencrypt.o
 | 
					vnc-obj-$(CONFIG_VNC_TLS) += vnc-tls.o vnc-auth-vencrypt.o
 | 
				
			||||||
vnc-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
 | 
					vnc-obj-$(CONFIG_VNC_SASL) += vnc-auth-sasl.o
 | 
				
			||||||
ifdef CONFIG_VNC_THREAD
 | 
					vnc-obj-y += vnc-jobs.o
 | 
				
			||||||
vnc-obj-y += vnc-jobs-async.o
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
vnc-obj-y += vnc-jobs-sync.o
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
common-obj-y += keymaps.o
 | 
					common-obj-y += keymaps.o
 | 
				
			||||||
common-obj-$(CONFIG_SPICE) += spice-core.o spice-input.o spice-display.o
 | 
					common-obj-$(CONFIG_SPICE) += spice-core.o spice-input.o spice-display.o
 | 
				
			||||||
 | 
				
			|||||||
@ -1,73 +0,0 @@
 | 
				
			|||||||
/*
 | 
					 | 
				
			||||||
 * QEMU VNC display driver
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
 | 
					 | 
				
			||||||
 * Copyright (C) 2006 Fabrice Bellard
 | 
					 | 
				
			||||||
 * Copyright (C) 2009 Red Hat, Inc
 | 
					 | 
				
			||||||
 * Copyright (C) 2010 Corentin Chary <corentin.chary@gmail.com>
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
					 | 
				
			||||||
 * of this software and associated documentation files (the "Software"), to deal
 | 
					 | 
				
			||||||
 * in the Software without restriction, including without limitation the rights
 | 
					 | 
				
			||||||
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
					 | 
				
			||||||
 * copies of the Software, and to permit persons to whom the Software is
 | 
					 | 
				
			||||||
 * furnished to do so, subject to the following conditions:
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * The above copyright notice and this permission notice shall be included in
 | 
					 | 
				
			||||||
 * all copies or substantial portions of the Software.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
					 | 
				
			||||||
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
					 | 
				
			||||||
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
 | 
					 | 
				
			||||||
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
					 | 
				
			||||||
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
					 | 
				
			||||||
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
					 | 
				
			||||||
 * THE SOFTWARE.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "vnc.h"
 | 
					 | 
				
			||||||
#include "vnc-jobs.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void vnc_jobs_clear(VncState *vs)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void vnc_jobs_join(VncState *vs)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
VncJob *vnc_job_new(VncState *vs)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    vs->job.vs = vs;
 | 
					 | 
				
			||||||
    vs->job.rectangles = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    vnc_write_u8(vs, VNC_MSG_SERVER_FRAMEBUFFER_UPDATE);
 | 
					 | 
				
			||||||
    vnc_write_u8(vs, 0);
 | 
					 | 
				
			||||||
    vs->job.saved_offset = vs->output.offset;
 | 
					 | 
				
			||||||
    vnc_write_u16(vs, 0);
 | 
					 | 
				
			||||||
    return &vs->job;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void vnc_job_push(VncJob *job)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    VncState *vs = job->vs;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    vs->output.buffer[job->saved_offset] = (job->rectangles >> 8) & 0xFF;
 | 
					 | 
				
			||||||
    vs->output.buffer[job->saved_offset + 1] = job->rectangles & 0xFF;
 | 
					 | 
				
			||||||
    vnc_flush(job->vs);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int vnc_job_add_rect(VncJob *job, int x, int y, int w, int h)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    int n;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    n = vnc_send_framebuffer_update(job->vs, x, y, w, h);
 | 
					 | 
				
			||||||
    if (n >= 0)
 | 
					 | 
				
			||||||
        job->rectangles += n;
 | 
					 | 
				
			||||||
    return n;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bool vnc_has_job(VncState *vs)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return false;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -38,51 +38,35 @@ bool vnc_has_job(VncState *vs);
 | 
				
			|||||||
void vnc_jobs_clear(VncState *vs);
 | 
					void vnc_jobs_clear(VncState *vs);
 | 
				
			||||||
void vnc_jobs_join(VncState *vs);
 | 
					void vnc_jobs_join(VncState *vs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void vnc_jobs_consume_buffer(VncState *vs);
 | 
					void vnc_jobs_consume_buffer(VncState *vs);
 | 
				
			||||||
void vnc_start_worker_thread(void);
 | 
					void vnc_start_worker_thread(void);
 | 
				
			||||||
bool vnc_worker_thread_running(void);
 | 
					bool vnc_worker_thread_running(void);
 | 
				
			||||||
void vnc_stop_worker_thread(void);
 | 
					void vnc_stop_worker_thread(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* CONFIG_VNC_THREAD */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Locks */
 | 
					/* Locks */
 | 
				
			||||||
static inline int vnc_trylock_display(VncDisplay *vd)
 | 
					static inline int vnc_trylock_display(VncDisplay *vd)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    return qemu_mutex_trylock(&vd->mutex);
 | 
					    return qemu_mutex_trylock(&vd->mutex);
 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void vnc_lock_display(VncDisplay *vd)
 | 
					static inline void vnc_lock_display(VncDisplay *vd)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    qemu_mutex_lock(&vd->mutex);
 | 
					    qemu_mutex_lock(&vd->mutex);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void vnc_unlock_display(VncDisplay *vd)
 | 
					static inline void vnc_unlock_display(VncDisplay *vd)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    qemu_mutex_unlock(&vd->mutex);
 | 
					    qemu_mutex_unlock(&vd->mutex);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void vnc_lock_output(VncState *vs)
 | 
					static inline void vnc_lock_output(VncState *vs)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    qemu_mutex_lock(&vs->output_mutex);
 | 
					    qemu_mutex_lock(&vs->output_mutex);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void vnc_unlock_output(VncState *vs)
 | 
					static inline void vnc_unlock_output(VncState *vs)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    qemu_mutex_unlock(&vs->output_mutex);
 | 
					    qemu_mutex_unlock(&vs->output_mutex);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* VNC_JOBS_H */
 | 
					#endif /* VNC_JOBS_H */
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										21
									
								
								ui/vnc.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								ui/vnc.c
									
									
									
									
									
								
							@ -526,7 +526,6 @@ static void vnc_desktop_resize(VncState *vs)
 | 
				
			|||||||
    vnc_flush(vs);
 | 
					    vnc_flush(vs);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
static void vnc_abort_display_jobs(VncDisplay *vd)
 | 
					static void vnc_abort_display_jobs(VncDisplay *vd)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    VncState *vs;
 | 
					    VncState *vs;
 | 
				
			||||||
@ -545,11 +544,6 @@ static void vnc_abort_display_jobs(VncDisplay *vd)
 | 
				
			|||||||
        vnc_unlock_output(vs);
 | 
					        vnc_unlock_output(vs);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
static void vnc_abort_display_jobs(VncDisplay *vd)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void vnc_dpy_resize(DisplayState *ds)
 | 
					static void vnc_dpy_resize(DisplayState *ds)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -867,19 +861,12 @@ static int find_and_clear_dirty_height(struct VncState *vs,
 | 
				
			|||||||
    return h;
 | 
					    return h;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
static int vnc_update_client_sync(VncState *vs, int has_dirty)
 | 
					static int vnc_update_client_sync(VncState *vs, int has_dirty)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int ret = vnc_update_client(vs, has_dirty);
 | 
					    int ret = vnc_update_client(vs, has_dirty);
 | 
				
			||||||
    vnc_jobs_join(vs);
 | 
					    vnc_jobs_join(vs);
 | 
				
			||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
static int vnc_update_client_sync(VncState *vs, int has_dirty)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return vnc_update_client(vs, has_dirty);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int vnc_update_client(VncState *vs, int has_dirty)
 | 
					static int vnc_update_client(VncState *vs, int has_dirty)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -1066,11 +1053,9 @@ static void vnc_disconnect_finish(VncState *vs)
 | 
				
			|||||||
        qemu_remove_led_event_handler(vs->led);
 | 
					        qemu_remove_led_event_handler(vs->led);
 | 
				
			||||||
    vnc_unlock_output(vs);
 | 
					    vnc_unlock_output(vs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    qemu_mutex_destroy(&vs->output_mutex);
 | 
					    qemu_mutex_destroy(&vs->output_mutex);
 | 
				
			||||||
    qemu_bh_delete(vs->bh);
 | 
					    qemu_bh_delete(vs->bh);
 | 
				
			||||||
    buffer_free(&vs->jobs_buffer);
 | 
					    buffer_free(&vs->jobs_buffer);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (i = 0; i < VNC_STAT_ROWS; ++i) {
 | 
					    for (i = 0; i < VNC_STAT_ROWS; ++i) {
 | 
				
			||||||
        g_free(vs->lossy_rect[i]);
 | 
					        g_free(vs->lossy_rect[i]);
 | 
				
			||||||
@ -1286,14 +1271,12 @@ static long vnc_client_read_plain(VncState *vs)
 | 
				
			|||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
static void vnc_jobs_bh(void *opaque)
 | 
					static void vnc_jobs_bh(void *opaque)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    VncState *vs = opaque;
 | 
					    VncState *vs = opaque;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    vnc_jobs_consume_buffer(vs);
 | 
					    vnc_jobs_consume_buffer(vs);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * First function called whenever there is more data to be read from
 | 
					 * First function called whenever there is more data to be read from
 | 
				
			||||||
@ -2699,10 +2682,8 @@ static void vnc_connect(VncDisplay *vd, int csock, int skipauth)
 | 
				
			|||||||
    vs->as.fmt = AUD_FMT_S16;
 | 
					    vs->as.fmt = AUD_FMT_S16;
 | 
				
			||||||
    vs->as.endianness = 0;
 | 
					    vs->as.endianness = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    qemu_mutex_init(&vs->output_mutex);
 | 
					    qemu_mutex_init(&vs->output_mutex);
 | 
				
			||||||
    vs->bh = qemu_bh_new(vnc_jobs_bh, vs);
 | 
					    vs->bh = qemu_bh_new(vnc_jobs_bh, vs);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QTAILQ_INSERT_HEAD(&vd->clients, vs, next);
 | 
					    QTAILQ_INSERT_HEAD(&vd->clients, vs, next);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2762,10 +2743,8 @@ void vnc_display_init(DisplayState *ds)
 | 
				
			|||||||
    if (!vs->kbd_layout)
 | 
					    if (!vs->kbd_layout)
 | 
				
			||||||
        exit(1);
 | 
					        exit(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    qemu_mutex_init(&vs->mutex);
 | 
					    qemu_mutex_init(&vs->mutex);
 | 
				
			||||||
    vnc_start_worker_thread();
 | 
					    vnc_start_worker_thread();
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dcl->dpy_copy = vnc_dpy_copy;
 | 
					    dcl->dpy_copy = vnc_dpy_copy;
 | 
				
			||||||
    dcl->dpy_update = vnc_dpy_update;
 | 
					    dcl->dpy_update = vnc_dpy_update;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										17
									
								
								ui/vnc.h
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								ui/vnc.h
									
									
									
									
									
								
							@ -29,9 +29,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "qemu-common.h"
 | 
					#include "qemu-common.h"
 | 
				
			||||||
#include "qemu-queue.h"
 | 
					#include "qemu-queue.h"
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
#include "qemu-thread.h"
 | 
					#include "qemu-thread.h"
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#include "console.h"
 | 
					#include "console.h"
 | 
				
			||||||
#include "monitor.h"
 | 
					#include "monitor.h"
 | 
				
			||||||
#include "audio/audio.h"
 | 
					#include "audio/audio.h"
 | 
				
			||||||
@ -146,9 +144,7 @@ struct VncDisplay
 | 
				
			|||||||
    DisplayState *ds;
 | 
					    DisplayState *ds;
 | 
				
			||||||
    kbd_layout_t *kbd_layout;
 | 
					    kbd_layout_t *kbd_layout;
 | 
				
			||||||
    int lock_key_sync;
 | 
					    int lock_key_sync;
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    QemuMutex mutex;
 | 
					    QemuMutex mutex;
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QEMUCursor *cursor;
 | 
					    QEMUCursor *cursor;
 | 
				
			||||||
    int cursor_msize;
 | 
					    int cursor_msize;
 | 
				
			||||||
@ -216,7 +212,6 @@ typedef struct VncZywrle {
 | 
				
			|||||||
    int buf[VNC_ZRLE_TILE_WIDTH * VNC_ZRLE_TILE_HEIGHT];
 | 
					    int buf[VNC_ZRLE_TILE_WIDTH * VNC_ZRLE_TILE_HEIGHT];
 | 
				
			||||||
} VncZywrle;
 | 
					} VncZywrle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
struct VncRect
 | 
					struct VncRect
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int x;
 | 
					    int x;
 | 
				
			||||||
@ -238,14 +233,6 @@ struct VncJob
 | 
				
			|||||||
    QLIST_HEAD(, VncRectEntry) rectangles;
 | 
					    QLIST_HEAD(, VncRectEntry) rectangles;
 | 
				
			||||||
    QTAILQ_ENTRY(VncJob) next;
 | 
					    QTAILQ_ENTRY(VncJob) next;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
struct VncJob
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    VncState *vs;
 | 
					 | 
				
			||||||
    int rectangles;
 | 
					 | 
				
			||||||
    size_t saved_offset;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct VncState
 | 
					struct VncState
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -300,13 +287,9 @@ struct VncState
 | 
				
			|||||||
    QEMUPutLEDEntry *led;
 | 
					    QEMUPutLEDEntry *led;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool abort;
 | 
					    bool abort;
 | 
				
			||||||
#ifndef CONFIG_VNC_THREAD
 | 
					 | 
				
			||||||
    VncJob job;
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
    QemuMutex output_mutex;
 | 
					    QemuMutex output_mutex;
 | 
				
			||||||
    QEMUBH *bh;
 | 
					    QEMUBH *bh;
 | 
				
			||||||
    Buffer jobs_buffer;
 | 
					    Buffer jobs_buffer;
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Encoding specific, if you add something here, don't forget to
 | 
					    /* Encoding specific, if you add something here, don't forget to
 | 
				
			||||||
     *  update vnc_async_encoding_start()
 | 
					     *  update vnc_async_encoding_start()
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user