ACPI-CA upstream fixes against acpica-unix-20071019 - FreeBSD has in-kernel strstr(): include/platform/acfreebsd.h - Use proper thread ID for FreeBSD: include/platform/acfreebsd.h interpreter/executer/exmutex.c utilities/utmutex.c - Use AcpiOs*Mutex() on FreeBSD instead of temporary macros: include/acpiosxf.h include/platform/acenv.h - Fix compiler warnings: debugger/dbstats.c events/evmisc.c interpreter/executer/exstore.c hardware/hwsleep.c namespace/nsnames.c namespace/nsparse.c tables/tbfadt.c --- debugger/dbstats.c 2007-10-22 11:56:30.000000000 -0400 +++ debugger/dbstats.c 2007-10-22 12:09:58.000000000 -0400 @@ -141,9 +141,11 @@ AcpiDbClassifyOneObject ( void *Context, void **ReturnValue); +#if defined ACPI_DBG_TRACK_ALLOCATIONS || defined ACPI_USE_LOCAL_CACHE static void AcpiDbListInfo ( ACPI_MEMORY_LIST *List); +#endif /* @@ -522,18 +524,19 @@ AcpiDbDisplayStatistics ( case CMD_STAT_MEMORY: #ifdef ACPI_DBG_TRACK_ALLOCATIONS - AcpiOsPrintf ("\n----Object and Cache Statistics (all in hex)---------\n"); + AcpiOsPrintf ("\n----Object Statistics (all in hex)---------\n"); AcpiDbListInfo (AcpiGbl_GlobalList); AcpiDbListInfo (AcpiGbl_NsNodeList); +#endif #ifdef ACPI_USE_LOCAL_CACHE + AcpiOsPrintf ("\n----Cache Statistics (all in hex)----------\n"); AcpiDbListInfo (AcpiGbl_OperandCache); AcpiDbListInfo (AcpiGbl_PsNodeCache); AcpiDbListInfo (AcpiGbl_PsNodeExtCache); AcpiDbListInfo (AcpiGbl_StateCache); #endif -#endif break; --- events/evmisc.c 2007-10-22 11:56:30.000000000 -0400 +++ events/evmisc.c 2007-10-22 13:05:55.000000000 -0400 @@ -463,7 +463,8 @@ AcpiEvInitGlobalLockHandler ( ACPI_FUNCTION_TRACE (EvInitGlobalLockHandler); - Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS, (ACPI_TABLE_HEADER **) &Facs); + Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS, + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); --- include/acpiosxf.h 2007-10-22 11:56:30.000000000 -0400 +++ include/acpiosxf.h 2007-10-22 12:36:09.000000000 -0400 @@ -252,12 +252,14 @@ void AcpiOsReleaseMutex ( ACPI_MUTEX Handle); +#ifdef ACPI_MUTEX_USE_SEMAPHORE /* Temporary macros for Mutex* interfaces, map to existing semaphore xfaces */ #define AcpiOsCreateMutex(OutHandle) AcpiOsCreateSemaphore (1, 1, OutHandle) #define AcpiOsDeleteMutex(Handle) (void) AcpiOsDeleteSemaphore (Handle) #define AcpiOsAcquireMutex(Handle,Time) AcpiOsWaitSemaphore (Handle, 1, Time) #define AcpiOsReleaseMutex(Handle) (void) AcpiOsSignalSemaphore (Handle, 1) +#endif /* --- include/platform/acenv.h 2007-10-22 11:56:30.000000000 -0400 +++ include/platform/acenv.h 2007-10-22 12:38:26.000000000 -0400 @@ -163,6 +163,7 @@ #ifdef ACPI_APPLICATION #define ACPI_USE_SYSTEM_CLIBRARY #define ACPI_USE_LOCAL_CACHE +#define ACPI_MUTEX_USE_SEMAPHORE #endif #ifdef ACPI_FULL_DEBUG --- include/platform/acfreebsd.h 2007-10-22 11:56:30.000000000 -0400 +++ include/platform/acfreebsd.h 2007-10-22 12:43:50.000000000 -0400 @@ -124,7 +124,7 @@ #include #include -#define ACPI_THREAD_ID pid_t +#define ACPI_THREAD_ID uintptr_t #define ACPI_UINTPTR_T uintptr_t #define ACPI_USE_LOCAL_CACHE #define __cdecl @@ -176,7 +176,7 @@ /* Always use FreeBSD code over our local versions */ #define ACPI_USE_SYSTEM_CLIBRARY -#ifdef _KERNEL +#if defined(_KERNEL) && (__FreeBSD_version < 700020) /* Or strstr (used in debugging mode, also move to libkern) */ static __inline char * strstr (char *s, char *find) --- interpreter/executer/exmutex.c 2007-10-22 11:56:30.000000000 -0400 +++ interpreter/executer/exmutex.c 2007-10-22 12:50:52.000000000 -0400 @@ -488,10 +488,10 @@ AcpiExReleaseMutex ( (ObjDesc != AcpiGbl_GlobalLockMutex)) { ACPI_ERROR ((AE_INFO, - "Thread %X cannot release Mutex [%4.4s] acquired by thread %X", - WalkState->Thread->ThreadId, + "Thread %lX cannot release Mutex [%4.4s] acquired by thread %lX", + (unsigned long) WalkState->Thread->ThreadId, AcpiUtGetNodeName (ObjDesc->Mutex.Node), - ObjDesc->Mutex.OwnerThread->ThreadId)); + (unsigned long) ObjDesc->Mutex.OwnerThread->ThreadId)); return_ACPI_STATUS (AE_AML_NOT_OWNER); } --- interpreter/executer/exstore.c 2007-10-22 11:56:30.000000000 -0400 +++ interpreter/executer/exstore.c 2007-10-22 12:28:51.000000000 -0400 @@ -275,7 +275,7 @@ AcpiExDoDebugObject ( if (SourceDesc->Reference.Opcode == AML_LOAD_OP) /* Load and LoadTable */ { ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, - " Table OwnerId %X\n", SourceDesc->Reference.Object)); + " Table OwnerId %p\n", SourceDesc->Reference.Object)); break; } @@ -300,7 +300,7 @@ AcpiExDoDebugObject ( ACPI_DESC_TYPE_NAMED) { ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, - " %p - Not a valid namespace node\n")); + " - Not a valid namespace node\n")); } else { --- hardware/hwsleep.c 2007-10-22 11:56:30.000000000 -0400 +++ hardware/hwsleep.c 2007-10-22 12:10:52.000000000 -0400 @@ -147,7 +147,8 @@ AcpiSetFirmwareWakingVector ( /* Get the FACS */ - Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS, (ACPI_TABLE_HEADER **) &Facs); + Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS, + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -209,7 +210,8 @@ AcpiGetFirmwareWakingVector ( /* Get the FACS */ - Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS, (ACPI_TABLE_HEADER **) &Facs); + Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS, + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); --- namespace/nsnames.c 2007-10-22 11:56:31.000000000 -0400 +++ namespace/nsnames.c 2007-10-22 12:29:23.000000000 -0400 @@ -279,7 +279,7 @@ AcpiNsGetPathnameLength ( { if (ACPI_GET_DESCRIPTOR_TYPE (NextNode) != ACPI_DESC_TYPE_NAMED) { - ACPI_ERROR ((AE_INFO, "Invalid NS Node (%X) while traversing path", NextNode)); + ACPI_ERROR ((AE_INFO, "Invalid NS Node (%p) while traversing path", NextNode)); return 0; } Size += ACPI_PATH_SEGMENT_LENGTH; --- namespace/nsparse.c 2007-10-22 11:56:31.000000000 -0400 +++ namespace/nsparse.c 2007-10-22 12:16:15.000000000 -0400 @@ -219,7 +219,8 @@ AcpiNsOneCompleteParse ( /* Parse the AML */ - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "*PARSE* pass %d parse\n", PassNumber)); + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "*PARSE* pass %lu parse\n", + (unsigned long) PassNumber)); Status = AcpiPsParseAml (WalkState); AcpiPsDeleteParseTree (ParseRoot); --- tables/tbfadt.c 2007-10-22 11:56:31.000000000 -0400 +++ tables/tbfadt.c 2007-10-22 12:16:15.000000000 -0400 @@ -323,8 +323,8 @@ AcpiTbCreateLocalFadt ( if (Length > sizeof (ACPI_TABLE_FADT)) { ACPI_WARNING ((AE_INFO, - "FADT (revision %u) is longer than ACPI 2.0 version, truncating length 0x%X to 0x%X", - Table->Revision, Length, sizeof (ACPI_TABLE_FADT))); + "FADT (revision %u) is longer than ACPI 2.0 version, truncating length 0x%X to 0x%lX", + Table->Revision, Length, (unsigned long) sizeof (ACPI_TABLE_FADT))); } /* Clear the entire local FADT */ --- utilities/utmutex.c 2007-10-22 11:56:31.000000000 -0400 +++ utilities/utmutex.c 2007-10-22 12:49:18.000000000 -0400 @@ -339,15 +339,16 @@ AcpiUtAcquireMutex ( if (i == MutexId) { ACPI_ERROR ((AE_INFO, - "Mutex [%s] already acquired by this thread [%X]", - AcpiUtGetMutexName (MutexId), ThisThreadId)); + "Mutex [%s] already acquired by this thread [%lX]", + AcpiUtGetMutexName (MutexId), + (unsigned long) ThisThreadId)); return (AE_ALREADY_ACQUIRED); } ACPI_ERROR ((AE_INFO, - "Invalid acquire order: Thread %X owns [%s], wants [%s]", - ThisThreadId, AcpiUtGetMutexName (i), + "Invalid acquire order: Thread %lX owns [%s], wants [%s]", + (unsigned long) ThisThreadId, AcpiUtGetMutexName (i), AcpiUtGetMutexName (MutexId))); return (AE_ACQUIRE_DEADLOCK); @@ -357,15 +358,15 @@ AcpiUtAcquireMutex ( #endif ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, - "Thread %X attempting to acquire Mutex [%s]\n", - ThisThreadId, AcpiUtGetMutexName (MutexId))); + "Thread %lX attempting to acquire Mutex [%s]\n", + (unsigned long) ThisThreadId, AcpiUtGetMutexName (MutexId))); Status = AcpiOsAcquireMutex (AcpiGbl_MutexInfo[MutexId].Mutex, ACPI_WAIT_FOREVER); if (ACPI_SUCCESS (Status)) { - ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %X acquired Mutex [%s]\n", - ThisThreadId, AcpiUtGetMutexName (MutexId))); + ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %lX acquired Mutex [%s]\n", + (unsigned long) ThisThreadId, AcpiUtGetMutexName (MutexId))); AcpiGbl_MutexInfo[MutexId].UseCount++; AcpiGbl_MutexInfo[MutexId].ThreadId = ThisThreadId; @@ -373,7 +374,8 @@ AcpiUtAcquireMutex ( else { ACPI_EXCEPTION ((AE_INFO, Status, - "Thread %X could not acquire Mutex [%X]", ThisThreadId, MutexId)); + "Thread %lX could not acquire Mutex [%X]", + (unsigned long) ThisThreadId, MutexId)); } return (Status); @@ -404,7 +406,7 @@ AcpiUtReleaseMutex ( ThisThreadId = AcpiOsGetThreadId (); ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, - "Thread %X releasing Mutex [%s]\n", ThisThreadId, + "Thread %lX releasing Mutex [%s]\n", (unsigned long) ThisThreadId, AcpiUtGetMutexName (MutexId))); if (MutexId > ACPI_MAX_MUTEX)