Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@gnome.org>2006-11-19 19:42:26 +0300
committerMiguel de Icaza <miguel@gnome.org>2006-11-19 19:42:26 +0300
commitc71714cbda8b7a4fe4f1a5e1c95b95b5618623d8 (patch)
tree318022a93a8d18ff6cd9ffa8ddedce487408690a /libgc/darwin_stop_world.c
parent4ba7cf098c6a2623cc6ffdd60f8a6f0aeb9c0e27 (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.c10
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;