1574a2f5f90685b3fe00af1958cd30cd081ae40f
[mono.git] / mono / metadata / sgen-protocol.h
1 enum {
2         SGEN_PROTOCOL_COLLECTION,
3         SGEN_PROTOCOL_ALLOC,
4         SGEN_PROTOCOL_COPY,
5         SGEN_PROTOCOL_PIN,
6         SGEN_PROTOCOL_WBARRIER,
7         SGEN_PROTOCOL_GLOBAL_REMSET,
8         SGEN_PROTOCOL_PTR_UPDATE,
9         SGEN_PROTOCOL_CLEANUP,
10         SGEN_PROTOCOL_EMPTY,
11         SGEN_PROTOCOL_THREAD_RESTART,
12         SGEN_PROTOCOL_THREAD_REGISTER,
13         SGEN_PROTOCOL_THREAD_UNREGISTER,
14         SGEN_PROTOCOL_MISSING_REMSET
15 };
16
17 typedef struct {
18         int generation;
19 } SGenProtocolCollection;
20
21 typedef struct {
22         gpointer obj;
23         gpointer vtable;
24         int size;
25 } SGenProtocolAlloc;
26
27 typedef struct {
28         gpointer from;
29         gpointer to;
30         gpointer vtable;
31         int size;
32 } SGenProtocolCopy;
33
34 typedef struct {
35         gpointer obj;
36         gpointer vtable;
37         int size;
38 } SGenProtocolPin;
39
40 typedef struct {
41         gpointer ptr;
42         gpointer value;
43         gpointer value_vtable;
44 } SGenProtocolWBarrier;
45
46 typedef struct {
47         gpointer ptr;
48         gpointer value;
49         gpointer value_vtable;
50 } SGenProtocolGlobalRemset;
51
52 typedef struct {
53         gpointer ptr;
54         gpointer old_value;
55         gpointer new_value;
56         gpointer vtable;
57         int size;
58 } SGenProtocolPtrUpdate;
59
60 typedef struct {
61         gpointer ptr;
62         gpointer vtable;
63         int size;
64 } SGenProtocolCleanup;
65
66 typedef struct {
67         gpointer start;
68         int size;
69 } SGenProtocolEmpty;
70
71 typedef struct {
72         gpointer thread;
73 } SGenProtocolThreadRestart;
74
75 typedef struct {
76         gpointer thread;
77 } SGenProtocolThreadRegister;
78
79 typedef struct {
80         gpointer thread;
81 } SGenProtocolThreadUnregister;
82
83 typedef struct {
84         gpointer obj;
85         gpointer obj_vtable;
86         int offset;
87         gpointer value;
88         gpointer value_vtable;
89         int value_pinned;
90 } SGenProtocolMissingRemset;
91
92 /* missing: finalizers, dislinks, roots, non-store wbarriers */