\r
#include "VlanConfigImpl.h"\r
\r
-CHAR16 mVlanStorageName[] = L"VlanNvData";\r
-EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting = NULL;\r
+CHAR16 mVlanStorageName[] = L"VlanNvData";\r
+EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting = NULL;\r
\r
-VLAN_CONFIG_PRIVATE_DATA mVlanConfigPrivateDateTemplate = {\r
+VLAN_CONFIG_PRIVATE_DATA mVlanConfigPrivateDateTemplate = {\r
VLAN_CONFIG_PRIVATE_DATA_SIGNATURE,\r
{\r
VlanExtractConfig,\r
}\r
};\r
\r
-VENDOR_DEVICE_PATH mHiiVendorDevicePathNode = {\r
+VENDOR_DEVICE_PATH mHiiVendorDevicePathNode = {\r
{\r
HARDWARE_DEVICE_PATH,\r
HW_VENDOR_DP,\r
{\r
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),\r
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
}\r
},\r
VLAN_CONFIG_FORM_SET_GUID\r
EFI_STATUS\r
EFIAPI\r
VlanExtractConfig (\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
- VLAN_CONFIGURATION Configuration;\r
+ EFI_STATUS Status;\r
+ UINTN BufferSize;\r
+ VLAN_CONFIGURATION Configuration;\r
VLAN_CONFIG_PRIVATE_DATA *PrivateData;\r
- EFI_STRING ConfigRequestHdr;\r
- EFI_STRING ConfigRequest;\r
- BOOLEAN AllocatedRequest;\r
- UINTN Size;\r
+ EFI_STRING ConfigRequestHdr;\r
+ EFI_STRING ConfigRequest;\r
+ BOOLEAN AllocatedRequest;\r
+ UINTN Size;\r
\r
- if (Progress == NULL || Results == NULL) {\r
+ if ((Progress == NULL) || (Results == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
// Retrieve the pointer to the UEFI HII Config Routing Protocol\r
//\r
if (mHiiConfigRouting == NULL) {\r
- gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **) &mHiiConfigRouting);\r
+ gBS->LocateProtocol (&gEfiHiiConfigRoutingProtocolGuid, NULL, (VOID **)&mHiiConfigRouting);\r
}\r
+\r
ASSERT (mHiiConfigRouting != NULL);\r
\r
//\r
//\r
PrivateData = VLAN_CONFIG_PRIVATE_DATA_FROM_THIS (This);\r
ZeroMem (&Configuration, sizeof (VLAN_CONFIGURATION));\r
- BufferSize = sizeof (Configuration);\r
+ BufferSize = sizeof (Configuration);\r
ConfigRequest = Request;\r
if ((Request == NULL) || (StrStr (Request, L"OFFSET") == NULL)) {\r
//\r
// followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator\r
//\r
ConfigRequestHdr = HiiConstructConfigHdr (&gVlanConfigFormSetGuid, mVlanStorageName, PrivateData->DriverHandle);\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
ASSERT (ConfigRequest != NULL);\r
AllocatedRequest = TRUE;\r
UnicodeSPrint (ConfigRequest, Size, L"%s&OFFSET=0&WIDTH=%016LX", ConfigRequestHdr, (UINT64)BufferSize);\r
Status = mHiiConfigRouting->BlockToConfig (\r
mHiiConfigRouting,\r
ConfigRequest,\r
- (UINT8 *) &Configuration,\r
+ (UINT8 *)&Configuration,\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
return Status;\r
}\r
\r
-\r
/**\r
This function processes the results of changes in configuration.\r
\r
EFI_STATUS\r
EFIAPI\r
VlanRouteConfig (\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
- if (Configuration == NULL || Progress == NULL) {\r
+ if ((Configuration == NULL) || (Progress == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
VlanCallback (\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 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 EFI_IFR_TYPE_VALUE *Value,\r
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
)\r
{\r
VLAN_CONFIG_PRIVATE_DATA *PrivateData;\r
//\r
Configuration = AllocateZeroPool (sizeof (VLAN_CONFIGURATION));\r
ASSERT (Configuration != NULL);\r
- HiiGetBrowserData (&gVlanConfigFormSetGuid, mVlanStorageName, sizeof (VLAN_CONFIGURATION), (UINT8 *) Configuration);\r
+ HiiGetBrowserData (&gVlanConfigFormSetGuid, mVlanStorageName, sizeof (VLAN_CONFIGURATION), (UINT8 *)Configuration);\r
\r
VlanConfig = PrivateData->VlanConfig;\r
\r
if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
switch (QuestionId) {\r
- case VLAN_ADD_QUESTION_ID:\r
- //\r
- // Add a VLAN\r
- //\r
- VlanConfig->Set (VlanConfig, Configuration->VlanId, Configuration->Priority);\r
- VlanUpdateForm (PrivateData);\r
-\r
- //\r
- // Connect the newly created VLAN device\r
- //\r
- VlanHandle = NetLibGetVlanHandle (PrivateData->ControllerHandle, Configuration->VlanId);\r
- if (VlanHandle == NULL) {\r
+ case VLAN_ADD_QUESTION_ID:\r
+ //\r
+ // Add a VLAN\r
//\r
- // There may be no child handle created for VLAN ID 0, connect the parent handle\r
+ VlanConfig->Set (VlanConfig, Configuration->VlanId, Configuration->Priority);\r
+ VlanUpdateForm (PrivateData);\r
+\r
+ //\r
+ // Connect the newly created VLAN device\r
//\r
- VlanHandle = PrivateData->ControllerHandle;\r
- }\r
- gBS->ConnectController (VlanHandle, NULL, NULL, TRUE);\r
-\r
- //\r
- // Clear UI data\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
- Configuration->VlanId = 0;\r
- Configuration->Priority = 0;\r
- break;\r
-\r
- case VLAN_REMOVE_QUESTION_ID:\r
- //\r
- // Remove VLAN\r
- //\r
- ASSERT (PrivateData->NumberOfVlan <= MAX_VLAN_NUMBER);\r
- for (Index = 0; Index < PrivateData->NumberOfVlan; Index++) {\r
- if (Configuration->VlanList[Index] != 0) {\r
+ VlanHandle = NetLibGetVlanHandle (PrivateData->ControllerHandle, Configuration->VlanId);\r
+ if (VlanHandle == NULL) {\r
//\r
- // Checkbox is selected, need remove this VLAN\r
+ // There may be no child handle created for VLAN ID 0, connect the parent handle\r
//\r
- VlanConfig->Remove (VlanConfig, PrivateData->VlanId[Index]);\r
+ VlanHandle = PrivateData->ControllerHandle;\r
}\r
- }\r
\r
- VlanUpdateForm (PrivateData);\r
- if (PrivateData->NumberOfVlan == 0) {\r
+ gBS->ConnectController (VlanHandle, NULL, NULL, TRUE);\r
+\r
//\r
- // No VLAN device now, connect the physical NIC handle.\r
- // Note: PrivateData->NumberOfVlan has been updated by VlanUpdateForm()\r
+ // Clear UI data\r
//\r
- gBS->ConnectController (PrivateData->ControllerHandle, NULL, NULL, TRUE);\r
- }\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
+ Configuration->VlanId = 0;\r
+ Configuration->Priority = 0;\r
+ break;\r
+\r
+ case VLAN_REMOVE_QUESTION_ID:\r
+ //\r
+ // Remove VLAN\r
+ //\r
+ ASSERT (PrivateData->NumberOfVlan <= MAX_VLAN_NUMBER);\r
+ for (Index = 0; Index < PrivateData->NumberOfVlan; Index++) {\r
+ if (Configuration->VlanList[Index] != 0) {\r
+ //\r
+ // Checkbox is selected, need remove this VLAN\r
+ //\r
+ VlanConfig->Remove (VlanConfig, PrivateData->VlanId[Index]);\r
+ }\r
+ }\r
+\r
+ VlanUpdateForm (PrivateData);\r
+ if (PrivateData->NumberOfVlan == 0) {\r
+ //\r
+ // No VLAN device now, connect the physical NIC handle.\r
+ // Note: PrivateData->NumberOfVlan has been updated by VlanUpdateForm()\r
+ //\r
+ gBS->ConnectController (PrivateData->ControllerHandle, NULL, NULL, TRUE);\r
+ }\r
\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
- ZeroMem (Configuration->VlanList, MAX_VLAN_NUMBER);\r
- break;\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
+ ZeroMem (Configuration->VlanList, MAX_VLAN_NUMBER);\r
+ break;\r
\r
- default:\r
- break;\r
+ default:\r
+ break;\r
}\r
} else if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
switch (QuestionId) {\r
- case VLAN_UPDATE_QUESTION_ID:\r
- //\r
- // Update current VLAN list into Form.\r
- //\r
- VlanUpdateForm (PrivateData);\r
- break;\r
-\r
- default:\r
- break;\r
+ case VLAN_UPDATE_QUESTION_ID:\r
+ //\r
+ // Update current VLAN list into Form.\r
+ //\r
+ VlanUpdateForm (PrivateData);\r
+ break;\r
+\r
+ default:\r
+ break;\r
}\r
}\r
\r
- HiiSetBrowserData (&gVlanConfigFormSetGuid, mVlanStorageName, sizeof (VLAN_CONFIGURATION), (UINT8 *) Configuration, NULL);\r
+ HiiSetBrowserData (&gVlanConfigFormSetGuid, mVlanStorageName, sizeof (VLAN_CONFIGURATION), (UINT8 *)Configuration, NULL);\r
FreePool (Configuration);\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
This function update VLAN list in the VLAN configuration Form.\r
\r
**/\r
VOID\r
VlanUpdateForm (\r
- IN OUT VLAN_CONFIG_PRIVATE_DATA *PrivateData\r
+ IN OUT VLAN_CONFIG_PRIVATE_DATA *PrivateData\r
)\r
{\r
EFI_VLAN_CONFIG_PROTOCOL *VlanConfig;\r
//\r
// Find current VLAN configuration\r
//\r
- VlanData = NULL;\r
+ VlanData = NULL;\r
NumberOfVlan = 0;\r
- VlanConfig = PrivateData->VlanConfig;\r
+ VlanConfig = PrivateData->VlanConfig;\r
VlanConfig->Find (VlanConfig, NULL, &NumberOfVlan, &VlanData);\r
\r
//\r
if (NumberOfVlan > MAX_VLAN_NUMBER) {\r
NumberOfVlan = MAX_VLAN_NUMBER;\r
}\r
+\r
PrivateData->NumberOfVlan = NumberOfVlan;\r
\r
//\r
//\r
// Create Hii Extend Label OpCode as the start opcode\r
//\r
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (\r
- StartOpCodeHandle,\r
- &gEfiIfrTianoGuid,\r
- NULL,\r
- sizeof (EFI_IFR_GUID_LABEL)\r
- );\r
+ StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (\r
+ StartOpCodeHandle,\r
+ &gEfiIfrTianoGuid,\r
+ NULL,\r
+ sizeof (EFI_IFR_GUID_LABEL)\r
+ );\r
StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
StartLabel->Number = LABEL_VLAN_LIST;\r
\r
//\r
// Create Hii Extend Label OpCode as the end opcode\r
//\r
- EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (\r
- EndOpCodeHandle,\r
- &gEfiIfrTianoGuid,\r
- NULL,\r
- sizeof (EFI_IFR_GUID_LABEL)\r
- );\r
+ EndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (\r
+ EndOpCodeHandle,\r
+ &gEfiIfrTianoGuid,\r
+ NULL,\r
+ sizeof (EFI_IFR_GUID_LABEL)\r
+ );\r
EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
EndLabel->Number = LABEL_END;\r
\r
StrCpyS (String + 4 - DigitalCount, (sizeof (VlanStr) /sizeof (CHAR16)) - 10 - (4 - DigitalCount), VlanIdStr);\r
String += 4;\r
\r
- StrCpyS (String, (sizeof (VlanStr) /sizeof (CHAR16)) - 10 - (4 - DigitalCount) - 4, L", Priority:");\r
+ StrCpyS (String, (sizeof (VlanStr) /sizeof (CHAR16)) - 10 - (4 - DigitalCount) - 4, L", Priority:");\r
String += 11;\r
UnicodeValueToStringS (\r
String,\r
\r
HiiCreateCheckBoxOpCode (\r
StartOpCodeHandle,\r
- (EFI_QUESTION_ID) (VLAN_LIST_VAR_OFFSET + Index),\r
+ (EFI_QUESTION_ID)(VLAN_LIST_VAR_OFFSET + Index),\r
VLAN_CONFIGURATION_VARSTORE_ID,\r
- (UINT16) (VLAN_LIST_VAR_OFFSET + Index),\r
+ (UINT16)(VLAN_LIST_VAR_OFFSET + Index),\r
StringId,\r
STRING_TOKEN (STR_VLAN_VLAN_LIST_HELP),\r
0,\r
}\r
}\r
\r
-\r
/**\r
This function publish the VLAN configuration Form for a network device. The\r
HII Config Access protocol will be installed on a child handle of the network\r
**/\r
EFI_STATUS\r
InstallVlanConfigForm (\r
- IN OUT VLAN_CONFIG_PRIVATE_DATA *PrivateData\r
+ IN OUT VLAN_CONFIG_PRIVATE_DATA *PrivateData\r
)\r
{\r
EFI_STATUS Status;\r
//\r
ChildDevicePath = AppendDevicePathNode (\r
PrivateData->ParentDevicePath,\r
- (CONST EFI_DEVICE_PATH_PROTOCOL *) &mHiiVendorDevicePathNode\r
+ (CONST EFI_DEVICE_PATH_PROTOCOL *)&mHiiVendorDevicePathNode\r
);\r
if (ChildDevicePath == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
PrivateData->ChildDevicePath = ChildDevicePath;\r
\r
DriverHandle = NULL;\r
ConfigAccess = &PrivateData->ConfigAccess;\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &DriverHandle,\r
- &gEfiDevicePathProtocolGuid,\r
- ChildDevicePath,\r
- &gEfiHiiConfigAccessProtocolGuid,\r
- ConfigAccess,\r
- NULL\r
- );\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &DriverHandle,\r
+ &gEfiDevicePathProtocolGuid,\r
+ ChildDevicePath,\r
+ &gEfiHiiConfigAccessProtocolGuid,\r
+ ConfigAccess,\r
+ NULL\r
+ );\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
PrivateData->DriverHandle = DriverHandle;\r
\r
//\r
if (HiiHandle == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
PrivateData->HiiHandle = HiiHandle;\r
\r
//\r
// Update formset title help string.\r
//\r
MacString = NULL;\r
- Status = NetLibGetMacString (PrivateData->ControllerHandle, PrivateData->ImageHandle, &MacString);\r
+ Status = NetLibGetMacString (PrivateData->ControllerHandle, PrivateData->ImageHandle, &MacString);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
PrivateData->MacString = MacString;\r
\r
StrCpyS (Str, sizeof (Str) / sizeof (CHAR16), L"VLAN Configuration (MAC:");\r
**/\r
EFI_STATUS\r
UninstallVlanConfigForm (\r
- IN OUT VLAN_CONFIG_PRIVATE_DATA *PrivateData\r
+ IN OUT VLAN_CONFIG_PRIVATE_DATA *PrivateData\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_VLAN_CONFIG_PROTOCOL *VlanConfig;\r
+ EFI_STATUS Status;\r
+ EFI_VLAN_CONFIG_PROTOCOL *VlanConfig;\r
\r
//\r
// End the parent-child relationship.\r
);\r
return Status;\r
}\r
+\r
PrivateData->DriverHandle = NULL;\r
\r
if (PrivateData->ChildDevicePath != NULL) {\r
HiiRemovePackages (PrivateData->HiiHandle);\r
PrivateData->HiiHandle = NULL;\r
}\r
+\r
return EFI_SUCCESS;\r
}\r