Subject: CVS commit: src/sys/compat
To: None <>
From: Emmanuel Dreyfus <>
List: source-changes
Date: 11/18/2003 01:40:18
Module Name:	src
Committed By:	manu
Date:		Tue Nov 18 01:40:18 UTC 2003

Modified Files:
	src/sys/compat/darwin: darwin_exec.c
	src/sys/compat/mach: mach_exec.c mach_exec.h mach_message.c
	    mach_notify.c mach_notify.h mach_services.c mach_services.h
	    mach_services.master mach_services_names.c mach_task.c mach_types.h

Log Message:
More work on exceptions. Once a task has raised an exception, it remains
blocked in the kernel. The task that catched the exception may unblock
it by sending a reply to the exception message (Of course it will have
to change something so that the exception is not immediatly raised again).

Handling of this reply is a bit complicated, as the kernel acts as the
client instead of the server. In this situation, we receive a message
but we will not send any reply (the message we receive is already a reply).
I have not found anything better than a special case in
mach_msg_overwrite_trap() to handle this.

A surprise: exceptions ports are preserved accross forks.

While we are there, use appropriate 64 bit types for make_memory_entry_64.

To generate a diff of this commit:
cvs rdiff -r1.23 -r1.24 src/sys/compat/darwin/darwin_exec.c
cvs rdiff -r1.35 -r1.36 src/sys/compat/mach/mach_exec.c \
cvs rdiff -r1.20 -r1.21 src/sys/compat/mach/mach_exec.h
cvs rdiff -r1.29 -r1.30 src/sys/compat/mach/mach_message.c
cvs rdiff -r1.4 -r1.5 src/sys/compat/mach/mach_notify.c \
    src/sys/compat/mach/mach_notify.h \
cvs rdiff -r1.6 -r1.7 src/sys/compat/mach/mach_services.c \
cvs rdiff -r1.3 -r1.4 src/sys/compat/mach/mach_services_names.c
cvs rdiff -r1.17 -r1.18 src/sys/compat/mach/mach_types.h
cvs rdiff -r1.21 -r1.22 src/sys/compat/mach/mach_vm.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.