Author: kib Date: Wed Nov 9 18:25:50 2011 New Revision: 227399 URL: http://svn.freebsd.org/changeset/base/227399
Log: Attempt to improve formatting and content of several comments for amd64 and i386 MD code. Based on suggestions by: bde MFC after: 1 week Modified: head/sys/amd64/amd64/trap.c head/sys/amd64/include/signal.h head/sys/amd64/include/ucontext.h head/sys/i386/i386/trap.c head/sys/i386/include/signal.h head/sys/i386/include/ucontext.h Modified: head/sys/amd64/amd64/trap.c ============================================================================== --- head/sys/amd64/amd64/trap.c Wed Nov 9 18:24:20 2011 (r227398) +++ head/sys/amd64/amd64/trap.c Wed Nov 9 18:25:50 2011 (r227399) @@ -900,9 +900,9 @@ cpu_fetch_syscall_args(struct thread *td #include "../../kern/subr_syscall.c" /* - * syscall - system call request C handler - * - * A system call is essentially treated as a trap. + * System call handler for native binaries. The trap frame is already + * set up by the assembler trampoline and a pointer to it is saved in + * td_frame. */ void amd64_syscall(struct thread *td, int traced) Modified: head/sys/amd64/include/signal.h ============================================================================== --- head/sys/amd64/include/signal.h Wed Nov 9 18:24:20 2011 (r227398) +++ head/sys/amd64/include/signal.h Wed Nov 9 18:25:50 2011 (r227399) @@ -47,18 +47,14 @@ typedef long sig_atomic_t; #include <machine/trap.h> /* codes for SIGILL, SIGFPE */ /* - * Only the kernel should need these old type definitions. - */ -/* * Information pushed on stack when a signal is delivered. * This is used by the kernel to restore state following * execution of the signal handler. It is also made available * to the handler to allow it to restore state properly if * a non-standard exit is performed. - */ -/* - * The sequence of the fields/registers in struct sigcontext should match - * those in mcontext_t. + * + * The sequence of the fields/registers after sc_mask in struct + * sigcontext must match those in mcontext_t and struct trapframe. */ struct sigcontext { struct __sigset sc_mask; /* signal mask to restore */ @@ -93,8 +89,8 @@ struct sigcontext { long sc_ss; long sc_len; /* sizeof(mcontext_t) */ /* - * XXX - See <machine/ucontext.h> and <machine/fpu.h> for - * the following fields. + * See <machine/ucontext.h> and <machine/fpu.h> for the following + * fields. */ long sc_fpformat; long sc_ownedfp; Modified: head/sys/amd64/include/ucontext.h ============================================================================== --- head/sys/amd64/include/ucontext.h Wed Nov 9 18:24:20 2011 (r227398) +++ head/sys/amd64/include/ucontext.h Wed Nov 9 18:25:50 2011 (r227399) @@ -41,12 +41,13 @@ typedef struct __mcontext { /* - * The first 24 fields must match the definition of - * sigcontext. So that we can support sigcontext - * and ucontext_t at the same time. + * The definition of mcontext_t must match the layout of + * struct sigcontext after the sc_mask member. This is so + * that we can support sigcontext and ucontext_t at the same + * time. */ - __register_t mc_onstack; /* XXX - sigcontext compat. */ - __register_t mc_rdi; /* machine state (struct trapframe) */ + __register_t mc_onstack; /* XXX - sigcontext compat. */ + __register_t mc_rdi; /* machine state (struct trapframe) */ __register_t mc_rsi; __register_t mc_rdx; __register_t mc_rcx; Modified: head/sys/i386/i386/trap.c ============================================================================== --- head/sys/i386/i386/trap.c Wed Nov 9 18:24:20 2011 (r227398) +++ head/sys/i386/i386/trap.c Wed Nov 9 18:25:50 2011 (r227399) @@ -1065,9 +1065,8 @@ cpu_fetch_syscall_args(struct thread *td #include "../../kern/subr_syscall.c" /* - * syscall - system call request C handler - * - * A system call is essentially treated as a trap. + * syscall - system call request C handler. A system call is + * essentially treated as a trap by reusing the frame layout. */ void syscall(struct trapframe *frame) Modified: head/sys/i386/include/signal.h ============================================================================== --- head/sys/i386/include/signal.h Wed Nov 9 18:24:20 2011 (r227398) +++ head/sys/i386/include/signal.h Wed Nov 9 18:25:50 2011 (r227399) @@ -46,16 +46,17 @@ typedef int sig_atomic_t; #include <machine/trap.h> /* codes for SIGILL, SIGFPE */ /* - * Only the kernel should need these old type definitions. - */ -#if defined(_KERNEL) && defined(COMPAT_43) -/* * Information pushed on stack when a signal is delivered. * This is used by the kernel to restore state following * execution of the signal handler. It is also made available * to the handler to allow it to restore state properly if * a non-standard exit is performed. */ + +#if defined(_KERNEL) && defined(COMPAT_43) +/* + * Only the kernel should need these old type definitions. + */ struct osigcontext { int sc_onstack; /* sigstack state to restore */ osigset_t sc_mask; /* signal mask to restore */ @@ -83,7 +84,7 @@ struct osigcontext { /* * The sequence of the fields/registers in struct sigcontext should match - * those in mcontext_t. + * those in mcontext_t and struct trapframe. */ struct sigcontext { struct __sigset sc_mask; /* signal mask to restore */ @@ -109,8 +110,8 @@ struct sigcontext { int sc_ss; int sc_len; /* sizeof(mcontext_t) */ /* - * XXX - See <machine/ucontext.h> and <machine/npx.h> for - * the following fields. + * See <machine/ucontext.h> and <machine/npx.h> for + * the following fields. */ int sc_fpformat; int sc_ownedfp; Modified: head/sys/i386/include/ucontext.h ============================================================================== --- head/sys/i386/include/ucontext.h Wed Nov 9 18:24:20 2011 (r227398) +++ head/sys/i386/include/ucontext.h Wed Nov 9 18:25:50 2011 (r227399) @@ -33,9 +33,9 @@ typedef struct __mcontext { /* - * The first 20 fields must match the definition of - * sigcontext. So that we can support sigcontext - * and ucontext_t at the same time. + * The definition of mcontext_t shall match the layout of + * struct sigcontext after the sc_mask member. So that we can + * support sigcontext and ucontext_t at the same time. */ __register_t mc_onstack; /* XXX - sigcontext compat. */ __register_t mc_gs; /* machine state (struct trapframe) */ _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"