diff options
Diffstat (limited to 'sys/arch/i386/stand/libsa/startprog.S')
-rw-r--r-- | sys/arch/i386/stand/libsa/startprog.S | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/sys/arch/i386/stand/libsa/startprog.S b/sys/arch/i386/stand/libsa/startprog.S deleted file mode 100644 index b8e248f561f..00000000000 --- a/sys/arch/i386/stand/libsa/startprog.S +++ /dev/null @@ -1,48 +0,0 @@ -/* $OpenBSD: startprog.S,v 1.4 1997/04/04 17:23:31 weingart Exp $ */ - -#include <machine/asm.h> - - -/* - * startprog(phyaddr, argv) - * start the program on protected mode where phyaddr is the entry point - */ -ENTRY(startprog) - pushl %ebp - movl %esp, %ebp - - # get things we need into registers - movl 8(%ebp), %ecx # entry offset - movl 12(%ebp), %eax # &argv - - # make a new stack at 0:0x90000 (big segs) - movl $0x10, %ebx - movw %bx, %ss - movl $0x90000, %ebx - movl %ebx, %esp - - # push some number of args onto the stack - pushl 28(%eax) # argv[7] = cnvmem - pushl 32(%eax) # argv[8] = extmem - pushl 16(%eax) # argv[4] = esym - pushl 12(%eax) # argv[3] = cyl offset - pushl 8(%eax) # argv[2] = bootdev - pushl 4(%eax) # argv[1] = howto - pushl $0 # dummy 'return' address - - # push on our entry address - movl $0x8, %ebx # segment - pushl %ebx - pushl %ecx - - # convert over the other data segs - movl $0x10, %ebx - movl %bx, %ds - movl %bx, %es - movl %bx, %ss - movl %bx, %fs - movl %bx, %gs - - # convert the PC (and code seg) - lret - |