25eed6867e
libi386's time(), caused by a qemu bug. The bug might be present in other BIOSes, too. qemu either does not simulate the AT RTC correctly or has a broken BIOS 1A/02 implementation, and will return an incorrect value if the RTC is read while it is being updated. The effect is worsened by the fact that qemu's INT 15/86 function ("wait" a.k.a. usleep) is non-implmeneted or broken and returns immediately, causing beastie.4th to spin in a tight loop calling the "read RTC" function millions of times, triggering the problem quickly. Therefore, we keep reading the BIOS value until we get the same result twice. This change fixes beastie.4th's countdown under qemu. Approved by: des (mentor) |
||
---|---|---|
.. | ||
amd64_tramp.S | ||
biosacpi.c | ||
bioscd.c | ||
biosdisk.c | ||
biosmem.c | ||
biospci.c | ||
biospnp.c | ||
biossmap.c | ||
bootinfo32.c | ||
bootinfo64.c | ||
bootinfo.c | ||
comconsole.c | ||
devicename.c | ||
elf32_freebsd.c | ||
elf64_freebsd.c | ||
i386_copy.c | ||
i386_module.c | ||
libi386.h | ||
Makefile | ||
nullconsole.c | ||
pread.c | ||
pxe.c | ||
pxe.h | ||
pxetramp.s | ||
smbios.c | ||
time.c | ||
vidconsole.c |