Changeset 99404 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/Ip4Dxe/Ip4Driver.c
- Timestamp:
- Apr 14, 2023 3:17:44 PM (22 months ago)
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-145445 /vendor/edk2/current 103735-103757,103769-103776,129194-156846
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/Ip4Dxe/Ip4Driver.c
r85718 r99404 11 11 #include "Ip4Impl.h" 12 12 13 EFI_DRIVER_BINDING_PROTOCOL gIp4DriverBinding = {13 EFI_DRIVER_BINDING_PROTOCOL gIp4DriverBinding = { 14 14 Ip4DriverBindingSupported, 15 15 Ip4DriverBindingStart, … … 36 36 ) 37 37 { 38 EFI_STATUS Status; 38 EFI_STATUS Status; 39 39 40 // 40 41 // Test if protocol was even found. … … 42 43 // 43 44 Status = gBS->LocateProtocol (&gEfiIpSec2ProtocolGuid, NULL, (VOID **)&mIpSec); 44 if ( Status == EFI_SUCCESS && mIpSec != NULL) {45 if ((Status == EFI_SUCCESS) && (mIpSec != NULL)) { 45 46 // 46 47 // Close the event so it does not get called again. … … 70 71 EFIAPI 71 72 Ip4DriverEntryPoint ( 72 IN EFI_HANDLE 73 IN EFI_SYSTEM_TABLE 73 IN EFI_HANDLE ImageHandle, 74 IN EFI_SYSTEM_TABLE *SystemTable 74 75 ) 75 76 { 76 VOID 77 VOID *Registration; 77 78 78 79 EfiCreateProtocolNotifyEvent ( … … 115 116 EFIAPI 116 117 Ip4DriverBindingSupported ( 117 IN EFI_DRIVER_BINDING_PROTOCOL * 118 IN EFI_DRIVER_BINDING_PROTOCOL *This, 118 119 IN EFI_HANDLE ControllerHandle, 119 IN EFI_DEVICE_PATH_PROTOCOL * 120 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL 120 121 ) 121 122 { 122 EFI_STATUS 123 EFI_STATUS Status; 123 124 124 125 // … … 168 169 EFI_STATUS 169 170 Ip4CleanService ( 170 IN IP4_SERVICE 171 IN IP4_SERVICE *IpSb 171 172 ); 172 173 173 174 174 /** … … 188 188 EFI_STATUS 189 189 Ip4CreateService ( 190 IN EFI_HANDLE 191 IN EFI_HANDLE 192 OUT IP4_SERVICE 190 IN EFI_HANDLE Controller, 191 IN EFI_HANDLE ImageHandle, 192 OUT IP4_SERVICE **Service 193 193 ) 194 194 { 195 IP4_SERVICE 196 EFI_STATUS 195 IP4_SERVICE *IpSb; 196 EFI_STATUS Status; 197 197 198 198 ASSERT (Service != NULL); … … 216 216 IpSb->State = IP4_SERVICE_UNSTARTED; 217 217 218 IpSb->NumChildren 218 IpSb->NumChildren = 0; 219 219 InitializeListHead (&IpSb->Children); 220 220 221 221 InitializeListHead (&IpSb->Interfaces); 222 IpSb->DefaultInterface 223 IpSb->DefaultRouteTable 222 IpSb->DefaultInterface = NULL; 223 IpSb->DefaultRouteTable = NULL; 224 224 225 225 Ip4InitAssembleTable (&IpSb->Assemble); 226 226 227 IpSb->IgmpCtrl.Igmpv1QuerySeen 227 IpSb->IgmpCtrl.Igmpv1QuerySeen = 0; 228 228 InitializeListHead (&IpSb->IgmpCtrl.Groups); 229 229 230 IpSb->Image 231 IpSb->Controller 232 233 IpSb->MnpChildHandle 234 IpSb->Mnp 230 IpSb->Image = ImageHandle; 231 IpSb->Controller = Controller; 232 233 IpSb->MnpChildHandle = NULL; 234 IpSb->Mnp = NULL; 235 235 236 236 IpSb->MnpConfigData.ReceivedQueueTimeoutValue = 0; … … 247 247 ZeroMem (&IpSb->SnpMode, sizeof (EFI_SIMPLE_NETWORK_MODE)); 248 248 249 IpSb->Timer = NULL;249 IpSb->Timer = NULL; 250 250 IpSb->ReconfigCheckTimer = NULL; 251 251 … … 317 317 IpSb->MnpChildHandle, 318 318 &gEfiManagedNetworkProtocolGuid, 319 (VOID **) 319 (VOID **)&IpSb->Mnp, 320 320 ImageHandle, 321 321 Controller, … … 346 346 347 347 IpSb->MacString = NULL; 348 Status = NetLibGetMacString (IpSb->Controller, IpSb->Image, &IpSb->MacString);348 Status = NetLibGetMacString (IpSb->Controller, IpSb->Image, &IpSb->MacString); 349 349 350 350 if (EFI_ERROR (Status)) { … … 376 376 IpSb->MaxPacketSize -= NET_VLAN_TAG_LEN; 377 377 } 378 378 379 IpSb->OldMaxPacketSize = IpSb->MaxPacketSize; 379 *Service = IpSb;380 *Service = IpSb; 380 381 381 382 return EFI_SUCCESS; … … 387 388 return Status; 388 389 } 389 390 390 391 391 /** … … 404 404 EFI_STATUS 405 405 Ip4CleanService ( 406 IN IP4_SERVICE 406 IN IP4_SERVICE *IpSb 407 407 ) 408 408 { 409 EFI_STATUS 410 411 IpSb->State 409 EFI_STATUS Status; 410 411 IpSb->State = IP4_SERVICE_DESTROY; 412 412 413 413 if (IpSb->Timer != NULL) { … … 494 494 EFIAPI 495 495 Ip4DestroyChildEntryInHandleBuffer ( 496 IN LIST_ENTRY 497 IN VOID 496 IN LIST_ENTRY *Entry, 497 IN VOID *Context 498 498 ) 499 499 { … … 503 503 EFI_HANDLE *ChildHandleBuffer; 504 504 505 if ( Entry == NULL || Context == NULL) {505 if ((Entry == NULL) || (Context == NULL)) { 506 506 return EFI_INVALID_PARAMETER; 507 507 } 508 508 509 IpInstance = NET_LIST_USER_STRUCT_S (Entry, IP4_PROTOCOL, Link, IP4_PROTOCOL_SIGNATURE);510 ServiceBinding = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) 511 NumberOfChildren = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) 512 ChildHandleBuffer = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *) 509 IpInstance = NET_LIST_USER_STRUCT_S (Entry, IP4_PROTOCOL, Link, IP4_PROTOCOL_SIGNATURE); 510 ServiceBinding = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ServiceBinding; 511 NumberOfChildren = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->NumberOfChildren; 512 ChildHandleBuffer = ((IP4_DESTROY_CHILD_IN_HANDLE_BUF_CONTEXT *)Context)->ChildHandleBuffer; 513 513 514 514 if (!NetIsInHandleBuffer (IpInstance->Handle, NumberOfChildren, ChildHandleBuffer)) { … … 545 545 ) 546 546 { 547 EFI_STATUS 548 IP4_SERVICE 549 EFI_IP4_CONFIG2_PROTOCOL 550 UINTN 551 IP4_CONFIG2_DATA_ITEM 547 EFI_STATUS Status; 548 IP4_SERVICE *IpSb; 549 EFI_IP4_CONFIG2_PROTOCOL *Ip4Cfg2; 550 UINTN Index; 551 IP4_CONFIG2_DATA_ITEM *DataItem; 552 552 553 553 IpSb = NULL; … … 579 579 ASSERT (IpSb != NULL); 580 580 581 Ip4Cfg2 581 Ip4Cfg2 = &IpSb->Ip4Config2Instance.Ip4Config2; 582 582 583 583 // … … 618 618 DataItem->Data.Ptr 619 619 ); 620 if (EFI_ERROR (Status)) {620 if (EFI_ERROR (Status)) { 621 621 goto UNINSTALL_PROTOCOL; 622 622 } 623 623 624 if ( Index == Ip4Config2DataTypePolicy&& (*(DataItem->Data.Policy) == Ip4Config2PolicyDhcp)) {624 if ((Index == Ip4Config2DataTypePolicy) && (*(DataItem->Data.Policy) == Ip4Config2PolicyDhcp)) { 625 625 break; 626 626 } … … 635 635 Status = Ip4ReceiveFrame (IpSb->DefaultInterface, NULL, Ip4AccpetFrame, IpSb); 636 636 637 if (EFI_ERROR (Status) && Status != EFI_ALREADY_STARTED) {637 if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) { 638 638 goto UNINSTALL_PROTOCOL; 639 639 } … … 673 673 return Status; 674 674 } 675 676 675 677 676 /** … … 712 711 IP4_ROUTE_TABLE *RouteTable; 713 712 714 BOOLEAN 715 716 IsDhcp4 713 BOOLEAN IsDhcp4; 714 715 IsDhcp4 = FALSE; 717 716 718 717 NicHandle = NetLibGetNicHandle (ControllerHandle, &gEfiManagedNetworkProtocolGuid); … … 732 731 NicHandle, 733 732 &gEfiIp4ServiceBindingProtocolGuid, 734 (VOID **) 733 (VOID **)&ServiceBinding, 735 734 This->DriverBindingHandle, 736 735 NicHandle, … … 748 747 IpSb->Ip4Config2Instance.Dhcp4Event = NULL; 749 748 } else if (NumberOfChildren != 0) { 750 List = &IpSb->Children;749 List = &IpSb->Children; 751 750 Context.ServiceBinding = ServiceBinding; 752 751 Context.NumberOfChildren = NumberOfChildren; 753 752 Context.ChildHandleBuffer = ChildHandleBuffer; 754 Status = NetDestroyLinkList (755 List,756 Ip4DestroyChildEntryInHandleBuffer,757 &Context,758 NULL759 );753 Status = NetDestroyLinkList ( 754 List, 755 Ip4DestroyChildEntryInHandleBuffer, 756 &Context, 757 NULL 758 ); 760 759 } else if (IpSb->DefaultInterface->ArpHandle == ControllerHandle) { 761 762 760 // 763 761 // The ARP protocol for the default interface is being uninstalled and all … … 773 771 goto ON_ERROR; 774 772 } 773 775 774 RouteTable = Ip4CreateRouteTable (); 776 775 if (RouteTable == NULL) { 777 776 Ip4FreeInterface (IpIf, NULL); 778 goto ON_ERROR; ;777 goto ON_ERROR; 779 778 } 780 779 781 IpSb->DefaultInterface 780 IpSb->DefaultInterface = IpIf; 782 781 InsertHeadList (&IpSb->Interfaces, &IpIf->Link); 783 782 IpSb->DefaultRouteTable = RouteTable; … … 785 784 786 785 IpSb->State = IP4_SERVICE_UNSTARTED; 787 788 786 } else if (IsListEmpty (&IpSb->Children)) { 789 State 787 State = IpSb->State; 790 788 // 791 789 // OK, clean other resources then uninstall the service binding protocol. … … 810 808 gIp4ControllerNameTable = NULL; 811 809 } 810 812 811 FreePool (IpSb); 813 812 } … … 816 815 return Status; 817 816 } 818 819 817 820 818 /** … … 844 842 ) 845 843 { 846 IP4_SERVICE 847 IP4_PROTOCOL 848 EFI_TPL 849 EFI_STATUS 850 VOID 844 IP4_SERVICE *IpSb; 845 IP4_PROTOCOL *IpInstance; 846 EFI_TPL OldTpl; 847 EFI_STATUS Status; 848 VOID *Mnp; 851 849 852 850 if ((This == NULL) || (ChildHandle == NULL)) { … … 885 883 IpSb->MnpChildHandle, 886 884 &gEfiManagedNetworkProtocolGuid, 887 (VOID **) 885 (VOID **)&Mnp, 888 886 gIp4DriverBinding.DriverBindingHandle, 889 887 IpInstance->Handle, … … 914 912 915 913 if (EFI_ERROR (Status)) { 916 917 914 Ip4CleanProtocol (IpInstance); 918 915 … … 922 919 return Status; 923 920 } 924 925 921 926 922 /** … … 949 945 ) 950 946 { 951 EFI_STATUS 952 IP4_SERVICE 953 IP4_PROTOCOL 954 EFI_IP4_PROTOCOL 955 EFI_TPL 947 EFI_STATUS Status; 948 IP4_SERVICE *IpSb; 949 IP4_PROTOCOL *IpInstance; 950 EFI_IP4_PROTOCOL *Ip4; 951 EFI_TPL OldTpl; 956 952 957 953 if ((This == NULL) || (ChildHandle == NULL)) { … … 962 958 // Retrieve the private context data structures 963 959 // 964 IpSb 960 IpSb = IP4_SERVICE_FROM_PROTOCOL (This); 965 961 966 962 Status = gBS->OpenProtocol ( 967 963 ChildHandle, 968 964 &gEfiIp4ProtocolGuid, 969 (VOID **) 965 (VOID **)&Ip4, 970 966 gIp4DriverBinding.DriverBindingHandle, 971 967 ChildHandle, … … 1008 1004 ); 1009 1005 1010 if ( IpInstance->Interface != NULL && IpInstance->Interface->Arp != NULL) {1006 if ((IpInstance->Interface != NULL) && (IpInstance->Interface->Arp != NULL)) { 1011 1007 gBS->CloseProtocol ( 1012 1008 IpInstance->Interface->ArpHandle,
Note:
See TracChangeset
for help on using the changeset viewer.