From: Thomas Faber Date: Tue, 10 Nov 2015 11:12:54 +0000 (+0000) Subject: [ACPICA] X-Git-Tag: ReactOS-0.4.0~198 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=e9415580c58a12e20f2ceadf583e9a0779d24357 [ACPICA] - Mark ReactOS modifications as such CORE-10509 svn path=/trunk/; revision=69860 --- diff --git a/reactos/drivers/bus/acpi/acpica/include/acpi.h b/reactos/drivers/bus/acpi/acpica/include/acpi.h index e39627b8de2..4ec64fa451c 100644 --- a/reactos/drivers/bus/acpi/acpica/include/acpi.h +++ b/reactos/drivers/bus/acpi/acpica/include/acpi.h @@ -116,11 +116,13 @@ #ifndef __ACPI_H__ #define __ACPI_H__ +#ifdef __REACTOS__ /* * Header inclusion HACK (see modifications to actypes.h too). */ #include #undef ACPI_BIOS_ERROR // ACPI_BIOS_ERROR is redefined in acoutput.h +#endif /* __REACTOS__ */ /* * Public include files for use by code that will interface to ACPICA. diff --git a/reactos/drivers/bus/acpi/acpica/include/actypes.h b/reactos/drivers/bus/acpi/acpica/include/actypes.h index 2218921fb87..847a20d56ba 100644 --- a/reactos/drivers/bus/acpi/acpica/include/actypes.h +++ b/reactos/drivers/bus/acpi/acpica/include/actypes.h @@ -196,11 +196,13 @@ * ******************************************************************************/ -// typedef unsigned char BOOLEAN; -// typedef unsigned char UINT8; -// typedef unsigned short UINT16; -// typedef COMPILER_DEPENDENT_UINT64 UINT64; -// typedef COMPILER_DEPENDENT_INT64 INT64; +#ifndef __REACTOS__ +typedef unsigned char BOOLEAN; +typedef unsigned char UINT8; +typedef unsigned short UINT16; +typedef COMPILER_DEPENDENT_UINT64 UINT64; +typedef COMPILER_DEPENDENT_INT64 INT64; +#endif /* __REACTOS__ */ /*! [End] no source code translation !*/ @@ -225,8 +227,10 @@ /*! [Begin] no source code translation (keep the typedefs as-is) */ -// typedef unsigned int UINT32; -// typedef int INT32; +#ifndef __REACTOS__ +typedef unsigned int UINT32; +typedef int INT32; +#endif /* __REACTOS__ */ /*! [End] no source code translation !*/ @@ -264,8 +268,10 @@ typedef UINT64 ACPI_PHYSICAL_ADDRESS; /*! [Begin] no source code translation (keep the typedefs as-is) */ -// typedef unsigned int UINT32; -// typedef int INT32; +#ifndef __REACTOS__ +typedef unsigned int UINT32; +typedef int INT32; +#endif /* __REACTOS__ */ /*! [End] no source code translation !*/ diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acenv.h b/reactos/drivers/bus/acpi/acpica/include/platform/acenv.h index 6e2eba6e8d1..d910945833e 100644 --- a/reactos/drivers/bus/acpi/acpica/include/platform/acenv.h +++ b/reactos/drivers/bus/acpi/acpica/include/platform/acenv.h @@ -290,7 +290,11 @@ /* Type of mutex supported by host. Default is binary semaphores. */ #ifndef ACPI_MUTEX_TYPE +#ifdef __REACTOS__ #define ACPI_MUTEX_TYPE ACPI_OSL_MUTEX +#else +#define ACPI_MUTEX_TYPE ACPI_BINARY_SEMAPHORE +#endif /* __REACTOS__ */ #endif /* Global Lock acquire/release */ diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acgcc.h b/reactos/drivers/bus/acpi/acpica/include/platform/acgcc.h index e03b9bace60..95f8f24d716 100644 --- a/reactos/drivers/bus/acpi/acpica/include/platform/acgcc.h +++ b/reactos/drivers/bus/acpi/acpica/include/platform/acgcc.h @@ -147,7 +147,7 @@ #undef strchr #endif - +#ifdef __REACTOS__ /* Flush CPU cache - used when going to sleep. Wbinvd or similar. */ #ifdef ACPI_APPLICATION @@ -207,5 +207,5 @@ do { \ n_lo >>= 1; \ } - +#endif /* __REACTOS__ */ #endif /* __ACGCC_H__ */ diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acmsvc.h b/reactos/drivers/bus/acpi/acpica/include/platform/acmsvc.h index 1748c9a65fc..3bbab804a07 100644 --- a/reactos/drivers/bus/acpi/acpica/include/platform/acmsvc.h +++ b/reactos/drivers/bus/acpi/acpica/include/platform/acmsvc.h @@ -202,6 +202,7 @@ } #endif +#ifdef __REACTOS__ /* Flush CPU cache - used when going to sleep. Wbinvd or similar. */ @@ -262,6 +263,7 @@ __asm mov Pnd, al \ } +#endif /* __REACTOS__ */ /* warn C4100: unreferenced formal parameter */ #pragma warning(disable:4100) diff --git a/reactos/drivers/bus/acpi/acpica/include/platform/acwin.h b/reactos/drivers/bus/acpi/acpica/include/platform/acwin.h index d6645ab5bd9..b884d4a51e3 100644 --- a/reactos/drivers/bus/acpi/acpica/include/platform/acwin.h +++ b/reactos/drivers/bus/acpi/acpica/include/platform/acwin.h @@ -118,12 +118,15 @@ /*! [Begin] no source code translation (Keep the include) */ -/* Windows uses VC or GCC */ -#if defined(_MSC_VER) +/* Windows uses VC */ +#ifdef _MSC_VER #include "acmsvc.h" -#elif defined(__GNUC__) +#endif +#ifdef __REACTOS__ +#if !defined(_MSC_VER) && defined(__GNUC__) #include "acgcc.h" #endif +#endif /* __REACTOS __ */ /*! [End] no source code translation !*/ #define ACPI_MACHINE_WIDTH 32 @@ -154,10 +157,71 @@ typedef COMPILER_DEPENDENT_UINT64 u64; /*! [Begin] no source code translation */ +#ifndef __REACTOS__ +#ifdef ACPI_APPLICATION +#define ACPI_FLUSH_CPU_CACHE() +#else +#define ACPI_FLUSH_CPU_CACHE() __asm {WBINVD} +#endif +#endif /* __REACTOS__ */ + #ifdef _DEBUG #define ACPI_SIMPLE_RETURN_MACROS #endif /*! [End] no source code translation !*/ +#ifndef __REACTOS__ +/* + * Global Lock acquire/release code + * + * Note: Handles case where the FACS pointer is null + */ +#define ACPI_ACQUIRE_GLOBAL_LOCK(FacsPtr, Acq) __asm \ +{ \ + __asm mov eax, 0xFF \ + __asm mov ecx, FacsPtr \ + __asm or ecx, ecx \ + __asm jz exit_acq \ + __asm lea ecx, [ecx].GlobalLock \ + \ + __asm acq10: \ + __asm mov eax, [ecx] \ + __asm mov edx, eax \ + __asm and edx, 0xFFFFFFFE \ + __asm bts edx, 1 \ + __asm adc edx, 0 \ + __asm lock cmpxchg dword ptr [ecx], edx \ + __asm jnz acq10 \ + \ + __asm cmp dl, 3 \ + __asm sbb eax, eax \ + \ + __asm exit_acq: \ + __asm mov Acq, al \ +} + +#define ACPI_RELEASE_GLOBAL_LOCK(FacsPtr, Pnd) __asm \ +{ \ + __asm xor eax, eax \ + __asm mov ecx, FacsPtr \ + __asm or ecx, ecx \ + __asm jz exit_rel \ + __asm lea ecx, [ecx].GlobalLock \ + \ + __asm Rel10: \ + __asm mov eax, [ecx] \ + __asm mov edx, eax \ + __asm and edx, 0xFFFFFFFC \ + __asm lock cmpxchg dword ptr [ecx], edx \ + __asm jnz Rel10 \ + \ + __asm cmp dl, 3 \ + __asm and eax, 1 \ + \ + __asm exit_rel: \ + __asm mov Pnd, al \ +} +#endif /* __REACTOS__ */ + #endif /* __ACWIN_H__ */