Merge remote branch 'upstream/master'
[mono.git] / libgc / include / private / pthread_stop_world.h
1 #ifndef GC_PTHREAD_STOP_WORLD_H
2 #define GC_PTHREAD_STOP_WORLD_H
3
4 struct thread_stop_info {
5     int signal;
6     word last_stop_count;       /* GC_last_stop_count value when thread */
7                                 /* last successfully handled a suspend  */
8                                 /* signal.                              */
9     ptr_t stack_ptr;            /* Valid only when stopped.             */
10 #ifdef NACL
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];
18 #endif
19 };
20     
21 #endif