TianoCore EDK2 master
|
#include "Snp.h"
Go to the source code of this file.
Functions | |
EFI_STATUS | PxeNvDataRead (IN SNP_DRIVER *Snp, IN UINTN Offset, IN UINTN BufferSize, IN OUT VOID *Buffer) |
EFI_STATUS EFIAPI | SnpUndi32NvData (IN EFI_SIMPLE_NETWORK_PROTOCOL *This, IN BOOLEAN ReadWrite, IN UINTN Offset, IN UINTN BufferSize, IN OUT VOID *Buffer) |
Implementation of reading and writing operations on the NVRAM device attached to a network interface.
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Nvdata.c.
EFI_STATUS PxeNvDataRead | ( | IN SNP_DRIVER * | Snp, |
IN UINTN | Offset, | ||
IN UINTN | BufferSize, | ||
IN OUT VOID * | Buffer | ||
) |
This routine calls Undi to read the desired number of eeprom bytes.
Snp | pointer to the snp driver structure |
Offset | eeprom register value relative to the base address |
BufferSize | number of bytes to read |
Buffer | pointer where to read into |
EFI_SUCCESS | The NVRAM access was performed. |
EFI_INVALID_PARAMETER | Invalid UNDI command. |
EFI_UNSUPPORTED | Command is not supported by UNDI. |
EFI_DEVICE_ERROR | Fail to execute UNDI command. |
EFI_STATUS EFIAPI SnpUndi32NvData | ( | IN EFI_SIMPLE_NETWORK_PROTOCOL * | This, |
IN BOOLEAN | ReadWrite, | ||
IN UINTN | Offset, | ||
IN UINTN | BufferSize, | ||
IN OUT VOID * | Buffer | ||
) |
Performs read and write operations on the NVRAM device attached to a network interface.
This function performs read and write operations on the NVRAM device attached to a network interface. If ReadWrite is TRUE, a read operation is performed. If ReadWrite is FALSE, a write operation is performed. Offset specifies the byte offset at which to start either operation. Offset must be a multiple of NvRamAccessSize , and it must have a value between zero and NvRamSize. BufferSize specifies the length of the read or write operation. BufferSize must also be a multiple of NvRamAccessSize, and Offset + BufferSize must not exceed NvRamSize. If any of the above conditions is not met, then EFI_INVALID_PARAMETER will be returned. If all the conditions are met and the operation is "read," the NVRAM device attached to the network interface will be read into Buffer and EFI_SUCCESS will be returned. If this is a write operation, the contents of Buffer will be used to update the contents of the NVRAM device attached to the network interface and EFI_SUCCESS will be returned.
It does the basic checking on the input parameters and retrieves snp structure and then calls the read_nvdata() call which does the actual reading
This | A pointer to the EFI_SIMPLE_NETWORK_PROTOCOL instance. |
ReadWrite | TRUE for read operations, FALSE for write operations. |
Offset | Byte offset in the NVRAM device at which to start the read or write operation. This must be a multiple of NvRamAccessSize and less than NvRamSize. (See EFI_SIMPLE_NETWORK_MODE) |
BufferSize | The number of bytes to read or write from the NVRAM device. This must also be a multiple of NvramAccessSize. |
Buffer | A pointer to the data buffer. |
EFI_SUCCESS | The NVRAM access was performed. |
EFI_NOT_STARTED | The network interface has not been started. |
EFI_INVALID_PARAMETER | One or more of the following conditions is TRUE: The This parameter is NULL The This parameter does not point to a valid EFI_SIMPLE_NETWORK_PROTOCOL structure The Offset parameter is not a multiple of EFI_SIMPLE_NETWORK_MODE.NvRamAccessSize The Offset parameter is not less than EFI_SIMPLE_NETWORK_MODE.NvRamSize The BufferSize parameter is not a multiple of EFI_SIMPLE_NETWORK_MODE.NvRamAccessSize The Buffer parameter is NULL |
EFI_DEVICE_ERROR | The command could not be sent to the network interface. |
EFI_UNSUPPORTED | This function is not supported by the network interface. |