Lines Matching refs:job

84     VncJob *job = g_new0(VncJob, 1);  in vnc_job_new()  local
87 job->vs = vs; in vnc_job_new()
89 QLIST_INIT(&job->rectangles); in vnc_job_new()
91 return job; in vnc_job_new()
94 int vnc_job_add_rect(VncJob *job, int x, int y, int w, int h) in vnc_job_add_rect() argument
98 trace_vnc_job_add_rect(job->vs, job, x, y, w, h); in vnc_job_add_rect()
106 QLIST_INSERT_HEAD(&job->rectangles, entry, next); in vnc_job_add_rect()
111 void vnc_job_push(VncJob *job) in vnc_job_push() argument
114 if (queue->exit || QLIST_EMPTY(&job->rectangles)) { in vnc_job_push()
115 g_free(job); in vnc_job_push()
117 QTAILQ_INSERT_TAIL(&queue->jobs, job, next); in vnc_job_push()
125 VncJob *job; in vnc_has_job_locked() local
127 QTAILQ_FOREACH(job, &queue->jobs, next) { in vnc_has_job_locked()
128 if (job->vs == vs || !vs) { in vnc_has_job_locked()
210 static bool vnc_worker_clamp_rect(VncState *vs, VncJob *job, VncRect *rect) in vnc_worker_clamp_rect() argument
212 trace_vnc_job_clamp_rect(vs, job, rect->x, rect->y, rect->w, rect->h); in vnc_worker_clamp_rect()
230 trace_vnc_job_clamped_rect(vs, job, rect->x, rect->y, rect->w, rect->h); in vnc_worker_clamp_rect()
234 trace_vnc_job_discard_rect(vs, job, rect->x, rect->y, rect->w, rect->h); in vnc_worker_clamp_rect()
240 VncJob *job; in vnc_worker_thread_loop() local
251 job = QTAILQ_FIRST(&queue->jobs); in vnc_worker_thread_loop()
258 assert(job->vs->magic == VNC_MAGIC); in vnc_worker_thread_loop()
260 vnc_lock_output(job->vs); in vnc_worker_thread_loop()
261 if (job->vs->ioc == NULL || job->vs->abort == true) { in vnc_worker_thread_loop()
262 vnc_unlock_output(job->vs); in vnc_worker_thread_loop()
265 if (buffer_empty(&job->vs->output)) { in vnc_worker_thread_loop()
271 buffer_move_empty(&vs.output, &job->vs->output); in vnc_worker_thread_loop()
273 vnc_unlock_output(job->vs); in vnc_worker_thread_loop()
276 vnc_async_encoding_start(job->vs, &vs); in vnc_worker_thread_loop()
286 vnc_lock_display(job->vs->vd); in vnc_worker_thread_loop()
287 QLIST_FOREACH_SAFE(entry, &job->rectangles, next, tmp) { in vnc_worker_thread_loop()
290 if (job->vs->ioc == NULL) { in vnc_worker_thread_loop()
291 vnc_unlock_display(job->vs->vd); in vnc_worker_thread_loop()
293 vnc_async_encoding_end(job->vs, &vs); in vnc_worker_thread_loop()
297 if (vnc_worker_clamp_rect(&vs, job, &entry->rect)) { in vnc_worker_thread_loop()
307 trace_vnc_job_nrects(&vs, job, n_rectangles); in vnc_worker_thread_loop()
308 vnc_unlock_display(job->vs->vd); in vnc_worker_thread_loop()
314 vnc_lock_output(job->vs); in vnc_worker_thread_loop()
315 if (job->vs->ioc != NULL) { in vnc_worker_thread_loop()
316 buffer_move(&job->vs->jobs_buffer, &vs.output); in vnc_worker_thread_loop()
318 vnc_async_encoding_end(job->vs, &vs); in vnc_worker_thread_loop()
320 qemu_bh_schedule(job->vs->bh); in vnc_worker_thread_loop()
324 vnc_async_encoding_end(job->vs, &vs); in vnc_worker_thread_loop()
326 vnc_unlock_output(job->vs); in vnc_worker_thread_loop()
330 QTAILQ_REMOVE(&queue->jobs, job, next); in vnc_worker_thread_loop()
333 g_free(job); in vnc_worker_thread_loop()