Index: usr.sbin/acpi/acpiconf/acpiconf.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/acpi/acpiconf/acpiconf.c,v retrieving revision 1.7 diff -u -r1.7 acpiconf.c --- usr.sbin/acpi/acpiconf/acpiconf.c 30 Nov 2001 11:35:01 -0000 1.7 +++ usr.sbin/acpi/acpiconf/acpiconf.c 2 Jul 2002 15:08:44 -0000 @@ -38,7 +38,7 @@ #include -#include +#include #include #define ACPIDEV "/dev/acpi" Index: sys/boot/i386/libi386/biosacpi.c =================================================================== RCS file: /home/ncvs/src/sys/boot/i386/libi386/biosacpi.c,v retrieving revision 1.2 diff -u -r1.2 biosacpi.c --- sys/boot/i386/libi386/biosacpi.c 30 Jun 2002 23:22:22 -0000 1.2 +++ sys/boot/i386/libi386/biosacpi.c 2 Jul 2002 14:51:27 -0000 @@ -30,8 +30,7 @@ #include #include -#define COMPILER_DEPENDENT_INT64 long long -#define COMPILER_DEPENDENT_UINT64 unsigned long long +#include "acfreebsd.h" #include "actypes.h" #include "actbl.h" Index: sys/conf/files =================================================================== RCS file: /home/ncvs/src/sys/conf/files,v retrieving revision 1.658 diff -u -r1.658 files --- sys/conf/files 5 Jul 2002 11:08:55 -0000 1.658 +++ sys/conf/files 7 Jul 2002 13:56:11 -0000 @@ -224,6 +224,7 @@ dev/acpica/Osd/OsdSchedule.c optional acpica dev/acpica/Osd/OsdStream.c optional acpica dev/acpica/Osd/OsdSynch.c optional acpica +dev/acpica/Osd/OsdTable.c optional acpica dev/advansys/adv_eisa.c optional adv eisa dev/advansys/adv_pci.c optional adv pci dev/advansys/advansys.c optional adv Index: sys/dev/acpica/acpi.c =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/acpi.c,v retrieving revision 1.64 diff -u -r1.64 acpi.c --- sys/dev/acpica/acpi.c 19 May 2002 15:12:40 -0000 1.64 +++ sys/dev/acpica/acpi.c 5 Jul 2002 10:44:49 -0000 @@ -208,7 +208,6 @@ { device_t child; int error; - caddr_t acpi_dsdt, p; #ifdef ENABLE_DEBUGGER char *debugpoint; #endif @@ -260,17 +259,6 @@ } #endif - if ((acpi_dsdt = preload_search_by_type("acpi_dsdt")) != NULL) { - if ((p = preload_search_info(acpi_dsdt, MODINFO_ADDR)) != NULL) { - if (ACPI_FAILURE(error = AcpiSetDsdtTablePtr(*(void **)p))) { - printf("ACPI: DSDT overriding failed: %s\n", - AcpiFormatException(error)); - } else { - printf("ACPI: DSDT was overridden.\n"); - } - } - } - if (ACPI_FAILURE(error = AcpiLoadTables())) { printf("ACPI: table load failed: %s\n", AcpiFormatException(error)); return_VOID; @@ -1335,8 +1323,8 @@ case ACPI_STATE_S2: case ACPI_STATE_S3: case ACPI_STATE_S4: - if (ACPI_FAILURE(status = AcpiHwGetSleepTypeData((UINT8)state, &TypeA, &TypeB))) { - device_printf(sc->acpi_dev, "AcpiHwGetSleepTypeData failed - %s\n", AcpiFormatException(status)); + if (ACPI_FAILURE(status = AcpiGetSleepTypeData((UINT8)state, &TypeA, &TypeB))) { + device_printf(sc->acpi_dev, "AcpiGetSleepTypeData failed - %s\n", AcpiFormatException(status)); break; } @@ -1863,11 +1851,11 @@ {"ACPI_LV_MUTEX", ACPI_LV_MUTEX}, {"ACPI_LV_INIT", ACPI_LV_INIT}, {"ACPI_LV_ALL", ACPI_LV_ALL}, - {"ACPI_DB_AML_DISASSEMBLE", ACPI_DB_AML_DISASSEMBLE}, - {"ACPI_DB_VERBOSE_INFO", ACPI_DB_VERBOSE_INFO}, - {"ACPI_DB_FULL_TABLES", ACPI_DB_FULL_TABLES}, - {"ACPI_DB_EVENTS", ACPI_DB_EVENTS}, - {"ACPI_DB_VERBOSE", ACPI_DB_VERBOSE}, + {"ACPI_LV_AML_DISASSEMBLE", ACPI_LV_AML_DISASSEMBLE}, + {"ACPI_LV_VERBOSE_INFO", ACPI_LV_VERBOSE_INFO}, + {"ACPI_LV_FULL_TABLES", ACPI_LV_FULL_TABLES}, + {"ACPI_LV_EVENTS", ACPI_LV_EVENTS}, + {"ACPI_LV_VERBOSE", ACPI_LV_VERBOSE}, {NULL, 0} }; Index: sys/dev/acpica/acpica_support.c =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/acpica_support.c,v retrieving revision 1.5 diff -u -r1.5 acpica_support.c --- sys/dev/acpica/acpica_support.c 30 Jun 2002 17:53:07 -0000 1.5 +++ sys/dev/acpica/acpica_support.c 5 Jul 2002 10:44:49 -0000 @@ -58,6 +58,7 @@ { ACPI_OBJECT_LIST ArgList; ACPI_OBJECT Arg; + UINT32 Value; ACPI_FUNCTION_TRACE ("AcpiEnterSleepStateS4Bios"); @@ -77,7 +78,7 @@ /* clear wake status */ - AcpiHwBitRegisterWrite (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_LOCK); + AcpiSetRegister (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_LOCK); ACPI_DISABLE_IRQS (); @@ -92,51 +93,13 @@ { AcpiOsStall(1000000); AcpiOsWritePort (AcpiGbl_FADT->SmiCmd, AcpiGbl_FADT->S4BiosReq, 8); + AcpiGetRegister (ACPI_BITREG_WAKE_STATUS, &Value, ACPI_MTX_LOCK); } - while (!AcpiHwBitRegisterRead (ACPI_BITREG_WAKE_STATUS, ACPI_MTX_LOCK)); + while (!Value); AcpiHwEnableNonWakeupGpes(); ACPI_ENABLE_IRQS (); - - return_ACPI_STATUS (AE_OK); -} - - -#undef _COMPONENT -#define _COMPONENT ACPI_TABLES - -/******************************************************************************* - * - * FUNCTION: AcpiSetDsdtTablePtr - * - * PARAMETERS: TablePtr - pointer to a buffer containing the entire - * DSDT table to override - * - * RETURN: Status - * - * DESCRIPTION: Set DSDT table ptr for DSDT overriding. This function should - * be called perior than AcpiLoadTables(). - * - ******************************************************************************/ - -ACPI_STATUS -AcpiSetDsdtTablePtr( - ACPI_TABLE_HEADER *TablePtr) -{ - ACPI_FUNCTION_TRACE ("AcpiSetDsdtTablePtr"); - - if (!TablePtr) - { - return_ACPI_STATUS (AE_BAD_PARAMETER); - } - - if (AcpiGbl_AcpiTables[ACPI_TABLE_DSDT].LoadedIntoNamespace) - { - return_ACPI_STATUS (AE_ALREADY_EXISTS); - } - - AcpiGbl_DSDT = TablePtr; return_ACPI_STATUS (AE_OK); } Index: sys/modules/acpi/Makefile =================================================================== RCS file: /home/ncvs/src/sys/modules/acpi/Makefile,v retrieving revision 1.19 diff -u -r1.19 Makefile --- sys/modules/acpi/Makefile 4 Mar 2002 18:46:08 -0000 1.19 +++ sys/modules/acpi/Makefile 7 Jul 2002 14:46:38 -0000 @@ -33,7 +33,7 @@ SRCS+= acpica_support.c SRCS+= OsdDebug.c SRCS+= OsdHardware.c OsdInterrupt.c OsdMemory.c OsdSchedule.c -SRCS+= OsdStream.c OsdSynch.c OsdEnvironment.c +SRCS+= OsdStream.c OsdSynch.c OsdTable.c OsdEnvironment.c SRCS+= opt_acpi.h opt_ddb.h SRCS+= device_if.h bus_if.h pci_if.h pcib_if.h isa_if.h .if ACPI_NO_SEMAPHORES --- /dev/null Sun Jul 7 23:44:00 2002 +++ sys/dev/acpica/Osd/OsdTable.c Fri Jul 5 19:47:36 2002 @@ -0,0 +1,71 @@ +/*- + * Copyright (c) 2002 Mitsaru Iwasaki + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +/* + * ACPI Table interfaces + */ + +#include "acpi.h" + +#include +#include + +#undef _COMPONENT +#define _COMPONENT ACPI_TABLES + +ACPI_STATUS +AcpiOsTableOverride ( + ACPI_TABLE_HEADER *ExistingTable, + ACPI_TABLE_HEADER **NewTable) +{ + caddr_t acpi_dsdt, p; + + if (NewTable == NULL) + { + return(AE_BAD_PARAMETER); + } + + (*NewTable) = NULL; + + if ((acpi_dsdt = preload_search_by_type("acpi_dsdt")) == NULL) + { + return(AE_OK); + } + + if ((p = preload_search_info(acpi_dsdt, MODINFO_ADDR)) == NULL) + { + return(AE_OK); + } + + (*NewTable) = *(void **)p; + + printf("ACPI: DSDT was overridden.\n"); + + return(AE_OK); +} +