alder_lake_bios/Insyde/InsydeSetupPkg/Include/Protocol/H2ODisplayEngine.h

127 lines
4.3 KiB
C

/** @file
H2O Display Engine Protocol Header
;******************************************************************************
;* Copyright (c) 2013, Insyde Software Corp. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#ifndef _H2O_DISPLAY_ENGINE_PROTOCOL_H_
#define _H2O_DISPLAY_ENGINE_PROTOCOL_H_
#include <Protocol/H2OFormBrowser.h>
#define H2O_DISPLAY_ENGINE_PROTOCOL_GUID \
{ \
0xb1af258f, 0x1e72, 0x4c7a, 0x80, 0x3f, 0x43, 0x5e, 0x49, 0x03, 0x3d, 0xbb \
}
typedef struct _H2O_DISPLAY_ENGINE_PROTOCOL H2O_DISPLAY_ENGINE_PROTOCOL;
//
// Protocol definitions
//
/**
Add new console to the console list.
@param[in] This A pointer to the H2O_DISPLAY_ENGINE_PROTOCOL instance.
@param[in] ConsoleDev A pointer to input H2O_FORM_BROWSER_CONSOLE_DEV instance.
@retval EFI_SUCCESS Add new console to console list successful.
**/
typedef
EFI_STATUS
(EFIAPI *H2O_DISPLAY_ENGINE_INIT_CONSOLE) (
IN H2O_DISPLAY_ENGINE_PROTOCOL *This,
IN H2O_FORM_BROWSER_CONSOLE_DEV *ConsoleDev
);
/**
Attach a specific console to this display engine.
@param[in] This A pointer to the H2O_DISPLAY_ENGINE_PROTOCOL instance.
@param[in] ConsoleDev A pointer to input H2O_FORM_BROWSER_CONSOLE_DEV instance.
@retval EFI_SUCCESS Attach new console successful.
@retval EFI_INVALID_PARAMETER This is NULL, or ConsoleDev is NULL.
@retval EFI_UNSUPPORTED This display engine doesn't support input console device.
**/
typedef
EFI_STATUS
(EFIAPI *H2O_DISPLAY_ENGINE_ATTACH_CONSOLE) (
IN H2O_DISPLAY_ENGINE_PROTOCOL *This,
IN H2O_FORM_BROWSER_CONSOLE_DEV *ConsoleDev
);
/**
Detach a specific console from this display engine.
@param[in] This A pointer to the H2O_DISPLAY_ENGINE_PROTOCOL instance.
@param[in] ConsoleDev A pointer to input H2O_FORM_BROWSER_CONSOLE_DEV instance.
@retval EFI_SUCCESS Detach a console device from the device engine successful.
@retval EFI_INVALID_PARAMETER This is NULL, or ConsoleDev is NULL.
@retval EFI_NOT_FOUND The input device console isn't attached to the display engine.
**/
typedef
EFI_STATUS
(EFIAPI *H2O_DISPLAY_ENGINE_DETACH_CONSOLE) (
IN H2O_DISPLAY_ENGINE_PROTOCOL *This,
IN H2O_FORM_BROWSER_CONSOLE_DEV *ConsoleDev
);
/**
Check if input console device is supported by this display engine.
@param[in] This A pointer to the H2O_DISPLAY_ENGINE_PROTOCOL instance.
@param[in] ConsoleDev A pointer to input H2O_FORM_BROWSER_CONSOLE_DEV instance.
@retval EFI_SUCCESS This display engine supports input console device.
@retval EFI_UNSUPPORTED This display engine doesn't support input console device.
@retval EFI_INVALID_PARAMETER This is NULL or ConsoleDev is NULL.
**/
typedef
EFI_STATUS
(EFIAPI *H2O_DISPLAY_ENGINE_SUPPORT_CONSOLE) (
IN H2O_DISPLAY_ENGINE_PROTOCOL *This,
IN H2O_FORM_BROWSER_CONSOLE_DEV *ConsoleDev
);
/**
Add the notification to the notification queue and signal the Notification event.
@param[in] This A pointer to the H2O_DISPLAY_ENGINE_PROTOCOL instance.
@param[in] Notify A pointer to the H2O_DISPLAY_ENGINE_EVT instance.
@retval EFI_SUCCESS Register notify successful.
@retval EFI_INVALID_PARAMETER This is NULL or Notify is NULL.
**/
typedef
EFI_STATUS
(EFIAPI *H2O_DISPLAY_ENGINE_NOTIFY) (
IN H2O_DISPLAY_ENGINE_PROTOCOL *This,
IN CONST H2O_DISPLAY_ENGINE_EVT *Notify
);
struct _H2O_DISPLAY_ENGINE_PROTOCOL {
UINT32 Size;
EFI_GUID Id;
H2O_DISPLAY_ENGINE_INIT_CONSOLE InitConsole;
H2O_DISPLAY_ENGINE_ATTACH_CONSOLE AttachConsole;
H2O_DISPLAY_ENGINE_DETACH_CONSOLE DetachConsole;
H2O_DISPLAY_ENGINE_SUPPORT_CONSOLE SupportConsole;
H2O_DISPLAY_ENGINE_NOTIFY Notify;
};
extern GUID gH2ODisplayEngineProtocolGuid;
#endif