Blame include/private/darwin_stop_world.h

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