diff options
Diffstat (limited to 'source/include')
| -rw-r--r-- | source/include/acconfig.h | 1 | ||||
| -rw-r--r-- | source/include/acdisasm.h | 12 | ||||
| -rw-r--r-- | source/include/acglobal.h | 6 | ||||
| -rw-r--r-- | source/include/aclocal.h | 2 | ||||
| -rw-r--r-- | source/include/acoutput.h | 5 | ||||
| -rw-r--r-- | source/include/acpixf.h | 4 | ||||
| -rw-r--r-- | source/include/acpredef.h | 2 | ||||
| -rw-r--r-- | source/include/actbinfo.h | 11 | ||||
| -rw-r--r-- | source/include/actbl1.h | 17 | ||||
| -rw-r--r-- | source/include/actbl2.h | 109 | ||||
| -rw-r--r-- | source/include/actbl3.h | 12 | ||||
| -rw-r--r-- | source/include/actypes.h | 1 | ||||
| -rw-r--r-- | source/include/platform/acenv.h | 6 | ||||
| -rw-r--r-- | source/include/platform/achaiku.h | 9 |
14 files changed, 173 insertions, 24 deletions
diff --git a/source/include/acconfig.h b/source/include/acconfig.h index f795b19efc76..7af986fce75a 100644 --- a/source/include/acconfig.h +++ b/source/include/acconfig.h @@ -210,7 +210,6 @@ * General Purpose Events (GPEs) * Global Lock * ACPI PM timer - * FACS table (Waking vectors and Global Lock) */ #ifndef ACPI_REDUCED_HARDWARE #define ACPI_REDUCED_HARDWARE FALSE diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 91ec294325d0..01acb57fcf40 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -226,6 +226,8 @@ typedef enum ACPI_DMT_BUF12, ACPI_DMT_BUF16, ACPI_DMT_BUF18, + ACPI_DMT_BUF32, + ACPI_DMT_BUF112, ACPI_DMT_BUF128, ACPI_DMT_SIG, ACPI_DMT_STRING, @@ -382,9 +384,17 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorV2Error[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestPCIeError[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestProxyError[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXfaceHeader[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface4k[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface16k[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface64k[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXruptV2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[]; @@ -418,6 +428,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2_te[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[]; diff --git a/source/include/acglobal.h b/source/include/acglobal.h index 7a87d125107d..fa14d6e50602 100644 --- a/source/include/acglobal.h +++ b/source/include/acglobal.h @@ -172,11 +172,7 @@ ACPI_INIT_GLOBAL (UINT32, AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_IN ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL (UINT32, AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX); - -#if (!ACPI_REDUCED_HARDWARE) -ACPI_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS); - -#endif /* !ACPI_REDUCED_HARDWARE */ +ACPI_INIT_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS, NULL); /* These addresses are calculated from the FADT Event Block addresses */ diff --git a/source/include/aclocal.h b/source/include/aclocal.h index 477034fbf4f7..c8beb6f1b8b5 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -1412,6 +1412,8 @@ typedef struct acpi_port_info #define ACPI_ADDRESS_TYPE_IO_RANGE 1 #define ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE 2 +#define ACPI_ADDRESS_TYPE_PCC_NUMBER 0xA + /* Resource descriptor types and masks */ #define ACPI_RESOURCE_NAME_LARGE 0x80 diff --git a/source/include/acoutput.h b/source/include/acoutput.h index 6e1b317d8ce7..c270d2c83277 100644 --- a/source/include/acoutput.h +++ b/source/include/acoutput.h @@ -336,6 +336,7 @@ */ #ifndef ACPI_NO_ERROR_MESSAGES #define AE_INFO _AcpiModuleName, __LINE__ +#define ACPI_ONCE(_fn, _plist) { static char _done; if (!_done) { _done = 1; _fn _plist; } } /* * Error reporting. Callers module and line number are inserted by AE_INFO, @@ -344,8 +345,10 @@ */ #define ACPI_INFO(plist) AcpiInfo plist #define ACPI_WARNING(plist) AcpiWarning plist +#define ACPI_WARNING_ONCE(plist) ACPI_ONCE(AcpiWarning, plist) #define ACPI_EXCEPTION(plist) AcpiException plist #define ACPI_ERROR(plist) AcpiError plist +#define ACPI_ERROR_ONCE(plist) ACPI_ONCE(AcpiError, plist) #define ACPI_BIOS_WARNING(plist) AcpiBiosWarning plist #define ACPI_BIOS_EXCEPTION(plist) AcpiBiosException plist #define ACPI_BIOS_ERROR(plist) AcpiBiosError plist @@ -357,8 +360,10 @@ #define ACPI_INFO(plist) #define ACPI_WARNING(plist) +#define ACPI_WARNING_ONCE(plist) #define ACPI_EXCEPTION(plist) #define ACPI_ERROR(plist) +#define ACPI_ERROR_ONCE(plist) #define ACPI_BIOS_WARNING(plist) #define ACPI_BIOS_EXCEPTION(plist) #define ACPI_BIOS_ERROR(plist) diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 4b96cc74965f..53d56a95b65e 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20230628 +#define ACPI_CA_VERSION 0x20240827 #include "acconfig.h" #include "actypes.h" @@ -1295,7 +1295,7 @@ ACPI_STATUS AcpiLeaveSleepState ( UINT8 SleepState)) -ACPI_HW_DEPENDENT_RETURN_STATUS ( +ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS AcpiSetFirmwareWakingVector ( ACPI_PHYSICAL_ADDRESS PhysicalAddress, diff --git a/source/include/acpredef.h b/source/include/acpredef.h index c8ac10b2c043..144aedf0bf9a 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -587,7 +587,7 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */ PACKAGE_INFO (ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1, ACPI_RTYPE_PACKAGE, 1,0), - {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_PACKAGE), + {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_ANY) | ARG_COUNT_IS_MINIMUM, METHOD_RETURNS (ACPI_RTYPE_ALL)}}, /* Must return a value, but it can be of any type */ {{"_DSS", METHOD_1ARGS (ACPI_TYPE_INTEGER), diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index 4f2bfd1f446f..19692837f11d 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -225,9 +225,17 @@ #define ACPI_AEST1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_MEMORY,f) #define ACPI_AEST2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_SMMU,f) #define ACPI_AEST3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_VENDOR,f) +#define ACPI_AEST3A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_VENDOR_V2,f) #define ACPI_AEST4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_GIC,f) +#define ACPI_AEST5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PCIE,f) +#define ACPI_AEST6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PROXY,f) #define ACPI_AEST0D_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE,f) +#define ACPI_AEST0DH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_HEADER,f) +#define ACPI_AEST0D4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_4K,f) +#define ACPI_AEST0D16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_16K,f) +#define ACPI_AEST0D64_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_64K,f) #define ACPI_AEST0E_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERRUPT,f) +#define ACPI_AEST0EA_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERRUPT_V2,f) #define ACPI_APMTN_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_APMT_NODE,f) #define ACPI_ASF0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_INFO,f) #define ACPI_ASF1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT,f) @@ -253,6 +261,8 @@ #define ACPI_CEDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CHBS, f) #define ACPI_CEDT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS, f) #define ACPI_CEDT1_TE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS_TARGET_ELEMENT, f) +#define ACPI_CEDT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CXIMS, f) +#define ACPI_CEDT2_TE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CXIMS_TARGET_ELEMENT, f) #define ACPI_CPEP0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CPEP_POLLING,f) #define ACPI_CSRT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_GROUP,f) #define ACPI_CSRT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_SHARED_INFO,f) @@ -446,6 +456,7 @@ #define ACPI_AEST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_PROCESSOR,f,o) #define ACPI_AEST0D_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERFACE,f,o) #define ACPI_AEST0E_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERRUPT,f,o) +#define ACPI_AEST0EA_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERRUPT_V2,f,o) #define ACPI_AGDI_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_AGDI,f,o) #define ACPI_APMTN_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_APMT_NODE,f,o) #define ACPI_BGRT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_BGRT,f,o) diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 5816a812dff0..71cbc36d3fe7 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -822,13 +822,20 @@ typedef struct acpi_cedt_cfmws_target_element /* 2: CXL XOR Interleave Math Structure */ -struct acpi_cedt_cxims { +typedef struct acpi_cedt_cxims { ACPI_CEDT_HEADER Header; UINT16 Reserved1; UINT8 Hbig; UINT8 NrXormaps; UINT64 XormapList[]; -}; +} ACPI_CEDT_CXIMS; + +typedef struct acpi_cedt_cxims_target_element +{ + UINT64 Xormap; + +} ACPI_CEDT_CXIMS_TARGET_ELEMENT; + /* 3: CXL RCEC Downstream Port Association Structure */ @@ -1038,6 +1045,7 @@ typedef struct acpi_dbg2_device #define ACPI_DBG2_16550_WITH_GAS 0x0012 #define ACPI_DBG2_SDM845_7_372MHZ 0x0013 #define ACPI_DBG2_INTEL_LPSS 0x0014 +#define ACPI_DBG2_RISCV_SBI_CON 0x0015 #define ACPI_DBG2_1394_STANDARD 0x0000 @@ -2262,7 +2270,7 @@ typedef struct acpi_hmat_cache UINT32 Reserved1; UINT64 CacheSize; UINT32 CacheAttributes; - UINT16 Reserved2; + UINT16 AddressMode; UINT16 NumberOfSMBIOSHandles; } ACPI_HMAT_CACHE; @@ -2275,6 +2283,9 @@ typedef struct acpi_hmat_cache #define ACPI_HMAT_WRITE_POLICY (0x0000F000) #define ACPI_HMAT_CACHE_LINE_SIZE (0xFFFF0000) +#define ACPI_HMAT_CACHE_MODE_UNKNOWN (0) +#define ACPI_HMAT_CACHE_MODE_EXTENDED_LINEAR (1) + /* Values for cache associativity flag */ #define ACPI_HMAT_CA_NONE (0) diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 99076bbc460c..cc09702b8a3f 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -259,7 +259,9 @@ typedef struct acpi_aest_hdr #define ACPI_AEST_SMMU_ERROR_NODE 2 #define ACPI_AEST_VENDOR_ERROR_NODE 3 #define ACPI_AEST_GIC_ERROR_NODE 4 -#define ACPI_AEST_NODE_TYPE_RESERVED 5 /* 5 and above are reserved */ +#define ACPI_AEST_PCIE_ERROR_NODE 5 +#define ACPI_AEST_PROXY_ERROR_NODE 6 +#define ACPI_AEST_NODE_TYPE_RESERVED 7 /* 7 and above are reserved */ /* @@ -346,6 +348,16 @@ typedef struct acpi_aest_vendor } ACPI_AEST_VENDOR; +/* 3: Vendor Defined V2 */ + +typedef struct acpi_aest_vendor_v2 +{ + UINT64 AcpiHid; + UINT32 AcpiUid; + UINT8 VendorSpecificData[16]; + +} ACPI_AEST_VENDOR_V2; + /* 4: Gic Error */ typedef struct acpi_aest_gic @@ -363,6 +375,22 @@ typedef struct acpi_aest_gic #define ACPI_AEST_GIC_ITS 3 #define ACPI_AEST_GIC_RESERVED 4 /* 4 and above are reserved */ +/* 5: PCIe Error */ + +typedef struct acpi_aest_pcie +{ + UINT32 IortNodeReference; + +} ACPI_AEST_PCIE; + + +/* 6: Proxy Error */ + +typedef struct acpi_aest_proxy +{ + UINT64 NodeAddress; + +} ACPI_AEST_PROXY; /* Node Interface Structure */ @@ -380,11 +408,67 @@ typedef struct acpi_aest_node_interface } ACPI_AEST_NODE_INTERFACE; +/* Node Interface Structure V2*/ + +typedef struct acpi_aest_node_interface_header +{ + UINT8 Type; + UINT8 GroupFormat; + UINT8 Reserved[2]; + UINT32 Flags; + UINT64 Address; + UINT32 ErrorRecordIndex; + UINT32 ErrorRecordCount; + +} ACPI_AEST_NODE_INTERFACE_HEADER; + +#define ACPI_AEST_NODE_GROUP_FORMAT_4K 0 +#define ACPI_AEST_NODE_GROUP_FORMAT_16K 1 +#define ACPI_AEST_NODE_GROUP_FORMAT_64K 2 + +typedef struct acpi_aest_node_interface_common +{ + UINT32 ErrorNodeDevice; + UINT32 ProcessorAffinity; + UINT64 ErrorGroupRegisterBase; + UINT64 FaultInjectRegisterBase; + UINT64 InterruptConfigRegisterBase; + +} ACPI_AEST_NODE_INTERFACE_COMMON; + +typedef struct acpi_aest_node_interface_4k +{ + UINT64 ErrorRecordImplemented; + UINT64 ErrorStatusReporting; + UINT64 AddressingMode; + ACPI_AEST_NODE_INTERFACE_COMMON Common; + +} ACPI_AEST_NODE_INTERFACE_4K; + +typedef struct acpi_aest_node_interface_16k +{ + UINT64 ErrorRecordImplemented[4]; + UINT64 ErrorStatusReporting[4]; + UINT64 AddressingMode[4]; + ACPI_AEST_NODE_INTERFACE_COMMON Common; + +} ACPI_AEST_NODE_INTERFACE_16K; + +typedef struct acpi_aest_node_interface_64k +{ + INT64 ErrorRecordImplemented[14]; + UINT64 ErrorStatusReporting[14]; + UINT64 AddressingMode[14]; + ACPI_AEST_NODE_INTERFACE_COMMON Common; + +} ACPI_AEST_NODE_INTERFACE_64K; + /* Values for Type field above */ -#define ACPI_AEST_NODE_SYSTEM_REGISTER 0 -#define ACPI_AEST_NODE_MEMORY_MAPPED 1 -#define ACPI_AEST_XFACE_RESERVED 2 /* 2 and above are reserved */ +#define ACPI_AEST_NODE_SYSTEM_REGISTER 0 +#define ACPI_AEST_NODE_MEMORY_MAPPED 1 +#define ACPI_AEST_NODE_SINGLE_RECORD_MEMORY_MAPPED 2 +#define ACPI_AEST_XFACE_RESERVED 3 /* 2 and above are reserved */ /* Node Interrupt Structure */ @@ -399,6 +483,18 @@ typedef struct acpi_aest_node_interrupt } ACPI_AEST_NODE_INTERRUPT; +/* Node Interrupt Structure V2 */ + +typedef struct acpi_aest_node_interrupt_v2 +{ + UINT8 Type; + UINT8 Reserved[2]; + UINT8 Flags; + UINT32 Gsiv; + UINT8 Reserved1[4]; + +} ACPI_AEST_NODE_INTERRUPT_V2; + /* Values for Type field above */ #define ACPI_AEST_NODE_FAULT_HANDLING 0 @@ -548,7 +644,7 @@ typedef struct acpi_table_ccel * IORT - IO Remapping Table * * Conforms to "IO Remapping Table System Software on ARM Platforms", - * Document number: ARM DEN 0049E.e, Sep 2022 + * Document number: ARM DEN 0049E.f, Apr 2024 * ******************************************************************************/ @@ -631,6 +727,7 @@ typedef struct acpi_iort_memory_access #define ACPI_IORT_MF_COHERENCY (1) #define ACPI_IORT_MF_ATTRIBUTES (1<<1) +#define ACPI_IORT_MF_CANWBS (1<<2) /* @@ -1835,7 +1932,7 @@ typedef struct acpi_mpam_msc_node UINT32 MaxNrdyUsec; UINT64 HardwareIdLinkedDevice; UINT32 InstanceIdLinkedDevice; - UINT32 NumResouceNodes; + UINT32 NumResourceNodes; } ACPI_MPAM_MSC_NODE; typedef struct acpi_table_mpam diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 477d70af2c65..316197927fb5 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -243,10 +243,10 @@ typedef struct acpi_table_slit /******************************************************************************* * * SPCR - Serial Port Console Redirection table - * Version 2 + * Version 4 * * Conforms to "Serial Port Console Redirection Table", - * Version 1.03, August 10, 2015 + * Version 1.10, Jan 5, 2023 * ******************************************************************************/ @@ -264,7 +264,7 @@ typedef struct acpi_table_spcr UINT8 StopBits; UINT8 FlowControl; UINT8 TerminalType; - UINT8 Reserved1; + UINT8 Language; UINT16 PciDeviceId; UINT16 PciVendorId; UINT8 PciBus; @@ -272,7 +272,11 @@ typedef struct acpi_table_spcr UINT8 PciFunction; UINT32 PciFlags; UINT8 PciSegment; - UINT32 Reserved2; + UINT32 UartClkFreq; + UINT32 PreciseBaudrate; + UINT16 NameSpaceStringLength; + UINT16 NameSpaceStringOffset; + char NameSpaceString[]; } ACPI_TABLE_SPCR; diff --git a/source/include/actypes.h b/source/include/actypes.h index 695dbb14d7eb..5e1012d86e5a 100644 --- a/source/include/actypes.h +++ b/source/include/actypes.h @@ -1561,6 +1561,7 @@ typedef enum #define ACPI_OSI_WIN_10_19H1 0x14 #define ACPI_OSI_WIN_10_20H1 0x15 #define ACPI_OSI_WIN_11 0x16 +#define ACPI_OSI_WIN_11_22H2 0x17 /* Definitions of getopt */ diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h index e7c8678d2280..cc198c01a134 100644 --- a/source/include/platform/acenv.h +++ b/source/include/platform/acenv.h @@ -403,6 +403,12 @@ #define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pending) Pending = 0 #endif +/* NULL/invalid value to use for destroyed or not-yet-created semaphores. */ + +#ifndef ACPI_SEMAPHORE_NULL +#define ACPI_SEMAPHORE_NULL NULL +#endif + /* Flush CPU cache - used when going to sleep. Wbinvd or similar. */ #ifndef ACPI_FLUSH_CPU_CACHE diff --git a/source/include/platform/achaiku.h b/source/include/platform/achaiku.h index 64b59819bfde..044e0b62a2b2 100644 --- a/source/include/platform/achaiku.h +++ b/source/include/platform/achaiku.h @@ -191,11 +191,14 @@ struct mutex; /* ACPICA cache implementation is adequate. */ #define ACPI_USE_LOCAL_CACHE +/* On other platform the default definition (do nothing) is fine. */ +#if defined(__i386__) || defined(__x86_64__) #define ACPI_FLUSH_CPU_CACHE() __asm __volatile("wbinvd"); +#endif /* Based on FreeBSD's due to lack of documentation */ -int AcpiOsAcquireGlobalLock(uint32 *lock); -int AcpiOsReleaseGlobalLock(uint32 *lock); +extern int AcpiOsAcquireGlobalLock(volatile uint32_t *lock); +extern int AcpiOsReleaseGlobalLock(volatile uint32_t *lock); #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ (Acq) = AcpiOsAcquireGlobalLock(&((GLptr)->GlobalLock)); \ @@ -205,6 +208,8 @@ int AcpiOsReleaseGlobalLock(uint32 *lock); (Acq) = AcpiOsReleaseGlobalLock(&((GLptr)->GlobalLock)); \ } while (0) +#define ACPI_SEMAPHORE_NULL -1 + #else /* _KERNEL_MODE */ /* Host-dependent types and defines for user-space ACPICA */ |
