sw->rate = NULL;
}
- QEMU_LIST_REMOVE (sw, entries);
- QEMU_LIST_REMOVE (sc, entries);
+ LIST_REMOVE (sw, entries);
+ LIST_REMOVE (sc, entries);
qemu_free (sc);
if (was_active) {
/* We have removed soft voice from the capture:
qemu_free (sw);
return -1;
}
- QEMU_LIST_INSERT_HEAD (&hw_cap->sw_head, sw, entries);
- QEMU_LIST_INSERT_HEAD (&hw->cap_head, sc, entries);
+ LIST_INSERT_HEAD (&hw_cap->sw_head, sw, entries);
+ 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);
card->audio = s;
card->name = qemu_strdup (name);
memset (&card->entries, 0, sizeof (card->entries));
- QEMU_LIST_INSERT_HEAD (&s->card_head, card, entries);
+ LIST_INSERT_HEAD (&s->card_head, card, entries);
}
void AUD_remove_card (QEMUSoundCard *card)
{
- QEMU_LIST_REMOVE (card, entries);
+ LIST_REMOVE (card, entries);
card->audio = NULL;
qemu_free (card->name);
}
const char *drvname;
AudioState *s = &glob_audio_state;
- QEMU_LIST_INIT (&s->hw_head_out);
- QEMU_LIST_INIT (&s->hw_head_in);
- QEMU_LIST_INIT (&s->cap_head);
+ LIST_INIT (&s->hw_head_out);
+ LIST_INIT (&s->hw_head_in);
+ LIST_INIT (&s->cap_head);
atexit (audio_atexit);
s->ts = qemu_new_timer (vm_clock, audio_timer, s);
return NULL;
}
- QEMU_LIST_INIT (&s->card_head);
+ 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;
cap = audio_pcm_capture_find_specific (s, as);
if (cap) {
- QEMU_LIST_INSERT_HEAD (&cap->cb_head, cb, entries);
+ LIST_INSERT_HEAD (&cap->cb_head, cb, entries);
return cap;
}
else {
}
hw = &cap->hw;
- QEMU_LIST_INIT (&hw->sw_head);
- QEMU_LIST_INIT (&cap->cb_head);
+ LIST_INIT (&hw->sw_head);
+ LIST_INIT (&cap->cb_head);
/* XXX find a more elegant way */
hw->samples = 4096 * 4;
[hw->info.swap_endianness]
[audio_bits_to_index (hw->info.bits)];
- QEMU_LIST_INSERT_HEAD (&s->cap_head, cap, entries);
- QEMU_LIST_INSERT_HEAD (&cap->cb_head, cb, entries);
+ LIST_INSERT_HEAD (&s->cap_head, cap, entries);
+ LIST_INSERT_HEAD (&cap->cb_head, cb, entries);
hw = NULL;
while ((hw = audio_pcm_hw_find_any_out (s, hw))) {
for (cb = cap->cb_head.lh_first; cb; cb = cb->entries.le_next) {
if (cb->opaque == cb_opaque) {
cb->ops.destroy (cb_opaque);
- QEMU_LIST_REMOVE (cb, entries);
+ LIST_REMOVE (cb, entries);
qemu_free (cb);
if (!cap->cb_head.lh_first) {
st_rate_stop (sw->rate);
sw->rate = NULL;
}
- QEMU_LIST_REMOVE (sw, entries);
- QEMU_LIST_REMOVE (sc, entries);
+ LIST_REMOVE (sw, entries);
+ LIST_REMOVE (sc, entries);
qemu_free (sc);
sw = sw1;
}
- QEMU_LIST_REMOVE (cap, entries);
+ LIST_REMOVE (cap, entries);
qemu_free (cap);
}
return;
typedef struct CaptureState {
void *opaque;
struct capture_ops ops;
- QEMU_LIST_ENTRY (CaptureState) entries;
+ LIST_ENTRY (CaptureState) entries;
} CaptureState;
typedef struct SWVoiceOut SWVoiceOut;
typedef struct QEMUSoundCard {
AudioState *audio;
char *name;
- QEMU_LIST_ENTRY (QEMUSoundCard) entries;
+ LIST_ENTRY (QEMUSoundCard) entries;
} QEMUSoundCard;
typedef struct QEMUAudioTimeStamp {
st_sample_t *mix_buf;
int samples;
- QEMU_LIST_HEAD (sw_out_listhead, SWVoiceOut) sw_head;
- QEMU_LIST_HEAD (sw_cap_listhead, SWVoiceCap) cap_head;
+ LIST_HEAD (sw_out_listhead, SWVoiceOut) sw_head;
+ LIST_HEAD (sw_cap_listhead, SWVoiceCap) cap_head;
struct audio_pcm_ops *pcm_ops;
- QEMU_LIST_ENTRY (HWVoiceOut) entries;
+ LIST_ENTRY (HWVoiceOut) entries;
} HWVoiceOut;
typedef struct HWVoiceIn {
st_sample_t *conv_buf;
int samples;
- QEMU_LIST_HEAD (sw_in_listhead, SWVoiceIn) sw_head;
+ LIST_HEAD (sw_in_listhead, SWVoiceIn) sw_head;
struct audio_pcm_ops *pcm_ops;
- QEMU_LIST_ENTRY (HWVoiceIn) entries;
+ LIST_ENTRY (HWVoiceIn) entries;
} HWVoiceIn;
struct SWVoiceOut {
char *name;
volume_t vol;
struct audio_callback callback;
- QEMU_LIST_ENTRY (SWVoiceOut) entries;
+ LIST_ENTRY (SWVoiceOut) entries;
};
struct SWVoiceIn {
char *name;
volume_t vol;
struct audio_callback callback;
- QEMU_LIST_ENTRY (SWVoiceIn) entries;
+ LIST_ENTRY (SWVoiceIn) entries;
};
struct audio_driver {
struct capture_callback {
struct audio_capture_ops ops;
void *opaque;
- QEMU_LIST_ENTRY (capture_callback) entries;
+ LIST_ENTRY (capture_callback) entries;
};
struct CaptureVoiceOut {
HWVoiceOut hw;
void *buf;
- QEMU_LIST_HEAD (cb_listhead, capture_callback) cb_head;
- QEMU_LIST_ENTRY (CaptureVoiceOut) entries;
+ LIST_HEAD (cb_listhead, capture_callback) cb_head;
+ LIST_ENTRY (CaptureVoiceOut) entries;
};
struct SWVoiceCap {
SWVoiceOut sw;
CaptureVoiceOut *cap;
- QEMU_LIST_ENTRY (SWVoiceCap) entries;
+ LIST_ENTRY (SWVoiceCap) entries;
};
struct AudioState {
void *drv_opaque;
QEMUTimer *ts;
- 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;
+ 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;
int nb_hw_voices_out;
int nb_hw_voices_in;
};
static void glue (audio_pcm_hw_add_sw_, TYPE) (HW *hw, SW *sw)
{
- QEMU_LIST_INSERT_HEAD (&hw->sw_head, sw, entries);
+ LIST_INSERT_HEAD (&hw->sw_head, sw, entries);
}
static void glue (audio_pcm_hw_del_sw_, TYPE) (SW *sw)
{
- QEMU_LIST_REMOVE (sw, entries);
+ LIST_REMOVE (sw, entries);
}
static void glue (audio_pcm_hw_gc_, TYPE) (AudioState *s, HW **hwp)
#ifdef DAC
audio_detach_capture (hw);
#endif
- QEMU_LIST_REMOVE (hw, entries);
+ 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);
}
hw->pcm_ops = drv->pcm_ops;
- QEMU_LIST_INIT (&hw->sw_head);
+ LIST_INIT (&hw->sw_head);
#ifdef DAC
- QEMU_LIST_INIT (&hw->cap_head);
+ LIST_INIT (&hw->cap_head);
#endif
if (glue (hw->pcm_ops->init_, TYPE) (hw, as)) {
goto err0;
goto err1;
}
- QEMU_LIST_INSERT_HEAD (&s->glue (hw_head_, TYPE), hw, entries);
+ LIST_INSERT_HEAD (&s->glue (hw_head_, TYPE), hw, entries);
glue (s->nb_hw_voices_, TYPE) -= 1;
#ifdef DAC
audio_attach_capture (s, hw);
/*
* List definitions.
*/
-#define QEMU_LIST_HEAD(name, type) \
+#define LIST_HEAD(name, type) \
struct name { \
struct type *lh_first; /* first element */ \
}
-#define QEMU_LIST_ENTRY(type) \
+#define LIST_ENTRY(type) \
struct { \
struct type *le_next; /* next element */ \
struct type **le_prev; /* address of previous next element */ \
/*
* List functions.
*/
-#define QEMU_LIST_INIT(head) { \
+#define LIST_INIT(head) { \
(head)->lh_first = NULL; \
}
-#define QEMU_LIST_INSERT_AFTER(listelm, elm, field) { \
+#define 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; \
(elm)->field.le_prev = &(listelm)->field.le_next; \
}
-#define QEMU_LIST_INSERT_HEAD(head, elm, field) { \
+#define 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 QEMU_LIST_REMOVE(elm, field) { \
+#define LIST_REMOVE(elm, field) { \
if ((elm)->field.le_next != NULL) \
(elm)->field.le_next->field.le_prev = \
(elm)->field.le_prev; \
struct blkfront_dev *dev;
int fd;
struct blkfront_info info;
- QEMU_LIST_ENTRY(BDRVVbdState) list;
+ LIST_ENTRY(BDRVVbdState) list;
} BDRVVbdState;
-QEMU_LIST_HEAD(, BDRVVbdState) vbds;
+LIST_HEAD(, BDRVVbdState) vbds;
static int vbd_probe(const uint8_t *buf, int buf_size, const char *filename)
{
s->fd = blkfront_open(s->dev);
qemu_set_fd_handler(s->fd, vbd_io_completed, NULL, s);
- QEMU_LIST_INSERT_HEAD(&vbds, s, list);
+ LIST_INSERT_HEAD(&vbds, s, list);
return 0;
}
close(s->fd);
s->fd = -1;
}
- QEMU_LIST_REMOVE(s, list);
+ LIST_REMOVE(s, list);
}
static int64_t vbd_getlength(BlockDriverState *bs)
reg_entry->data = data;
}
/* list add register entry */
- QEMU_LIST_INSERT_HEAD(®_grp->reg_tbl_head, reg_entry, entries);
+ LIST_INSERT_HEAD(®_grp->reg_tbl_head, reg_entry, entries);
out:
return err;
int i, j, err = 0;
/* initialize register group list */
- QEMU_LIST_INIT(&ptdev->reg_grp_tbl_head);
+ LIST_INIT(&ptdev->reg_grp_tbl_head);
/* initialize register group */
for (i=0; pt_emu_reg_grp_tbl[i].grp_size != 0; i++)
}
/* initialize register group entry */
- QEMU_LIST_INIT(®_grp_entry->reg_tbl_head);
+ LIST_INIT(®_grp_entry->reg_tbl_head);
/* need to declare here, to enable searching Cap Ptr reg
* (which is in the same reg group) when initializing Status reg
*/
- QEMU_LIST_INSERT_HEAD(&ptdev->reg_grp_tbl_head, reg_grp_entry, entries);
+ LIST_INSERT_HEAD(&ptdev->reg_grp_tbl_head, reg_grp_entry, entries);
reg_grp_entry->base_offset = reg_grp_offset;
reg_grp_entry->reg_grp =
/* free all register entry */
while ((reg_entry = reg_grp_entry->reg_tbl_head.lh_first) != NULL)
{
- QEMU_LIST_REMOVE(reg_entry, entries);
+ LIST_REMOVE(reg_entry, entries);
qemu_free(reg_entry);
}
- QEMU_LIST_REMOVE(reg_grp_entry, entries);
+ LIST_REMOVE(reg_grp_entry, entries);
qemu_free(reg_grp_entry);
}
}
PCIDevice dev;
struct pci_dev *pci_dev; /* libpci struct */
struct pt_region bases[PCI_NUM_REGIONS]; /* Access regions */
- QEMU_LIST_HEAD (reg_grp_tbl_listhead, pt_reg_grp_tbl) reg_grp_tbl_head;
+ LIST_HEAD (reg_grp_tbl_listhead, pt_reg_grp_tbl) reg_grp_tbl_head;
/* emul reg group list */
struct pt_msi_info *msi; /* MSI virtualization */
struct pt_msix_info *msix; /* MSI-X virtualization */
/* emul reg group management table */
struct pt_reg_grp_tbl {
/* emul reg group list */
- QEMU_LIST_ENTRY (pt_reg_grp_tbl) entries;
+ LIST_ENTRY (pt_reg_grp_tbl) entries;
/* emul reg group info table */
struct pt_reg_grp_info_tbl *reg_grp;
/* emul reg group base offset */
/* emul reg group size */
uint8_t size;
/* emul reg management table list */
- QEMU_LIST_HEAD (reg_tbl_listhead, pt_reg_tbl) reg_tbl_head;
+ LIST_HEAD (reg_tbl_listhead, pt_reg_tbl) reg_tbl_head;
};
/* emul reg group size initialize method */
/* emul reg management table */
struct pt_reg_tbl {
/* emul reg table list */
- QEMU_LIST_ENTRY (pt_reg_tbl) entries;
+ LIST_ENTRY (pt_reg_tbl) entries;
/* emul reg info table */
struct pt_reg_info_tbl *reg;
/* emul reg value */
#endif
/* Capture support */
-static QEMU_LIST_HEAD (capture_list_head, CaptureState) capture_head;
+static LIST_HEAD (capture_list_head, CaptureState) capture_head;
static void do_info_capture (void)
{
for (s = capture_head.lh_first, i = 0; s; s = s->entries.le_next, ++i) {
if (i == n) {
s->ops.destroy (s->opaque);
- QEMU_LIST_REMOVE (s, entries);
+ LIST_REMOVE (s, entries);
qemu_free (s);
return;
}
term_printf ("Faied to add wave capture\n");
qemu_free (s);
}
- QEMU_LIST_INSERT_HEAD (&capture_head, s, entries);
+ LIST_INSERT_HEAD (&capture_head, s, entries);
}
#endif
struct vm_change_state_entry {
VMChangeStateHandler *cb;
void *opaque;
- QEMU_LIST_ENTRY (vm_change_state_entry) entries;
+ LIST_ENTRY (vm_change_state_entry) entries;
};
-static QEMU_LIST_HEAD(vm_change_state_head, vm_change_state_entry) vm_change_state_head;
+static LIST_HEAD(vm_change_state_head, vm_change_state_entry) vm_change_state_head;
VMChangeStateEntry *qemu_add_vm_change_state_handler(VMChangeStateHandler *cb,
void *opaque)
e->cb = cb;
e->opaque = opaque;
- QEMU_LIST_INSERT_HEAD(&vm_change_state_head, e, entries);
+ LIST_INSERT_HEAD(&vm_change_state_head, e, entries);
return e;
}
void qemu_del_vm_change_state_handler(VMChangeStateEntry *e)
{
- QEMU_LIST_REMOVE (e, entries);
+ LIST_REMOVE (e, entries);
qemu_free (e);
}
perror("setrlimit(RLIMIT_MEMLOCK)");
#endif
- QEMU_LIST_INIT (&vm_change_state_head);
+ LIST_INIT (&vm_change_state_head);
#ifndef _WIN32
{
struct sigaction act;