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.
4
5//
6// Events that go both ways
7IPC_EVENT_TYPE0(DB_IPCE_INVALID_EVENT ,0x0000)
8IPC_EVENT_TYPE0(DB_IPCE_TYPE_MASK ,0x0FFF)
9
10// Some rules:
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.
18//
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.
22
23// Events that travel from the RC to the DI (Left to Right)
24IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_FIRST ,0x0100) // change to TYPE0 because it is not really an event
25IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT ,0x0100)
26IPC_EVENT_TYPE1(DB_IPCE_SYNC_COMPLETE ,0x0102)
27IPC_EVENT_TYPE1(DB_IPCE_THREAD_ATTACH ,0x0103)
28IPC_EVENT_TYPE1(DB_IPCE_THREAD_DETACH ,0x0104)
29IPC_EVENT_TYPE1(DB_IPCE_LOAD_MODULE ,0x0105)
30IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_MODULE ,0x0106)
31IPC_EVENT_TYPE1(DB_IPCE_LOAD_CLASS ,0x0107)
32IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_CLASS ,0x0108)
33IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION ,0x0109)
34IPC_EVENT_TYPE1(DB_IPCE_UNHANDLED_EXCEPTION ,0x010A)
35IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_ADD_RESULT ,0x010D)
36IPC_EVENT_TYPE1(DB_IPCE_STEP_RESULT ,0x010E)
37IPC_EVENT_TYPE1(DB_IPCE_STEP_COMPLETE ,0x010F)
38IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_REMOVE_RESULT ,0x0111)
39IPC_EVENT_TYPE1(DB_IPCE_GET_BUFFER_RESULT ,0x0115)
40IPC_EVENT_TYPE1(DB_IPCE_RELEASE_BUFFER_RESULT ,0x0116)
41IPC_EVENT_TYPE1(DB_IPCE_ENC_ADD_FIELD ,0x0117)
42IPC_EVENT_TYPE1(DB_IPCE_APPLY_CHANGES_RESULT ,0x0118)
43IPC_EVENT_TYPE1(DB_IPCE_CUSTOM_NOTIFICATION ,0x011B)
44IPC_EVENT_TYPE1(DB_IPCE_USER_BREAKPOINT ,0x011C)
45IPC_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
48IPC_EVENT_TYPE1(DB_IPCE_LOGSWITCH_SET_MESSAGE ,0x011F)
49IPC_EVENT_TYPE1(DB_IPCE_CREATE_APP_DOMAIN ,0x0120)
50IPC_EVENT_TYPE1(DB_IPCE_EXIT_APP_DOMAIN ,0x0121)
51IPC_EVENT_TYPE1(DB_IPCE_LOAD_ASSEMBLY ,0x0122)
52IPC_EVENT_TYPE1(DB_IPCE_UNLOAD_ASSEMBLY ,0x0123)
53IPC_EVENT_TYPE1(DB_IPCE_SET_DEBUG_STATE_RESULT ,0x0124)
54IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_SETUP_RESULT ,0x0125)
55IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_COMPLETE ,0x0126)
56IPC_EVENT_TYPE1(DB_IPCE_SET_REFERENCE_RESULT ,0x0127)
57IPC_EVENT_TYPE1(DB_IPCE_APP_DOMAIN_NAME_RESULT ,0x0128)
58IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_ABORT_RESULT ,0x0129)
59IPC_EVENT_TYPE1(DB_IPCE_NAME_CHANGE ,0x012a)
60IPC_EVENT_TYPE1(DB_IPCE_UPDATE_MODULE_SYMS ,0x012c)
61IPC_EVENT_TYPE1(DB_IPCE_CONTROL_C_EVENT ,0x012f)
62IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_CLEANUP_RESULT ,0x0130)
63IPC_EVENT_TYPE1(DB_IPCE_ENC_REMAP ,0x0131)
64IPC_EVENT_TYPE1(DB_IPCE_SET_VALUE_CLASS_RESULT ,0x0133)
65IPC_EVENT_TYPE1(DB_IPCE_BREAKPOINT_SET_ERROR ,0x0134)
66IPC_EVENT_TYPE1(DB_IPCE_ENC_UPDATE_FUNCTION ,0x0137)
67IPC_EVENT_TYPE1(DB_IPCE_SET_METHOD_JMC_STATUS_RESULT ,0x013a)
68IPC_EVENT_TYPE1(DB_IPCE_GET_METHOD_JMC_STATUS_RESULT ,0x013b)
69IPC_EVENT_TYPE1(DB_IPCE_SET_MODULE_JMC_STATUS_RESULT ,0x013c)
70IPC_EVENT_TYPE1(DB_IPCE_GET_THREAD_FOR_TASKID_RESULT ,0x013d)
71IPC_EVENT_TYPE1(DB_IPCE_CREATE_CONNECTION ,0x0141)
72IPC_EVENT_TYPE1(DB_IPCE_DESTROY_CONNECTION ,0x0142)
73IPC_EVENT_TYPE1(DB_IPCE_CHANGE_CONNECTION ,0x0143)
74IPC_EVENT_TYPE1(DB_IPCE_FUNC_EVAL_RUDE_ABORT_RESULT ,0x0144)
75IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION_CALLBACK2 ,0x0147)
76IPC_EVENT_TYPE1(DB_IPCE_EXCEPTION_UNWIND ,0x0148)
77IPC_EVENT_TYPE1(DB_IPCE_INTERCEPT_EXCEPTION_RESULT ,0x0149)
78IPC_EVENT_TYPE1(DB_IPCE_CREATE_HANDLE_RESULT ,0x014A)
79IPC_EVENT_TYPE1(DB_IPCE_INTERCEPT_EXCEPTION_COMPLETE ,0x014B)
80IPC_EVENT_TYPE1(DB_IPCE_ENC_REMAP_COMPLETE ,0x014C)
81IPC_EVENT_TYPE1(DB_IPCE_CREATE_PROCESS ,0x014D)
82IPC_EVENT_TYPE1(DB_IPCE_ENC_ADD_FUNCTION ,0x014E)
83IPC_EVENT_TYPE1(DB_IPCE_GET_NGEN_COMPILER_FLAGS_RESULT,0x0151)
84IPC_EVENT_TYPE1(DB_IPCE_SET_NGEN_COMPILER_FLAGS_RESULT,0x0152)
85IPC_EVENT_TYPE1(DB_IPCE_MDA_NOTIFICATION ,0x0156)
86IPC_EVENT_TYPE1(DB_IPCE_GET_GCHANDLE_INFO_RESULT ,0x0157)
87IPC_EVENT_TYPE1(DB_IPCE_TEST_CRST ,0x0158)
88IPC_EVENT_TYPE1(DB_IPCE_TEST_RWLOCK ,0x0159)
89IPC_EVENT_TYPE1(DB_IPCE_LEFTSIDE_STARTUP ,0x015C)
90IPC_EVENT_TYPE1(DB_IPCE_METADATA_UPDATE ,0x015D)
91IPC_EVENT_TYPE1(DB_IPCE_RESOLVE_UPDATE_METADATA_1_RESULT,0x015E)
92IPC_EVENT_TYPE1(DB_IPCE_RESOLVE_UPDATE_METADATA_2_RESULT,0x015F)
93IPC_EVENT_TYPE1(DB_IPCE_DATA_BREAKPOINT ,0x0160)
94IPC_EVENT_TYPE1(DB_IPCE_BEFORE_GARBAGE_COLLECTION ,0x0161)
95IPC_EVENT_TYPE1(DB_IPCE_AFTER_GARBAGE_COLLECTION ,0x0162)
96IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_LAST ,0x0163) // The last event from runtime
97
98
99
100// Events that travel from the DI to the RC (Right to Left)
101IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_FIRST ,0x0200) // change to TYPE0 because it is not really an event
102IPC_EVENT_TYPE2(DB_IPCE_ASYNC_BREAK ,0x0200)
103IPC_EVENT_TYPE2(DB_IPCE_CONTINUE ,0x0201)
104IPC_EVENT_TYPE2(DB_IPCE_LIST_THREADS ,0x0202)
105IPC_EVENT_TYPE2(DB_IPCE_SET_IP ,0x0205)
106IPC_EVENT_TYPE2(DB_IPCE_SUSPEND_THREAD ,0x0206)
107IPC_EVENT_TYPE2(DB_IPCE_RESUME_THREAD ,0x0207)
108IPC_EVENT_TYPE2(DB_IPCE_BREAKPOINT_ADD ,0x0209)
109IPC_EVENT_TYPE2(DB_IPCE_BREAKPOINT_REMOVE ,0x020A)
110IPC_EVENT_TYPE2(DB_IPCE_STEP_CANCEL ,0x020B)
111IPC_EVENT_TYPE2(DB_IPCE_STEP ,0x020C)
112IPC_EVENT_TYPE2(DB_IPCE_STEP_OUT ,0x020D)
113IPC_EVENT_TYPE2(DB_IPCE_GET_BUFFER ,0x0211)
114IPC_EVENT_TYPE2(DB_IPCE_RELEASE_BUFFER ,0x0212)
115IPC_EVENT_TYPE2(DB_IPCE_SET_CLASS_LOAD_FLAG ,0x0217)
116IPC_EVENT_TYPE2(DB_IPCE_CONTINUE_EXCEPTION ,0x0219)
117IPC_EVENT_TYPE2(DB_IPCE_ATTACHING ,0x021A)
118IPC_EVENT_TYPE2(DB_IPCE_APPLY_CHANGES ,0x021B)
119IPC_EVENT_TYPE2(DB_IPCE_SET_NGEN_COMPILER_FLAGS ,0x021F)
120IPC_EVENT_TYPE2(DB_IPCE_GET_NGEN_COMPILER_FLAGS ,0x0220)
121IPC_EVENT_TYPE2(DB_IPCE_IS_TRANSITION_STUB ,0x0221)
122IPC_EVENT_TYPE2(DB_IPCE_IS_TRANSITION_STUB_RESULT ,0x0222)
123IPC_EVENT_TYPE2(DB_IPCE_MODIFY_LOGSWITCH ,0x0223)
124IPC_EVENT_TYPE2(DB_IPCE_ENABLE_LOG_MESSAGES ,0x0224)
125IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL ,0x0225)
126IPC_EVENT_TYPE2(DB_IPCE_SET_REFERENCE ,0x0228)
127IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_ABORT ,0x022c)
128IPC_EVENT_TYPE2(DB_IPCE_DETACH_FROM_PROCESS ,0x022f)
129IPC_EVENT_TYPE2(DB_IPCE_CONTROL_C_EVENT_RESULT ,0x0230)
130IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_CLEANUP ,0x0231)
131IPC_EVENT_TYPE2(DB_IPCE_SET_ALL_DEBUG_STATE ,0x0232)
132IPC_EVENT_TYPE2(DB_IPCE_SET_VALUE_CLASS ,0x0234)
133IPC_EVENT_TYPE2(DB_IPCE_SET_METHOD_JMC_STATUS ,0x023a)
134IPC_EVENT_TYPE2(DB_IPCE_GET_METHOD_JMC_STATUS ,0x023b)
135IPC_EVENT_TYPE2(DB_IPCE_SET_MODULE_JMC_STATUS ,0x023c)
136IPC_EVENT_TYPE2(DB_IPCE_GET_THREAD_FOR_TASKID ,0x023d)
137IPC_EVENT_TYPE2(DB_IPCE_FUNC_EVAL_RUDE_ABORT ,0x0241)
138IPC_EVENT_TYPE2(DB_IPCE_CREATE_HANDLE ,0x0244)
139IPC_EVENT_TYPE2(DB_IPCE_DISPOSE_HANDLE ,0x0245)
140IPC_EVENT_TYPE2(DB_IPCE_INTERCEPT_EXCEPTION ,0x0246)
141IPC_EVENT_TYPE2(DB_IPCE_DEBUGGER_INVALID ,0x0249) // An invalid event type
142IPC_EVENT_TYPE2(DB_IPCE_GET_GCHANDLE_INFO ,0x0251)
143IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_1 ,0x0256)
144IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_2 ,0x0257)
145IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_LAST ,0x0258) // The last event from the debugger
146
147