/* * Copyright (c) 1994 by Xerox Corporation. All rights reserved. * Copyright (c) 1996 by Silicon Graphics. All rights reserved. * Copyright (c) 1998 by Fergus Henderson. All rights reserved. * Copyright (c) 2000-2009 by Hewlett-Packard Development Company. * All rights reserved. * * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. * * Permission is hereby granted to use or copy this program * for any purpose, provided the above notices are retained on all copies. * Permission to modify the code and to distribute modified code is granted, * provided the above notices are retained, and a notice that the code was * modified is included with the above copyright notice.
*/
struct thread_stop_info { # if !defined(GC_OPENBSD_UTHREADS) && !defined(NACL) \
&& !defined(PLATFORM_STOP_WORLD) && !defined(SN_TARGET_PSP2) volatile AO_t last_stop_count; /* The value of GC_stop_count when the thread */ /* last successfully handled a suspend signal. */ # ifdef GC_ENABLE_SUSPEND_THREAD volatile AO_t ext_suspend_cnt; /* An odd value means thread was suspended */ /* externally. Incremented on every call of */ /* GC_suspend_thread() and GC_resume_thread(). */ /* Updated with the GC lock held, but could be */ /* read from a signal handler. */ # endif # endif
ptr_t stack_ptr; /* Valid only when stopped. */
# ifdef NACL /* Grab NACL_GC_REG_STORAGE_SIZE pointers off the stack when */ /* going into a syscall. 20 is more than we need, but it's an */ /* overestimate in case the instrumented function uses any callee */ /* saved registers, they may be pushed to the stack much earlier. */ /* Also, on amd64 'push' puts 8 bytes on the stack even though */ /* our pointers are 4 bytes. */ # ifdef ARM32 /* Space for r4-r8, r10-r12, r14. */ # define NACL_GC_REG_STORAGE_SIZE 9 # else # define NACL_GC_REG_STORAGE_SIZE 20 # endif
ptr_t reg_storage[NACL_GC_REG_STORAGE_SIZE]; # elif defined(PLATFORM_HAVE_GC_REG_STORAGE_SIZE)
word registers[PLATFORM_GC_REG_STORAGE_SIZE]; /* used externally */ # endif
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.