Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(291)

Side by Side Diff: util/mach/exc_server_variants.h

Issue 755313004: Pass Mach message trailers to server handler functions (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Address review feedback Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « util/mach/exc_client_variants_test.cc ('k') | util/mach/exc_server_variants.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 24 matching lines...) Expand all
35 public: 35 public:
36 //! \brief An interface that the different request messages that are a part of 36 //! \brief An interface that the different request messages that are a part of
37 //! the `exc` Mach subsystem can be dispatched to. 37 //! the `exc` Mach subsystem can be dispatched to.
38 class Interface { 38 class Interface {
39 public: 39 public:
40 //! \brief Handles exceptions raised by `exception_raise()`. 40 //! \brief Handles exceptions raised by `exception_raise()`.
41 //! 41 //!
42 //! This behaves equivalently to a `catch_exception_raise()` function used 42 //! This behaves equivalently to a `catch_exception_raise()` function used
43 //! with `exc_server()`. 43 //! with `exc_server()`.
44 //! 44 //!
45 //! \param[in] trailer The trailer received with the request message.
45 //! \param[out] destroy_request `true` if the request message is to be 46 //! \param[out] destroy_request `true` if the request message is to be
46 //! destroyed even when this method returns success. See 47 //! destroyed even when this method returns success. See
47 //! MachMessageServer::Interface. 48 //! MachMessageServer::Interface.
48 virtual kern_return_t CatchExceptionRaise( 49 virtual kern_return_t CatchExceptionRaise(
49 exception_handler_t exception_port, 50 exception_handler_t exception_port,
50 thread_t thread, 51 thread_t thread,
51 task_t task, 52 task_t task,
52 exception_type_t exception, 53 exception_type_t exception,
53 const exception_data_type_t* code, 54 const exception_data_type_t* code,
54 mach_msg_type_number_t code_count, 55 mach_msg_type_number_t code_count,
56 const mach_msg_trailer_t* trailer,
55 bool* destroy_request) = 0; 57 bool* destroy_request) = 0;
56 58
57 //! \brief Handles exceptions raised by `exception_raise_state()`. 59 //! \brief Handles exceptions raised by `exception_raise_state()`.
58 //! 60 //!
59 //! This behaves equivalently to a `catch_exception_raise_state()` function 61 //! This behaves equivalently to a `catch_exception_raise_state()` function
60 //! used with `exc_server()`. 62 //! used with `exc_server()`.
61 //! 63 //!
62 //! There is no \a destroy_request parameter because, unlike 64 //! There is no \a destroy_request parameter because, unlike
63 //! CatchExceptionRaise() and CatchExceptionRaiseStateIdentity(), the 65 //! CatchExceptionRaise() and CatchExceptionRaiseStateIdentity(), the
64 //! request message is not complex (it does not carry the \a thread or \a 66 //! request message is not complex (it does not carry the \a thread or \a
65 //! task port rights) and thus there is nothing to destroy. 67 //! task port rights) and thus there is nothing to destroy.
68 //!
69 //! \param[in] trailer The trailer received with the request message.
66 virtual kern_return_t CatchExceptionRaiseState( 70 virtual kern_return_t CatchExceptionRaiseState(
67 exception_handler_t exception_port, 71 exception_handler_t exception_port,
68 exception_type_t exception, 72 exception_type_t exception,
69 const exception_data_type_t* code, 73 const exception_data_type_t* code,
70 mach_msg_type_number_t code_count, 74 mach_msg_type_number_t code_count,
71 thread_state_flavor_t* flavor, 75 thread_state_flavor_t* flavor,
72 const natural_t* old_state, 76 const natural_t* old_state,
73 mach_msg_type_number_t old_state_count, 77 mach_msg_type_number_t old_state_count,
74 thread_state_t new_state, 78 thread_state_t new_state,
75 mach_msg_type_number_t* new_state_count) = 0; 79 mach_msg_type_number_t* new_state_count,
80 const mach_msg_trailer_t* trailer) = 0;
76 81
77 //! \brief Handles exceptions raised by `exception_raise_state_identity()`. 82 //! \brief Handles exceptions raised by `exception_raise_state_identity()`.
78 //! 83 //!
79 //! This behaves equivalently to a `catch_exception_raise_state_identity()` 84 //! This behaves equivalently to a `catch_exception_raise_state_identity()`
80 //! function used with `exc_server()`. 85 //! function used with `exc_server()`.
81 //! 86 //!
87 //! \param[in] trailer The trailer received with the request message.
82 //! \param[out] destroy_request `true` if the request message is to be 88 //! \param[out] destroy_request `true` if the request message is to be
83 //! destroyed even when this method returns success. See 89 //! destroyed even when this method returns success. See
84 //! MachMessageServer::Interface. 90 //! MachMessageServer::Interface.
85 virtual kern_return_t CatchExceptionRaiseStateIdentity( 91 virtual kern_return_t CatchExceptionRaiseStateIdentity(
86 exception_handler_t exception_port, 92 exception_handler_t exception_port,
87 thread_t thread, 93 thread_t thread,
88 task_t task, 94 task_t task,
89 exception_type_t exception, 95 exception_type_t exception,
90 const exception_data_type_t* code, 96 const exception_data_type_t* code,
91 mach_msg_type_number_t code_count, 97 mach_msg_type_number_t code_count,
92 thread_state_flavor_t* flavor, 98 thread_state_flavor_t* flavor,
93 const natural_t* old_state, 99 const natural_t* old_state,
94 mach_msg_type_number_t old_state_count, 100 mach_msg_type_number_t old_state_count,
95 thread_state_t new_state, 101 thread_state_t new_state,
96 mach_msg_type_number_t* new_state_count, 102 mach_msg_type_number_t* new_state_count,
103 const mach_msg_trailer_t* trailer,
97 bool* destroy_request) = 0; 104 bool* destroy_request) = 0;
98 105
99 protected: 106 protected:
100 ~Interface() {} 107 ~Interface() {}
101 }; 108 };
102 109
103 //! \brief Constructs an object of this class. 110 //! \brief Constructs an object of this class.
104 //! 111 //!
105 //! \param[in] interface The interface to dispatch requests to. Weak. 112 //! \param[in] interface The interface to dispatch requests to. Weak.
106 explicit ExcServer(Interface* interface); 113 explicit ExcServer(Interface* interface);
(...skipping 18 matching lines...) Expand all
125 public: 132 public:
126 //! \brief An interface that the different request messages that are a part of 133 //! \brief An interface that the different request messages that are a part of
127 //! the `mach_exc` Mach subsystem can be dispatched to. 134 //! the `mach_exc` Mach subsystem can be dispatched to.
128 class Interface { 135 class Interface {
129 public: 136 public:
130 //! \brief Handles exceptions raised by `mach_exception_raise()`. 137 //! \brief Handles exceptions raised by `mach_exception_raise()`.
131 //! 138 //!
132 //! This behaves equivalently to a `catch_mach_exception_raise()` function 139 //! This behaves equivalently to a `catch_mach_exception_raise()` function
133 //! used with `mach_exc_server()`. 140 //! used with `mach_exc_server()`.
134 //! 141 //!
142 //! \param[in] trailer The trailer received with the request message.
135 //! \param[out] destroy_request `true` if the request message is to be 143 //! \param[out] destroy_request `true` if the request message is to be
136 //! destroyed even when this method returns success. See 144 //! destroyed even when this method returns success. See
137 //! MachMessageServer::Interface. 145 //! MachMessageServer::Interface.
138 virtual kern_return_t CatchMachExceptionRaise( 146 virtual kern_return_t CatchMachExceptionRaise(
139 exception_handler_t exception_port, 147 exception_handler_t exception_port,
140 thread_t thread, 148 thread_t thread,
141 task_t task, 149 task_t task,
142 exception_type_t exception, 150 exception_type_t exception,
143 const mach_exception_data_type_t* code, 151 const mach_exception_data_type_t* code,
144 mach_msg_type_number_t code_count, 152 mach_msg_type_number_t code_count,
153 const mach_msg_trailer_t* trailer,
145 bool* destroy_request) = 0; 154 bool* destroy_request) = 0;
146 155
147 //! \brief Handles exceptions raised by `mach_exception_raise_state()`. 156 //! \brief Handles exceptions raised by `mach_exception_raise_state()`.
148 //! 157 //!
149 //! This behaves equivalently to a `catch_mach_exception_raise_state()` 158 //! This behaves equivalently to a `catch_mach_exception_raise_state()`
150 //! function used with `mach_exc_server()`. 159 //! function used with `mach_exc_server()`.
151 //! 160 //!
152 //! There is no \a destroy_request parameter because, unlike 161 //! There is no \a destroy_request parameter because, unlike
153 //! CatchMachExceptionRaise() and CatchMachExceptionRaiseStateIdentity(), 162 //! CatchMachExceptionRaise() and CatchMachExceptionRaiseStateIdentity(),
154 //! the request message is not complex (it does not carry the \a thread or 163 //! the request message is not complex (it does not carry the \a thread or
155 //! \a task port rights) and thus there is nothing to destroy. 164 //! \a task port rights) and thus there is nothing to destroy.
165 //!
166 //! \param[in] trailer The trailer received with the request message.
156 virtual kern_return_t CatchMachExceptionRaiseState( 167 virtual kern_return_t CatchMachExceptionRaiseState(
157 exception_handler_t exception_port, 168 exception_handler_t exception_port,
158 exception_type_t exception, 169 exception_type_t exception,
159 const mach_exception_data_type_t* code, 170 const mach_exception_data_type_t* code,
160 mach_msg_type_number_t code_count, 171 mach_msg_type_number_t code_count,
161 thread_state_flavor_t* flavor, 172 thread_state_flavor_t* flavor,
162 const natural_t* old_state, 173 const natural_t* old_state,
163 mach_msg_type_number_t old_state_count, 174 mach_msg_type_number_t old_state_count,
164 thread_state_t new_state, 175 thread_state_t new_state,
165 mach_msg_type_number_t* new_state_count) = 0; 176 mach_msg_type_number_t* new_state_count,
177 const mach_msg_trailer_t* trailer) = 0;
166 178
167 //! \brief Handles exceptions raised by 179 //! \brief Handles exceptions raised by
168 //! `mach_exception_raise_state_identity()`. 180 //! `mach_exception_raise_state_identity()`.
169 //! 181 //!
170 //! This behaves equivalently to a 182 //! This behaves equivalently to a
171 //! `catch_mach_exception_raise_state_identity()` function used with 183 //! `catch_mach_exception_raise_state_identity()` function used with
172 //! `mach_exc_server()`. 184 //! `mach_exc_server()`.
173 //! 185 //!
186 //! \param[in] trailer The trailer received with the request message.
174 //! \param[out] destroy_request `true` if the request message is to be 187 //! \param[out] destroy_request `true` if the request message is to be
175 //! destroyed even when this method returns success. See 188 //! destroyed even when this method returns success. See
176 //! MachMessageServer::Interface. 189 //! MachMessageServer::Interface.
177 virtual kern_return_t CatchMachExceptionRaiseStateIdentity( 190 virtual kern_return_t CatchMachExceptionRaiseStateIdentity(
178 exception_handler_t exception_port, 191 exception_handler_t exception_port,
179 thread_t thread, 192 thread_t thread,
180 task_t task, 193 task_t task,
181 exception_type_t exception, 194 exception_type_t exception,
182 const mach_exception_data_type_t* code, 195 const mach_exception_data_type_t* code,
183 mach_msg_type_number_t code_count, 196 mach_msg_type_number_t code_count,
184 thread_state_flavor_t* flavor, 197 thread_state_flavor_t* flavor,
185 const natural_t* old_state, 198 const natural_t* old_state,
186 mach_msg_type_number_t old_state_count, 199 mach_msg_type_number_t old_state_count,
187 thread_state_t new_state, 200 thread_state_t new_state,
188 mach_msg_type_number_t* new_state_count, 201 mach_msg_type_number_t* new_state_count,
202 const mach_msg_trailer_t* trailer,
189 bool* destroy_request) = 0; 203 bool* destroy_request) = 0;
190 204
191 protected: 205 protected:
192 ~Interface() {} 206 ~Interface() {}
193 }; 207 };
194 208
195 //! \brief Constructs an object of this class. 209 //! \brief Constructs an object of this class.
196 //! 210 //!
197 //! \param[in] interface The interface to dispatch requests to. Weak. 211 //! \param[in] interface The interface to dispatch requests to. Weak.
198 explicit MachExcServer(Interface* interface); 212 explicit MachExcServer(Interface* interface);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 thread_t thread, 255 thread_t thread,
242 task_t task, 256 task_t task,
243 exception_type_t exception, 257 exception_type_t exception,
244 const exception_data_type_t* code, 258 const exception_data_type_t* code,
245 mach_msg_type_number_t code_count, 259 mach_msg_type_number_t code_count,
246 thread_state_flavor_t* flavor, 260 thread_state_flavor_t* flavor,
247 const natural_t* old_state, 261 const natural_t* old_state,
248 mach_msg_type_number_t old_state_count, 262 mach_msg_type_number_t old_state_count,
249 thread_state_t new_state, 263 thread_state_t new_state,
250 mach_msg_type_number_t* new_state_count, 264 mach_msg_type_number_t* new_state_count,
265 const mach_msg_trailer_t* trailer,
251 bool* destroy_complex_request) = 0; 266 bool* destroy_complex_request) = 0;
252 267
253 protected: 268 protected:
254 ~Interface() {} 269 ~Interface() {}
255 }; 270 };
256 271
257 //! \brief Constructs an object of this class. 272 //! \brief Constructs an object of this class.
258 //! 273 //!
259 //! \param[in] interface The interface to dispatch requests to. Weak. 274 //! \param[in] interface The interface to dispatch requests to. Weak.
260 explicit SimplifiedExcServer(Interface* interface); 275 explicit SimplifiedExcServer(Interface* interface);
261 276
262 // ExcServer::Interface: 277 // ExcServer::Interface:
263 278
264 kern_return_t CatchExceptionRaise(exception_handler_t exception_port, 279 kern_return_t CatchExceptionRaise(exception_handler_t exception_port,
265 thread_t thread, 280 thread_t thread,
266 task_t task, 281 task_t task,
267 exception_type_t exception, 282 exception_type_t exception,
268 const exception_data_type_t* code, 283 const exception_data_type_t* code,
269 mach_msg_type_number_t code_count, 284 mach_msg_type_number_t code_count,
285 const mach_msg_trailer_t* trailer,
270 bool* destroy_request) override; 286 bool* destroy_request) override;
271 kern_return_t CatchExceptionRaiseState( 287 kern_return_t CatchExceptionRaiseState(
272 exception_handler_t exception_port, 288 exception_handler_t exception_port,
273 exception_type_t exception, 289 exception_type_t exception,
274 const exception_data_type_t* code, 290 const exception_data_type_t* code,
275 mach_msg_type_number_t code_count, 291 mach_msg_type_number_t code_count,
276 thread_state_flavor_t* flavor, 292 thread_state_flavor_t* flavor,
277 const natural_t* old_state, 293 const natural_t* old_state,
278 mach_msg_type_number_t old_state_count, 294 mach_msg_type_number_t old_state_count,
279 thread_state_t new_state, 295 thread_state_t new_state,
280 mach_msg_type_number_t* new_state_count) override; 296 mach_msg_type_number_t* new_state_count,
297 const mach_msg_trailer_t* trailer) override;
281 kern_return_t CatchExceptionRaiseStateIdentity( 298 kern_return_t CatchExceptionRaiseStateIdentity(
282 exception_handler_t exception_port, 299 exception_handler_t exception_port,
283 thread_t thread, 300 thread_t thread,
284 task_t task, 301 task_t task,
285 exception_type_t exception, 302 exception_type_t exception,
286 const exception_data_type_t* code, 303 const exception_data_type_t* code,
287 mach_msg_type_number_t code_count, 304 mach_msg_type_number_t code_count,
288 thread_state_flavor_t* flavor, 305 thread_state_flavor_t* flavor,
289 const natural_t* old_state, 306 const natural_t* old_state,
290 mach_msg_type_number_t old_state_count, 307 mach_msg_type_number_t old_state_count,
291 thread_state_t new_state, 308 thread_state_t new_state,
292 mach_msg_type_number_t* new_state_count, 309 mach_msg_type_number_t* new_state_count,
310 const mach_msg_trailer_t* trailer,
293 bool* destroy_request) override; 311 bool* destroy_request) override;
294 312
295 private: 313 private:
296 Interface* interface_; // weak 314 Interface* interface_; // weak
297 315
298 DISALLOW_COPY_AND_ASSIGN(SimplifiedExcServer); 316 DISALLOW_COPY_AND_ASSIGN(SimplifiedExcServer);
299 }; 317 };
300 318
301 //! \brief A server interface for the `mach_exc` Mach subsystem, simplified to 319 //! \brief A server interface for the `mach_exc` Mach subsystem, simplified to
302 //! have only a single interface method needing implementation. 320 //! have only a single interface method needing implementation.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 thread_t thread, 355 thread_t thread,
338 task_t task, 356 task_t task,
339 exception_type_t exception, 357 exception_type_t exception,
340 const mach_exception_data_type_t* code, 358 const mach_exception_data_type_t* code,
341 mach_msg_type_number_t code_count, 359 mach_msg_type_number_t code_count,
342 thread_state_flavor_t* flavor, 360 thread_state_flavor_t* flavor,
343 const natural_t* old_state, 361 const natural_t* old_state,
344 mach_msg_type_number_t old_state_count, 362 mach_msg_type_number_t old_state_count,
345 thread_state_t new_state, 363 thread_state_t new_state,
346 mach_msg_type_number_t* new_state_count, 364 mach_msg_type_number_t* new_state_count,
365 const mach_msg_trailer_t* trailer,
347 bool* destroy_complex_request) = 0; 366 bool* destroy_complex_request) = 0;
348 367
349 protected: 368 protected:
350 ~Interface() {} 369 ~Interface() {}
351 }; 370 };
352 371
353 //! \brief Constructs an object of this class. 372 //! \brief Constructs an object of this class.
354 //! 373 //!
355 //! \param[in] interface The interface to dispatch requests to. Weak. 374 //! \param[in] interface The interface to dispatch requests to. Weak.
356 explicit SimplifiedMachExcServer(Interface* interface); 375 explicit SimplifiedMachExcServer(Interface* interface);
357 376
358 // MachExcServer::Interface: 377 // MachExcServer::Interface:
359 378
360 kern_return_t CatchMachExceptionRaise(exception_handler_t exception_port, 379 kern_return_t CatchMachExceptionRaise(exception_handler_t exception_port,
361 thread_t thread, 380 thread_t thread,
362 task_t task, 381 task_t task,
363 exception_type_t exception, 382 exception_type_t exception,
364 const mach_exception_data_type_t* code, 383 const mach_exception_data_type_t* code,
365 mach_msg_type_number_t code_count, 384 mach_msg_type_number_t code_count,
385 const mach_msg_trailer_t* trailer,
366 bool* destroy_request) override; 386 bool* destroy_request) override;
367 kern_return_t CatchMachExceptionRaiseState( 387 kern_return_t CatchMachExceptionRaiseState(
368 exception_handler_t exception_port, 388 exception_handler_t exception_port,
369 exception_type_t exception, 389 exception_type_t exception,
370 const mach_exception_data_type_t* code, 390 const mach_exception_data_type_t* code,
371 mach_msg_type_number_t code_count, 391 mach_msg_type_number_t code_count,
372 thread_state_flavor_t* flavor, 392 thread_state_flavor_t* flavor,
373 const natural_t* old_state, 393 const natural_t* old_state,
374 mach_msg_type_number_t old_state_count, 394 mach_msg_type_number_t old_state_count,
375 thread_state_t new_state, 395 thread_state_t new_state,
376 mach_msg_type_number_t* new_state_count) override; 396 mach_msg_type_number_t* new_state_count,
397 const mach_msg_trailer_t* trailer) override;
377 kern_return_t CatchMachExceptionRaiseStateIdentity( 398 kern_return_t CatchMachExceptionRaiseStateIdentity(
378 exception_handler_t exception_port, 399 exception_handler_t exception_port,
379 thread_t thread, 400 thread_t thread,
380 task_t task, 401 task_t task,
381 exception_type_t exception, 402 exception_type_t exception,
382 const mach_exception_data_type_t* code, 403 const mach_exception_data_type_t* code,
383 mach_msg_type_number_t code_count, 404 mach_msg_type_number_t code_count,
384 thread_state_flavor_t* flavor, 405 thread_state_flavor_t* flavor,
385 const natural_t* old_state, 406 const natural_t* old_state,
386 mach_msg_type_number_t old_state_count, 407 mach_msg_type_number_t old_state_count,
387 thread_state_t new_state, 408 thread_state_t new_state,
388 mach_msg_type_number_t* new_state_count, 409 mach_msg_type_number_t* new_state_count,
410 const mach_msg_trailer_t* trailer,
389 bool* destroy_request) override; 411 bool* destroy_request) override;
390 412
391 private: 413 private:
392 Interface* interface_; // weak 414 Interface* interface_; // weak
393 415
394 DISALLOW_COPY_AND_ASSIGN(SimplifiedMachExcServer); 416 DISALLOW_COPY_AND_ASSIGN(SimplifiedMachExcServer);
395 }; 417 };
396 418
397 } // namespace internal 419 } // namespace internal
398 420
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 thread_t thread, 455 thread_t thread,
434 task_t task, 456 task_t task,
435 exception_type_t exception, 457 exception_type_t exception,
436 const exception_data_type_t* code, 458 const exception_data_type_t* code,
437 mach_msg_type_number_t code_count, 459 mach_msg_type_number_t code_count,
438 thread_state_flavor_t* flavor, 460 thread_state_flavor_t* flavor,
439 const natural_t* old_state, 461 const natural_t* old_state,
440 mach_msg_type_number_t old_state_count, 462 mach_msg_type_number_t old_state_count,
441 thread_state_t new_state, 463 thread_state_t new_state,
442 mach_msg_type_number_t* new_state_count, 464 mach_msg_type_number_t* new_state_count,
465 const mach_msg_trailer_t* trailer,
443 bool* destroy_complex_request) override; 466 bool* destroy_complex_request) override;
444 467
445 private: 468 private:
446 internal::SimplifiedExcServer exc_server_; 469 internal::SimplifiedExcServer exc_server_;
447 internal::SimplifiedMachExcServer mach_exc_server_; 470 internal::SimplifiedMachExcServer mach_exc_server_;
448 471
449 DISALLOW_COPY_AND_ASSIGN(UniversalMachExcServer); 472 DISALLOW_COPY_AND_ASSIGN(UniversalMachExcServer);
450 }; 473 };
451 474
452 //! \brief Recovers the original exception, first exception code, and signal 475 //! \brief Recovers the original exception, first exception code, and signal
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 //! \a behavior is not a state-carrying behavior, or when it is a 552 //! \a behavior is not a state-carrying behavior, or when it is a
530 //! state-carrying behavior and \a set_thread_state is `true`. 553 //! state-carrying behavior and \a set_thread_state is `true`.
531 //! `MACH_RCV_PORT_DIED` is used when \a behavior is a state-carrying 554 //! `MACH_RCV_PORT_DIED` is used when \a behavior is a state-carrying
532 //! behavior and \a set_thread_state is `false`. 555 //! behavior and \a set_thread_state is `false`.
533 kern_return_t ExcServerSuccessfulReturnValue(exception_behavior_t behavior, 556 kern_return_t ExcServerSuccessfulReturnValue(exception_behavior_t behavior,
534 bool set_thread_state); 557 bool set_thread_state);
535 558
536 } // namespace crashpad 559 } // namespace crashpad
537 560
538 #endif // CRASHPAD_UTIL_MACH_EXC_SERVER_VARIANTS_H_ 561 #endif // CRASHPAD_UTIL_MACH_EXC_SERVER_VARIANTS_H_
OLDNEW
« no previous file with comments | « util/mach/exc_client_variants_test.cc ('k') | util/mach/exc_server_variants.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698