Index: modules/acpi/Makefile =================================================================== RCS file: /home/ncvs/src/sys/modules/acpi/Makefile,v retrieving revision 1.26 diff -u -r1.26 Makefile --- modules/acpi/Makefile 5 Oct 2002 02:01:05 -0000 1.26 +++ modules/acpi/Makefile 21 Mar 2003 01:41:23 -0000 @@ -10,20 +10,20 @@ # ACPI CA sources CFLAGS+= -I${.CURDIR}/../../contrib/dev/acpica -SRCS+= dsfield.c dsmethod.c dsmthdat.c dsobject.c dsopcode.c -SRCS+= dsutils.c dswexec.c dswload.c dswscope.c dswstate.c -SRCS+= evevent.c evmisc.c evregion.c evrgnini.c evsci.c -SRCS+= evxface.c evxfevnt.c evxfregn.c -SRCS+= exconfig.c exconvrt.c excreate.c exdump.c exfield.c -SRCS+= exfldio.c exmisc.c exmutex.c exnames.c exoparg1.c -SRCS+= exoparg2.c exoparg3.c exoparg6.c exprep.c exregion.c -SRCS+= exresnte.c exresolv.c exresop.c exstore.c exstoren.c -SRCS+= exstorob.c exsystem.c exutils.c +SRCS+= dsfield.c dsinit.c dsmethod.c dsmthdat.c +SRCS+= dsobject.c dsopcode.c dsutils.c dswexec.c dswload.c +SRCS+= dswscope.c dswstate.c evevent.c evmisc.c evregion.c +SRCS+= evrgnini.c evsci.c evxface.c evxfevnt.c evxfregn.c +SRCS+= evgpe.c evgpeblk.c exconfig.c exconvrt.c excreate.c +SRCS+= exdump.c exfield.c exfldio.c exmisc.c exmutex.c +SRCS+= exnames.c exoparg1.c exoparg2.c exoparg3.c exoparg6.c +SRCS+= exprep.c exregion.c exresnte.c exresolv.c exresop.c +SRCS+= exstore.c exstoren.c exstorob.c exsystem.c exutils.c SRCS+= hwacpi.c hwgpe.c hwregs.c hwsleep.c hwtimer.c SRCS+= nsaccess.c nsalloc.c nsdump.c nseval.c nsinit.c -SRCS+= nsload.c nsnames.c nsobject.c nssearch.c nsutils.c +SRCS+= nsload.c nsnames.c nsparse.c nsobject.c nssearch.c nsutils.c SRCS+= nswalk.c nsxfeval.c nsxfname.c nsxfobj.c -SRCS+= psargs.c psfind.c psopcode.c psparse.c psscope.c +SRCS+= psargs.c psopcode.c psparse.c psscope.c SRCS+= pstree.c psutils.c pswalk.c psxface.c SRCS+= rsaddr.c rscalc.c rscreate.c rsdump.c rsio.c SRCS+= rsirq.c rslist.c rsmemory.c rsmisc.c rsutils.c Index: dev/acpica/acpivar.h =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/acpivar.h,v retrieving revision 1.38 diff -u -r1.38 acpivar.h --- dev/acpica/acpivar.h 11 Dec 2002 18:48:50 -0000 1.38 +++ dev/acpica/acpivar.h 21 Mar 2003 02:13:07 -0000 @@ -146,16 +146,16 @@ * argument format that AcpiEvalateObject uses. */ #define ACPI_OBJECTLIST_MAX 16 -struct acpi_object_list { +struct acpi_os_object_list { UINT32 count; ACPI_OBJECT *pointer[ACPI_OBJECTLIST_MAX]; ACPI_OBJECT object[ACPI_OBJECTLIST_MAX]; }; -static __inline struct acpi_object_list * +static __inline struct acpi_os_object_list * acpi_AllocObjectList(int nobj) { - struct acpi_object_list *l; + struct acpi_os_object_list *l; int i; if (nobj > ACPI_OBJECTLIST_MAX) Index: dev/acpica/Osd/OsdDebug.c =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/Osd/OsdDebug.c,v retrieving revision 1.4 diff -u -r1.4 OsdDebug.c --- dev/acpica/Osd/OsdDebug.c 29 Aug 2002 01:52:27 -0000 1.4 +++ dev/acpica/Osd/OsdDebug.c 21 Mar 2003 02:16:10 -0000 @@ -50,7 +50,7 @@ #include UINT32 -AcpiOsGetLine(NATIVE_CHAR *Buffer) +AcpiOsGetLine(char *Buffer) { #ifdef DDB char *cp; @@ -67,7 +67,7 @@ } void -AcpiOsDbgAssert(void *FailedAssertion, void *FileName, UINT32 LineNumber, NATIVE_CHAR *Message) +AcpiOsDbgAssert(void *FailedAssertion, void *FileName, UINT32 LineNumber, char *Message) { printf("ACPI: %s:%d - %s\n", (char *)FileName, LineNumber, Message); printf("ACPI: assertion %s\n", (char *)FailedAssertion); @@ -79,7 +79,7 @@ void *Info) { ACPI_SIGNAL_FATAL_INFO *fatal; - NATIVE_CHAR *message; + char *message; switch(Function) { case ACPI_SIGNAL_FATAL: @@ -90,7 +90,7 @@ break; case ACPI_SIGNAL_BREAKPOINT: - message = (NATIVE_CHAR *)Info; + message = (char *)Info; Debugger(message); break; Index: dev/acpica/Osd/OsdHardware.c =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/Osd/OsdHardware.c,v retrieving revision 1.5 diff -u -r1.5 OsdHardware.c --- dev/acpica/Osd/OsdHardware.c 19 Mar 2002 11:01:52 -0000 1.5 +++ dev/acpica/Osd/OsdHardware.c 21 Mar 2003 17:43:38 -0000 @@ -32,10 +32,11 @@ */ #include "acpi.h" - #include #include #include +#include +extern ACPI_STATUS acpi_EvaluateInteger(ACPI_HANDLE handle, char *path, int *number); /* * ACPICA's rather gung-ho approach to hardware resource ownership is a little @@ -103,6 +104,48 @@ } return(AE_OK); +} + +/* + * Get cur's parent bus no. + */ + +static int +acpi_get_bus_no(ACPI_HANDLE top, ACPI_HANDLE cur, ACPI_PCI_ID *PciId) +{ + ACPI_OBJECT_TYPE type; + ACPI_HANDLE parent; + UINT32 adr; + u_char progif; + int busno; + + /*The Given Busno in PciId is that of Host bus Bridge*/ + if(top == cur) + return PciId->Bus; + /*If failed to recurse remain unchanged anyway*/ + if(ACPI_FAILURE(AcpiGetParent(cur, &parent))) + return PciId->Bus; + busno = acpi_get_bus_no(top, parent, PciId); + if(ACPI_FAILURE(AcpiGetType(cur, &type)) + || (type != ACPI_TYPE_DEVICE) + || (!acpi_EvaluateInteger(cur, "_ADR", &adr)) + || (progif= + pci_cfgregread(busno, ACPI_HIWORD(adr), ACPI_LOWORD(adr), + PCIR_PROGIF, 8)& 0x7f) != 0x1 + || (progif != 0x2)){ + return busno; + } + return pci_cfgregread(busno, ACPI_HIWORD(adr), ACPI_LOWORD(adr), + PCIR_SECBUS_1, 8); +} + +void +AcpiOsDerivePciId(ACPI_HANDLE Rhandle, ACPI_HANDLE Lhandle, + ACPI_PCI_ID **Id) +{ + ACPI_PCI_ID *PciId = *Id; + PciId->Bus = acpi_get_bus_no(Rhandle, Lhandle, PciId); + return; } ACPI_STATUS Index: dev/acpica/Osd/OsdStream.c =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/Osd/OsdStream.c,v retrieving revision 1.2 diff -u -r1.2 OsdStream.c --- dev/acpica/Osd/OsdStream.c 23 Feb 2002 05:32:51 -0000 1.2 +++ dev/acpica/Osd/OsdStream.c 21 Mar 2003 02:16:28 -0000 @@ -34,7 +34,7 @@ #include "acpi.h" void -AcpiOsPrintf (const NATIVE_CHAR *Format, ...) +AcpiOsPrintf (const char *Format, ...) { va_list ap; @@ -44,7 +44,7 @@ } void -AcpiOsVprintf (const NATIVE_CHAR *Format, va_list Args) +AcpiOsVprintf (const char *Format, va_list Args) { vprintf(Format, Args); } Index: dev/acpica/Osd/OsdTable.c =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/Osd/OsdTable.c,v retrieving revision 1.2 diff -u -r1.2 OsdTable.c --- dev/acpica/Osd/OsdTable.c 30 Jul 2002 19:35:30 -0000 1.2 +++ dev/acpica/Osd/OsdTable.c 21 Mar 2003 17:39:31 -0000 @@ -74,3 +74,21 @@ return(AE_OK); } +static char acpi_fake_os_name[256]; + +ACPI_STATUS +AcpiOsPredefinedOverride(const ACPI_PREDEFINED_NAMES *InitVal, + ACPI_STRING *NewVal) +{ + int res; + + *NewVal= NULL; + if((strcmp(InitVal->Name, "_OS_")==0)&& + (res = getenv_string("hw.acpi.os_name", + acpi_fake_os_name, sizeof(acpi_fake_os_name)))){ + printf("OS variable Override to %s\n", acpi_fake_os_name); + *NewVal = acpi_fake_os_name; + } + printf("res %d\n", res); + return AE_OK; +}