diff options
Diffstat (limited to 'lib/csu/ns32k/crt0.c')
-rw-r--r-- | lib/csu/ns32k/crt0.c | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/lib/csu/ns32k/crt0.c b/lib/csu/ns32k/crt0.c deleted file mode 100644 index 1417a43b004..00000000000 --- a/lib/csu/ns32k/crt0.c +++ /dev/null @@ -1,118 +0,0 @@ -/* $OpenBSD: crt0.c,v 1.4 2001/08/12 12:03:01 heko Exp $ */ -/* $NetBSD: crt0.c,v 1.7 1995/06/03 13:16:15 pk Exp $ */ -/* - * Copyright (c) 1993 Paul Kranenburg - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Paul Kranenburg. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: crt0.c,v 1.4 2001/08/12 12:03:01 heko Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include <sys/param.h> -#include <stdlib.h> - -#include "common.h" - -extern void start __P((long)) asm("start"); - -void -start(param) - long param; -{ - struct kframe { - int kargc; - char *kargv[1]; /* size depends on kargc */ - char kargstr[1]; /* size varies */ - char kenvstr[1]; /* size varies */ - }; - /* - * ALL REGISTER VARIABLES!!! - */ - register struct kframe *kfp; - register char **argv, *ap; - - /* just above the saved frame pointer */ - kfp = (struct kframe *) (¶m-1); - argv = &kfp->kargv[0]; - environ = argv + kfp->kargc + 1; - - if (ap = argv[0]) - if ((__progname = _strrchr(ap, '/')) == NULL) - __progname = ap; - else - ++__progname; - -#ifdef DYNAMIC - /* ld(1) convention: if DYNAMIC = 0 then statically linked */ -#ifdef stupid_gcc - if (&_DYNAMIC) -#else - if ( ({volatile caddr_t x = (caddr_t)&_DYNAMIC; x; }) ) -#endif - __load_rtld(&_DYNAMIC); -#endif /* DYNAMIC */ - -asm("eprol:"); - -#ifdef MCRT0 - atexit(_mcleanup); - monstartup((u_long)&eprol, (u_long)&etext); -#endif /* MCRT0 */ - -asm ("__callmain:"); /* Defined for the benefit of debuggers */ - exit(main(kfp->kargc, argv, environ)); -} - -#ifdef DYNAMIC - asm(" ___syscall:"); - asm(" movd tos,r1"); /* return address */ - asm(" movd tos,r0"); /* syscall number */ - asm(" movd r1,tos"); - asm(" svc"); /* do system call */ - asm(" bcc 1f"); /* check error */ - asm(" movqd -1,r0"); - asm(" 1: jump 0(0(sp))"); /* return */ - -#ifndef ntohl - asm(" _ntohl: movd 4(sp),r0"); - asm(" rotw 8,r0"); - asm(" rotd 16,r0"); - asm(" rotw 8,r0"); - asm(" ret 0"); -#endif - -#endif /* DYNAMIC */ - -#include "common.c" - -#ifdef MCRT0 -asm (" .text"); -asm ("_eprol:"); -#endif |