1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /** @file
- Emulator Thunk to abstract OS services from pure EFI code
- Copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>
- Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef __EMU_THREAD_THUNK__
- #define __EMU_THREAD_THUNK__
- typedef struct _EMU_THREAD_THUNK_PROTOCOL EMU_THREAD_THUNK_PROTOCOL;
- typedef
- UINTN
- (EFIAPI *THREAD_THUNK_MUTEX_LOCK)(
- IN VOID *Mutex
- );
- typedef
- UINTN
- (EFIAPI *THREAD_THUNK_MUTEX_UNLOCK)(
- IN VOID *Mutex
- );
- typedef
- UINTN
- (EFIAPI *THREAD_THUNK_MUTEX_TRY_LOCK)(
- IN VOID *Mutex
- );
- typedef
- VOID *
- (EFIAPI *THREAD_THUNK_MUTEX_INIT)(
- IN VOID
- );
- typedef
- UINTN
- (EFIAPI *THREAD_THUNK_MUTEX_DISTROY)(
- IN VOID *Mutex
- );
- typedef
- VOID *
- (EFIAPI *THREAD_THUNK_THREAD_ENTRY)(
- IN VOID *Context
- );
- typedef
- UINTN
- (EFIAPI *THREAD_THUNK_CREATE_THREAD)(
- IN VOID *Thread,
- IN VOID *Attribute,
- IN THREAD_THUNK_THREAD_ENTRY Start,
- IN VOID *Context
- );
- typedef
- VOID
- (EFIAPI *THREAD_THUNK_EXIT_THREAD)(
- IN VOID *ValuePtr
- );
- typedef
- UINTN
- (EFIAPI *THREAD_THUNK_SELF)(
- VOID
- );
- struct _EMU_THREAD_THUNK_PROTOCOL {
- THREAD_THUNK_MUTEX_LOCK MutexLock;
- THREAD_THUNK_MUTEX_UNLOCK MutexUnlock;
- THREAD_THUNK_MUTEX_TRY_LOCK MutexTryLock;
- THREAD_THUNK_MUTEX_INIT MutexInit;
- THREAD_THUNK_MUTEX_DISTROY MutexDistroy;
- THREAD_THUNK_CREATE_THREAD CreateThread;
- THREAD_THUNK_EXIT_THREAD ExitThread;
- THREAD_THUNK_SELF Self;
- };
- extern EFI_GUID gEmuThreadThunkProtocolGuid;
- #endif
|