/** @file MockHiiDatabase.h This file declares a mock of HiiDatabase Protocol. Copyright (c) Microsoft Corporation. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef MOCK_HII_DATABASE_H #define MOCK_HII_DATABASE_H #include #include extern "C" { #include #include } struct MockHiiDatabaseProtocol { MOCK_INTERFACE_DECLARATION (MockHiiDatabaseProtocol); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, NewPackageList, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList, IN EFI_HANDLE DriverHandle OPTIONAL, OUT EFI_HII_HANDLE *Handle ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, RemovePackageList, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HII_HANDLE Handle ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, UpdatePackageList, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HII_HANDLE Handle, IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ListPackageLists, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN UINT8 PackageType, IN CONST EFI_GUID *PackageGuid, IN OUT UINTN *HandleBufferLength, OUT EFI_HII_HANDLE *Handle ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ExportPackageLists, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HII_HANDLE Handle, IN OUT UINTN *BufferSize, OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, RegisterPackageNotify, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN UINT8 PackageType, IN CONST EFI_GUID *PackageGuid, IN EFI_HII_DATABASE_NOTIFY PackageNotifyFn, IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType, OUT EFI_HANDLE *NotifyHandle ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, UnregisterPackageNotify, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HANDLE NotificationHandle ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, FindKeyboardLayouts, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN OUT UINT16 *KeyGuidBufferLength, OUT EFI_GUID *KeyGuidBuffer ) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, GetKeyboardLayout, (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN CONST EFI_GUID *KeyGuid, IN OUT UINT16 *KeyboardLayoutLength, OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, SetKeyboardLayout, (IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN CONST EFI_GUID *KeyGuid) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, GetPackageListHandle, ( IN CONST EFI_HII_DATABASE_PROTOCOL *This, IN EFI_HII_HANDLE PackageListHandle, OUT EFI_HANDLE *DriverHandle ) ); }; MOCK_INTERFACE_DEFINITION (MockHiiDatabaseProtocol); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, NewPackageList, 4, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, RemovePackageList, 2, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, UpdatePackageList, 3, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, ListPackageLists, 5, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, ExportPackageLists, 4, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, RegisterPackageNotify, 6, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, UnregisterPackageNotify, 2, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, FindKeyboardLayouts, 3, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, GetKeyboardLayout, 4, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, SetKeyboardLayout, 2, EFIAPI); MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, GetPackageListHandle, 3, EFIAPI); #define MOCK_EFI_HII_DATABASE_PROTOCOL_INSTANCE(NAME) \ EFI_HII_DATABASE_PROTOCOL NAME##_INSTANCE = { \ NewPackageList, \ RemovePackageList, \ UpdatePackageList, \ ListPackageLists, \ ExportPackageLists, \ RegisterPackageNotify, \ UnregisterPackageNotify, \ FindKeyboardLayouts, \ GetKeyboardLayout, \ SetKeyboardLayout, \ GetPackageListHandle }; \ EFI_HII_DATABASE_PROTOCOL *NAME = &NAME##_INSTANCE; #endif