Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / libgc / win32_threads.c
index deb3eae4e0a24e65a193a0f440b491e3158e5213..5533b8f2e252bf750dba873d24aeecf78b79facd 100644 (file)
@@ -85,6 +85,26 @@ int GC_thread_is_registered (void)
 #endif
 }
 
+void GC_allow_register_threads (void)
+{
+    /* No-op for GC pre-v7. */
+}
+
+int GC_register_my_thread (struct GC_stack_base *sb)
+{
+#   if defined(GC_DLL) || defined(GC_INSIDE_DLL)
+       /* Registered by DllMain. */
+       return GC_DUPLICATE;
+#   else
+       /* TODO: Implement. */
+       return GC_UNIMPLEMENTED;
+#   endif
+}
+
+void GC_register_altstack (void *stack, int stack_size, void *altstack, int altstack_size)
+{
+}
+
 /*
  * This may be called from DllMain, and hence operates under unusual
  * constraints.
@@ -164,7 +184,7 @@ static GC_thread GC_new_thread(void) {
 #ifdef __GNUC__
 __inline__
 #endif
-LONG GC_get_max_thread_index()
+static LONG GC_get_max_thread_index()
 {
   LONG my_max = GC_max_thread_index;
 
@@ -385,10 +405,10 @@ void GC_push_all_stacks()
 #       define PUSH4(r1,r2,r3,r4) PUSH2(r1,r2), PUSH2(r3,r4)
 #       if defined(I386)
           PUSH4(Edi,Esi,Ebx,Edx), PUSH2(Ecx,Eax), PUSH1(Ebp);
-         sp = (ptr_t)context.Esp;\r
-#      elif defined(X86_64)\r
-         PUSH4(Rax,Rcx,Rdx,Rbx); PUSH2(Rbp, Rsi); PUSH1(Rdi);\r
-         PUSH4(R8, R9, R10, R11); PUSH4(R12, R13, R14, R15);\r
+         sp = (ptr_t)context.Esp;
+#      elif defined(X86_64)
+         PUSH4(Rax,Rcx,Rdx,Rbx); PUSH2(Rbp, Rsi); PUSH1(Rdi);
+         PUSH4(R8, R9, R10, R11); PUSH4(R12, R13, R14, R15);
          sp = (ptr_t)context.Rsp;
 #       elif defined(ARM32)
          PUSH4(R0,R1,R2,R3),PUSH4(R4,R5,R6,R7),PUSH4(R8,R9,R10,R11),PUSH1(R12);
@@ -782,7 +802,7 @@ int GC_pthread_detach(pthread_t thread)
  * Pontus Rydin suggests wrapping the thread start routine instead.
  */
 #if defined(GC_DLL) || defined(GC_INSIDE_DLL)
-BOOL WINAPI DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
+BOOL WINAPI GC_DllMain(HINSTANCE inst, ULONG reason, LPVOID reserved)
 {
   switch (reason) {
   case DLL_PROCESS_ATTACH: