]> git.proxmox.com Git - mirror_edk2.git/blame - InOsEmuPkg/Include/Protocol/EmuThread.h
Clarify the requirements for the Destination parameter of UnicodeStrToAsciiStr.
[mirror_edk2.git] / InOsEmuPkg / 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
7 This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which accompanies this distribution. The full text of the license may be found at\r
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14\r
15**/\r
16\r
17#ifndef __EMU_THREAD_THUNK__\r
18#define __EMU_THREAD_THUNK__\r
19\r
20\r
21typedef struct _EMU_THREAD_THUNK_PROTOCOL EMU_THREAD_THUNK_PROTOCOL;\r
22\r
23\r
24typedef\r
25UINTN\r
26(EFIAPI *THREAD_THUNK_MUTEX_LOCK) (\r
27 IN VOID *Mutex\r
28 );\r
29\r
30\r
31typedef\r
32UINTN\r
33(EFIAPI *THREAD_THUNK_MUTEX_UNLOCK) (\r
34 IN VOID *Mutex\r
35 );\r
36\r
37\r
38typedef\r
39UINTN\r
40(EFIAPI *THREAD_THUNK_MUTEX_TRY_LOCK) (\r
41 IN VOID *Mutex\r
42 );\r
43\r
44\r
45typedef\r
46VOID *\r
47(EFIAPI *THREAD_THUNK_MUTEX_INIT) (\r
48 IN VOID\r
49 );\r
50\r
51\r
52typedef\r
53UINTN\r
54(EFIAPI *THREAD_THUNK_MUTEX_DISTROY) (\r
55 IN VOID *Mutex\r
56 );\r
57\r
58\r
59\r
60typedef\r
61VOID *\r
62(EFIAPI *THREAD_THUNK_THREAD_ENTRY) (\r
63 IN VOID *Context\r
64 );\r
65\r
66typedef\r
67UINTN\r
68(EFIAPI *THREAD_THUNK_CREATE_THREAD) (\r
69 IN VOID *Thread,\r
70 IN VOID *Attribute,\r
71 IN THREAD_THUNK_THREAD_ENTRY Start,\r
72 IN VOID *Context\r
73 );\r
74\r
75typedef\r
76VOID\r
77(EFIAPI *THREAD_THUNK_EXIT_THREAD) (\r
78 IN VOID *ValuePtr\r
79 );\r
80\r
81\r
82typedef\r
83UINTN\r
84(EFIAPI *THREAD_THUNK_SELF) (\r
85 VOID\r
86 );\r
87\r
88\r
89struct _EMU_THREAD_THUNK_PROTOCOL {\r
90 THREAD_THUNK_MUTEX_LOCK MutexLock;\r
91 THREAD_THUNK_MUTEX_UNLOCK MutexUnlock;\r
92 THREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock;\r
93 THREAD_THUNK_MUTEX_INIT MutexInit;\r
94 THREAD_THUNK_MUTEX_DISTROY MutexDistroy;\r
95 THREAD_THUNK_CREATE_THREAD CreateThread;\r
96 THREAD_THUNK_EXIT_THREAD ExitThread;\r
97 THREAD_THUNK_SELF Self;\r
98};\r
99\r
100extern EFI_GUID gEmuThreadThunkProtocolGuid;\r
101\r
102#endif\r
103\r