/** @file Copyright (c) 2020 Arm, Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include "BcmGenetDxe.h" STATIC EFI_STATUS EFIAPI GenetAipGetInformation ( IN EFI_ADAPTER_INFORMATION_PROTOCOL *This, IN EFI_GUID *InformationType, OUT VOID **InformationBlock, OUT UINTN *InformationBlockSize ) { EFI_ADAPTER_INFO_MEDIA_STATE *AdapterInfo; GENET_PRIVATE_DATA *Genet; if (This == NULL || InformationBlock == NULL || InformationBlockSize == NULL) { return EFI_INVALID_PARAMETER; } if (!CompareGuid (InformationType, &gEfiAdapterInfoMediaStateGuid)) { return EFI_UNSUPPORTED; } AdapterInfo = AllocateZeroPool (sizeof (EFI_ADAPTER_INFO_MEDIA_STATE)); if (AdapterInfo == NULL) { return EFI_OUT_OF_RESOURCES; } *InformationBlock = AdapterInfo; *InformationBlockSize = sizeof (EFI_ADAPTER_INFO_MEDIA_STATE); Genet = GENET_PRIVATE_DATA_FROM_AIP_THIS (This); AdapterInfo->MediaState = GenericPhyUpdateConfig (&Genet->Phy); return EFI_SUCCESS; } STATIC EFI_STATUS EFIAPI GenetAipSetInformation ( IN EFI_ADAPTER_INFORMATION_PROTOCOL *This, IN EFI_GUID *InformationType, IN VOID *InformationBlock, IN UINTN InformationBlockSize ) { if (This == NULL || InformationBlock == NULL) { return EFI_INVALID_PARAMETER; } if (CompareGuid (InformationType, &gEfiAdapterInfoMediaStateGuid)) { return EFI_WRITE_PROTECTED; } return EFI_UNSUPPORTED; } STATIC EFI_STATUS EFIAPI GenetAipGetSupportedTypes ( IN EFI_ADAPTER_INFORMATION_PROTOCOL *This, OUT EFI_GUID **InfoTypesBuffer, OUT UINTN *InfoTypesBufferCount ) { EFI_GUID *Guid; if (This == NULL || InfoTypesBuffer == NULL || InfoTypesBufferCount == NULL) { return EFI_INVALID_PARAMETER; } Guid = AllocatePool (sizeof *Guid); if (Guid == NULL) { return EFI_OUT_OF_RESOURCES; } CopyGuid (Guid, &gEfiAdapterInfoMediaStateGuid); *InfoTypesBuffer = Guid; *InfoTypesBufferCount = 1; return EFI_SUCCESS; } CONST EFI_ADAPTER_INFORMATION_PROTOCOL gGenetAdapterInfoTemplate = { GenetAipGetInformation, GenetAipSetInformation, GenetAipGetSupportedTypes, };