From 8b152439beb81c8da1bdb00c7870e2d9e8d49612 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 03:47:04 +0200 Subject: Merging upstream version 7.0.18-dfsg. Signed-off-by: Daniel Baumann --- .../Firmware/BaseTools/Scripts/GetUtcDateTime.py | 0 .../plugins/EdkPlugins/basemodel/doxygen.py | 0 .../Source/Python/Common/BuildToolError.py | 0 .../Source/Python/CommonDataClass/Exceptions.py | 0 .../Source/Python/UPT/Logger/ToolError.py | 0 .../Python/UPT/UnitTest/InfBinarySectionTest.py | 0 .../Source/Python/tests/Split/test_split.py | 0 .../EFI/Firmware/BaseTools/Tests/CToolsTests.py | 0 .../Firmware/BaseTools/Tests/CheckPythonSyntax.py | 0 .../EFI/Firmware/BaseTools/Tests/PythonTest.py | 0 .../Firmware/BaseTools/Tests/PythonToolsTests.py | 0 .../CryptoPkg/Library/OpensslLib/process_files.pl | 0 .../Firmware/IntelFsp2Pkg/Tools/Tests/test_yaml.py | 0 src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd | Bin 4194304 -> 4194304 bytes src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd | Bin 4194304 -> 4194304 bytes .../Graphics/BIOS/VBoxVgaBiosAlternative286.asm | 6 +- .../Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum | 2 +- .../Graphics/BIOS/VBoxVgaBiosAlternative386.asm | 6 +- .../Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum | 2 +- .../Graphics/BIOS/VBoxVgaBiosAlternative8086.asm | 6 +- .../BIOS/VBoxVgaBiosAlternative8086.md5sum | 2 +- src/VBox/Devices/Network/DevVirtioNet.cpp | 10 +- src/VBox/Devices/Network/SrvIntNetR0.cpp | 2 +- .../Devices/PC/BIOS/VBoxBiosAlternative286.asm | 4 +- .../Devices/PC/BIOS/VBoxBiosAlternative286.md5sum | 2 +- .../Devices/PC/BIOS/VBoxBiosAlternative386.asm | 4 +- .../Devices/PC/BIOS/VBoxBiosAlternative386.md5sum | 2 +- .../Devices/PC/BIOS/VBoxBiosAlternative8086.asm | 4 +- .../Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum | 2 +- src/VBox/Devices/VirtIO/VirtioCore.cpp | 182 +++++++++++++++++++-- src/VBox/Devices/VirtIO/VirtioCore.h | 3 + 31 files changed, 204 insertions(+), 35 deletions(-) mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/GetUtcDateTime.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/basemodel/doxygen.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/BuildToolError.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/Exceptions.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Logger/ToolError.py mode change 100644 => 100755 src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/InfBinarySectionTest.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/tests/Split/test_split.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Tests/CToolsTests.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Tests/CheckPythonSyntax.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Tests/PythonTest.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/BaseTools/Tests/PythonToolsTests.py mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/CryptoPkg/Library/OpensslLib/process_files.pl mode change 100755 => 100644 src/VBox/Devices/EFI/Firmware/IntelFsp2Pkg/Tools/Tests/test_yaml.py (limited to 'src/VBox/Devices') diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/GetUtcDateTime.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/GetUtcDateTime.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/basemodel/doxygen.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/basemodel/doxygen.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/BuildToolError.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/BuildToolError.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/Exceptions.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/CommonDataClass/Exceptions.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Logger/ToolError.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/Logger/ToolError.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/InfBinarySectionTest.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/UPT/UnitTest/InfBinarySectionTest.py old mode 100644 new mode 100755 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/tests/Split/test_split.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/tests/Split/test_split.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Tests/CToolsTests.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Tests/CToolsTests.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Tests/CheckPythonSyntax.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Tests/CheckPythonSyntax.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Tests/PythonTest.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Tests/PythonTest.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Tests/PythonToolsTests.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Tests/PythonToolsTests.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/CryptoPkg/Library/OpensslLib/process_files.pl b/src/VBox/Devices/EFI/Firmware/CryptoPkg/Library/OpensslLib/process_files.pl old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/Firmware/IntelFsp2Pkg/Tools/Tests/test_yaml.py b/src/VBox/Devices/EFI/Firmware/IntelFsp2Pkg/Tools/Tests/test_yaml.py old mode 100755 new mode 100644 diff --git a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd index 2c689d9b..16789a3b 100644 Binary files a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd and b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI32.fd differ diff --git a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd index e586a195..a11bbd1b 100644 Binary files a/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd and b/src/VBox/Devices/EFI/FirmwareBin/VBoxEFI64.fd differ diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm index 0b83b579..0c156fb2 100644 --- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm +++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.asm @@ -8281,7 +8281,7 @@ vesa_pm_end: ; 0xc4754 LB 0x1 section _DATA progbits vstart=0x4780 align=1 ; size=0x374d class=DATA group=DGROUP ; disGetNextSymbol 0xc4780 LB 0x374d -> off=0x0 cb=000000000000002f uValue=00000000000c0000 '_msg_vga_init' _msg_vga_init: ; 0xc4780 LB 0x2f - db 'Oracle VM VirtualBox Version 7.0.16 VGA BIOS', 00dh, 00ah, 000h + db 'Oracle VM VirtualBox Version 7.0.18 VGA BIOS', 00dh, 00ah, 000h ; disGetNextSymbol 0xc47af LB 0x371e -> off=0x0 cb=0000000000000080 uValue=00000000000c002f 'vga_modes' vga_modes: ; 0xc47af LB 0x80 db 000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h @@ -9212,7 +9212,7 @@ _vbebios_product_name: ; 0xc7e34 LB 0x21 db 'Oracle VM VirtualBox VBE Adapter', 000h ; disGetNextSymbol 0xc7e55 LB 0x78 -> off=0x0 cb=0000000000000024 uValue=00000000000c36d5 '_vbebios_product_revision' _vbebios_product_revision: ; 0xc7e55 LB 0x24 - db 'Oracle VM VirtualBox Version 7.0.16', 000h + db 'Oracle VM VirtualBox Version 7.0.18', 000h ; disGetNextSymbol 0xc7e79 LB 0x54 -> off=0x0 cb=000000000000002b uValue=00000000000c36f9 '_vbebios_info_string' _vbebios_info_string: ; 0xc7e79 LB 0x2b db 'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h @@ -9247,4 +9247,4 @@ section CONST2 progbits vstart=0x7ece align=1 ; size=0x0 class=DATA group=DGROUP db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h - db 000h, 0deh + db 000h, 0dah diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum index 9d6aad04..5b04df55 100644 --- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum +++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative286.md5sum @@ -1 +1 @@ -852353ec31d0749de1c385e91ab27511 *VBoxVgaBios286.rom +a9f7b007aff3ce32ea3f5295bc1144ed *VBoxVgaBios286.rom diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm index 12ea3360..b480612b 100644 --- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm +++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.asm @@ -7735,7 +7735,7 @@ vesa_pm_end: ; 0xc4754 LB 0x1 section _DATA progbits vstart=0x4780 align=1 ; size=0x374d class=DATA group=DGROUP ; disGetNextSymbol 0xc4780 LB 0x374d -> off=0x0 cb=000000000000002f uValue=00000000000c0000 '_msg_vga_init' _msg_vga_init: ; 0xc4780 LB 0x2f - db 'Oracle VM VirtualBox Version 7.0.16 VGA BIOS', 00dh, 00ah, 000h + db 'Oracle VM VirtualBox Version 7.0.18 VGA BIOS', 00dh, 00ah, 000h ; disGetNextSymbol 0xc47af LB 0x371e -> off=0x0 cb=0000000000000080 uValue=00000000000c002f 'vga_modes' vga_modes: ; 0xc47af LB 0x80 db 000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h @@ -8666,7 +8666,7 @@ _vbebios_product_name: ; 0xc7e34 LB 0x21 db 'Oracle VM VirtualBox VBE Adapter', 000h ; disGetNextSymbol 0xc7e55 LB 0x78 -> off=0x0 cb=0000000000000024 uValue=00000000000c36d5 '_vbebios_product_revision' _vbebios_product_revision: ; 0xc7e55 LB 0x24 - db 'Oracle VM VirtualBox Version 7.0.16', 000h + db 'Oracle VM VirtualBox Version 7.0.18', 000h ; disGetNextSymbol 0xc7e79 LB 0x54 -> off=0x0 cb=000000000000002b uValue=00000000000c36f9 '_vbebios_info_string' _vbebios_info_string: ; 0xc7e79 LB 0x2b db 'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h @@ -8701,4 +8701,4 @@ section CONST2 progbits vstart=0x7ece align=1 ; size=0x0 class=DATA group=DGROUP db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h - db 000h, 053h + db 000h, 04fh diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum index 5bbcac9e..62bbb895 100644 --- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum +++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative386.md5sum @@ -1 +1 @@ -5fd5574a01aad6139078230edb9b0545 *VBoxVgaBios386.rom +73c6f655de7140699ff561c5b01f3625 *VBoxVgaBios386.rom diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm index 695ce11f..fbfc435c 100644 --- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm +++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.asm @@ -8439,7 +8439,7 @@ vesa_pm_end: ; 0xc4754 LB 0x1 section _DATA progbits vstart=0x4780 align=1 ; size=0x374d class=DATA group=DGROUP ; disGetNextSymbol 0xc4780 LB 0x374d -> off=0x0 cb=000000000000002f uValue=00000000000c0000 '_msg_vga_init' _msg_vga_init: ; 0xc4780 LB 0x2f - db 'Oracle VM VirtualBox Version 7.0.16 VGA BIOS', 00dh, 00ah, 000h + db 'Oracle VM VirtualBox Version 7.0.18 VGA BIOS', 00dh, 00ah, 000h ; disGetNextSymbol 0xc47af LB 0x371e -> off=0x0 cb=0000000000000080 uValue=00000000000c002f 'vga_modes' vga_modes: ; 0xc47af LB 0x80 db 000h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h, 001h, 000h, 000h, 004h, 000h, 0b8h, 0ffh, 002h @@ -9370,7 +9370,7 @@ _vbebios_product_name: ; 0xc7e34 LB 0x21 db 'Oracle VM VirtualBox VBE Adapter', 000h ; disGetNextSymbol 0xc7e55 LB 0x78 -> off=0x0 cb=0000000000000024 uValue=00000000000c36d5 '_vbebios_product_revision' _vbebios_product_revision: ; 0xc7e55 LB 0x24 - db 'Oracle VM VirtualBox Version 7.0.16', 000h + db 'Oracle VM VirtualBox Version 7.0.18', 000h ; disGetNextSymbol 0xc7e79 LB 0x54 -> off=0x0 cb=000000000000002b uValue=00000000000c36f9 '_vbebios_info_string' _vbebios_info_string: ; 0xc7e79 LB 0x2b db 'VirtualBox VBE Display Adapter enabled', 00dh, 00ah, 00dh, 00ah, 000h @@ -9405,4 +9405,4 @@ section CONST2 progbits vstart=0x7ece align=1 ; size=0x0 class=DATA group=DGROUP db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h - db 000h, 01dh + db 000h, 019h diff --git a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum index d19f9c05..1940a52f 100644 --- a/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum +++ b/src/VBox/Devices/Graphics/BIOS/VBoxVgaBiosAlternative8086.md5sum @@ -1 +1 @@ -4d5fd4aad75f5b2295caecb11ca646b2 *VBoxVgaBios8086.rom +0f0564e36ea2319f2e46b42b53b39e81 *VBoxVgaBios8086.rom diff --git a/src/VBox/Devices/Network/DevVirtioNet.cpp b/src/VBox/Devices/Network/DevVirtioNet.cpp index 66d2cbf1..336b3000 100644 --- a/src/VBox/Devices/Network/DevVirtioNet.cpp +++ b/src/VBox/Devices/Network/DevVirtioNet.cpp @@ -791,7 +791,11 @@ void virtioNetDumpGcPhysRxBuf(PPDMDEVINS pDevIns, PVIRTIONETPKTHDR pRxPktHdr, /** * @callback_method_impl{FNDBGFHANDLERDEV, virtio-net debugger info callback.} */ +#ifdef VIRTIO_REL_INFO_DUMP +DECLCALLBACK(void) virtioNetR3Info(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs) +#else /* !VIRTIO_REL_INFO_DUMP */ static DECLCALLBACK(void) virtioNetR3Info(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs) +#endif /* !VIRTIO_REL_INFO_DUMP */ { PVIRTIONET pThis = PDMDEVINS_2_DATA(pDevIns, PVIRTIONET); PVIRTIONETCC pThisCC = PDMDEVINS_2_DATA_CC(pDevIns, PVIRTIONETCC); @@ -904,7 +908,7 @@ static DECLCALLBACK(void) virtioNetR3Info(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp pHlp->pfnPrintf(pHlp, " cVirtqPairs .,............. %d\n", pThis->cVirtqPairs); pHlp->pfnPrintf(pHlp, " cVirtqs .,................. %d\n", pThis->cVirtqs); pHlp->pfnPrintf(pHlp, " cWorkers .................. %d\n", pThis->cWorkers); - pHlp->pfnPrintf(pHlp, " MMIO mapping name ......... %d\n", pThisCC->Virtio.szMmioName); + pHlp->pfnPrintf(pHlp, " MMIO mapping name ......... %s\n", pThisCC->Virtio.szMmioName); pHlp->pfnPrintf(pHlp, "\n"); } @@ -923,7 +927,7 @@ static DECLCALLBACK(void) virtioNetR3Info(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp pHlp->pfnPrintf(pHlp, " Suppress multicast: ....... %s\n", pThis->fNoMulticast ? "true" : "false"); pHlp->pfnPrintf(pHlp, " Promiscuous: .............. %s\n", pThis->fPromiscuous ? "true" : "false"); pHlp->pfnPrintf(pHlp, "\n"); - pHlp->pfnPrintf(pHlp, " Default Rx MAC filter: .... %RTmac\n", pThis->rxFilterMacDefault); + pHlp->pfnPrintf(pHlp, " Default Rx MAC filter: .... %RTmac\n", &pThis->rxFilterMacDefault); pHlp->pfnPrintf(pHlp, "\n"); pHlp->pfnPrintf(pHlp, " Unicast filter MACs:\n"); @@ -3675,7 +3679,7 @@ static DECLCALLBACK(int) virtioNetR3Construct(PPDMDEVINS pDevIns, int iInstance, * Register the debugger info callback (ignore errors). */ char szTmp[128]; - rc = PDMDevHlpDBGFInfoRegister(pDevIns, "virtio-net", "Display virtio-net info (help, net, features, state, pointers, queues, all)", virtioNetR3Info); + rc = PDMDevHlpDBGFInfoRegister(pDevIns, "virtionet", "Display virtionet info (help, net, features, state, pointers, queues, all)", virtioNetR3Info); if (RT_FAILURE(rc)) LogRel(("Failed to register DBGF info for device %s\n", szTmp)); return rc; diff --git a/src/VBox/Devices/Network/SrvIntNetR0.cpp b/src/VBox/Devices/Network/SrvIntNetR0.cpp index 728cd25a..9e9d1757 100644 --- a/src/VBox/Devices/Network/SrvIntNetR0.cpp +++ b/src/VBox/Devices/Network/SrvIntNetR0.cpp @@ -2935,7 +2935,7 @@ static int intnetR0TrunkIfSendGsoFallback(PINTNETTRUNKIF pThis, PINTNETIF pIfSen union { - uint8_t abBuf[sizeof(INTNETSG) + sizeof(INTNETSEG)]; + uint8_t abBuf[sizeof(INTNETSG) + 2 * sizeof(INTNETSEG)]; INTNETSG SG; } u; diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm index 5b6da227..96b8e631 100644 --- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm +++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm @@ -1621,7 +1621,7 @@ section CONST progbits vstart=0xf0 align=1 ; size=0xcda class=DATA group=DGROUP section CONST2 progbits vstart=0xdca align=1 ; size=0x3fa class=DATA group=DGROUP ; disGetNextSymbol 0xf0dca LB 0x3fa -> off=0x0 cb=0000000000000012 uValue=00000000000f0dca 'bios_cvs_version_string' bios_cvs_version_string: ; 0xf0dca LB 0x12 - db 'VirtualBox 7.0.16', 000h + db 'VirtualBox 7.0.18', 000h ; disGetNextSymbol 0xf0ddc LB 0x3e8 -> off=0x0 cb=0000000000000008 uValue=00000000000f0ddc '_bios_prefix_string' _bios_prefix_string: ; 0xf0ddc LB 0x8 db 'BIOS: ', 000h, 000h @@ -19429,4 +19429,4 @@ biosorg_check_before_or_at_0FFEEh: ; 0xfff80 LB 0x70 cpu_reset: ; 0xffff0 LB 0x10 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 ; 0xffff0 orgs.asm:2114 ; disGetNextSymbol 0xffff5 LB 0xb -> off=0xb cb=0000000000000000 uValue=0000000000100000 '_dummy_addr_0x100000' - db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0d6h + db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0d4h diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum index 556bdbe3..8fb531ac 100644 --- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum +++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum @@ -1 +1 @@ -574c2c72048d5a5c9c079fbf47683b0f *VBoxPcBios286.rom +ad4d1a253850bc31cfa497722faafa3a *VBoxPcBios286.rom diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm index a3231d00..85af1d40 100644 --- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm +++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm @@ -1566,7 +1566,7 @@ section CONST progbits vstart=0xf0 align=1 ; size=0xd14 class=DATA group=DGROUP section CONST2 progbits vstart=0xe04 align=1 ; size=0x3fa class=DATA group=DGROUP ; disGetNextSymbol 0xf0e04 LB 0x3fa -> off=0x0 cb=0000000000000012 uValue=00000000000f0e04 'bios_cvs_version_string' bios_cvs_version_string: ; 0xf0e04 LB 0x12 - db 'VirtualBox 7.0.16', 000h + db 'VirtualBox 7.0.18', 000h ; disGetNextSymbol 0xf0e16 LB 0x3e8 -> off=0x0 cb=0000000000000008 uValue=00000000000f0e16 '_bios_prefix_string' _bios_prefix_string: ; 0xf0e16 LB 0x8 db 'BIOS: ', 000h, 000h @@ -19195,4 +19195,4 @@ biosorg_check_before_or_at_0FFEEh: ; 0xfff80 LB 0x70 cpu_reset: ; 0xffff0 LB 0x10 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 ; 0xffff0 orgs.asm:2114 ; disGetNextSymbol 0xffff5 LB 0xb -> off=0xb cb=0000000000000000 uValue=0000000000100000 '_dummy_addr_0x100000' - db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 034h + db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 032h diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum index 80cc8e0a..9cb9bea8 100644 --- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum +++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum @@ -1 +1 @@ -951bc82dd1a8482863248e9157928f1b *VBoxPcBios386.rom +79eeb980dd6104d8bc534c8c7c4e877a *VBoxPcBios386.rom diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm index 92665f77..80829ed2 100644 --- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm +++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm @@ -1621,7 +1621,7 @@ section CONST progbits vstart=0xf0 align=1 ; size=0xcda class=DATA group=DGROUP section CONST2 progbits vstart=0xdca align=1 ; size=0x3fa class=DATA group=DGROUP ; disGetNextSymbol 0xf0dca LB 0x3fa -> off=0x0 cb=0000000000000012 uValue=00000000000f0dca 'bios_cvs_version_string' bios_cvs_version_string: ; 0xf0dca LB 0x12 - db 'VirtualBox 7.0.16', 000h + db 'VirtualBox 7.0.18', 000h ; disGetNextSymbol 0xf0ddc LB 0x3e8 -> off=0x0 cb=0000000000000008 uValue=00000000000f0ddc '_bios_prefix_string' _bios_prefix_string: ; 0xf0ddc LB 0x8 db 'BIOS: ', 000h, 000h @@ -19906,4 +19906,4 @@ biosorg_check_before_or_at_0FFEEh: ; 0xfff80 LB 0x70 cpu_reset: ; 0xffff0 LB 0x10 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 ; 0xffff0 orgs.asm:2114 ; disGetNextSymbol 0xffff5 LB 0xb -> off=0xb cb=0000000000000000 uValue=0000000000100000 '_dummy_addr_0x100000' - db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0bbh + db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0b9h diff --git a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum index 95f06271..fc4dd6b7 100644 --- a/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum +++ b/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum @@ -1 +1 @@ -0704d20fb86b2ca3eba57b2ca2f9e135 *VBoxPcBios8086.rom +bd634fab26a7c7e944a845a9415c8623 *VBoxPcBios8086.rom diff --git a/src/VBox/Devices/VirtIO/VirtioCore.cpp b/src/VBox/Devices/VirtIO/VirtioCore.cpp index 23ecf30c..f0ed6e42 100644 --- a/src/VBox/Devices/VirtIO/VirtioCore.cpp +++ b/src/VBox/Devices/VirtIO/VirtioCore.cpp @@ -618,6 +618,42 @@ bool virtioCoreR3VirtqIsEnabled(PVIRTIOCORE pVirtio, uint16_t uVirtqNbr) return (bool)pVirtq->uEnable && pVirtq->GCPhysVirtqDesc; } +DECLINLINE(void) virtioCoreR3DescInfo(PCDBGFINFOHLP pHlp, PVIRTQ_DESC_T pDesc, uint16_t iDesc, const char *cszTail) +{ + if (pDesc->fFlags & VIRTQ_DESC_F_NEXT) + pHlp->pfnPrintf(pHlp, " [%4d]%c%c %5d bytes @ %p [%4d] %s\n", + iDesc, pDesc->fFlags & VIRTQ_DESC_F_INDIRECT ? 'I' : ' ', + pDesc->fFlags & VIRTQ_DESC_F_WRITE ? 'W' : 'R', + pDesc->cb, pDesc->GCPhysBuf, pDesc->uDescIdxNext, cszTail); + else + pHlp->pfnPrintf(pHlp, " [%4d]%c%c %5d bytes @ %p %s\n", + iDesc, pDesc->fFlags & VIRTQ_DESC_F_INDIRECT ? 'I' : ' ', + pDesc->fFlags & VIRTQ_DESC_F_WRITE ? 'W' : 'R', + pDesc->cb, pDesc->GCPhysBuf, cszTail); +} + +#ifdef VIRTIO_REL_INFO_DUMP +DECLHIDDEN(void) virtioCoreR3DumpAvailRing(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, PVIRTIOCORE pVirtio, PVIRTQUEUE pVirtq) +{ + uint16_t auTmp[VIRTQ_SIZE]; + virtioCoreGCPhysRead(pVirtio, pDevIns, + pVirtq->GCPhysVirtqAvail + RT_UOFFSETOF_DYN(VIRTQ_AVAIL_T, auRing[0]), + auTmp, pVirtq->uQueueSize * sizeof(uint16_t)); + pHlp->pfnPrintf(pHlp, " avail ring dump:\n%.*RhXd\n", pVirtq->uQueueSize * sizeof(uint16_t), auTmp, + pVirtq->GCPhysVirtqAvail + RT_UOFFSETOF_DYN(VIRTQ_AVAIL_T, auRing[0])); +} + +DECLHIDDEN(void) virtioCoreR3DumpUsedRing(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, PVIRTIOCORE pVirtio, PVIRTQUEUE pVirtq) +{ + VIRTQ_USED_ELEM_T aTmp[VIRTQ_SIZE]; + virtioCoreGCPhysRead(pVirtio, pDevIns, + pVirtq->GCPhysVirtqUsed + RT_UOFFSETOF_DYN(VIRTQ_USED_T, aRing[0]), + aTmp, pVirtq->uQueueSize * sizeof(VIRTQ_USED_ELEM_T)); + pHlp->pfnPrintf(pHlp, " used ring dump:\n%.*RhXd\n", pVirtq->uQueueSize * sizeof(VIRTQ_USED_ELEM_T), aTmp, + pVirtq->GCPhysVirtqUsed + RT_UOFFSETOF_DYN(VIRTQ_USED_T, aRing[0])); +} +#endif /* VIRTIO_REL_INFO_DUMP */ + /** API Fuunction: See header file */ void virtioCoreR3VirtqInfo(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs, int uVirtq) { @@ -634,9 +670,23 @@ void virtioCoreR3VirtqInfo(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *p uint16_t uUsedIdx = virtioReadUsedRingIdx(pDevIns, pVirtio, pVirtq); uint16_t uUsedIdxShadow = pVirtq->uUsedIdxShadow; + uint16_t uAvailEventIdx = 0; + uint16_t uUsedEventIdx = 0; + bool fNotify = !!(pVirtio->uDriverFeatures & VIRTIO_F_EVENT_IDX); + if (fNotify) + { + uUsedEventIdx = virtioReadAvailUsedEvent(pDevIns, pVirtio, pVirtq); + /* There is no helper for reading AvailEvent since the device is not supposed to read it. */ + virtioCoreGCPhysRead(pVirtio, pDevIns, + pVirtq->GCPhysVirtqUsed + + RT_UOFFSETOF_DYN(VIRTQ_USED_T, aRing[pVirtq->uQueueSize]), + &uAvailEventIdx, sizeof(uAvailEventIdx)); + } + #ifdef VIRTIO_VBUF_ON_STACK VIRTQBUF_T VirtqBuf; PVIRTQBUF pVirtqBuf = &VirtqBuf; + RT_ZERO(VirtqBuf); /* Make sure pSgPhysSend and pSgPhysReturn are initialized. */ #else /* !VIRTIO_VBUF_ON_STACK */ PVIRTQBUF pVirtqBuf = NULL; #endif /* !VIRTIO_VBUF_ON_STACK */ @@ -667,19 +717,19 @@ void virtioCoreR3VirtqInfo(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *p pHlp->pfnPrintf(pHlp, " MSIX vector: ....... %4.4x\n", pVirtq->uMsixVector); pHlp->pfnPrintf(pHlp, "\n"); pHlp->pfnPrintf(pHlp, " avail ring (%d entries):\n", uAvailIdx - uAvailIdxShadow); - pHlp->pfnPrintf(pHlp, " index: ................ %d\n", uAvailIdx); - pHlp->pfnPrintf(pHlp, " shadow: ............... %d\n", uAvailIdxShadow); + pHlp->pfnPrintf(pHlp, " index: ................ %d (%d)\n", pVirtq->uQueueSize ? uAvailIdx % pVirtq->uQueueSize : uAvailIdx, uAvailIdx); + pHlp->pfnPrintf(pHlp, " shadow: ............... %d (%d)\n", pVirtq->uQueueSize ? uAvailIdxShadow % pVirtq->uQueueSize : uAvailIdxShadow, uAvailIdxShadow); pHlp->pfnPrintf(pHlp, " flags: ................ %s\n", fAvailNoInterrupt ? "NO_INTERRUPT" : ""); pHlp->pfnPrintf(pHlp, "\n"); - pHlp->pfnPrintf(pHlp, " used ring (%d entries):\n", uUsedIdx - uUsedIdxShadow); - pHlp->pfnPrintf(pHlp, " index: ................ %d\n", uUsedIdx); - pHlp->pfnPrintf(pHlp, " shadow: ............... %d\n", uUsedIdxShadow); + pHlp->pfnPrintf(pHlp, " used ring (%d entries):\n", uUsedIdxShadow - uUsedIdx); + pHlp->pfnPrintf(pHlp, " index: ................ %d (%d)\n", pVirtq->uQueueSize ? uUsedIdx % pVirtq->uQueueSize : uUsedIdx, uUsedIdx); + pHlp->pfnPrintf(pHlp, " shadow: ............... %d (%d)\n", pVirtq->uQueueSize ? uUsedIdxShadow % pVirtq->uQueueSize : uUsedIdxShadow, uUsedIdxShadow); pHlp->pfnPrintf(pHlp, " flags: ................ %s\n", fUsedNoNotify ? "NO_NOTIFY" : ""); pHlp->pfnPrintf(pHlp, "\n"); if (!fEmpty) { pHlp->pfnPrintf(pHlp, " desc chain:\n"); - pHlp->pfnPrintf(pHlp, " head idx: ............. %d\n", uUsedIdx); + pHlp->pfnPrintf(pHlp, " head idx: ............. %d (%d)\n", pVirtq->uQueueSize ? uUsedIdx % pVirtq->uQueueSize : uUsedIdx, uUsedIdx); pHlp->pfnPrintf(pHlp, " segs: ................. %d\n", cSendSegs + cReturnSegs); pHlp->pfnPrintf(pHlp, " refCnt ................ %d\n", pVirtqBuf->cRefs); pHlp->pfnPrintf(pHlp, "\n"); @@ -691,7 +741,7 @@ void virtioCoreR3VirtqInfo(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *p pHlp->pfnPrintf(pHlp, " unsent ............. %d\n", pVirtqBuf->pSgPhysSend->cbSegLeft); } pHlp->pfnPrintf(pHlp, "\n"); - pHlp->pfnPrintf(pHlp, " guest-to-host (%d bytes)\n", pVirtqBuf->cbPhysReturn); + pHlp->pfnPrintf(pHlp, " guest-to-host (%d bytes):\n", pVirtqBuf->cbPhysReturn); pHlp->pfnPrintf(pHlp, " segs: .............. %d\n", cReturnSegs); if (cReturnSegs) { @@ -699,8 +749,77 @@ void virtioCoreR3VirtqInfo(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *p pHlp->pfnPrintf(pHlp, " unsent ............. %d\n", pVirtqBuf->pSgPhysReturn->cbSegLeft); } } else - pHlp->pfnPrintf(pHlp, " No desc chains available\n"); + pHlp->pfnPrintf(pHlp, " no desc chains available\n"); + pHlp->pfnPrintf(pHlp, "\n"); + + /* Avoid handling zero-sized queues, there is nothing to show anyway. */ + if (pVirtq->uQueueSize == 0) + return; + + pHlp->pfnPrintf(pHlp, " desc table:\n"); + /* + * Each line in the descriptor table output consists of two parts: a fixed part and a variable "tail". + * The fixed part shows the descriptor index, its writability, size, physical address, and optionally + * which descriptor is next the chain. The tail shows which elements of avail/used rings point to + * this descriptor. + */ + VIRTQ_DESC_T descTable[VIRTQ_SIZE]; + char aszTails[VIRTQ_SIZE][32]; + virtioCoreGCPhysRead(pVirtio, pDevIns, pVirtq->GCPhysVirtqDesc, + &descTable, sizeof(VIRTQ_DESC_T) * pVirtq->uQueueSize); + RT_BZERO(aszTails, sizeof(aszTails)); /* No tails by default */ + + /* Fill avail tail fields. */ + + /* The first available descriptor gets outer reverse angle brackets. */ + char chOuterLeft = '>', chOuterRight = '<'; + char chLeft = '[', chRight = ']'; + /* Use 'not-equal' instead of 'less' because of uint16_t wrapping! */ + for (uint16_t i = uAvailIdxShadow; i != uAvailIdx; i++) + { + /* The last descriptor gets inner curly braces, inner square brackets for the rest. */ + if (i + 1 == uAvailIdx) { chLeft = '{'; chRight = '}'; } + uint16_t uDescIdx = virtioReadAvailDescIdx(pDevIns, pVirtio, pVirtq, i); + /* Print an exclamation sign instead of outer right bracket if this descriptor triggers notification. */ + RTStrPrintf(aszTails[uDescIdx], sizeof(aszTails[0]), "%c%c%4d%c%c ", + chOuterLeft, chLeft, i % pVirtq->uQueueSize, chRight, + fNotify ? ((i % pVirtq->uQueueSize) == (uAvailEventIdx % pVirtq->uQueueSize) ? '!' : chOuterRight) : chOuterRight); + chOuterLeft = chOuterRight = ' '; + } + + /* Fill used tail fields, see comments in the similar loop above. */ + + chOuterLeft = '>'; chOuterRight = '<'; + chLeft = '['; chRight = ']'; + for (uint16_t i = uUsedIdx; i != uUsedIdxShadow; i++) + { + VIRTQ_USED_ELEM_T elem; + virtioCoreGCPhysRead(pVirtio, pDevIns, + pVirtq->GCPhysVirtqUsed + + RT_UOFFSETOF_DYN(VIRTQ_USED_T, aRing[i % pVirtq->uQueueSize]), + &elem, sizeof(elem)); + if (i + 1 == uUsedIdxShadow) { chLeft = '{'; chRight = '}'; } + char *szTail = aszTails[elem.uDescIdx % pVirtq->uQueueSize]; + /* Add empty avail field if none is present, 9 spaces + terminating zero. */ + if (*szTail == '\0') + RTStrCopy(szTail, 10, " "); + RTStrPrintf(szTail + 9, sizeof(aszTails[0]) - 9, " %c%c%4d%c%c %d bytes", + chOuterLeft, chLeft, i % pVirtq->uQueueSize, chRight, + fNotify ? ((i % pVirtq->uQueueSize) == (uUsedEventIdx % pVirtq->uQueueSize) ? '!' : chOuterRight) : chOuterRight, + elem.cbElem); + chOuterLeft = chOuterRight = ' '; + } + + pHlp->pfnPrintf(pHlp, " index w/r size phys addr next @avail @used\n"); + pHlp->pfnPrintf(pHlp, " ------ - ----------- ---------------- ------- -------- ------------------\n"); + for (uint16_t i = 0; i < pVirtq->uQueueSize; i++) + virtioCoreR3DescInfo(pHlp, &descTable[i], i, aszTails[i]); +#ifdef VIRTIO_REL_INFO_DUMP pHlp->pfnPrintf(pHlp, "\n"); + virtioCoreR3DumpAvailRing(pDevIns, pHlp, pVirtio, pVirtq); + pHlp->pfnPrintf(pHlp, "\n"); + virtioCoreR3DumpUsedRing(pDevIns, pHlp, pVirtio, pVirtq); +#endif /* VIRTIO_REL_INFO_DUMP */ } #ifdef VIRTIO_VBUF_ON_STACK @@ -819,6 +938,46 @@ int virtioCoreR3VirtqAvailBufNext(PVIRTIOCORE pVirtio, uint16_t uVirtq) return VINF_SUCCESS; } +#ifdef VIRTIO_REL_INFO_DUMP +DECLCALLBACK(void) virtioNetR3Info(PPDMDEVINS pDevIns, PCDBGFINFOHLP pHlp, const char *pszArgs); + +static DECLCALLBACK(void) dbgVirtio_Printf(PCDBGFINFOHLP pHlp, const char *pszFormat, ...) +{ + RT_NOREF(pHlp); + va_list va; + va_start(va, pszFormat); + RTLogRelPrintfV(pszFormat, va); + va_end(va); +} + + +static DECLCALLBACK(void) dbgVirtio_PrintfV(PCDBGFINFOHLP pHlp, const char *pszFormat, va_list args) +{ + RT_NOREF(pHlp); + RTLogRelPrintfV(pszFormat, args); +} + + +/** + * @interface_method_impl{DBGCCMDHLP,pfnGetDbgfOutputHlp} + */ +static void dbgVirtioDump(PPDMDEVINS pDevIns) +{ + PVIRTIOCORE pVirtio = PDMDEVINS_2_DATA(pDevIns, PVIRTIOCORE); + LogRel(("dbgVirtioDump(%s)", pVirtio->szInstance)); + if (RTStrNCmp("virtio-net", pVirtio->szInstance, 10) == 0) + { + DBGFINFOHLP DbgHlp; + + DbgHlp.pfnPrintf = dbgVirtio_Printf; + DbgHlp.pfnPrintfV = dbgVirtio_PrintfV; + DbgHlp.pfnGetOptError = NULL; + + virtioNetR3Info(pDevIns, &DbgHlp, "a"); // Print everything! + } +} + +#endif /* VIRTIO_REL_INFO_DUMP */ /** API Function: See header file */ #ifdef VIRTIO_VBUF_ON_STACK int virtioCoreR3VirtqAvailBufGet(PPDMDEVINS pDevIns, PVIRTIOCORE pVirtio, uint16_t uVirtq, @@ -889,11 +1048,14 @@ int virtioCoreR3VirtqAvailBufGet(PPDMDEVINS pDevIns, PVIRTIOCORE pVirtio, uint16 static volatile uint32_t s_cThreshold = 1; if (ASMAtomicIncU32(&s_cMessages) == ASMAtomicReadU32(&s_cThreshold)) { - LogRelMax(64, ("Too many linked descriptors; check if the guest arranges descriptors in a loop (cSegsIn=%u cSegsOut=%u uQueueSize=%u).\n", - cSegsIn, cSegsOut, pVirtq->uQueueSize)); + LogRelMax(64, ("Too many linked descriptors; check if the guest arranges descriptors in a loop (cSegsIn=%u cSegsOut=%u uQueueSize=%u uDescIdx=%u queue=%s).\n", + cSegsIn, cSegsOut, pVirtq->uQueueSize, uDescIdx, pVirtq->szName)); if (ASMAtomicReadU32(&s_cMessages) != 1) LogRelMax(64, ("(the above error has occured %u times so far)\n", ASMAtomicReadU32(&s_cMessages))); ASMAtomicWriteU32(&s_cThreshold, ASMAtomicReadU32(&s_cThreshold) * 10); +#ifdef VIRTIO_REL_INFO_DUMP + dbgVirtioDump(pDevIns); +#endif /* VIRTIO_REL_INFO_DUMP */ } break; } diff --git a/src/VBox/Devices/VirtIO/VirtioCore.h b/src/VBox/Devices/VirtIO/VirtioCore.h index 00bcb43c..776ac969 100644 --- a/src/VBox/Devices/VirtIO/VirtioCore.h +++ b/src/VBox/Devices/VirtIO/VirtioCore.h @@ -32,6 +32,9 @@ # pragma once #endif +/* Some temporary printouts to release log in descriptor chain handling */ +//#define VIRTIO_REL_INFO_DUMP 1 + /* Do not allocate VIRTQBUF from the heap when possible */ #define VIRTIO_VBUF_ON_STACK 1 -- cgit v1.2.3