]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Library/DxeSmmDriverEntryPoint.h
Changed local variable "ran" to static class member to fix multi-thread build issue
[mirror_edk2.git] / MdePkg / Include / Library / DxeSmmDriverEntryPoint.h
1 /** @file
2 Entry point to a DXE SMM Driver
3
4 Copyright (c) 2006, Intel Corporation<BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef __MODULE_ENTRY_POINT_H__
16 #define __MODULE_ENTRY_POINT_H__
17
18 //
19 // Declare the EFI/UEFI Specification Revision to which this driver is implemented
20 //
21 extern const UINT32 _gUefiDriverRevision;
22
23 //
24 // Declare the number of entry points in the image.
25 //
26 extern const UINT8 _gDriverEntryPointCount;
27
28 //
29 // Declare the number of unload handler in the image.
30 //
31 extern const UINT8 _gDriverUnloadImageCount;
32
33 /**
34 Enrty point to DXE SMM Driver.
35
36 @param ImageHandle ImageHandle of the loaded driver.
37 @param SystemTable Pointer to the EFI System Table.
38
39 @retval EFI_SUCCESS One or more of the drivers returned a success code.
40 @retval !EFI_SUCESS The return status from the last driver entry point in the list.
41
42 **/
43 EFI_STATUS
44 EFIAPI
45 _ModuleEntryPoint (
46 IN EFI_HANDLE ImageHandle,
47 IN EFI_SYSTEM_TABLE *SystemTable
48 );
49
50 /**
51 Enrty point wrapper of DXE SMM Driver.
52
53 @param ImageHandle ImageHandle of the loaded driver.
54 @param SystemTable Pointer to the EFI System Table.
55
56 @retval EFI_SUCCESS One or more of the drivers returned a success code.
57 @retval !EFI_SUCESS The return status from the last driver entry point in the list.
58
59 **/
60 EFI_STATUS
61 EFIAPI
62 EfiMain (
63 IN EFI_HANDLE ImageHandle,
64 IN EFI_SYSTEM_TABLE *SystemTable
65 );
66
67 /**
68 Computes the cummulative return status for the driver entry point and perform
69 a long jump back into DriverEntryPoint().
70
71 @param Status Status returned by the driver that is exiting.
72
73 **/
74 VOID
75 EFIAPI
76 ExitDriver (
77 IN EFI_STATUS Status
78 );
79
80 /**
81 Call constructs for all libraries. Automatics Generated by tool.
82
83 @param ImageHandle ImageHandle of the loaded driver.
84 @param SystemTable Pointer to the EFI System Table.
85
86 **/
87 VOID
88 EFIAPI
89 ProcessLibraryConstructorList (
90 IN EFI_HANDLE ImageHandle,
91 IN EFI_SYSTEM_TABLE *SystemTable
92 );
93
94 /**
95 Call destructors for all libraries. Automatics Generated by tool.
96
97 @param ImageHandle ImageHandle of the loaded driver.
98 @param SystemTable Pointer to the EFI System Table.
99
100 **/
101 VOID
102 EFIAPI
103 ProcessLibraryDestructorList (
104 IN EFI_HANDLE ImageHandle,
105 IN EFI_SYSTEM_TABLE *SystemTable
106 );
107
108
109 /**
110 Call the list of driver entry points. Automatics Generated by tool.
111
112 @param ImageHandle ImageHandle of the loaded driver.
113 @param SystemTable Pointer to the EFI System Table.
114
115 @return Status returned by entry points of drivers.
116
117 **/
118 EFI_STATUS
119 EFIAPI
120 ProcessModuleEntryPointList (
121 IN EFI_HANDLE ImageHandle,
122 IN EFI_SYSTEM_TABLE *SystemTable
123 );
124
125
126 /**
127 Call the unload handlers for all the modules. Automatics Generated by tool.
128
129 @param ImageHandle ImageHandle of the loaded driver.
130
131 @return Status returned by unload handlers of drivers.
132
133 **/
134 EFI_STATUS
135 EFIAPI
136 ProcessModuleUnloadList (
137 IN EFI_HANDLE ImageHandle
138 );
139
140 #endif