Remove untyped mach RPC code.

Existing MiG does not support untyped messages and the Hurd will
continue to use typed messages for the foreseeable future.
Message-ID: <ZVmYX6j4pYNUfqn4@jupiter.tail36e24.ts.net>
This commit is contained in:
Flavio Cruz 2023-11-19 00:08:47 -05:00 committed by Samuel Thibault
parent f11a92993c
commit 6ae7b5f43d
4 changed files with 0 additions and 141 deletions

View File

@ -115,10 +115,6 @@ _hurdsig_fault_catch_exception_raise_state_identity
#endif #endif
#ifdef NDR_CHAR_ASCII /* OSF Mach flavors have different names. */
# define mig_reply_header_t mig_reply_error_t
#endif
static void static void
faulted (void) faulted (void)
{ {

View File

@ -25,10 +25,6 @@
#include "intr-msg.h" #include "intr-msg.h"
#ifdef NDR_CHAR_ASCII /* OSF Mach flavors have different names. */
# define mig_reply_header_t mig_reply_error_t
#endif
error_t error_t
_hurd_intr_rpc_mach_msg (mach_msg_header_t *msg, _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
mach_msg_option_t option, mach_msg_option_t option,
@ -45,11 +41,7 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
struct clobber struct clobber
{ {
#ifdef NDR_CHAR_ASCII
NDR_record_t ndr;
#else
mach_msg_type_t type; mach_msg_type_t type;
#endif
error_t err; error_t err;
}; };
union msg union msg
@ -59,11 +51,7 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
struct struct
{ {
mach_msg_header_t header; mach_msg_header_t header;
#ifdef NDR_CHAR_ASCII
NDR_record_t ndr;
#else
mach_msg_type_t type; mach_msg_type_t type;
#endif
int code; int code;
} check; } check;
struct struct
@ -171,7 +159,6 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
} }
if (msg->msgh_bits & MACH_MSGH_BITS_COMPLEX) if (msg->msgh_bits & MACH_MSGH_BITS_COMPLEX)
{ {
#ifndef MACH_MSG_PORT_DESCRIPTOR
/* Check for MOVE_SEND rights in the message. These hold refs /* Check for MOVE_SEND rights in the message. These hold refs
that we need to release in case the message is in fact never that we need to release in case the message is in fact never
re-sent later. Since it might in fact be re-sent, we turn re-sent later. Since it might in fact be re-sent, we turn
@ -243,62 +230,6 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
ty = (void *) data + sizeof (void *); ty = (void *) data + sizeof (void *);
} }
} }
#else /* Untyped Mach IPC flavor. */
mach_msg_body_t *body = (void *) (msg + 1);
mach_msg_descriptor_t *desc = (void *) (body + 1);
mach_msg_descriptor_t *desc_end = desc + body->msgh_descriptor_count;
for (; desc < desc_end; ++desc)
switch (desc->type.type)
{
case MACH_MSG_PORT_DESCRIPTOR:
switch (desc->port.disposition)
{
case MACH_MSG_TYPE_MOVE_SEND:
__mach_port_deallocate (mach_task_self (),
desc->port.name);
desc->port.disposition = MACH_MSG_TYPE_COPY_SEND;
break;
case MACH_MSG_TYPE_COPY_SEND:
case MACH_MSG_TYPE_MOVE_RECEIVE:
break;
default:
assert (! "unexpected port type in interruptible RPC");
}
break;
case MACH_MSG_OOL_DESCRIPTOR:
if (desc->out_of_line.deallocate)
__vm_deallocate (__mach_task_self (),
(vm_address_t) desc->out_of_line.address,
desc->out_of_line.size);
break;
case MACH_MSG_OOL_PORTS_DESCRIPTOR:
switch (desc->ool_ports.disposition)
{
case MACH_MSG_TYPE_MOVE_SEND:
{
mach_msg_size_t i;
const mach_port_t *ports = desc->ool_ports.address;
for (i = 0; i < desc->ool_ports.count; ++i)
__mach_port_deallocate (__mach_task_self (), ports[i]);
desc->ool_ports.disposition = MACH_MSG_TYPE_COPY_SEND;
break;
}
case MACH_MSG_TYPE_COPY_SEND:
case MACH_MSG_TYPE_MOVE_RECEIVE:
break;
default:
assert (! "unexpected port type in interruptible RPC");
}
if (desc->ool_ports.deallocate)
__vm_deallocate (__mach_task_self (),
(vm_address_t) desc->ool_ports.address,
desc->ool_ports.count
* sizeof (mach_port_t));
break;
default:
assert (! "unexpected descriptor type in interruptible RPC");
}
#endif
} }
break; break;

View File

@ -71,69 +71,6 @@ __mach_msg_destroy (mach_msg_header_t *msg)
mach_msg_destroy_port(msg->msgh_remote_port, MACH_MSGH_BITS_REMOTE(mbits)); mach_msg_destroy_port(msg->msgh_remote_port, MACH_MSGH_BITS_REMOTE(mbits));
if (mbits & MACH_MSGH_BITS_COMPLEX) { if (mbits & MACH_MSGH_BITS_COMPLEX) {
#ifdef MACH_MSG_PORT_DESCRIPTOR
mach_msg_body_t *body;
mach_msg_descriptor_t *saddr, *eaddr;
body = (mach_msg_body_t *) (msg + 1);
saddr = (mach_msg_descriptor_t *)
((mach_msg_base_t *) msg + 1);
eaddr = saddr + body->msgh_descriptor_count;
for ( ; saddr < eaddr; saddr++) {
switch (saddr->type.type) {
case MACH_MSG_PORT_DESCRIPTOR: {
mach_msg_port_descriptor_t *dsc;
/*
* Destroy port rights carried in the message
*/
dsc = &saddr->port;
mach_msg_destroy_port(dsc->name, dsc->disposition);
break;
}
case MACH_MSG_OOL_DESCRIPTOR : {
mach_msg_ool_descriptor_t *dsc;
/*
* Destroy memory carried in the message
*/
dsc = &saddr->out_of_line;
if (dsc->deallocate) {
mach_msg_destroy_memory((vm_offset_t)dsc->address,
dsc->size);
}
break;
}
case MACH_MSG_OOL_PORTS_DESCRIPTOR : {
mach_port_t *ports;
mach_msg_ool_ports_descriptor_t *dsc;
mach_msg_type_number_t j;
/*
* Destroy port rights carried in the message
*/
dsc = &saddr->ool_ports;
ports = (mach_port_t *) dsc->address;
for (j = 0; j < dsc->count; j++, ports++) {
mach_msg_destroy_port(*ports, dsc->disposition);
}
/*
* Destroy memory carried in the message
*/
if (dsc->deallocate) {
mach_msg_destroy_memory((vm_offset_t)dsc->address,
dsc->count * sizeof(mach_port_t));
}
break;
}
}
}
#else
vm_offset_t saddr; vm_offset_t saddr;
vm_offset_t eaddr; vm_offset_t eaddr;
@ -185,7 +122,6 @@ __mach_msg_destroy (mach_msg_header_t *msg)
saddr += sizeof(vm_offset_t); saddr += sizeof(vm_offset_t);
} }
} }
#endif
} }
} }

View File

@ -66,10 +66,6 @@
#include <stdlib.h> /* For malloc and free. */ #include <stdlib.h> /* For malloc and free. */
#include <assert.h> #include <assert.h>
#ifdef NDR_CHAR_ASCII /* OSF Mach flavors have different names. */
# define mig_reply_header_t mig_reply_error_t
#endif
mach_msg_return_t mach_msg_return_t
__mach_msg_server_timeout (boolean_t (*demux) (mach_msg_header_t *request, __mach_msg_server_timeout (boolean_t (*demux) (mach_msg_header_t *request,
mach_msg_header_t *reply), mach_msg_header_t *reply),