2 Emulator Thunk to abstract OS services from pure EFI code
4 Copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>
5 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
11 #ifndef __EMU_THREAD_THUNK__
12 #define __EMU_THREAD_THUNK__
14 typedef struct _EMU_THREAD_THUNK_PROTOCOL EMU_THREAD_THUNK_PROTOCOL
;
18 (EFIAPI
*THREAD_THUNK_MUTEX_LOCK
)(
24 (EFIAPI
*THREAD_THUNK_MUTEX_UNLOCK
)(
30 (EFIAPI
*THREAD_THUNK_MUTEX_TRY_LOCK
)(
36 (EFIAPI
*THREAD_THUNK_MUTEX_INIT
)(
42 (EFIAPI
*THREAD_THUNK_MUTEX_DISTROY
)(
48 (EFIAPI
*THREAD_THUNK_THREAD_ENTRY
)(
54 (EFIAPI
*THREAD_THUNK_CREATE_THREAD
)(
57 IN THREAD_THUNK_THREAD_ENTRY Start
,
63 (EFIAPI
*THREAD_THUNK_EXIT_THREAD
)(
69 (EFIAPI
*THREAD_THUNK_SELF
)(
73 struct _EMU_THREAD_THUNK_PROTOCOL
{
74 THREAD_THUNK_MUTEX_LOCK MutexLock
;
75 THREAD_THUNK_MUTEX_UNLOCK MutexUnlock
;
76 THREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock
;
77 THREAD_THUNK_MUTEX_INIT MutexInit
;
78 THREAD_THUNK_MUTEX_DISTROY MutexDistroy
;
79 THREAD_THUNK_CREATE_THREAD CreateThread
;
80 THREAD_THUNK_EXIT_THREAD ExitThread
;
81 THREAD_THUNK_SELF Self
;
84 extern EFI_GUID gEmuThreadThunkProtocolGuid
;