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

Unified 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: util/mach/exc_server_variants.h
diff --git a/util/mach/exc_server_variants.h b/util/mach/exc_server_variants.h
index 75e81e4279a7f0c236d2510b3cd3332fd65c9a78..96a95bf9109fa13bdba06654e5e1cbbd8eb2a20f 100644
--- a/util/mach/exc_server_variants.h
+++ b/util/mach/exc_server_variants.h
@@ -42,6 +42,7 @@ class ExcServer : public MachMessageServer::Interface {
//! This behaves equivalently to a `catch_exception_raise()` function used
//! with `exc_server()`.
//!
+ //! \param[in] trailer The trailer received with the request message.
//! \param[out] destroy_request `true` if the request message is to be
//! destroyed even when this method returns success. See
//! MachMessageServer::Interface.
@@ -52,6 +53,7 @@ class ExcServer : public MachMessageServer::Interface {
exception_type_t exception,
const exception_data_type_t* code,
mach_msg_type_number_t code_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_request) = 0;
//! \brief Handles exceptions raised by `exception_raise_state()`.
@@ -63,6 +65,8 @@ class ExcServer : public MachMessageServer::Interface {
//! CatchExceptionRaise() and CatchExceptionRaiseStateIdentity(), the
//! request message is not complex (it does not carry the \a thread or \a
//! task port rights) and thus there is nothing to destroy.
+ //!
+ //! \param[in] trailer The trailer received with the request message.
virtual kern_return_t CatchExceptionRaiseState(
exception_handler_t exception_port,
exception_type_t exception,
@@ -72,13 +76,15 @@ class ExcServer : public MachMessageServer::Interface {
const natural_t* old_state,
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
- mach_msg_type_number_t* new_state_count) = 0;
+ mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer) = 0;
//! \brief Handles exceptions raised by `exception_raise_state_identity()`.
//!
//! This behaves equivalently to a `catch_exception_raise_state_identity()`
//! function used with `exc_server()`.
//!
+ //! \param[in] trailer The trailer received with the request message.
//! \param[out] destroy_request `true` if the request message is to be
//! destroyed even when this method returns success. See
//! MachMessageServer::Interface.
@@ -94,6 +100,7 @@ class ExcServer : public MachMessageServer::Interface {
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_request) = 0;
protected:
@@ -132,6 +139,7 @@ class MachExcServer : public MachMessageServer::Interface {
//! This behaves equivalently to a `catch_mach_exception_raise()` function
//! used with `mach_exc_server()`.
//!
+ //! \param[in] trailer The trailer received with the request message.
//! \param[out] destroy_request `true` if the request message is to be
//! destroyed even when this method returns success. See
//! MachMessageServer::Interface.
@@ -142,6 +150,7 @@ class MachExcServer : public MachMessageServer::Interface {
exception_type_t exception,
const mach_exception_data_type_t* code,
mach_msg_type_number_t code_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_request) = 0;
//! \brief Handles exceptions raised by `mach_exception_raise_state()`.
@@ -153,6 +162,8 @@ class MachExcServer : public MachMessageServer::Interface {
//! CatchMachExceptionRaise() and CatchMachExceptionRaiseStateIdentity(),
//! the request message is not complex (it does not carry the \a thread or
//! \a task port rights) and thus there is nothing to destroy.
+ //!
+ //! \param[in] trailer The trailer received with the request message.
virtual kern_return_t CatchMachExceptionRaiseState(
exception_handler_t exception_port,
exception_type_t exception,
@@ -162,7 +173,8 @@ class MachExcServer : public MachMessageServer::Interface {
const natural_t* old_state,
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
- mach_msg_type_number_t* new_state_count) = 0;
+ mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer) = 0;
//! \brief Handles exceptions raised by
//! `mach_exception_raise_state_identity()`.
@@ -171,6 +183,7 @@ class MachExcServer : public MachMessageServer::Interface {
//! `catch_mach_exception_raise_state_identity()` function used with
//! `mach_exc_server()`.
//!
+ //! \param[in] trailer The trailer received with the request message.
//! \param[out] destroy_request `true` if the request message is to be
//! destroyed even when this method returns success. See
//! MachMessageServer::Interface.
@@ -186,6 +199,7 @@ class MachExcServer : public MachMessageServer::Interface {
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_request) = 0;
protected:
@@ -248,6 +262,7 @@ class SimplifiedExcServer : public ExcServer, public ExcServer::Interface {
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_complex_request) = 0;
protected:
@@ -267,6 +282,7 @@ class SimplifiedExcServer : public ExcServer, public ExcServer::Interface {
exception_type_t exception,
const exception_data_type_t* code,
mach_msg_type_number_t code_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_request) override;
kern_return_t CatchExceptionRaiseState(
exception_handler_t exception_port,
@@ -277,7 +293,8 @@ class SimplifiedExcServer : public ExcServer, public ExcServer::Interface {
const natural_t* old_state,
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
- mach_msg_type_number_t* new_state_count) override;
+ mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer) override;
kern_return_t CatchExceptionRaiseStateIdentity(
exception_handler_t exception_port,
thread_t thread,
@@ -290,6 +307,7 @@ class SimplifiedExcServer : public ExcServer, public ExcServer::Interface {
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_request) override;
private:
@@ -344,6 +362,7 @@ class SimplifiedMachExcServer : public MachExcServer,
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_complex_request) = 0;
protected:
@@ -363,6 +382,7 @@ class SimplifiedMachExcServer : public MachExcServer,
exception_type_t exception,
const mach_exception_data_type_t* code,
mach_msg_type_number_t code_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_request) override;
kern_return_t CatchMachExceptionRaiseState(
exception_handler_t exception_port,
@@ -373,7 +393,8 @@ class SimplifiedMachExcServer : public MachExcServer,
const natural_t* old_state,
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
- mach_msg_type_number_t* new_state_count) override;
+ mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer) override;
kern_return_t CatchMachExceptionRaiseStateIdentity(
exception_handler_t exception_port,
thread_t thread,
@@ -386,6 +407,7 @@ class SimplifiedMachExcServer : public MachExcServer,
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_request) override;
private:
@@ -440,6 +462,7 @@ class UniversalMachExcServer
mach_msg_type_number_t old_state_count,
thread_state_t new_state,
mach_msg_type_number_t* new_state_count,
+ const mach_msg_trailer_t* trailer,
bool* destroy_complex_request) override;
private:
« 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