aboutsummaryrefslogtreecommitdiffstats
path: root/vl-android.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-android.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-android.c')
-rw-r--r--vl-android.c104
1 files changed, 0 insertions, 104 deletions
diff --git a/vl-android.c b/vl-android.c
index 3fb50ea..dd7a255 100644
--- a/vl-android.c
+++ b/vl-android.c
@@ -2157,110 +2157,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;