1 #ifndef GC_PTHREAD_STOP_WORLD_H
2 #define GC_PTHREAD_STOP_WORLD_H
4 struct thread_stop_info {
6 word last_stop_count; /* GC_last_stop_count value when thread */
7 /* last successfully handled a suspend */
9 ptr_t stack_ptr; /* Valid only when stopped. */
11 /* Grab NACL_GC_REG_STORAGE_SIZE pointers off the stack when going into */
12 /* a syscall. 20 is more than we need, but it's an overestimate in case*/
13 /* the instrumented function uses any callee saved registers, they may */
14 /* be pushed to the stack much earlier. Also, on amd64 'push' puts 8 */
15 /* bytes on the stack even though our pointers are 4 bytes. */
16 #define NACL_GC_REG_STORAGE_SIZE 20
17 ptr_t reg_storage[NACL_GC_REG_STORAGE_SIZE];