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 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 #ifndef __EMU_THREAD_THUNK__
18 #define __EMU_THREAD_THUNK__
21 typedef struct _EMU_THREAD_THUNK_PROTOCOL EMU_THREAD_THUNK_PROTOCOL
;
26 (EFIAPI
*THREAD_THUNK_MUTEX_LOCK
) (
33 (EFIAPI
*THREAD_THUNK_MUTEX_UNLOCK
) (
40 (EFIAPI
*THREAD_THUNK_MUTEX_TRY_LOCK
) (
47 (EFIAPI
*THREAD_THUNK_MUTEX_INIT
) (
54 (EFIAPI
*THREAD_THUNK_MUTEX_DISTROY
) (
62 (EFIAPI
*THREAD_THUNK_THREAD_ENTRY
) (
68 (EFIAPI
*THREAD_THUNK_CREATE_THREAD
) (
71 IN THREAD_THUNK_THREAD_ENTRY Start
,
77 (EFIAPI
*THREAD_THUNK_EXIT_THREAD
) (
84 (EFIAPI
*THREAD_THUNK_SELF
) (
89 struct _EMU_THREAD_THUNK_PROTOCOL
{
90 THREAD_THUNK_MUTEX_LOCK MutexLock
;
91 THREAD_THUNK_MUTEX_UNLOCK MutexUnlock
;
92 THREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock
;
93 THREAD_THUNK_MUTEX_INIT MutexInit
;
94 THREAD_THUNK_MUTEX_DISTROY MutexDistroy
;
95 THREAD_THUNK_CREATE_THREAD CreateThread
;
96 THREAD_THUNK_EXIT_THREAD ExitThread
;
97 THREAD_THUNK_SELF Self
;
100 extern EFI_GUID gEmuThreadThunkProtocolGuid
;