/** @file MockSpiNorFlashProtocol.h This file declares a mock of SPI NOR Flash Protocol. Copyright (c) Microsoft Corporation. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef MOCK_SPI_NOR_FLASH_PROTOCOL_H_ #define MOCK_SPI_NOR_FLASH_PROTOCOL_H_ #include #include extern "C" { #include #include } struct MockSpiNorFlashProtocol { MOCK_INTERFACE_DECLARATION (MockSpiNorFlashProtocol); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, GetFlashid, ( IN CONST EFI_SPI_NOR_FLASH_PROTOCOL *This, OUT UINT8 *Buffer ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ReadData, ( IN CONST EFI_SPI_NOR_FLASH_PROTOCOL *This, IN UINT32 FlashAddress, IN UINT32 LengthInBytes, OUT UINT8 *Buffer ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, LfReadData, ( IN CONST EFI_SPI_NOR_FLASH_PROTOCOL *This, IN UINT32 FlashAddress, IN UINT32 LengthInBytes, OUT UINT8 *Buffer ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ReadStatus, ( IN CONST EFI_SPI_NOR_FLASH_PROTOCOL *This, IN UINT32 LengthInBytes, OUT UINT8 *FlashStatus ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, WriteStatus, ( IN CONST EFI_SPI_NOR_FLASH_PROTOCOL *This, IN UINT32 LengthInBytes, IN UINT8 *FlashStatus ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, WriteData, ( IN CONST EFI_SPI_NOR_FLASH_PROTOCOL *This, IN UINT32 FlashAddress, IN UINT32 LengthInBytes, IN UINT8 *Buffer ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, Erase, ( IN CONST EFI_SPI_NOR_FLASH_PROTOCOL *This, IN UINT32 FlashAddress, IN UINT32 BlockCount ) ); }; MOCK_INTERFACE_DEFINITION (MockSpiNorFlashProtocol); MOCK_FUNCTION_DEFINITION (MockSpiNorFlashProtocol, GetFlashid, 2, EFIAPI); MOCK_FUNCTION_DEFINITION (MockSpiNorFlashProtocol, ReadData, 4, EFIAPI); MOCK_FUNCTION_DEFINITION (MockSpiNorFlashProtocol, LfReadData, 4, EFIAPI); MOCK_FUNCTION_DEFINITION (MockSpiNorFlashProtocol, ReadStatus, 3, EFIAPI); MOCK_FUNCTION_DEFINITION (MockSpiNorFlashProtocol, WriteStatus, 3, EFIAPI); MOCK_FUNCTION_DEFINITION (MockSpiNorFlashProtocol, WriteData, 4, EFIAPI); MOCK_FUNCTION_DEFINITION (MockSpiNorFlashProtocol, Erase, 3, EFIAPI); #define MOCK_EFI_SPI_NOR_FLASH_PROTOCOL_INSTANCE(NAME) \ EFI_SPI_NOR_FLASH_PROTOCOL NAME##_INSTANCE = { \ NULL, \ 0, \ {0, 0, 0}, \ 0, \ GetFlashid, \ ReadData, \ LfReadData, \ ReadStatus, \ WriteStatus, \ WriteData, \ Erase \ }; \ EFI_SPI_NOR_FLASH_PROTOCOL *NAME = &NAME##_INSTANCE; #endif // MOCK_SPI_NOR_FLASH_PROTOCOL_H_