]> xenbits.xensource.com Git - qemu-xen-unstable.git/commitdiff
qemu's audio subdirectory contains a copy of BSD's sys-queue.h, which
authorIan Jackson <iwj@mariner.uk.xensource.com>
Wed, 13 Feb 2008 16:17:54 +0000 (16:17 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Mon, 12 May 2008 11:16:23 +0000 (12:16 +0100)
defines a bunch of LIST_ macros.  This makes it difficult to build a
program made partly out of qemu and partly out of the Linux kernel,
since Linux has a different set of LIST_ macros.  It might also cause
trouble when mixing with BSD-derived code.

Under the circumstances it's probably best to rename the versions in
qemu.  The attached patch does this.

audio/audio.c
audio/audio.h
audio/audio_int.h
audio/audio_template.h
audio/sys-queue.h

index 2bea53efa8679dbf9885e9f2ed4f46557133db31..2ccef58bf16e62bda1875912595c5158a0c2481a 100644 (file)
@@ -793,8 +793,8 @@ static void audio_detach_capture (HWVoiceOut *hw)
             sw->rate = NULL;
         }
 
-        LIST_REMOVE (sw, entries);
-        LIST_REMOVE (sc, entries);
+        QEMU_LIST_REMOVE (sw, entries);
+        QEMU_LIST_REMOVE (sc, entries);
         qemu_free (sc);
         if (was_active) {
             /* We have removed soft voice from the capture:
@@ -837,8 +837,8 @@ static int audio_attach_capture (AudioState *s, HWVoiceOut *hw)
             qemu_free (sw);
             return -1;
         }
-        LIST_INSERT_HEAD (&hw_cap->sw_head, sw, entries);
-        LIST_INSERT_HEAD (&hw->cap_head, sc, entries);
+        QEMU_LIST_INSERT_HEAD (&hw_cap->sw_head, sw, entries);
+        QEMU_LIST_INSERT_HEAD (&hw->cap_head, sc, entries);
 #ifdef DEBUG_CAPTURE
         asprintf (&sw->name, "for %p %d,%d,%d",
                   hw, sw->info.freq, sw->info.bits, sw->info.nchannels);
@@ -1706,12 +1706,12 @@ void AUD_register_card (AudioState *s, const char *name, QEMUSoundCard *card)
     card->audio = s;
     card->name = qemu_strdup (name);
     memset (&card->entries, 0, sizeof (card->entries));
-    LIST_INSERT_HEAD (&s->card_head, card, entries);
+    QEMU_LIST_INSERT_HEAD (&s->card_head, card, entries);
 }
 
 void AUD_remove_card (QEMUSoundCard *card)
 {
-    LIST_REMOVE (card, entries);
+    QEMU_LIST_REMOVE (card, entries);
     card->audio = NULL;
     qemu_free (card->name);
 }
@@ -1723,9 +1723,9 @@ AudioState *AUD_init (void)
     const char *drvname;
     AudioState *s = &glob_audio_state;
 
-    LIST_INIT (&s->hw_head_out);
-    LIST_INIT (&s->hw_head_in);
-    LIST_INIT (&s->cap_head);
+    QEMU_LIST_INIT (&s->hw_head_out);
+    QEMU_LIST_INIT (&s->hw_head_in);
+    QEMU_LIST_INIT (&s->cap_head);
     atexit (audio_atexit);
 
     s->ts = qemu_new_timer (vm_clock, audio_timer, s);
@@ -1817,7 +1817,7 @@ AudioState *AUD_init (void)
         return NULL;
     }
 
-    LIST_INIT (&s->card_head);
+    QEMU_LIST_INIT (&s->card_head);
     register_savevm ("audio", 0, 1, audio_save, audio_load, s);
     qemu_mod_timer (s->ts, qemu_get_clock (vm_clock) + conf.period.ticks);
     return s;
@@ -1855,7 +1855,7 @@ CaptureVoiceOut *AUD_add_capture (
 
     cap = audio_pcm_capture_find_specific (s, as);
     if (cap) {
-        LIST_INSERT_HEAD (&cap->cb_head, cb, entries);
+        QEMU_LIST_INSERT_HEAD (&cap->cb_head, cb, entries);
         return cap;
     }
     else {
@@ -1870,8 +1870,8 @@ CaptureVoiceOut *AUD_add_capture (
         }
 
         hw = &cap->hw;
-        LIST_INIT (&hw->sw_head);
-        LIST_INIT (&cap->cb_head);
+        QEMU_LIST_INIT (&hw->sw_head);
+        QEMU_LIST_INIT (&cap->cb_head);
 
         /* XXX find a more elegant way */
         hw->samples = 4096 * 4;
@@ -1899,8 +1899,8 @@ CaptureVoiceOut *AUD_add_capture (
             [hw->info.swap_endianness]
             [audio_bits_to_index (hw->info.bits)];
 
-        LIST_INSERT_HEAD (&s->cap_head, cap, entries);
-        LIST_INSERT_HEAD (&cap->cb_head, cb, entries);
+        QEMU_LIST_INSERT_HEAD (&s->cap_head, cap, entries);
+        QEMU_LIST_INSERT_HEAD (&cap->cb_head, cb, entries);
 
         hw = NULL;
         while ((hw = audio_pcm_hw_find_any_out (s, hw))) {
@@ -1926,7 +1926,7 @@ void AUD_del_capture (CaptureVoiceOut *cap, void *cb_opaque)
     for (cb = cap->cb_head.lh_first; cb; cb = cb->entries.le_next) {
         if (cb->opaque == cb_opaque) {
             cb->ops.destroy (cb_opaque);
-            LIST_REMOVE (cb, entries);
+            QEMU_LIST_REMOVE (cb, entries);
             qemu_free (cb);
 
             if (!cap->cb_head.lh_first) {
@@ -1943,12 +1943,12 @@ void AUD_del_capture (CaptureVoiceOut *cap, void *cb_opaque)
                         st_rate_stop (sw->rate);
                         sw->rate = NULL;
                     }
-                    LIST_REMOVE (sw, entries);
-                    LIST_REMOVE (sc, entries);
+                    QEMU_LIST_REMOVE (sw, entries);
+                    QEMU_LIST_REMOVE (sc, entries);
                     qemu_free (sc);
                     sw = sw1;
                 }
-                LIST_REMOVE (cap, entries);
+                QEMU_LIST_REMOVE (cap, entries);
                 qemu_free (cap);
             }
             return;
index ec9eee46f4a39aa0e7d4a19dc900b6cb86a91554..f9ca75b52141e23d0a9f60d9b272df08e170f227 100644 (file)
@@ -70,7 +70,7 @@ struct capture_ops {
 typedef struct CaptureState {
     void *opaque;
     struct capture_ops ops;
-    LIST_ENTRY (CaptureState) entries;
+    QEMU_LIST_ENTRY (CaptureState) entries;
 } CaptureState;
 
 typedef struct SWVoiceOut SWVoiceOut;
@@ -80,7 +80,7 @@ typedef struct SWVoiceIn SWVoiceIn;
 typedef struct QEMUSoundCard {
     AudioState *audio;
     char *name;
-    LIST_ENTRY (QEMUSoundCard) entries;
+    QEMU_LIST_ENTRY (QEMUSoundCard) entries;
 } QEMUSoundCard;
 
 typedef struct QEMUAudioTimeStamp {
index f9696020164ec51849f15d4e9b149b7e06bfece2..9480e5027c1cd18a3c9758b104a65ee4e718f36a 100644 (file)
@@ -79,10 +79,10 @@ typedef struct HWVoiceOut {
     st_sample_t *mix_buf;
 
     int samples;
-    LIST_HEAD (sw_out_listhead, SWVoiceOut) sw_head;
-    LIST_HEAD (sw_cap_listhead, SWVoiceCap) cap_head;
+    QEMU_LIST_HEAD (sw_out_listhead, SWVoiceOut) sw_head;
+    QEMU_LIST_HEAD (sw_cap_listhead, SWVoiceCap) cap_head;
     struct audio_pcm_ops *pcm_ops;
-    LIST_ENTRY (HWVoiceOut) entries;
+    QEMU_LIST_ENTRY (HWVoiceOut) entries;
 } HWVoiceOut;
 
 typedef struct HWVoiceIn {
@@ -98,9 +98,9 @@ typedef struct HWVoiceIn {
     st_sample_t *conv_buf;
 
     int samples;
-    LIST_HEAD (sw_in_listhead, SWVoiceIn) sw_head;
+    QEMU_LIST_HEAD (sw_in_listhead, SWVoiceIn) sw_head;
     struct audio_pcm_ops *pcm_ops;
-    LIST_ENTRY (HWVoiceIn) entries;
+    QEMU_LIST_ENTRY (HWVoiceIn) entries;
 } HWVoiceIn;
 
 struct SWVoiceOut {
@@ -116,7 +116,7 @@ struct SWVoiceOut {
     char *name;
     volume_t vol;
     struct audio_callback callback;
-    LIST_ENTRY (SWVoiceOut) entries;
+    QEMU_LIST_ENTRY (SWVoiceOut) entries;
 };
 
 struct SWVoiceIn {
@@ -131,7 +131,7 @@ struct SWVoiceIn {
     char *name;
     volume_t vol;
     struct audio_callback callback;
-    LIST_ENTRY (SWVoiceIn) entries;
+    QEMU_LIST_ENTRY (SWVoiceIn) entries;
 };
 
 struct audio_driver {
@@ -165,20 +165,20 @@ struct audio_pcm_ops {
 struct capture_callback {
     struct audio_capture_ops ops;
     void *opaque;
-    LIST_ENTRY (capture_callback) entries;
+    QEMU_LIST_ENTRY (capture_callback) entries;
 };
 
 struct CaptureVoiceOut {
     HWVoiceOut hw;
     void *buf;
-    LIST_HEAD (cb_listhead, capture_callback) cb_head;
-    LIST_ENTRY (CaptureVoiceOut) entries;
+    QEMU_LIST_HEAD (cb_listhead, capture_callback) cb_head;
+    QEMU_LIST_ENTRY (CaptureVoiceOut) entries;
 };
 
 struct SWVoiceCap {
     SWVoiceOut sw;
     CaptureVoiceOut *cap;
-    LIST_ENTRY (SWVoiceCap) entries;
+    QEMU_LIST_ENTRY (SWVoiceCap) entries;
 };
 
 struct AudioState {
@@ -186,10 +186,10 @@ struct AudioState {
     void *drv_opaque;
 
     QEMUTimer *ts;
-    LIST_HEAD (card_listhead, QEMUSoundCard) card_head;
-    LIST_HEAD (hw_in_listhead, HWVoiceIn) hw_head_in;
-    LIST_HEAD (hw_out_listhead, HWVoiceOut) hw_head_out;
-    LIST_HEAD (cap_listhead, CaptureVoiceOut) cap_head;
+    QEMU_LIST_HEAD (card_listhead, QEMUSoundCard) card_head;
+    QEMU_LIST_HEAD (hw_in_listhead, HWVoiceIn) hw_head_in;
+    QEMU_LIST_HEAD (hw_out_listhead, HWVoiceOut) hw_head_out;
+    QEMU_LIST_HEAD (cap_listhead, CaptureVoiceOut) cap_head;
     int nb_hw_voices_out;
     int nb_hw_voices_in;
 };
index 850e101d72af1348c1a59a997b600293aceacbd8..0bae2b86fd9df101a7060c60f2dee39040d2eebb 100644 (file)
@@ -186,12 +186,12 @@ static void glue (audio_pcm_sw_fini_, TYPE) (SW *sw)
 
 static void glue (audio_pcm_hw_add_sw_, TYPE) (HW *hw, SW *sw)
 {
-    LIST_INSERT_HEAD (&hw->sw_head, sw, entries);
+    QEMU_LIST_INSERT_HEAD (&hw->sw_head, sw, entries);
 }
 
 static void glue (audio_pcm_hw_del_sw_, TYPE) (SW *sw)
 {
-    LIST_REMOVE (sw, entries);
+    QEMU_LIST_REMOVE (sw, entries);
 }
 
 static void glue (audio_pcm_hw_gc_, TYPE) (AudioState *s, HW **hwp)
@@ -202,7 +202,7 @@ static void glue (audio_pcm_hw_gc_, TYPE) (AudioState *s, HW **hwp)
 #ifdef DAC
         audio_detach_capture (hw);
 #endif
-        LIST_REMOVE (hw, entries);
+        QEMU_LIST_REMOVE (hw, entries);
         glue (s->nb_hw_voices_, TYPE) += 1;
         glue (audio_pcm_hw_free_resources_ ,TYPE) (hw);
         glue (hw->pcm_ops->fini_, TYPE) (hw);
@@ -267,9 +267,9 @@ static HW *glue (audio_pcm_hw_add_new_, TYPE) (AudioState *s, audsettings_t *as)
     }
 
     hw->pcm_ops = drv->pcm_ops;
-    LIST_INIT (&hw->sw_head);
+    QEMU_LIST_INIT (&hw->sw_head);
 #ifdef DAC
-    LIST_INIT (&hw->cap_head);
+    QEMU_LIST_INIT (&hw->cap_head);
 #endif
     if (glue (hw->pcm_ops->init_, TYPE) (hw, as)) {
         goto err0;
@@ -294,7 +294,7 @@ static HW *glue (audio_pcm_hw_add_new_, TYPE) (AudioState *s, audsettings_t *as)
         goto err1;
     }
 
-    LIST_INSERT_HEAD (&s->glue (hw_head_, TYPE), hw, entries);
+    QEMU_LIST_INSERT_HEAD (&s->glue (hw_head_, TYPE), hw, entries);
     glue (s->nb_hw_voices_, TYPE) -= 1;
 #ifdef DAC
     audio_attach_capture (s, hw);
index 5b6e2a0a230a207a3c237fbaa84d0dccd109dc4e..081b052d3bf61e7f19a6fe8cce990f34c2a6f46a 100644 (file)
 /*
  * List definitions.
  */
-#define LIST_HEAD(name, type)                                          \
+#define QEMU_LIST_HEAD(name, type)                                     \
 struct name {                                                          \
        struct type *lh_first;  /* first element */                     \
 }
 
-#define LIST_ENTRY(type)                                               \
+#define QEMU_LIST_ENTRY(type)                                          \
 struct {                                                               \
        struct type *le_next;   /* next element */                      \
        struct type **le_prev;  /* address of previous next element */  \
@@ -78,11 +78,11 @@ struct {                                                            \
 /*
  * List functions.
  */
-#define        LIST_INIT(head) {                                               \
+#define        QEMU_LIST_INIT(head) {                                          \
        (head)->lh_first = NULL;                                        \
 }
 
-#define LIST_INSERT_AFTER(listelm, elm, field) {                       \
+#define QEMU_LIST_INSERT_AFTER(listelm, elm, field) {                  \
        if (((elm)->field.le_next = (listelm)->field.le_next) != NULL)  \
                (listelm)->field.le_next->field.le_prev =               \
                    &(elm)->field.le_next;                              \
@@ -90,14 +90,14 @@ struct {                                                            \
        (elm)->field.le_prev = &(listelm)->field.le_next;               \
 }
 
-#define LIST_INSERT_HEAD(head, elm, field) {                           \
+#define QEMU_LIST_INSERT_HEAD(head, elm, field) {                      \
        if (((elm)->field.le_next = (head)->lh_first) != NULL)          \
                (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
        (head)->lh_first = (elm);                                       \
        (elm)->field.le_prev = &(head)->lh_first;                       \
 }
 
-#define LIST_REMOVE(elm, field) {                                      \
+#define QEMU_LIST_REMOVE(elm, field) {                                 \
        if ((elm)->field.le_next != NULL)                               \
                (elm)->field.le_next->field.le_prev =                   \
                    (elm)->field.le_prev;                               \