diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2010-05-01 12:20:33 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2010-05-01 12:20:33 -0400 |
commit | e438b0c6202ab7e2c55f4e9bf4db0bc176e5c544 (patch) | |
tree | a498cf1b7a289d7de220887a5917b5f528bccaa7 /src/util.c | |
parent | f59b5ac27eec5a8bf3e2804bf57385b8c2b0fd06 (diff) | |
download | seabios-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.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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; } } |