Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/vax deprecate MD installboot in favour of MI instal...



details:   https://anonhg.NetBSD.org/src/rev/23cea8344b6f
branches:  trunk
changeset: 526946:23cea8344b6f
user:      lukem <lukem%NetBSD.org@localhost>
date:      Tue May 14 14:57:14 2002 +0000

description:
deprecate MD installboot in favour of MI installboot in /usr/sbin

diffstat:

 sys/arch/vax/Makefile                          |    4 +-
 sys/arch/vax/stand/installboot/Makefile        |    8 -
 sys/arch/vax/stand/installboot/installboot.c   |  341 -------------------------
 sys/arch/vax/stand/installboot/installboot.h   |    3 -
 sys/arch/vax/stand/installboot/loadbootstrap.c |  143 ----------
 5 files changed, 2 insertions(+), 497 deletions(-)

diffs (truncated from 522 to 300 lines):

diff -r 56ff0f4330e8 -r 23cea8344b6f sys/arch/vax/Makefile
--- a/sys/arch/vax/Makefile     Tue May 14 14:40:36 2002 +0000
+++ b/sys/arch/vax/Makefile     Tue May 14 14:57:14 2002 +0000
@@ -1,5 +1,5 @@
-#      $NetBSD: Makefile,v 1.4 2002/04/09 18:03:48 matt Exp $
+#      $NetBSD: Makefile,v 1.5 2002/05/14 14:57:14 lukem Exp $
 #
-SUBDIR=        include boot stand/installboot stand/pcs
+SUBDIR=        include boot stand/pcs
 
 .include <bsd.subdir.mk>
diff -r 56ff0f4330e8 -r 23cea8344b6f sys/arch/vax/stand/installboot/Makefile
--- a/sys/arch/vax/stand/installboot/Makefile   Tue May 14 14:40:36 2002 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# $NetBSD: Makefile,v 1.2 2002/03/29 00:58:38 matt Exp $
-
-PROG=  installboot
-SRCS=  installboot.c loadbootstrap.c
-
-.ifndef HOSTPROG
-.include <bsd.prog.mk>
-.endif
diff -r 56ff0f4330e8 -r 23cea8344b6f sys/arch/vax/stand/installboot/installboot.c
--- a/sys/arch/vax/stand/installboot/installboot.c      Tue May 14 14:40:36 2002 +0000
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,341 +0,0 @@
-/* $NetBSD: installboot.c,v 1.4 2002/05/14 06:34:20 lukem Exp $ */
-
-/*
- * Copyright (c) 1999 Ross Harvey.  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 Ross Harvey
- *     for the NetBSD Project.
- * 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.
- */
-
-/*
- * Copyright (c) 1999 Christopher G. Demetriou.  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 Christopher G. Demetriou
- *     for the NetBSD Project.
- * 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.
- */
-
-#include <sys/param.h>         /* XXX for roundup, howmany */
-#include <sys/stat.h>
-#include <sys/bootblock.h>
-#include <sys/disklabel.h>
-#include <isofs/cd9660/iso.h>
-#include <assert.h>
-#include <err.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "installboot.h"
-
-static void usage(void);
-static void clr_bootstrap(const char *disk);
-static void set_bootstrap(const char *disk, const char *bootstrap);
-static void set_sunsum(struct vax_boot_block *bb);
-
-int verbose, nowrite, append, isoblock, sunsum;
-struct stat disksb;
-
-static void
-usage()
-{
-       fprintf(stderr, "usage:\n");
-       fprintf(stderr, "\t%s [-nsv] [-i block | -a] disk bootstrap\n",
-           getprogname());
-       fprintf(stderr, "\t%s [-nsv] -c disk\n", getprogname());
-       exit(EXIT_FAILURE);
-}
-
-int
-main(int argc, char **argv)
-{
-       const char *disk, *bootstrap;
-       int c, clearflag;
-
-       clearflag = verbose = nowrite = append = isoblock = sunsum = 0;
-
-       while ((c = getopt(argc, argv, "aci:nsv")) != -1) {
-               switch (c) {
-               case 'a':
-                       /* Append to disk (image) */
-                       append = 1;
-                       break;
-               case 'c':
-                       /* Clear any existing boot block */
-                       clearflag = 1;
-                       break;
-               case 'i':
-                       /* Load bootstrap at iso block number */
-                       if ((isoblock = atoi(optarg)) <= 0)
-                               errx(1, "%s: bad iso block number", optarg);
-                       break;
-               case 'n':
-                       /* Do not actually write the boot file */
-                       nowrite = 1;
-                       break;
-               case 's':
-                       /* Recompute the sun checksum */
-                       sunsum = 1;
-                       break;
-               case 'v':
-                       /* Chat */
-                       verbose = 1;
-                       break;
-               default:
-                       usage();
-               }
-       }
-
-       argc -= optind;
-       argv += optind;
-
-       if ((clearflag && argc != 1) || (!clearflag && argc != 2))
-               usage();
-       if (append && isoblock)
-               usage();
-
-       disk = argv[0];
-       bootstrap = argv[1];            /* NULL if argc == 1 */
-
-       if (verbose) {
-               fprintf(stderr, "disk: %s\n", disk);
-               fprintf(stderr, "bootstrap: %s\n",
-                   bootstrap != NULL ? bootstrap : "to be cleared");
-               if (sunsum){fprintf(stderr, "will restore sun checksum\n");}
-       }
-       if (sizeof (struct vax_boot_block) != VAX_BOOT_BLOCK_BLOCKSIZE)
-               errx(EXIT_FAILURE,
-                   "boot_block structure badly sized (build error)");
-
-       if (append) {
-               /* Only append to a regular file */
-               if (stat(disk, &disksb) == -1)
-                       err(EXIT_FAILURE, "stat %s", disk);
-               if (!S_ISREG(disksb.st_mode))
-                       errx(EXIT_FAILURE, "%s must be a regular file to append to", bootstrap);
-       }
-
-       if (clearflag)
-               clr_bootstrap(disk);
-       else
-               set_bootstrap(disk, bootstrap);
-
-       exit(EXIT_SUCCESS);
-}
-
-static void
-clr_bootstrap(const char *disk)
-{
-       struct vax_boot_block bb;
-       ssize_t rv;
-       int diskfd;
-
-       if ((diskfd = open(disk, nowrite ? O_RDONLY : O_RDWR)) == -1)
-               err(EXIT_FAILURE, "open %s", disk);
-
-       rv = pread(diskfd, &bb, sizeof bb, VAX_BOOT_BLOCK_OFFSET);
-       if (rv == -1)
-               err(EXIT_FAILURE, "read %s", disk);
-       else if (rv != sizeof bb)
-               errx(EXIT_FAILURE, "read %s: short read", disk);
-
-       if (bb.bb_id_offset * 2 != offsetof(struct vax_boot_block, bb_magic1)
-           || bb.bb_magic1 != VAX_BOOT_MAGIC1) {
-               fprintf(stderr, "old boot block magic number invalid\n");
-               fprintf(stderr, "boot block invalid\n");
-               goto done;
-       }
-
-       bb.bb_id_offset = 1;
-       bb.bb_mbone = 0;
-       bb.bb_lbn_hi = 0;
-       bb.bb_lbn_low = 0;
-
-        /* restore sun checksum */
-       if (sunsum)
-               set_sunsum(&bb);
-
-       if (nowrite) {
-           if (verbose)
-                   fprintf(stderr, "not writing\n");
-           goto done;
-       }
-
-       if (verbose)
-               fprintf(stderr, "writing\n");
-       
-       rv = pwrite(diskfd, &bb, sizeof bb, VAX_BOOT_BLOCK_OFFSET);
-       if (rv == -1)
-               err(EXIT_FAILURE, "write %s", disk);
-       else if (rv != sizeof bb)
-               errx(EXIT_FAILURE, "write %s: short write", disk);
-
-done:
-       (void)close(diskfd);
-}
-
-static void
-set_bootstrap(const char *disk, const char *bootstrap)
-{
-       struct stat bootstrapsb;
-       struct vax_boot_block bb;
-       int diskfd, startblock;
-       char *bootstrapbuf;
-       size_t bootstrapsize;
-       u_int32_t bootstrapload, bootstrapexec;
-       ssize_t rv;
-
-       /* Open the input file and check it out */
-       if (stat(bootstrap, &bootstrapsb) == -1)
-               err(EXIT_FAILURE, "stat %s", bootstrap);
-       if (!S_ISREG(bootstrapsb.st_mode))
-               errx(EXIT_FAILURE, "%s must be a regular file", bootstrap);
-       load_bootstrap(bootstrap, &bootstrapbuf, &bootstrapload, &bootstrapexec,
-           &bootstrapsize);
-
-       if ((diskfd = open(disk, nowrite ? O_RDONLY : O_RDWR)) == -1)
-               err(EXIT_FAILURE, "open %s", disk);
-
-       rv = pread(diskfd, &bb, sizeof bb, VAX_BOOT_BLOCK_OFFSET);
-       if (rv == -1)
-               err(EXIT_FAILURE, "read %s", disk);
-       else if (rv != sizeof bb)
-               errx(EXIT_FAILURE, "read %s: short read", disk);
-
-       /* fill in the updated boot block fields */
-       if (append) {
-               startblock = howmany(disksb.st_size, VAX_BOOT_BLOCK_BLOCKSIZE);
-       } else if (isoblock) {
-               startblock = isoblock * (ISO_DEFAULT_BLOCK_SIZE / VAX_BOOT_BLOCK_BLOCKSIZE);
-       } else {
-               startblock = VAX_BOOT_BLOCK_OFFSET / VAX_BOOT_BLOCK_BLOCKSIZE + 1;
-       }
-
-       bb.bb_id_offset = offsetof(struct vax_boot_block, bb_magic1) / 2;
-       bb.bb_mbone = 1;
-       bb.bb_lbn_hi = htole16((u_int16_t) (startblock >> 16));
-       bb.bb_lbn_low = htole16((u_int16_t) (startblock >>  0));
-       /*
-        * Now the identification block
-        */
-       bb.bb_magic1 = VAX_BOOT_MAGIC1;
-       bb.bb_mbz1 = 0;
-       bb.bb_sum1 = ~(bb.bb_magic1 + bb.bb_mbz1 + bb.bb_pad1);
-
-       bb.bb_mbz2 = 0;



Home | Main Index | Thread Index | Old Index