]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/Include/Protocol/EmuThread.h
EmulatorPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / EmulatorPkg / Include / Protocol / EmuThread.h
CommitLineData
10d1be3e 1/** @file\r
2 Emulator Thunk to abstract OS services from pure EFI code\r
3\r
4 Copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>\r
5 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
6\r
e3ba31da 7 SPDX-License-Identifier: BSD-2-Clause-Patent\r
10d1be3e 8\r
9**/\r
10\r
11#ifndef __EMU_THREAD_THUNK__\r
12#define __EMU_THREAD_THUNK__\r
13\r
14\r
15typedef struct _EMU_THREAD_THUNK_PROTOCOL EMU_THREAD_THUNK_PROTOCOL;\r
16\r
17\r
18typedef\r
19UINTN\r
20(EFIAPI *THREAD_THUNK_MUTEX_LOCK) (\r
21 IN VOID *Mutex\r
22 );\r
23\r
24\r
25typedef\r
26UINTN\r
27(EFIAPI *THREAD_THUNK_MUTEX_UNLOCK) (\r
28 IN VOID *Mutex\r
29 );\r
30\r
31\r
32typedef\r
33UINTN\r
34(EFIAPI *THREAD_THUNK_MUTEX_TRY_LOCK) (\r
35 IN VOID *Mutex\r
36 );\r
37\r
38\r
39typedef\r
40VOID *\r
41(EFIAPI *THREAD_THUNK_MUTEX_INIT) (\r
42 IN VOID\r
43 );\r
44\r
45\r
46typedef\r
47UINTN\r
48(EFIAPI *THREAD_THUNK_MUTEX_DISTROY) (\r
49 IN VOID *Mutex\r
50 );\r
51\r
52\r
53\r
54typedef\r
55VOID *\r
56(EFIAPI *THREAD_THUNK_THREAD_ENTRY) (\r
57 IN VOID *Context\r
58 );\r
59\r
60typedef\r
61UINTN\r
62(EFIAPI *THREAD_THUNK_CREATE_THREAD) (\r
63 IN VOID *Thread,\r
64 IN VOID *Attribute,\r
65 IN THREAD_THUNK_THREAD_ENTRY Start,\r
66 IN VOID *Context\r
67 );\r
68\r
69typedef\r
70VOID\r
71(EFIAPI *THREAD_THUNK_EXIT_THREAD) (\r
72 IN VOID *ValuePtr\r
73 );\r
74\r
75\r
76typedef\r
77UINTN\r
78(EFIAPI *THREAD_THUNK_SELF) (\r
79 VOID\r
80 );\r
81\r
82\r
83struct _EMU_THREAD_THUNK_PROTOCOL {\r
84 THREAD_THUNK_MUTEX_LOCK MutexLock;\r
85 THREAD_THUNK_MUTEX_UNLOCK MutexUnlock;\r
86 THREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock;\r
87 THREAD_THUNK_MUTEX_INIT MutexInit;\r
88 THREAD_THUNK_MUTEX_DISTROY MutexDistroy;\r
89 THREAD_THUNK_CREATE_THREAD CreateThread;\r
90 THREAD_THUNK_EXIT_THREAD ExitThread;\r
91 THREAD_THUNK_SELF Self;\r
92};\r
93\r
94extern EFI_GUID gEmuThreadThunkProtocolGuid;\r
95\r
96#endif\r
97\r