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"

Reply via email to