VirtualBox

Ignore:
Timestamp:
Feb 4, 2025 1:35:41 PM (3 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167339
Message:

Runtime/RTAcpi*: Updates to the ACPI ASL -> AML compiler, bugref:10733

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/acpi/acpi.cpp

    r108029 r108059  
    11721172
    11731173
     1174RTDECL(int) RTAcpiTblExternalAppend(RTACPITBL hAcpiTbl, const char *pszName, RTACPIOBJTYPE enmObjType, uint8_t cArgs)
     1175{
     1176    PRTACPITBLINT pThis = hAcpiTbl;
     1177    AssertPtrReturn(pThis, VERR_INVALID_HANDLE);
     1178    AssertReturn(cArgs <= 7, VERR_INVALID_PARAMETER);
     1179
     1180    uint8_t bObjType;
     1181    switch (enmObjType)
     1182    {
     1183        case kAcpiObjType_Unknown:     bObjType = ACPI_AML_OBJECT_TYPE_UNINIT; break;
     1184        case kAcpiObjType_Int:         bObjType = ACPI_AML_OBJECT_TYPE_INTEGER; break;
     1185        case kAcpiObjType_Str:         bObjType = ACPI_AML_OBJECT_TYPE_STRING; break;
     1186        case kAcpiObjType_Buff:        bObjType = ACPI_AML_OBJECT_TYPE_BUFFER; break;
     1187        case kAcpiObjType_Pkg:         bObjType = ACPI_AML_OBJECT_TYPE_PACKAGE; break;
     1188        case kAcpiObjType_FieldUnit:   bObjType = ACPI_AML_OBJECT_TYPE_FIELD_UNIT; break;
     1189        case kAcpiObjType_Device:      bObjType = ACPI_AML_OBJECT_TYPE_DEVICE; break;
     1190        case kAcpiObjType_Event:       bObjType = ACPI_AML_OBJECT_TYPE_EVENT; break;
     1191        case kAcpiObjType_Method:      bObjType = ACPI_AML_OBJECT_TYPE_METHOD; break;
     1192        case kAcpiObjType_MutexObj:    bObjType = ACPI_AML_OBJECT_TYPE_MUTEX; break;
     1193        case kAcpiObjType_OpRegion:    bObjType = ACPI_AML_OBJECT_TYPE_OPERATION_REGION; break;
     1194        case kAcpiObjType_PowerRes:    bObjType = ACPI_AML_OBJECT_TYPE_POWER_RESOURCE; break;
     1195        case kAcpiObjType_ThermalZone: bObjType = ACPI_AML_OBJECT_TYPE_THERMAL_ZONE; break;
     1196        case kAcpiObjType_BuffField:   bObjType = ACPI_AML_OBJECT_TYPE_BUFFER_FIELD; break;
     1197        default:
     1198            pThis->rcErr = VERR_INVALID_PARAMETER;
     1199            AssertFailedReturn(pThis->rcErr);
     1200    }
     1201
     1202    rtAcpiTblAppendByte(pThis, ACPI_AML_BYTE_CODE_OP_EXTERNAL);
     1203    rtAcpiTblAppendNameString(pThis, pszName);
     1204    rtAcpiTblAppendByte(pThis, bObjType);
     1205    rtAcpiTblAppendByte(pThis, cArgs);
     1206    return pThis->rcErr;
     1207}
     1208
     1209
    11741210RTDECL(int) RTAcpiTblCreateFromVfsIoStrm(PRTACPITBL phAcpiTbl, RTVFSIOSTREAM hVfsIos, RTACPITBLTYPE enmInType, PRTERRINFO pErrInfo)
    11751211{
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette