Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch KNF, and reduce the diff between amd64 and i386.



details:   https://anonhg.NetBSD.org/src/rev/f984ce052763
branches:  trunk
changeset: 815340:f984ce052763
user:      maxv <maxv%NetBSD.org@localhost>
date:      Thu May 12 09:40:23 2016 +0000

description:
KNF, and reduce the diff between amd64 and i386.

diffstat:

 sys/arch/amd64/amd64/mptramp.S |   24 ++--
 sys/arch/i386/i386/mptramp.S   |  210 +++++++++++++++++++++-------------------
 2 files changed, 120 insertions(+), 114 deletions(-)

diffs (truncated from 418 to 300 lines):

diff -r 08abb800d518 -r f984ce052763 sys/arch/amd64/amd64/mptramp.S
--- a/sys/arch/amd64/amd64/mptramp.S    Thu May 12 09:05:16 2016 +0000
+++ b/sys/arch/amd64/amd64/mptramp.S    Thu May 12 09:40:23 2016 +0000
@@ -1,6 +1,6 @@
-/*     $NetBSD: mptramp.S,v 1.21 2016/05/11 19:35:08 maxv Exp $        */
+/*     $NetBSD: mptramp.S,v 1.22 2016/05/12 09:40:23 maxv Exp $        */
 
-/*-
+/*
  * Copyright (c) 2000, 2016 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
@@ -71,7 +71,7 @@
  *     1) Get the processors running kernel-code from a special
  *        page-table and stack page, do chip identification.
  *     2) halt the processors waiting for them to be enabled
- *        by a idle-thread 
+ *        by a idle-thread
  */
 
 #include "opt_mpbios.h"                /* for MPDEBUG */
@@ -84,10 +84,10 @@
 #include <machine/i82489reg.h>
 #include <machine/gdt.h>
 
-#define _RELOC(x)       ((x) - KERNBASE)
-#define RELOC(x)        _RELOC(_C_LABEL(x))
+#define _RELOC(x)      ((x) - KERNBASE)
+#define RELOC(x)       _RELOC(_C_LABEL(x))
 
-#define _TRMP_LABEL(a)  a = . - _C_LABEL(cpu_spinup_trampoline) + MP_TRAMPOLINE
+#define _TRMP_LABEL(a) a = . - _C_LABEL(cpu_spinup_trampoline) + MP_TRAMPOLINE
 
 #ifdef MPDEBUG
 /*
@@ -131,10 +131,10 @@
 #ifdef __clang__
        lgdt (mptramp_gdt32_desc)       /* load flat descriptor table */
 #else
-       data32 addr32 lgdt (mptramp_gdt32_desc)   /* load flat descriptor table */
+       data32 addr32 lgdt (mptramp_gdt32_desc) /* load flat descriptor table */
 #endif
        movl    %cr0, %eax      /* get cr0 */
-       orl     $0x1, %eax      /* enable protected mode */
+       orl     $CR0_PE, %eax   /* enable protected mode */
        movl    %eax, %cr0      /* doit */
        ljmpl   $0x8, $mp_startup
 
@@ -149,7 +149,7 @@
        movw    %ax, %gs
 
        /* bootstrap stack end, with scratch space.. */
-       movl    $(MP_TRAMPOLINE+NBPG-16),%esp
+       movl    $(MP_TRAMPOLINE+PAGE_SIZE-16),%esp
 
 #ifdef MPDEBUG
        leal    RELOC(cpu_trace),%edi
@@ -208,8 +208,8 @@
        ljmp    *(%eax)
 
 _TRMP_LABEL(mptramp_jmp64)
-       .long   mptramp_longmode
-       .word   GSEL(GCODE_SEL, SEL_KPL)
+       .long   mptramp_longmode
+       .word   GSEL(GCODE_SEL, SEL_KPL)
 
 #define GDT_LIMIT      0x17    /* 23 = 3 * 8 - 1 */
 _TRMP_LABEL(mptramp_gdt32)
@@ -237,8 +237,8 @@
 
 _C_LABEL(cpu_spinup_trampoline_end):   /* end of code copied to MP_TRAMPOLINE */
 
+       /* Don't touch lapic until BP has done init sequence. */
 1:
-       /* Don't touch lapic until BP has done init sequence. */
        movq    _C_LABEL(cpu_starting),%rdi
        pause
        testq   %rdi, %rdi
diff -r 08abb800d518 -r f984ce052763 sys/arch/i386/i386/mptramp.S
--- a/sys/arch/i386/i386/mptramp.S      Thu May 12 09:05:16 2016 +0000
+++ b/sys/arch/i386/i386/mptramp.S      Thu May 12 09:40:23 2016 +0000
@@ -1,13 +1,11 @@
-/*     $NetBSD: mptramp.S,v 1.27 2014/02/02 22:41:20 dsl Exp $ */
+/*     $NetBSD: mptramp.S,v 1.28 2016/05/12 09:40:23 maxv Exp $        */
 
-/*-
- * Copyright (c) 2000 The NetBSD Foundation, Inc.
+/*
+ * Copyright (c) 2000, 2016 The NetBSD Foundation, Inc.
  * All rights reserved.
  *
  * This code is derived from software contributed to The NetBSD Foundation
- * by RedBack Networks Inc.
- *
- * Author: Bill Sommerfeld
+ * by RedBack Networks Inc. (Author: Bill Sommerfeld), and Maxime Villard.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -30,7 +28,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  */
-       
+
 /*
  * Copyright (c) 1999 Stefan Grefen
  *
@@ -62,24 +60,25 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+
 /*
  * MP startup ...
- * the stuff from cpu_spinup_trampoline to mp_startup 
- * is copied into the first 640 KB
+ * the stuff from cpu_spinup_trampoline to mp_startup is copied into the
+ * first 640 KB.
  *
  * We startup the processors now when the kthreads become ready.
  * The steps are:
- *        1)   Get the processors running kernel-code from a special
- *                  page-table and stack page, do chip identification.
- *        2)   halt the processors waiting for them to be enabled
- *              by a idle-thread 
+ *     1) Get the processors running kernel-code from a special
+ *        page-table and stack page, do chip identification.
+ *     2) halt the processors waiting for them to be enabled
+ *        by a idle-thread
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: mptramp.S,v 1.27 2014/02/02 22:41:20 dsl Exp $");
-       
+__KERNEL_RCSID(0, "$NetBSD: mptramp.S,v 1.28 2016/05/12 09:40:23 maxv Exp $");
+
 #include "opt_mpbios.h"                /* for MPDEBUG */
-               
+
 #include "assym.h"
 #include <machine/specialreg.h>
 #include <machine/segments.h>
@@ -87,29 +86,34 @@
 #include <machine/i82489reg.h>
 #include <machine/gdt.h>
 
-#define GDTE(a,b)               .byte   0xff,0xff,0x0,0x0,0x0,a,b,0x0
-#define _RELOC(x)       ((x) - KERNBASE)
-#define RELOC(x)        _RELOC(_C_LABEL(x))
+#define GDTE(a,b)      .byte   0xff,0xff,0x0,0x0,0x0,a,b,0x0
+#define _RELOC(x)      ((x) - KERNBASE)
+#define RELOC(x)       _RELOC(_C_LABEL(x))
 
-#define _TRMP_LABEL(a)  a = . - _C_LABEL(cpu_spinup_trampoline) + MP_TRAMPOLINE
+#define _TRMP_LABEL(a) a = . - _C_LABEL(cpu_spinup_trampoline) + MP_TRAMPOLINE
 
 #ifdef MPDEBUG
-
 /*
  * Debug code to stop aux. processors in various stages based on the
  * value in cpu_trace.
  *
- * %edi points at cpu_trace;  cpu_trace[0] is the "hold point";
- * cpu_trace[1] is the point which the CPU has reached.
+ * %edi points at cpu_trace;
+ * cpu_trace[0] is the "hold point";
+ * cpu_trace[1] is the point which the CPU has reached;
  * cpu_trace[2] is the last value stored by HALTT.
  */
-
-#define HALT(x)        1: movl (%edi),%ebx;cmpl $ x,%ebx ; jle 1b ; movl $x,4(%edi)
-#define HALTT(x,y)     movl y,8(%edi); HALT(x)
+#define HALT(x) \
+1:     movl (%edi),%ebx        ;       \
+       cmpl $x,%ebx            ;       \
+       jle 1b                  ;       \
+       movl $x,4(%edi)         ;
+#define HALTT(x,y) \
+       movl y,8(%edi)          ;       \
+       HALT(x)                 ;
 #else
-#define HALT(x)        /**/
-#define HALTT(x,y) /**/
-#endif
+#define HALT(x)
+#define HALTT(x,y)
+#endif /* MPDEBUG */
 
        .global _C_LABEL(cpu_spinup_trampoline)
        .global _C_LABEL(cpu_spinup_trampoline_end)
@@ -121,52 +125,53 @@
 /* XXX ENTRY() */
 LABEL(cpu_spinup_trampoline)
        cli
-       xorw    %ax,%ax
-       movw    %ax, %ds
-       movw    %ax, %es
-       movw    %ax, %ss
+       xorw    %ax,%ax
+       movw    %ax,%ds
+       movw    %ax,%es
+       movw    %ax,%ss
 #ifdef __clang__
-       lgdt    (gdt_desc)      # load flat descriptor table
+       lgdt (gdt_desc)                 /* load flat descriptor table */
 #else
-       data32 addr32 lgdt    (gdt_desc)      # load flat descriptor table
+       data32 addr32 lgdt (gdt_desc)   /* load flat descriptor table */
 #endif
-       movl    %cr0, %eax      # get cr0
-       orl     $CR0_PE, %eax   # enable protected mode
-       movl    %eax, %cr0      # doit
-       ljmpl    $0x8, $mp_startup
+       movl    %cr0, %eax      /* get cr0 */
+       orl     $CR0_PE, %eax   /* enable protected mode */
+       movl    %eax, %cr0      /* doit */
+       ljmpl   $0x8, $mp_startup
 
 _TRMP_LABEL(mp_startup)
        .code32
 
-       movl    $0x10, %eax     # data segment
-       movw    %ax, %ds
-       movw    %ax, %ss
-       movw    %ax, %es
-       movw    %ax, %fs
-       movw    %ax, %gs
-       
-       movl    $ (MP_TRAMPOLINE+PAGE_SIZE-16),%esp  # bootstrap stack end,
-                                                    # with scratch space..
-       
+       movl    $0x10, %eax     /* data segment */
+       movw    %ax, %ds
+       movw    %ax, %ss
+       movw    %ax, %es
+       movw    %ax, %fs
+       movw    %ax, %gs
+
+       /* bootstrap stack end, with scratch space.. */
+       movl    $(MP_TRAMPOLINE+PAGE_SIZE-16),%esp
+
 #ifdef MPDEBUG
-       leal    RELOC(cpu_trace),%edi       
+       leal    RELOC(cpu_trace),%edi
 #endif
 
        HALT(0x1)
        /* First, reset the PSL. */
-       pushl   $PSL_MBO
+       pushl   $PSL_MBO
        popfl
-       
+
+       /* Enable PSE if available */
        movl    RELOC(pmap_largepages),%eax
        orl     %eax,%eax
-       jz      1f
+       jz      no_PSE
        movl    %cr4,%eax
        orl     $CR4_PSE,%eax
        movl    %eax,%cr4
+no_PSE:
 
-1:
-
-#ifdef PAE /* Enable PAE */
+#ifdef PAE
+       /* Enable PAE */
        movl    %cr4,%eax
        or      $CR4_PAE,%eax
        movl    %eax,%cr4
@@ -174,16 +179,15 @@
 
        movl    RELOC(mp_pdirpa),%ecx
        HALTT(0x5,%ecx)
-       
-        /* Load base of page directory and enable mapping. */
-        movl    %ecx,%cr3               # load ptd addr into mmu
-        movl    %cr0,%eax               # get control word
-                                        # enable paging & the fpu
-        orl     $(CR0_PE|CR0_PG|CR0_NE|CR0_TS|CR0_MP|CR0_WP|CR0_AM),%eax
-        movl    %eax,%cr0               # and page NOW!
+
+       /* Load base of page directory and enable mapping. */
+       movl    %ecx,%cr3               /* load PTD addr into MMU */
+       movl    %cr0,%eax
+       orl     $(CR0_PE|CR0_PG|CR0_NE|CR0_TS|CR0_MP|CR0_WP|CR0_AM),%eax
+       movl    %eax,%cr0
 
 #ifdef MPDEBUG
-       leal    _C_LABEL(cpu_trace),%edi
+       leal    _C_LABEL(cpu_trace),%edi
 #endif
        HALT(0x6)
 
@@ -211,81 +215,83 @@
        pause
        testl   %ecx, %ecx
        jz      1b



Home | Main Index | Thread Index | Old Index