Changeset 20400 in vbox
- Timestamp:
- Jun 8, 2009 1:03:07 PM (16 years ago)
- Location:
- trunk/src/VBox/Devices
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Makefile.kmk
r20295 r20400 273 273 PC/DevPIC.cpp \ 274 274 PC/DevACPI.cpp \ 275 PC/ACPI/VBoxAcpi.cpp \ 275 276 PC/DevRTC.cpp \ 276 277 PC/DevPcBios.cpp \ … … 387 388 endif 388 389 390 ifdef VBOX_WITH_DYNAMIC_DSDT 391 DevicesR3_DEFS += VBOX_WITH_DYNAMIC_DSDT 392 endif 393 389 394 ifdef VBOX_WITH_USB 390 395 DevicesR3_DEFS += VBOX_WITH_USB IN_USB_R3 … … 404 409 DevicesR3_DEFS.l4 += _GNU_SOURCE 405 410 406 # DevACPI.cpp needs vboxaml.hex which we generate from PC/vbox.dsl. (bird: What's vboxaml.aml?)411 # VBoxAcpi.cpp needs vboxaml.hex which we generate from PC/vbox.dsl. (bird: What's vboxaml.aml?) 407 412 DevicesR3_CLEAN += $(PATH_DevicesR3)/vboxaml.hex $(PATH_DevicesR3)/vboxaml.aml 408 PC/ DevACPI.cpp_DEPS = $(PATH_DevicesR3)/vboxaml.hex409 PC/ DevACPI.cpp_INCS = $(PATH_DevicesR3)413 PC/ACPI/VBoxAcpi.cpp_DEPS = $(PATH_DevicesR3)/vboxaml.hex 414 PC/ACPI/VBoxAcpi.cpp_INCS = $(PATH_DevicesR3) 410 415 411 416 $$(PATH_DevicesR3)/vboxaml.hex: $(PATH_SUB_CURRENT)/PC/vbox.dsl | $$(dir $$@) -
trunk/src/VBox/Devices/PC/DevACPI.cpp
r20374 r20400 41 41 #endif 42 42 43 /* the compiled DSL */44 43 #if defined(IN_RING3) && !defined(VBOX_DEVICE_STRUCT_TESTCASE) 45 # include <vboxaml.hex> 44 int acpiPrepareDsdt(PPDMDEVINS pDevIns, void* *ppPtr, size_t *puDsdtLen); 45 int acpiCleanupDsdt(PPDMDEVINS pDevIns, void* pPtr); 46 46 #endif /* !IN_RING3 */ 47 47 … … 611 611 612 612 /** Differentiated System Description Table (DSDT) */ 613 static void acpiSetupDSDT(ACPIState *s, RTGCPHYS32 addr) 614 { 615 acpiPhyscpy(s, addr, AmlCode, sizeof(AmlCode)); 613 614 static void acpiSetupDSDT(ACPIState *s, RTGCPHYS32 addr, 615 void* pPtr, size_t uDsdtLen) 616 { 617 acpiPhyscpy(s, addr, pPtr, uDsdtLen); 616 618 } 617 619 … … 1747 1749 } 1748 1750 1749 last_addr = RT_ALIGN_32(dsdt_addr + sizeof(AmlCode), 16); 1751 void* pDsdtCode = NULL; 1752 size_t uDsdtSize = 0; 1753 rc = acpiPrepareDsdt(s->pDevIns, &pDsdtCode, &uDsdtSize); 1754 if (RT_FAILURE(rc)) 1755 return rc; 1756 1757 last_addr = RT_ALIGN_32(dsdt_addr + uDsdtSize, 16); 1750 1758 if (last_addr > 0x10000) 1751 1759 return PDMDEV_SET_ERROR(s->pDevIns, VERR_TOO_MUCH_DATA, … … 1758 1766 Log(("DSDT 0x%08X\n", dsdt_addr + addend)); 1759 1767 acpiSetupRSDP((ACPITBLRSDP*)s->au8RSDPPage, rsdt_addr + addend, xsdt_addr + addend); 1760 acpiSetupDSDT(s, dsdt_addr + addend); 1768 acpiSetupDSDT(s, dsdt_addr + addend, pDsdtCode, uDsdtSize); 1769 acpiCleanupDsdt(s->pDevIns, pDsdtCode); 1761 1770 acpiSetupFACS(s, facs_addr + addend); 1762 1771 acpiSetupFADT(s, fadt_addr + addend, facs_addr + addend, dsdt_addr + addend);
Note:
See TracChangeset
for help on using the changeset viewer.