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__
15 typedef struct _EMU_THREAD_THUNK_PROTOCOL EMU_THREAD_THUNK_PROTOCOL
;
20 (EFIAPI
*THREAD_THUNK_MUTEX_LOCK
) (
27 (EFIAPI
*THREAD_THUNK_MUTEX_UNLOCK
) (
34 (EFIAPI
*THREAD_THUNK_MUTEX_TRY_LOCK
) (
41 (EFIAPI
*THREAD_THUNK_MUTEX_INIT
) (
48 (EFIAPI
*THREAD_THUNK_MUTEX_DISTROY
) (
56 (EFIAPI
*THREAD_THUNK_THREAD_ENTRY
) (
62 (EFIAPI
*THREAD_THUNK_CREATE_THREAD
) (
65 IN THREAD_THUNK_THREAD_ENTRY Start
,
71 (EFIAPI
*THREAD_THUNK_EXIT_THREAD
) (
78 (EFIAPI
*THREAD_THUNK_SELF
) (
83 struct _EMU_THREAD_THUNK_PROTOCOL
{
84 THREAD_THUNK_MUTEX_LOCK MutexLock
;
85 THREAD_THUNK_MUTEX_UNLOCK MutexUnlock
;
86 THREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock
;
87 THREAD_THUNK_MUTEX_INIT MutexInit
;
88 THREAD_THUNK_MUTEX_DISTROY MutexDistroy
;
89 THREAD_THUNK_CREATE_THREAD CreateThread
;
90 THREAD_THUNK_EXIT_THREAD ExitThread
;
91 THREAD_THUNK_SELF Self
;
94 extern EFI_GUID gEmuThreadThunkProtocolGuid
;