diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2013-01-01 18:49:34 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2013-01-01 18:49:34 +0000 |
commit | 941289471d328afe679e427f694c934e221df2d0 (patch) | |
tree | b1228c49a93c84c8c56d8113c0bf5f88a7455d25 /sys/lib/libsa | |
parent | 01e445c6493d9e5dec71f221a69c8a6a8708c745 (diff) |
Remove libsa exec.c, not used by anything anymore; all boot blocks now use
loadfile or a derivative of.
Diffstat (limited to 'sys/lib/libsa')
-rw-r--r-- | sys/lib/libsa/Makefile | 4 | ||||
-rw-r--r-- | sys/lib/libsa/exec.c | 179 |
2 files changed, 2 insertions, 181 deletions
diff --git a/sys/lib/libsa/Makefile b/sys/lib/libsa/Makefile index 60016db30b2..88113b81ff1 100644 --- a/sys/lib/libsa/Makefile +++ b/sys/lib/libsa/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.23 2013/01/01 00:58:25 miod Exp $ +# $OpenBSD: Makefile,v 1.24 2013/01/01 18:49:33 miod Exp $ # $NetBSD: Makefile,v 1.13 1996/10/02 16:19:51 ws Exp $ LIB= sa @@ -24,7 +24,7 @@ CPPFLAGS+= -D__INTERNAL_LIBSA_CREAD .endif # stand routines -SRCS+= alloc.c memcpy.c exit.c exec.c getfile.c gets.c globals.c \ +SRCS+= alloc.c memcpy.c exit.c getfile.c gets.c globals.c \ printf.c snprintf.c strerror.c strcmp.c memset.c memcmp.c \ strncpy.c strncmp.c strchr.c diff --git a/sys/lib/libsa/exec.c b/sys/lib/libsa/exec.c deleted file mode 100644 index a013ace34fd..00000000000 --- a/sys/lib/libsa/exec.c +++ /dev/null @@ -1,179 +0,0 @@ -/* $OpenBSD: exec.c,v 1.26 2003/08/11 06:23:09 deraadt Exp $ */ -/* $NetBSD: exec.c,v 1.15 1996/10/13 02:29:01 christos Exp $ */ - -/*- - * Copyright (c) 1982, 1986, 1990, 1993 - * The Regents of the University of California. 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. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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. - */ - -#include <sys/param.h> -#include <sys/exec.h> -#include <sys/reboot.h> -#ifndef INSECURE -#include <sys/stat.h> -#endif - -#include "stand.h" - -static char *ssym, *esym; - -extern u_int opendev; - -void -exec(char *path, void *loadaddr, int howto) -{ - int io; -#ifndef INSECURE - struct stat sb; -#endif - struct exec x; - u_int i; - ssize_t sz; - char *addr; -#ifdef EXEC_DEBUG - char *daddr, *etxt; -#endif - - io = open(path, 0); - if (io < 0) - return; - - (void) fstat(io, &sb); - if (sb.st_mode & 2) - printf("non-secure file, check permissions!\n"); - - sz = read(io, (char *)&x, sizeof(x)); - if (sz != sizeof(x) || N_BADMAG(x)) { - close(io); - errno = EFTYPE; - return; - } - -#ifdef EXEC_DEBUG - printf("\nstruct exec {%x, %x, %x, %x, %x, %x, %x, %x}\n", - x.a_midmag, x.a_text, x.a_data, x.a_bss, x.a_syms, - x.a_entry, x.a_trsize, x.a_drsize); -#endif - - /* Text */ - printf("%u", x.a_text); - addr = loadaddr; - sz = x.a_text; - if (N_GETMAGIC(x) == ZMAGIC) { - bcopy((char *)&x, addr, sizeof x); - addr += sizeof x; - sz -= sizeof x; - } - if (read(io, (char *)addr, sz) != sz) - goto shread; - addr += sz; -#ifdef EXEC_DEBUG - printf("\ntext {%x, %x, %x, %x}\n", - addr[0], addr[1], addr[2], addr[3]); - etxt = addr; -#endif - if (N_GETMAGIC(x) == NMAGIC) - while ((long)addr & (N_PAGSIZ(x) - 1)) - *addr++ = 0; - - /* Data */ -#ifdef EXEC_DEBUG - daddr = addr; -#endif - printf("+%u", x.a_data); - if (read(io, addr, x.a_data) != (ssize_t)x.a_data) - goto shread; - addr += x.a_data; - - /* Bss */ - printf("+%u", x.a_bss); - for (i = 0; i < x.a_bss; i++) - *addr++ = 0; - - /* Symbols */ - if (x.a_syms) { - ssym = addr; - bcopy(&x.a_syms, addr, sizeof(x.a_syms)); - addr += sizeof(x.a_syms); - printf("+[%u", x.a_syms); - if (read(io, addr, x.a_syms) != (ssize_t)x.a_syms) - goto shread; - addr += x.a_syms; - - if (read(io, &i, sizeof(u_int)) != sizeof(u_int)) - goto shread; - - bcopy(&i, addr, sizeof(u_int)); - if (i) { - sz = i - sizeof(int); - addr += sizeof(int); - if (read(io, addr, sz) != sz) - goto shread; - addr += sz; - } - - /* and that many bytes of string table */ - printf("+%d]", sz); - esym = addr; - } else { - ssym = 0; - esym = 0; - } - - close(io); - - /* and note the end address of all this */ - printf(" total=0x%lx", (u_long)addr); - -/* XXX - Hack alert! - This is no good, loadaddr is passed into - machdep_start(), and it should do whatever - is needed. - - x.a_entry += (long)loadaddr; -*/ - printf(" start=0x%x\n", x.a_entry); - -#ifdef EXEC_DEBUG - printf("loadaddr=%p etxt=%p daddr=%p ssym=%p esym=%p\n", - loadaddr, etxt, daddr, ssym, esym); - printf("\n\nReturn to boot...\n"); - getchar(); -#endif - - machdep_start((char *)((register_t)x.a_entry), howto, loadaddr, ssym, - esym); - - /* exec failed */ - errno = ENOEXEC; - return; - -shread: - close(io); - errno = EIO; - return; -} |