#include "HttpBootDxe.h"\r
#include <Library/UefiBootManagerLib.h>\r
\r
-CHAR16 mHttpBootConfigStorageName[] = L"HTTP_BOOT_CONFIG_IFR_NVDATA";\r
+CHAR16 mHttpBootConfigStorageName[] = L"HTTP_BOOT_CONFIG_IFR_NVDATA";\r
\r
/**\r
Add new boot option for HTTP boot.\r
**/\r
EFI_STATUS\r
HttpBootAddBootOption (\r
- IN HTTP_BOOT_PRIVATE_DATA *Private,\r
- IN BOOLEAN UsingIpv6,\r
- IN CHAR16 *Description,\r
- IN CHAR16 *Uri\r
+ IN HTTP_BOOT_PRIVATE_DATA *Private,\r
+ IN BOOLEAN UsingIpv6,\r
+ IN CHAR16 *Description,\r
+ IN CHAR16 *Uri\r
)\r
{\r
- EFI_DEV_PATH *Node;\r
- EFI_DEVICE_PATH_PROTOCOL *TmpDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;\r
- UINTN Length;\r
- CHAR8 AsciiUri[URI_STR_MAX_SIZE];\r
- EFI_STATUS Status;\r
- UINTN Index;\r
- EFI_BOOT_MANAGER_LOAD_OPTION NewOption;\r
+ EFI_DEV_PATH *Node;\r
+ EFI_DEVICE_PATH_PROTOCOL *TmpDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;\r
+ UINTN Length;\r
+ CHAR8 AsciiUri[URI_STR_MAX_SIZE];\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
+ EFI_BOOT_MANAGER_LOAD_OPTION NewOption;\r
\r
NewDevicePath = NULL;\r
Node = NULL;\r
if (Uri[Index] == L':') {\r
break;\r
}\r
- if (Uri[Index] >= L'A' && Uri[Index] <= L'Z') {\r
+\r
+ if ((Uri[Index] >= L'A') && (Uri[Index] <= L'Z')) {\r
Uri[Index] -= (CHAR16)(L'A' - L'a');\r
}\r
}\r
Status = EFI_OUT_OF_RESOURCES;\r
goto ON_EXIT;\r
}\r
+\r
Node->Ipv4.Header.Type = MESSAGING_DEVICE_PATH;\r
Node->Ipv4.Header.SubType = MSG_IPv4_DP;\r
SetDevicePathNodeLength (Node, sizeof (IPv4_DEVICE_PATH));\r
Status = EFI_OUT_OF_RESOURCES;\r
goto ON_EXIT;\r
}\r
- Node->Ipv6.Header.Type = MESSAGING_DEVICE_PATH;\r
- Node->Ipv6.Header.SubType = MSG_IPv6_DP;\r
+\r
+ Node->Ipv6.Header.Type = MESSAGING_DEVICE_PATH;\r
+ Node->Ipv6.Header.SubType = MSG_IPv6_DP;\r
SetDevicePathNodeLength (Node, sizeof (IPv6_DEVICE_PATH));\r
}\r
- TmpDevicePath = AppendDevicePathNode (Private->ParentDevicePath, (EFI_DEVICE_PATH_PROTOCOL*) Node);\r
+\r
+ TmpDevicePath = AppendDevicePathNode (Private->ParentDevicePath, (EFI_DEVICE_PATH_PROTOCOL *)Node);\r
FreePool (Node);\r
if (TmpDevicePath == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
//\r
// Update the URI node with the input boot file URI.\r
//\r
UnicodeStrToAsciiStrS (Uri, AsciiUri, sizeof (AsciiUri));\r
Length = sizeof (EFI_DEVICE_PATH_PROTOCOL) + AsciiStrSize (AsciiUri);\r
- Node = AllocatePool (Length);\r
+ Node = AllocatePool (Length);\r
if (Node == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
FreePool (TmpDevicePath);\r
goto ON_EXIT;\r
}\r
+\r
Node->DevPath.Type = MESSAGING_DEVICE_PATH;\r
Node->DevPath.SubType = MSG_URI_DP;\r
SetDevicePathNodeLength (Node, Length);\r
- CopyMem ((UINT8*) Node + sizeof (EFI_DEVICE_PATH_PROTOCOL), AsciiUri, AsciiStrSize (AsciiUri));\r
- NewDevicePath = AppendDevicePathNode (TmpDevicePath, (EFI_DEVICE_PATH_PROTOCOL*) Node);\r
+ CopyMem ((UINT8 *)Node + sizeof (EFI_DEVICE_PATH_PROTOCOL), AsciiUri, AsciiStrSize (AsciiUri));\r
+ NewDevicePath = AppendDevicePathNode (TmpDevicePath, (EFI_DEVICE_PATH_PROTOCOL *)Node);\r
FreePool (Node);\r
FreePool (TmpDevicePath);\r
if (NewDevicePath == NULL) {\r
// Add a new load option.\r
//\r
Status = EfiBootManagerInitializeLoadOption (\r
- &NewOption,\r
- LoadOptionNumberUnassigned,\r
- LoadOptionTypeBoot,\r
- LOAD_OPTION_ACTIVE,\r
- Description,\r
- NewDevicePath,\r
- NULL,\r
- 0\r
- );\r
+ &NewOption,\r
+ LoadOptionNumberUnassigned,\r
+ LoadOptionTypeBoot,\r
+ LOAD_OPTION_ACTIVE,\r
+ Description,\r
+ NewDevicePath,\r
+ NULL,\r
+ 0\r
+ );\r
if (EFI_ERROR (Status)) {\r
goto ON_EXIT;\r
}\r
\r
- Status = EfiBootManagerAddLoadOptionVariable (&NewOption, (UINTN) -1);\r
+ Status = EfiBootManagerAddLoadOptionVariable (&NewOption, (UINTN)-1);\r
EfiBootManagerFreeLoadOption (&NewOption);\r
\r
ON_EXIT:\r
EFI_STATUS\r
EFIAPI\r
HttpBootFormExtractConfig (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN CONST EFI_STRING Request,\r
- OUT EFI_STRING *Progress,\r
- OUT EFI_STRING *Results\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN CONST EFI_STRING Request,\r
+ OUT EFI_STRING *Progress,\r
+ OUT EFI_STRING *Results\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN BufferSize;\r
- HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
- EFI_STRING ConfigRequestHdr;\r
- EFI_STRING ConfigRequest;\r
- BOOLEAN AllocatedRequest;\r
- UINTN Size;\r
-\r
- if (Progress == NULL || Results == NULL) {\r
+ EFI_STATUS Status;\r
+ UINTN BufferSize;\r
+ HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
+ EFI_STRING ConfigRequestHdr;\r
+ EFI_STRING ConfigRequest;\r
+ BOOLEAN AllocatedRequest;\r
+ UINTN Size;\r
+\r
+ if ((Progress == NULL) || (Results == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator\r
//\r
ConfigRequestHdr = HiiConstructConfigHdr (&gHttpBootConfigGuid, mHttpBootConfigStorageName, CallbackInfo->ChildHandle);\r
- Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);\r
- ConfigRequest = AllocateZeroPool (Size);\r
+ Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);\r
+ ConfigRequest = AllocateZeroPool (Size);\r
if (ConfigRequest == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
AllocatedRequest = TRUE;\r
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize);\r
FreePool (ConfigRequestHdr);\r
Status = gHiiConfigRouting->BlockToConfig (\r
gHiiConfigRouting,\r
ConfigRequest,\r
- (UINT8 *) &CallbackInfo->HttpBootNvData,\r
+ (UINT8 *)&CallbackInfo->HttpBootNvData,\r
BufferSize,\r
Results,\r
Progress\r
FreePool (ConfigRequest);\r
ConfigRequest = NULL;\r
}\r
+\r
//\r
// Set Progress string to the original request string.\r
//\r
EFI_STATUS\r
EFIAPI\r
HttpBootFormRouteConfig (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN CONST EFI_STRING Configuration,\r
- OUT EFI_STRING *Progress\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN CONST EFI_STRING Configuration,\r
+ OUT EFI_STRING *Progress\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN BufferSize;\r
- HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
- HTTP_BOOT_PRIVATE_DATA *Private;\r
+ EFI_STATUS Status;\r
+ UINTN BufferSize;\r
+ HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
+ HTTP_BOOT_PRIVATE_DATA *Private;\r
\r
if (Progress == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
*Progress = Configuration;\r
\r
if (Configuration == NULL) {\r
ZeroMem (&CallbackInfo->HttpBootNvData, BufferSize);\r
\r
Status = gHiiConfigRouting->ConfigToBlock (\r
- gHiiConfigRouting,\r
- Configuration,\r
- (UINT8 *) &CallbackInfo->HttpBootNvData,\r
- &BufferSize,\r
- Progress\r
- );\r
+ gHiiConfigRouting,\r
+ Configuration,\r
+ (UINT8 *)&CallbackInfo->HttpBootNvData,\r
+ &BufferSize,\r
+ Progress\r
+ );\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
EFI_STATUS\r
EFIAPI\r
HttpBootFormCallback (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN EFI_BROWSER_ACTION Action,\r
- IN EFI_QUESTION_ID QuestionId,\r
- IN UINT8 Type,\r
- IN OUT EFI_IFR_TYPE_VALUE *Value,\r
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN EFI_BROWSER_ACTION Action,\r
+ IN EFI_QUESTION_ID QuestionId,\r
+ IN UINT8 Type,\r
+ IN OUT EFI_IFR_TYPE_VALUE *Value,\r
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
)\r
{\r
- EFI_INPUT_KEY Key;\r
- CHAR16 *Uri;\r
- UINTN UriLen;\r
- CHAR8 *AsciiUri;\r
- HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
- EFI_STATUS Status;\r
+ EFI_INPUT_KEY Key;\r
+ CHAR16 *Uri;\r
+ UINTN UriLen;\r
+ CHAR8 *AsciiUri;\r
+ HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
+ EFI_STATUS Status;\r
\r
Uri = NULL;\r
UriLen = 0;\r
AsciiUri = NULL;\r
Status = EFI_SUCCESS;\r
\r
- if (This == NULL || Value == NULL) {\r
+ if ((This == NULL) || (Value == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
}\r
\r
switch (QuestionId) {\r
- case KEY_INITIATOR_URI:\r
- //\r
- // Get user input URI string\r
- //\r
- Uri = HiiGetString (CallbackInfo->RegisteredHandle, Value->string, NULL);\r
- if(Uri == NULL) {\r
- return EFI_INVALID_PARAMETER;\r
- }\r
-\r
- //\r
- // The URI should be either an empty string (for corporate environment) ,or http(s) for home environment.\r
- // Pop up a message box for the unsupported URI.\r
- //\r
- if (StrLen (Uri) != 0) {\r
- UriLen = StrLen (Uri) + 1;\r
- AsciiUri = AllocateZeroPool (UriLen);\r
- if (AsciiUri == NULL) {\r
- FreePool (Uri);\r
- return EFI_OUT_OF_RESOURCES;\r
+ case KEY_INITIATOR_URI:\r
+ //\r
+ // Get user input URI string\r
+ //\r
+ Uri = HiiGetString (CallbackInfo->RegisteredHandle, Value->string, NULL);\r
+ if (Uri == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
}\r
\r
- UnicodeStrToAsciiStrS (Uri, AsciiUri, UriLen);\r
-\r
- Status = HttpBootCheckUriScheme (AsciiUri);\r
-\r
- if (Status == EFI_INVALID_PARAMETER) {\r
-\r
- DEBUG ((DEBUG_ERROR, "HttpBootFormCallback: %r.\n", Status));\r
-\r
- CreatePopUp (\r
- EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
- &Key,\r
- L"ERROR: Unsupported URI!",\r
- L"Only supports HTTP and HTTPS",\r
- NULL\r
- );\r
- } else if (Status == EFI_ACCESS_DENIED) {\r
-\r
- DEBUG ((DEBUG_ERROR, "HttpBootFormCallback: %r.\n", Status));\r
-\r
- CreatePopUp (\r
- EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
- &Key,\r
- L"ERROR: Unsupported URI!",\r
- L"HTTP is disabled",\r
- NULL\r
- );\r
+ //\r
+ // The URI should be either an empty string (for corporate environment) ,or http(s) for home environment.\r
+ // Pop up a message box for the unsupported URI.\r
+ //\r
+ if (StrLen (Uri) != 0) {\r
+ UriLen = StrLen (Uri) + 1;\r
+ AsciiUri = AllocateZeroPool (UriLen);\r
+ if (AsciiUri == NULL) {\r
+ FreePool (Uri);\r
+ return EFI_OUT_OF_RESOURCES;\r
+ }\r
+\r
+ UnicodeStrToAsciiStrS (Uri, AsciiUri, UriLen);\r
+\r
+ Status = HttpBootCheckUriScheme (AsciiUri);\r
+\r
+ if (Status == EFI_INVALID_PARAMETER) {\r
+ DEBUG ((DEBUG_ERROR, "HttpBootFormCallback: %r.\n", Status));\r
+\r
+ CreatePopUp (\r
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+ &Key,\r
+ L"ERROR: Unsupported URI!",\r
+ L"Only supports HTTP and HTTPS",\r
+ NULL\r
+ );\r
+ } else if (Status == EFI_ACCESS_DENIED) {\r
+ DEBUG ((DEBUG_ERROR, "HttpBootFormCallback: %r.\n", Status));\r
+\r
+ CreatePopUp (\r
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+ &Key,\r
+ L"ERROR: Unsupported URI!",\r
+ L"HTTP is disabled",\r
+ NULL\r
+ );\r
+ }\r
}\r
- }\r
\r
- if (Uri != NULL) {\r
- FreePool (Uri);\r
- }\r
+ if (Uri != NULL) {\r
+ FreePool (Uri);\r
+ }\r
\r
- if (AsciiUri != NULL) {\r
- FreePool (AsciiUri);\r
- }\r
+ if (AsciiUri != NULL) {\r
+ FreePool (AsciiUri);\r
+ }\r
\r
- break;\r
+ break;\r
\r
- default:\r
- break;\r
+ default:\r
+ break;\r
}\r
\r
return Status;\r
**/\r
EFI_STATUS\r
HttpBootConfigFormInit (\r
- IN HTTP_BOOT_PRIVATE_DATA *Private\r
+ IN HTTP_BOOT_PRIVATE_DATA *Private\r
)\r
{\r
- EFI_STATUS Status;\r
- HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
- VENDOR_DEVICE_PATH VendorDeviceNode;\r
- CHAR16 *MacString;\r
- CHAR16 *OldMenuString;\r
- CHAR16 MenuString[128];\r
+ EFI_STATUS Status;\r
+ HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
+ VENDOR_DEVICE_PATH VendorDeviceNode;\r
+ CHAR16 *MacString;\r
+ CHAR16 *OldMenuString;\r
+ CHAR16 MenuString[128];\r
\r
CallbackInfo = &Private->CallbackInfo;\r
\r
SetDevicePathNodeLength (&VendorDeviceNode.Header, sizeof (VENDOR_DEVICE_PATH));\r
CallbackInfo->HiiVendorDevicePath = AppendDevicePathNode (\r
Private->ParentDevicePath,\r
- (EFI_DEVICE_PATH_PROTOCOL *) &VendorDeviceNode\r
+ (EFI_DEVICE_PATH_PROTOCOL *)&VendorDeviceNode\r
);\r
if (CallbackInfo->HiiVendorDevicePath == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
**/\r
EFI_STATUS\r
HttpBootConfigFormUnload (\r
- IN HTTP_BOOT_PRIVATE_DATA *Private\r
+ IN HTTP_BOOT_PRIVATE_DATA *Private\r
)\r
{\r
- HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
+ HTTP_BOOT_FORM_CALLBACK_INFO *CallbackInfo;\r
\r
- if (Private->Ip4Nic != NULL || Private->Ip6Nic != NULL) {\r
+ if ((Private->Ip4Nic != NULL) || (Private->Ip6Nic != NULL)) {\r
//\r
// Only unload the configuration form when both IP4 and IP6 stack are stopped.\r
//\r