]> git.proxmox.com Git - mirror_edk2.git/commitdiff
InOsEmuPkg: Rename EmuPthreadThunk to EmuThreadThunk
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 16 May 2011 04:47:40 +0000 (04:47 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 16 May 2011 04:47:40 +0000 (04:47 +0000)
This reflects that the threading system may vary in the
OS/thunk layer.

Signed-off-by: jljusten
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11662 6f19259b-4bc3-4df7-8a09-765794883524

InOsEmuPkg/CpuRuntimeDxe/Cpu.inf
InOsEmuPkg/CpuRuntimeDxe/CpuDriver.h
InOsEmuPkg/CpuRuntimeDxe/MpService.c
InOsEmuPkg/InOsEmuPkg.dec
InOsEmuPkg/Include/Protocol/EmuPthreadThunk.h [deleted file]
InOsEmuPkg/Include/Protocol/EmuThread.h [new file with mode: 0644]
InOsEmuPkg/Unix/Sec/Gasket.h
InOsEmuPkg/Unix/Sec/Pthreads.c
InOsEmuPkg/Unix/Sec/SecMain.h
InOsEmuPkg/Unix/Sec/SecMain.inf

index baaf927852a1c86dff26ca7969387633a8b68573..6fc240c907a031b4d73af8b1209da0428c04dbf8 100644 (file)
@@ -2,16 +2,17 @@
 # Component description file for Cpu module.\r
 #\r
 # This CPU module abstracts the interrupt subsystem of a platform and the CPU-specific setjump-long pair.\r
-# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+#\r
+# Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #  which accompanies this distribution. The full text of the license may be found at\r
 #  http://opensource.org/licenses/bsd-license.php\r
+#\r
 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
-#\r
 ##\r
 \r
 [Defines]\r
@@ -62,7 +63,7 @@
   gEfiHiiProtocolGuid                           # PROTOCOL SOMETIMES_CONSUMED\r
   gEfiCpuIo2ProtocolGuid                        # PROTOCOL ALWAYS_PRODUCED\r
   gEfiCpuArchProtocolGuid                       # PROTOCOL ALWAYS_PRODUCED\r
-  gEmuPthreadThunkProtocolGuid\r
+  gEmuThreadThunkProtocolGuid\r
   gEfiMpServiceProtocolGuid\r
 \r
 [Pcd]\r
index 2faf65be8f2a9550c4fe2e0849c64f5de18167d3..43b683014a9ec325c562f7a6bccd8b58f9caa613 100644 (file)
@@ -1,7 +1,8 @@
 /*++ @file\r
 \r
-Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
 Portions copyright (c) 2011, Apple Inc. All rights reserved.\r
+\r
 This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
@@ -23,7 +24,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/Smbios.h>\r
 #include <Protocol/FrameworkHii.h>\r
 #include <Protocol/MpService.h>\r
-#include <Protocol/EmuPthreadThunk.h>\r
+#include <Protocol/EmuThread.h>\r
 #include <Protocol/CpuIo2.h>\r
 \r
 #include <Guid/DataHubRecords.h>\r
index 6bb9dea2b37bf7dc13cb1a07014f5cb54d3d4554..f49c55afa08ff69ac4c59726de2d56f4658a1b1e 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
-  Construct MP Services Protocol on top of pthreads. This code makes APs show up \r
-  in the emulator. PcdEmuApCount is the number of APs the emulator should produce.\r
+  Construct MP Services Protocol on top of the EMU Thread protocol.\r
+  This code makes APs show up in the emulator. PcdEmuApCount is the\r
+  number of APs the emulator should produce.\r
 \r
   The MP Services Protocol provides a generalized way of performing following tasks:\r
     - Retrieving information of multi-processor environment and MP-related status of\r
@@ -44,7 +45,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 \r
 MP_SYSTEM_DATA                gMPSystem;\r
-EMU_PTREAD_THUNK_PROTOCOL     *gPthread = NULL; \r
+EMU_THREAD_THUNK_PROTOCOL     *gThread = NULL; \r
 EFI_EVENT                     gReadToBootEvent;\r
 BOOLEAN                       gReadToBoot = FALSE;\r
 UINTN                         gPollInterval;\r
@@ -74,10 +75,10 @@ SetApProcedure (
   IN   VOID                  *ProcedureArgument\r
   )\r
 {\r
-  gPthread->MutextLock (Processor->ProcedureLock);\r
+  gThread->MutexLock (Processor->ProcedureLock);\r
   Processor->Parameter  = ProcedureArgument;\r
   Processor->Procedure  = Procedure;\r
-  gPthread->MutexUnlock (Processor->ProcedureLock);\r
+  gThread->MutexUnlock (Processor->ProcedureLock);\r
 }\r
 \r
 \r
@@ -97,9 +98,9 @@ GetNextBlockedNumber (
       continue;\r
     }\r
 \r
-    gPthread->MutextLock (Data->StateLock);\r
+    gThread->MutexLock (Data->StateLock);\r
     ProcessorState = Data->State;\r
-    gPthread->MutexUnlock (Data->StateLock);\r
+    gThread->MutexUnlock (Data->StateLock);\r
 \r
     if (ProcessorState == CPU_STATE_BLOCKED) {\r
       *NextNumber = Number;\r
@@ -433,9 +434,9 @@ CpuMpServicesStartupAllAps (
     if (ProcessorData->State == CPU_STATE_IDLE) {\r
       gMPSystem.StartCount++;\r
 \r
-      gPthread->MutextLock (&ProcessorData->StateLock);\r
+      gThread->MutexLock (&ProcessorData->StateLock);\r
       ProcessorData->State = APInitialState;\r
-      gPthread->MutexUnlock (&ProcessorData->StateLock);\r
+      gThread->MutexUnlock (&ProcessorData->StateLock);\r
 \r
       if (SingleThread) {\r
         APInitialState = CPU_STATE_BLOCKED;\r
@@ -462,9 +463,9 @@ CpuMpServicesStartupAllAps (
         continue;\r
       }\r
 \r
-      gPthread->MutextLock (ProcessorData->StateLock);\r
+      gThread->MutexLock (ProcessorData->StateLock);\r
       ProcessorState = ProcessorData->State;\r
-      gPthread->MutexUnlock (ProcessorData->StateLock);\r
+      gThread->MutexUnlock (ProcessorData->StateLock);\r
 \r
       switch (ProcessorState) {\r
       case CPU_STATE_READY:\r
@@ -649,14 +650,14 @@ CpuMpServicesStartupThisAP (
   SetApProcedure (&gMPSystem.ProcessorData[ProcessorNumber], Procedure, ProcedureArgument);\r
 \r
   while (TRUE) {\r
-    gPthread->MutextLock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+    gThread->MutexLock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
     if (gMPSystem.ProcessorData[ProcessorNumber].State == CPU_STATE_FINISHED) {\r
       gMPSystem.ProcessorData[ProcessorNumber].State = CPU_STATE_IDLE;\r
-      gPthread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+      gThread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
       break;\r
     }\r
 \r
-    gPthread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+    gThread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
 \r
     if ((TimeoutInMicroseconds != 0) && (Timeout < 0)) {\r
       gMPSystem.WaitEvent = WaitEvent;\r
@@ -821,7 +822,7 @@ CpuMpServicesEnableDisableAP (
     return EFI_UNSUPPORTED;\r
   }\r
 \r
-  gPthread->MutextLock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+  gThread->MutexLock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
   \r
   if (EnableAP) {\r
     if ((gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag & PROCESSOR_ENABLED_BIT) == 0 ) {\r
@@ -840,7 +841,7 @@ CpuMpServicesEnableDisableAP (
     gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag |= (*HealthFlag & PROCESSOR_HEALTH_STATUS_BIT);\r
   }\r
   \r
-  gPthread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+  gThread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
   \r
   return EFI_SUCCESS;\r
 }\r
@@ -884,7 +885,7 @@ CpuMpServicesWhoAmI (
     return EFI_INVALID_PARAMETER;\r
   }\r
   \r
-  ProcessorId = gPthread->Self ();\r
+  ProcessorId = gThread->Self ();\r
   for (Index = 0; Index < gMPSystem.NumberOfProcessors; Index++) {\r
     if (gMPSystem.ProcessorData[Index].Info.ProcessorId == ProcessorId) {\r
       break;\r
@@ -942,12 +943,12 @@ CpuCheckAllAPsStatus (
     // context. Meaning deadlock. Which is a bad thing.\r
     // So, try lock it. If we can get it, cool, do our thing.\r
     // otherwise, just dump out & try again on the next iteration.\r
-    Status = gPthread->MutexTryLock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+    Status = gThread->MutexTryLock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
     if (EFI_ERROR(Status)) {\r
       return;\r
     }\r
     ProcessorState = gMPSystem.ProcessorData[ProcessorNumber].State;\r
-    gPthread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+    gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
 \r
     switch (ProcessorState) {\r
     case CPU_STATE_READY:\r
@@ -960,9 +961,9 @@ CpuCheckAllAPsStatus (
         if (!EFI_ERROR (Status)) {\r
           NextData = &gMPSystem.ProcessorData[NextNumber];\r
 \r
-          gPthread->MutextLock (&NextData->ProcedureLock);\r
+          gThread->MutexLock (&NextData->ProcedureLock);\r
           NextData->State = CPU_STATE_READY;\r
-          gPthread->MutexUnlock (&NextData->ProcedureLock);\r
+          gThread->MutexUnlock (&NextData->ProcedureLock);\r
 \r
           SetApProcedure (NextData, gMPSystem.Procedure, gMPSystem.ProcedureArgument);\r
         }\r
@@ -1009,12 +1010,12 @@ CpuCheckThisAPStatus (
   // So, try lock it. If we can get it, cool, do our thing.\r
   // otherwise, just dump out & try again on the next iteration.\r
   //\r
-  Status = gPthread->MutexTryLock (ProcessorData->StateLock);\r
+  Status = gThread->MutexTryLock (ProcessorData->StateLock);\r
   if (EFI_ERROR(Status)) {\r
     return;\r
   }\r
   ProcessorState = ProcessorData->State;\r
-  gPthread->MutexUnlock (ProcessorData->StateLock);\r
+  gThread->MutexUnlock (ProcessorData->StateLock);\r
 \r
   if (ProcessorState == CPU_STATE_FINISHED) {\r
     Status = gBS->SetTimer (ProcessorData->CheckThisAPEvent, TimerCancel, 0);\r
@@ -1023,9 +1024,9 @@ CpuCheckThisAPStatus (
     Status = gBS->SignalEvent (gMPSystem.WaitEvent);\r
     ASSERT_EFI_ERROR (Status);\r
     \r
-    gPthread->MutextLock (ProcessorData->StateLock);\r
+    gThread->MutexLock (ProcessorData->StateLock);\r
     ProcessorData->State = CPU_STATE_IDLE;\r
-    gPthread->MutexUnlock (ProcessorData->StateLock);\r
+    gThread->MutexUnlock (ProcessorData->StateLock);\r
   }\r
 \r
   return ;\r
@@ -1051,7 +1052,7 @@ FillInProcessorInformation (
 \r
   ProcessorData = &gMPSystem.ProcessorData[ProcessorNumber];\r
   \r
-  gMPSystem.ProcessorData[ProcessorNumber].Info.ProcessorId  = gPthread->Self ();\r
+  gMPSystem.ProcessorData[ProcessorNumber].Info.ProcessorId  = gThread->Self ();\r
   gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag   = PROCESSOR_ENABLED_BIT | PROCESSOR_HEALTH_STATUS_BIT;\r
   if (BSP) {\r
     gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag |= PROCESSOR_AS_BSP_BIT;\r
@@ -1064,8 +1065,8 @@ FillInProcessorInformation (
   \r
   gMPSystem.ProcessorData[ProcessorNumber].Procedure        = NULL;\r
   gMPSystem.ProcessorData[ProcessorNumber].Parameter        = NULL;\r
-  gMPSystem.ProcessorData[ProcessorNumber].StateLock        = gPthread->MutexInit ();\r
-  gMPSystem.ProcessorData[ProcessorNumber].ProcedureLock    = gPthread->MutexInit ();\r
+  gMPSystem.ProcessorData[ProcessorNumber].StateLock        = gThread->MutexInit ();\r
+  gMPSystem.ProcessorData[ProcessorNumber].ProcedureLock    = gThread->MutexInit ();\r
 \r
   return EFI_SUCCESS;\r
 }\r
@@ -1084,31 +1085,31 @@ CpuDriverApIdolLoop (
   ProcessorNumber = (UINTN)Context;\r
   ProcessorData = &gMPSystem.ProcessorData[ProcessorNumber];\r
     \r
-  ProcessorData->Info.ProcessorId = gPthread->Self ();\r
+  ProcessorData->Info.ProcessorId = gThread->Self ();\r
  \r
   while (TRUE) {\r
     //\r
     // Make a local copy on the stack to be extra safe\r
     //\r
-    gPthread->MutextLock (ProcessorData->ProcedureLock);\r
+    gThread->MutexLock (ProcessorData->ProcedureLock);\r
     Procedure = ProcessorData->Procedure;\r
     Parameter = ProcessorData->Parameter;\r
-    gPthread->MutexUnlock (ProcessorData->ProcedureLock);\r
+    gThread->MutexUnlock (ProcessorData->ProcedureLock);\r
   \r
     if (Procedure != NULL) {\r
-      gPthread->MutextLock (ProcessorData->StateLock);\r
+      gThread->MutexLock (ProcessorData->StateLock);\r
       ProcessorData->State = CPU_STATE_BUSY;\r
-      gPthread->MutexUnlock (ProcessorData->StateLock);\r
+      gThread->MutexUnlock (ProcessorData->StateLock);\r
   \r
       Procedure (Parameter);\r
     \r
-      gPthread->MutextLock (ProcessorData->ProcedureLock);\r
+      gThread->MutexLock (ProcessorData->ProcedureLock);\r
       ProcessorData->Procedure = NULL;\r
-      gPthread->MutexUnlock (ProcessorData->ProcedureLock);\r
+      gThread->MutexUnlock (ProcessorData->ProcedureLock);\r
   \r
-      gPthread->MutextLock (ProcessorData->StateLock);\r
+      gThread->MutexLock (ProcessorData->StateLock);\r
       ProcessorData->State = CPU_STATE_FINISHED;\r
-      gPthread->MutexUnlock (ProcessorData->StateLock);  \r
+      gThread->MutexUnlock (ProcessorData->StateLock);  \r
     }\r
     \r
     // Poll 5 times a seconds, 200ms\r
@@ -1163,7 +1164,7 @@ InitializeMpSystemData (
     \r
     FillInProcessorInformation (FALSE, Index);\r
     \r
-    Status = gPthread->CreateThread (\r
+    Status = gThread->CreateThread (\r
                         (VOID *)&gMPSystem.ProcessorData[Index].Info.ProcessorId, \r
                         NULL,\r
                         CpuDriverApIdolLoop,\r
@@ -1217,13 +1218,13 @@ CpuMpServicesInit (
 \r
   MaxCpus = 1; // BSP\r
   \r
-  IoThunk = GetIoThunkInstance (&gEmuPthreadThunkProtocolGuid, 0);\r
+  IoThunk = GetIoThunkInstance (&gEmuThreadThunkProtocolGuid, 0);\r
   if (IoThunk != NULL) {\r
     Status = IoThunk->Open (IoThunk);\r
     if (!EFI_ERROR (Status)) {\r
       if (IoThunk->ConfigString != NULL) {\r
         MaxCpus += StrDecimalToUintn (IoThunk->ConfigString);\r
-        gPthread = IoThunk->Interface;\r
+        gThread = IoThunk->Interface;\r
       }\r
     }\r
   }\r
index f49b2c73e73dd975e56e96c2cb4bff8809b92c88..9d49e6b642b4bb7d8b5a30dc465b83f78830b519 100644 (file)
@@ -2,7 +2,7 @@
 #\r
 # This is the Emu Emulation Environment Platform\r
 #\r
-# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>\r
 # Portions copyright (c) 2011, Apple Inc. All rights reserved. \r
 #\r
 #    This program and the accompanying materials are licensed and made available \r
@@ -35,7 +35,7 @@
   gEmuThunkProtocolGuid          = { 0x398DCA31, 0x3505, 0xDB47, { 0xBD, 0x93, 0x1D, 0x38, 0x5F, 0x79, 0x13, 0x15 } }\r
   gEmuIoThunkProtocolGuid        = { 0x453368F6, 0x7C85, 0x434A, { 0xA9, 0x8A, 0x72, 0xD1, 0xB7, 0xFF, 0xA9, 0x26 } }\r
   gEmuGraphicsWindowProtocolGuid = { 0x30FD316A, 0x6728, 0x2E41, { 0xA6, 0x90, 0x0D, 0x13, 0x33, 0xD8, 0xCA, 0xC1 } }\r
-  gEmuPthreadThunkProtocolGuid   = { 0x3B1E4B7C, 0x09D8, 0x944F, { 0xA4, 0x08, 0x13, 0x09, 0xEB, 0x8B, 0x44, 0x27 } }\r
+  gEmuThreadThunkProtocolGuid    = { 0x3B1E4B7C, 0x09D8, 0x944F, { 0xA4, 0x08, 0x13, 0x09, 0xEB, 0x8B, 0x44, 0x27 } }\r
 \r
 [Ppis]\r
   gEmuThunkPpiGuid                  = { 0xE113F896, 0x75CF, 0xF640, { 0x81, 0x7F, 0xC8, 0x5A, 0x79, 0xE8, 0xAE, 0x67 } }\r
diff --git a/InOsEmuPkg/Include/Protocol/EmuPthreadThunk.h b/InOsEmuPkg/Include/Protocol/EmuPthreadThunk.h
deleted file mode 100644 (file)
index d5c41a0..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/** @file\r
-  Emulator Thunk to abstract OS services from pure EFI code\r
-\r
-  Copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>\r
-  Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
-\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef __EMU_PTHREAD_THUNK__ \r
-#define __EMU_PTHREAD_THUNK__\r
-\r
-#define EMU_PTHREAD_THUNK_PROTOCO_GUID  \\r
- { 0x3B1E4B7C, 0x09D8, 0x944F, { 0xA4, 0x08, 0x13, 0x09, 0xEB, 0x8B, 0x44, 0x27 } }\r
-\r
-\r
-typedef struct _EMU_PTREAD_THUNK_PROTOCOL  EMU_PTREAD_THUNK_PROTOCOL;\r
-\r
-\r
-typedef \r
-UINTN\r
-(EFIAPI *PTREAD_THUNK_MUTEXT_LOCK) (\r
-  IN VOID *Mutex\r
-  );            \r
-\r
-\r
-typedef \r
-UINTN\r
-(EFIAPI *PTREAD_THUNK_MUTEXT_UNLOCK) (\r
-  IN VOID *Mutex\r
-  );                        \r
-\r
-\r
-typedef \r
-UINTN\r
-(EFIAPI *PTREAD_THUNK_MUTEX_TRY_LOCK) (\r
-  IN VOID *Mutex\r
-  );                      \r
-\r
-\r
-typedef \r
-VOID *\r
-(EFIAPI *PTREAD_THUNK_MUTEX_INIT) (\r
-  IN VOID\r
-  );                     \r
-\r
-\r
-typedef \r
-UINTN\r
-(EFIAPI *PTREAD_THUNK_MUTEX_DISTROY) (\r
-  IN VOID *Mutex\r
-  );                            \r
-\r
-\r
-\r
-typedef \r
-VOID *\r
-(EFIAPI *PTREAD_THUNK_THEAD_ENTRY) (\r
-  IN  VOID *Context\r
-  );\r
-\r
-typedef \r
-UINTN\r
-(EFIAPI *PTREAD_THUNK_CREATE_THREAD) (\r
-  IN  VOID                      *Thread,\r
-  IN  VOID                      *Attribute,\r
-  IN  PTREAD_THUNK_THEAD_ENTRY  Start,\r
-  IN  VOID                      *Context\r
-  );\r
-\r
-typedef \r
-VOID\r
-(EFIAPI *PTREAD_THUNK_EXIT_THREAD) (\r
-  IN VOID *ValuePtr\r
-  );                            \r
-\r
-  \r
-typedef \r
-UINTN\r
-(EFIAPI *PTREAD_THUNK_SELF) (\r
-  VOID\r
-  );                              \r
-\r
-\r
-struct _EMU_PTREAD_THUNK_PROTOCOL {\r
-  PTREAD_THUNK_MUTEXT_LOCK      MutextLock;\r
-  PTREAD_THUNK_MUTEXT_UNLOCK    MutexUnlock;\r
-  PTREAD_THUNK_MUTEX_TRY_LOCK   MutexTryLock;\r
-  PTREAD_THUNK_MUTEX_INIT       MutexInit;\r
-  PTREAD_THUNK_MUTEX_DISTROY    MutexDistroy;\r
-  PTREAD_THUNK_CREATE_THREAD    CreateThread;\r
-  PTREAD_THUNK_EXIT_THREAD      ExitThread;\r
-  PTREAD_THUNK_SELF             Self;\r
-};\r
-\r
-extern EFI_GUID gEmuPthreadThunkProtocolGuid;\r
-\r
-#endif\r
-\r
diff --git a/InOsEmuPkg/Include/Protocol/EmuThread.h b/InOsEmuPkg/Include/Protocol/EmuThread.h
new file mode 100644 (file)
index 0000000..e518bb1
--- /dev/null
@@ -0,0 +1,103 @@
+/** @file\r
+  Emulator Thunk to abstract OS services from pure EFI code\r
+\r
+  Copyright (c) 2010 - 2011, Apple Inc. All rights reserved.<BR>\r
+  Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __EMU_THREAD_THUNK__\r
+#define __EMU_THREAD_THUNK__\r
+\r
+\r
+typedef struct _EMU_THREAD_THUNK_PROTOCOL  EMU_THREAD_THUNK_PROTOCOL;\r
+\r
+\r
+typedef\r
+UINTN\r
+(EFIAPI *THREAD_THUNK_MUTEX_LOCK) (\r
+  IN VOID *Mutex\r
+  );\r
+\r
+\r
+typedef\r
+UINTN\r
+(EFIAPI *THREAD_THUNK_MUTEX_UNLOCK) (\r
+  IN VOID *Mutex\r
+  );\r
+\r
+\r
+typedef\r
+UINTN\r
+(EFIAPI *THREAD_THUNK_MUTEX_TRY_LOCK) (\r
+  IN VOID *Mutex\r
+  );\r
+\r
+\r
+typedef\r
+VOID *\r
+(EFIAPI *THREAD_THUNK_MUTEX_INIT) (\r
+  IN VOID\r
+  );\r
+\r
+\r
+typedef\r
+UINTN\r
+(EFIAPI *THREAD_THUNK_MUTEX_DISTROY) (\r
+  IN VOID *Mutex\r
+  );\r
+\r
+\r
+\r
+typedef\r
+VOID *\r
+(EFIAPI *THREAD_THUNK_THREAD_ENTRY) (\r
+  IN  VOID *Context\r
+  );\r
+\r
+typedef\r
+UINTN\r
+(EFIAPI *THREAD_THUNK_CREATE_THREAD) (\r
+  IN  VOID                      *Thread,\r
+  IN  VOID                      *Attribute,\r
+  IN  THREAD_THUNK_THREAD_ENTRY Start,\r
+  IN  VOID                      *Context\r
+  );\r
+\r
+typedef\r
+VOID\r
+(EFIAPI *THREAD_THUNK_EXIT_THREAD) (\r
+  IN VOID *ValuePtr\r
+  );\r
+\r
+\r
+typedef\r
+UINTN\r
+(EFIAPI *THREAD_THUNK_SELF) (\r
+  VOID\r
+  );\r
+\r
+\r
+struct _EMU_THREAD_THUNK_PROTOCOL {\r
+  THREAD_THUNK_MUTEX_LOCK       MutexLock;\r
+  THREAD_THUNK_MUTEX_UNLOCK     MutexUnlock;\r
+  THREAD_THUNK_MUTEX_TRY_LOCK   MutexTryLock;\r
+  THREAD_THUNK_MUTEX_INIT       MutexInit;\r
+  THREAD_THUNK_MUTEX_DISTROY    MutexDistroy;\r
+  THREAD_THUNK_CREATE_THREAD    CreateThread;\r
+  THREAD_THUNK_EXIT_THREAD      ExitThread;\r
+  THREAD_THUNK_SELF             Self;\r
+};\r
+\r
+extern EFI_GUID gEmuThreadThunkProtocolGuid;\r
+\r
+#endif\r
+\r
index 9b74276dcff8e330dee7df8566e3d3a98f470999..61297b575ae132ab9a86630d4c03b91b8a02098c 100644 (file)
@@ -1,6 +1,7 @@
 /** @file\r
 \r
   Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>\r
+  Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -277,7 +278,7 @@ EFIAPI
 GasketPthreadCreate (\r
   IN  VOID                      *Thread,\r
   IN  VOID                      *Attribute,\r
-  IN  PTREAD_THUNK_THEAD_ENTRY  Start,\r
+  IN  THREAD_THUNK_THREAD_ENTRY Start,\r
   IN  VOID                      *Context\r
   );\r
  \r
index 273be5dcc9806811e159f7d5bf974fd17a18e97d..b6b6ae8ef5a09b351e7397058deaa1833596f6aa 100644 (file)
@@ -2,6 +2,8 @@
  POSIX Pthreads to emulate APs and implement threads
 
 Copyright (c) 2011, Apple Inc. All rights reserved.
+Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
+
 This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD License
 which accompanies this distribution.  The full text of the license may be found at
@@ -81,7 +83,7 @@ PthreadMutexDestroy (
 // Can't store this data on PthreadCreate stack so we need a global
 typedef struct {
   pthread_mutex_t             Mutex;
-  PTREAD_THUNK_THEAD_ENTRY    Start;
+  THREAD_THUNK_THREAD_ENTRY   Start;
 } THREAD_MANGLE;
 
 THREAD_MANGLE mThreadMangle = {
@@ -94,7 +96,7 @@ SecFakePthreadStart (
   VOID  *Context
   )
 {
-  PTREAD_THUNK_THEAD_ENTRY  Start;
+  THREAD_THUNK_THREAD_ENTRY Start;
   sigset_t                  SigMask;
   
   // Save global on the stack before we unlock
@@ -120,7 +122,7 @@ UINTN
 PthreadCreate (
   IN  VOID                      *Thread,
   IN  VOID                      *Attribute,
-  IN  PTREAD_THUNK_THEAD_ENTRY  Start,
+  IN  THREAD_THUNK_THREAD_ENTRY Start,
   IN  VOID                      *Context
   )
 {
@@ -178,7 +180,7 @@ PthreadSelf (
 }
 
 
-EMU_PTREAD_THUNK_PROTOCOL gPthreadThunk = {
+EMU_THREAD_THUNK_PROTOCOL gPthreadThunk = {
   GasketPthreadMutexLock,
   GasketPthreadMutexUnLock,
   GasketPthreadMutexTryLock,
@@ -221,7 +223,7 @@ PthreadClose (
 
 
 EMU_IO_THUNK_PROTOCOL gPthreadThunkIo = {
-  &gEmuPthreadThunkProtocolGuid,
+  &gEmuThreadThunkProtocolGuid,
   NULL,
   NULL,
   0,
index 317bd5d8b54e6ffb52800f513201476c9012a81c..00ab7a61ab3648d97f6aec6d76efd574b44d546e 100644 (file)
@@ -1,14 +1,15 @@
 /*++ @file\r
 \r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>\r
 Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>\r
-This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
@@ -44,7 +45,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/EmuThunk.h>\r
 #include <Protocol/EmuIoThunk.h>\r
 #include <Protocol/EmuGraphicsWindow.h>\r
-#include <Protocol/EmuPthreadThunk.h>\r
+#include <Protocol/EmuThread.h>\r
 \r
 #include <Guid/FileInfo.h>\r
 #include <Guid/FileSystemInfo.h>\r
index abc9618813edec75b9ba2f63277c3c341b972669..7939fbfa8363db7c52638d9ed40a10e0e9360c41 100644 (file)
@@ -67,7 +67,7 @@
   gEmuIoThunkProtocolGuid\r
   gEmuIoThunkProtocolGuid\r
   gEmuGraphicsWindowProtocolGuid\r
-  gEmuPthreadThunkProtocolGuid\r
+  gEmuThreadThunkProtocolGuid\r
   gEfiSimpleFileSystemProtocolGuid\r
   \r
 \r