aboutsummaryrefslogtreecommitdiffstats
path: root/vl.c
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@android.com>2010-12-22 22:35:58 +0100
committerDavid 'Digit' Turner <digit@android.com>2011-01-02 22:03:45 +0100
commit707c8a8975842105dd04d61a416ee175d033b94d (patch)
treec282d07124492a6bf4261383b4d54de7a4c02c27 /vl.c
parentc611a19e65c13248bfd881a2d30681d7e24ea773 (diff)
downloadexternal_qemu-707c8a8975842105dd04d61a416ee175d033b94d.zip
external_qemu-707c8a8975842105dd04d61a416ee175d033b94d.tar.gz
external_qemu-707c8a8975842105dd04d61a416ee175d033b94d.tar.bz2
upstream: Move bottom-half handlers to async.c
Change-Id: Ibd4321edb2abe349d32483a60fdb94a282f22240
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c112
1 files changed, 4 insertions, 108 deletions
diff --git a/vl.c b/vl.c
index 3069a9c..03cc9ae 100644
--- a/vl.c
+++ b/vl.c
@@ -375,7 +375,7 @@ void hw_error(const char *fmt, ...)
va_end(ap);
abort();
}
-
+
/***************/
/* ballooning */
@@ -2014,7 +2014,7 @@ static int ram_load(QEMUFile *f, void *opaque, int version_id)
if (ram_load_dead(f, opaque) < 0)
return -EINVAL;
}
-
+
if (flags & RAM_SAVE_FLAG_COMPRESS) {
uint8_t ch = qemu_get_byte(f);
memset(qemu_get_ram_ptr(addr), ch, TARGET_PAGE_SIZE);
@@ -2031,110 +2031,6 @@ void qemu_service_io(void)
}
/***********************************************************/
-/* bottom halves (can be seen as timers which expire ASAP) */
-
-struct QEMUBH {
- QEMUBHFunc *cb;
- void *opaque;
- int scheduled;
- int idle;
- int deleted;
- QEMUBH *next;
-};
-
-static QEMUBH *first_bh = NULL;
-
-QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque)
-{
- QEMUBH *bh;
- bh = qemu_mallocz(sizeof(QEMUBH));
- bh->cb = cb;
- bh->opaque = opaque;
- bh->next = first_bh;
- first_bh = bh;
- return bh;
-}
-
-int qemu_bh_poll(void)
-{
- QEMUBH *bh, **bhp;
- int ret;
-
- ret = 0;
- for (bh = first_bh; bh; bh = bh->next) {
- if (!bh->deleted && bh->scheduled) {
- bh->scheduled = 0;
- if (!bh->idle)
- ret = 1;
- bh->idle = 0;
- bh->cb(bh->opaque);
- }
- }
-
- /* remove deleted bhs */
- bhp = &first_bh;
- while (*bhp) {
- bh = *bhp;
- if (bh->deleted) {
- *bhp = bh->next;
- qemu_free(bh);
- } else
- bhp = &bh->next;
- }
-
- return ret;
-}
-
-void qemu_bh_schedule_idle(QEMUBH *bh)
-{
- if (bh->scheduled)
- return;
- bh->scheduled = 1;
- bh->idle = 1;
-}
-
-void qemu_bh_schedule(QEMUBH *bh)
-{
- if (bh->scheduled)
- return;
- bh->scheduled = 1;
- bh->idle = 0;
- /* stop the currently executing CPU to execute the BH ASAP */
- qemu_notify_event();
-}
-
-void qemu_bh_cancel(QEMUBH *bh)
-{
- bh->scheduled = 0;
-}
-
-void qemu_bh_delete(QEMUBH *bh)
-{
- bh->scheduled = 0;
- bh->deleted = 1;
-}
-
-void qemu_bh_update_timeout(int *timeout)
-{
- QEMUBH *bh;
-
- for (bh = first_bh; bh; bh = bh->next) {
- if (!bh->deleted && bh->scheduled) {
- if (bh->idle) {
- /* idle bottom halves will be polled at least
- * every 10ms */
- *timeout = MIN(10, *timeout);
- } else {
- /* non-idle bottom halves will be executed
- * immediately */
- *timeout = 0;
- break;
- }
- }
- }
-}
-
-/***********************************************************/
/* machine registration */
static QEMUMachine *first_machine = NULL;
@@ -3860,7 +3756,7 @@ int main(int argc, char **argv, char **envp)
{
/* Could easily be extended to 64 devices if needed */
const char *p;
-
+
boot_devices_bitmap = 0;
for (p = boot_devices; *p != '\0'; p++) {
/* Allowed boot devices are:
@@ -4716,7 +4612,7 @@ int main(int argc, char **argv, char **envp)
show_vnc_port = 1;
#endif
}
-
+
switch (display_type) {
case DT_NOGRAPHIC: