]> Zhao Yanbai Git Server - minix.git/commitdiff
Implement AcpiOsStall, AcpiOsSleep, AcpiOsGetTimer
authorJan Wieck <JanWieck@Yahoo.com>
Fri, 13 Jan 2012 18:35:13 +0000 (18:35 +0000)
committerTomas Hruby <tom@minix3.org>
Fri, 13 Jan 2012 18:57:53 +0000 (18:57 +0000)
- change AcpiOsRemoveInterruptHandler() to print a warning
  instead of panic.

- we do the same in AcpiOsInstallInterruptHandler().

Signed-off-by: Tomas Hruby <thruby@few.vu.nl>
drivers/acpi/Makefile
drivers/acpi/osminixxf.c

index bfdc49357730c74e8e3621d1171f7d0658aec93c..e6edd0b2b9eea4097fd6bad0fb76c4811b1e9f97 100644 (file)
@@ -139,7 +139,7 @@ ACPICA_SRCS= \
 SRCS+=${ACPICA_SRCS} 
 
 DPADD+=        ${LIBSYS}
-LDADD+=        -lsys
+LDADD+=        -lsys -lc
 
 CPPFLAGS += -I${.CURDIR}/include
 CFLAGS += -DACPI_LIBRARY
index c56d25e8d3c15224b2e8530d00a5290d2ba9a8b5..4531d67a55e9cf67145b532effc9b3efa86a77cf 100644 (file)
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <unistd.h>
+#include <sys/time.h>
 
 #include "acpi.h"
 #include "accommon.h"
@@ -644,7 +646,7 @@ AcpiOsRemoveInterruptHandler (
     UINT32                  InterruptNumber,
     ACPI_OSD_HANDLER        ServiceRoutine)
 {
-       panic("NOTIMPLEMENTED %s\n", __func__);
+       printf("AcpiOsRemoveInterruptHandler NOT SUPPORTED\n");
        return AE_OK;
 }
 
@@ -711,7 +713,9 @@ void
 AcpiOsStall (
     UINT32                  microseconds)
 {
-       panic("NOTIMPLEMENTED %s\n", __func__);
+       if (microseconds > 0)
+               usleep (microseconds);
+
        return;
 }
 
@@ -732,7 +736,12 @@ void
 AcpiOsSleep (
     ACPI_INTEGER            milliseconds)
 {
-       panic("NOTIMPLEMENTED %s\n", __func__);
+       if ((milliseconds / 1000) > 0)
+               sleep (milliseconds / 1000);
+
+       if ((milliseconds % 1000) > 0)
+               usleep ((milliseconds % 1000) * 1000);
+
        return;
 }
 
@@ -751,8 +760,11 @@ AcpiOsSleep (
 UINT64
 AcpiOsGetTimer (void)
 {
-       panic("NOTIMPLEMENTED %s\n", __func__);
-       return 0;
+       struct timeval  time;
+
+       gettimeofday (&time, NULL);
+       return (((UINT64) time.tv_sec * 10000000) +
+               ((UINT64) time.tv_usec * 10));
 }