diff options
Diffstat (limited to 'ipc/ipc_port.c')
-rw-r--r-- | ipc/ipc_port.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/ipc/ipc_port.c b/ipc/ipc_port.c index 86a4ee2..3aa6ce6 100644 --- a/ipc/ipc_port.c +++ b/ipc/ipc_port.c @@ -103,6 +103,7 @@ ipc_port_dnrequest( ipc_port_request_t ipr, table; ipc_port_request_index_t index; + assert(have_ip_lock(port)); assert(ip_active(port)); assert(name != MACH_PORT_NULL); assert(soright != IP_NULL); @@ -147,6 +148,7 @@ ipc_port_dngrow(ipc_port_t port) ipc_table_size_t its; ipc_port_request_t otable, ntable; + assert(have_ip_lock(port)); assert(ip_active(port)); otable = port->ip_dnrequests; @@ -240,6 +242,7 @@ ipc_port_dncancel( ipc_port_request_t ipr, table; ipc_port_t dnrequest; + assert(have_ip_lock(port)); assert(ip_active(port)); assert(name != MACH_PORT_NULL); assert(index != 0); @@ -280,6 +283,7 @@ ipc_port_pdrequest( { ipc_port_t previous; + assert(have_ip_lock(port)); assert(ip_active(port)); previous = port->ip_pdrequest; @@ -311,6 +315,7 @@ ipc_port_nsrequest( ipc_port_t previous; mach_port_mscount_t mscount; + assert(have_ip_lock(port)); assert(ip_active(port)); previous = port->ip_nsrequest; @@ -344,6 +349,7 @@ ipc_port_set_qlimit( ipc_port_t port, mach_port_msgcount_t qlimit) { + assert(have_ip_lock(port)); assert(ip_active(port)); /* wake up senders allowed by the new qlimit */ @@ -383,6 +389,9 @@ ipc_port_set_qlimit( ipc_mqueue_t ipc_port_lock_mqueue(ipc_port_t port) { + assert(have_ip_lock(port)); + assert(ip_active(port)); + if (port->ip_pset != IPS_NULL) { ipc_pset_t pset = port->ip_pset; @@ -417,6 +426,9 @@ ipc_port_set_seqno( { ipc_mqueue_t mqueue; + assert(have_ip_lock(port)); + assert(ip_active(port)); + mqueue = ipc_port_lock_mqueue(port); port->ip_seqno = seqno; imq_unlock(mqueue); @@ -435,6 +447,9 @@ ipc_port_set_protected_payload(ipc_port_t port, unsigned long payload) { ipc_mqueue_t mqueue; + assert(have_ip_lock(port)); + assert(ip_active(port)); + mqueue = ipc_port_lock_mqueue(port); port->ip_protected_payload = payload; ipc_port_flag_protected_payload_set(port); @@ -454,6 +469,9 @@ ipc_port_clear_protected_payload(ipc_port_t port) { ipc_mqueue_t mqueue; + assert(have_ip_lock(port)); + assert(ip_active(port)); + mqueue = ipc_port_lock_mqueue(port); ipc_port_flag_protected_payload_clear(port); imq_unlock(mqueue); @@ -474,6 +492,7 @@ ipc_port_clear_receiver( { ipc_pset_t pset; + assert(have_ip_lock(port)); assert(ip_active(port)); pset = port->ip_pset; @@ -566,7 +585,7 @@ ipc_port_alloc( if (kr != KERN_SUCCESS) return kr; - /* port is locked */ + assert(have_ip_lock(port)); /* port is locked */ ipc_port_init(port, space, name); @@ -604,7 +623,7 @@ ipc_port_alloc_name( name, (ipc_object_t *) &port); if (kr != KERN_SUCCESS) return kr; - /* port is locked */ + assert(have_ip_lock(port)); /* port is locked */ ipc_port_init(port, space, name); @@ -636,6 +655,7 @@ ipc_port_destroy( ipc_thread_t sender; ipc_port_request_t dnrequests; + assert(have_ip_lock(port)); assert(ip_active(port)); /* port->ip_receiver_name is garbage */ /* port->ip_receiver/port->ip_destination is garbage */ @@ -916,6 +936,7 @@ ipc_port_lookup_notify( ipc_port_t port; ipc_entry_t entry; + assert(have_is_lock(space)); assert(space->is_active); entry = ipc_entry_lookup(space, name); |