aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e>2008-07-11 17:39:52 +0000
committernealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e>2008-07-11 17:39:52 +0000
commit85534c2eaf59a8deb3394aab8df466e65c998752 (patch)
tree659c857d3d921b376cdefb2bafaf84fe014c7832 /src
parentIn the destructor of ClientInfo, currently the wait on the clent_crashed_even... (diff)
downloadbreakpad-85534c2eaf59a8deb3394aab8df466e65c998752.tar.xz
Now we provide our own implementation of the MIG function exc_server, as recommended by Apple.
See http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/8b363b1f8a404714 For more information git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@282 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src')
-rw-r--r--src/client/mac/handler/breakpad_exc_server.c1750
-rw-r--r--src/client/mac/handler/breakpad_exc_server.h258
-rw-r--r--src/client/mac/handler/exception_handler.cc71
-rw-r--r--src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj4
4 files changed, 2083 insertions, 0 deletions
diff --git a/src/client/mac/handler/breakpad_exc_server.c b/src/client/mac/handler/breakpad_exc_server.c
new file mode 100644
index 00000000..19f36b19
--- /dev/null
+++ b/src/client/mac/handler/breakpad_exc_server.c
@@ -0,0 +1,1750 @@
+/*
+ * IDENTIFICATION:
+ * stub generated Mon Jun 16 18:08:10 2008
+ * with a MiG generated Tue Feb 19 02:01:43 PST 2008 by root@b75.local
+ * OPTIONS:
+ */
+
+/* Module exc */
+
+#define __MIG_check__Request__exc_subsystem__ 1
+#define __NDR_convert__Request__exc_subsystem__ 1
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+
+#ifndef mig_internal
+#define mig_internal static __inline__
+#endif /* mig_internal */
+
+#ifndef mig_external
+#define mig_external
+#endif /* mig_external */
+
+#if !defined(__MigTypeCheck) && defined(TypeCheck)
+#define __MigTypeCheck TypeCheck /* Legacy setting */
+#endif /* !defined(__MigTypeCheck) */
+
+#if !defined(__MigKernelSpecificCode) && defined(_MIG_KERNEL_SPECIFIC_CODE_)
+#define __MigKernelSpecificCode _MIG_KERNEL_SPECIFIC_CODE_ /* Legacy setting */
+#endif /* !defined(__MigKernelSpecificCode) */
+
+#ifndef LimitCheck
+#define LimitCheck 0
+#endif /* LimitCheck */
+
+#ifndef min
+#define min(a,b) ( ((a) < (b))? (a): (b) )
+#endif /* min */
+
+#if !defined(_WALIGN_)
+#define _WALIGN_(x) (((x) + 3) & ~3)
+#endif /* !defined(_WALIGN_) */
+
+#if !defined(_WALIGNSZ_)
+#define _WALIGNSZ_(x) _WALIGN_(sizeof(x))
+#endif /* !defined(_WALIGNSZ_) */
+
+#ifndef UseStaticTemplates
+#define UseStaticTemplates 0
+#endif /* UseStaticTemplates */
+
+#ifndef __DeclareRcvRpc
+#define __DeclareRcvRpc(_NUM_, _NAME_)
+#endif /* __DeclareRcvRpc */
+
+#ifndef __BeforeRcvRpc
+#define __BeforeRcvRpc(_NUM_, _NAME_)
+#endif /* __BeforeRcvRpc */
+
+#ifndef __AfterRcvRpc
+#define __AfterRcvRpc(_NUM_, _NAME_)
+#endif /* __AfterRcvRpc */
+
+#ifndef __DeclareRcvSimple
+#define __DeclareRcvSimple(_NUM_, _NAME_)
+#endif /* __DeclareRcvSimple */
+
+#ifndef __BeforeRcvSimple
+#define __BeforeRcvSimple(_NUM_, _NAME_)
+#endif /* __BeforeRcvSimple */
+
+#ifndef __AfterRcvSimple
+#define __AfterRcvSimple(_NUM_, _NAME_)
+#endif /* __AfterRcvSimple */
+
+#define novalue void
+
+#define msgh_request_port msgh_local_port
+#define MACH_MSGH_BITS_REQUEST(bits) MACH_MSGH_BITS_LOCAL(bits)
+#define msgh_reply_port msgh_remote_port
+#define MACH_MSGH_BITS_REPLY(bits) MACH_MSGH_BITS_REMOTE(bits)
+
+#define MIG_RETURN_ERROR(X, code) {\
+ ((mig_reply_error_t *)X)->RetCode = code;\
+ ((mig_reply_error_t *)X)->NDR = NDR_record;\
+ return;\
+ }
+
+/* typedefs for all requests */
+
+#ifndef __Request__exc_subsystem__defined
+#define __Request__exc_subsystem__defined
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_port_descriptor_t thread;
+ mach_msg_port_descriptor_t task;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ } __Request__exception_raise_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ int flavor;
+ mach_msg_type_number_t old_stateCnt;
+ natural_t old_state[144];
+ } __Request__exception_raise_state_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_port_descriptor_t thread;
+ mach_msg_port_descriptor_t task;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ int flavor;
+ mach_msg_type_number_t old_stateCnt;
+ natural_t old_state[144];
+ } __Request__exception_raise_state_identity_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+#endif /* !__Request__exc_subsystem__defined */
+
+/* typedefs for all replies */
+
+#ifndef __Reply__exc_subsystem__defined
+#define __Reply__exc_subsystem__defined
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ } __Reply__exception_raise_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ int flavor;
+ mach_msg_type_number_t new_stateCnt;
+ natural_t new_state[144];
+ } __Reply__exception_raise_state_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ int flavor;
+ mach_msg_type_number_t new_stateCnt;
+ natural_t new_state[144];
+ } __Reply__exception_raise_state_identity_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+#endif /* !__Reply__exc_subsystem__defined */
+
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__breakpad_exc_subsystem__defined
+#define __ReplyUnion__breakpad_exc_subsystem__defined
+union __ReplyUnion__breakpad_exc_subsystem {
+ __Reply__exception_raise_t Reply_exception_raise;
+ __Reply__exception_raise_state_t Reply_exception_raise_state;
+ __Reply__exception_raise_state_identity_t Reply_exception_raise_state_identity;
+};
+#endif /* __RequestUnion__breakpad_exc_subsystem__defined */
+/* Forward Declarations */
+
+
+mig_internal novalue _Xexception_raise
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
+
+mig_internal novalue _Xexception_raise_state
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
+
+mig_internal novalue _Xexception_raise_state_identity
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP);
+
+
+#if ( __MigTypeCheck || __NDR_convert__ )
+#if __MIG_check__Request__exc_subsystem__
+#if !defined(__MIG_check__Request__exception_raise_t__defined)
+#define __MIG_check__Request__exception_raise_t__defined
+#ifndef __NDR_convert__int_rep__Request__exception_raise_t__exception__defined
+#if defined(__NDR_convert__int_rep__exc__exception_type_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__exception_type_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__int_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__exc__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__int_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__exc__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__int_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_t__exception__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_t__code__defined
+#if defined(__NDR_convert__int_rep__exc__exception_data_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__int_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__exception_data_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__int_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__exc__integer_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__int_rep__exc__integer_t)
+#elif defined(__NDR_convert__int_rep__integer_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__int_rep__integer_t)
+#elif defined(__NDR_convert__int_rep__exc__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__int_rep__exc__int32_t)
+#elif defined(__NDR_convert__int_rep__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__int_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_t__code__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_t__codeCnt__defined
+#if defined(__NDR_convert__int_rep__exc__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__codeCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__codeCnt(a, f) \
+ __NDR_convert__int_rep__exc__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_t__codeCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_t__codeCnt(a, f) \
+ __NDR_convert__int_rep__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_t__codeCnt__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_t__exception__defined
+#if defined(__NDR_convert__char_rep__exc__exception_type_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__exception_type_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__char_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__exc__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__char_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__exc__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__char_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_t__exception__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_t__code__defined
+#if defined(__NDR_convert__char_rep__exc__exception_data_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__char_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__exception_data_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__char_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__exc__integer_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__char_rep__exc__integer_t)
+#elif defined(__NDR_convert__char_rep__integer_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__char_rep__integer_t)
+#elif defined(__NDR_convert__char_rep__exc__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__char_rep__exc__int32_t)
+#elif defined(__NDR_convert__char_rep__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__char_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_t__code__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_t__exception__defined
+#if defined(__NDR_convert__float_rep__exc__exception_type_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__exception_type_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__float_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__exc__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__float_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__exc__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__exception(a, f) \
+ __NDR_convert__float_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_t__exception__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_t__code__defined
+#if defined(__NDR_convert__float_rep__exc__exception_data_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__float_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__exception_data_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__float_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__exc__integer_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__float_rep__exc__integer_t)
+#elif defined(__NDR_convert__float_rep__integer_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__float_rep__integer_t)
+#elif defined(__NDR_convert__float_rep__exc__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__float_rep__exc__int32_t)
+#elif defined(__NDR_convert__float_rep__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__float_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_t__code__defined */
+
+
+mig_internal kern_return_t __MIG_check__Request__exception_raise_t(__attribute__((__unused__)) __Request__exception_raise_t *In0P)
+{
+
+ typedef __Request__exception_raise_t __Request;
+#if __MigTypeCheck
+ unsigned int msgh_size;
+#endif /* __MigTypeCheck */
+
+#if __MigTypeCheck
+ msgh_size = In0P->Head.msgh_size;
+ if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) ||
+ (In0P->msgh_body.msgh_descriptor_count != 2) ||
+ (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 8)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))
+)
+ return MIG_BAD_ARGUMENTS;
+#endif /* __MigTypeCheck */
+
+#if __MigTypeCheck
+ if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR ||
+ In0P->thread.disposition != 17)
+ return MIG_TYPE_ERROR;
+#endif /* __MigTypeCheck */
+
+#if __MigTypeCheck
+ if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR ||
+ In0P->task.disposition != 17)
+ return MIG_TYPE_ERROR;
+#endif /* __MigTypeCheck */
+
+#if defined(__NDR_convert__int_rep__Request__exception_raise_t__codeCnt__defined)
+ if (In0P->NDR.int_rep != NDR_record.int_rep)
+ __NDR_convert__int_rep__Request__exception_raise_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_t__codeCnt__defined */
+#if __MigTypeCheck
+ if (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 8) + ((4 * In0P->codeCnt)))
+ return MIG_BAD_ARGUMENTS;
+#endif /* __MigTypeCheck */
+
+#if defined(__NDR_convert__int_rep__Request__exception_raise_t__exception__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_t__code__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_t__codeCnt__defined)
+ if (In0P->NDR.int_rep != NDR_record.int_rep) {
+#if defined(__NDR_convert__int_rep__Request__exception_raise_t__exception__defined)
+ __NDR_convert__int_rep__Request__exception_raise_t__exception(&In0P->exception, In0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_t__exception__defined */
+#if defined(__NDR_convert__int_rep__Request__exception_raise_t__code__defined)
+ __NDR_convert__int_rep__Request__exception_raise_t__code(&In0P->code, In0P->NDR.int_rep, In0P->codeCnt);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_t__code__defined */
+ }
+#endif /* defined(__NDR_convert__int_rep...) */
+
+#if defined(__NDR_convert__char_rep__Request__exception_raise_t__exception__defined) || \
+ defined(__NDR_convert__char_rep__Request__exception_raise_t__code__defined) || \
+ 0
+ if (In0P->NDR.char_rep != NDR_record.char_rep) {
+#if defined(__NDR_convert__char_rep__Request__exception_raise_t__exception__defined)
+ __NDR_convert__char_rep__Request__exception_raise_t__exception(&In0P->exception, In0P->NDR.char_rep);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_t__exception__defined */
+#if defined(__NDR_convert__char_rep__Request__exception_raise_t__code__defined)
+ __NDR_convert__char_rep__Request__exception_raise_t__code(&In0P->code, In0P->NDR.char_rep, In0P->codeCnt);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_t__code__defined */
+ }
+#endif /* defined(__NDR_convert__char_rep...) */
+
+#if defined(__NDR_convert__float_rep__Request__exception_raise_t__exception__defined) || \
+ defined(__NDR_convert__float_rep__Request__exception_raise_t__code__defined) || \
+ 0
+ if (In0P->NDR.float_rep != NDR_record.float_rep) {
+#if defined(__NDR_convert__float_rep__Request__exception_raise_t__exception__defined)
+ __NDR_convert__float_rep__Request__exception_raise_t__exception(&In0P->exception, In0P->NDR.float_rep);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_t__exception__defined */
+#if defined(__NDR_convert__float_rep__Request__exception_raise_t__code__defined)
+ __NDR_convert__float_rep__Request__exception_raise_t__code(&In0P->code, In0P->NDR.float_rep, In0P->codeCnt);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_t__code__defined */
+ }
+#endif /* defined(__NDR_convert__float_rep...) */
+
+ return MACH_MSG_SUCCESS;
+}
+#endif /* !defined(__MIG_check__Request__exception_raise_t__defined) */
+#endif /* __MIG_check__Request__exc_subsystem__ */
+#endif /* ( __MigTypeCheck || __NDR_convert__ ) */
+
+
+/* Routine exception_raise */
+#ifdef mig_external
+mig_external
+#else
+extern
+#endif /* mig_external */
+kern_return_t breakpad_exception_raise
+(
+ mach_port_t exception_port,
+ mach_port_t thread,
+ mach_port_t task,
+ exception_type_t exception,
+ exception_data_t code,
+ mach_msg_type_number_t codeCnt
+);
+
+/* Routine exception_raise */
+mig_internal novalue _Xexception_raise
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
+{
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_port_descriptor_t thread;
+ mach_msg_port_descriptor_t task;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ mach_msg_trailer_t trailer;
+ } Request;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+ typedef __Request__exception_raise_t __Request;
+ typedef __Reply__exception_raise_t Reply;
+
+ /*
+ * typedef struct {
+ * mach_msg_header_t Head;
+ * NDR_record_t NDR;
+ * kern_return_t RetCode;
+ * } mig_reply_error_t;
+ */
+
+ Request *In0P = (Request *) InHeadP;
+ Reply *OutP = (Reply *) OutHeadP;
+#ifdef __MIG_check__Request__exception_raise_t__defined
+ kern_return_t check_result;
+#endif /* __MIG_check__Request__exception_raise_t__defined */
+
+ __DeclareRcvRpc(2401, "exception_raise")
+ __BeforeRcvRpc(2401, "exception_raise")
+
+#if defined(__MIG_check__Request__exception_raise_t__defined)
+ check_result = __MIG_check__Request__exception_raise_t((__Request *)In0P);
+ if (check_result != MACH_MSG_SUCCESS)
+ { MIG_RETURN_ERROR(OutP, check_result); }
+#endif /* defined(__MIG_check__Request__exception_raise_t__defined) */
+
+ OutP->RetCode = breakpad_exception_raise(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt);
+
+ OutP->NDR = NDR_record;
+
+
+ __AfterRcvRpc(2401, "exception_raise")
+}
+
+#if ( __MigTypeCheck || __NDR_convert__ )
+#if __MIG_check__Request__exc_subsystem__
+#if !defined(__MIG_check__Request__exception_raise_state_t__defined)
+#define __MIG_check__Request__exception_raise_state_t__defined
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined
+#if defined(__NDR_convert__int_rep__exc__exception_type_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__exception_type_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__int_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__exc__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__int_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__exc__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__int_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined
+#if defined(__NDR_convert__int_rep__exc__exception_data_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__int_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__exception_data_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__int_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__exc__integer_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__int_rep__exc__integer_t)
+#elif defined(__NDR_convert__int_rep__integer_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__int_rep__integer_t)
+#elif defined(__NDR_convert__int_rep__exc__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__int_rep__exc__int32_t)
+#elif defined(__NDR_convert__int_rep__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__int_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt__defined
+#if defined(__NDR_convert__int_rep__exc__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt(a, f) \
+ __NDR_convert__int_rep__exc__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt(a, f) \
+ __NDR_convert__int_rep__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined
+#if defined(__NDR_convert__int_rep__exc__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__int_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__int_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__exc__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__int_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__int_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined
+#if defined(__NDR_convert__int_rep__exc__thread_state_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__int_rep__exc__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__thread_state_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__int_rep__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__exc__natural_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__int_rep__exc__natural_t)
+#elif defined(__NDR_convert__int_rep__natural_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__int_rep__natural_t)
+#elif defined(__NDR_convert__int_rep__exc__uint32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__int_rep__exc__uint32_t)
+#elif defined(__NDR_convert__int_rep__uint32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__int_rep__uint32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt__defined
+#if defined(__NDR_convert__int_rep__exc__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt(a, f) \
+ __NDR_convert__int_rep__exc__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt(a, f) \
+ __NDR_convert__int_rep__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined
+#if defined(__NDR_convert__char_rep__exc__exception_type_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__exception_type_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__char_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__exc__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__char_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__exc__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__char_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined
+#if defined(__NDR_convert__char_rep__exc__exception_data_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__char_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__exception_data_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__char_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__exc__integer_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__char_rep__exc__integer_t)
+#elif defined(__NDR_convert__char_rep__integer_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__char_rep__integer_t)
+#elif defined(__NDR_convert__char_rep__exc__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__char_rep__exc__int32_t)
+#elif defined(__NDR_convert__char_rep__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__char_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined
+#if defined(__NDR_convert__char_rep__exc__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__char_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__char_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__exc__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__char_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__char_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined
+#if defined(__NDR_convert__char_rep__exc__thread_state_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__char_rep__exc__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__thread_state_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__char_rep__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__exc__natural_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__char_rep__exc__natural_t)
+#elif defined(__NDR_convert__char_rep__natural_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__char_rep__natural_t)
+#elif defined(__NDR_convert__char_rep__exc__uint32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__char_rep__exc__uint32_t)
+#elif defined(__NDR_convert__char_rep__uint32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__char_rep__uint32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined
+#if defined(__NDR_convert__float_rep__exc__exception_type_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__exception_type_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__float_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__exc__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__float_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__exc__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__exception(a, f) \
+ __NDR_convert__float_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined
+#if defined(__NDR_convert__float_rep__exc__exception_data_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__float_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__exception_data_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__float_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__exc__integer_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__float_rep__exc__integer_t)
+#elif defined(__NDR_convert__float_rep__integer_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__float_rep__integer_t)
+#elif defined(__NDR_convert__float_rep__exc__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__float_rep__exc__int32_t)
+#elif defined(__NDR_convert__float_rep__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__float_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined
+#if defined(__NDR_convert__float_rep__exc__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__float_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__float_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__exc__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__float_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__flavor(a, f) \
+ __NDR_convert__float_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined
+#if defined(__NDR_convert__float_rep__exc__thread_state_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__float_rep__exc__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__thread_state_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__float_rep__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__exc__natural_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__float_rep__exc__natural_t)
+#elif defined(__NDR_convert__float_rep__natural_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__float_rep__natural_t)
+#elif defined(__NDR_convert__float_rep__exc__uint32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__float_rep__exc__uint32_t)
+#elif defined(__NDR_convert__float_rep__uint32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__float_rep__uint32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined */
+
+
+mig_internal kern_return_t __MIG_check__Request__exception_raise_state_t(__attribute__((__unused__)) __Request__exception_raise_state_t *In0P, __attribute__((__unused__)) __Request__exception_raise_state_t **In1PP)
+{
+
+ typedef __Request__exception_raise_state_t __Request;
+ __Request *In1P;
+#if __MigTypeCheck
+ unsigned int msgh_size;
+#endif /* __MigTypeCheck */
+ unsigned int msgh_size_delta;
+
+#if __MigTypeCheck
+ msgh_size = In0P->Head.msgh_size;
+ if ((In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) ||
+ (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 584)) || (msgh_size > (mach_msg_size_t)sizeof(__Request)))
+ return MIG_BAD_ARGUMENTS;
+#endif /* __MigTypeCheck */
+
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt__defined)
+ if (In0P->NDR.int_rep != NDR_record.int_rep)
+ __NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt__defined */
+ msgh_size_delta = (4 * In0P->codeCnt);
+#if __MigTypeCheck
+ if (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 584) + msgh_size_delta)
+ return MIG_BAD_ARGUMENTS;
+ msgh_size -= msgh_size_delta;
+#endif /* __MigTypeCheck */
+
+ *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 8);
+
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt__defined)
+ if (In0P->NDR.int_rep != NDR_record.int_rep)
+ __NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt__defined */
+#if __MigTypeCheck
+ if (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 584) + ((4 * In1P->old_stateCnt)))
+ return MIG_BAD_ARGUMENTS;
+#endif /* __MigTypeCheck */
+
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_t__code__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_t__codeCnt__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_t__old_stateCnt__defined)
+ if (In0P->NDR.int_rep != NDR_record.int_rep) {
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined)
+ __NDR_convert__int_rep__Request__exception_raise_state_t__exception(&In0P->exception, In0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__exception__defined */
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_t__code__defined)
+ __NDR_convert__int_rep__Request__exception_raise_state_t__code(&In0P->code, In0P->NDR.int_rep, In0P->codeCnt);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__code__defined */
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined)
+ __NDR_convert__int_rep__Request__exception_raise_state_t__flavor(&In1P->flavor, In0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__flavor__defined */
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined)
+ __NDR_convert__int_rep__Request__exception_raise_state_t__old_state(&In1P->old_state, In0P->NDR.int_rep, In1P->old_stateCnt);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_t__old_state__defined */
+ }
+#endif /* defined(__NDR_convert__int_rep...) */
+
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined) || \
+ defined(__NDR_convert__char_rep__Request__exception_raise_state_t__code__defined) || \
+ 0 || \
+ defined(__NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined) || \
+ defined(__NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined) || \
+ 0
+ if (In0P->NDR.char_rep != NDR_record.char_rep) {
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined)
+ __NDR_convert__char_rep__Request__exception_raise_state_t__exception(&In0P->exception, In0P->NDR.char_rep);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_t__exception__defined */
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_t__code__defined)
+ __NDR_convert__char_rep__Request__exception_raise_state_t__code(&In0P->code, In0P->NDR.char_rep, In0P->codeCnt);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_t__code__defined */
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined)
+ __NDR_convert__char_rep__Request__exception_raise_state_t__flavor(&In1P->flavor, In0P->NDR.char_rep);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_t__flavor__defined */
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined)
+ __NDR_convert__char_rep__Request__exception_raise_state_t__old_state(&In1P->old_state, In0P->NDR.char_rep, In1P->old_stateCnt);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_t__old_state__defined */
+ }
+#endif /* defined(__NDR_convert__char_rep...) */
+
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined) || \
+ defined(__NDR_convert__float_rep__Request__exception_raise_state_t__code__defined) || \
+ 0 || \
+ defined(__NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined) || \
+ defined(__NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined) || \
+ 0
+ if (In0P->NDR.float_rep != NDR_record.float_rep) {
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined)
+ __NDR_convert__float_rep__Request__exception_raise_state_t__exception(&In0P->exception, In0P->NDR.float_rep);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_t__exception__defined */
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_t__code__defined)
+ __NDR_convert__float_rep__Request__exception_raise_state_t__code(&In0P->code, In0P->NDR.float_rep, In0P->codeCnt);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_t__code__defined */
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined)
+ __NDR_convert__float_rep__Request__exception_raise_state_t__flavor(&In1P->flavor, In0P->NDR.float_rep);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_t__flavor__defined */
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined)
+ __NDR_convert__float_rep__Request__exception_raise_state_t__old_state(&In1P->old_state, In0P->NDR.float_rep, In1P->old_stateCnt);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_t__old_state__defined */
+ }
+#endif /* defined(__NDR_convert__float_rep...) */
+
+ return MACH_MSG_SUCCESS;
+}
+#endif /* !defined(__MIG_check__Request__exception_raise_state_t__defined) */
+#endif /* __MIG_check__Request__exc_subsystem__ */
+#endif /* ( __MigTypeCheck || __NDR_convert__ ) */
+
+
+/* Routine exception_raise_state */
+#ifdef mig_external
+mig_external
+#else
+extern
+#endif /* mig_external */
+kern_return_t breakpad_exception_raise_state
+(
+ mach_port_t exception_port,
+ exception_type_t exception,
+ const exception_data_t code,
+ mach_msg_type_number_t codeCnt,
+ int *flavor,
+ const thread_state_t old_state,
+ mach_msg_type_number_t old_stateCnt,
+ thread_state_t new_state,
+ mach_msg_type_number_t *new_stateCnt
+);
+
+/* Routine exception_raise_state */
+mig_internal novalue _Xexception_raise_state
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
+{
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ int flavor;
+ mach_msg_type_number_t old_stateCnt;
+ natural_t old_state[144];
+ mach_msg_trailer_t trailer;
+ } Request;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+ typedef __Request__exception_raise_state_t __Request;
+ typedef __Reply__exception_raise_state_t Reply;
+
+ /*
+ * typedef struct {
+ * mach_msg_header_t Head;
+ * NDR_record_t NDR;
+ * kern_return_t RetCode;
+ * } mig_reply_error_t;
+ */
+
+ Request *In0P = (Request *) InHeadP;
+ Request *In1P;
+ Reply *OutP = (Reply *) OutHeadP;
+#ifdef __MIG_check__Request__exception_raise_state_t__defined
+ kern_return_t check_result;
+#endif /* __MIG_check__Request__exception_raise_state_t__defined */
+
+ __DeclareRcvRpc(2402, "exception_raise_state")
+ __BeforeRcvRpc(2402, "exception_raise_state")
+
+#if defined(__MIG_check__Request__exception_raise_state_t__defined)
+ check_result = __MIG_check__Request__exception_raise_state_t((__Request *)In0P, (__Request **)&In1P);
+ if (check_result != MACH_MSG_SUCCESS)
+ { MIG_RETURN_ERROR(OutP, check_result); }
+#endif /* defined(__MIG_check__Request__exception_raise_state_t__defined) */
+
+ OutP->new_stateCnt = 144;
+
+ OutP->RetCode = breakpad_exception_raise_state(In0P->Head.msgh_request_port, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt);
+ if (OutP->RetCode != KERN_SUCCESS) {
+ MIG_RETURN_ERROR(OutP, OutP->RetCode);
+ }
+
+ OutP->NDR = NDR_record;
+
+
+ OutP->flavor = In1P->flavor;
+ OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 576) + (((4 * OutP->new_stateCnt)));
+
+ __AfterRcvRpc(2402, "exception_raise_state")
+}
+
+#if ( __MigTypeCheck || __NDR_convert__ )
+#if __MIG_check__Request__exc_subsystem__
+#if !defined(__MIG_check__Request__exception_raise_state_identity_t__defined)
+#define __MIG_check__Request__exception_raise_state_identity_t__defined
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined
+#if defined(__NDR_convert__int_rep__exc__exception_type_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__exception_type_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__int_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__exc__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__int_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__exc__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__int_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__int_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined
+#if defined(__NDR_convert__int_rep__exc__exception_data_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__int_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__exception_data_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__int_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__exc__integer_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__int_rep__exc__integer_t)
+#elif defined(__NDR_convert__int_rep__integer_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__int_rep__integer_t)
+#elif defined(__NDR_convert__int_rep__exc__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__int_rep__exc__int32_t)
+#elif defined(__NDR_convert__int_rep__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__int_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt__defined
+#if defined(__NDR_convert__int_rep__exc__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt(a, f) \
+ __NDR_convert__int_rep__exc__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt(a, f) \
+ __NDR_convert__int_rep__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined
+#if defined(__NDR_convert__int_rep__exc__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__int_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__int__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__int_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__int_rep__exc__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__int_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__int32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__int_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined
+#if defined(__NDR_convert__int_rep__exc__thread_state_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__int_rep__exc__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__thread_state_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__int_rep__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__int_rep__exc__natural_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__int_rep__exc__natural_t)
+#elif defined(__NDR_convert__int_rep__natural_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__int_rep__natural_t)
+#elif defined(__NDR_convert__int_rep__exc__uint32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__int_rep__exc__uint32_t)
+#elif defined(__NDR_convert__int_rep__uint32_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__int_rep__uint32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined */
+
+#ifndef __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt__defined
+#if defined(__NDR_convert__int_rep__exc__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt(a, f) \
+ __NDR_convert__int_rep__exc__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#elif defined(__NDR_convert__int_rep__mach_msg_type_number_t__defined)
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt__defined
+#define __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt(a, f) \
+ __NDR_convert__int_rep__mach_msg_type_number_t((mach_msg_type_number_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined
+#if defined(__NDR_convert__char_rep__exc__exception_type_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__exception_type_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__char_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__exc__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__char_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__exc__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__char_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__char_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined
+#if defined(__NDR_convert__char_rep__exc__exception_data_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__char_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__exception_data_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__char_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__exc__integer_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__char_rep__exc__integer_t)
+#elif defined(__NDR_convert__char_rep__integer_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__char_rep__integer_t)
+#elif defined(__NDR_convert__char_rep__exc__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__char_rep__exc__int32_t)
+#elif defined(__NDR_convert__char_rep__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__char_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined
+#if defined(__NDR_convert__char_rep__exc__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__char_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__int__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__char_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__char_rep__exc__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__char_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__char_rep__int32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__char_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined */
+
+#ifndef __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined
+#if defined(__NDR_convert__char_rep__exc__thread_state_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__char_rep__exc__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__thread_state_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__char_rep__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__char_rep__exc__natural_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__char_rep__exc__natural_t)
+#elif defined(__NDR_convert__char_rep__natural_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__char_rep__natural_t)
+#elif defined(__NDR_convert__char_rep__exc__uint32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__char_rep__exc__uint32_t)
+#elif defined(__NDR_convert__char_rep__uint32_t__defined)
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__char_rep__uint32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined
+#if defined(__NDR_convert__float_rep__exc__exception_type_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__exception_type_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__float_rep__exception_type_t((exception_type_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__exc__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__float_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__exc__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__float_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception(a, f) \
+ __NDR_convert__float_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined
+#if defined(__NDR_convert__float_rep__exc__exception_data_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__float_rep__exc__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__exception_data_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__float_rep__exception_data_t((exception_data_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__exc__integer_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__float_rep__exc__integer_t)
+#elif defined(__NDR_convert__float_rep__integer_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((integer_t *)(a), f, c, __NDR_convert__float_rep__integer_t)
+#elif defined(__NDR_convert__float_rep__exc__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__float_rep__exc__int32_t)
+#elif defined(__NDR_convert__float_rep__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code(a, f, c) \
+ __NDR_convert__ARRAY((int32_t *)(a), f, c, __NDR_convert__float_rep__int32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined
+#if defined(__NDR_convert__float_rep__exc__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__float_rep__exc__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__int__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__float_rep__int((int *)(a), f)
+#elif defined(__NDR_convert__float_rep__exc__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__float_rep__exc__int32_t((int32_t *)(a), f)
+#elif defined(__NDR_convert__float_rep__int32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor(a, f) \
+ __NDR_convert__float_rep__int32_t((int32_t *)(a), f)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined */
+
+#ifndef __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined
+#if defined(__NDR_convert__float_rep__exc__thread_state_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__float_rep__exc__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__thread_state_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__float_rep__thread_state_t((thread_state_t *)(a), f, c)
+#elif defined(__NDR_convert__float_rep__exc__natural_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__float_rep__exc__natural_t)
+#elif defined(__NDR_convert__float_rep__natural_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((natural_t *)(a), f, c, __NDR_convert__float_rep__natural_t)
+#elif defined(__NDR_convert__float_rep__exc__uint32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__float_rep__exc__uint32_t)
+#elif defined(__NDR_convert__float_rep__uint32_t__defined)
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined
+#define __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state(a, f, c) \
+ __NDR_convert__ARRAY((uint32_t *)(a), f, c, __NDR_convert__float_rep__uint32_t)
+#endif /* defined(__NDR_convert__*__defined) */
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined */
+
+
+mig_internal kern_return_t __MIG_check__Request__exception_raise_state_identity_t(__attribute__((__unused__)) __Request__exception_raise_state_identity_t *In0P, __attribute__((__unused__)) __Request__exception_raise_state_identity_t **In1PP)
+{
+
+ typedef __Request__exception_raise_state_identity_t __Request;
+ __Request *In1P;
+#if __MigTypeCheck
+ unsigned int msgh_size;
+#endif /* __MigTypeCheck */
+ unsigned int msgh_size_delta;
+
+#if __MigTypeCheck
+ msgh_size = In0P->Head.msgh_size;
+ if (!(In0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX) ||
+ (In0P->msgh_body.msgh_descriptor_count != 2) ||
+ (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 584)) || (msgh_size > (mach_msg_size_t)sizeof(__Request))
+)
+ return MIG_BAD_ARGUMENTS;
+#endif /* __MigTypeCheck */
+
+#if __MigTypeCheck
+ if (In0P->thread.type != MACH_MSG_PORT_DESCRIPTOR ||
+ In0P->thread.disposition != 17)
+ return MIG_TYPE_ERROR;
+#endif /* __MigTypeCheck */
+
+#if __MigTypeCheck
+ if (In0P->task.type != MACH_MSG_PORT_DESCRIPTOR ||
+ In0P->task.disposition != 17)
+ return MIG_TYPE_ERROR;
+#endif /* __MigTypeCheck */
+
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt__defined)
+ if (In0P->NDR.int_rep != NDR_record.int_rep)
+ __NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt(&In0P->codeCnt, In0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt__defined */
+ msgh_size_delta = (4 * In0P->codeCnt);
+#if __MigTypeCheck
+ if (msgh_size < (mach_msg_size_t)(sizeof(__Request) - 584) + msgh_size_delta)
+ return MIG_BAD_ARGUMENTS;
+ msgh_size -= msgh_size_delta;
+#endif /* __MigTypeCheck */
+
+ *In1PP = In1P = (__Request *) ((pointer_t) In0P + msgh_size_delta - 8);
+
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt__defined)
+ if (In0P->NDR.int_rep != NDR_record.int_rep)
+ __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt(&In1P->old_stateCnt, In1P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt__defined */
+#if __MigTypeCheck
+ if (msgh_size != (mach_msg_size_t)(sizeof(__Request) - 584) + ((4 * In1P->old_stateCnt)))
+ return MIG_BAD_ARGUMENTS;
+#endif /* __MigTypeCheck */
+
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__codeCnt__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined) || \
+ defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_stateCnt__defined)
+ if (In0P->NDR.int_rep != NDR_record.int_rep) {
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined)
+ __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception(&In0P->exception, In0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__exception__defined */
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined)
+ __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code(&In0P->code, In0P->NDR.int_rep, In0P->codeCnt);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__code__defined */
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined)
+ __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor(&In1P->flavor, In0P->NDR.int_rep);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__flavor__defined */
+#if defined(__NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined)
+ __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state(&In1P->old_state, In0P->NDR.int_rep, In1P->old_stateCnt);
+#endif /* __NDR_convert__int_rep__Request__exception_raise_state_identity_t__old_state__defined */
+ }
+#endif /* defined(__NDR_convert__int_rep...) */
+
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined) || \
+ defined(__NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined) || \
+ 0 || \
+ defined(__NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined) || \
+ defined(__NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined) || \
+ 0
+ if (In0P->NDR.char_rep != NDR_record.char_rep) {
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined)
+ __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception(&In0P->exception, In0P->NDR.char_rep);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_identity_t__exception__defined */
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined)
+ __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code(&In0P->code, In0P->NDR.char_rep, In0P->codeCnt);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_identity_t__code__defined */
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined)
+ __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor(&In1P->flavor, In0P->NDR.char_rep);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_identity_t__flavor__defined */
+#if defined(__NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined)
+ __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state(&In1P->old_state, In0P->NDR.char_rep, In1P->old_stateCnt);
+#endif /* __NDR_convert__char_rep__Request__exception_raise_state_identity_t__old_state__defined */
+ }
+#endif /* defined(__NDR_convert__char_rep...) */
+
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined) || \
+ defined(__NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined) || \
+ 0 || \
+ defined(__NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined) || \
+ defined(__NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined) || \
+ 0
+ if (In0P->NDR.float_rep != NDR_record.float_rep) {
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined)
+ __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception(&In0P->exception, In0P->NDR.float_rep);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_identity_t__exception__defined */
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined)
+ __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code(&In0P->code, In0P->NDR.float_rep, In0P->codeCnt);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_identity_t__code__defined */
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined)
+ __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor(&In1P->flavor, In0P->NDR.float_rep);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_identity_t__flavor__defined */
+#if defined(__NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined)
+ __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state(&In1P->old_state, In0P->NDR.float_rep, In1P->old_stateCnt);
+#endif /* __NDR_convert__float_rep__Request__exception_raise_state_identity_t__old_state__defined */
+ }
+#endif /* defined(__NDR_convert__float_rep...) */
+
+ return MACH_MSG_SUCCESS;
+}
+#endif /* !defined(__MIG_check__Request__exception_raise_state_identity_t__defined) */
+#endif /* __MIG_check__Request__exc_subsystem__ */
+#endif /* ( __MigTypeCheck || __NDR_convert__ ) */
+
+
+/* Routine exception_raise_state_identity */
+#ifdef mig_external
+mig_external
+#else
+extern
+#endif /* mig_external */
+kern_return_t breakpad_exception_raise_state_identity
+(
+ mach_port_t exception_port,
+ mach_port_t thread,
+ mach_port_t task,
+ exception_type_t exception,
+ exception_data_t code,
+ mach_msg_type_number_t codeCnt,
+ int *flavor,
+ thread_state_t old_state,
+ mach_msg_type_number_t old_stateCnt,
+ thread_state_t new_state,
+ mach_msg_type_number_t *new_stateCnt
+);
+
+/* Routine exception_raise_state_identity */
+mig_internal novalue _Xexception_raise_state_identity
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
+{
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_port_descriptor_t thread;
+ mach_msg_port_descriptor_t task;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ int flavor;
+ mach_msg_type_number_t old_stateCnt;
+ natural_t old_state[144];
+ mach_msg_trailer_t trailer;
+ } Request;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+ typedef __Request__exception_raise_state_identity_t __Request;
+ typedef __Reply__exception_raise_state_identity_t Reply;
+
+ /*
+ * typedef struct {
+ * mach_msg_header_t Head;
+ * NDR_record_t NDR;
+ * kern_return_t RetCode;
+ * } mig_reply_error_t;
+ */
+
+ Request *In0P = (Request *) InHeadP;
+ Request *In1P;
+ Reply *OutP = (Reply *) OutHeadP;
+#ifdef __MIG_check__Request__exception_raise_state_identity_t__defined
+ kern_return_t check_result;
+#endif /* __MIG_check__Request__exception_raise_state_identity_t__defined */
+
+ __DeclareRcvRpc(2403, "exception_raise_state_identity")
+ __BeforeRcvRpc(2403, "exception_raise_state_identity")
+
+#if defined(__MIG_check__Request__exception_raise_state_identity_t__defined)
+ check_result = __MIG_check__Request__exception_raise_state_identity_t((__Request *)In0P, (__Request **)&In1P);
+ if (check_result != MACH_MSG_SUCCESS)
+ { MIG_RETURN_ERROR(OutP, check_result); }
+#endif /* defined(__MIG_check__Request__exception_raise_state_identity_t__defined) */
+
+ OutP->new_stateCnt = 144;
+
+ OutP->RetCode = breakpad_exception_raise_state_identity(In0P->Head.msgh_request_port, In0P->thread.name, In0P->task.name, In0P->exception, In0P->code, In0P->codeCnt, &In1P->flavor, In1P->old_state, In1P->old_stateCnt, OutP->new_state, &OutP->new_stateCnt);
+ if (OutP->RetCode != KERN_SUCCESS) {
+ MIG_RETURN_ERROR(OutP, OutP->RetCode);
+ }
+
+ OutP->NDR = NDR_record;
+
+
+ OutP->flavor = In1P->flavor;
+ OutP->Head.msgh_size = (mach_msg_size_t)(sizeof(Reply) - 576) + (((4 * OutP->new_stateCnt)));
+
+ __AfterRcvRpc(2403, "exception_raise_state_identity")
+}
+
+
+extern boolean_t exc_server(
+ mach_msg_header_t *InHeadP,
+ mach_msg_header_t *OutHeadP);
+
+extern mig_routine_t exc_server_routine(
+ mach_msg_header_t *InHeadP);
+
+
+/* Description of this subsystem, for use in direct RPC */
+const struct breakpad_exc_subsystem {
+ mig_server_routine_t server; /* Server routine */
+ mach_msg_id_t start; /* Min routine number */
+ mach_msg_id_t end; /* Max routine number + 1 */
+ unsigned int maxsize; /* Max msg size */
+ vm_address_t reserved; /* Reserved */
+ struct routine_descriptor /*Array of routine descriptors */
+ routine[3];
+} breakpad_exc_subsystem = {
+ exc_server_routine,
+ 2401,
+ 2404,
+ (mach_msg_size_t)sizeof(union __ReplyUnion__breakpad_exc_subsystem),
+ (vm_address_t)0,
+ {
+ { (mig_impl_routine_t) 0,
+ (mig_stub_routine_t) _Xexception_raise, 6, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__exception_raise_t)},
+ { (mig_impl_routine_t) 0,
+ (mig_stub_routine_t) _Xexception_raise_state, 9, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__exception_raise_state_t)},
+ { (mig_impl_routine_t) 0,
+ (mig_stub_routine_t) _Xexception_raise_state_identity, 11, 0, (routine_arg_descriptor_t)0, (mach_msg_size_t)sizeof(__Reply__exception_raise_state_identity_t)},
+ }
+};
+
+mig_external boolean_t exc_server
+ (mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
+{
+ /*
+ * typedef struct {
+ * mach_msg_header_t Head;
+ * NDR_record_t NDR;
+ * kern_return_t RetCode;
+ * } mig_reply_error_t;
+ */
+
+ register mig_routine_t routine;
+
+ OutHeadP->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REPLY(InHeadP->msgh_bits), 0);
+ OutHeadP->msgh_remote_port = InHeadP->msgh_reply_port;
+ /* Minimal size: routine() will update it if different */
+ OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t);
+ OutHeadP->msgh_local_port = MACH_PORT_NULL;
+ OutHeadP->msgh_id = InHeadP->msgh_id + 100;
+
+ if ((InHeadP->msgh_id > 2403) || (InHeadP->msgh_id < 2401) ||
+ ((routine = breakpad_exc_subsystem.routine[InHeadP->msgh_id - 2401].stub_routine) == 0)) {
+ ((mig_reply_error_t *)OutHeadP)->NDR = NDR_record;
+ ((mig_reply_error_t *)OutHeadP)->RetCode = MIG_BAD_ID;
+ return FALSE;
+ }
+ (*routine) (InHeadP, OutHeadP);
+ return TRUE;
+}
+
+mig_external mig_routine_t exc_server_routine
+ (mach_msg_header_t *InHeadP)
+{
+ register int msgh_id;
+
+ msgh_id = InHeadP->msgh_id - 2401;
+
+ if ((msgh_id > 2) || (msgh_id < 0))
+ return 0;
+
+ return breakpad_exc_subsystem.routine[msgh_id].stub_routine;
+}
diff --git a/src/client/mac/handler/breakpad_exc_server.h b/src/client/mac/handler/breakpad_exc_server.h
new file mode 100644
index 00000000..c05f25a8
--- /dev/null
+++ b/src/client/mac/handler/breakpad_exc_server.h
@@ -0,0 +1,258 @@
+#ifndef _exc_user_
+#define _exc_user_
+
+/* Module exc */
+
+#include <string.h>
+#include <mach/ndr.h>
+#include <mach/boolean.h>
+#include <mach/kern_return.h>
+#include <mach/notify.h>
+#include <mach/mach_types.h>
+#include <mach/message.h>
+#include <mach/mig_errors.h>
+#include <mach/port.h>
+
+#ifdef AUTOTEST
+#ifndef FUNCTION_PTR_T
+#define FUNCTION_PTR_T
+typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
+typedef struct {
+ char *name;
+ function_ptr_t function;
+} function_table_entry;
+typedef function_table_entry *function_table_t;
+#endif /* FUNCTION_PTR_T */
+#endif /* AUTOTEST */
+
+#ifndef exc_MSG_COUNT
+#define exc_MSG_COUNT 3
+#endif /* exc_MSG_COUNT */
+
+#include <mach/std_types.h>
+#include <mach/mig.h>
+#include <mach/mig.h>
+#include <mach/mach_types.h>
+
+#ifdef __BeforeMigUserHeader
+__BeforeMigUserHeader
+#endif /* __BeforeMigUserHeader */
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+
+/* Routine exception_raise */
+#ifdef mig_external
+mig_external
+#else
+extern
+#endif /* mig_external */
+kern_return_t exception_raise
+(
+ mach_port_t exception_port,
+ mach_port_t thread,
+ mach_port_t task,
+ exception_type_t exception,
+ exception_data_t code,
+ mach_msg_type_number_t codeCnt
+);
+
+/* Routine exception_raise_state */
+#ifdef mig_external
+mig_external
+#else
+extern
+#endif /* mig_external */
+kern_return_t exception_raise_state
+(
+ mach_port_t exception_port,
+ exception_type_t exception,
+ const exception_data_t code,
+ mach_msg_type_number_t codeCnt,
+ int *flavor,
+ const thread_state_t old_state,
+ mach_msg_type_number_t old_stateCnt,
+ thread_state_t new_state,
+ mach_msg_type_number_t *new_stateCnt
+);
+
+/* Routine exception_raise_state_identity */
+#ifdef mig_external
+mig_external
+#else
+extern
+#endif /* mig_external */
+kern_return_t exception_raise_state_identity
+(
+ mach_port_t exception_port,
+ mach_port_t thread,
+ mach_port_t task,
+ exception_type_t exception,
+ exception_data_t code,
+ mach_msg_type_number_t codeCnt,
+ int *flavor,
+ thread_state_t old_state,
+ mach_msg_type_number_t old_stateCnt,
+ thread_state_t new_state,
+ mach_msg_type_number_t *new_stateCnt
+);
+
+__END_DECLS
+
+/********************** Caution **************************/
+/* The following data types should be used to calculate */
+/* maximum message sizes only. The actual message may be */
+/* smaller, and the position of the arguments within the */
+/* message layout may vary from what is presented here. */
+/* For example, if any of the arguments are variable- */
+/* sized, and less than the maximum is sent, the data */
+/* will be packed tight in the actual message to reduce */
+/* the presence of holes. */
+/********************** Caution **************************/
+
+/* typedefs for all requests */
+
+#ifndef __Request__exc_subsystem__defined
+#define __Request__exc_subsystem__defined
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_port_descriptor_t thread;
+ mach_msg_port_descriptor_t task;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ } __Request__exception_raise_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ int flavor;
+ mach_msg_type_number_t old_stateCnt;
+ natural_t old_state[144];
+ } __Request__exception_raise_state_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ /* start of the kernel processed data */
+ mach_msg_body_t msgh_body;
+ mach_msg_port_descriptor_t thread;
+ mach_msg_port_descriptor_t task;
+ /* end of the kernel processed data */
+ NDR_record_t NDR;
+ exception_type_t exception;
+ mach_msg_type_number_t codeCnt;
+ integer_t code[2];
+ int flavor;
+ mach_msg_type_number_t old_stateCnt;
+ natural_t old_state[144];
+ } __Request__exception_raise_state_identity_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+#endif /* !__Request__exc_subsystem__defined */
+
+/* union of all requests */
+
+#ifndef __RequestUnion__exc_subsystem__defined
+#define __RequestUnion__exc_subsystem__defined
+union __RequestUnion__exc_subsystem {
+ __Request__exception_raise_t Request_exception_raise;
+ __Request__exception_raise_state_t Request_exception_raise_state;
+ __Request__exception_raise_state_identity_t Request_exception_raise_state_identity;
+};
+#endif /* !__RequestUnion__exc_subsystem__defined */
+/* typedefs for all replies */
+
+#ifndef __Reply__exc_subsystem__defined
+#define __Reply__exc_subsystem__defined
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ } __Reply__exception_raise_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ int flavor;
+ mach_msg_type_number_t new_stateCnt;
+ natural_t new_state[144];
+ } __Reply__exception_raise_state_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+
+#ifdef __MigPackStructs
+#pragma pack(4)
+#endif
+ typedef struct {
+ mach_msg_header_t Head;
+ NDR_record_t NDR;
+ kern_return_t RetCode;
+ int flavor;
+ mach_msg_type_number_t new_stateCnt;
+ natural_t new_state[144];
+ } __Reply__exception_raise_state_identity_t;
+#ifdef __MigPackStructs
+#pragma pack()
+#endif
+#endif /* !__Reply__exc_subsystem__defined */
+
+/* union of all replies */
+
+#ifndef __ReplyUnion__exc_subsystem__defined
+#define __ReplyUnion__exc_subsystem__defined
+union __ReplyUnion__exc_subsystem {
+ __Reply__exception_raise_t Reply_exception_raise;
+ __Reply__exception_raise_state_t Reply_exception_raise_state;
+ __Reply__exception_raise_state_identity_t Reply_exception_raise_state_identity;
+};
+#endif /* !__RequestUnion__exc_subsystem__defined */
+
+#ifndef subsystem_to_name_map_exc
+#define subsystem_to_name_map_exc \
+ { "exception_raise", 2401 },\
+ { "exception_raise_state", 2402 },\
+ { "exception_raise_state_identity", 2403 }
+#endif
+
+#ifdef __AfterMigUserHeader
+__AfterMigUserHeader
+#endif /* __AfterMigUserHeader */
+
+#endif /* _exc_user_ */
diff --git a/src/client/mac/handler/exception_handler.cc b/src/client/mac/handler/exception_handler.cc
index 4fdba7d8..41ffb194 100644
--- a/src/client/mac/handler/exception_handler.cc
+++ b/src/client/mac/handler/exception_handler.cc
@@ -137,8 +137,79 @@ extern "C"
mach_msg_type_number_t thread_state_count,
thread_state_t thread_state,
mach_msg_type_number_t *thread_state_count);
+
+ kern_return_t breakpad_exception_raise_state(mach_port_t exception_port,
+ exception_type_t exception,
+ const exception_data_t code,
+ mach_msg_type_number_t codeCnt,
+ int *flavor,
+ const thread_state_t old_state,
+ mach_msg_type_number_t old_stateCnt,
+ thread_state_t new_state,
+ mach_msg_type_number_t *new_stateCnt
+ );
+
+ kern_return_t breakpad_exception_raise_state_identity(mach_port_t exception_port,
+ mach_port_t thread,
+ mach_port_t task,
+ exception_type_t exception,
+ exception_data_t code,
+ mach_msg_type_number_t codeCnt,
+ int *flavor,
+ thread_state_t old_state,
+ mach_msg_type_number_t old_stateCnt,
+ thread_state_t new_state,
+ mach_msg_type_number_t *new_stateCnt
+ );
+
+ kern_return_t breakpad_exception_raise(mach_port_t port, mach_port_t failed_thread,
+ mach_port_t task,
+ exception_type_t exception,
+ exception_data_t code,
+ mach_msg_type_number_t code_count);
+}
+
+
+
+kern_return_t breakpad_exception_raise_state(mach_port_t exception_port,
+ exception_type_t exception,
+ const exception_data_t code,
+ mach_msg_type_number_t codeCnt,
+ int *flavor,
+ const thread_state_t old_state,
+ mach_msg_type_number_t old_stateCnt,
+ thread_state_t new_state,
+ mach_msg_type_number_t *new_stateCnt
+ )
+{
+ return KERN_SUCCESS;
}
+kern_return_t breakpad_exception_raise_state_identity(mach_port_t exception_port,
+ mach_port_t thread,
+ mach_port_t task,
+ exception_type_t exception,
+ exception_data_t code,
+ mach_msg_type_number_t codeCnt,
+ int *flavor,
+ thread_state_t old_state,
+ mach_msg_type_number_t old_stateCnt,
+ thread_state_t new_state,
+ mach_msg_type_number_t *new_stateCnt
+ )
+{
+ return KERN_SUCCESS;
+}
+
+kern_return_t breakpad_exception_raise(mach_port_t port, mach_port_t failed_thread,
+ mach_port_t task,
+ exception_type_t exception,
+ exception_data_t code,
+ mach_msg_type_number_t code_count) {
+ return ForwardException(task, failed_thread, exception, code, code_count);
+}
+
+
ExceptionHandler::ExceptionHandler(const string &dump_path,
FilterCallback filter,
MinidumpCallback callback,
diff --git a/src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj b/src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj
index 6b6f37cf..c0b09e8b 100644
--- a/src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj
+++ b/src/client/mac/handler/minidump_test.xcodeproj/project.pbxproj
@@ -112,6 +112,8 @@
D2F651080BEF949A00920385 /* dynamic_images.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dynamic_images.h; sourceTree = "<group>"; };
D2F6510C0BEF94EB00920385 /* macho_walker.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = macho_walker.cc; path = ../../../common/mac/macho_walker.cc; sourceTree = SOURCE_ROOT; };
D2F6510D0BEF94EB00920385 /* macho_walker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = macho_walker.h; path = ../../../common/mac/macho_walker.h; sourceTree = SOURCE_ROOT; };
+ F917C4F70E03265A00F86017 /* breakpad_exc_server.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = breakpad_exc_server.c; sourceTree = "<group>"; };
+ F917C4F80E03265A00F86017 /* breakpad_exc_server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = breakpad_exc_server.h; sourceTree = "<group>"; };
F982089A0DB3280D0017AECA /* breakpad_nlist_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = breakpad_nlist_test.h; sourceTree = "<group>"; };
F982089B0DB3280D0017AECA /* breakpad_nlist_test.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = breakpad_nlist_test.cc; sourceTree = "<group>"; };
F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = breakpad_nlist_64.cc; sourceTree = "<group>"; };
@@ -168,6 +170,8 @@
08FB7794FE84155DC02AAC07 /* MinidumpWriter */ = {
isa = PBXGroup;
children = (
+ F917C4F70E03265A00F86017 /* breakpad_exc_server.c */,
+ F917C4F80E03265A00F86017 /* breakpad_exc_server.h */,
F98208A10DB32CAE0017AECA /* breakpad_nlist_64.cc */,
F98208A20DB32CAE0017AECA /* breakpad_nlist_64.h */,
D2F6510C0BEF94EB00920385 /* macho_walker.cc */,