-typedef struct mig_routine_descriptor {
- mig_stub_routine_t stub_routine; /* Unmarshalling function */
- mach_msg_size_t max_reply_msg; /* Max size for this reply */
-} mig_routine_descriptor;
-typedef mig_routine_descriptor *mig_routine_descriptor_t;
+typedef mach_msg_type_descriptor_t routine_arg_descriptor;
+typedef mach_msg_type_descriptor_t *routine_arg_descriptor_t;
+typedef mach_msg_type_descriptor_t *mig_routine_arg_descriptor_t;
+
+#define MIG_ROUTINE_ARG_DESCRIPTOR_NULL ((mig_routine_arg_descriptor_t)0)
+
+struct routine_descriptor {
+ mig_impl_routine_t impl_routine; /* Server work func pointer */
+ mig_stub_routine_t stub_routine; /* Unmarshalling func pointer */
+ unsigned int argc; /* Number of argument words */
+ unsigned int descr_count; /* Number complex descriptors */
+ routine_arg_descriptor_t
+ arg_descr; /* pointer to descriptor array*/
+ unsigned int max_reply_msg; /* Max size for reply msg */
+};
+typedef struct routine_descriptor *routine_descriptor_t;
+
+typedef struct routine_descriptor mig_routine_descriptor;
+typedef mig_routine_descriptor *mig_routine_descriptor_t;
+
+#define MIG_ROUTINE_DESCRIPTOR_NULL ((mig_routine_descriptor_t)0)