summaryrefslogtreecommitdiff
path: root/ipc
diff options
context:
space:
mode:
Diffstat (limited to 'ipc')
-rw-r--r--ipc/ipc_init.c5
-rw-r--r--ipc/ipc_kmsg.c75
-rw-r--r--ipc/ipc_kmsg.h10
-rw-r--r--ipc/ipc_mqueue.c65
-rw-r--r--ipc/ipc_notify.c7
-rw-r--r--ipc/ipc_port.c61
-rw-r--r--ipc/ipc_port.h37
-rw-r--r--ipc/ipc_space.c4
-rw-r--r--ipc/ipc_space.h4
-rw-r--r--ipc/mach_msg.c44
10 files changed, 0 insertions, 312 deletions
diff --git a/ipc/ipc_init.c b/ipc/ipc_init.c
index e94705c..561e3a9 100644
--- a/ipc/ipc_init.c
+++ b/ipc/ipc_init.c
@@ -108,11 +108,6 @@ ipc_bootstrap(void)
kr = ipc_space_create_special(&ipc_space_reply);
assert(kr == KERN_SUCCESS);
-#if NORMA_IPC
- kr = ipc_space_create_special(&ipc_space_remote);
- assert(kr == KERN_SUCCESS);
-#endif /* NORMA_IPC */
-
/* initialize modules with hidden data structures */
ipc_table_init();
diff --git a/ipc/ipc_kmsg.c b/ipc/ipc_kmsg.c
index 21a3ecf..44b5d82 100644
--- a/ipc/ipc_kmsg.c
+++ b/ipc/ipc_kmsg.c
@@ -36,8 +36,6 @@
#include <cpus.h>
#include <mach_ipc_compat.h>
-#include <norma_ipc.h>
-#include <norma_vm.h>
#include <mach/boolean.h>
#include <mach/kern_return.h>
@@ -468,12 +466,6 @@ ipc_kmsg_free(kmsg)
vm_size_t size = kmsg->ikm_size;
switch (size) {
-#if NORMA_IPC
- case IKM_SIZE_NORMA:
- /* return it to the norma ipc code */
- norma_kmsg_put(kmsg);
- break;
-#endif /* NORMA_IPC */
case IKM_SIZE_NETWORK:
/* return it to the network code */
@@ -1393,13 +1385,6 @@ ipc_kmsg_copyin_body(kmsg, space, map)
use_page_lists = ipc_kobject_vm_page_list(ip_kotype((ipc_port_t)dest));
steal_pages = ipc_kobject_vm_page_steal(ip_kotype((ipc_port_t)dest));
-#if NORMA_IPC
- if (IP_NORMA_IS_PROXY((ipc_port_t) dest)) {
- use_page_lists = TRUE;
- steal_pages = TRUE;
- }
-#endif /* NORMA_IPC */
-
saddr = (vm_offset_t) (&kmsg->ikm_header + 1);
eaddr = (vm_offset_t) &kmsg->ikm_header + kmsg->ikm_header.msgh_size;
@@ -2701,53 +2686,6 @@ ipc_kmsg_copyout_dest(kmsg, space)
}
}
-#if NORMA_IPC || NORMA_VM
-/*
- * Routine: ipc_kmsg_copyout_to_kernel
- * Purpose:
- * Copies out the destination and reply ports in the message.
- * Leaves all other rights and memory in the message alone.
- * Conditions:
- * Nothing locked.
- *
- * Derived from ipc_kmsg_copyout_dest.
- * Use by mach_msg_rpc_from_kernel (which used to use copyout_dest).
- * We really do want to save rights and memory.
- */
-
-void
-ipc_kmsg_copyout_to_kernel(kmsg, space)
- ipc_kmsg_t kmsg;
- ipc_space_t space;
-{
- mach_msg_bits_t mbits = kmsg->ikm_header.msgh_bits;
- ipc_object_t dest = (ipc_object_t) kmsg->ikm_header.msgh_remote_port;
- ipc_object_t reply = (ipc_object_t) kmsg->ikm_header.msgh_local_port;
- mach_msg_type_name_t dest_type = MACH_MSGH_BITS_REMOTE(mbits);
- mach_msg_type_name_t reply_type = MACH_MSGH_BITS_LOCAL(mbits);
- mach_port_t dest_name, reply_name;
-
- assert(IO_VALID(dest));
-
- io_lock(dest);
- if (io_active(dest)) {
- ipc_object_copyout_dest(space, dest, dest_type, &dest_name);
- /* dest is unlocked */
- } else {
- io_release(dest);
- io_check_unlock(dest);
- dest_name = MACH_PORT_DEAD;
- }
-
- reply_name = (mach_port_t) reply;
-
- kmsg->ikm_header.msgh_bits = (MACH_MSGH_BITS_OTHER(mbits) |
- MACH_MSGH_BITS(reply_type, dest_type));
- kmsg->ikm_header.msgh_local_port = dest_name;
- kmsg->ikm_header.msgh_remote_port = reply_name;
-}
-#endif /* NORMA_IPC || NORMA_VM */
-
#if MACH_IPC_COMPAT
/*
@@ -2824,13 +2762,6 @@ ipc_kmsg_copyin_compat(kmsg, space, map)
use_page_lists = ipc_kobject_vm_page_list(ip_kotype((ipc_port_t)dest));
steal_pages = ipc_kobject_vm_page_steal(ip_kotype((ipc_port_t)dest));
-#if NORMA_IPC
- if (IP_NORMA_IS_PROXY((ipc_port_t) dest)) {
- use_page_lists = TRUE;
- steal_pages = TRUE;
- }
-#endif /* NORMA_IPC */
-
saddr = (vm_offset_t) (&kmsg->ikm_header + 1);
eaddr = (vm_offset_t) &kmsg->ikm_header + kmsg->ikm_header.msgh_size;
@@ -3309,13 +3240,7 @@ ipc_kmsg_print(kmsg)
kmsg->ikm_prev,
kmsg->ikm_size,
kmsg->ikm_marequest);
-#if NORMA_IPC
- db_printf(",page=0x%x,copy=0x%x\n",
- kmsg->ikm_page,
- kmsg->ikm_copy);
-#else /* NORMA_IPC */
db_printf("\n");
-#endif /* NORMA_IPC */
ipc_msg_print(&kmsg->ikm_header);
}
diff --git a/ipc/ipc_kmsg.h b/ipc/ipc_kmsg.h
index 2ec8c58..77e7c28 100644
--- a/ipc/ipc_kmsg.h
+++ b/ipc/ipc_kmsg.h
@@ -36,7 +36,6 @@
#include <cpus.h>
#include <mach_ipc_compat.h>
-#include <norma_ipc.h>
#include <mach/machine/vm_types.h>
#include <mach/message.h>
@@ -45,10 +44,6 @@
#include <kern/macro_help.h>
#include <kern/kalloc.h>
#include <ipc/ipc_marequest.h>
-#if NORMA_IPC
-#include <vm/vm_page.h>
-#include <vm/vm_map.h>
-#endif /* NORMA_IPC */
/*
* This structure is only the header for a kmsg buffer;
@@ -66,11 +61,6 @@ typedef struct ipc_kmsg {
struct ipc_kmsg *ikm_next, *ikm_prev;
vm_size_t ikm_size;
ipc_marequest_t ikm_marequest;
-#if NORMA_IPC
- vm_page_t ikm_page;
- vm_map_copy_t ikm_copy;
- unsigned long ikm_source_node;
-#endif /* NORMA_IPC */
mach_msg_header_t ikm_header;
} *ipc_kmsg_t;
diff --git a/ipc/ipc_mqueue.c b/ipc/ipc_mqueue.c
index 17af1ff..e0ebc86 100644
--- a/ipc/ipc_mqueue.c
+++ b/ipc/ipc_mqueue.c
@@ -34,8 +34,6 @@
* Functions to manipulate IPC message queues.
*/
-#include <norma_ipc.h>
-
#include <mach/port.h>
#include <mach/message.h>
#include <kern/assert.h>
@@ -53,14 +51,6 @@
-#if NORMA_IPC
-extern ipc_mqueue_t norma_ipc_handoff_mqueue;
-extern ipc_kmsg_t norma_ipc_handoff_msg;
-extern mach_msg_size_t norma_ipc_handoff_max_size;
-extern mach_msg_size_t norma_ipc_handoff_msg_size;
-extern ipc_kmsg_t norma_ipc_kmsg_accept();
-#endif /* NORMA_IPC */
-
/*
* Routine: ipc_mqueue_init
* Purpose:
@@ -212,16 +202,6 @@ ipc_mqueue_send(kmsg, option, time_out)
return MACH_MSG_SUCCESS;
}
-#if NORMA_IPC
- if (IP_NORMA_IS_PROXY(port)) {
- mach_msg_return_t mr;
-
- mr = norma_ipc_send(kmsg);
- ip_unlock(port);
- return mr;
- }
-#endif /* NORMA_IPC */
-
for (;;) {
ipc_thread_t self;
@@ -242,10 +222,6 @@ ipc_mqueue_send(kmsg, option, time_out)
ip_release(port);
ip_check_unlock(port);
kmsg->ikm_header.msgh_remote_port = MACH_PORT_NULL;
-#if NORMA_IPC
- /* XXX until ipc_kmsg_destroy is fixed... */
- norma_ipc_finish_receiving(&kmsg);
-#endif /* NORMA_IPC */
ipc_kmsg_destroy(kmsg);
return MACH_MSG_SUCCESS;
}
@@ -329,10 +305,6 @@ ipc_mqueue_send(kmsg, option, time_out)
/* don't allow the creation of a circular loop */
-#if NORMA_IPC
- /* XXX until ipc_kmsg_destroy is fixed... */
- norma_ipc_finish_receiving(&kmsg);
-#endif /* NORMA_IPC */
ipc_kmsg_destroy(kmsg);
return MACH_MSG_SUCCESS;
}
@@ -370,16 +342,6 @@ ipc_mqueue_send(kmsg, option, time_out)
/* check for a receiver for the message */
-#if NORMA_IPC
- if (mqueue == norma_ipc_handoff_mqueue) {
- norma_ipc_handoff_msg = kmsg;
- if (kmsg->ikm_header.msgh_size <= norma_ipc_handoff_max_size) {
- imq_unlock(mqueue);
- return MACH_MSG_SUCCESS;
- }
- norma_ipc_handoff_msg_size = kmsg->ikm_header.msgh_size;
- }
-#endif /* NORMA_IPC */
for (;;) {
receiver = ipc_thread_queue_first(receivers);
if (receiver == ITH_NULL) {
@@ -572,30 +534,6 @@ ipc_mqueue_receive(
for (;;) {
kmsg = ipc_kmsg_queue_first(kmsgs);
-#if NORMA_IPC
- /*
- * It may be possible to make this work even when a timeout
- * is specified.
- *
- * Netipc_replenish should be moved somewhere else.
- */
- if (kmsg == IKM_NULL && ! (option & MACH_RCV_TIMEOUT)) {
- netipc_replenish(FALSE);
- *kmsgp = IKM_NULL;
- kmsg = norma_ipc_kmsg_accept(mqueue, max_size,
- (mach_msg_size_t *)kmsgp);
- if (kmsg != IKM_NULL) {
- port = (ipc_port_t)
- kmsg->ikm_header.msgh_remote_port;
- seqno = port->ip_seqno++;
- break;
- }
- if (*kmsgp) {
- imq_unlock(mqueue);
- return MACH_RCV_TOO_LARGE;
- }
- }
-#endif /* NORMA_IPC */
if (kmsg != IKM_NULL) {
/* check space requirements */
@@ -745,9 +683,6 @@ ipc_mqueue_receive(
ip_unlock(port);
}
-#if NORMA_IPC
- norma_ipc_finish_receiving(&kmsg);
-#endif /* NORMA_IPC */
*kmsgp = kmsg;
*seqnop = seqno;
return MACH_MSG_SUCCESS;
diff --git a/ipc/ipc_notify.c b/ipc/ipc_notify.c
index e789edf..d10ac99 100644
--- a/ipc/ipc_notify.c
+++ b/ipc/ipc_notify.c
@@ -382,13 +382,6 @@ ipc_notify_no_senders(port, mscount)
ipc_kmsg_t kmsg;
mach_no_senders_notification_t *n;
-#if NORMA_IPC
- if (ip_nsproxyp(port)) {
- assert(mscount == 0);
- norma_ipc_notify_no_senders(ip_nsproxy(port));
- return;
- }
-#endif /* NORMA_IPC */
kmsg = ikm_alloc(sizeof *n);
if (kmsg == IKM_NULL) {
printf("dropped no-senders (0x%08x, %u)\n", port, mscount);
diff --git a/ipc/ipc_port.c b/ipc/ipc_port.c
index 73009b1..262ab5e 100644
--- a/ipc/ipc_port.c
+++ b/ipc/ipc_port.c
@@ -49,9 +49,6 @@
#include <ipc/ipc_thread.h>
#include <ipc/ipc_mqueue.h>
#include <ipc/ipc_notify.h>
-#if NORMA_IPC
-#include <norma/ipc_node.h>
-#endif /* NORMA_IPC */
@@ -492,24 +489,6 @@ ipc_port_init(
port->ip_msgcount = 0;
port->ip_qlimit = MACH_PORT_QLIMIT_DEFAULT;
-#if NORMA_IPC
- port->ip_norma_uid = 0;
- port->ip_norma_dest_node = 0;
- port->ip_norma_stransit = 0;
- port->ip_norma_sotransit = 0;
- port->ip_norma_xmm_object_refs = 0;
- port->ip_norma_is_proxy = FALSE;
- port->ip_norma_is_special = FALSE;
- port->ip_norma_atrium = IP_NULL;
- port->ip_norma_queue_next = port;
- port->ip_norma_xmm_object = IP_NULL;
- port->ip_norma_next = port;
- port->ip_norma_spare1 = 0L;
- port->ip_norma_spare2 = 0L;
- port->ip_norma_spare3 = 0L;
- port->ip_norma_spare4 = 0L;
-#endif /* NORMA_IPC */
-
ipc_mqueue_init(&port->ip_messages);
ipc_thread_queue_init(&port->ip_blocked);
}
@@ -725,13 +704,6 @@ ipc_port_destroy(
/* fall through and destroy the port */
}
-#if NORMA_IPC
- /*
- * destroy any NORMA_IPC state associated with port
- */
- norma_ipc_port_destroy(port);
-#endif /* NORMA_IPC */
-
/*
* rouse all blocked senders
*
@@ -1240,14 +1212,6 @@ ipc_port_t
ipc_port_alloc_special(space)
ipc_space_t space;
{
-#if NORMA_IPC
-#if i386
- int ret = (&ret)[2]; /* where we were called from */
-#else
- int ret = (int) ipc_port_alloc_special;
-#endif
- extern int input_msgh_id;
-#endif /* NORMA_IPC */
ipc_port_t port;
port = (ipc_port_t) io_alloc(IOT_PORT);
@@ -1271,10 +1235,6 @@ ipc_port_alloc_special(space)
ipc_port_init(port, space, (mach_port_t)port);
-#if NORMA_IPC
- port->ip_norma_spare1 = ret;
- port->ip_norma_spare2 = input_msgh_id;
-#endif /* NORMA_IPC */
return port;
}
@@ -1518,27 +1478,6 @@ ipc_port_print(port)
printf(", sndrs=0x%x", port->ip_blocked.ithq_base);
printf(", kobj=0x%x\n", port->ip_kobject);
-#if NORMA_IPC
- iprintf("norma_uid=%x", port->ip_norma_uid);
- printf(", dest_node=%d", port->ip_norma_dest_node);
- printf(", stransit=%d", port->ip_norma_stransit);
- printf(", xorefs=%d", port->ip_norma_xmm_object_refs);
- printf(", sotransit=%d\n", port->ip_norma_sotransit);
-
- iprintf("norma_is_proxy=%d", port->ip_norma_is_proxy);
- printf(", is_special=%d\n", port->ip_norma_is_special);
-
- iprintf("norma_atrium=0x%x", port->ip_norma_atrium);
- printf(", queue_next=0x%x", port->ip_norma_queue_next);
- printf(", xmm_object=0x%x", port->ip_norma_xmm_object);
- printf(", next=0x%x\n", port->ip_norma_next);
-
- iprintf("norma_spare1=0x%x", port->ip_norma_spare1);
- printf(", norma_spare2=0x%x", port->ip_norma_spare2);
- printf(", norma_spare3=0x%x", port->ip_norma_spare3);
- printf(", norma_spare4=0x%x\n", port->ip_norma_spare4);
-#endif /* NORMA_IPC */
-
indent -=2;
}
diff --git a/ipc/ipc_port.h b/ipc/ipc_port.h
index 6b6fac0..6707268 100644
--- a/ipc/ipc_port.h
+++ b/ipc/ipc_port.h
@@ -40,7 +40,6 @@
#define _IPC_IPC_PORT_H_
#include <mach_ipc_compat.h>
-#include <norma_ipc.h>
#include <mach/boolean.h>
#include <mach/kern_return.h>
@@ -99,24 +98,6 @@ struct ipc_port {
mach_port_msgcount_t ip_msgcount;
mach_port_msgcount_t ip_qlimit;
struct ipc_thread_queue ip_blocked;
-
-#if NORMA_IPC
- unsigned long ip_norma_uid;
- unsigned long ip_norma_dest_node;
- long ip_norma_stransit;
- long ip_norma_sotransit;
- long ip_norma_xmm_object_refs;
- boolean_t ip_norma_is_proxy;
- boolean_t ip_norma_is_special;
- struct ipc_port *ip_norma_atrium;
- struct ipc_port *ip_norma_queue_next;
- struct ipc_port *ip_norma_xmm_object;
- struct ipc_port *ip_norma_next;
- long ip_norma_spare1;
- long ip_norma_spare2;
- long ip_norma_spare3;
- long ip_norma_spare4;
-#endif /* NORMA_IPC */
};
#define ip_object ip_target.ipt_object
@@ -386,22 +367,4 @@ ipc_port_copyout_receiver(/* ipc_port_t, ipc_space_t */);
extern void
ipc_port_print(/* ipc_port_t */);
-#if NORMA_IPC
-
-#define IP_NORMA_IS_PROXY(port) ((port)->ip_norma_is_proxy)
-
-/*
- * A proxy never has a real nsrequest, but is always has a fake
- * nsrequest so that the norma ipc system is notified when there
- * are no send rights for a proxy. A fake nsrequest is indicated by
- * the low bit of the pointer. This works because the zone package
- * guarantees that the two low bits of port pointers are zero.
- */
-
-#define ip_nsproxyp(nsrequest) ((unsigned int)(nsrequest) & 1)
-#define ip_nsproxy(nsrequest) ((ipc_port_t)((unsigned int)(nsrequest) &~ 1))
-#define ip_nsproxym(proxy) ((ipc_port_t)((unsigned int)(proxy) | 1))
-
-#endif /* NORMA_IPC */
-
#endif /* _IPC_IPC_PORT_H_ */
diff --git a/ipc/ipc_space.c b/ipc/ipc_space.c
index cd40b58..bbe8a2f 100644
--- a/ipc/ipc_space.c
+++ b/ipc/ipc_space.c
@@ -37,7 +37,6 @@
*/
#include <mach_ipc_compat.h>
-#include <norma_ipc.h>
#include <mach/boolean.h>
#include <mach/kern_return.h>
@@ -59,9 +58,6 @@
zone_t ipc_space_zone;
ipc_space_t ipc_space_kernel;
ipc_space_t ipc_space_reply;
-#if NORMA_IPC
-ipc_space_t ipc_space_remote;
-#endif /* NORMA_IPC */
/*
* Routine: ipc_space_reference
diff --git a/ipc/ipc_space.h b/ipc/ipc_space.h
index e242911..14f2404 100644
--- a/ipc/ipc_space.h
+++ b/ipc/ipc_space.h
@@ -40,7 +40,6 @@
#define _IPC_IPC_SPACE_H_
#include <mach_ipc_compat.h>
-#include <norma_ipc.h>
#include <mach/boolean.h>
#include <mach/kern_return.h>
@@ -94,9 +93,6 @@ extern zone_t ipc_space_zone;
extern struct ipc_space *ipc_space_kernel;
extern struct ipc_space *ipc_space_reply;
-#if NORMA_IPC
-extern struct ipc_space *ipc_space_remote;
-#endif /* NORMA_IPC */
#define is_ref_lock_init(is) simple_lock_init(&(is)->is_ref_lock_data)
diff --git a/ipc/mach_msg.c b/ipc/mach_msg.c
index ab132af..2ae250c 100644
--- a/ipc/mach_msg.c
+++ b/ipc/mach_msg.c
@@ -37,7 +37,6 @@
*/
#include <mach_ipc_compat.h>
-#include <norma_ipc.h>
#include <mach/kern_return.h>
#include <mach/port.h>
@@ -635,14 +634,6 @@ mach_msg_trap(msg, option, send_size, rcv_size, rcv_name, time_out, notify)
goto kernel_send;
}
-#if NORMA_IPC
- if (IP_NORMA_IS_PROXY(dest_port)) {
- ip_unlock(dest_port);
- ip_unlock(reply_port);
- goto norma_send;
- }
-#endif /* NORMA_IPC */
-
if (dest_port->ip_msgcount >= dest_port->ip_qlimit)
goto abort_request_send_receive;
@@ -754,13 +745,6 @@ mach_msg_trap(msg, option, send_size, rcv_size, rcv_name, time_out, notify)
/* make sure we can queue to the destination */
assert(dest_port->ip_receiver != ipc_space_kernel);
-#if NORMA_IPC
- if (IP_NORMA_IS_PROXY(dest_port)) {
- is_write_unlock(space);
- ip_unlock(dest_port);
- goto norma_send;
- }
-#endif /* NORMA_IPC */
/* optimized ipc_entry_lookup/ipc_mqueue_copyin */
@@ -859,9 +843,6 @@ mach_msg_trap(msg, option, send_size, rcv_size, rcv_name, time_out, notify)
assert(ip_active(dest_port));
assert(dest_port->ip_receiver != ipc_space_kernel);
-#if NORMA_IPC
- assert(! IP_NORMA_IS_PROXY(dest_port));
-#endif /* NORMA_IPC */
assert((dest_port->ip_msgcount < dest_port->ip_qlimit) ||
(MACH_MSGH_BITS_REMOTE(kmsg->ikm_header.msgh_bits) ==
MACH_MSG_TYPE_PORT_SEND_ONCE));
@@ -1341,9 +1322,6 @@ mach_msg_trap(msg, option, send_size, rcv_size, rcv_name, time_out, notify)
}
if (ip_active(dest_port) &&
-#if NORMA_IPC
- (! IP_NORMA_IS_PROXY(dest_port)) &&
-#endif /* NORMA_IPC */
((dest_port->ip_msgcount < dest_port->ip_qlimit) ||
(MACH_MSGH_BITS_REMOTE(kmsg->ikm_header.msgh_bits) ==
MACH_MSG_TYPE_PORT_SEND_ONCE)))
@@ -1380,28 +1358,6 @@ mach_msg_trap(msg, option, send_size, rcv_size, rcv_name, time_out, notify)
ip_unlock(dest_port);
goto slow_send;
-#if NORMA_IPC
- norma_send:
- /*
- * Nothing is locked. We have acquired kmsg, but
- * we still need to send it and receive a reply.
- */
-
- mr = norma_ipc_send(kmsg);
- if (mr != MACH_MSG_SUCCESS) {
- mr |= ipc_kmsg_copyout_pseudo(kmsg, space,
- current_map());
-
- assert(kmsg->ikm_marequest == IMAR_NULL);
- (void) ipc_kmsg_put(msg, kmsg,
- kmsg->ikm_header.msgh_size);
- thread_syscall_return(mr);
- /*NOTREACHED*/
- }
-
- goto slow_get_rcv_port;
-#endif /* NORMA_IPC */
-
kernel_send:
/*
* Special case: send message to kernel services.