Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/pmax/stand/boot Remove old (not-enabled) local supp...



details:   https://anonhg.NetBSD.org/src/rev/04516314d60b
branches:  trunk
changeset: 467512:04516314d60b
user:      simonb <simonb%NetBSD.org@localhost>
date:      Thu Mar 25 12:16:04 1999 +0000

description:
Remove old (not-enabled) local support for loading kernels.

diffstat:

 sys/arch/pmax/stand/boot/boot.c |  135 +---------------------------------------
 1 files changed, 3 insertions(+), 132 deletions(-)

diffs (185 lines):

diff -r 93f5f03b4a13 -r 04516314d60b sys/arch/pmax/stand/boot/boot.c
--- a/sys/arch/pmax/stand/boot/boot.c   Thu Mar 25 12:11:41 1999 +0000
+++ b/sys/arch/pmax/stand/boot/boot.c   Thu Mar 25 12:16:04 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: boot.c,v 1.1 1999/03/25 12:11:41 simonb Exp $  */
+/*     $NetBSD: boot.c,v 1.2 1999/03/25 12:16:04 simonb Exp $  */
 
 /*
  * Copyright (c) 1992, 1993
@@ -38,8 +38,6 @@
  *     @(#)boot.c      8.1 (Berkeley) 6/10/93
  */
 
-#undef OLD_LOADFILE    /* XXX */
-
 #define PMAX_BOOT_AOUT
 #define PMAX_BOOT_ECOFF
 #define PMAX_BOOT_ELF
@@ -50,12 +48,9 @@
 #include <stand.h>
 #include <machine/dec_prom.h>
 
-#ifndef OLD_LOADFILE
-#include "loadfile.h"
-#endif
-
 #include "bootinfo.h"
 #include "byteswap.h"
+#include "loadfile.h"
 
 int    errno;
 extern char bootprog_name[], bootprog_rev[], bootprog_date[], bootprog_maker[];
@@ -75,10 +70,8 @@
 {
        register char *cp;
        int entry;
-#ifndef OLD_LOADFILE
        u_long marks[MARK_MAX];
        struct btinfo_symtab bi_syms;
-#endif
        struct btinfo_bootpath bi_bpath;
 
        /* initialise bootinfo structure early */
@@ -96,11 +89,7 @@
        printf("Boot: %s\n", cp);
        strncpy(bi_bpath.bootpath, cp, BTINFO_BOOTPATH_LEN);
        bi_add(&bi_bpath, BTINFO_BOOTPATH, sizeof(bi_bpath));
-#ifdef OLD_LOADFILE
-       entry = loadfile(cp);
-       if (entry == -1)
-               return 0;
-#else
+
        marks[MARK_START] = 0;
        if (loadfile(cp, marks, LOAD_ALL) == -1)
                return 0;
@@ -109,7 +98,6 @@
        bi_syms.ssym = marks[MARK_SYM];
        bi_syms.esym = marks[MARK_END];
        bi_add(&bi_syms, BTINFO_SYMTAB, sizeof(bi_syms));
-#endif
 
        printf("Starting at 0x%x\n\n", entry);
        if (callv == &callvec)
@@ -119,120 +107,3 @@
                startprog(entry, entry, argc, argv, DEC_PROM_MAGIC,
                    callv, BOOTINFO_MAGIC, BOOTINFO_ADDR);
 }
-
-#ifdef OLD_LOADFILE
-/*
- * Open 'filename', read in program and return the entry point or -1 if error.
- */
-loadfile(fname)
-       register char *fname;
-{
-       register struct devices *dp;
-       register int fd, i, n;
-       union {
-#ifdef PMAX_BOOT_ELF
-               Elf32_Ehdr ehdr;
-#endif
-#ifdef PMAX_BOOT_AOUT
-               struct exec aout;
-#endif
-       } hdr;
-
-       if ((fd = open(fname, 0)) < 0) {
-               printf("open(%s) failed: %d\n", fname, errno);
-               goto err;
-       }
-
-       /* read the exec header */
-       i = read(fd, (char *)&hdr, sizeof(hdr));
-       if (i != sizeof(hdr)) {
-               printf("short header\n");
-               goto cerr;
-       }
-#ifdef PMAX_BOOT_ELF
-       if (bcmp(hdr.ehdr.e_ident, Elf32_e_ident, Elf32_e_siz) == 0) {
-               int first;
-               Elf32_Phdr phdr;
-               printf("Elfboot: [");
-               for (i = 0, first=1; i < hdr.ehdr.e_phnum; ++i) {
-                       if (lseek(fd, (off_t) hdr.ehdr.e_phoff + i *  sizeof(phdr),  0) < 0)
-                               goto cerr;
-                       if (read(fd, &phdr, sizeof(phdr)) != sizeof(phdr))
-                               goto cerr;
-                       if (phdr.p_type != Elf_pt_load)
-                               continue;
-                       if (lseek(fd, (off_t)phdr.p_offset, 0) < 0)
-                               goto cerr;
-                       printf("%d+", phdr.p_filesz);
-                       if (read(fd, (char *)phdr.p_paddr, phdr.p_filesz) != phdr.p_filesz)
-                               goto cerr;
-                       if (!first && phdr.p_filesz != phdr.p_memsz)
-                               printf("%d]\n", phdr.p_memsz - phdr.p_filesz);
-                       first = 0;
-               }
-               return (hdr.ehdr.e_entry);
-       } else
-#endif
-#ifdef PMAX_BOOT_AOUT
-       if ((N_GETMAGIC(hdr.aout) == OMAGIC)
-                  || (hdr.aout.a_midmag & 0xfff) == OMAGIC) {
-               char *buf;
-
-               /* read the code ... */
-               printf("Size: %d", hdr.aout.a_text);
-               /* In an OMAGIC file, we're already there. */
-               if (lseek(fd, (off_t)N_TXTOFF(hdr.aout), 0) < 0) {
-                       goto cerr;
-               }
-               n = read(fd, buf = (char *)hdr.aout.a_entry, hdr.aout.a_text);
-               /* ... and initialized data */
-               printf("+%d", hdr.aout.a_data);
-               n += read(fd, buf + hdr.aout.a_text, hdr.aout.a_data);
-               i = hdr.aout.a_text + hdr.aout.a_data;
-
-               if (hdr.aout.a_syms) {
-                       /*
-                        * Copy exec header to start of bss.
-                        * Load symbols into end + sizeof(int).
-                        */
-                       memcpy(buf += i, (char *)&hdr.aout, sizeof(hdr.aout));
-                       printf("+[%d", hdr.aout.a_syms + 4);
-                       n += read(fd, buf += hdr.aout.a_bss + 4, hdr.aout.a_syms + 4);
-                       i += hdr.aout.a_syms + 4;
-                       buf += hdr.aout.a_syms;
-                       /* printf("+%d]", *(long *)buf); */
-                       n += read(fd, buf + 4, *(long *)buf);
-                       i += *(long *)buf;
-               }
-#ifndef UFS_NOCLOSE
-               (void) close(fd);
-#endif
-               if (n < 0) {
-                       printf("read error %d\n", errno);
-                       goto err;
-               } else if (n != i) {
-                       printf("read() short %d bytes\n", i - n);
-                       goto err;
-                       
-               }
-
-               /* kernel will zero out its own bss */
-               n = hdr.aout.a_bss;
-               printf("+%d\n", n);
-
-               return ((int)hdr.aout.a_entry);
-       } else
-#endif
-       {
-               printf("%s: Unknown executable format\n", fname);
-       }
-
-cerr:
-#ifndef UFS_NOCLOSE
-       (void) close(fd);
-#endif
-err:
-       printf("Can't boot '%s'\n", fname);
-       return (-1);
-}
-#endif



Home | Main Index | Thread Index | Old Index