50#define _COMPONENT ACPI_TABLES
93 &
Table, &TableLength, &TableFlags);
103 IsIdentical = (
BOOLEAN)((TableDesc->Length != TableLength ||
110 return (IsIdentical);
217 *TableLength = TableDesc->
Length;
218 *TableFlags = TableDesc->
Flags;
467 if (!TableDesc->
Pointer && !AcpiGbl_EnableTableValidation)
514 for (
i = 0;
i < AcpiGbl_RootTableList.CurrentTableCount; ++
i)
546 if (AcpiGbl_RootTableList.Tables[
i].Flags &
609 "Invalid signature 0x%X for ACPI table, expected [%s]",
612 goto InvalidateAndExit;
615 if (AcpiGbl_EnableTableValidation)
624 " Attempted table install failed",
629 goto InvalidateAndExit;
643 " Table is already loaded",
649 goto InvalidateAndExit;
682 UINT32 CurrentTableCount, MaxTableCount;
701 TableCount = AcpiGbl_RootTableList.MaxTableCount;
705 TableCount = AcpiGbl_RootTableList.CurrentTableCount;
719 CurrentTableCount = 0;
720 if (AcpiGbl_RootTableList.Tables)
722 for (
i = 0;
i < TableCount;
i++)
724 if (AcpiGbl_RootTableList.Tables[
i].Address)
726 memcpy (Tables + CurrentTableCount,
727 AcpiGbl_RootTableList.Tables +
i,
735 ACPI_FREE (AcpiGbl_RootTableList.Tables);
739 AcpiGbl_RootTableList.Tables = Tables;
740 AcpiGbl_RootTableList.MaxTableCount = MaxTableCount;
741 AcpiGbl_RootTableList.CurrentTableCount = CurrentTableCount;
772 if (AcpiGbl_RootTableList.CurrentTableCount >=
773 AcpiGbl_RootTableList.MaxTableCount)
782 i = AcpiGbl_RootTableList.CurrentTableCount;
783 AcpiGbl_RootTableList.CurrentTableCount++;
791 *TableDesc = &AcpiGbl_RootTableList.Tables[
i];
824 for (
i = 0;
i < AcpiGbl_RootTableList.CurrentTableCount;
i++)
835 ACPI_FREE (AcpiGbl_RootTableList.Tables);
838 AcpiGbl_RootTableList.Tables =
NULL;
839 AcpiGbl_RootTableList.Flags = 0;
840 AcpiGbl_RootTableList.CurrentTableCount = 0;
878 if (TableIndex >= AcpiGbl_RootTableList.CurrentTableCount)
888 OwnerId = AcpiGbl_RootTableList.Tables[TableIndex].OwnerId;
933 if (TableIndex < AcpiGbl_RootTableList.CurrentTableCount)
936 &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId));
967 if (TableIndex < AcpiGbl_RootTableList.CurrentTableCount)
970 &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId));
1004 if (TableIndex < AcpiGbl_RootTableList.CurrentTableCount)
1006 *
OwnerId = AcpiGbl_RootTableList.Tables[TableIndex].OwnerId;
1033 if (TableIndex < AcpiGbl_RootTableList.CurrentTableCount)
1036 (AcpiGbl_RootTableList.Tables[TableIndex].Flags &
1065 if (TableIndex < AcpiGbl_RootTableList.CurrentTableCount)
1069 AcpiGbl_RootTableList.Tables[TableIndex].Flags |=
1074 AcpiGbl_RootTableList.Tables[TableIndex].Flags &=
1075 ~ACPI_TABLE_IS_LOADED;
1163 ACPI_PHYSICAL_ADDRESS
Address,
1265 if (AcpiGbl_TableHandler)
1268 AcpiGbl_TableHandlerContext);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define AE_ALREADY_EXISTS
#define AE_CTRL_TERMINATE
#define ACPI_ROOT_ORIGIN_ALLOCATED
#define ACPI_ROOT_ALLOW_RESIZE
#define ACPI_FORMAT_UINT64(i)
#define ACPI_MOVE_32_TO_32(d, s)
ACPI_STATUS AcpiNsLoadTable(UINT32 TableIndex, ACPI_NAMESPACE_NODE *Node)
void AcpiNsDeleteNamespaceByOwner(ACPI_OWNER_ID OwnerId)
#define ACPI_DEBUG_PRINT(pl)
#define ACPI_EXCEPTION(plist)
#define ACPI_MODULE_NAME(Name)
#define return_ACPI_STATUS(s)
#define ACPI_FUNCTION_TRACE(a)
#define ACPI_BIOS_ERROR(plist)
#define ACPI_ERROR(plist)
void * AcpiOsMapMemory(ACPI_PHYSICAL_ADDRESS Where, ACPI_SIZE Length)
void AcpiOsUnmapMemory(void *LogicalAddress, ACPI_SIZE Size)
void AcpiTbUninstallTable(ACPI_TABLE_DESC *TableDesc)
ACPI_STATUS AcpiTbInstallStandardTable(ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, ACPI_TABLE_HEADER *Table, BOOLEAN Reload, BOOLEAN Override, UINT32 *TableIndex)
#define ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL
#define ACPI_TABLE_IS_VERIFIED
#define ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL
#define ACPI_TABLE_ORIGIN_MASK
struct acpi_table_header ACPI_TABLE_HEADER
#define ACPI_TABLE_IS_LOADED
#define ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL
#define ACPI_COMPARE_NAMESEG(a, b)
#define ACPI_TABLE_EVENT_UNLOAD
#define ACPI_ALLOCATE_ZEROED(a)
#define ACPI_TABLE_EVENT_LOAD
void AcpiUtReleaseOwnerId(ACPI_OWNER_ID *OwnerId)
ACPI_STATUS AcpiUtAllocateOwnerId(ACPI_OWNER_ID *OwnerId)
void AcpiUtReleaseWriteLock(ACPI_RW_LOCK *Lock)
ACPI_STATUS AcpiUtAcquireMutex(ACPI_MUTEX_HANDLE MutexId)
ACPI_STATUS AcpiUtReleaseMutex(ACPI_MUTEX_HANDLE MutexId)
ACPI_STATUS AcpiUtAcquireWriteLock(ACPI_RW_LOCK *Lock)
ACPI_STATUS AcpiUtVerifyChecksum(ACPI_TABLE_HEADER *Table, UINT32 Length)
BOOLEAN AcpiUtValidNameseg(char *Signature)
static const WCHAR Signature[]
#define ACPI_ROOT_TABLE_SIZE_INCREMENT
void AcpiEvUpdateGpes(ACPI_OWNER_ID TableOwnerId)
_Must_inspect_result_ _In_opt_ PVOID OwnerId
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
ACPI_PHYSICAL_ADDRESS Address
ACPI_NAME_UNION Signature
ACPI_TABLE_HEADER * Pointer
void AcpiTbInvalidateTable(ACPI_TABLE_DESC *TableDesc)
void AcpiTbSetTableLoadedFlag(UINT32 TableIndex, BOOLEAN IsLoaded)
void AcpiTbReleaseTempTable(ACPI_TABLE_DESC *TableDesc)
ACPI_STATUS AcpiTbAllocateOwnerId(UINT32 TableIndex)
ACPI_STATUS AcpiTbValidateTable(ACPI_TABLE_DESC *TableDesc)
void AcpiTbReleaseTable(ACPI_TABLE_HEADER *Table, UINT32 TableLength, UINT8 TableFlags)
ACPI_STATUS AcpiTbAcquireTempTable(ACPI_TABLE_DESC *TableDesc, ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, ACPI_TABLE_HEADER *Table)
ACPI_STATUS AcpiTbResizeRootTableList(void)
BOOLEAN AcpiTbIsTableLoaded(UINT32 TableIndex)
ACPI_STATUS AcpiTbUnloadTable(UINT32 TableIndex)
ACPI_STATUS AcpiTbVerifyTempTable(ACPI_TABLE_DESC *TableDesc, char *Signature, UINT32 *TableIndex)
ACPI_STATUS AcpiTbLoadTable(UINT32 TableIndex, ACPI_NAMESPACE_NODE *ParentNode)
static ACPI_STATUS AcpiTbCheckDuplication(ACPI_TABLE_DESC *TableDesc, UINT32 *TableIndex)
static BOOLEAN AcpiTbCompareTables(ACPI_TABLE_DESC *TableDesc, UINT32 TableIndex)
void AcpiTbInitTableDescriptor(ACPI_TABLE_DESC *TableDesc, ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, ACPI_TABLE_HEADER *Table)
ACPI_STATUS AcpiTbInstallAndLoadTable(ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, ACPI_TABLE_HEADER *Table, BOOLEAN Override, UINT32 *TableIndex)
ACPI_STATUS AcpiTbValidateTempTable(ACPI_TABLE_DESC *TableDesc)
ACPI_STATUS AcpiTbGetOwnerId(UINT32 TableIndex, ACPI_OWNER_ID *OwnerId)
ACPI_STATUS AcpiTbReleaseOwnerId(UINT32 TableIndex)
void AcpiTbNotifyTable(UINT32 Event, void *Table)
ACPI_STATUS AcpiTbGetNextTableDescriptor(UINT32 *TableIndex, ACPI_TABLE_DESC **TableDesc)
ACPI_STATUS AcpiTbDeleteNamespaceByOwner(UINT32 TableIndex)
ACPI_STATUS AcpiTbAcquireTable(ACPI_TABLE_DESC *TableDesc, ACPI_TABLE_HEADER **TablePtr, UINT32 *TableLength, UINT8 *TableFlags)
void AcpiTbTerminate(void)
ACPI_STATUS AcpiGetTableByIndex(UINT32 TableIndex, ACPI_TABLE_HEADER **OutTable)
_Must_inspect_result_ _In_ ULONG Flags
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList