diff options
author | Miguel de Icaza <miguel@gnome.org> | 2006-11-19 19:42:26 +0300 |
---|---|---|
committer | Miguel de Icaza <miguel@gnome.org> | 2006-11-19 19:42:26 +0300 |
commit | c71714cbda8b7a4fe4f1a5e1c95b95b5618623d8 (patch) | |
tree | 318022a93a8d18ff6cd9ffa8ddedce487408690a /libgc/darwin_stop_world.c | |
parent | 4ba7cf098c6a2623cc6ffdd60f8a6f0aeb9c0e27 (diff) |
2006-11-19 Allan Hsu <allan@counterpop.net>
* libgc/darwin_stop_world.c, libgc/include/private/gc_priv.h,
libgc/os_dep.c: Fixes to make the GC work on OSX/Intel with XCode
2.4 (10.4u SDK and newer).
This code should work with older versions of the SDK as well.
svn path=/trunk/mono/; revision=68156
Diffstat (limited to 'libgc/darwin_stop_world.c')
-rw-r--r-- | libgc/darwin_stop_world.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libgc/darwin_stop_world.c b/libgc/darwin_stop_world.c index 00a25cf62d2..04bb415e026 100644 --- a/libgc/darwin_stop_world.c +++ b/libgc/darwin_stop_world.c @@ -75,12 +75,14 @@ void GC_push_all_stacks() { ptr_t lo, hi; #if defined(POWERPC) ppc_thread_state_t state; + mach_msg_type_number_t thread_state_count = PPC_THREAD_STATE_COUNT; #elif defined(I386) i386_thread_state_t state; + mach_msg_type_number_t thread_state_count = i386_THREAD_STATE_COUNT; #else # error FIXME for non-x86 || ppc architectures -#endif mach_msg_type_number_t thread_state_count = MACHINE_THREAD_STATE_COUNT; +#endif me = pthread_self(); if (!GC_thr_initialized) GC_thr_init(); @@ -94,7 +96,7 @@ void GC_push_all_stacks() { /* Get the thread state (registers, etc) */ r = thread_get_state( p->stop_info.mach_thread, - MACHINE_THREAD_STATE, + GC_MACH_THREAD_STATE_FLAVOR, (natural_t*)&state, &thread_state_count); if(r != KERN_SUCCESS) ABORT("thread_get_state failed"); @@ -193,7 +195,7 @@ void GC_push_all_stacks() { ppc_thread_state64_t info; # endif mach_msg_type_number_t outCount = THREAD_STATE_MAX; - r = thread_get_state(thread, MACHINE_THREAD_STATE, + r = thread_get_state(thread, GC_MACH_THREAD_STATE_FLAVOR, (natural_t *)&info, &outCount); if(r != KERN_SUCCESS) continue; @@ -236,7 +238,7 @@ void GC_push_all_stacks() { WARN("This is completely untested and likely will not work\n", 0); i386_thread_state_t info; mach_msg_type_number_t outCount = THREAD_STATE_MAX; - r = thread_get_state(thread, MACHINE_THREAD_STATE, + r = thread_get_state(thread, GC_MACH_THREAD_STATE_FLAVOR, (natural_t *)&info, &outCount); if(r != KERN_SUCCESS) continue; |