summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386/libi386/startprog.S
diff options
context:
space:
mode:
Diffstat (limited to 'sys/boot/i386/libi386/startprog.S')
-rw-r--r--sys/boot/i386/libi386/startprog.S120
1 files changed, 0 insertions, 120 deletions
diff --git a/sys/boot/i386/libi386/startprog.S b/sys/boot/i386/libi386/startprog.S
deleted file mode 100644
index 348341f..0000000
--- a/sys/boot/i386/libi386/startprog.S
+++ /dev/null
@@ -1,120 +0,0 @@
-/* $NetBSD: startprog.S,v 1.1.1.1 1997/03/14 02:40:33 perry Exp $ */
-
-/* starts program in protected mode / flat space
- with given stackframe
- needs global variables flatcodeseg and flatdataseg
- (gdt offsets)
- derivied from: NetBSD:sys/arch/i386/boot/asm.S
- */
-
-/*
- * Ported to boot 386BSD by Julian Elischer (julian@tfs.com) Sept 1992
- *
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- */
-
-/*
- Copyright 1988, 1989, 1990, 1991, 1992
- by Intel Corporation, Santa Clara, California.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-#include <machine/asm.h>
-
-/*
- * startprog(phyaddr,argc,argv,stack)
- * start the program on protected mode where phyaddr is the entry point
- */
-ENTRY(startprog)
- pushl %ebp
- movl %esp, %ebp
-
- # prepare a new stack
- movl $flatdataseg, %ebx
- movw %bx, %es # for arg copy
- movl 20(%ebp), %eax # stack
- subl $4,%eax
- movl %eax, %edi
-
- # push some number of args onto the stack
- movl 12(%ebp), %ecx # argc
-
- movl %ecx, %eax
- decl %eax
- shl $2, %eax
- addl 16(%ebp), %eax # ptr to last arg
- movl %eax, %esi
-
- std # backwards
- rep
- movsl
-
- cld # LynxOS depends on it
-
- movl 8(%ebp), %ecx # entry
-
- # set new stackptr (movsl decd sp 1 more -> dummy return address)
- movw %bx, %ss
- movl %edi, %esp
-
- # plug in a return address so that FreeBSD detects we are using
- # bootinfo
- movl $ourreturn, %eax
- movl %eax, (%esp)
-
- # push on our entry address
- movl $flatcodeseg, %ebx # segment
- pushl %ebx
- pushl %ecx #entry
-
- # convert over the other data segs
- movl $flatdataseg, %ebx
- movl %bx, %ds
- movl %bx, %es
-
- # convert the PC (and code seg)
- lret
-
-ourreturn:
- /* For now there is not much we can do, just lock in a loop */
- jmp ourreturn
-
OpenPOWER on IntegriCloud