| Index: util/mach/exc_server_variants.cc
|
| diff --git a/util/mach/exc_server_variants.cc b/util/mach/exc_server_variants.cc
|
| index 117335000d506ece4857cea44e0c46d7268aba1f..4408eeb49e06d2e754fd7889ec45d708acc71629 100644
|
| --- a/util/mach/exc_server_variants.cc
|
| +++ b/util/mach/exc_server_variants.cc
|
| @@ -23,6 +23,7 @@
|
| #include "util/mach/excServer.h"
|
| #include "util/mach/mach_exc.h"
|
| #include "util/mach/mach_excServer.h"
|
| +#include "util/mach/mach_message_util.h"
|
|
|
| extern "C" {
|
|
|
| @@ -118,21 +119,6 @@ kern_return_t catch_mach_exception_raise_state_identity(
|
|
|
| namespace {
|
|
|
| -void PrepareReplyFromRequest(const mach_msg_header_t* in_header,
|
| - mach_msg_header_t* out_header) {
|
| - out_header->msgh_bits =
|
| - MACH_MSGH_BITS(MACH_MSGH_BITS_REMOTE(in_header->msgh_bits), 0);
|
| - out_header->msgh_remote_port = in_header->msgh_remote_port;
|
| - out_header->msgh_size = sizeof(mig_reply_error_t);
|
| - out_header->msgh_local_port = MACH_PORT_NULL;
|
| - out_header->msgh_id = in_header->msgh_id + 100;
|
| - reinterpret_cast<mig_reply_error_t*>(out_header)->NDR = NDR_record;
|
| -}
|
| -
|
| -void SetReplyError(mach_msg_header_t* out_header, kern_return_t error) {
|
| - reinterpret_cast<mig_reply_error_t*>(out_header)->RetCode = error;
|
| -}
|
| -
|
| // There are no predefined constants for these.
|
| enum MachMessageID : mach_msg_id_t {
|
| kMachMessageIDExceptionRaise = 2401,
|
| @@ -208,7 +194,7 @@ ExcServer::ExcServer(ExcServer::Interface* interface)
|
| bool ExcServer::MachMessageServerFunction(const mach_msg_header_t* in_header,
|
| mach_msg_header_t* out_header,
|
| bool* destroy_complex_request) {
|
| - PrepareReplyFromRequest(in_header, out_header);
|
| + PrepareMIGReplyFromRequest(in_header, out_header);
|
|
|
| switch (in_header->msgh_id) {
|
| case kMachMessageIDExceptionRaise: {
|
| @@ -217,7 +203,7 @@ bool ExcServer::MachMessageServerFunction(const mach_msg_header_t* in_header,
|
| const Request* in_request = reinterpret_cast<const Request*>(in_header);
|
| kern_return_t kr = MIGCheckRequestExceptionRaise(in_request);
|
| if (kr != MACH_MSG_SUCCESS) {
|
| - SetReplyError(out_header, kr);
|
| + SetMIGReplyError(out_header, kr);
|
| return true;
|
| }
|
|
|
| @@ -250,7 +236,7 @@ bool ExcServer::MachMessageServerFunction(const mach_msg_header_t* in_header,
|
| kern_return_t kr =
|
| MIGCheckRequestExceptionRaiseState(in_request, &in_request_1);
|
| if (kr != MACH_MSG_SUCCESS) {
|
| - SetReplyError(out_header, kr);
|
| + SetMIGReplyError(out_header, kr);
|
| return true;
|
| }
|
|
|
| @@ -290,7 +276,7 @@ bool ExcServer::MachMessageServerFunction(const mach_msg_header_t* in_header,
|
| kern_return_t kr =
|
| MIGCheckRequestExceptionRaiseStateIdentity(in_request, &in_request_1);
|
| if (kr != MACH_MSG_SUCCESS) {
|
| - SetReplyError(out_header, kr);
|
| + SetMIGReplyError(out_header, kr);
|
| return true;
|
| }
|
|
|
| @@ -322,7 +308,7 @@ bool ExcServer::MachMessageServerFunction(const mach_msg_header_t* in_header,
|
| }
|
| }
|
|
|
| - SetReplyError(out_header, MIG_BAD_ID);
|
| + SetMIGReplyError(out_header, MIG_BAD_ID);
|
| return false;
|
| }
|
|
|
| @@ -343,7 +329,7 @@ bool MachExcServer::MachMessageServerFunction(
|
| const mach_msg_header_t* in_header,
|
| mach_msg_header_t* out_header,
|
| bool* destroy_complex_request) {
|
| - PrepareReplyFromRequest(in_header, out_header);
|
| + PrepareMIGReplyFromRequest(in_header, out_header);
|
|
|
| switch (in_header->msgh_id) {
|
| case kMachMessageIDMachExceptionRaise: {
|
| @@ -352,7 +338,7 @@ bool MachExcServer::MachMessageServerFunction(
|
| const Request* in_request = reinterpret_cast<const Request*>(in_header);
|
| kern_return_t kr = MIGCheckRequestMachExceptionRaise(in_request);
|
| if (kr != MACH_MSG_SUCCESS) {
|
| - SetReplyError(out_header, kr);
|
| + SetMIGReplyError(out_header, kr);
|
| return true;
|
| }
|
|
|
| @@ -385,7 +371,7 @@ bool MachExcServer::MachMessageServerFunction(
|
| kern_return_t kr =
|
| MIGCheckRequestMachExceptionRaiseState(in_request, &in_request_1);
|
| if (kr != MACH_MSG_SUCCESS) {
|
| - SetReplyError(out_header, kr);
|
| + SetMIGReplyError(out_header, kr);
|
| return true;
|
| }
|
|
|
| @@ -425,7 +411,7 @@ bool MachExcServer::MachMessageServerFunction(
|
| kern_return_t kr = MIGCheckRequestMachExceptionRaiseStateIdentity(
|
| in_request, &in_request_1);
|
| if (kr != MACH_MSG_SUCCESS) {
|
| - SetReplyError(out_header, kr);
|
| + SetMIGReplyError(out_header, kr);
|
| return true;
|
| }
|
|
|
| @@ -457,7 +443,7 @@ bool MachExcServer::MachMessageServerFunction(
|
| }
|
| }
|
|
|
| - SetReplyError(out_header, MIG_BAD_ID);
|
| + SetMIGReplyError(out_header, MIG_BAD_ID);
|
| return false;
|
| }
|
|
|
| @@ -672,8 +658,8 @@ bool UniversalMachExcServer::MachMessageServerFunction(
|
|
|
| // Do what the MIG-generated server routines do when they can’t dispatch a
|
| // message.
|
| - PrepareReplyFromRequest(in_header, out_header);
|
| - SetReplyError(out_header, MIG_BAD_ID);
|
| + PrepareMIGReplyFromRequest(in_header, out_header);
|
| + SetMIGReplyError(out_header, MIG_BAD_ID);
|
| return false;
|
| }
|
|
|
|
|