]> git.proxmox.com Git - mirror_edk2.git/blob - RedfishPkg/RedfishConfigHandler/RedfishConfigHandlerCommon.h
RedfishPkg/RedfishConfigHandler: EDKII RedfishConfigHandler Protocol
[mirror_edk2.git] / RedfishPkg / RedfishConfigHandler / RedfishConfigHandlerCommon.h
1 /** @file
2 Common Header file for Redfish Configuration Handler UEFI driver
3 and DXE driver.
4
5 (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
6
7 SPDX-License-Identifier: BSD-2-Clause-Patent
8
9 **/
10
11 #ifndef EFI_REDFISH_CONFIG_HANDLER_COMMON_H_
12 #define EFI_REDFISH_CONFIG_HANDLER_COMMON_H_
13
14 #include <Uefi.h>
15
16 //
17 // Libraries
18 //
19 #include <Library/BaseLib.h>
20 #include <Library/BaseMemoryLib.h>
21 #include <Library/DebugLib.h>
22 #include <Library/MemoryAllocationLib.h>
23 #include <Library/NetLib.h>
24 #include <Library/UefiBootServicesTableLib.h>
25 #include <Library/UefiDriverEntryPoint.h>
26 #include <Library/UefiLib.h>
27
28 //
29 // Consumed Protocols
30 //
31 #include <Protocol/EdkIIRedfishCredential.h>
32 #include <Protocol/EdkIIRedfishConfigHandler.h>
33
34 //
35 // Driver Version
36 //
37 #define REDFISH_CONFIG_VERSION 0x00000001
38
39 ///
40 /// Internal structure used by Redfish Config DXE driver.
41 ///
42 typedef struct {
43 UINT32 CallerId; ///< Caller ID used to indicate Redfish Config Handler
44 ///< has been initiated
45 EFI_HANDLE Image; ///< Image handle of Redfish Config Driver
46 EFI_EVENT Event; ///< Event for the notification of EFI_REDFISH_CONFIG_HANDLER_PROTOCOL
47 REDFISH_CONFIG_SERVICE_INFORMATION RedfishServiceInfo; /// Redfish Service information discovered
48 } REDFISH_CONFIG_DRIVER_DATA;
49
50 /**
51 Common code of unloading image for both UEFI/DXE Redfish Configuration drivers.
52
53 @param[in] ImageHandle Handle that identifies the image to be unloaded.
54
55 @retval EFI_SUCCESS The image has been unloaded.
56
57 **/
58 EFI_STATUS
59 RedfishConfigDriverCommonUnload (
60 IN EFI_HANDLE ImageHandle
61 );
62
63 /**
64 This is the common code for Redfish configuration UEFI and DXE driver
65 initialization.
66
67 @param[in] ImageHandle The firmware allocated handle for the UEFI image.
68 @param[in] SystemTable A pointer to the EFI System Table.
69
70 @retval EFI_SUCCESS The operation completed successfully.
71 @retval Others An unexpected error occurred.
72 **/
73 EFI_STATUS
74 RedfishConfigCommonInit (
75 IN EFI_HANDLE ImageHandle,
76 IN EFI_SYSTEM_TABLE *SystemTable
77 );
78
79 /**
80 This is the common code to stop EDK2 Redfish feature driver.
81
82 @retval EFI_SUCCESS All EDK2 Redfish feature drivers are
83 stopped.
84 @retval Others An unexpected error occurred.
85 **/
86 EFI_STATUS
87 RedfishConfigCommonStop (
88 VOID
89 );
90
91 /**
92 Callback function executed when a Redfish Config Handler Protocol is installed
93 by EDK2 Redfish Feature Drivers.
94
95 **/
96 VOID
97 RedfishConfigHandlerInitialization (
98 VOID
99 );
100
101 #endif