From: tgingold Date: Tue, 13 Feb 2007 02:15:19 +0000 (+0000) Subject: use nanosleep instead of usleep, ugaX11 calls msSleep instead of usleep X-Git-Tag: edk2-stable201903~23501 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=8ba2f4413a21d5dd3d4833aa097b918aa5cfb8a7 use nanosleep instead of usleep, ugaX11 calls msSleep instead of usleep git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2376 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/EdkUnixPkg/Sec/UgaX11.c b/EdkUnixPkg/Sec/UgaX11.c index b5719cfd59..47fb4fab7a 100644 --- a/EdkUnixPkg/Sec/UgaX11.c +++ b/EdkUnixPkg/Sec/UgaX11.c @@ -13,6 +13,8 @@ #include #include +extern void msSleep (unsigned long Milliseconds); + /* XQueryPointer */ struct uga_drv_shift_mask @@ -347,7 +349,7 @@ UgaCheckKey(EFI_UNIX_UGA_IO_PROTOCOL *UgaIo) return EFI_SUCCESS; else { /* EFI is certainly polling. Be CPU-friendly. */ - usleep (50000); + msSleep (20); return EFI_NOT_READY; } } diff --git a/EdkUnixPkg/Sec/UnixThunk.c b/EdkUnixPkg/Sec/UnixThunk.c index 46b0e34c55..c1988faf59 100644 --- a/EdkUnixPkg/Sec/UnixThunk.c +++ b/EdkUnixPkg/Sec/UnixThunk.c @@ -89,6 +89,18 @@ SetTimer (UINT64 PeriodMs, VOID (*CallBack)(UINT64 DeltaMs)) settimer_callback = CallBack; } +void +msSleep (unsigned long Milliseconds) +{ + struct timespec ts; + + ts.tv_sec = Milliseconds / 1000; + ts.tv_nsec = (Milliseconds % 1000) * 1000000; + + while (nanosleep (&ts, &ts) != 0 && errno == EINTR) + ; +} + void GetLocalTime (EFI_TIME *Time) { @@ -110,12 +122,6 @@ GetLocalTime (EFI_TIME *Time) | (tm->tm_isdst > 0 ? EFI_TIME_IN_DAYLIGHT : 0); } -void -msSleep (unsigned long Milliseconds) -{ - usleep (Milliseconds * 1000); -} - static void TzSet (void) {