aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/dev/acpica/osunixxf.c
diff options
context:
space:
mode:
authorMark Santcroos <marks@FreeBSD.org>2004-12-01 23:14:10 +0000
committerMark Santcroos <marks@FreeBSD.org>2004-12-01 23:14:10 +0000
commitc846686064718f6ab1d92107f960542f6f400744 (patch)
tree4910f03edb15ce309eeb1b58facc922df30dd767 /sys/contrib/dev/acpica/osunixxf.c
parentaaff1d4cfa72d64a9dbbcd65e3a6d260280ae397 (diff)
downloadsrc-c846686064718f6ab1d92107f960542f6f400744.tar.gz
src-c846686064718f6ab1d92107f960542f6f400744.zip
Vendor import of Intel ACPI-CA 20041119
Notes
Notes: svn path=/vendor-sys/acpica/dist/; revision=138287
Diffstat (limited to 'sys/contrib/dev/acpica/osunixxf.c')
-rw-r--r--sys/contrib/dev/acpica/osunixxf.c48
1 files changed, 31 insertions, 17 deletions
diff --git a/sys/contrib/dev/acpica/osunixxf.c b/sys/contrib/dev/acpica/osunixxf.c
index d536f8f5d750..f5ce08f8cac6 100644
--- a/sys/contrib/dev/acpica/osunixxf.c
+++ b/sys/contrib/dev/acpica/osunixxf.c
@@ -185,7 +185,7 @@ AcpiOsGetRootPointer (
ACPI_POINTER *Address)
{
- return (AE_OK);
+ return (AeLocalGetRootPointer(Flags, Address));
}
@@ -238,14 +238,28 @@ AcpiOsTableOverride (
ACPI_TABLE_HEADER *ExistingTable,
ACPI_TABLE_HEADER **NewTable)
{
+
if (!ExistingTable || !NewTable)
{
return (AE_BAD_PARAMETER);
}
- /* TODO: Add table-getting code here */
*NewTable = NULL;
- return (AE_NO_ACPI_TABLES);
+
+#ifdef _ACPI_EXEC_APP
+
+ /* This code exercises the table override mechanism in the core */
+
+ if (!ACPI_STRNCMP (ExistingTable->Signature, DSDT_SIG, ACPI_NAME_SIZE))
+ {
+ /* override DSDT with itself */
+
+ *NewTable = AcpiGbl_DbTablePtr;
+ }
+ return (AE_OK);
+#else
+ return AE_NO_ACPI_TABLES;
+#endif
}
@@ -686,7 +700,7 @@ AcpiOsReleaseLock (
UINT32
AcpiOsInstallInterruptHandler (
UINT32 InterruptNumber,
- OSD_HANDLER ServiceRoutine,
+ ACPI_OSD_HANDLER ServiceRoutine,
void *Context)
{
@@ -710,7 +724,7 @@ AcpiOsInstallInterruptHandler (
ACPI_STATUS
AcpiOsRemoveInterruptHandler (
UINT32 InterruptNumber,
- OSD_HANDLER ServiceRoutine)
+ ACPI_OSD_HANDLER ServiceRoutine)
{
return AE_OK;
@@ -734,7 +748,7 @@ AcpiOsRemoveInterruptHandler (
ACPI_STATUS
AcpiOsQueueForExecution (
UINT32 Priority,
- OSD_EXECUTION_CALLBACK Function,
+ ACPI_OSD_EXEC_CALLBACK Function,
void *Context)
{
@@ -778,7 +792,7 @@ AcpiOsBreakpoint (
/******************************************************************************
*
- * FUNCTION: AcpiOsSleepUsec
+ * FUNCTION: AcpiOsStall
*
* PARAMETERS: microseconds To sleep
*
@@ -805,22 +819,20 @@ AcpiOsStall (
*
* FUNCTION: AcpiOsSleep
*
- * PARAMETERS: seconds To sleep
- * milliseconds To sleep
+ * PARAMETERS: milliseconds To sleep
*
* RETURN: Blocks until sleep is completed.
*
- * DESCRIPTION: Sleep at second/millisecond granularity
+ * DESCRIPTION: Sleep at millisecond granularity
*
*****************************************************************************/
void
AcpiOsSleep (
- UINT32 seconds,
- UINT32 milliseconds)
+ ACPI_INTEGER milliseconds)
{
- sleep (seconds + (milliseconds / 1000)); /* Sleep for whole seconds */
+ sleep (milliseconds / 1000); /* Sleep for whole seconds */
/*
* Arg to usleep() must be less than 1,000,000 (1 second)
@@ -836,20 +848,22 @@ AcpiOsSleep (
*
* PARAMETERS: None
*
- * RETURN: Current time in milliseconds
+ * RETURN: Current time in 100 nanosecond units
*
- * DESCRIPTION: Get the current system time (in milliseconds).
+ * DESCRIPTION: Get the current system time
*
*****************************************************************************/
-UINT32
+UINT64
AcpiOsGetTimer (void)
{
struct timeval time;
gettimeofday(&time, NULL);
- return ((time.tv_sec/1000) + (time.tv_usec*1000));
+ /* Seconds * 10^7 = 100ns(10^-7), Microseconds(10^-6) * 10^1 = 100ns */
+
+ return (((UINT64) time.tv_sec * 10000000) + ((UINT64) time.tv_usec * 10));
}