|
Packit |
d28291 |
/*
|
|
Packit |
d28291 |
* Copyright (c) 1994 by Xerox Corporation. All rights reserved.
|
|
Packit |
d28291 |
* Copyright (c) 1996 by Silicon Graphics. All rights reserved.
|
|
Packit |
d28291 |
* Copyright (c) 1998 by Fergus Henderson. All rights reserved.
|
|
Packit |
d28291 |
* Copyright (c) 2000-2009 by Hewlett-Packard Development Company.
|
|
Packit |
d28291 |
* All rights reserved.
|
|
Packit |
d28291 |
*
|
|
Packit |
d28291 |
* THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
|
|
Packit |
d28291 |
* OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
|
|
Packit |
d28291 |
*
|
|
Packit |
d28291 |
* Permission is hereby granted to use or copy this program
|
|
Packit |
d28291 |
* for any purpose, provided the above notices are retained on all copies.
|
|
Packit |
d28291 |
* Permission to modify the code and to distribute modified code is granted,
|
|
Packit |
d28291 |
* provided the above notices are retained, and a notice that the code was
|
|
Packit |
d28291 |
* modified is included with the above copyright notice.
|
|
Packit |
d28291 |
*/
|
|
Packit |
d28291 |
|
|
Packit |
d28291 |
#ifndef GC_DARWIN_STOP_WORLD_H
|
|
Packit |
d28291 |
#define GC_DARWIN_STOP_WORLD_H
|
|
Packit |
d28291 |
|
|
Packit |
d28291 |
#if !defined(GC_DARWIN_THREADS)
|
|
Packit |
d28291 |
# error darwin_stop_world.h included without GC_DARWIN_THREADS defined
|
|
Packit |
d28291 |
#endif
|
|
Packit |
d28291 |
|
|
Packit |
d28291 |
#include <mach/mach.h>
|
|
Packit |
d28291 |
#include <mach/thread_act.h>
|
|
Packit |
d28291 |
|
|
Packit |
d28291 |
struct thread_stop_info {
|
|
Packit |
d28291 |
mach_port_t mach_thread;
|
|
Packit |
d28291 |
ptr_t stack_ptr; /* Valid only when thread is in a "blocked" state. */
|
|
Packit |
d28291 |
};
|
|
Packit |
d28291 |
|
|
Packit |
d28291 |
#ifndef DARWIN_DONT_PARSE_STACK
|
|
Packit |
d28291 |
GC_INNER ptr_t GC_FindTopOfStack(unsigned long);
|
|
Packit |
d28291 |
#endif
|
|
Packit |
d28291 |
|
|
Packit |
d28291 |
#ifdef MPROTECT_VDB
|
|
Packit |
d28291 |
GC_INNER void GC_mprotect_stop(void);
|
|
Packit |
d28291 |
GC_INNER void GC_mprotect_resume(void);
|
|
Packit |
d28291 |
#endif
|
|
Packit |
d28291 |
|
|
Packit |
d28291 |
#if defined(PARALLEL_MARK) && !defined(GC_NO_THREADS_DISCOVERY)
|
|
Packit |
d28291 |
GC_INNER GC_bool GC_is_mach_marker(thread_act_t);
|
|
Packit |
d28291 |
#endif
|
|
Packit |
d28291 |
|
|
Packit |
d28291 |
#endif
|