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

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

Log Message:
First work on Mach exceptions. Things that can turn into signals on UNIX
may turn into exceptions on Mach: a small message sent by the kernel to
the task that requested the exception.
On Darwin, when an exception is sent, no signal can be delivered.

TODO: more exceptions: arithmetic, bad instructions, emulation, s
software, and syscalls (plain and Mach). There is also RPC alert, but
I have no idea about what it is.

While we are there, remove some user ktrace in notification code, and add
a NODEF qualifier in mach_services.master: it will be used for notifications
and exceptions, where the kernel is always client and never server: we
don't want the message to be displayed as "unimplemented xxx" in kdump (thus
UNIMPL is not good), but we don't want to generate the server prototype
(therefore, STD is not good either). NODEF will declare it normally in the
name tables without creating the prototype.

To generate a diff of this commit:
cvs rdiff -r1.22 -r1.23 src/sys/compat/darwin/darwin_exec.c
cvs rdiff -r1.7 -r1.8 src/sys/compat/darwin/darwin_signal.c
cvs rdiff -r1.8 -r1.9 src/sys/compat/darwin/darwin_signal.h
cvs rdiff -r1.34 -r1.35 src/sys/compat/mach/mach_exec.c
cvs rdiff -r1.2 -r1.3 src/sys/compat/mach/mach_notify.c \
    src/sys/compat/mach/mach_notify.h \
cvs rdiff -r1.29 -r1.30 src/sys/compat/mach/mach_port.h
cvs rdiff -r1.5 -r1.6 src/sys/compat/mach/mach_services.c \
cvs rdiff -r1.3 -r1.4 src/sys/compat/mach/mach_services.master \
cvs rdiff -r1.33 -r1.34 src/sys/compat/mach/mach_task.c
cvs rdiff -r1.9 -r1.10 src/sys/compat/mach/mach_task.h

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