]> git.proxmox.com Git - mirror_edk2.git/blame - InOsEmuPkg/Include/Protocol/EmuPthreadThunk.h
InOsEmuPkg: Fix warnings with GCC44 toolchain
[mirror_edk2.git] / InOsEmuPkg / Include / Protocol / EmuPthreadThunk.h
CommitLineData
949f388f 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
224e1333 5 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
6\r
949f388f 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_PTHREAD_THUNK__ \r
18#define __EMU_PTHREAD_THUNK__\r
19\r
20#define EMU_PTHREAD_THUNK_PROTOCO_GUID \\r
21 { 0x3B1E4B7C, 0x09D8, 0x944F, { 0xA4, 0x08, 0x13, 0x09, 0xEB, 0x8B, 0x44, 0x27 } }\r
22\r
23\r
24typedef struct _EMU_PTREAD_THUNK_PROTOCOL EMU_PTREAD_THUNK_PROTOCOL;\r
25\r
26\r
27typedef \r
28UINTN\r
29(EFIAPI *PTREAD_THUNK_MUTEXT_LOCK) (\r
30 IN VOID *Mutex\r
31 ); \r
32\r
33\r
34typedef \r
35UINTN\r
36(EFIAPI *PTREAD_THUNK_MUTEXT_UNLOCK) (\r
37 IN VOID *Mutex\r
38 ); \r
39\r
40\r
41typedef \r
42UINTN\r
43(EFIAPI *PTREAD_THUNK_MUTEX_TRY_LOCK) (\r
44 IN VOID *Mutex\r
45 ); \r
46\r
47\r
48typedef \r
49VOID *\r
50(EFIAPI *PTREAD_THUNK_MUTEX_INIT) (\r
51 IN VOID\r
52 ); \r
53\r
54\r
55typedef \r
56UINTN\r
57(EFIAPI *PTREAD_THUNK_MUTEX_DISTROY) (\r
58 IN VOID *Mutex\r
59 ); \r
60\r
61\r
62\r
63typedef \r
64VOID *\r
224e1333 65(EFIAPI *PTREAD_THUNK_THEAD_ENTRY) (\r
949f388f 66 IN VOID *Context\r
67 );\r
68\r
69typedef \r
70UINTN\r
71(EFIAPI *PTREAD_THUNK_CREATE_THREAD) (\r
72 IN VOID *Thread,\r
73 IN VOID *Attribute,\r
74 IN PTREAD_THUNK_THEAD_ENTRY Start,\r
75 IN VOID *Context\r
76 );\r
77\r
78typedef \r
79VOID\r
80(EFIAPI *PTREAD_THUNK_EXIT_THREAD) (\r
81 IN VOID *ValuePtr\r
82 ); \r
83\r
84 \r
85typedef \r
86UINTN\r
87(EFIAPI *PTREAD_THUNK_SELF) (\r
88 VOID\r
89 ); \r
90\r
91\r
92struct _EMU_PTREAD_THUNK_PROTOCOL {\r
93 PTREAD_THUNK_MUTEXT_LOCK MutextLock;\r
94 PTREAD_THUNK_MUTEXT_UNLOCK MutexUnlock;\r
95 PTREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock;\r
96 PTREAD_THUNK_MUTEX_INIT MutexInit;\r
97 PTREAD_THUNK_MUTEX_DISTROY MutexDistroy;\r
98 PTREAD_THUNK_CREATE_THREAD CreateThread;\r
99 PTREAD_THUNK_EXIT_THREAD ExitThread;\r
100 PTREAD_THUNK_SELF Self;\r
101};\r
102\r
103extern EFI_GUID gEmuPthreadThunkProtocolGuid;\r
104\r
105#endif\r
106\r