QTAILQ_HEAD_INITIALIZER(evdi_in_queue);
-static pthread_mutex_t recv_buf_mutex = PTHREAD_MUTEX_INITIALIZER;
+static QemuMutex recv_buf_mutex;
bool send_to_evdi(const uint32_t route, char* data, const uint32_t len)
{
_msg->info.use = size;
_msg->info.index = count;
- pthread_mutex_lock(&recv_buf_mutex);
+ qemu_mutex_lock(&recv_buf_mutex);
QTAILQ_INSERT_TAIL(&evdi_recv_msg_queue, _msg, next);
- pthread_mutex_unlock(&recv_buf_mutex);
+ qemu_mutex_unlock(&recv_buf_mutex);
left -= size;
count ++;
}
- pthread_mutex_lock(&recv_buf_mutex);
+ qemu_mutex_lock(&recv_buf_mutex);
while (!QTAILQ_EMPTY(&evdi_recv_msg_queue))
{
free(msginfo);
}
- pthread_mutex_unlock(&recv_buf_mutex);
+ qemu_mutex_unlock(&recv_buf_mutex);
}
vio_evdi->bh = qemu_bh_new(maru_evdi_bh, vio_evdi);
+ qemu_mutex_init(&recv_buf_mutex);
+
if (vio_evdi->profile) {
epi_init();
}
INFO("destroy evdi device\n");
+ qemu_mutex_destroy(&recv_buf_mutex);
+
if (vio_evdi->bh) {
qemu_bh_delete(vio_evdi->bh);
}