diff options
Diffstat (limited to 'ipc/ipc_object.c')
-rw-r--r-- | ipc/ipc_object.c | 88 |
1 files changed, 16 insertions, 72 deletions
diff --git a/ipc/ipc_object.c b/ipc/ipc_object.c index a6457c37..1074fb2c 100644 --- a/ipc/ipc_object.c +++ b/ipc/ipc_object.c @@ -106,7 +106,7 @@ ipc_object_release( kern_return_t ipc_object_translate( ipc_space_t space, - mach_port_t name, + mach_port_name_t name, mach_port_right_t right, ipc_object_t *objectp) { @@ -150,7 +150,7 @@ ipc_object_translate( kern_return_t ipc_object_alloc_dead( ipc_space_t space, - mach_port_t *namep) + mach_port_name_t *namep) { ipc_entry_t entry; kern_return_t kr; @@ -187,7 +187,7 @@ ipc_object_alloc_dead( kern_return_t ipc_object_alloc_dead_name( ipc_space_t space, - mach_port_t name) + mach_port_name_t name) { ipc_entry_t entry; kern_return_t kr; @@ -231,7 +231,7 @@ ipc_object_alloc( ipc_object_type_t otype, mach_port_type_t type, mach_port_urefs_t urefs, - mach_port_t *namep, + mach_port_name_t *namep, ipc_object_t *objectp) { ipc_object_t object; @@ -298,7 +298,7 @@ ipc_object_alloc_name( ipc_object_type_t otype, mach_port_type_t type, mach_port_urefs_t urefs, - mach_port_t name, + mach_port_name_t name, ipc_object_t *objectp) { ipc_object_t object; @@ -405,7 +405,7 @@ ipc_object_copyin_type( kern_return_t ipc_object_copyin( ipc_space_t space, - mach_port_t name, + mach_port_name_t name, mach_msg_type_name_t msgt_name, ipc_object_t *objectp) { @@ -608,9 +608,9 @@ ipc_object_copyout( ipc_object_t object, mach_msg_type_name_t msgt_name, boolean_t overflow, - mach_port_t *namep) + mach_port_name_t *namep) { - mach_port_t name; + mach_port_name_t name; ipc_entry_t entry; kern_return_t kr; @@ -666,62 +666,6 @@ ipc_object_copyout( return kr; } -#if 0 -/* XXX same, but don't check for already-existing send rights */ -kern_return_t -ipc_object_copyout_multiname(space, object, namep) - ipc_space_t space; - ipc_object_t object; - mach_port_t *namep; -{ - mach_port_t name; - ipc_entry_t entry; - kern_return_t kr; - - assert(IO_VALID(object)); - assert(io_otype(object) == IOT_PORT); - - is_write_lock(space); - - for (;;) { - if (!space->is_active) { - is_write_unlock(space); - return KERN_INVALID_TASK; - } - - kr = ipc_entry_alloc(space, &name, &entry); - if (kr != KERN_SUCCESS) { - is_write_unlock(space); - return kr; /* space is unlocked */ - } - - assert(IE_BITS_TYPE(entry->ie_bits) == MACH_PORT_TYPE_NONE); - assert(entry->ie_object == IO_NULL); - - io_lock(object); - if (!io_active(object)) { - io_unlock(object); - ipc_entry_dealloc(space, name, entry); - is_write_unlock(space); - return KERN_INVALID_CAPABILITY; - } - - entry->ie_object = object; - break; - } - - /* space is write-locked and active, object is locked and active */ - - kr = ipc_right_copyout_multiname(space, name, entry, object); - /* object is unlocked */ - is_write_unlock(space); - - if (kr == KERN_SUCCESS) - *namep = name; - return kr; -} -#endif /* 0 */ - /* * Routine: ipc_object_copyout_name * Purpose: @@ -747,9 +691,9 @@ ipc_object_copyout_name( ipc_object_t object, mach_msg_type_name_t msgt_name, boolean_t overflow, - mach_port_t name) + mach_port_name_t name) { - mach_port_t oname; + mach_port_name_t oname; ipc_entry_t oentry; ipc_entry_t entry; kern_return_t kr; @@ -826,9 +770,9 @@ ipc_object_copyout_dest( ipc_space_t space, ipc_object_t object, mach_msg_type_name_t msgt_name, - mach_port_t *namep) + mach_port_name_t *namep) { - mach_port_t name; + mach_port_name_t name; assert(IO_VALID(object)); assert(io_active(object)); @@ -860,7 +804,7 @@ ipc_object_copyout_dest( if (port->ip_receiver == space) name = port->ip_receiver_name; else - name = MACH_PORT_NULL; + name = MACH_PORT_NAME_NULL; ip_unlock(port); @@ -895,7 +839,7 @@ ipc_object_copyout_dest( ip_unlock(port); ipc_notify_send_once(port); - name = MACH_PORT_NULL; + name = MACH_PORT_NAME_NULL; } break; @@ -930,8 +874,8 @@ ipc_object_copyout_dest( kern_return_t ipc_object_rename( ipc_space_t space, - mach_port_t oname, - mach_port_t nname) + mach_port_name_t oname, + mach_port_name_t nname) { ipc_entry_t oentry, nentry; kern_return_t kr; |