Merge pull request #980 from StephenMcConnel/bug-18638
[mono.git] / mono / utils / mach-support.c
1 /*
2  * mach-support-x86.c: mach support for x86
3  *
4  * Authors:
5  *   Geoff Norton (gnorton@novell.com)
6  *
7  * (C) 2010 Ximian, Inc.
8  */
9
10 #include <config.h>
11 #if defined(__MACH__)
12 #include <glib.h>
13 #include <mach/mach.h>
14 #include <mach/task.h>
15 #include <mach/mach_port.h>
16 #include <mach/thread_act.h>
17 #include <mach/thread_status.h>
18
19 #include <mono/utils/mono-mmap.h>
20
21 #include "mach-support.h"
22
23 kern_return_t
24 mono_mach_get_threads (thread_act_array_t *threads, guint32 *count)
25 {
26         kern_return_t ret;
27
28         do {
29                 ret = task_threads (current_task (), threads, count);
30         } while (ret != KERN_SUCCESS);
31
32         return ret;
33 }
34
35 kern_return_t
36 mono_mach_free_threads (thread_act_array_t threads, guint32 count)
37 {
38         return vm_deallocate(current_task (), (vm_address_t) threads, sizeof (thread_t) * count);
39 }
40 #endif