summaryrefslogtreecommitdiff
path: root/sys/lib/libsa
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2013-01-01 18:49:34 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2013-01-01 18:49:34 +0000
commit941289471d328afe679e427f694c934e221df2d0 (patch)
treeb1228c49a93c84c8c56d8113c0bf5f88a7455d25 /sys/lib/libsa
parent01e445c6493d9e5dec71f221a69c8a6a8708c745 (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/Makefile4
-rw-r--r--sys/lib/libsa/exec.c179
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;
-}