Changeset 81917 in vbox
- Timestamp:
- Nov 17, 2019 8:45:05 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevPcBios.cpp
r81591 r81917 358 358 { 359 359 PDEVPCBIOS pThis = PDMDEVINS_2_DATA(pDevIns, PDEVPCBIOS); 360 SSMR3PutStruct(pSSM, pThis, g_aPcBiosFields); 361 return VINF_SUCCESS; 360 return pDevIns->pHlpR3->pfnSSMPutStruct(pSSM, pThis, g_aPcBiosFields); 362 361 } 363 362 … … 392 391 Assert(uPass == SSM_PASS_FINAL); NOREF(uPass); 393 392 394 return SSMR3GetStruct(pSSM, pThis, g_aPcBiosFields);393 return pDevIns->pHlpR3->pfnSSMGetStruct(pSSM, pThis, g_aPcBiosFields); 395 394 } 396 395 … … 1153 1152 static int pcbiosBootFromCfg(PPDMDEVINS pDevIns, PCFGMNODE pCfg, const char *pszParam, DEVPCBIOSBOOT *penmBoot) 1154 1153 { 1155 char *psz; 1156 int rc = CFGMR3QueryStringAlloc(pCfg, pszParam, &psz); 1154 PCPDMDEVHLPR3 pHlp = pDevIns->pHlpR3; 1155 1156 char szBuf[64]; 1157 int rc = pHlp->pfnCFGMQueryString(pCfg, pszParam, szBuf, sizeof(szBuf)); 1157 1158 if (RT_FAILURE(rc)) 1158 1159 return PDMDevHlpVMSetError(pDevIns, rc, RT_SRC_POS, 1159 N_("Configuration error: Querying \"%s\" as a string failed"), 1160 pszParam); 1161 if (!strcmp( psz, "DVD") || !strcmp(psz, "CDROM"))1160 N_("Configuration error: Querying \"%s\" as a string failed"), pszParam); 1161 1162 if (!strcmp(szBuf, "DVD") || !strcmp(szBuf, "CDROM")) 1162 1163 *penmBoot = DEVPCBIOSBOOT_DVD; 1163 else if (!strcmp( psz, "IDE"))1164 else if (!strcmp(szBuf, "IDE")) 1164 1165 *penmBoot = DEVPCBIOSBOOT_HD; 1165 else if (!strcmp( psz, "FLOPPY"))1166 else if (!strcmp(szBuf, "FLOPPY")) 1166 1167 *penmBoot = DEVPCBIOSBOOT_FLOPPY; 1167 else if (!strcmp( psz, "LAN"))1168 else if (!strcmp(szBuf, "LAN")) 1168 1169 *penmBoot = DEVPCBIOSBOOT_LAN; 1169 else if (!strcmp( psz, "NONE"))1170 else if (!strcmp(szBuf, "NONE")) 1170 1171 *penmBoot = DEVPCBIOSBOOT_NONE; 1171 1172 else 1172 { 1173 PDMDevHlpVMSetError(pDevIns, rc, RT_SRC_POS, 1174 N_("Configuration error: The \"%s\" value \"%s\" is unknown"), 1175 pszParam, psz); 1176 rc = VERR_INTERNAL_ERROR; 1177 } 1178 MMR3HeapFree(psz); 1173 rc = PDMDevHlpVMSetError(pDevIns, VERR_INVALID_PARAMETER, RT_SRC_POS, 1174 N_("Configuration error: The \"%s\" value \"%s\" is unknown"), pszParam, szBuf); 1179 1175 return rc; 1180 1176 } … … 1186 1182 { 1187 1183 PDMDEV_CHECK_VERSIONS_RETURN(pDevIns); 1188 PDEVPCBIOS pThis = PDMDEVINS_2_DATA(pDevIns, PDEVPCBIOS); 1189 int rc; 1190 int cb; 1184 PDEVPCBIOS pThis = PDMDEVINS_2_DATA(pDevIns, PDEVPCBIOS); 1185 PCPDMDEVHLPR3 pHlp = pDevIns->pHlpR3; 1186 int rc; 1187 int cb; 1191 1188 Assert(iInstance == 0); RT_NOREF(iInstance); 1192 1189 … … 1194 1191 * Validate configuration. 1195 1192 */ 1196 if (!CFGMR3AreValuesValid(pCfg, 1197 "BootDevice0\0" 1198 "BootDevice1\0" 1199 "BootDevice2\0" 1200 "BootDevice3\0" 1201 "HardDiskDevice\0" 1202 "SataHardDiskDevice\0" 1203 "SataLUN1\0" 1204 "SataLUN2\0" 1205 "SataLUN3\0" 1206 "SataLUN4\0" 1207 "ScsiHardDiskDevice\0" 1208 "ScsiLUN1\0" 1209 "ScsiLUN2\0" 1210 "ScsiLUN3\0" 1211 "ScsiLUN4\0" 1212 "FloppyDevice\0" 1213 "DelayBoot\0" 1214 "BiosRom\0" 1215 "LanBootRom\0" 1216 "PXEDebug\0" 1217 "UUID\0" 1218 "UuidLe\0" 1219 "IOAPIC\0" 1220 "APIC\0" 1221 "NumCPUs\0" 1222 "McfgBase\0" 1223 "McfgLength\0" 1224 "DmiBIOSFirmwareMajor\0" 1225 "DmiBIOSFirmwareMinor\0" 1226 "DmiBIOSReleaseDate\0" 1227 "DmiBIOSReleaseMajor\0" 1228 "DmiBIOSReleaseMinor\0" 1229 "DmiBIOSVendor\0" 1230 "DmiBIOSVersion\0" 1231 "DmiSystemFamily\0" 1232 "DmiSystemProduct\0" 1233 "DmiSystemSerial\0" 1234 "DmiSystemSKU\0" 1235 "DmiSystemUuid\0" 1236 "DmiSystemVendor\0" 1237 "DmiSystemVersion\0" 1238 "DmiBoardAssetTag\0" 1239 "DmiBoardBoardType\0" 1240 "DmiBoardLocInChass\0" 1241 "DmiBoardProduct\0" 1242 "DmiBoardSerial\0" 1243 "DmiBoardVendor\0" 1244 "DmiBoardVersion\0" 1245 "DmiChassisAssetTag\0" 1246 "DmiChassisSerial\0" 1247 "DmiChassisType\0" 1248 "DmiChassisVendor\0" 1249 "DmiChassisVersion\0" 1250 "DmiProcManufacturer\0" 1251 "DmiProcVersion\0" 1252 "DmiOEMVBoxVer\0" 1253 "DmiOEMVBoxRev\0" 1254 "DmiUseHostInfo\0" 1255 "DmiExposeMemoryTable\0" 1256 "DmiExposeProcInf\0" 1257 "CheckShutdownStatusForSoftReset\0" 1258 "ClearShutdownStatusOnHardReset\0" 1259 )) 1260 return PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES, 1261 N_("Invalid configuration for device pcbios device")); 1262 1193 PDMDEV_VALIDATE_CONFIG_RETURN(pDevIns, 1194 "BootDevice0" 1195 "|BootDevice1" 1196 "|BootDevice2" 1197 "|BootDevice3" 1198 "|HardDiskDevice" 1199 "|SataHardDiskDevice" 1200 "|SataLUN1" 1201 "|SataLUN2" 1202 "|SataLUN3" 1203 "|SataLUN4" 1204 "|ScsiHardDiskDevice" 1205 "|ScsiLUN1" 1206 "|ScsiLUN2" 1207 "|ScsiLUN3" 1208 "|ScsiLUN4" 1209 "|FloppyDevice" 1210 "|DelayBoot" 1211 "|BiosRom" 1212 "|LanBootRom" 1213 "|PXEDebug" 1214 "|UUID" 1215 "|UuidLe" 1216 "|IOAPIC" 1217 "|APIC" 1218 "|NumCPUs" 1219 "|McfgBase" 1220 "|McfgLength" 1221 "|DmiBIOSFirmwareMajor" 1222 "|DmiBIOSFirmwareMinor" 1223 "|DmiBIOSReleaseDate" 1224 "|DmiBIOSReleaseMajor" 1225 "|DmiBIOSReleaseMinor" 1226 "|DmiBIOSVendor" 1227 "|DmiBIOSVersion" 1228 "|DmiSystemFamily" 1229 "|DmiSystemProduct" 1230 "|DmiSystemSerial" 1231 "|DmiSystemSKU" 1232 "|DmiSystemUuid" 1233 "|DmiSystemVendor" 1234 "|DmiSystemVersion" 1235 "|DmiBoardAssetTag" 1236 "|DmiBoardBoardType" 1237 "|DmiBoardLocInChass" 1238 "|DmiBoardProduct" 1239 "|DmiBoardSerial" 1240 "|DmiBoardVendor" 1241 "|DmiBoardVersion" 1242 "|DmiChassisAssetTag" 1243 "|DmiChassisSerial" 1244 "|DmiChassisType" 1245 "|DmiChassisVendor" 1246 "|DmiChassisVersion" 1247 "|DmiProcManufacturer" 1248 "|DmiProcVersion" 1249 "|DmiOEMVBoxVer" 1250 "|DmiOEMVBoxRev" 1251 "|DmiUseHostInfo" 1252 "|DmiExposeMemoryTable" 1253 "|DmiExposeProcInf" 1254 "|CheckShutdownStatusForSoftReset" 1255 "|ClearShutdownStatusOnHardReset" 1256 , ""); 1263 1257 /* 1264 1258 * Init the data. 1265 1259 */ 1266 rc = CFGMR3QueryU16Def(pCfg, "NumCPUs", &pThis->cCpus, 1);1260 rc = pHlp->pfnCFGMQueryU16Def(pCfg, "NumCPUs", &pThis->cCpus, 1); 1267 1261 if (RT_FAILURE(rc)) 1268 return PDMDEV_SET_ERROR(pDevIns, rc, 1269 N_("Configuration error: Querying \"NumCPUs\" as integer failed")); 1270 1271 rc = CFGMR3QueryU64Def(pCfg, "McfgBase", &pThis->u64McfgBase, 0); 1262 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Querying \"NumCPUs\" as integer failed")); 1263 1264 rc = pHlp->pfnCFGMQueryU64Def(pCfg, "McfgBase", &pThis->u64McfgBase, 0); 1272 1265 if (RT_FAILURE(rc)) 1273 return PDMDEV_SET_ERROR(pDevIns, rc, 1274 N_("Configuration error: Querying \"\" as integer failed")); 1275 rc = CFGMR3QueryU64Def(pCfg, "McfgLength", &pThis->cbMcfgLength, 0); 1266 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Querying \"\" as integer failed")); 1267 rc = pHlp->pfnCFGMQueryU64Def(pCfg, "McfgLength", &pThis->cbMcfgLength, 0); 1276 1268 if (RT_FAILURE(rc)) 1277 return PDMDEV_SET_ERROR(pDevIns, rc, 1278 N_("Configuration error: Querying \"McfgLength\" as integer failed")); 1269 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Querying \"McfgLength\" as integer failed")); 1279 1270 1280 1271 1281 1272 LogRel(("PcBios: [SMP] BIOS with %u CPUs\n", pThis->cCpus)); 1282 1273 1283 rc = CFGMR3QueryU8Def(pCfg, "IOAPIC", &pThis->u8IOAPIC, 1);1274 rc = pHlp->pfnCFGMQueryU8Def(pCfg, "IOAPIC", &pThis->u8IOAPIC, 1); 1284 1275 if (RT_FAILURE (rc)) 1285 return PDMDEV_SET_ERROR(pDevIns, rc, 1286 N_("Configuration error: Failed to read \"IOAPIC\"")); 1287 1288 rc = CFGMR3QueryU8Def(pCfg, "APIC", &pThis->u8APICMode, 1); 1276 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Failed to read \"IOAPIC\"")); 1277 1278 rc = pHlp->pfnCFGMQueryU8Def(pCfg, "APIC", &pThis->u8APICMode, 1); 1289 1279 if (RT_FAILURE (rc)) 1290 return PDMDEV_SET_ERROR(pDevIns, rc, 1291 N_("Configuration error: Failed to read \"APIC\"")); 1280 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Failed to read \"APIC\"")); 1292 1281 1293 1282 static const char * const s_apszBootDevices[] = { "BootDevice0", "BootDevice1", "BootDevice2", "BootDevice3" }; … … 1300 1289 } 1301 1290 1302 rc = CFGMR3QueryStringAlloc(pCfg, "HardDiskDevice", &pThis->pszHDDevice);1291 rc = pHlp->pfnCFGMQueryStringAlloc(pCfg, "HardDiskDevice", &pThis->pszHDDevice); 1303 1292 if (RT_FAILURE(rc)) 1304 return PDMDEV_SET_ERROR(pDevIns, rc, 1305 N_("Configuration error: Querying \"HardDiskDevice\" as a string failed")); 1306 1307 rc = CFGMR3QueryStringAlloc(pCfg, "FloppyDevice", &pThis->pszFDDevice); 1293 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Querying \"HardDiskDevice\" as a string failed")); 1294 1295 rc = pHlp->pfnCFGMQueryStringAlloc(pCfg, "FloppyDevice", &pThis->pszFDDevice); 1308 1296 if (RT_FAILURE(rc)) 1309 return PDMDEV_SET_ERROR(pDevIns, rc, 1310 N_("Configuration error: Querying \"FloppyDevice\" as a string failed")); 1311 1312 rc = CFGMR3QueryStringAlloc(pCfg, "SataHardDiskDevice", &pThis->pszSataDevice); 1297 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Querying \"FloppyDevice\" as a string failed")); 1298 1299 rc = pHlp->pfnCFGMQueryStringAlloc(pCfg, "SataHardDiskDevice", &pThis->pszSataDevice); 1313 1300 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 1314 1301 pThis->pszSataDevice = NULL; 1315 1302 else if (RT_FAILURE(rc)) 1316 return PDMDEV_SET_ERROR(pDevIns, rc, 1317 N_("Configuration error: Querying \"SataHardDiskDevice\" as a string failed")); 1303 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Querying \"SataHardDiskDevice\" as a string failed")); 1318 1304 1319 1305 if (pThis->pszSataDevice) 1320 1306 { 1321 static const char * const s_apszSataDisks[] = 1322 { "SataLUN1", "SataLUN2", "SataLUN3", "SataLUN4" }; 1307 static const char * const s_apszSataDisks[] = { "SataLUN1", "SataLUN2", "SataLUN3", "SataLUN4" }; 1323 1308 Assert(RT_ELEMENTS(s_apszSataDisks) == RT_ELEMENTS(pThis->iSataHDLUN)); 1324 1309 for (unsigned i = 0; i < RT_ELEMENTS(pThis->iSataHDLUN); i++) 1325 1310 { 1326 rc = CFGMR3QueryU32(pCfg, s_apszSataDisks[i], &pThis->iSataHDLUN[i]);1311 rc = pHlp->pfnCFGMQueryU32(pCfg, s_apszSataDisks[i], &pThis->iSataHDLUN[i]); 1327 1312 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 1328 1313 pThis->iSataHDLUN[i] = i; … … 1334 1319 1335 1320 /* Repeat the exercise for SCSI drives. */ 1336 rc = CFGMR3QueryStringAlloc(pCfg, "ScsiHardDiskDevice", &pThis->pszScsiDevice);1321 rc = pHlp->pfnCFGMQueryStringAlloc(pCfg, "ScsiHardDiskDevice", &pThis->pszScsiDevice); 1337 1322 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 1338 1323 pThis->pszScsiDevice = NULL; 1339 1324 else if (RT_FAILURE(rc)) 1340 return PDMDEV_SET_ERROR(pDevIns, rc, 1341 N_("Configuration error: Querying \"ScsiHardDiskDevice\" as a string failed")); 1325 return PDMDEV_SET_ERROR(pDevIns, rc, N_("Configuration error: Querying \"ScsiHardDiskDevice\" as a string failed")); 1342 1326 1343 1327 if (pThis->pszScsiDevice) 1344 1328 { 1345 static const char * const s_apszScsiDisks[] = 1346 { "ScsiLUN1", "ScsiLUN2", "ScsiLUN3", "ScsiLUN4" }; 1329 static const char * const s_apszScsiDisks[] = { "ScsiLUN1", "ScsiLUN2", "ScsiLUN3", "ScsiLUN4" }; 1347 1330 Assert(RT_ELEMENTS(s_apszScsiDisks) == RT_ELEMENTS(pThis->iScsiHDLUN)); 1348 1331 for (unsigned i = 0; i < RT_ELEMENTS(pThis->iScsiHDLUN); i++) 1349 1332 { 1350 rc = CFGMR3QueryU32(pCfg, s_apszScsiDisks[i], &pThis->iScsiHDLUN[i]);1333 rc = pHlp->pfnCFGMQueryU32(pCfg, s_apszScsiDisks[i], &pThis->iScsiHDLUN[i]); 1351 1334 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 1352 1335 pThis->iScsiHDLUN[i] = i; … … 1380 1363 * Read the PXE debug logging option. 1381 1364 */ 1382 rc = CFGMR3QueryU8Def(pCfg, "PXEDebug", &pThis->u8PXEDebug, false);1365 rc = pHlp->pfnCFGMQueryU8Def(pCfg, "PXEDebug", &pThis->u8PXEDebug, false); 1383 1366 if (RT_FAILURE(rc)) 1384 1367 return PDMDEV_SET_ERROR(pDevIns, rc, … … 1393 1376 * Determine the network boot order. 1394 1377 */ 1395 PCFGMNODE pCfgNetBoot = CFGMR3GetChild(pCfg, "NetBoot");1378 PCFGMNODE pCfgNetBoot = pHlp->pfnCFGMGetChild(pCfg, "NetBoot"); 1396 1379 if (pCfgNetBoot == NULL) 1397 1380 { … … 1412 1395 { 1413 1396 szIndex[0] = '0' + i; 1414 pCfgNetBootDevice = CFGMR3GetChild(pCfgNetBoot, szIndex);1415 1416 rc = CFGMR3QueryU8(pCfgNetBootDevice, "PCIBusNo", &u8PciBus);1397 pCfgNetBootDevice = pHlp->pfnCFGMGetChild(pCfgNetBoot, szIndex); 1398 1399 rc = pHlp->pfnCFGMQueryU8(pCfgNetBootDevice, "PCIBusNo", &u8PciBus); 1417 1400 if (rc == VERR_CFGM_VALUE_NOT_FOUND || rc == VERR_CFGM_NO_PARENT) 1418 1401 { … … 1424 1407 return PDMDEV_SET_ERROR(pDevIns, rc, 1425 1408 N_("Configuration error: Querying \"Netboot/x/PCIBusNo\" as integer failed")); 1426 rc = CFGMR3QueryU8(pCfgNetBootDevice, "PCIDeviceNo", &u8PciDev);1409 rc = pHlp->pfnCFGMQueryU8(pCfgNetBootDevice, "PCIDeviceNo", &u8PciDev); 1427 1410 if (rc == VERR_CFGM_VALUE_NOT_FOUND || rc == VERR_CFGM_NO_PARENT) 1428 1411 { … … 1434 1417 return PDMDEV_SET_ERROR(pDevIns, rc, 1435 1418 N_("Configuration error: Querying \"Netboot/x/PCIDeviceNo\" as integer failed")); 1436 rc = CFGMR3QueryU8(pCfgNetBootDevice, "PCIFunctionNo", &u8PciFn);1419 rc = pHlp->pfnCFGMQueryU8(pCfgNetBootDevice, "PCIFunctionNo", &u8PciFn); 1437 1420 if (rc == VERR_CFGM_VALUE_NOT_FOUND || rc == VERR_CFGM_NO_PARENT) 1438 1421 { … … 1452 1435 * Get the system BIOS ROM file name. 1453 1436 */ 1454 rc = CFGMR3QueryStringAlloc(pCfg, "BiosRom", &pThis->pszPcBiosFile);1437 rc = pHlp->pfnCFGMQueryStringAlloc(pCfg, "BiosRom", &pThis->pszPcBiosFile); 1455 1438 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 1456 1439 { … … 1463 1446 else if (!*pThis->pszPcBiosFile) 1464 1447 { 1465 MMR3HeapFree(pThis->pszPcBiosFile);1448 PDMDevHlpMMHeapFree(pDevIns, pThis->pszPcBiosFile); 1466 1449 pThis->pszPcBiosFile = NULL; 1467 1450 } … … 1571 1554 */ 1572 1555 RTUUID uuid; 1573 rc = CFGMR3QueryBytes(pCfg, "UUID", &uuid, sizeof(uuid));1556 rc = pHlp->pfnCFGMQueryBytes(pCfg, "UUID", &uuid, sizeof(uuid)); 1574 1557 if (RT_FAILURE(rc)) 1575 1558 return PDMDEV_SET_ERROR(pDevIns, rc, … … 1577 1560 1578 1561 bool fUuidLe; 1579 rc = CFGMR3QueryBoolDef(pCfg, "UuidLe", &fUuidLe, false);1562 rc = pHlp->pfnCFGMQueryBoolDef(pCfg, "UuidLe", &fUuidLe, false); 1580 1563 if (RT_FAILURE(rc)) 1581 1564 return PDMDEV_SET_ERROR(pDevIns, rc, … … 1658 1641 * Get the LAN boot ROM file name. 1659 1642 */ 1660 rc = CFGMR3QueryStringAlloc(pCfg, "LanBootRom", &pThis->pszLanBootFile);1643 rc = pHlp->pfnCFGMQueryStringAlloc(pCfg, "LanBootRom", &pThis->pszLanBootFile); 1661 1644 if (rc == VERR_CFGM_VALUE_NOT_FOUND) 1662 1645 { … … 1669 1652 else if (!*pThis->pszLanBootFile) 1670 1653 { 1671 MMR3HeapFree(pThis->pszLanBootFile);1654 PDMDevHlpMMHeapFree(pDevIns, pThis->pszLanBootFile); 1672 1655 pThis->pszLanBootFile = NULL; 1673 1656 } … … 1729 1712 * ignore the VM configuration. */ 1730 1713 LogRel(("PcBios: Failed to open LAN boot ROM file '%s', rc=%Rrc!\n", pThis->pszLanBootFile, rc)); 1731 MMR3HeapFree(pThis->pszLanBootFile);1714 PDMDevHlpMMHeapFree(pDevIns, pThis->pszLanBootFile); 1732 1715 pThis->pszLanBootFile = NULL; 1733 1716 } … … 1778 1761 * Configure Boot delay. 1779 1762 */ 1780 rc = CFGMR3QueryU8Def(pCfg, "DelayBoot", &pThis->uBootDelay, 0);1763 rc = pHlp->pfnCFGMQueryU8Def(pCfg, "DelayBoot", &pThis->uBootDelay, 0); 1781 1764 if (RT_FAILURE(rc)) 1782 1765 return PDMDEV_SET_ERROR(pDevIns, rc, … … 1794 1777 * determine whether the guest intended a soft or hard reset. Currently only 1795 1778 * shutdown status codes 05h, 09h and 0Ah are considered soft reset. */ 1796 rc = CFGMR3QueryBoolDef(pCfg, "CheckShutdownStatusForSoftReset", &pThis->fCheckShutdownStatusForSoftReset, true);1779 rc = pHlp->pfnCFGMQueryBoolDef(pCfg, "CheckShutdownStatusForSoftReset", &pThis->fCheckShutdownStatusForSoftReset, true); 1797 1780 AssertLogRelRCReturn(rc, rc); 1798 1781 1799 1782 /** @cfgm{ClearShutdownStatusOnHardReset, boolean, true} 1800 1783 * Whether to clear the shutdown status code (CMOS register 0Fh) on hard reset. */ 1801 rc = CFGMR3QueryBoolDef(pCfg, "ClearShutdownStatusOnHardReset", &pThis->fClearShutdownStatusOnHardReset, true);1784 rc = pHlp->pfnCFGMQueryBoolDef(pCfg, "ClearShutdownStatusOnHardReset", &pThis->fClearShutdownStatusOnHardReset, true); 1802 1785 AssertLogRelRCReturn(rc, rc); 1803 1786
Note:
See TracChangeset
for help on using the changeset viewer.