summaryrefslogtreecommitdiff
path: root/ipc
diff options
context:
space:
mode:
Diffstat (limited to 'ipc')
-rw-r--r--ipc/ipc_entry.c4
-rw-r--r--ipc/ipc_entry.h8
-rw-r--r--ipc/ipc_hash.c10
-rw-r--r--ipc/ipc_hash.h2
-rw-r--r--ipc/ipc_init.c47
-rw-r--r--ipc/ipc_init.h8
-rw-r--r--ipc/ipc_kmsg.c8
-rw-r--r--ipc/ipc_marequest.c27
-rw-r--r--ipc/ipc_marequest.h1
-rw-r--r--ipc/ipc_mqueue.c4
-rw-r--r--ipc/ipc_notify.c6
-rw-r--r--ipc/ipc_object.c8
-rw-r--r--ipc/ipc_object.h10
-rw-r--r--ipc/ipc_port.c3
-rw-r--r--ipc/ipc_pset.c4
-rw-r--r--ipc/ipc_space.c4
-rw-r--r--ipc/ipc_space.h7
-rw-r--r--ipc/ipc_table.c14
-rw-r--r--ipc/ipc_thread.h6
-rw-r--r--ipc/mach_msg.c4
-rw-r--r--ipc/mach_port.c4
21 files changed, 87 insertions, 102 deletions
diff --git a/ipc/ipc_entry.c b/ipc/ipc_entry.c
index 42e8dd8e..3a062447 100644
--- a/ipc/ipc_entry.c
+++ b/ipc/ipc_entry.c
@@ -41,7 +41,7 @@
#include <mach/port.h>
#include <kern/assert.h>
#include <kern/sched_prim.h>
-#include <kern/zalloc.h>
+#include <kern/slab.h>
#include <ipc/port.h>
#include <ipc/ipc_types.h>
#include <ipc/ipc_entry.h>
@@ -51,7 +51,7 @@
#include <ipc/ipc_table.h>
#include <ipc/ipc_object.h>
-zone_t ipc_tree_entry_zone;
+struct kmem_cache ipc_tree_entry_cache;
/*
* Routine: ipc_entry_tree_collision
diff --git a/ipc/ipc_entry.h b/ipc/ipc_entry.h
index a577cf0c..6afa4f68 100644
--- a/ipc/ipc_entry.h
+++ b/ipc/ipc_entry.h
@@ -41,7 +41,7 @@
#include <mach/mach_types.h>
#include <mach/port.h>
#include <mach/kern_return.h>
-#include <kern/zalloc.h>
+#include <kern/slab.h>
#include <ipc/port.h>
#include <ipc/ipc_table.h>
#include <ipc/ipc_types.h>
@@ -129,10 +129,10 @@ typedef struct ipc_tree_entry {
#define ite_request ite_entry.ie_request
#define ite_next ite_entry.hash.tree
-extern zone_t ipc_tree_entry_zone;
+extern struct kmem_cache ipc_tree_entry_cache;
-#define ite_alloc() ((ipc_tree_entry_t) zalloc(ipc_tree_entry_zone))
-#define ite_free(ite) zfree(ipc_tree_entry_zone, (vm_offset_t) (ite))
+#define ite_alloc() ((ipc_tree_entry_t) kmem_cache_alloc(&ipc_tree_entry_cache))
+#define ite_free(ite) kmem_cache_free(&ipc_tree_entry_cache, (vm_offset_t) (ite))
extern ipc_entry_t
diff --git a/ipc/ipc_hash.c b/ipc/ipc_hash.c
index c2412890..5eec58cb 100644
--- a/ipc/ipc_hash.c
+++ b/ipc/ipc_hash.c
@@ -326,7 +326,7 @@ ipc_hash_global_delete(
*/
#define IH_LOCAL_HASH(obj, size) \
- ((((mach_port_index_t) (obj)) >> 6) % (size))
+ ((((mach_port_index_t) (vm_offset_t) (obj)) >> 6) % (size))
/*
* Routine: ipc_hash_local_lookup
@@ -535,13 +535,9 @@ ipc_hash_init(void)
{
ipc_hash_index_t i;
- /* if not configured, initialize ipc_hash_global_size */
+ /* initialize ipc_hash_global_size */
- if (ipc_hash_global_size == 0) {
- ipc_hash_global_size = ipc_tree_entry_max >> 8;
- if (ipc_hash_global_size < 32)
- ipc_hash_global_size = 32;
- }
+ ipc_hash_global_size = IPC_HASH_GLOBAL_SIZE;
/* make sure it is a power of two */
diff --git a/ipc/ipc_hash.h b/ipc/ipc_hash.h
index 58c56ca8..929ba77d 100644
--- a/ipc/ipc_hash.h
+++ b/ipc/ipc_hash.h
@@ -67,6 +67,8 @@ ipc_hash_delete(ipc_space_t space, ipc_object_t obj,
* and the local primitives, for table entries.
*/
+#define IPC_HASH_GLOBAL_SIZE 256
+
extern boolean_t
ipc_hash_global_lookup(ipc_space_t space, ipc_object_t obj,
mach_port_t *namep, ipc_tree_entry_t *entryp);
diff --git a/ipc/ipc_init.c b/ipc/ipc_init.c
index 90e6b783..ca7e7912 100644
--- a/ipc/ipc_init.c
+++ b/ipc/ipc_init.c
@@ -35,8 +35,8 @@
*/
#include <mach/kern_return.h>
-#include <kern/mach_param.h>
#include <kern/ipc_host.h>
+#include <kern/slab.h>
#include <vm/vm_map.h>
#include <vm/vm_kern.h>
#include <ipc/ipc_entry.h>
@@ -52,14 +52,10 @@
-vm_map_t ipc_kernel_map;
+static struct vm_map ipc_kernel_map_store;
+vm_map_t ipc_kernel_map = &ipc_kernel_map_store;
vm_size_t ipc_kernel_map_size = 8 * 1024 * 1024;
-int ipc_space_max = SPACE_MAX;
-int ipc_tree_entry_max = ITE_MAX;
-int ipc_port_max = PORT_MAX;
-int ipc_pset_max = SET_MAX;
-
/*
* Routine: ipc_bootstrap
* Purpose:
@@ -77,28 +73,17 @@ ipc_bootstrap(void)
ipc_port_timestamp_lock_init();
ipc_port_timestamp_data = 0;
- ipc_space_zone = zinit(sizeof(struct ipc_space), 0,
- ipc_space_max * sizeof(struct ipc_space),
- sizeof(struct ipc_space),
- IPC_ZONE_TYPE, "ipc spaces");
-
- ipc_tree_entry_zone =
- zinit(sizeof(struct ipc_tree_entry), 0,
- ipc_tree_entry_max * sizeof(struct ipc_tree_entry),
- sizeof(struct ipc_tree_entry),
- IPC_ZONE_TYPE, "ipc tree entries");
-
- ipc_object_zones[IOT_PORT] =
- zinit(sizeof(struct ipc_port), 0,
- ipc_port_max * sizeof(struct ipc_port),
- sizeof(struct ipc_port),
- 0, "ipc ports");
-
- ipc_object_zones[IOT_PORT_SET] =
- zinit(sizeof(struct ipc_pset), 0,
- ipc_pset_max * sizeof(struct ipc_pset),
- sizeof(struct ipc_pset),
- IPC_ZONE_TYPE, "ipc port sets");
+ kmem_cache_init(&ipc_space_cache, "ipc_space",
+ sizeof(struct ipc_space), 0, NULL, NULL, NULL, 0);
+
+ kmem_cache_init(&ipc_tree_entry_cache, "ipc_tree_entry",
+ sizeof(struct ipc_tree_entry), 0, NULL, NULL, NULL, 0);
+
+ kmem_cache_init(&ipc_object_caches[IOT_PORT], "ipc_port",
+ sizeof(struct ipc_port), 0, NULL, NULL, NULL, 0);
+
+ kmem_cache_init(&ipc_object_caches[IOT_PORT_SET], "ipc_pset",
+ sizeof(struct ipc_pset), 0, NULL, NULL, NULL, 0);
/* create special spaces */
@@ -127,8 +112,8 @@ ipc_init()
{
vm_offset_t min, max;
- ipc_kernel_map = kmem_suballoc(kernel_map, &min, &max,
- ipc_kernel_map_size, TRUE);
+ kmem_submap(ipc_kernel_map, kernel_map, &min, &max,
+ ipc_kernel_map_size, TRUE);
ipc_host_init();
}
diff --git a/ipc/ipc_init.h b/ipc/ipc_init.h
index b2f1dd4b..8dd64bb5 100644
--- a/ipc/ipc_init.h
+++ b/ipc/ipc_init.h
@@ -37,14 +37,6 @@
#ifndef _IPC_IPC_INIT_H_
#define _IPC_IPC_INIT_H_
-/* all IPC zones should be exhaustible */
-#define IPC_ZONE_TYPE ZONE_EXHAUSTIBLE
-
-extern int ipc_space_max;
-extern int ipc_tree_entry_max;
-extern int ipc_port_max;
-extern int ipc_pset_max;
-
/*
* Exported interfaces
*/
diff --git a/ipc/ipc_kmsg.c b/ipc/ipc_kmsg.c
index a12c9476..c2689a48 100644
--- a/ipc/ipc_kmsg.c
+++ b/ipc/ipc_kmsg.c
@@ -1368,7 +1368,7 @@ ipc_kmsg_copyin_body(kmsg, space, map)
mach_msg_type_number_t number;
boolean_t is_inline, longform, dealloc, is_port;
vm_offset_t data;
- vm_size_t length;
+ unsigned64_t length;
kern_return_t kr;
type = (mach_msg_type_long_t *) saddr;
@@ -1419,7 +1419,7 @@ ipc_kmsg_copyin_body(kmsg, space, map)
/* calculate length of data in bytes, rounding up */
- length = ((number * size) + 7) >> 3;
+ length = (((unsigned64_t) number * size) + 7) >> 3;
if (is_inline) {
vm_size_t amount;
@@ -2382,7 +2382,7 @@ ipc_kmsg_copyout_body(saddr, eaddr, space, map)
mach_msg_type_size_t size;
mach_msg_type_number_t number;
boolean_t is_inline, longform, is_port;
- vm_size_t length;
+ unsigned64_t length;
vm_offset_t addr;
type = (mach_msg_type_long_t *) saddr;
@@ -2413,7 +2413,7 @@ ipc_kmsg_copyout_body(saddr, eaddr, space, map)
/* calculate length of data in bytes, rounding up */
- length = ((number * size) + 7) >> 3;
+ length = (((unsigned64_t) number * size) + 7) >> 3;
is_port = MACH_MSG_TYPE_PORT_ANY(name);
diff --git a/ipc/ipc_marequest.c b/ipc/ipc_marequest.c
index 540382af..06c53eb4 100644
--- a/ipc/ipc_marequest.c
+++ b/ipc/ipc_marequest.c
@@ -37,9 +37,8 @@
#include <mach/message.h>
#include <mach/port.h>
#include <kern/lock.h>
-#include <kern/mach_param.h>
#include <kern/kalloc.h>
-#include <kern/zalloc.h>
+#include <kern/slab.h>
#include <ipc/port.h>
#include <ipc/ipc_init.h>
#include <ipc/ipc_space.h>
@@ -58,11 +57,10 @@
#endif
-zone_t ipc_marequest_zone;
-int ipc_marequest_max = IMAR_MAX;
+struct kmem_cache ipc_marequest_cache;
-#define imar_alloc() ((ipc_marequest_t) zalloc(ipc_marequest_zone))
-#define imar_free(imar) zfree(ipc_marequest_zone, (vm_offset_t) (imar))
+#define imar_alloc() ((ipc_marequest_t) kmem_cache_alloc(&ipc_marequest_cache))
+#define imar_free(imar) kmem_cache_free(&ipc_marequest_cache, (vm_offset_t) (imar))
typedef unsigned int ipc_marequest_index_t;
@@ -100,13 +98,9 @@ ipc_marequest_init(void)
{
ipc_marequest_index_t i;
- /* if not configured, initialize ipc_marequest_size */
+ /* initialize ipc_marequest_size */
- if (ipc_marequest_size == 0) {
- ipc_marequest_size = ipc_marequest_max >> 8;
- if (ipc_marequest_size < 16)
- ipc_marequest_size = 16;
- }
+ ipc_marequest_size = IPC_MAREQUEST_SIZE;
/* make sure it is a power of two */
@@ -142,11 +136,8 @@ ipc_marequest_init(void)
bucket->imarb_head = IMAR_NULL;
}
- ipc_marequest_zone =
- zinit(sizeof(struct ipc_marequest), 0,
- ipc_marequest_max * sizeof(struct ipc_marequest),
- sizeof(struct ipc_marequest),
- IPC_ZONE_TYPE, "ipc msg-accepted requests");
+ kmem_cache_init(&ipc_marequest_cache, "ipc_marequest",
+ sizeof(struct ipc_marequest), 0, NULL, NULL, NULL, 0);
}
/*
@@ -439,7 +430,7 @@ ipc_marequest_info(maxp, info, count)
info[i].hib_count = bucket_count;
}
- *maxp = ipc_marequest_max;
+ *maxp = (unsigned int)-1;
return ipc_marequest_size;
}
diff --git a/ipc/ipc_marequest.h b/ipc/ipc_marequest.h
index eb3746d2..4f6f7584 100644
--- a/ipc/ipc_marequest.h
+++ b/ipc/ipc_marequest.h
@@ -70,6 +70,7 @@ typedef struct ipc_marequest {
#define IMAR_NULL ((ipc_marequest_t) 0)
+#define IPC_MAREQUEST_SIZE 16
extern void
ipc_marequest_init(void);
diff --git a/ipc/ipc_mqueue.c b/ipc/ipc_mqueue.c
index f3d5d4b0..80a34d3a 100644
--- a/ipc/ipc_mqueue.c
+++ b/ipc/ipc_mqueue.c
@@ -374,6 +374,8 @@ ipc_mqueue_send(kmsg, option, time_out)
}
}
+ current_task()->messages_sent++;
+
return MACH_MSG_SUCCESS;
}
@@ -684,6 +686,8 @@ ipc_mqueue_receive(
ip_unlock(port);
}
+ current_task()->messages_received++;
+
*kmsgp = kmsg;
*seqnop = seqno;
return MACH_MSG_SUCCESS;
diff --git a/ipc/ipc_notify.c b/ipc/ipc_notify.c
index d06346ea..25fa421b 100644
--- a/ipc/ipc_notify.c
+++ b/ipc/ipc_notify.c
@@ -264,7 +264,7 @@ ipc_notify_port_deleted(port, name)
kmsg = ikm_alloc(sizeof *n);
if (kmsg == IKM_NULL) {
- printf("dropped port-deleted (0x%p, 0x%x)\n", port, name);
+ printf("dropped port-deleted (0x%p, 0x%lx)\n", port, name);
ipc_port_release_sonce(port);
return;
}
@@ -298,7 +298,7 @@ ipc_notify_msg_accepted(port, name)
kmsg = ikm_alloc(sizeof *n);
if (kmsg == IKM_NULL) {
- printf("dropped msg-accepted (0x%p, 0x%x)\n", port, name);
+ printf("dropped msg-accepted (0x%p, 0x%lx)\n", port, name);
ipc_port_release_sonce(port);
return;
}
@@ -437,7 +437,7 @@ ipc_notify_dead_name(port, name)
kmsg = ikm_alloc(sizeof *n);
if (kmsg == IKM_NULL) {
- printf("dropped dead-name (0x%p, 0x%x)\n", port, name);
+ printf("dropped dead-name (0x%p, 0x%lx)\n", port, name);
ipc_port_release_sonce(port);
return;
}
diff --git a/ipc/ipc_object.c b/ipc/ipc_object.c
index a7a7ddb2..b8cae8f5 100644
--- a/ipc/ipc_object.c
+++ b/ipc/ipc_object.c
@@ -47,8 +47,14 @@
#include <ipc/ipc_pset.h>
#include <kern/debug.h>
#include <kern/printf.h>
+#include <kern/slab.h>
-zone_t ipc_object_zones[IOT_NUMBER];
+#if MACH_KDB
+#include <ddb/db_output.h>
+#endif /* MACH_KDB */
+
+
+struct kmem_cache ipc_object_caches[IOT_NUMBER];
diff --git a/ipc/ipc_object.h b/ipc/ipc_object.h
index 2bbf8bd7..adf5bca4 100644
--- a/ipc/ipc_object.h
+++ b/ipc/ipc_object.h
@@ -39,7 +39,7 @@
#include <ipc/ipc_types.h>
#include <kern/lock.h>
#include <kern/macro_help.h>
-#include <kern/zalloc.h>
+#include <kern/slab.h>
typedef unsigned int ipc_object_refs_t;
typedef unsigned int ipc_object_bits_t;
@@ -57,7 +57,7 @@ typedef struct ipc_object {
#define IO_VALID(io) (((io) != IO_NULL) && ((io) != IO_DEAD))
#define IO_BITS_KOTYPE 0x0000ffff /* used by the object */
-#define IO_BITS_OTYPE 0x7fff0000 /* determines a zone */
+#define IO_BITS_OTYPE 0x7fff0000 /* determines a cache */
#define IO_BITS_ACTIVE 0x80000000U /* is object alive? */
#define io_active(io) ((int)(io)->io_bits < 0) /* hack */
@@ -75,13 +75,13 @@ typedef struct ipc_object {
#define IOT_PORT_SET 1
#define IOT_NUMBER 2 /* number of types used */
-extern zone_t ipc_object_zones[IOT_NUMBER];
+extern struct kmem_cache ipc_object_caches[IOT_NUMBER];
#define io_alloc(otype) \
- ((ipc_object_t) zalloc(ipc_object_zones[(otype)]))
+ ((ipc_object_t) kmem_cache_alloc(&ipc_object_caches[(otype)]))
#define io_free(otype, io) \
- zfree(ipc_object_zones[(otype)], (vm_offset_t) (io))
+ kmem_cache_free(&ipc_object_caches[(otype)], (vm_offset_t) (io))
#define io_lock_init(io) simple_lock_init(&(io)->io_lock_data)
#define io_lock(io) simple_lock(&(io)->io_lock_data)
diff --git a/ipc/ipc_port.c b/ipc/ipc_port.c
index ce0dbeb4..8e41c3ca 100644
--- a/ipc/ipc_port.c
+++ b/ipc/ipc_port.c
@@ -51,6 +51,9 @@
#include <ipc/ipc_mqueue.h>
#include <ipc/ipc_notify.h>
+#if MACH_KDB
+#include <ddb/db_output.h>
+#endif /* MACH_KDB */
decl_simple_lock_data(, ipc_port_multiple_lock_data)
diff --git a/ipc/ipc_pset.c b/ipc/ipc_pset.c
index 141cbdb8..e2b3c862 100644
--- a/ipc/ipc_pset.c
+++ b/ipc/ipc_pset.c
@@ -46,6 +46,10 @@
#include <ipc/ipc_right.h>
#include <ipc/ipc_space.h>
+#if MACH_KDB
+#include <ddb/db_output.h>
+#endif /* MACH_KDB */
+
/*
* Routine: ipc_pset_alloc
diff --git a/ipc/ipc_space.c b/ipc/ipc_space.c
index 0f50f15b..ab55e838 100644
--- a/ipc/ipc_space.c
+++ b/ipc/ipc_space.c
@@ -43,7 +43,7 @@
#include <mach/port.h>
#include <kern/assert.h>
#include <kern/sched_prim.h>
-#include <kern/zalloc.h>
+#include <kern/slab.h>
#include <ipc/port.h>
#include <ipc/ipc_entry.h>
#include <ipc/ipc_splay.h>
@@ -55,7 +55,7 @@
-zone_t ipc_space_zone;
+struct kmem_cache ipc_space_cache;
ipc_space_t ipc_space_kernel;
ipc_space_t ipc_space_reply;
diff --git a/ipc/ipc_space.h b/ipc/ipc_space.h
index d030bf76..c4683d20 100644
--- a/ipc/ipc_space.h
+++ b/ipc/ipc_space.h
@@ -44,6 +44,7 @@
#include <mach/mach_types.h>
#include <kern/macro_help.h>
#include <kern/lock.h>
+#include <kern/slab.h>
#include <ipc/ipc_splay.h>
#include <ipc/ipc_types.h>
@@ -82,10 +83,10 @@ struct ipc_space {
#define IS_NULL ((ipc_space_t) 0)
-extern zone_t ipc_space_zone;
+extern struct kmem_cache ipc_space_cache;
-#define is_alloc() ((ipc_space_t) zalloc(ipc_space_zone))
-#define is_free(is) zfree(ipc_space_zone, (vm_offset_t) (is))
+#define is_alloc() ((ipc_space_t) kmem_cache_alloc(&ipc_space_cache))
+#define is_free(is) kmem_cache_free(&ipc_space_cache, (vm_offset_t) (is))
extern struct ipc_space *ipc_space_kernel;
extern struct ipc_space *ipc_space_reply;
diff --git a/ipc/ipc_table.c b/ipc/ipc_table.c
index e5723586..cbb6a894 100644
--- a/ipc/ipc_table.c
+++ b/ipc/ipc_table.c
@@ -39,6 +39,7 @@
#include <ipc/ipc_port.h>
#include <ipc/ipc_entry.h>
#include <kern/kalloc.h>
+#include <kern/slab.h>
#include <vm/vm_kern.h>
/*
@@ -50,13 +51,6 @@ void ipc_table_fill(
unsigned int min,
vm_size_t elemsize);
-/*
- * We borrow the kalloc map, rather than creating
- * yet another submap of the kernel map.
- */
-
-extern vm_map_t kalloc_map;
-
ipc_table_size_t ipc_table_entries;
unsigned int ipc_table_entries_size = 512;
@@ -151,7 +145,7 @@ ipc_table_alloc(
if (size < PAGE_SIZE)
table = kalloc(size);
else
- if (kmem_alloc(kalloc_map, &table, size) != KERN_SUCCESS)
+ if (kmem_alloc(kmem_map, &table, size) != KERN_SUCCESS)
table = 0;
return table;
@@ -177,7 +171,7 @@ ipc_table_realloc(
{
vm_offset_t new_table;
- if (kmem_realloc(kalloc_map, old_table, old_size,
+ if (kmem_realloc(kmem_map, old_table, old_size,
&new_table, new_size) != KERN_SUCCESS)
new_table = 0;
@@ -201,5 +195,5 @@ ipc_table_free(
if (size < PAGE_SIZE)
kfree(table, size);
else
- kmem_free(kalloc_map, table, size);
+ kmem_free(kmem_map, table, size);
}
diff --git a/ipc/ipc_thread.h b/ipc/ipc_thread.h
index e8bfe4a8..fbeea46a 100644
--- a/ipc/ipc_thread.h
+++ b/ipc/ipc_thread.h
@@ -46,6 +46,11 @@ typedef thread_t ipc_thread_t;
#define ith_lock(thread) simple_lock(&(thread)->ith_lock_data)
#define ith_unlock(thread) simple_unlock(&(thread)->ith_lock_data)
+/*
+ * Note that this isn't a queue, but rather a stack. This causes
+ * threads that were recently running to be reused earlier, which
+ * helps improve locality of reference.
+ */
typedef struct ipc_thread_queue {
ipc_thread_t ithq_base;
} *ipc_thread_queue_t;
@@ -103,6 +108,7 @@ MACRO_BEGIN \
(thread)->ith_prev = _last; \
_first->ith_prev = (thread); \
_last->ith_next = (thread); \
+ (queue)->ithq_base = (thread); \
} \
MACRO_END
diff --git a/ipc/mach_msg.c b/ipc/mach_msg.c
index 43ae918a..00ab085b 100644
--- a/ipc/mach_msg.c
+++ b/ipc/mach_msg.c
@@ -218,7 +218,7 @@ mach_msg_receive(msg, option, rcv_size, rcv_name, time_out, notify)
if (mr != MACH_MSG_SUCCESS) {
if (mr == MACH_RCV_TOO_LARGE) {
mach_msg_size_t real_size =
- (mach_msg_size_t) (natural_t) kmsg;
+ (mach_msg_size_t) (vm_offset_t) kmsg;
assert(real_size > rcv_size);
@@ -309,7 +309,7 @@ mach_msg_receive_continue(void)
if (mr != MACH_MSG_SUCCESS) {
if (mr == MACH_RCV_TOO_LARGE) {
mach_msg_size_t real_size =
- (mach_msg_size_t) (natural_t) kmsg;
+ (mach_msg_size_t) (vm_offset_t) kmsg;
assert(real_size > rcv_size);
diff --git a/ipc/mach_port.c b/ipc/mach_port.c
index c5688c90..d0310b55 100644
--- a/ipc/mach_port.c
+++ b/ipc/mach_port.c
@@ -571,7 +571,7 @@ mach_port_destroy(
kr = ipc_right_lookup_write(space, name, &entry);
if (kr != KERN_SUCCESS) {
if (name != MACH_PORT_NULL && name != MACH_PORT_DEAD && space == current_space()) {
- printf("task %p destroying an invalid port %u, most probably a bug.\n", current_task(), name);
+ printf("task %p destroying an invalid port %lu, most probably a bug.\n", current_task(), name);
if (mach_port_deallocate_debug)
SoftDebugger("mach_port_deallocate");
}
@@ -615,7 +615,7 @@ mach_port_deallocate(
kr = ipc_right_lookup_write(space, name, &entry);
if (kr != KERN_SUCCESS) {
if (name != MACH_PORT_NULL && name != MACH_PORT_DEAD && space == current_space()) {
- printf("task %p deallocating an invalid port %u, most probably a bug.\n", current_task(), name);
+ printf("task %p deallocating an invalid port %lu, most probably a bug.\n", current_task(), name);
if (mach_port_deallocate_debug)
SoftDebugger("mach_port_deallocate");
}