- if (IpSb->MacString != NULL) {\r
- //\r
- // The variable is set already, we're going to update it.\r
- //\r
- if (StrCmp (IpSb->MacString, NewMacString) != 0) {\r
- //\r
- // The mac address is changed, delete the previous variable first.\r
- //\r
- gRT->SetVariable (\r
- IpSb->MacString,\r
- &gEfiIp4ServiceBindingProtocolGuid,\r
- EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- 0,\r
- NULL\r
- );\r
- }\r
-\r
- gBS->FreePool (IpSb->MacString);\r
- }\r
-\r
- IpSb->MacString = NewMacString;\r
-\r
- Status = gRT->SetVariable (\r
- IpSb->MacString,\r
- &gEfiIp4ServiceBindingProtocolGuid,\r
- EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- VariableDataSize,\r
- (VOID *) Ip4VariableData\r
- );\r
-\r
-ON_ERROR:\r
-\r
- gBS->FreePool (Ip4VariableData);\r
-\r
- return Status;\r
-}\r
-\r
-\r
-/**\r
- Clear the variable and free the resource.\r
-\r
- @param IpSb Ip4 service binding instance\r
-\r
- @return None.\r
-\r
-**/\r
-VOID\r
-Ip4ClearVariableData (\r
- IN IP4_SERVICE *IpSb\r
- )\r
-{\r
- ASSERT (IpSb->MacString != NULL);\r
-\r
- gRT->SetVariable (\r
- IpSb->MacString,\r
- &gEfiIp4ServiceBindingProtocolGuid,\r
- EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- 0,\r
- NULL\r
- );\r
-\r
- gBS->FreePool (IpSb->MacString);\r
- IpSb->MacString = NULL;\r