VOID* NewBuffer;\r
UINTN NewSize;\r
EFI_STATUS Status;\r
+ BOOLEAN Volatile;\r
\r
//\r
// Most if not all UEFI commands will have an '\r\n' at the end of any output. \r
NewBuffer = NULL;\r
NewSize = 0;\r
\r
+ Status = IsVolatileEnv (((EFI_FILE_PROTOCOL_ENVIRONMENT*)This)->Name, &Volatile);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
Status = SHELL_GET_ENVIRONMENT_VARIABLE(((EFI_FILE_PROTOCOL_ENVIRONMENT*)This)->Name, &NewSize, NewBuffer);\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
NewBuffer = AllocateZeroPool(NewSize + sizeof(CHAR16));\r
&& (((CHAR16*)NewBuffer)[(StrSize(NewBuffer)/2) - 3] == CHAR_CARRIAGE_RETURN)) {\r
((CHAR16*)NewBuffer)[(StrSize(NewBuffer)/2) - 3] = CHAR_NULL; \r
}\r
- \r
- if (IsVolatileEnv(((EFI_FILE_PROTOCOL_ENVIRONMENT*)This)->Name)) {\r
+\r
+ if (Volatile) {\r
Status = SHELL_SET_ENVIRONMENT_VARIABLE_V(((EFI_FILE_PROTOCOL_ENVIRONMENT*)This)->Name, StrSize(NewBuffer), NewBuffer);\r
} else {\r
Status = SHELL_SET_ENVIRONMENT_VARIABLE_NV(((EFI_FILE_PROTOCOL_ENVIRONMENT*)This)->Name, StrSize(NewBuffer), NewBuffer);\r
IN CONST CHAR16 *EnvName\r
)\r
{\r
+ EFI_STATUS Status;\r
EFI_FILE_PROTOCOL_ENVIRONMENT *EnvFileInterface;\r
UINTN EnvNameSize;\r
+ BOOLEAN Volatile;\r
\r
if (EnvName == NULL) {\r
return (NULL);\r
}\r
\r
+ Status = IsVolatileEnv (EnvName, &Volatile);\r
+ if (EFI_ERROR (Status)) {\r
+ return NULL;\r
+ }\r
+\r
//\r
// Get some memory\r
//\r
//\r
// Assign the different members for Volatile and Non-Volatile variables\r
//\r
- if (IsVolatileEnv(EnvName)) {\r
+ if (Volatile) {\r
EnvFileInterface->Write = FileInterfaceEnvVolWrite;\r
} else {\r
EnvFileInterface->Write = FileInterfaceEnvNonVolWrite;\r