Changeset 44609 in vbox
- Timestamp:
- Feb 9, 2013 5:49:58 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 83694
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/DevEFI.cpp
r44605 r44609 284 284 { 285 285 LogFlowFunc(("%RTuuid::'%s'\n", pUuid, pszVariableName)); 286 287 int rc = VERR_NOT_FOUND; 288 uint32_t cVariables = 0; 289 PEFIVAR pEfiVar; 290 RTListForEach(&pThis->NVRAM.VarList, pEfiVar, EFIVAR, ListNode) 291 { 292 LogFlowFunc(("pEfiVar:%p\n", pEfiVar)); 293 cVariables++; 294 if ( pEfiVar 295 && RTUuidCompare(pUuid, &pEfiVar->uuid) == 0 296 && RTStrCmp(pszVariableName, pEfiVar->szName) == 0) /** @todo case sensitive or insensitive? */ 286 size_t const cchVariableName = strlen(pszVariableName); 287 int rc = VERR_NOT_FOUND; 288 289 /* 290 * Start by checking the last variable queried. 291 */ 292 if ( pThis->NVRAM.pCurVar 293 && pThis->NVRAM.pCurVar->cchName == cchVariableName 294 && memcmp(pThis->NVRAM.pCurVar->szName, pszVariableName, cchVariableName + 1) == 0 295 && RTUuidCompare(&pThis->NVRAM.pCurVar->uuid, pUuid) == 0 296 ) 297 { 298 *ppEfiVar = pThis->NVRAM.pCurVar; 299 rc = VINF_SUCCESS; 300 } 301 else 302 { 303 /* 304 * Linear list search. 305 */ 306 PEFIVAR pEfiVar; 307 RTListForEach(&pThis->NVRAM.VarList, pEfiVar, EFIVAR, ListNode) 297 308 { 298 *ppEfiVar = pEfiVar; 299 rc = VINF_SUCCESS; 300 break; 309 Assert(strlen(pEfiVar->szName) == pEfiVar->cchName); 310 if ( pEfiVar->cchName == cchVariableName 311 && memcmp(pEfiVar->szName, pszVariableName, cchVariableName + 1) == 0 312 && RTUuidCompare(&pEfiVar->uuid, pUuid) == 0) 313 { 314 *ppEfiVar = pEfiVar; 315 rc = VINF_SUCCESS; 316 break; 317 } 301 318 } 302 319 } 303 Assert(pThis->NVRAM.cVariables >= cVariables);304 320 305 321 LogFlowFunc(("rc=%Rrc pEfiVar=%p\n", rc, *ppEfiVar)); … … 435 451 static int nvramWriteVariableOpQuery(PDEVEFI pThis) 436 452 { 437 LogRel(("EFI: Querying Variable %RTuuid::'%s'\n", 438 &pThis->NVRAM.VarOpBuf.uuid, pThis->NVRAM.VarOpBuf.szName)); 453 Log(("EFI_VARIABLE_OP_QUERY: %RTuuid::'%s'\n", &pThis->NVRAM.VarOpBuf.uuid, pThis->NVRAM.VarOpBuf.szName)); 439 454 440 455 PEFIVAR pEfiVar; … … 457 472 static int nvramWriteVariableOpQueryNext(PDEVEFI pThis) 458 473 { 459 Log(("EFI : Querying next variable...\n"));474 Log(("EFI_VARIABLE_OP_QUERY_NEXT: pCurVar=%p\n", pThis->NVRAM.pCurVar)); 460 475 PEFIVAR pEfiVar = pThis->NVRAM.pCurVar; 461 476 if (pEfiVar) … … 475 490 static int nvramWriteVariableOpAdd(PDEVEFI pThis) 476 491 { 477 LogRel(("EFI : Adding variable %RTuuid::'%s'\n", &pThis->NVRAM.VarOpBuf.uuid, pThis->NVRAM.VarOpBuf.szName));478 LogFlowFunc(("fAttributes=%#x abValue=%.*Rhxs\n", pThis->NVRAM.VarOpBuf.fAttributes,479 492 LogRel(("EFI_VARIABLE_OP_ADD: %RTuuid::'%s' fAttributes=%#x abValue=%.*Rhxs\n", 493 &pThis->NVRAM.VarOpBuf.uuid, pThis->NVRAM.VarOpBuf.szName, pThis->NVRAM.VarOpBuf.fAttributes, 494 pThis->NVRAM.VarOpBuf.cbValue, pThis->NVRAM.VarOpBuf.abValue)); 480 495 481 496 /* … … 516 531 * Delete it. 517 532 */ 518 Log Flow(("nvramWriteVariableOpAdd: Delete\n"));533 LogRel(("EFI: Deleting variable %RTuuid::'%s'\n", &pThis->NVRAM.VarOpBuf.uuid, pThis->NVRAM.VarOpBuf.szName)); 519 534 RTListNodeRemove(&pEfiVar->ListNode); 520 535 pThis->NVRAM.u32Status = EFI_VARIABLE_OP_STATUS_OK; … … 531 546 * Update/replace it. (The name and UUID are unchanged, of course.) 532 547 */ 533 LogFlow(("nvramWriteVariableOpAdd: Replace\n")); 548 LogRel(("EFI: Replacing variable %RTuuid::'%s' fAttrib=%#x cbValue=%#x\n", &pThis->NVRAM.VarOpBuf.uuid, 549 pThis->NVRAM.VarOpBuf.szName, pThis->NVRAM.VarOpBuf.fAttributes, pThis->NVRAM.VarOpBuf.cbValue)); 534 550 pEfiVar->fAttributes = pThis->NVRAM.VarOpBuf.fAttributes; 535 551 pEfiVar->cbValue = pThis->NVRAM.VarOpBuf.cbValue; … … 549 565 * Add a new variable. 550 566 */ 551 LogFlow(("nvramWriteVariableOpAdd: New\n")); 567 LogRel(("EFI: Adding variable %RTuuid::'%s' fAttrib=%#x cbValue=%#x\n", &pThis->NVRAM.VarOpBuf.uuid, 568 pThis->NVRAM.VarOpBuf.szName, pThis->NVRAM.VarOpBuf.fAttributes, pThis->NVRAM.VarOpBuf.cbValue)); 552 569 pEfiVar = (PEFIVAR)RTMemAllocZ(sizeof(EFIVAR)); 553 570 if (pEfiVar) … … 574 591 static unsigned s_cWarnings = 0; 575 592 if (s_cWarnings++ < 5) 576 LogRel(("EFI: Too many variables.\n")); 593 LogRel(("EFI: Too many variables (%RTuuid::'%s' fAttrib=%#x cbValue=%#x)\n", &pThis->NVRAM.VarOpBuf.uuid, 594 pThis->NVRAM.VarOpBuf.szName, pThis->NVRAM.VarOpBuf.fAttributes, pThis->NVRAM.VarOpBuf.cbValue)); 577 595 pThis->NVRAM.u32Status = EFI_VARIABLE_OP_STATUS_ERROR; 578 596 Log(("nvramWriteVariableOpAdd: Too many variabled.\n")); … … 608 626 case EFI_VARIABLE_OP_QUERY_REWIND: 609 627 Log2(("EFI_VARIABLE_OP_QUERY_REWIND\n")); 610 pThis->NVRAM.pCurVar = NULL; 628 pThis->NVRAM.pCurVar = NULL; 629 pThis->NVRAM.u32Status = EFI_VARIABLE_OP_STATUS_OK; 611 630 break; 612 631
Note:
See TracChangeset
for help on using the changeset viewer.