diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-02-04 10:27:44 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-02-04 10:27:44 +0100 |
commit | ba1b3afd50913473f3036a63b4a82d7ba5c42009 (patch) | |
tree | 9dff0ddec4bf8b927a025b4bf9882cb1731170f3 /kern/ipc_kobject.c | |
parent | bfdb3be16e5a20eebc97b3ca613d9a4da4465533 (diff) | |
parent | 51e87d005139a435cd846ac5c224eed5042c4fa0 (diff) |
Merge branch 'master' into master-gdb_stubs
Diffstat (limited to 'kern/ipc_kobject.c')
-rw-r--r-- | kern/ipc_kobject.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/kern/ipc_kobject.c b/kern/ipc_kobject.c index 3d8775b4..37d4eb99 100644 --- a/kern/ipc_kobject.c +++ b/kern/ipc_kobject.c @@ -46,6 +46,7 @@ #include <ipc/ipc_port.h> #include <ipc/ipc_thread.h> #include <vm/vm_object.h> +#include <vm/memory_object_proxy.h> #include <device/ds_routines.h> #if MACH_MACHINE_ROUTINES @@ -150,7 +151,8 @@ ipc_kobject_server(request) mach_host_server_routine(), device_server_routine(), device_pager_server_routine(), - mach4_server_routine(); + mach4_server_routine(), + gnumach_server_routine(); #if MACH_DEBUG extern mig_routine_t mach_debug_server_routine(); #endif @@ -169,20 +171,27 @@ ipc_kobject_server(request) || (routine = mach_debug_server_routine(&request->ikm_header)) != 0 #endif /* MACH_DEBUG */ || (routine = mach4_server_routine(&request->ikm_header)) != 0 + || (routine = gnumach_server_routine(&request->ikm_header)) != 0 #if MACH_MACHINE_ROUTINES || (routine = MACHINE_SERVER_ROUTINE(&request->ikm_header)) != 0 #endif /* MACH_MACHINE_ROUTINES */ ) { (*routine)(&request->ikm_header, &reply->ikm_header); - } - else if (!ipc_kobject_notify(&request->ikm_header,&reply->ikm_header)){ + kernel_task->messages_received++; + } else { + if (!ipc_kobject_notify(&request->ikm_header, + &reply->ikm_header)) { ((mig_reply_header_t *) &reply->ikm_header)->RetCode = MIG_BAD_ID; #if MACH_IPC_TEST printf("ipc_kobject_server: bogus kernel message, id=%d\n", request->ikm_header.msgh_id); #endif /* MACH_IPC_TEST */ + } else { + kernel_task->messages_received++; + } } + kernel_task->messages_sent++; } check_simple_locks(); @@ -318,7 +327,7 @@ ipc_kobject_destroy( default: #if MACH_ASSERT - printf("ipc_kobject_destroy: port 0x%p, kobj 0x%x, type %d\n", + printf("ipc_kobject_destroy: port 0x%p, kobj 0x%lx, type %d\n", port, port->ip_kobject, ip_kotype(port)); #endif /* MACH_ASSERT */ break; |