12CHAR16 mIp6ConfigStorageName[] = L
"IP6_CONFIG_IFR_NVDATA";
28 *((BOOLEAN *)Context) =
TRUE;
65 if ((Ip6Config ==
NULL) || (Data ==
NULL) || (DataSize ==
NULL)) {
66 return EFI_INVALID_PARAMETER;
70 Status = Ip6Config->GetData (
76 if (Status != EFI_BUFFER_TOO_SMALL) {
82 return EFI_OUT_OF_RESOURCES;
85 Status = Ip6Config->GetData (
91 if (EFI_ERROR (Status)) {
96 *DataSize = BufferSize;
118 NET_LIST_FOR_EACH_SAFE (Entry, NextEntry, ListHead) {
141 CHAR16 FormatString[8];
145 for (Index = 0; Index < 15; Index = Index + 2) {
148 (Ip6->Addr[Index] == 0) &&
149 (Ip6->Addr[Index + 1] == 0)
164 while ((Index < 15) && (Ip6->Addr[Index] == 0) && (Ip6->Addr[Index + 1] == 0)) {
181 if (Ip6->Addr[Index] == 0) {
182 Number =
UnicodeSPrint (Str, 2 * IP6_STR_MAX_SIZE, L
"%x:", (
UINTN)Ip6->Addr[Index + 1]);
184 if (Ip6->Addr[Index + 1] < 0x10) {
192 2 * IP6_STR_MAX_SIZE,
193 (
CONST CHAR16 *)FormatString,
194 (
UINTN)Ip6->Addr[Index],
195 (
UINTN)Ip6->Addr[Index + 1]
201 if (Index + 2 == 16) {
203 if (*(Str - 1) == L
':') {
229 if ((String ==
NULL) || (IfId ==
NULL)) {
230 return EFI_INVALID_PARAMETER;
233 for (Index = 0; Index < 8; Index++) {
236 2 * INTERFACE_ID_STR_STORAGE,
238 (
UINTN)IfId->Id[Index]
240 String = String + Number;
243 *(String - 1) =
'\0';
269 if ((String ==
NULL) || (IfId ==
NULL)) {
270 return EFI_INVALID_PARAMETER;
273 IfIdStr = (CHAR16 *)String;
277 for (Index = 0; Index < 8; Index++) {
280 while ((*IfIdStr != L
'\0') && (*IfIdStr != L
':')) {
288 if ((*IfIdStr ==
':') && (Index == 7)) {
289 return EFI_INVALID_PARAMETER;
297 if (NodeVal > 0xFF) {
298 return EFI_INVALID_PARAMETER;
301 IfId->Id[Index] = (UINT8)NodeVal;
327 IN UINT16 StartLabelNumber,
328 OUT VOID **StartOpCodeHandle,
330 OUT VOID **EndOpCodeHandle,
338 if ((StartOpCodeHandle ==
NULL) || (StartLabel ==
NULL) || (EndOpCodeHandle ==
NULL) || (EndLabel ==
NULL)) {
339 return EFI_INVALID_PARAMETER;
342 *StartOpCodeHandle =
NULL;
343 *EndOpCodeHandle =
NULL;
344 Status = EFI_OUT_OF_RESOURCES;
350 if (*StartOpCodeHandle ==
NULL) {
355 if (*EndOpCodeHandle ==
NULL) {
368 if (InternalStartLabel ==
NULL) {
373 InternalStartLabel->
Number = StartLabelNumber;
384 if (InternalEndLabel ==
NULL) {
389 InternalEndLabel->
Number = LABEL_END;
391 *StartLabel = InternalStartLabel;
392 *EndLabel = InternalEndLabel;
398 if (*StartOpCodeHandle !=
NULL) {
402 if (*EndOpCodeHandle !=
NULL) {
433 IN OUT CHAR16 *String,
435 IN IP6_CONFIG_NV_ADDRESS_TYPE AddressType,
436 IN VOID *AddressInfo,
444 VOID *StartOpCodeHandle;
446 VOID *EndOpCodeHandle;
448 UINT16 StartLabelNumber;
449 EFI_STRING_ID TextTwo;
454 if ((String ==
NULL) || (HiiHandle ==
NULL) || (AddressInfo ==
NULL)) {
455 return EFI_INVALID_PARAMETER;
458 if (AddressType == Ip6ConfigNvHostAddress) {
459 StartLabelNumber = HOST_ADDRESS_LABEL;
460 }
else if (AddressType == Ip6ConfigNvGatewayAddress) {
461 StartLabelNumber = GATEWAY_ADDRESS_LABEL;
462 }
else if (AddressType == Ip6ConfigNvDnsAddress) {
463 StartLabelNumber = DNS_ADDRESS_LABEL;
464 }
else if (AddressType == Ip6ConfigNvRouteTable) {
465 StartLabelNumber = ROUTE_TABLE_LABEL;
468 return EFI_UNSUPPORTED;
478 if (EFI_ERROR (Status)) {
482 AddressHead = (UINT8 *)AddressInfo;
484 for (Index = 0; Index < AddressCount; Index++) {
485 if (AddressType == Ip6ConfigNvHostAddress) {
488 }
else if (AddressType == Ip6ConfigNvRouteTable) {
493 Address = AddressInfo;
500 TempStr = String +
StrLen (String);
502 if ((AddressType == Ip6ConfigNvHostAddress) || (AddressType == Ip6ConfigNvRouteTable)) {
503 if (AddressType == Ip6ConfigNvHostAddress) {
515 TempStr = TempStr + Number;
518 if (AddressType == Ip6ConfigNvRouteTable) {
523 TempStr = TempStr + Number;
529 TempStr = TempStr +
StrLen (TempStr);
537 Status = EFI_INVALID_PARAMETER;
544 *String = IP6_ADDRESS_DELIMITER;
548 *(String - 1) =
'\0';
552 &gIp6ConfigNvDataGuid,
582 OUT UINT32 *AddressCount
594 if ((String ==
NULL) || (ListHead ==
NULL) || (AddressCount ==
NULL)) {
595 return EFI_INVALID_PARAMETER;
600 if (LocalString ==
NULL) {
601 return EFI_OUT_OF_RESOURCES;
613 while (*LocalString != L
'\0') {
614 TempStr = LocalString;
615 while ((*LocalString != L
'\0') && (*LocalString != IP6_ADDRESS_DELIMITER)) {
619 if (*LocalString == L
'\0') {
623 *LocalString = L
'\0';
626 if (EFI_ERROR (Status)) {
635 Status = EFI_INVALID_PARAMETER;
641 Status = EFI_OUT_OF_RESOURCES;
657 *AddressCount = Count;
691 CHAR16 PortString[ADDRESS_STR_MAX_SIZE];
692 CHAR16 FormatString[8];
693 EFI_STRING_ID StringId;
695 if ((IfInfo ==
NULL) || (HiiHandle ==
NULL) || (IfrNvData ==
NULL)) {
696 return EFI_INVALID_PARAMETER;
709 return EFI_OUT_OF_RESOURCES;
715 if (IfInfo->IfType == Ip6InterfaceTypeEthernet) {
716 CopyMem (PortString, IP6_ETHERNET,
sizeof (IP6_ETHERNET));
717 }
else if (IfInfo->IfType == Ip6InterfaceTypeExperimentalEthernet) {
718 CopyMem (PortString, IP6_EXPERIMENTAL_ETHERNET,
sizeof (IP6_EXPERIMENTAL_ETHERNET));
733 return EFI_OUT_OF_RESOURCES;
740 ASSERT (IfInfo->HwAddressSize <= 32);
742 for (Index = 0; Index < IfInfo->HwAddressSize; Index++) {
743 if (IfInfo->HwAddress.Addr[Index] < 0x10) {
744 CopyMem (FormatString, L
"0%x-",
sizeof (L
"0%x-"));
746 CopyMem (FormatString, L
"%x-",
sizeof (L
"%x-"));
752 (
CONST CHAR16 *)FormatString,
753 (
UINTN)IfInfo->HwAddress.Addr[Index]
755 String = String + Number;
759 ASSERT (String > PortString);
774 return EFI_OUT_OF_RESOURCES;
796 IN IP6_CONFIG_NV_ADDRESS_TYPE AddressType,
797 OUT VOID **AddressInfo,
811 if ((Instance ==
NULL) || (AddressInfo ==
NULL) || (AddressSize ==
NULL)) {
812 return EFI_INVALID_PARAMETER;
815 NET_CHECK_SIGNATURE (Instance, IP6_CONFIG_INSTANCE_SIGNATURE);
817 Ip6NvData = &Instance->Ip6NvData;
819 if (AddressType == Ip6ConfigNvHostAddress) {
822 }
else if (AddressType == Ip6ConfigNvGatewayAddress) {
825 }
else if (AddressType == Ip6ConfigNvDnsAddress) {
829 return EFI_UNSUPPORTED;
833 if (AddressList ==
NULL) {
834 return EFI_OUT_OF_RESOURCES;
837 TmpStr = AddressList;
839 NET_LIST_FOR_EACH (Entry, ListHead) {
841 if (AddressType == Ip6ConfigNvHostAddress) {
843 IP6_COPY_ADDRESS (&ManualAddress->
Address, &Node->AddrInfo.
Address);
848 IP6_COPY_ADDRESS (Ip6Address, &Node->AddrInfo.
Address);
853 *AddressInfo = TmpStr;
854 *AddressSize = DataSize;
885 if ((IfrNvData ==
NULL) || (Instance ==
NULL)) {
886 return EFI_INVALID_PARAMETER;
889 NET_CHECK_SIGNATURE (Instance, IP6_CONFIG_INSTANCE_SIGNATURE);
891 Ip6Config = &Instance->Ip6Config;
892 Ip6NvData = &Instance->Ip6NvData;
895 HiiHandle = Instance->CallbackInfo.RegisteredHandle;
906 if (EFI_ERROR (Status)) {
918 if (EFI_ERROR (Status)) {
927 Status = Ip6Config->GetData (
933 if (EFI_ERROR (Status)) {
943 Status = Ip6Config->GetData (
950 if (EFI_ERROR (Status)) {
955 IfrNvData->Policy = IP6_POLICY_MANUAL;
957 IfrNvData->Policy = IP6_POLICY_AUTO;
960 Status = EFI_UNSUPPORTED;
968 Status = Ip6Config->GetData (
975 if (EFI_ERROR (Status)) {
1011 if ((IfrNvData ==
NULL) || (Instance ==
NULL)) {
1012 return EFI_INVALID_PARAMETER;
1015 NET_CHECK_SIGNATURE (Instance, IP6_CONFIG_INSTANCE_SIGNATURE);
1016 Ip6NvData = &Instance->Ip6NvData;
1017 Ip6Config = &Instance->Ip6Config;
1022 if (IfrNvData->Policy == IP6_POLICY_AUTO) {
1024 }
else if (IfrNvData->Policy == IP6_POLICY_MANUAL) {
1033 Status = Ip6Config->SetData (
1039 if (EFI_ERROR (Status)) {
1046 Status = Ip6Config->SetData (
1052 if (EFI_ERROR (Status)) {
1059 Status = Ip6Config->SetData (
1065 if (EFI_ERROR (Status)) {
1095 BOOLEAN IsAddressOk;
1100 if ((IfrNvData ==
NULL) || (Instance ==
NULL)) {
1101 return EFI_INVALID_PARAMETER;
1104 if (IfrNvData->Policy == IP6_POLICY_AUTO) {
1108 NET_CHECK_SIGNATURE (Instance, IP6_CONFIG_INSTANCE_SIGNATURE);
1109 Ip6NvData = &Instance->Ip6NvData;
1110 Ip6Config = &Instance->Ip6Config;
1120 Status = Ip6Config->SetData (
1126 if (EFI_ERROR (Status)) {
1133 SetAddressEvent =
NULL;
1134 TimeoutEvent =
NULL;
1135 ManualAddress =
NULL;
1138 Status =
gBS->CreateEvent (
1145 if (EFI_ERROR (Status)) {
1149 Status =
gBS->CreateEvent (
1156 if (EFI_ERROR (Status)) {
1166 Ip6ConfigNvHostAddress,
1167 (VOID **)&ManualAddress,
1170 if (EFI_ERROR (Status)) {
1174 IsAddressOk =
FALSE;
1176 Status = Ip6Config->RegisterDataNotify (
1181 if (EFI_ERROR (Status)) {
1185 Status = Ip6Config->SetData (
1189 (VOID *)ManualAddress
1191 if (Status == EFI_NOT_READY) {
1193 while (EFI_ERROR (
gBS->CheckEvent (TimeoutEvent))) {
1202 Status = Ip6Config->UnregisterDataNotify (
1207 if (EFI_ERROR (Status)) {
1218 Ip6ConfigNvGatewayAddress,
1222 if (EFI_ERROR (Status)) {
1226 Status = Ip6Config->SetData (
1232 if (EFI_ERROR (Status)) {
1246 Ip6ConfigNvDnsAddress,
1250 if (EFI_ERROR (Status)) {
1254 Status = Ip6Config->SetData (
1260 if (EFI_ERROR (Status)) {
1268 if (SetAddressEvent !=
NULL) {
1269 gBS->CloseEvent (SetAddressEvent);
1272 if (TimeoutEvent !=
NULL) {
1273 gBS->CloseEvent (TimeoutEvent);
1276 if (ManualAddress !=
NULL) {
1280 if (Address !=
NULL) {
1354 OUT EFI_STRING *Progress,
1355 OUT EFI_STRING *Results
1362 EFI_STRING ConfigRequestHdr;
1363 EFI_STRING ConfigRequest;
1364 BOOLEAN AllocatedRequest;
1368 if ((This ==
NULL) || (Progress ==
NULL) || (Results ==
NULL)) {
1369 return EFI_INVALID_PARAMETER;
1372 *Progress = Request;
1373 if ((Request !=
NULL) &&
1376 return EFI_NOT_FOUND;
1379 ConfigRequestHdr =
NULL;
1380 ConfigRequest =
NULL;
1381 AllocatedRequest =
FALSE;
1384 Private = IP6_FORM_CALLBACK_INFO_FROM_CONFIG_ACCESS (This);
1385 Ip6ConfigInstance = IP6_CONFIG_INSTANCE_FROM_FORM_CALLBACK (Private);
1389 if (IfrNvData ==
NULL) {
1390 return EFI_OUT_OF_RESOURCES;
1394 if (EFI_ERROR (Status)) {
1398 ConfigRequest = Request;
1399 if ((Request ==
NULL) || (
StrStr (Request, L
"OFFSET") ==
NULL)) {
1406 &gIp6ConfigNvDataGuid,
1407 mIp6ConfigStorageName,
1408 Private->ChildHandle
1410 Size = (
StrLen (ConfigRequestHdr) + 32 + 1) *
sizeof (CHAR16);
1412 ASSERT (ConfigRequest !=
NULL);
1413 AllocatedRequest =
TRUE;
1417 L
"%s&OFFSET=0&WIDTH=%016LX",
1441 if (AllocatedRequest) {
1443 ConfigRequest =
NULL;
1449 if (Request ==
NULL) {
1451 }
else if (
StrStr (Request, L
"OFFSET") ==
NULL) {
1452 *Progress = Request +
StrLen (Request);
1495 IN CONST EFI_STRING Configuration,
1496 OUT EFI_STRING *Progress
1499 if ((This ==
NULL) || (Configuration ==
NULL) || (Progress ==
NULL)) {
1500 return EFI_INVALID_PARAMETER;
1508 *Progress = Configuration;
1509 return EFI_NOT_FOUND;
1512 *Progress = Configuration +
StrLen (Configuration);
1537 CHAR16 PortString[ADDRESS_STR_MAX_SIZE];
1540 Ip6Config = &Instance->Ip6Config;
1541 HiiHandle = Instance->CallbackInfo.RegisteredHandle;
1553 if (EFI_ERROR (Status)) {
1564 Ip6ConfigNvHostAddress,
1568 if (EFI_ERROR (Status)) {
1579 Ip6ConfigNvRouteTable,
1583 if (EFI_ERROR (Status)) {
1600 if (EFI_ERROR (Status) && (Status != EFI_NOT_FOUND)) {
1615 Ip6ConfigNvDnsAddress,
1619 if (EFI_ERROR (Status)) {
1640 if (EFI_ERROR (Status) && (Status != EFI_NOT_FOUND)) {
1655 Ip6ConfigNvGatewayAddress,
1659 if (EFI_ERROR (Status)) {
1703 IN EFI_BROWSER_ACTION Action,
1704 IN EFI_QUESTION_ID QuestionId,
1707 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
1719 return EFI_INVALID_PARAMETER;
1722 Private = IP6_FORM_CALLBACK_INFO_FROM_CONFIG_ACCESS (This);
1723 Instance = IP6_CONFIG_INSTANCE_FROM_FORM_CALLBACK (Private);
1724 Ip6NvData = &Instance->Ip6NvData;
1726 if ((Action == EFI_BROWSER_ACTION_FORM_OPEN) || (Action == EFI_BROWSER_ACTION_FORM_CLOSE)) {
1730 if ((Action != EFI_BROWSER_ACTION_CHANGING) && (Action != EFI_BROWSER_ACTION_CHANGED)) {
1731 return EFI_UNSUPPORTED;
1734 if ((Value ==
NULL) || (ActionRequest ==
NULL)) {
1735 return EFI_INVALID_PARAMETER;
1744 if (IfrNvData ==
NULL) {
1745 return EFI_OUT_OF_RESOURCES;
1752 if (Action == EFI_BROWSER_ACTION_CHANGING) {
1753 switch (QuestionId) {
1754 case KEY_GET_CURRENT_SETTING:
1761 }
else if (Action == EFI_BROWSER_ACTION_CHANGED) {
1762 switch (QuestionId) {
1763 case KEY_SAVE_CONFIG_CHANGES:
1765 if (EFI_ERROR (Status)) {
1771 *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;
1774 case KEY_IGNORE_CONFIG_CHANGES:
1783 *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
1786 case KEY_SAVE_CHANGES:
1788 if (EFI_ERROR (Status)) {
1792 *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;
1795 case KEY_INTERFACE_ID:
1797 if (EFI_ERROR (Status)) {
1799 EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
1801 L
"Invalid Interface ID!",
1808 case KEY_MANUAL_ADDRESS:
1814 if (EFI_ERROR (Status)) {
1816 EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
1818 L
"Invalid Host Addresses!",
1825 case KEY_GATEWAY_ADDRESS:
1831 if (EFI_ERROR (Status)) {
1833 EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
1835 L
"Invalid Gateway Addresses!",
1842 case KEY_DNS_ADDRESS:
1848 if (EFI_ERROR (Status)) {
1850 EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
1852 L
"Invalid DNS Addresses!",
1864 if (!EFI_ERROR (Status)) {
1898 CHAR16 MenuString[128];
1899 CHAR16 PortString[128];
1900 CHAR16 *OldMenuString;
1903 IpSb = IP6_SERVICE_FROM_IP6_CONFIG_INSTANCE (Instance);
1904 ASSERT (IpSb !=
NULL);
1906 Status =
gBS->HandleProtocol (
1908 &gEfiDevicePathProtocolGuid,
1909 (VOID **)&ParentDevicePath
1911 if (EFI_ERROR (Status)) {
1915 CallbackInfo = &Instance->CallbackInfo;
1916 CallbackInfo->Signature = IP6_FORM_CALLBACK_INFO_SIGNATURE;
1934 if (CallbackInfo->HiiVendorDevicePath ==
NULL) {
1935 Status = EFI_OUT_OF_RESOURCES;
1939 ConfigAccess = &CallbackInfo->HiiConfigAccess;
1947 Status =
gBS->InstallMultipleProtocolInterfaces (
1948 &CallbackInfo->ChildHandle,
1949 &gEfiDevicePathProtocolGuid,
1950 CallbackInfo->HiiVendorDevicePath,
1951 &gEfiHiiConfigAccessProtocolGuid,
1955 if (!EFI_ERROR (Status)) {
1959 Status =
gBS->OpenProtocol (
1961 &gEfiManagedNetworkServiceBindingProtocolGuid,
1964 CallbackInfo->ChildHandle,
1965 EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
1969 if (EFI_ERROR (Status)) {
1977 &gIp6ConfigNvDataGuid,
1978 CallbackInfo->ChildHandle,
1983 if (CallbackInfo->RegisteredHandle ==
NULL) {
1984 Status = EFI_OUT_OF_RESOURCES;
1992 if (!EFI_ERROR (Status)) {
1994 CallbackInfo->RegisteredHandle,
1999 UnicodeSPrint (MenuString, 128, L
"%s (MAC:%s)", OldMenuString, MacString);
2001 CallbackInfo->RegisteredHandle,
2008 CallbackInfo->RegisteredHandle,
2044 IpSb = IP6_SERVICE_FROM_IP6_CONFIG_INSTANCE (Instance);
2045 ASSERT (IpSb !=
NULL);
2047 CallbackInfo = &Instance->CallbackInfo;
2049 if (CallbackInfo->ChildHandle !=
NULL) {
2053 gBS->CloseProtocol (
2055 &gEfiManagedNetworkServiceBindingProtocolGuid,
2057 CallbackInfo->ChildHandle
2062 gBS->UninstallMultipleProtocolInterfaces (
2063 CallbackInfo->ChildHandle,
2064 &gEfiDevicePathProtocolGuid,
2065 CallbackInfo->HiiVendorDevicePath,
2066 &gEfiHiiConfigAccessProtocolGuid,
2067 &CallbackInfo->HiiConfigAccess,
2072 if (CallbackInfo->HiiVendorDevicePath !=
NULL) {
2073 FreePool (CallbackInfo->HiiVendorDevicePath);
2076 if (CallbackInfo->RegisteredHandle !=
NULL) {
2083 Ip6NvData = &Instance->Ip6NvData;
UINTN EFIAPI StrSize(IN CONST CHAR16 *String)
BOOLEAN EFIAPI IsListEmpty(IN CONST LIST_ENTRY *ListHead)
UINTN EFIAPI StrHexToUintn(IN CONST CHAR16 *String)
LIST_ENTRY *EFIAPI RemoveEntryList(IN CONST LIST_ENTRY *Entry)
LIST_ENTRY *EFIAPI InitializeListHead(IN OUT LIST_ENTRY *ListHead)
UINTN EFIAPI StrLen(IN CONST CHAR16 *String)
CHAR16 *EFIAPI StrStr(IN CONST CHAR16 *String, IN CONST CHAR16 *SearchString)
LIST_ENTRY *EFIAPI InsertTailList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
GUID *EFIAPI CopyGuid(OUT GUID *DestinationGuid, IN CONST GUID *SourceGuid)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
#define HARDWARE_DEVICE_PATH
UINT16 EFIAPI SetDevicePathNodeLength(IN OUT VOID *Node, IN UINTN Length)
EFI_DEVICE_PATH_PROTOCOL *EFIAPI AppendDevicePathNode(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL, IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathNode OPTIONAL)
VOID *EFIAPI AllocateZeroPool(IN UINTN AllocationSize)
VOID EFIAPI FreePool(IN VOID *Buffer)
VOID *EFIAPI AllocateCopyPool(IN UINTN AllocationSize, IN CONST VOID *Buffer)
EFI_STRING EFIAPI HiiConstructConfigHdr(IN CONST EFI_GUID *Guid OPTIONAL, IN CONST CHAR16 *Name OPTIONAL, IN EFI_HANDLE DriverHandle)
BOOLEAN EFIAPI HiiGetBrowserData(IN CONST EFI_GUID *VariableGuid OPTIONAL, IN CONST CHAR16 *VariableName OPTIONAL, IN UINTN BufferSize, OUT UINT8 *Buffer)
VOID *EFIAPI HiiAllocateOpCodeHandle(VOID)
VOID EFIAPI HiiFreeOpCodeHandle(VOID *OpCodeHandle)
EFI_HII_HANDLE EFIAPI HiiAddPackages(IN CONST EFI_GUID *PackageListGuid, IN EFI_HANDLE DeviceHandle OPTIONAL,...)
UINT8 *EFIAPI HiiCreateGuidOpCode(IN VOID *OpCodeHandle, IN CONST EFI_GUID *Guid, IN CONST VOID *GuidOpCode OPTIONAL, IN UINTN OpCodeSize)
BOOLEAN EFIAPI HiiSetBrowserData(IN CONST EFI_GUID *VariableGuid OPTIONAL, IN CONST CHAR16 *VariableName OPTIONAL, IN UINTN BufferSize, IN CONST UINT8 *Buffer, IN CONST CHAR16 *RequestElement OPTIONAL)
EFI_STRING EFIAPI HiiGetString(IN EFI_HII_HANDLE HiiHandle, IN EFI_STRING_ID StringId, IN CONST CHAR8 *Language OPTIONAL)
EFI_STATUS EFIAPI HiiUpdateForm(IN EFI_HII_HANDLE HiiHandle, IN EFI_GUID *FormSetGuid OPTIONAL, IN EFI_FORM_ID FormId, IN VOID *StartOpCodeHandle, IN VOID *EndOpCodeHandle OPTIONAL)
BOOLEAN EFIAPI HiiIsConfigHdrMatch(IN CONST EFI_STRING ConfigHdr, IN CONST EFI_GUID *Guid OPTIONAL, IN CONST CHAR16 *Name OPTIONAL)
EFI_STRING_ID EFIAPI HiiSetString(IN EFI_HII_HANDLE HiiHandle, IN EFI_STRING_ID StringId OPTIONAL, IN CONST EFI_STRING String, IN CONST CHAR8 *SupportedLanguages OPTIONAL)
UINT8 *EFIAPI HiiCreateTextOpCode(IN VOID *OpCodeHandle, IN EFI_STRING_ID Prompt, IN EFI_STRING_ID Help, IN EFI_STRING_ID TextTwo)
VOID EFIAPI HiiRemovePackages(IN EFI_HII_HANDLE HiiHandle)
@ Ip6ConfigDataTypeDupAddrDetectTransmits
@ Ip6ConfigDataTypeGateway
@ Ip6ConfigDataTypeAltInterfaceId
@ Ip6ConfigDataTypeManualAddress
@ Ip6ConfigDataTypeInterfaceInfo
@ Ip6ConfigDataTypePolicy
@ Ip6ConfigDataTypeDnsServer
@ Ip6ConfigPolicyAutomatic
EFI_STATUS Ip6ConvertInterfaceInfoToString(IN EFI_IP6_CONFIG_INTERFACE_INFO *IfInfo, IN EFI_HII_HANDLE HiiHandle, IN OUT IP6_CONFIG_IFR_NVDATA *IfrNvData)
EFI_STATUS Ip6ConfigFormInit(IN OUT IP6_CONFIG_INSTANCE *Instance)
EFI_STATUS Ip6BuildNvAddressInfo(IN IP6_CONFIG_INSTANCE *Instance, IN IP6_CONFIG_NV_ADDRESS_TYPE AddressType, OUT VOID **AddressInfo, OUT UINTN *AddressSize)
VOID Ip6ToStr(IN EFI_IPv6_ADDRESS *Ip6, OUT CHAR16 *Str)
EFI_STATUS Ip6ConvertInterfaceIdToString(OUT CHAR16 *String, IN EFI_IP6_CONFIG_INTERFACE_ID *IfId)
EFI_STATUS Ip6ConvertIfrNvDataToConfigNvDataAdvanced(IN IP6_CONFIG_IFR_NVDATA *IfrNvData, IN OUT IP6_CONFIG_INSTANCE *Instance)
EFI_STATUS Ip6GetCurrentSetting(IN IP6_CONFIG_INSTANCE *Instance)
EFI_STATUS EFIAPI Ip6FormCallback(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
EFI_STATUS EFIAPI Ip6FormExtractConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
EFI_STATUS Ip6ConvertIfrNvDataToConfigNvDataGeneral(IN IP6_CONFIG_IFR_NVDATA *IfrNvData, IN OUT IP6_CONFIG_INSTANCE *Instance)
EFI_STATUS Ip6ParseInterfaceIdFromString(IN CONST CHAR16 *String, OUT EFI_IP6_CONFIG_INTERFACE_ID *IfId)
EFI_STATUS Ip6CreateOpCode(IN UINT16 StartLabelNumber, OUT VOID **StartOpCodeHandle, OUT EFI_IFR_GUID_LABEL **StartLabel, OUT VOID **EndOpCodeHandle, OUT EFI_IFR_GUID_LABEL **EndLabel)
EFI_STATUS Ip6ConvertConfigNvDataToIfrNvData(IN OUT IP6_CONFIG_IFR_NVDATA *IfrNvData, IN IP6_CONFIG_INSTANCE *Instance)
VOID EFIAPI Ip6ConfigManualAddressNotify(IN EFI_EVENT Event, IN VOID *Context)
VOID Ip6ConfigFormUnload(IN OUT IP6_CONFIG_INSTANCE *Instance)
EFI_STATUS Ip6ConvertAddressListToString(IN OUT CHAR16 *String, IN EFI_HII_HANDLE HiiHandle, IN IP6_CONFIG_NV_ADDRESS_TYPE AddressType, IN VOID *AddressInfo, IN UINTN AddressCount)
EFI_STATUS Ip6ParseAddressListFromString(IN CONST CHAR16 *String, OUT LIST_ENTRY *ListHead, OUT UINT32 *AddressCount)
EFI_STATUS Ip6ConfigNvGetData(IN EFI_IP6_CONFIG_PROTOCOL *Ip6Config, IN EFI_IP6_CONFIG_DATA_TYPE DataType, OUT UINTN *DataSize, OUT VOID **Data)
EFI_STATUS EFIAPI Ip6FormRouteConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
VOID Ip6FreeAddressInfoList(IN LIST_ENTRY *ListHead)
#define EFI_IFR_EXTEND_OP_LABEL
UINTN EFIAPI UnicodeSPrint(OUT CHAR16 *StartOfBuffer, IN UINTN BufferSize, IN CONST CHAR16 *FormatString,...)
EFI_STATUS EFIAPI NetLibGetMacString(IN EFI_HANDLE ServiceHandle, IN EFI_HANDLE ImageHandle OPTIONAL, OUT CHAR16 **MacString)
BOOLEAN EFIAPI NetIp6IsValidUnicast(IN EFI_IPv6_ADDRESS *Ip6)
EFI_STATUS EFIAPI NetLibStrToIp6andPrefix(IN CONST CHAR16 *String, OUT EFI_IPv6_ADDRESS *Ip6Address, OUT UINT8 *PrefixLength)
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
VOID EFIAPI Exit(IN EFI_STATUS Status)
IPv6_ADDRESS EFI_IPv6_ADDRESS
EFI_HII_CONFIG_ROUTING_PROTOCOL * gHiiConfigRouting
VOID EFIAPI CreatePopUp(IN UINTN Attribute, OUT EFI_INPUT_KEY *Key OPTIONAL,...)
UINT8 PrefixLength
The length of the prefix associated with the Address.
EFI_IPv6_ADDRESS Address
The IPv6 address.
UINT32 DupAddrDetectTransmits
The number of consecutive Neighbor Solicitation messages sent.
EFI_IP6_ROUTE_TABLE * RouteTable
EFI_IP6_ADDRESS_INFO * AddressInfo
UINT8 PrefixLength
The length, in bits, of the prefix associated with this Address.
EFI_IPv6_ADDRESS Address
The IPv6 unicast address.
CHAR16 DnsAddress[ADDRESS_STR_MAX_SIZE]
DNS server address.
CHAR16 GatewayAddress[ADDRESS_STR_MAX_SIZE]
Gateway address.
CHAR16 InterfaceId[INTERFACE_ID_STR_STORAGE]
alternative interface id
CHAR16 ManualAddress[ADDRESS_STR_MAX_SIZE]
IP addresses.
EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS DadTransmitCount
dad transmits count
UINT32 ManualAddressCount
IP addresses count.
LIST_ENTRY DnsAddress
DNS server address.
UINT32 GatewayAddressCount
Gateway address count.
LIST_ENTRY GatewayAddress
Gateway address.
EFI_IP6_CONFIG_INTERFACE_ID InterfaceId
alternative interface id
LIST_ENTRY ManualAddress
IP addresses.
EFI_IP6_CONFIG_POLICY Policy
manual or automatic
UINT32 DnsAddressCount
DNS server address count.