REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the EmulatorPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			299 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			299 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   The implementation for Redfish Platform Configuration application.
 | |
| 
 | |
|   Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
 | |
|   (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include <Uefi.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/NetLib.h>
 | |
| #include <Library/UefiApplicationEntryPoint.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <Library/UefiRuntimeServicesTableLib.h>
 | |
| #include <Library/UefiLib.h>
 | |
| #include <Protocol/ShellParameters.h>
 | |
| 
 | |
| UINTN   Argc;
 | |
| CHAR16  **Argv;
 | |
| 
 | |
| /**
 | |
| 
 | |
|   This function parse application ARG.
 | |
| 
 | |
|   @return Status
 | |
| **/
 | |
| EFI_STATUS
 | |
| GetArg (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS                     Status;
 | |
|   EFI_SHELL_PARAMETERS_PROTOCOL  *ShellParameters;
 | |
| 
 | |
|   Status = gBS->HandleProtocol (
 | |
|                   gImageHandle,
 | |
|                   &gEfiShellParametersProtocolGuid,
 | |
|                   (VOID **)&ShellParameters
 | |
|                   );
 | |
|   if (EFI_ERROR (Status)) {
 | |
|     return Status;
 | |
|   }
 | |
| 
 | |
|   Argc = ShellParameters->Argc;
 | |
|   Argv = ShellParameters->Argv;
 | |
|   return EFI_SUCCESS;
 | |
| }
 | |
| 
 | |
| /**
 | |
| 
 | |
|   This function print the help message.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| PrintHelp (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   Print (L"\n");
 | |
|   Print (L"Format (Only Ipv4 Address is supported):\n");
 | |
|   Print (L"RedfishPlatformConfig.efi -s HostIpAddress HostIpMask RedfishServiceIpAddress RedfishServiceIpMask RedfishServiceIpPort\n");
 | |
|   Print (L"OR:\n");
 | |
|   Print (L"RedfishPlatformConfig.efi -a RedfishServiceIpAddress RedfishServiceIpMask RedfishServiceIpPort\n");
 | |
|   Print (L"\n");
 | |
| }
 | |
| 
 | |
| /**
 | |
|   The user Entry Point for Application. The user code starts with this function
 | |
|   as the real entry point for the application.
 | |
| 
 | |
|   @param[in] ImageHandle    The firmware allocated handle for the EFI image.
 | |
|   @param[in] SystemTable    A pointer to the EFI System Table.
 | |
| 
 | |
|   @retval EFI_SUCCESS       The entry point is executed successfully.
 | |
|   @retval other             Some error occurs when executing this entry point.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| UefiMain (
 | |
|   IN EFI_HANDLE        ImageHandle,
 | |
|   IN EFI_SYSTEM_TABLE  *SystemTable
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS     Status;
 | |
|   RETURN_STATUS  ReturnStatus;
 | |
| 
 | |
|   UINT8             HostIpAssignmentType;
 | |
|   EFI_IPv4_ADDRESS  HostIpAddress;
 | |
|   EFI_IPv4_ADDRESS  HostIpMask;
 | |
|   EFI_IPv4_ADDRESS  RedfishServiceIpAddress;
 | |
|   EFI_IPv4_ADDRESS  RedfishServiceIpMask;
 | |
|   UINTN             RedfishServiceIpPort;
 | |
| 
 | |
|   Status = GetArg ();
 | |
|   if (EFI_ERROR (Status)) {
 | |
|     return Status;
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   // Format is like :
 | |
|   // RedfishPlatformConfig.efi -s HostIpAddress HostIpMask RedfishServiceIpAddress RedfishServiceIpMask RedfishServiceIpPort
 | |
|   // RedfishPlatformConfig.efi -a RedfishServiceIpAddress RedfishServiceIpMask RedfishServiceIpPort
 | |
|   //
 | |
|   if ((Argc != 7) && (Argc != 5)) {
 | |
|     PrintHelp ();
 | |
|     return EFI_UNSUPPORTED;
 | |
|   }
 | |
| 
 | |
|   if (StrCmp (Argv[1], L"-s") == 0) {
 | |
|     HostIpAssignmentType = 1;
 | |
| 
 | |
|     Status = NetLibStrToIp4 (Argv[2], &HostIpAddress);
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       PrintHelp ();
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = NetLibStrToIp4 (Argv[3], &HostIpMask);
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       PrintHelp ();
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = NetLibStrToIp4 (Argv[4], &RedfishServiceIpAddress);
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       PrintHelp ();
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = NetLibStrToIp4 (Argv[5], &RedfishServiceIpMask);
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       PrintHelp ();
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     ReturnStatus = StrDecimalToUintnS (Argv[6], NULL, &RedfishServiceIpPort);
 | |
|     if (RETURN_ERROR (ReturnStatus)) {
 | |
|       PrintHelp ();
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"HostIpAssignmentType",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (UINT8),
 | |
|                     &HostIpAssignmentType
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"HostIpAddress",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (EFI_IPv4_ADDRESS),
 | |
|                     &HostIpAddress
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"HostIpMask",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (EFI_IPv4_ADDRESS),
 | |
|                     &HostIpMask
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"RedfishServiceIpAddress",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (EFI_IPv4_ADDRESS),
 | |
|                     &RedfishServiceIpAddress
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"RedfishServiceIpMask",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (EFI_IPv4_ADDRESS),
 | |
|                     &RedfishServiceIpMask
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"RedfishServiceIpPort",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (UINT16),
 | |
|                     &RedfishServiceIpPort
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Print (L"\n");
 | |
|     Print (L"HostIpAssignmentType is Static!\n");
 | |
|     Print (L"HostIpAddress: %s has been set Successfully!\n", Argv[2]);
 | |
|     Print (L"HostIpMask: %s has been set Successfully!\n", Argv[3]);
 | |
|     Print (L"RedfishServiceIpAddress: %s has been set Successfully!\n", Argv[4]);
 | |
|     Print (L"RedfishServiceIpMask: %s has been set Successfully!\n", Argv[5]);
 | |
|     Print (L"RedfishServiceIpPort: %s has been set Successfully!\n", Argv[6]);
 | |
|     Print (L"Please Restart!\n");
 | |
|   } else if (StrCmp (Argv[1], L"-a") == 0) {
 | |
|     HostIpAssignmentType = 3;
 | |
| 
 | |
|     Status = NetLibStrToIp4 (Argv[2], &RedfishServiceIpAddress);
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       PrintHelp ();
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = NetLibStrToIp4 (Argv[3], &RedfishServiceIpMask);
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       PrintHelp ();
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     ReturnStatus = StrDecimalToUintnS (Argv[4], NULL, &RedfishServiceIpPort);
 | |
|     if (RETURN_ERROR (ReturnStatus)) {
 | |
|       PrintHelp ();
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"HostIpAssignmentType",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (UINT8),
 | |
|                     &HostIpAssignmentType
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"RedfishServiceIpAddress",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (EFI_IPv4_ADDRESS),
 | |
|                     &RedfishServiceIpAddress
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"RedfishServiceIpMask",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (EFI_IPv4_ADDRESS),
 | |
|                     &RedfishServiceIpMask
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Status = gRT->SetVariable (
 | |
|                     L"RedfishServiceIpPort",
 | |
|                     &gEmuRedfishServiceGuid,
 | |
|                     EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
 | |
|                     sizeof (UINT16),
 | |
|                     &RedfishServiceIpPort
 | |
|                     );
 | |
|     if (EFI_ERROR (Status)) {
 | |
|       return Status;
 | |
|     }
 | |
| 
 | |
|     Print (L"\n");
 | |
|     Print (L"HostIpAssignmentType is Auto!\n");
 | |
|     Print (L"RedfishServiceIpAddress: %s has been set Successfully!\n", Argv[2]);
 | |
|     Print (L"RedfishServiceIpMask: %s has been set Successfully!\n", Argv[3]);
 | |
|     Print (L"RedfishServiceIpPort: %s has been set Successfully!\n", Argv[4]);
 | |
|     Print (L"Please Restart!\n");
 | |
|   } else if ((StrCmp (Argv[1], L"-h") == 0) || (StrCmp (Argv[1], L"-help") == 0)) {
 | |
|     PrintHelp ();
 | |
|   } else {
 | |
|     PrintHelp ();
 | |
|     return EFI_UNSUPPORTED;
 | |
|   }
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 |