aboutsummaryrefslogtreecommitdiffstats
path: root/src/util.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2010-05-01 12:20:33 -0400
committerKevin O'Connor <kevin@koconnor.net>2010-05-01 12:20:33 -0400
commite438b0c6202ab7e2c55f4e9bf4db0bc176e5c544 (patch)
treea498cf1b7a289d7de220887a5917b5f528bccaa7 /src/util.c
parentf59b5ac27eec5a8bf3e2804bf57385b8c2b0fd06 (diff)
downloadseabios-e438b0c6202ab7e2c55f4e9bf4db0bc176e5c544.tar.gz
Further parallelize init when using CONFIG_THREAD_OPTIONROMS.
When optionrom threading is enabled, allow hardware init to run in parallel with boot menu key press delay and with the smp detection. Also, run qemu_cfg_port_probe() before ram_probe().
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c
index bbef995e..e146c973 100644
--- a/src/util.c
+++ b/src/util.c
@@ -294,7 +294,9 @@ check_for_keystroke(void)
memset(&br, 0, sizeof(br));
br.flags = F_IF;
br.ah = 1;
+ start_preempt();
call16_int(0x16, &br);
+ finish_preempt();
return !(br.flags & F_ZF);
}
@@ -305,7 +307,9 @@ get_raw_keystroke(void)
struct bregs br;
memset(&br, 0, sizeof(br));
br.flags = F_IF;
+ start_preempt();
call16_int(0x16, &br);
+ finish_preempt();
return br.ah;
}
@@ -318,7 +322,9 @@ get_keystroke(int msec)
return get_raw_keystroke();
if (msec <= 0)
return -1;
+ start_preempt();
biosusleep(50*1000);
+ finish_preempt();
msec -= 50;
}
}