vigs: fix compilation errors
authorSeokYeon Hwang <syeon.hwang@samsung.com>
Mon, 21 Apr 2014 07:03:05 +0000 (16:03 +0900)
committerSeokYeon Hwang <syeon.hwang@samsung.com>
Mon, 21 Apr 2014 07:03:05 +0000 (16:03 +0900)
1. Some qemu function prototype modification.
graphic_console_init()
qemu_thread_create()

2. A "work_queue.c" is moved to "vigs".

Change-Id: I066734b08bb8ad59aeb5afb67049065048bcdd63
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
hw/Makefile.objs
hw/vigs/Makefile.objs
hw/vigs/vigs_device.c
hw/vigs/vigs_gl_backend.c
hw/vigs/work_queue.c [new file with mode: 0644]
hw/vigs/work_queue.h [new file with mode: 0644]
hw/work_queue.c [deleted file]
hw/work_queue.h [deleted file]
hw/yagl/yagl_thread.c
hw/yagl/yagl_thread.h
tizen/src/hw/maru_board.c

index fce7734787a0c62e745d4abad3d3830e89dc069d..a6ac525e0e50ce90dcd471bd070d097aecf3d3ba 100644 (file)
@@ -34,4 +34,3 @@ devices-dirs-$(CONFIG_BUILD_VIGS) += vigs/
 devices-dirs-y += core/
 common-obj-y += $(devices-dirs-y)
 obj-y += $(devices-dirs-y)
-obj-y += work_queue.o
index d2c4353d9fa124aac3103ba4c286c602f003a9b5..ab8ef51f393059749ec11dae8064ea4d1269610b 100644 (file)
@@ -14,6 +14,7 @@ obj-y += vigs_fenceman.o
 obj-y += vigs_gl_pool.o
 obj-y += vigs_gl_backend.o
 obj-y += vigs_sw_backend.o
+obj-y += work_queue.o
 # GL GLX backend
 ifdef CONFIG_LINUX
 obj-y += vigs_gl_backend_glx.o
index 3f66f1b40bbf00fb9bae8ce160d04c49c593b3b2..3769bade7aa9e8ca50bff53337d316b79ad53d17 100644 (file)
@@ -340,7 +340,7 @@ static int vigs_device_init(PCIDevice *dev)
 
     s->fence_ack_bh = qemu_bh_new(vigs_fence_ack_bh, s);
 
-    s->con = graphic_console_init(DEVICE(dev), &vigs_hw_ops, s);
+    s->con = graphic_console_init(DEVICE(dev), 0, &vigs_hw_ops, s);
 
     if (!s->con) {
         goto fail;
index 0e16603ae4c5e1eabd29a62c218cad9aa0a19813..720e6186ff27362d2bc79403355d380c4102c907 100644 (file)
@@ -1587,7 +1587,7 @@ bool vigs_gl_backend_init(struct vigs_gl_backend *gl_backend)
     vigs_vector_init(&gl_backend->v1, 0);
     vigs_vector_init(&gl_backend->v2, 0);
 
-    gl_backend->read_pixels_queue = work_queue_create();
+    gl_backend->read_pixels_queue = work_queue_create("vigs_work_queue");
 
     return true;
 
diff --git a/hw/vigs/work_queue.c b/hw/vigs/work_queue.c
new file mode 100644 (file)
index 0000000..1bc53fa
--- /dev/null
@@ -0,0 +1,107 @@
+#include "work_queue.h"
+
+static void *work_queue_run(void *arg)
+{
+    struct work_queue *wq = arg;
+
+    qemu_mutex_lock(&wq->mutex);
+
+    while (true) {
+        struct work_queue_item *wq_item;
+
+        while (wq->num_items == 0) {
+            if (wq->destroying) {
+                goto out;
+            }
+
+            qemu_cond_signal(&wq->wait_cond);
+            qemu_cond_wait(&wq->add_cond, &wq->mutex);
+        }
+
+        wq_item = QTAILQ_FIRST(&wq->items);
+        QTAILQ_REMOVE(&wq->items, wq_item, entry);
+
+        qemu_mutex_unlock(&wq->mutex);
+
+        wq_item->func(wq_item);
+
+        qemu_mutex_lock(&wq->mutex);
+
+        --wq->num_items;
+    }
+
+out:
+    qemu_mutex_unlock(&wq->mutex);
+
+    return NULL;
+}
+
+void work_queue_item_init(struct work_queue_item *wq_item,
+                          work_queue_func func)
+{
+    memset(wq_item, 0, sizeof(*wq_item));
+
+    wq_item->func = func;
+}
+
+struct work_queue *work_queue_create(const char *name)
+{
+    struct work_queue *wq;
+
+    wq = g_malloc0(sizeof(*wq));
+
+    qemu_mutex_init(&wq->mutex);
+    qemu_cond_init(&wq->add_cond);
+    qemu_cond_init(&wq->wait_cond);
+
+    QTAILQ_INIT(&wq->items);
+
+    qemu_thread_create(&wq->thread, name,
+                       work_queue_run,
+                       wq,
+                       QEMU_THREAD_JOINABLE);
+
+    return wq;
+}
+
+void work_queue_add_item(struct work_queue *wq,
+                         struct work_queue_item *wq_item)
+{
+    qemu_mutex_lock(&wq->mutex);
+
+    QTAILQ_INSERT_TAIL(&wq->items, wq_item, entry);
+    ++wq->num_items;
+
+    qemu_mutex_unlock(&wq->mutex);
+
+    qemu_cond_signal(&wq->add_cond);
+}
+
+void work_queue_wait(struct work_queue *wq)
+{
+    if (wq->num_items == 0) {
+        return;
+    }
+
+    qemu_mutex_lock(&wq->mutex);
+
+    while (wq->num_items > 0) {
+        qemu_cond_wait(&wq->wait_cond, &wq->mutex);
+    }
+
+    qemu_mutex_unlock(&wq->mutex);
+}
+
+void work_queue_destroy(struct work_queue *wq)
+{
+    wq->destroying = true;
+    qemu_cond_signal(&wq->add_cond);
+
+    qemu_thread_join(&wq->thread);
+
+    qemu_cond_destroy(&wq->wait_cond);
+    qemu_cond_destroy(&wq->add_cond);
+    qemu_mutex_destroy(&wq->mutex);
+
+    g_free(wq);
+}
diff --git a/hw/vigs/work_queue.h b/hw/vigs/work_queue.h
new file mode 100644 (file)
index 0000000..af27ee2
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef _QEMU_WORK_QUEUE_H
+#define _QEMU_WORK_QUEUE_H
+
+#include "qemu-common.h"
+#include "qemu/queue.h"
+#include "qemu/thread.h"
+
+struct work_queue_item;
+
+typedef void (*work_queue_func)(struct work_queue_item */*wq_item*/);
+
+struct work_queue_item
+{
+    QTAILQ_ENTRY(work_queue_item) entry;
+
+    work_queue_func func;
+};
+
+struct work_queue
+{
+    QemuThread thread;
+    QemuMutex mutex;
+    QemuCond add_cond;
+    QemuCond wait_cond;
+
+    QTAILQ_HEAD(, work_queue_item) items;
+
+    int num_items;
+
+    bool destroying;
+};
+
+void work_queue_item_init(struct work_queue_item *wq_item,
+                          work_queue_func func);
+
+struct work_queue *work_queue_create(const char *name);
+
+void work_queue_add_item(struct work_queue *wq,
+                         struct work_queue_item *wq_item);
+
+void work_queue_wait(struct work_queue *wq);
+
+void work_queue_destroy(struct work_queue *wq);
+
+#endif
diff --git a/hw/work_queue.c b/hw/work_queue.c
deleted file mode 100644 (file)
index af5b8a5..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#include "work_queue.h"
-
-static void *work_queue_run(void *arg)
-{
-    struct work_queue *wq = arg;
-
-    qemu_mutex_lock(&wq->mutex);
-
-    while (true) {
-        struct work_queue_item *wq_item;
-
-        while (wq->num_items == 0) {
-            if (wq->destroying) {
-                goto out;
-            }
-
-            qemu_cond_signal(&wq->wait_cond);
-            qemu_cond_wait(&wq->add_cond, &wq->mutex);
-        }
-
-        wq_item = QTAILQ_FIRST(&wq->items);
-        QTAILQ_REMOVE(&wq->items, wq_item, entry);
-
-        qemu_mutex_unlock(&wq->mutex);
-
-        wq_item->func(wq_item);
-
-        qemu_mutex_lock(&wq->mutex);
-
-        --wq->num_items;
-    }
-
-out:
-    qemu_mutex_unlock(&wq->mutex);
-
-    return NULL;
-}
-
-void work_queue_item_init(struct work_queue_item *wq_item,
-                          work_queue_func func)
-{
-    memset(wq_item, 0, sizeof(*wq_item));
-
-    wq_item->func = func;
-}
-
-struct work_queue *work_queue_create(void)
-{
-    struct work_queue *wq;
-
-    wq = g_malloc0(sizeof(*wq));
-
-    qemu_mutex_init(&wq->mutex);
-    qemu_cond_init(&wq->add_cond);
-    qemu_cond_init(&wq->wait_cond);
-
-    QTAILQ_INIT(&wq->items);
-
-    qemu_thread_create(&wq->thread,
-                       work_queue_run,
-                       wq,
-                       QEMU_THREAD_JOINABLE);
-
-    return wq;
-}
-
-void work_queue_add_item(struct work_queue *wq,
-                         struct work_queue_item *wq_item)
-{
-    qemu_mutex_lock(&wq->mutex);
-
-    QTAILQ_INSERT_TAIL(&wq->items, wq_item, entry);
-    ++wq->num_items;
-
-    qemu_mutex_unlock(&wq->mutex);
-
-    qemu_cond_signal(&wq->add_cond);
-}
-
-void work_queue_wait(struct work_queue *wq)
-{
-    if (wq->num_items == 0) {
-        return;
-    }
-
-    qemu_mutex_lock(&wq->mutex);
-
-    while (wq->num_items > 0) {
-        qemu_cond_wait(&wq->wait_cond, &wq->mutex);
-    }
-
-    qemu_mutex_unlock(&wq->mutex);
-}
-
-void work_queue_destroy(struct work_queue *wq)
-{
-    wq->destroying = true;
-    qemu_cond_signal(&wq->add_cond);
-
-    qemu_thread_join(&wq->thread);
-
-    qemu_cond_destroy(&wq->wait_cond);
-    qemu_cond_destroy(&wq->add_cond);
-    qemu_mutex_destroy(&wq->mutex);
-
-    g_free(wq);
-}
diff --git a/hw/work_queue.h b/hw/work_queue.h
deleted file mode 100644 (file)
index a08efca..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _QEMU_WORK_QUEUE_H
-#define _QEMU_WORK_QUEUE_H
-
-#include "qemu-common.h"
-#include "qemu/queue.h"
-#include "qemu/thread.h"
-
-struct work_queue_item;
-
-typedef void (*work_queue_func)(struct work_queue_item */*wq_item*/);
-
-struct work_queue_item
-{
-    QTAILQ_ENTRY(work_queue_item) entry;
-
-    work_queue_func func;
-};
-
-struct work_queue
-{
-    QemuThread thread;
-    QemuMutex mutex;
-    QemuCond add_cond;
-    QemuCond wait_cond;
-
-    QTAILQ_HEAD(, work_queue_item) items;
-
-    int num_items;
-
-    bool destroying;
-};
-
-void work_queue_item_init(struct work_queue_item *wq_item,
-                          work_queue_func func);
-
-struct work_queue *work_queue_create(void);
-
-void work_queue_add_item(struct work_queue *wq,
-                         struct work_queue_item *wq_item);
-
-void work_queue_wait(struct work_queue *wq);
-
-void work_queue_destroy(struct work_queue *wq);
-
-#endif
index ff3206a4b00d26ab4d80efd9060aca16e537dbfe..729e019d955aafe79bf85100385c651bfc3f6857 100644 (file)
@@ -35,7 +35,6 @@
 #include "yagl_stats.h"
 #include "yagl_transport.h"
 #include "yagl_object_map.h"
-#include "work_queue.h"
 #include "winsys.h"
 #include "sysemu/kvm.h"
 #include "sysemu/hax.h"
index 21cfc0c57d42f91eecba4e5eb11fa3f7412b257f..928c9051673cf0be2665dcda0ad1e61493fb93c8 100644 (file)
@@ -33,7 +33,7 @@
 #include "yagl_types.h"
 #include "yagl_event.h"
 #include "yagl_tls.h"
-#include "work_queue.h"
+#include "vigs/work_queue.h"
 #include "qemu/queue.h"
 #include "qemu/thread.h"
 
index 7635aaeff9fcf67f6ac05a5988af3a40ad868610..9fb64cae7c1aed0f244117100356db7494e6e21b 100644 (file)
@@ -75,7 +75,7 @@
 #include <X11/Xlib.h>
 #endif
 #include "vigs/vigs_device.h"
-#include "work_queue.h"
+#include "vigs/work_queue.h"
 extern int enable_yagl;
 extern const char *yagl_backend;
 extern int enable_vigs;