1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
6 // Events that go both ways
7 IPC_EVENT_TYPE0(DB_IPCE_INVALID_EVENT ,0x0000)
8 IPC_EVENT_TYPE0(DB_IPCE_TYPE_MASK ,0x0FFF)
11 // 1. Type0 is for marking sections in the id range.
12 // Type1 is for events that go L->R, Type2 is for events that go R<-L.
13 // 2. All non-type 0 events should have a unique identifier & value
14 // 3. All type 1 events values should be in range [DB_IPCE_RUNTIME_FIRST, DB_IPCE_RUNTIME_LAST)
15 // All type 2 events values should be in range [DB_IPCE_DEBUGGER_FIRST, DB_IPCE_DEBUGGER_LAST)
16 // 4. All event values should be monotonically increasing, though we can skip values.
17 // 5. All values should be a subset of the bits specified by DB_IPCE_TYPE_MASK.
19 // These rules are enforced by a bunch of compile time checks (C_ASSERT) in
20 // the function DoCompileTimeCheckOnDbgIpcEventTypes.
21 // If you get compiler errors in this file, you are probably violating the rules above.
23 // Events that travel from the RC to the DI (Left to Right)
24 IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_FIRST ,0x0100) // change to TYPE0 because it is not really an event
25 IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT ,0x0100)
26 IPC_EVENT_TYPE1(DB_IPCE_SYNC_COMPLETE ,0x0102)
27 IPC_EVENT_TYPE1(DB_IPCE_THREAD_ATTACH ,0x0103)
28 IPC_EVENT_TYPE1(DB_IPCE_THREAD_DETACH ,0x0104)
29 IPC_EVENT_TYPE1(DB_IPCE_LOAD_MODULE ,0x0105)
30 IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_MODULE ,0x0106)
31 IPC_EVENT_TYPE1(DB_IPCE_LOAD_CLASS ,0x0107)
32 IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_CLASS ,0x0108)
33 IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION ,0x0109)
34 IPC_EVENT_TYPE1(DB_IPCE_UNHANDLED_EXCEPTION ,0x010A)
35 IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_ADD_RESULT ,0x010D)
36 IPC_EVENT_TYPE1(DB_IPCE_STEP_RESULT ,0x010E)
37 IPC_EVENT_TYPE1(DB_IPCE_STEP_COMPLETE ,0x010F)
38 IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_REMOVE_RESULT ,0x0111)
39 IPC_EVENT_TYPE1(DB_IPCE_GET_BUFFER_RESULT ,0x0115)
40 IPC_EVENT_TYPE1(DB_IPCE_RELEASE_BUFFER_RESULT ,0x0116)
41 IPC_EVENT_TYPE1(DB_IPCE_ENC_ADD_FIELD ,0x0117)
42 IPC_EVENT_TYPE1(DB_IPCE_APPLY_CHANGES_RESULT ,0x0118)
43 IPC_EVENT_TYPE1(DB_IPCE_CUSTOM_NOTIFICATION ,0x011B)
44 IPC_EVENT_TYPE1(DB_IPCE_USER_BREAKPOINT ,0x011C)
45 IPC_EVENT_TYPE1(DB_IPCE_FIRST_LOG_MESSAGE ,0x011D)
46 // DB_IPCE_CONTINUED_LOG_MESSAGE = 0x11E, used to be here in v1.1,
47 // But we've removed that remove the v2.0 protocol
48 IPC_EVENT_TYPE1(DB_IPCE_LOGSWITCH_SET_MESSAGE ,0x011F)
49 IPC_EVENT_TYPE1(DB_IPCE_CREATE_APP_DOMAIN ,0x0120)
50 IPC_EVENT_TYPE1(DB_IPCE_EXIT_APP_DOMAIN ,0x0121)
51 IPC_EVENT_TYPE1(DB_IPCE_LOAD_ASSEMBLY ,0x0122)
52 IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_ASSEMBLY ,0x0123)
53 IPC_EVENT_TYPE1(DB_IPCE_SET_DEBUG_STATE_RESULT ,0x0124)
54 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_SETUP_RESULT ,0x0125)
55 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_COMPLETE ,0x0126)
56 IPC_EVENT_TYPE1(DB_IPCE_SET_REFERENCE_RESULT ,0x0127)
57 IPC_EVENT_TYPE1(DB_IPCE_APP_DOMAIN_NAME_RESULT ,0x0128)
58 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_ABORT_RESULT ,0x0129)
59 IPC_EVENT_TYPE1(DB_IPCE_NAME_CHANGE ,0x012a)
60 IPC_EVENT_TYPE1(DB_IPCE_UPDATE_MODULE_SYMS ,0x012c)
61 IPC_EVENT_TYPE1(DB_IPCE_CONTROL_C_EVENT ,0x012f)
62 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_CLEANUP_RESULT ,0x0130)
63 IPC_EVENT_TYPE1(DB_IPCE_ENC_REMAP ,0x0131)
64 IPC_EVENT_TYPE1(DB_IPCE_SET_VALUE_CLASS_RESULT ,0x0133)
65 IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_SET_ERROR ,0x0134)
66 IPC_EVENT_TYPE1(DB_IPCE_ENC_UPDATE_FUNCTION ,0x0137)
67 IPC_EVENT_TYPE1(DB_IPCE_SET_METHOD_JMC_STATUS_RESULT ,0x013a)
68 IPC_EVENT_TYPE1(DB_IPCE_GET_METHOD_JMC_STATUS_RESULT ,0x013b)
69 IPC_EVENT_TYPE1(DB_IPCE_SET_MODULE_JMC_STATUS_RESULT ,0x013c)
70 IPC_EVENT_TYPE1(DB_IPCE_GET_THREAD_FOR_TASKID_RESULT ,0x013d)
71 IPC_EVENT_TYPE1(DB_IPCE_CREATE_CONNECTION ,0x0141)
72 IPC_EVENT_TYPE1(DB_IPCE_DESTROY_CONNECTION ,0x0142)
73 IPC_EVENT_TYPE1(DB_IPCE_CHANGE_CONNECTION ,0x0143)
74 IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_RUDE_ABORT_RESULT ,0x0144)
75 IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION_CALLBACK2 ,0x0147)
76 IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION_UNWIND ,0x0148)
77 IPC_EVENT_TYPE1(DB_IPCE_INTERCEPT_EXCEPTION_RESULT ,0x0149)
78 IPC_EVENT_TYPE1(DB_IPCE_CREATE_HANDLE_RESULT ,0x014A)
79 IPC_EVENT_TYPE1(DB_IPCE_INTERCEPT_EXCEPTION_COMPLETE ,0x014B)
80 IPC_EVENT_TYPE1(DB_IPCE_ENC_REMAP_COMPLETE ,0x014C)
81 IPC_EVENT_TYPE1(DB_IPCE_CREATE_PROCESS ,0x014D)
82 IPC_EVENT_TYPE1(DB_IPCE_ENC_ADD_FUNCTION ,0x014E)
83 IPC_EVENT_TYPE1(DB_IPCE_GET_NGEN_COMPILER_FLAGS_RESULT,0x0151)
84 IPC_EVENT_TYPE1(DB_IPCE_SET_NGEN_COMPILER_FLAGS_RESULT,0x0152)
85 IPC_EVENT_TYPE1(DB_IPCE_MDA_NOTIFICATION ,0x0156)
86 IPC_EVENT_TYPE1(DB_IPCE_GET_GCHANDLE_INFO_RESULT ,0x0157)
87 IPC_EVENT_TYPE1(DB_IPCE_TEST_CRST ,0x0158)
88 IPC_EVENT_TYPE1(DB_IPCE_TEST_RWLOCK ,0x0159)
89 IPC_EVENT_TYPE1(DB_IPCE_LEFTSIDE_STARTUP ,0x015C)
90 IPC_EVENT_TYPE1(DB_IPCE_METADATA_UPDATE ,0x015D)
91 IPC_EVENT_TYPE1(DB_IPCE_RESOLVE_UPDATE_METADATA_1_RESULT,0x015E)
92 IPC_EVENT_TYPE1(DB_IPCE_RESOLVE_UPDATE_METADATA_2_RESULT,0x015F)
93 IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_LAST ,0x0160) // The last event from runtime
97 // Events that travel from the DI to the RC (Right to Left)
98 IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_FIRST ,0x0200) // change to TYPE0 because it is not really an event
99 IPC_EVENT_TYPE2(DB_IPCE_ASYNC_BREAK ,0x0200)
100 IPC_EVENT_TYPE2(DB_IPCE_CONTINUE ,0x0201)
101 IPC_EVENT_TYPE2(DB_IPCE_LIST_THREADS ,0x0202)
102 IPC_EVENT_TYPE2(DB_IPCE_SET_IP ,0x0205)
103 IPC_EVENT_TYPE2(DB_IPCE_SUSPEND_THREAD ,0x0206)
104 IPC_EVENT_TYPE2(DB_IPCE_RESUME_THREAD ,0x0207)
105 IPC_EVENT_TYPE2(DB_IPCE_BREAKPOINT_ADD ,0x0209)
106 IPC_EVENT_TYPE2(DB_IPCE_BREAKPOINT_REMOVE ,0x020A)
107 IPC_EVENT_TYPE2(DB_IPCE_STEP_CANCEL ,0x020B)
108 IPC_EVENT_TYPE2(DB_IPCE_STEP ,0x020C)
109 IPC_EVENT_TYPE2(DB_IPCE_STEP_OUT ,0x020D)
110 IPC_EVENT_TYPE2(DB_IPCE_GET_BUFFER ,0x0211)
111 IPC_EVENT_TYPE2(DB_IPCE_RELEASE_BUFFER ,0x0212)
112 IPC_EVENT_TYPE2(DB_IPCE_SET_CLASS_LOAD_FLAG ,0x0217)
113 IPC_EVENT_TYPE2(DB_IPCE_CONTINUE_EXCEPTION ,0x0219)
114 IPC_EVENT_TYPE2(DB_IPCE_ATTACHING ,0x021A)
115 IPC_EVENT_TYPE2(DB_IPCE_APPLY_CHANGES ,0x021B)
116 IPC_EVENT_TYPE2(DB_IPCE_SET_NGEN_COMPILER_FLAGS ,0x021F)
117 IPC_EVENT_TYPE2(DB_IPCE_GET_NGEN_COMPILER_FLAGS ,0x0220)
118 IPC_EVENT_TYPE2(DB_IPCE_IS_TRANSITION_STUB ,0x0221)
119 IPC_EVENT_TYPE2(DB_IPCE_IS_TRANSITION_STUB_RESULT ,0x0222)
120 IPC_EVENT_TYPE2(DB_IPCE_MODIFY_LOGSWITCH ,0x0223)
121 IPC_EVENT_TYPE2(DB_IPCE_ENABLE_LOG_MESSAGES ,0x0224)
122 IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL ,0x0225)
123 IPC_EVENT_TYPE2(DB_IPCE_SET_REFERENCE ,0x0228)
124 IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_ABORT ,0x022c)
125 IPC_EVENT_TYPE2(DB_IPCE_DETACH_FROM_PROCESS ,0x022f)
126 IPC_EVENT_TYPE2(DB_IPCE_CONTROL_C_EVENT_RESULT ,0x0230)
127 IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_CLEANUP ,0x0231)
128 IPC_EVENT_TYPE2(DB_IPCE_SET_ALL_DEBUG_STATE ,0x0232)
129 IPC_EVENT_TYPE2(DB_IPCE_SET_VALUE_CLASS ,0x0234)
130 IPC_EVENT_TYPE2(DB_IPCE_SET_METHOD_JMC_STATUS ,0x023a)
131 IPC_EVENT_TYPE2(DB_IPCE_GET_METHOD_JMC_STATUS ,0x023b)
132 IPC_EVENT_TYPE2(DB_IPCE_SET_MODULE_JMC_STATUS ,0x023c)
133 IPC_EVENT_TYPE2(DB_IPCE_GET_THREAD_FOR_TASKID ,0x023d)
134 IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_RUDE_ABORT ,0x0241)
135 IPC_EVENT_TYPE2(DB_IPCE_CREATE_HANDLE ,0x0244)
136 IPC_EVENT_TYPE2(DB_IPCE_DISPOSE_HANDLE ,0x0245)
137 IPC_EVENT_TYPE2(DB_IPCE_INTERCEPT_EXCEPTION ,0x0246)
138 IPC_EVENT_TYPE2(DB_IPCE_DEBUGGER_INVALID ,0x0249) // An invalid event type
139 IPC_EVENT_TYPE2(DB_IPCE_GET_GCHANDLE_INFO ,0x0251)
140 IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_1 ,0x0256)
141 IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_2 ,0x0257)
142 IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_LAST ,0x0258) // The last event from the debugger