2 Emulator Thunk to abstract OS services from pure EFI code
4 Copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #ifndef __EMU_PTHREAD_THUNK__
17 #define __EMU_PTHREAD_THUNK__
19 #define EMU_PTHREAD_THUNK_PROTOCO_GUID \
20 { 0x3B1E4B7C, 0x09D8, 0x944F, { 0xA4, 0x08, 0x13, 0x09, 0xEB, 0x8B, 0x44, 0x27 } }
23 typedef struct _EMU_PTREAD_THUNK_PROTOCOL EMU_PTREAD_THUNK_PROTOCOL
;
28 (EFIAPI
*PTREAD_THUNK_MUTEXT_LOCK
) (
35 (EFIAPI
*PTREAD_THUNK_MUTEXT_UNLOCK
) (
42 (EFIAPI
*PTREAD_THUNK_MUTEX_TRY_LOCK
) (
49 (EFIAPI
*PTREAD_THUNK_MUTEX_INIT
) (
56 (EFIAPI
*PTREAD_THUNK_MUTEX_DISTROY
) (
64 (*PTREAD_THUNK_THEAD_ENTRY
) (
70 (EFIAPI
*PTREAD_THUNK_CREATE_THREAD
) (
73 IN PTREAD_THUNK_THEAD_ENTRY Start
,
79 (EFIAPI
*PTREAD_THUNK_EXIT_THREAD
) (
86 (EFIAPI
*PTREAD_THUNK_SELF
) (
91 struct _EMU_PTREAD_THUNK_PROTOCOL
{
92 PTREAD_THUNK_MUTEXT_LOCK MutextLock
;
93 PTREAD_THUNK_MUTEXT_UNLOCK MutexUnlock
;
94 PTREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock
;
95 PTREAD_THUNK_MUTEX_INIT MutexInit
;
96 PTREAD_THUNK_MUTEX_DISTROY MutexDistroy
;
97 PTREAD_THUNK_CREATE_THREAD CreateThread
;
98 PTREAD_THUNK_EXIT_THREAD ExitThread
;
99 PTREAD_THUNK_SELF Self
;
102 extern EFI_GUID gEmuPthreadThunkProtocolGuid
;