commit-grub
[Top][All Lists]
Advanced

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

[2358] 2009-06-22 Robert Millan <address@hidden>


From: Robert Millan
Subject: [2358] 2009-06-22 Robert Millan <address@hidden>
Date: Mon, 22 Jun 2009 10:42:37 +0000

Revision: 2358
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2358
Author:   robertmh
Date:     2009-06-22 10:42:37 +0000 (Mon, 22 Jun 2009)
Log Message:
-----------
2009-06-22  Robert Millan  <address@hidden>

        * kern/i386/pc/startup.S (real_to_prot): Move from here ...
        * kern/i386/realmode.S (real_to_prot): ... to here.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/kern/i386/pc/startup.S
    trunk/grub2/kern/i386/realmode.S

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-06-22 10:27:26 UTC (rev 2357)
+++ trunk/grub2/ChangeLog       2009-06-22 10:42:37 UTC (rev 2358)
@@ -1,5 +1,10 @@
 2009-06-22  Robert Millan  <address@hidden>
 
+       * kern/i386/pc/startup.S (real_to_prot): Move from here ...
+       * kern/i386/realmode.S (real_to_prot): ... to here.
+
+2009-06-22  Robert Millan  <address@hidden>
+
        * conf/i386-ieee1275.rmk (pkglib_PROGRAMS): Replace `kernel.elf'
        with `kernel.img'.
        (kernel_elf_SOURCES): Rename to ...

Modified: trunk/grub2/kern/i386/pc/startup.S
===================================================================
--- trunk/grub2/kern/i386/pc/startup.S  2009-06-22 10:27:26 UTC (rev 2357)
+++ trunk/grub2/kern/i386/pc/startup.S  2009-06-22 10:42:37 UTC (rev 2358)
@@ -290,8 +290,6 @@
         */
        call EXT_C(grub_main)
 
-#include "../realmode.S"
-
 /*
  *  This is the area for all of the special variables.
  */
@@ -301,63 +299,8 @@
 
        .p2align        2       /* force 4-byte alignment */
 
-/*
- *  These next two routines, "real_to_prot" and "prot_to_real" are structured
- *  in a very specific way.  Be very careful when changing them.
- *
- *  NOTE:  Use of either one messes up %eax and %ebp.
- */
+#include "../realmode.S"
 
-real_to_prot:
-       .code16
-       cli
-
-       /* load the GDT register */
-#ifdef APPLE_CC
-       mov %cs, %ax
-       mov %ax, %ds
-       DATA32  ADDR32  lgdt    gdtdesc
-#else
-       DATA32  ADDR32  lgdt    %cs:gdtdesc
-#endif
-
-       /* turn on protected mode */
-       movl    %cr0, %eax
-       orl     $GRUB_MEMORY_MACHINE_CR0_PE_ON, %eax
-       movl    %eax, %cr0
-
-       /* jump to relocation, flush prefetch queue, and reload %cs */
-       DATA32  ljmp    $GRUB_MEMORY_MACHINE_PROT_MODE_CSEG, $protcseg
-
-       .code32
-protcseg:
-       /* reload other segment registers */
-       movw    $GRUB_MEMORY_MACHINE_PROT_MODE_DSEG, %ax
-       movw    %ax, %ds
-       movw    %ax, %es
-       movw    %ax, %fs
-       movw    %ax, %gs
-       movw    %ax, %ss
-
-       /* put the return address in a known safe location */
-       movl    (%esp), %eax
-       movl    %eax, GRUB_MEMORY_MACHINE_REAL_STACK
-
-       /* get protected mode stack */
-       movl    protstack, %eax
-       movl    %eax, %esp
-       movl    %eax, %ebp
-
-       /* get return address onto the right stack */
-       movl    GRUB_MEMORY_MACHINE_REAL_STACK, %eax
-       movl    %eax, (%esp)
-
-       /* zero %eax */
-       xorl    %eax, %eax
-
-       /* return on the old (or initialized) stack! */
-       ret
-
 /*
  * grub_gate_a20(int on)
  *

Modified: trunk/grub2/kern/i386/realmode.S
===================================================================
--- trunk/grub2/kern/i386/realmode.S    2009-06-22 10:27:26 UTC (rev 2357)
+++ trunk/grub2/kern/i386/realmode.S    2009-06-22 10:42:37 UTC (rev 2358)
@@ -110,12 +110,62 @@
        .long   gdt                     /* addr */
 
 /*
- *  These next routine, "prot_to_real" is structured in a very
- *  specific way.  Be very careful when changing it.
+ *  These next two routines, "real_to_prot" and "prot_to_real" are structured
+ *  in a very specific way.  Be very careful when changing them.
  *
- *  NOTE:  Use of it messes up %eax and %ebp.
+ *  NOTE:  Use of either one messes up %eax and %ebp.
  */
 
+real_to_prot:
+       .code16
+       cli
+
+       /* load the GDT register */
+#ifdef APPLE_CC
+       mov %cs, %ax
+       mov %ax, %ds
+       DATA32  ADDR32  lgdt    gdtdesc
+#else
+       DATA32  ADDR32  lgdt    %cs:gdtdesc
+#endif
+
+       /* turn on protected mode */
+       movl    %cr0, %eax
+       orl     $GRUB_MEMORY_MACHINE_CR0_PE_ON, %eax
+       movl    %eax, %cr0
+
+       /* jump to relocation, flush prefetch queue, and reload %cs */
+       DATA32  ljmp    $GRUB_MEMORY_MACHINE_PROT_MODE_CSEG, $protcseg
+
+       .code32
+protcseg:
+       /* reload other segment registers */
+       movw    $GRUB_MEMORY_MACHINE_PROT_MODE_DSEG, %ax
+       movw    %ax, %ds
+       movw    %ax, %es
+       movw    %ax, %fs
+       movw    %ax, %gs
+       movw    %ax, %ss
+
+       /* put the return address in a known safe location */
+       movl    (%esp), %eax
+       movl    %eax, GRUB_MEMORY_MACHINE_REAL_STACK
+
+       /* get protected mode stack */
+       movl    protstack, %eax
+       movl    %eax, %esp
+       movl    %eax, %ebp
+
+       /* get return address onto the right stack */
+       movl    GRUB_MEMORY_MACHINE_REAL_STACK, %eax
+       movl    %eax, (%esp)
+
+       /* zero %eax */
+       xorl    %eax, %eax
+
+       /* return on the old (or initialized) stack! */
+       ret
+
 prot_to_real:
        /* just in case, set GDT */
        lgdt    gdtdesc





reply via email to

[Prev in Thread] Current Thread [Next in Thread]