1d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek/** @file 2d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 3d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek Empty implementation of the SNP methods that dependent protocols don't 4d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek absolutely need and the UEFI-2.3.1+errC specification allows us not to 5d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek support. 6d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 7d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek Copyright (C) 2013, Red Hat, Inc. 8d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR> 9d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 10d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek This program and the accompanying materials are licensed and made available 11d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek under the terms and conditions of the BSD License which accompanies this 12d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek distribution. The full text of the license may be found at 13d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek http://opensource.org/licenses/bsd-license.php 14d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 15d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT 16d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 17d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 18d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek**/ 19d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 20d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek#include "VirtioNet.h" 21d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 22d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek/** 23d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek Resets a network adapter and re-initializes it with the parameters that were 24d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek provided in the previous call to Initialize(). 25d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 26d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param This The protocol instance pointer. 27d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param ExtendedVerification Indicates that the driver may perform a more 28d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek exhaustive verification operation of the device 29d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek during reset. 30d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 31d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_SUCCESS The network interface was reset. 32d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_NOT_STARTED The network interface has not been started. 33d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_INVALID_PARAMETER One or more of the parameters has an 34d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek unsupported value. 35d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_DEVICE_ERROR The command could not be sent to the network 36d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 37d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_UNSUPPORTED This function is not supported by the network 38d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 39d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 40d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek**/ 41d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 42d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekEFI_STATUS 43d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekEFIAPI 44d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekVirtioNetReset ( 45d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN EFI_SIMPLE_NETWORK_PROTOCOL *This, 46d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN BOOLEAN ExtendedVerification 47d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek ) 48d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek{ 49d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek return EFI_UNSUPPORTED; 50d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek} 51d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 52d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 53d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek/** 54d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek Modifies or resets the current station address, if supported. 55d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 56d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param This The protocol instance pointer. 57d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param Reset Flag used to reset the station address to the network 58d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interfaces permanent address. 59d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param New The new station address to be used for the network interface. 60d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 61d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_SUCCESS The network interfaces station address was 62d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek updated. 63d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_NOT_STARTED The network interface has not been started. 64d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_INVALID_PARAMETER One or more of the parameters has an 65d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek unsupported value. 66d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_DEVICE_ERROR The command could not be sent to the network 67d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 68d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_UNSUPPORTED This function is not supported by the network 69d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 70d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 71d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek**/ 72d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 73d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekEFI_STATUS 74d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekEFIAPI 75d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekVirtioNetStationAddress ( 76d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN EFI_SIMPLE_NETWORK_PROTOCOL *This, 77d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN BOOLEAN Reset, 78d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN EFI_MAC_ADDRESS *New OPTIONAL 79d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek ) 80d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek{ 81d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek return EFI_UNSUPPORTED; 82d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek} 83d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 84d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 85d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek/** 86d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek Resets or collects the statistics on a network interface. 87d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 88d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param This Protocol instance pointer. 89d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param Reset Set to TRUE to reset the statistics for the network 90d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 91d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param StatisticsSize On input the size, in bytes, of StatisticsTable. On 92d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek output the size, in bytes, of the resulting table of 93d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek statistics. 94d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param StatisticsTable A pointer to the EFI_NETWORK_STATISTICS structure 95d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek that contains the statistics. 96d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 97d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_SUCCESS The statistics were collected from the network 98d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 99d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_NOT_STARTED The network interface has not been started. 100d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_BUFFER_TOO_SMALL The Statistics buffer was too small. The 101d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek current buffer size needed to hold the 102d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek statistics is returned in StatisticsSize. 103d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_INVALID_PARAMETER One or more of the parameters has an 104d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek unsupported value. 105d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_DEVICE_ERROR The command could not be sent to the network 106d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 107d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_UNSUPPORTED This function is not supported by the network 108d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 109d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 110d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek**/ 111d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 112d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekEFI_STATUS 113d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekEFIAPI 114d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekVirtioNetStatistics ( 115d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN EFI_SIMPLE_NETWORK_PROTOCOL *This, 116d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN BOOLEAN Reset, 117d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN OUT UINTN *StatisticsSize OPTIONAL, 118d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL 119d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek ) 120d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek{ 121d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek return EFI_UNSUPPORTED; 122d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek} 123d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 124d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 125d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek/** 126d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek Performs read and write operations on the NVRAM device attached to a network 127d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 128d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 129d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param This The protocol instance pointer. 130d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param ReadWrite TRUE for read operations, FALSE for write operations. 131d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param Offset Byte offset in the NVRAM device at which to start the read 132d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek or write operation. This must be a multiple of 133d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek NvRamAccessSize and less than NvRamSize. 134d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param BufferSize The number of bytes to read or write from the NVRAM 135d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek device. This must also be a multiple of NvramAccessSize. 136d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @param Buffer A pointer to the data buffer. 137d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 138d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_SUCCESS The NVRAM access was performed. 139d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_NOT_STARTED The network interface has not been started. 140d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_INVALID_PARAMETER One or more of the parameters has an 141d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek unsupported value. 142d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_DEVICE_ERROR The command could not be sent to the network 143d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 144d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek @retval EFI_UNSUPPORTED This function is not supported by the network 145d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek interface. 146d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 147d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek**/ 148d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek 149d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekEFI_STATUS 150d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekEFIAPI 151d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo ErsekVirtioNetNvData ( 152d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN EFI_SIMPLE_NETWORK_PROTOCOL *This, 153d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN BOOLEAN ReadWrite, 154d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN UINTN Offset, 155d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN UINTN BufferSize, 156d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek IN OUT VOID *Buffer 157d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek ) 158d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek{ 159d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek return EFI_UNSUPPORTED; 160d0e5ff0a0d7dfb78b87503c05dd3517930523d01Laszlo Ersek} 161