52#define _COMPONENT ACPI_EXECUTER
60 UINT32 FieldDatumByteOffset,
72 UINT32 FieldDatumByteOffset);
94 UINT32 FieldDatumByteOffset)
124 "Invalid/unknown Address Space ID: 0x%2.2X",
SpaceId));
154#ifdef ACPI_UNDER_DEVELOPMENT
174 (ObjDesc->CommonField.BaseByteOffset + FieldDatumByteOffset +
175 ObjDesc->CommonField.AccessByteWidth))
177 if (AcpiGbl_EnableInterpreterSlack)
185 ObjDesc->CommonField.AccessByteWidth) >=
186 ((ACPI_SIZE) ObjDesc->CommonField.BaseByteOffset +
187 ObjDesc->CommonField.AccessByteWidth +
188 FieldDatumByteOffset))
194 if (RgnDesc->
Region.
Length < ObjDesc->CommonField.AccessByteWidth)
202 "Field [%4.4s] access width (%u bytes) "
203 "too large for region [%4.4s] (length %u)",
205 ObjDesc->CommonField.AccessByteWidth,
215 "Field [%4.4s] Base+Offset+Width %u+%u+%u "
216 "is beyond end of region [%4.4s] (length %u)",
218 ObjDesc->CommonField.BaseByteOffset,
219 FieldDatumByteOffset, ObjDesc->CommonField.AccessByteWidth,
251 UINT32 FieldDatumByteOffset,
283 FieldDatumByteOffset;
295 " Region [%s:%X], Width %X, ByteBase %X, Offset %X at %8.8X%8.8X\n",
300 FieldDatumByteOffset,
314 "Region %s (ID=%u) not implemented",
321 "Region %s (ID=%u) has no handler",
370 "Index value 0x%8.8X%8.8X overflows field width 0x%X",
404 UINT32 FieldDatumByteOffset,
440 switch (ObjDesc->
Common.Type)
465 FieldDatumByteOffset,
476 FieldDatumByteOffset,
535 FieldDatumByteOffset += ObjDesc->
IndexField.Value;
538 "Write to Index Register: Value %8.8X\n",
539 FieldDatumByteOffset));
542 &FieldDatumByteOffset,
sizeof (FieldDatumByteOffset));
553 "Read from Data Register\n"));
563 "Write to Data Register: Value %8.8X%8.8X\n",
584 "Value Read %8.8X%8.8X, Width %u\n",
591 "Value Written %8.8X%8.8X, Width %u\n",
621 UINT32 FieldDatumByteOffset)
633 MergedValue = FieldValue;
656 ObjDesc, FieldDatumByteOffset, &CurrentValue,
ACPI_READ);
662 MergedValue |= (CurrentValue & ~Mask);
670 MergedValue |= ~Mask;
683 "Unknown UpdateRule value: 0x%X",
691 "Mask %8.8X%8.8X, DatumOffset %X, Width %X, "
692 "Value %8.8X%8.8X, MergedValue %8.8X%8.8X\n",
694 FieldDatumByteOffset,
702 ObjDesc, FieldDatumByteOffset, &MergedValue,
ACPI_WRITE);
749 "Field size %u (bits) is too large for buffer (%u)",
760 if ((ObjDesc->
CommonField.StartFieldBitOffset == 0) &&
761 (ObjDesc->
CommonField.BitLength == AccessBitWidth))
785 AccessBitWidth =
sizeof (
UINT64) * 8;
795 ObjDesc->
CommonField.StartFieldBitOffset, AccessBitWidth);
804 MergedDatum = RawDatum >> ObjDesc->
CommonField.StartFieldBitOffset;
808 for (
i = 1;
i < FieldDatumCount;
i++)
812 FieldOffset += ObjDesc->
CommonField.AccessByteWidth;
814 ObjDesc, FieldOffset, &RawDatum,
ACPI_READ);
828 if (AccessBitWidth - ObjDesc->
CommonField.StartFieldBitOffset <
831 MergedDatum |= RawDatum <<
832 (AccessBitWidth - ObjDesc->
CommonField.StartFieldBitOffset);
846 BufferOffset += ObjDesc->
CommonField.AccessByteWidth;
847 MergedDatum = RawDatum >> ObjDesc->
CommonField.StartFieldBitOffset;
852 BufferTailBits = ObjDesc->
CommonField.BitLength % AccessBitWidth;
970 MergedDatum = RawDatum << ObjDesc->
CommonField.StartFieldBitOffset;
974 for (
i = 1;
i < FieldDatumCount;
i++)
980 ObjDesc,
Mask, MergedDatum, FieldOffset);
986 FieldOffset += ObjDesc->
CommonField.AccessByteWidth;
997 if ((AccessBitWidth - ObjDesc->
CommonField.StartFieldBitOffset) <
1000 MergedDatum = RawDatum >>
1001 (AccessBitWidth - ObjDesc->
CommonField.StartFieldBitOffset);
1010 if (
i == DatumCount)
1017 BufferOffset += ObjDesc->
CommonField.AccessByteWidth;
1022 MergedDatum |= RawDatum << ObjDesc->
CommonField.StartFieldBitOffset;
1027 BufferTailBits = (ObjDesc->
CommonField.BitLength +
1028 ObjDesc->
CommonField.StartFieldBitOffset) % AccessBitWidth;
1036 MergedDatum &=
Mask;
1038 ObjDesc,
Mask, MergedDatum, FieldOffset);
unsigned long long UINT64
#define AE_NOT_IMPLEMENTED
#define AE_BUFFER_OVERFLOW
#define AE_AML_INVALID_SPACE_ID
#define AE_AML_REGISTER_LIMIT
#define AE_AML_OPERAND_VALUE
#define AE_AML_OPERAND_TYPE
#define AE_AML_REGION_LIMIT
#define ACPI_FORMAT_UINT64(i)
#define ACPI_MASK_BITS_ABOVE_64(width)
#define ACPI_MASK_BITS_ABOVE(position)
#define ACPI_ROUND_UP(value, boundary)
#define ACPI_ROUND_UP_TO(value, boundary)
#define ACPI_MASK_BITS_BELOW(position)
#define ACPI_ROUND_BITS_UP_TO_BYTES(a)
#define AOPOBJ_DATA_VALID
#define ACPI_DEBUG_PRINT(pl)
#define ACPI_MODULE_NAME(Name)
#define ACPI_FUNCTION_TRACE_U32(a, b)
#define return_ACPI_STATUS(s)
#define ACPI_FUNCTION_TRACE(a)
#define ACPI_ERROR(plist)
#define ACPI_DEBUG_PRINT_RAW(pl)
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE ACPI_HANDLE ACPI_HANDLE *OutHandle ACPI_HANDLE *OutHandle void *Context void *Context ACPI_EVENT_HANDLER Handler UINT32 UINT32 ACPI_GPE_HANDLER void *Context UINT32 ACPI_NOTIFY_HANDLER void *Context ACPI_ADR_SPACE_TYPE SpaceId
#define ACPI_ADR_SPACE_IPMI
#define ACPI_TYPE_BUFFER_FIELD
#define ACPI_TYPE_LOCAL_BANK_FIELD
#define ACPI_TYPE_LOCAL_REGION_FIELD
#define ACPI_ADR_SPACE_GSBUS
#define ACPI_ADR_SPACE_SMBUS
#define ACPI_ALLOCATE_ZEROED(a)
#define ACPI_TYPE_LOCAL_INDEX_FIELD
#define ACPI_INTEGER_BIT_SIZE
const char * AcpiUtGetRegionName(UINT8 SpaceId)
const char * AcpiUtGetNodeName(void *Object)
const char * AcpiUtGetObjectTypeName(ACPI_OPERAND_OBJECT *ObjDesc)
#define AML_FIELD_UPDATE_RULE_MASK
@ AML_FIELD_UPDATE_WRITE_AS_ONES
@ AML_FIELD_UPDATE_WRITE_AS_ZEROS
@ AML_FIELD_UPDATE_PRESERVE
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
ACPI_STATUS AcpiDsGetRegionArguments(ACPI_OPERAND_OBJECT *ObjDesc)
ACPI_STATUS AcpiDsGetBufferFieldArguments(ACPI_OPERAND_OBJECT *ObjDesc)
ACPI_STATUS AcpiEvAddressSpaceDispatch(ACPI_OPERAND_OBJECT *RegionObj, ACPI_OPERAND_OBJECT *FieldObj, UINT32 Function, UINT32 RegionOffset, UINT32 BitWidth, UINT64 *Value)
static ACPI_STATUS AcpiExSetupRegion(ACPI_OPERAND_OBJECT *ObjDesc, UINT32 FieldDatumByteOffset)
static ACPI_STATUS AcpiExFieldDatumIo(ACPI_OPERAND_OBJECT *ObjDesc, UINT32 FieldDatumByteOffset, UINT64 *Value, UINT32 ReadWrite)
ACPI_STATUS AcpiExExtractFromField(ACPI_OPERAND_OBJECT *ObjDesc, void *Buffer, UINT32 BufferLength)
ACPI_STATUS AcpiExAccessRegion(ACPI_OPERAND_OBJECT *ObjDesc, UINT32 FieldDatumByteOffset, UINT64 *Value, UINT32 Function)
ACPI_STATUS AcpiExInsertIntoField(ACPI_OPERAND_OBJECT *ObjDesc, void *Buffer, UINT32 BufferLength)
ACPI_STATUS AcpiExWriteWithUpdateRule(ACPI_OPERAND_OBJECT *ObjDesc, UINT64 Mask, UINT64 FieldValue, UINT32 FieldDatumByteOffset)
static BOOLEAN AcpiExRegisterOverflow(ACPI_OPERAND_OBJECT *ObjDesc, UINT64 Value)
BOOLEAN AcpiIsValidSpaceId(UINT8 SpaceId)
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)
DRIVER_DISPATCH ReadWrite
union acpi_operand_object * BankObj
union acpi_operand_object * BufferObj
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object * RegionObj
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object * IndexObj
union acpi_operand_object * DataObj
ACPI_NAMESPACE_NODE * Node
ACPI_OBJECT_COMMON_HEADER UINT8 SpaceId
ACPI_PHYSICAL_ADDRESS Address
ACPI_OBJECT_BANK_FIELD BankField
ACPI_OBJECT_BUFFER_FIELD BufferField
ACPI_OBJECT_REGION Region
ACPI_OBJECT_INDEX_FIELD IndexField
ACPI_OBJECT_COMMON Common
ACPI_OBJECT_FIELD_COMMON CommonField
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_In_ ULONG _Out_opt_ PULONG RequiredLength
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList