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_PTHREAD_THUNK__
18 #define __EMU_PTHREAD_THUNK__
20 #define EMU_PTHREAD_THUNK_PROTOCO_GUID \
21 { 0x3B1E4B7C, 0x09D8, 0x944F, { 0xA4, 0x08, 0x13, 0x09, 0xEB, 0x8B, 0x44, 0x27 } }
24 typedef struct _EMU_PTREAD_THUNK_PROTOCOL EMU_PTREAD_THUNK_PROTOCOL
;
29 (EFIAPI
*PTREAD_THUNK_MUTEXT_LOCK
) (
36 (EFIAPI
*PTREAD_THUNK_MUTEXT_UNLOCK
) (
43 (EFIAPI
*PTREAD_THUNK_MUTEX_TRY_LOCK
) (
50 (EFIAPI
*PTREAD_THUNK_MUTEX_INIT
) (
57 (EFIAPI
*PTREAD_THUNK_MUTEX_DISTROY
) (
65 (EFIAPI
*PTREAD_THUNK_THEAD_ENTRY
) (
71 (EFIAPI
*PTREAD_THUNK_CREATE_THREAD
) (
74 IN PTREAD_THUNK_THEAD_ENTRY Start
,
80 (EFIAPI
*PTREAD_THUNK_EXIT_THREAD
) (
87 (EFIAPI
*PTREAD_THUNK_SELF
) (
92 struct _EMU_PTREAD_THUNK_PROTOCOL
{
93 PTREAD_THUNK_MUTEXT_LOCK MutextLock
;
94 PTREAD_THUNK_MUTEXT_UNLOCK MutexUnlock
;
95 PTREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock
;
96 PTREAD_THUNK_MUTEX_INIT MutexInit
;
97 PTREAD_THUNK_MUTEX_DISTROY MutexDistroy
;
98 PTREAD_THUNK_CREATE_THREAD CreateThread
;
99 PTREAD_THUNK_EXIT_THREAD ExitThread
;
100 PTREAD_THUNK_SELF Self
;
103 extern EFI_GUID gEmuPthreadThunkProtocolGuid
;