Changeset 44605 in vbox for trunk/src/VBox/Devices/EFI/Firmware2
- Timestamp:
- Feb 8, 2013 3:20:52 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 83690
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/Firmware2/VBoxPkg/VBoxVariable/InitVariable.c
r44604 r44605 148 148 * Tell DevEFI to look for the specified variable. 149 149 */ 150 ASMOutU32(EFI_VARIABLE_OP, EFI_VM_VARIABLE_OP_GUID);151 150 VBoxWriteNVRAMGuidParam(VendorGuid); 152 151 VBoxWriteNVRAMNameParam(VariableName); 153 154 152 u32Rc = VBoxWriteNVRAMDoOp(EFI_VARIABLE_OP_QUERY); 155 153 if (u32Rc == EFI_VARIABLE_OP_STATUS_OK) … … 232 230 LogFlowFuncEnter(); 233 231 232 if (!VariableNameSize || !VariableName || !VendorGuid) 233 { 234 LogFlowFuncLeaveRC(EFI_INVALID_PARAMETER); 235 return EFI_INVALID_PARAMETER; 236 } 237 234 238 /* 235 239 * Tell DevEFI which the current variable is, then ask for the next one. … … 245 249 if (u32Rc == EFI_VARIABLE_OP_STATUS_OK) 246 250 u32Rc = VBoxWriteNVRAMDoOp(EFI_VARIABLE_OP_QUERY_NEXT); 251 /** @todo We're supposed to skip stuff depending on attributes and 252 * runtime/boottime, at least if EmuGetNextVariableName is something 253 * to go by... */ 247 254 248 255 if (u32Rc == EFI_VARIABLE_OP_STATUS_OK) … … 254 261 ASMOutU32(EFI_VARIABLE_OP, EFI_VM_VARIABLE_OP_NAME_LENGTH_UTF16); 255 262 cwcName = ASMInU32(EFI_VARIABLE_OP); 256 if ( cwcName * 2 <*VariableNameSize) /* ASSUMES byte size is specified */263 if ((cwcName + 1) * 2 <= *VariableNameSize) /* ASSUMES byte size is specified */ 257 264 { 258 265 UINT32 i; … … 269 276 VariableName[i] = '\0'; 270 277 271 *VariableNameSize = cwcName * 2;272 278 rc = EFI_SUCCESS; 273 279 } 274 280 else 275 {276 281 rc = EFI_BUFFER_TOO_SMALL; 277 *VariableNameSize = (cwcName + 1) * 2; 278 } 282 *VariableNameSize = (cwcName + 1) * 2; 279 283 } 280 284 else … … 282 286 283 287 LogFlowFuncLeaveRC(rc); 288 // Temporary - start 289 DebugPrint("GetNextVariableName: rc=%u cbName=%u Name=%s VendorGuid=%g\n", rc, *VariableNameSize, VariableName, VendorGuid); 290 // Temporary - end 284 291 return rc; 285 292 #endif
Note:
See TracChangeset
for help on using the changeset viewer.