Release the old a.out-only boot loader into freedom.
authorSascha Wildner <swildner@dragonflybsd.org>
Sat, 26 Feb 2005 11:26:03 +0000 (11:26 +0000)
committerSascha Wildner <swildner@dragonflybsd.org>
Sat, 26 Feb 2005 11:26:03 +0000 (11:26 +0000)
138 files changed:
sys/i386/boot/Makefile [deleted file]
sys/i386/boot/Makefile.inc [deleted file]
sys/i386/boot/biosboot/Makefile [deleted file]
sys/i386/boot/biosboot/README.386BSD [deleted file]
sys/i386/boot/biosboot/README.MACH [deleted file]
sys/i386/boot/biosboot/README.serial [deleted file]
sys/i386/boot/biosboot/asm.S [deleted file]
sys/i386/boot/biosboot/asm.h [deleted file]
sys/i386/boot/biosboot/bios.S [deleted file]
sys/i386/boot/biosboot/boot.c [deleted file]
sys/i386/boot/biosboot/boot.h [deleted file]
sys/i386/boot/biosboot/boot.help [deleted file]
sys/i386/boot/biosboot/boot2.S [deleted file]
sys/i386/boot/biosboot/disk.c [deleted file]
sys/i386/boot/biosboot/io.c [deleted file]
sys/i386/boot/biosboot/probe_keyboard.c [deleted file]
sys/i386/boot/biosboot/serial.S [deleted file]
sys/i386/boot/biosboot/start.S [deleted file]
sys/i386/boot/biosboot/sys.c [deleted file]
sys/i386/boot/biosboot/table.c [deleted file]
sys/i386/boot/cdboot/Makefile [deleted file]
sys/i386/boot/cdboot/asm.S [deleted file]
sys/i386/boot/cdboot/boot.c [deleted file]
sys/i386/boot/cdboot/boot.h [deleted file]
sys/i386/boot/cdboot/cdrom.c [deleted file]
sys/i386/boot/cdboot/malloc.c [deleted file]
sys/i386/boot/dosboot/Makefile [deleted file]
sys/i386/boot/dosboot/ansi.h [deleted file]
sys/i386/boot/dosboot/boot.c [deleted file]
sys/i386/boot/dosboot/boot.h [deleted file]
sys/i386/boot/dosboot/bootinfo.h [deleted file]
sys/i386/boot/dosboot/cdefs.h [deleted file]
sys/i386/boot/dosboot/dinode.h [deleted file]
sys/i386/boot/dosboot/dir.h [deleted file]
sys/i386/boot/dosboot/dirent.h [deleted file]
sys/i386/boot/dosboot/disk.c [deleted file]
sys/i386/boot/dosboot/disklabe.h [deleted file]
sys/i386/boot/dosboot/dosboot.c [deleted file]
sys/i386/boot/dosboot/dosboot.h [deleted file]
sys/i386/boot/dosboot/endian.h [deleted file]
sys/i386/boot/dosboot/exec.h [deleted file]
sys/i386/boot/dosboot/fbsdboot.c [deleted file]
sys/i386/boot/dosboot/fbsdboot.exe.uu [deleted file]
sys/i386/boot/dosboot/fbsdboot.mak [deleted file]
sys/i386/boot/dosboot/fs.h [deleted file]
sys/i386/boot/dosboot/imgact.h [deleted file]
sys/i386/boot/dosboot/inode.h [deleted file]
sys/i386/boot/dosboot/mexec.h [deleted file]
sys/i386/boot/dosboot/param.h [deleted file]
sys/i386/boot/dosboot/protmod.c [deleted file]
sys/i386/boot/dosboot/protmod.h [deleted file]
sys/i386/boot/dosboot/quota.h [deleted file]
sys/i386/boot/dosboot/readme [deleted file]
sys/i386/boot/dosboot/reboot.h [deleted file]
sys/i386/boot/dosboot/sys.c [deleted file]
sys/i386/boot/dosboot/syslimit.h [deleted file]
sys/i386/boot/dosboot/sysparam.h [deleted file]
sys/i386/boot/dosboot/types.h [deleted file]
sys/i386/boot/kzipboot/Makefile [deleted file]
sys/i386/boot/kzipboot/README [deleted file]
sys/i386/boot/kzipboot/boot.c [deleted file]
sys/i386/boot/kzipboot/gzip.h [deleted file]
sys/i386/boot/kzipboot/head.S [deleted file]
sys/i386/boot/kzipboot/malloc.c [deleted file]
sys/i386/boot/kzipboot/misc.c [deleted file]
sys/i386/boot/kzipboot/tail.S [deleted file]
sys/i386/boot/kzipboot/unzip.c [deleted file]
sys/i386/boot/rawboot/Makefile [deleted file]
sys/i386/boot/rawboot/README [deleted file]
sys/platform/pc32/boot/Makefile [deleted file]
sys/platform/pc32/boot/Makefile.inc [deleted file]
sys/platform/pc32/boot/biosboot/Makefile [deleted file]
sys/platform/pc32/boot/biosboot/README.386BSD [deleted file]
sys/platform/pc32/boot/biosboot/README.MACH [deleted file]
sys/platform/pc32/boot/biosboot/README.serial [deleted file]
sys/platform/pc32/boot/biosboot/asm.S [deleted file]
sys/platform/pc32/boot/biosboot/asm.h [deleted file]
sys/platform/pc32/boot/biosboot/bios.S [deleted file]
sys/platform/pc32/boot/biosboot/boot.c [deleted file]
sys/platform/pc32/boot/biosboot/boot.h [deleted file]
sys/platform/pc32/boot/biosboot/boot.help [deleted file]
sys/platform/pc32/boot/biosboot/boot2.S [deleted file]
sys/platform/pc32/boot/biosboot/disk.c [deleted file]
sys/platform/pc32/boot/biosboot/io.c [deleted file]
sys/platform/pc32/boot/biosboot/probe_keyboard.c [deleted file]
sys/platform/pc32/boot/biosboot/serial.S [deleted file]
sys/platform/pc32/boot/biosboot/start.S [deleted file]
sys/platform/pc32/boot/biosboot/sys.c [deleted file]
sys/platform/pc32/boot/biosboot/table.c [deleted file]
sys/platform/pc32/boot/cdboot/Makefile [deleted file]
sys/platform/pc32/boot/cdboot/asm.S [deleted file]
sys/platform/pc32/boot/cdboot/boot.c [deleted file]
sys/platform/pc32/boot/cdboot/boot.h [deleted file]
sys/platform/pc32/boot/cdboot/cdrom.c [deleted file]
sys/platform/pc32/boot/cdboot/malloc.c [deleted file]
sys/platform/pc32/boot/dosboot/Makefile [deleted file]
sys/platform/pc32/boot/dosboot/ansi.h [deleted file]
sys/platform/pc32/boot/dosboot/boot.c [deleted file]
sys/platform/pc32/boot/dosboot/boot.h [deleted file]
sys/platform/pc32/boot/dosboot/bootinfo.h [deleted file]
sys/platform/pc32/boot/dosboot/cdefs.h [deleted file]
sys/platform/pc32/boot/dosboot/dinode.h [deleted file]
sys/platform/pc32/boot/dosboot/dir.h [deleted file]
sys/platform/pc32/boot/dosboot/dirent.h [deleted file]
sys/platform/pc32/boot/dosboot/disk.c [deleted file]
sys/platform/pc32/boot/dosboot/disklabe.h [deleted file]
sys/platform/pc32/boot/dosboot/dosboot.c [deleted file]
sys/platform/pc32/boot/dosboot/dosboot.h [deleted file]
sys/platform/pc32/boot/dosboot/endian.h [deleted file]
sys/platform/pc32/boot/dosboot/exec.h [deleted file]
sys/platform/pc32/boot/dosboot/fbsdboot.c [deleted file]
sys/platform/pc32/boot/dosboot/fbsdboot.exe.uu [deleted file]
sys/platform/pc32/boot/dosboot/fbsdboot.mak [deleted file]
sys/platform/pc32/boot/dosboot/fs.h [deleted file]
sys/platform/pc32/boot/dosboot/imgact.h [deleted file]
sys/platform/pc32/boot/dosboot/inode.h [deleted file]
sys/platform/pc32/boot/dosboot/mexec.h [deleted file]
sys/platform/pc32/boot/dosboot/param.h [deleted file]
sys/platform/pc32/boot/dosboot/protmod.c [deleted file]
sys/platform/pc32/boot/dosboot/protmod.h [deleted file]
sys/platform/pc32/boot/dosboot/quota.h [deleted file]
sys/platform/pc32/boot/dosboot/readme [deleted file]
sys/platform/pc32/boot/dosboot/reboot.h [deleted file]
sys/platform/pc32/boot/dosboot/sys.c [deleted file]
sys/platform/pc32/boot/dosboot/syslimit.h [deleted file]
sys/platform/pc32/boot/dosboot/sysparam.h [deleted file]
sys/platform/pc32/boot/dosboot/types.h [deleted file]
sys/platform/pc32/boot/kzipboot/Makefile [deleted file]
sys/platform/pc32/boot/kzipboot/README [deleted file]
sys/platform/pc32/boot/kzipboot/boot.c [deleted file]
sys/platform/pc32/boot/kzipboot/gzip.h [deleted file]
sys/platform/pc32/boot/kzipboot/head.S [deleted file]
sys/platform/pc32/boot/kzipboot/malloc.c [deleted file]
sys/platform/pc32/boot/kzipboot/misc.c [deleted file]
sys/platform/pc32/boot/kzipboot/tail.S [deleted file]
sys/platform/pc32/boot/kzipboot/unzip.c [deleted file]
sys/platform/pc32/boot/rawboot/Makefile [deleted file]
sys/platform/pc32/boot/rawboot/README [deleted file]

diff --git a/sys/i386/boot/Makefile b/sys/i386/boot/Makefile
deleted file mode 100644 (file)
index 6ee422b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# $FreeBSD: src/sys/i386/boot/Makefile,v 1.31.2.1 2001/05/08 20:53:39 luigi Exp $
-# $DragonFly: src/sys/i386/boot/Attic/Makefile,v 1.2 2003/06/17 04:28:34 dillon Exp $
-
-SUBDIR=        cdboot dosboot kzipboot rawboot
-
-.include <bsd.subdir.mk>
diff --git a/sys/i386/boot/Makefile.inc b/sys/i386/boot/Makefile.inc
deleted file mode 100644 (file)
index 6a370e9..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# $FreeBSD: src/sys/i386/boot/Makefile.inc,v 1.6 1999/08/28 00:43:08 peter Exp $
-# $DragonFly: src/sys/i386/boot/Attic/Makefile.inc,v 1.2 2003/06/17 04:28:34 dillon Exp $
-
-BINDIR?=       /usr/mdec
-CFLAGS+=       -aout
-.if exists(${.CURDIR}/../../../../include)
-CFLAGS+=       -nostdinc -I${.CURDIR}/../../../../include
-.endif
-CFLAGS+=       -I${.CURDIR}/../../.. -I${.OBJDIR}
-CLEANFILES+=   machine
-
-.if defined(SRCS)
-${SRCS:M*.[sS]:R:S/$/.o/g} ${SRCS:M*.c:R:S/$/.o/g}: machine
-${SRCS:M*.cc:R:S/$/.o/g}   ${SRCS:M*.C:R:S/$/.o/g}: machine
-${SRCS:M*.cxx:R:S/$/.o/g}  ${SRCS:N*.h:R:S/$/.o/g}: machine
-.endif
-.if defined(OBJS)
-${OBJS}: machine
-.endif
-
-beforedepend: machine
-machine:
-       ln -s ${.CURDIR}/../../include ${.OBJDIR}/machine
diff --git a/sys/i386/boot/biosboot/Makefile b/sys/i386/boot/biosboot/Makefile
deleted file mode 100644 (file)
index e99d134..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-# $FreeBSD: src/sys/i386/boot/biosboot/Makefile,v 1.70.2.2 2002/08/07 16:31:55 ru Exp $
-# $DragonFly: src/sys/i386/boot/biosboot/Attic/Makefile,v 1.3 2003/11/15 19:01:31 dillon Exp $
-#
-
-PROG=  boot
-# Order is very important on the SRCS line for this prog
-SRCS=  start.S table.c boot2.S boot.c asm.S bios.S serial.S
-SRCS+=  probe_keyboard.c io.c disk.c sys.c
-
-BINMODE=       444
-CFLAGS=                -O2 -malign-functions=0 -malign-jumps=0 -malign-loops=0 \
-               -DBOOTWAIT=${BOOTWAIT} -DTIMEOUT=${TIMEOUT}
-CFLAGS+=       -DBOOTSEG=${BOOTSEG} -DBOOTSTACK=${BOOTSTACK}
-CFLAGS+=       ${CWARNFLAGS}
-
-# By default, if a serial port is going to be used as console, use COM1
-# (aka /dev/ttyd0).
-BOOT_COMCONSOLE_PORT?=0x3F8
-CFLAGS+=       -DCOMCONSOLE=${BOOT_COMCONSOLE_PORT}
-
-BOOT_COMCONSOLE_SPEED?=9600
-CFLAGS+=       -DCONSPEED=${BOOT_COMCONSOLE_SPEED}
-
-# Enable code to take the default boot string from a fixed location on the
-# disk.  See nextboot(8) and README.386BSD for more info.
-#CFLAGS+=      -DNAMEBLOCK
-#CFLAGS+=      -DNAMEBLOCK_WRITEBACK
-
-# Bias the conversion from the BIOS drive number to the FreeBSD unit number
-# for hard disks.  This may be useful for people booting in a mixed IDE/SCSI
-# environment (set BOOT_HD_BIAS to the number of IDE drives).
-#CFLAGS+=      -DBOOT_HD_BIAS=1
-#
-# Details: this only applies if BOOT_HD_BIAS > 0.  If the BIOS drive number
-# for the boot drive is >= BOOT_HD_BIAS, then the boot drive is assumed to
-# be SCSI and have unit number (BIOS_drive_number - BOOT_HD_BIAS).  E.g.,
-# BOOT_HD_BIAS=1 makes BIOS drive 1 correspond to 1:da(0,a) instead of
-# 1:wd(1,a).  If `da' is given explicitly, then the drive is assumed to be
-# SCSI and have BIOS drive number (da_unit_number + BOOT_HD_BIAS).  E.g.,
-# BOOT_HD_BIAS=1 makes da(0,a) correspond to 1:da(0,a) instead of 0:da(0,a).
-
-CLEANFILES+=   boot.nohdr boot.strip boot1 boot2 sizetest
-LDFLAGS+=      -N -T 0 -nostdlib
-NOSHARED=      YES
-NOMAN=
-STRIP=
-
-# tunable timeout parameter, waiting for keypress, calibrated in ms
-BOOTWAIT?=     5000
-# tunable timeout during string input, calibrated in ms
-#TIMEOUT?=     30000
-
-# Location that boot2 is loaded at
-BOOTSEG=       0x1000
-
-# Offset in BOOTSEG for the top of the stack, keep this 16 byte aligned
-BOOTSTACK=     0xFFF0
-
-boot.strip:    boot
-       cp -p boot boot.strip
-       strip -aout boot.strip
-       size -aout boot.strip
-
-boot.nohdr:    boot.strip
-       dd if=boot.strip of=boot.nohdr ibs=32 skip=1 obs=1024b
-       ls -l boot.nohdr
-
-boot1:         boot.nohdr
-       dd if=boot.nohdr of=boot1 bs=512 count=1
-
-boot2:         boot.nohdr
-       dd if=boot.nohdr of=boot2 bs=512 skip=1
-       @dd if=boot2 skip=14 of=sizetest 2> /dev/null
-       @if [ -s sizetest ] ; then \
-               echo "boot2 is too big" >&2 ; \
-               rm boot2 ; \
-               exit 2 ; \
-       fi
-
-all:           boot1 boot2
-
-install:
-       ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
-               boot1 boot2 ${DESTDIR}${BINDIR}/
-
-install-boothelp:
-       ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \
-               ${.CURDIR}/boot.help ${DESTDIR}/
-
-.include "../../../conf/bsd.kern.mk"
-.include <bsd.prog.mk>
diff --git a/sys/i386/boot/biosboot/README.386BSD b/sys/i386/boot/biosboot/README.386BSD
deleted file mode 100644 (file)
index 0b0f2cd..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-Note: all my original references to 386BSD also refer to freeBSD and NetBSD
-which in some ways are derived from 386BSD.  --julian@freebsd.org
-
-This Boot code is different from the original boot code that came with
-386BSD in that it uses the BIOS to load the kernel and to provide all i/o
-services. The advantage ofthis is that the same boot code exactly, can run
-on any device that is supported by the BIOS. (That's most of them)
-This is important for the 'generic scsi' project because it means we can
-write drivers for new scsi adapters without having to develop an new
-set of boot blocks for each.
-
-At this point you should read the first part of README.MACH... come back here
-when you have done that:
-
-In normal operation, when co-existing with other operating systems, the
-following operations occur:
-
-1/ the BIOS loads the first block of the disk (called the Master Boot Record
-or MBR) and if it has the correct magic numbers, jumps into it:
-
-2/ The MBR code, looks at the Partition table that is embedded within it,
-to determine which is the partition to boot from.  If you install the
-boot manager when FreeBSD is first installed, it will also give you a nice
-menu for switching between operating systems.
-
-3/ The MBR will load the first record of the selected partition and
-if it has (the same) magic numbers, jumps into it. In 386bsd this is the
-first stage boot, (or boot1) it is represented in /usr/mdec by
-wdboot, asboot and daboot. If the disk has been set up without DOS partitioning
-then this block will be at block zero, and will have been loaded directly by
-the BIOS. This is the usual case with floppies.
-
-4/ Boot1 will look at block0 (which might be itself if there are no DOS
-partitions) and will find the 386bsd partition,
-
-Boot 1 also contains a compiled in DOS partition table
-(in case it is at block 0), which contains a 386bsd partition starting
-at 0. This ensures that the same code can work whether or not
-boot1 is at block 0.
-
-4A/ IF the NAMEBLOCK option is compiled into the bootcode, then the 
-boot1 code will load and examine block1 (usually unused) and
-look for a default boot string to use later (if the correct magic number
-is present). If the option NAMEBLOCK_WRITEBACK is also defined, then
-it will zero out that name after finding it, and write the block back,
-having "used up" that name. The block may contain multiple different
-boot strings which will be "used up" one after the other (one per boot)
-They are set using the "nextboot" utility.
-
-4B/ Using the information found in step 4, regarding the start position
-of the BSD partition, boot1 will load the first 16 sectors of that partition,
-to around 0x10000 (64k) and will jump into it at the appropriate entry point.
-Since boot1 and boot2 were compiled together as one file and then split
-later, boot1 knows the exact position within boot2 of the entry point.
-
-5/ Boot2 asks the user for a boot device, partition and filename, and then
-loads the MBR of the selected device. This may or may not be the device
-which was originally used to boot the first MBR. The partition table
-of the new MBR is searched for a 386bsd partition, and if one is found,
-that is then in turn searched for the disklabel. This could all be on the
-second disk at this point, if the user selected it. If the user makes no
-actions then a default string will be used.
-
-If the NAMEBLOCK option is used, then the default string may have been
-loaded from block2. If none was found then a compiled in default will be used.
-
-6/On finding the disklabel, on the disk the user spacified, boot2 can find
-the correct unix partition within the 386bsd partition, and using cutdown
-filesystem code, look for the file to boot (e.g., 386bsd).
-
-7/ Boot2 loads this file starting at the location specified by the a.out header,
-(see later) and leaps into it at the location specified in he header.
-
-if the file does not exist or cannot be loaded, boot2 goes back to step 5.
-
-386bsd is now running and will hopefully start vm etc. and get to multi-user
-mode.
-
-##########################################################################
-During all these steps, all i/o is performed using the BIOS. This has a number
-of side effects:
-
-1/ Since BIOS disk calls are specified in terms of cylinder,head and sector,
-and the BIOS read the disk information from either the CMOS or from some other
-location which is un-available to us, we must use the cyl,head,sec information
-that is given in the MBR, rather than the start address in the MBR, because
-we cannot guarentee that we can corectly calculate C,H,S from the start address.
-
-Therefore, the C,H,S information in the MBR must be as correct for this boot
-to work as it would be for DOS to boot. For example, adaptec BIOS routines
-assume a layout of 64 heads and 32 sectors giving 1MB per ficticious cylinder.
-You must use these figures to calculate the correct values. Luckily, the DOS
-fdisk program will do all this for you if you tell it to give you a DOS
-partition, and you can change it to a 386BSD partition later. If you use 
-no DOS partitioning, then the compiled in table in Boot1 will do just fine.
-
-If you want to do it by hand remember that BIOS counts sectors starting at 1.
-(cylinders and heads start at 0 (??))
-
-2/ you cannot overwrite the bottom 4k of ram until you have finished ALL
-bios calls, as BIOS uses this area as scratch memory.
-This is no longer really a problem as we no-longer support loading the kernel
-at location 0.
-
-3/ Since BIOS runs in REAL mode, and Boot2 runs in protected mode,
-Boot 2 switches back to real mode just before each BIOS call and then
-back to protected mode on each return. Touch this at your peril.!
-
-#########################################################################
-In answering the prompt from Boot2:
-you can, 
-1/ leave it alone. It will boot the indicated file from the first 
-partition of the first drive seen by the BIOS (C:)
-If the NAMEBLOCK option is in use, the default name might be taken from block1
-(2nd block) on that drive (the drive on which boot 1 was loaded).
-
-2/ enter only "-s" to boot the default to single user mode
-
-3/ enter only a filename (optionally with -s) to boot that kernel,
-
-4/ enter a whole line of the form shown in the prompt. This allows you to
-boot some other partition, possibly on the second drive, as root.
-
-
-##########################################################################
-In the case you have several drives the same type (all scsi or all IDE/ESDI),
-       wd(0,a)xxx
-will boot xxx from drive 0, a partition.
-       wd(1,a)xxx
-will boot xxx from drive 1, a partition.
-
-similarly for da and for higher drive numbers (if the BIOS supports them).
-
-if you have one or more wd drives and one or more scsi drives, then you
-MUST specify the BIOS drive number for booting the scsi drives:
-       2:da(0,a)xxx
-will boot xxx from scsi drive 0, a partition, provided `2' is the correct
-BIOS drive number for da0.
-
-otherwise the following will happen:
-
-with wd0 and da0, you specify da1 or wd1 to indicate the 2nd drive.
-it boots the kernel correctly, then tells the kernel to use da1 as root.
-you however may not have an da1, and problems arise.
-
-Whether da or wd is specified to the kernel is read from the disklabel,
-so ensure that all SCSI disks have type SCSI in their disklabel or the
-boot code will assume they are ESDI or IDE. (Remember, because it is
-working through the BIOS it has ho idea what kind of disk it is.
-
-##########################################################################
-Installing:
-The makefile supplied has a target install which will create the
-files wdboot,bootwd ,daboot and bootda in /usr/mdec.
-BEWARE these will overwrite the existing wdboot and bootwd. (so back
-them up)
-
-there are also targets wd and da which wil only do one of them
-
-The commented out targets wd0 and da0 are examples of how to 
-load the new bootblocks, however,make sure you change the 
-device type and label to suit your drive if you uncomment them.
-(see 'man disklabel')
-
-If you already have made partitions using the old bootblocks
-these should install painlessly.
-
-Before you do this ensure you have a booting floppy with correct
-disktab and bootblock files on it so that if it doesn't work, you can
-re-disklabel from the floppy.
-
-$FreeBSD: src/sys/i386/boot/biosboot/README.386BSD,v 1.11 1999/08/28 00:43:10 peter Exp $
-$DragonFly: src/sys/i386/boot/biosboot/Attic/README.386BSD,v 1.2 2003/06/17 04:28:34 dillon Exp $
diff --git a/sys/i386/boot/biosboot/README.MACH b/sys/i386/boot/biosboot/README.MACH
deleted file mode 100644 (file)
index 39ded4a..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:33:55  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/README.MACH,v 1.7 1999/08/28 00:43:10 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/README.MACH,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-********NOTE: This is not all relevant to the 386BSD version**********
-
-               AT386 Protected Mode Bootstrap Loader
-               =====================================
-
-1. Overview of Startup
-   -------------------
-
-       After the system is rebooted, the BIOS bootstrap routine reads Sector
-       1, Track 0 into memory at location 0000:7C00H.  If location 0000:7DFEH
-       (last two bytes of that sector) contains the value AA55H, the BIOS
-       bootstrap routine will transfer control to 0000:7C00H.  Otherwise, the
-       boot code in that sector is bad and the boot routine stops.
-       
-       For DOS compatibility reason, one extra stage of boot is required if
-       the boot device is a hard disk.  The first sector of the hard disk will
-       contain the MOS-DOS boot code and a boot record partition table.
-       When this sector is loaded into 0000:7C00H, it will relocate itself
-       to somewhere else and then load the first sector of the active
-       partition into 0000:7C00H.  Both UNIX and DOS use the command "fdisk"
-[ 386bsd does not have an 'fdisk' (yet) ]
-       to install this first sector into the hard disk and to manipulate
-       the hard disk partitions.
-
-       
-
-2. The First Stage Bootstrap Loader
-   --------------------------------
-
-       After startup, the first stage boot is loaded at 0000:7C00H.  This
-       first stage boot will load itself and the second stage boot into
-       memory at location 0000:1000H.  For floppy disks, the first cylinder
-       is reserved as the boot cylinder, and the boot code (first and second)
-       will be loaded from there.  Currently, only double sided, high density
-       (15 sectors per track) floppies are supported.  For hard disks, the
-       first 29 sectors of the active partition is reserved for boot code
-       which will be loaded by the first stage boot.  All the disk types
-       recognized by BIOS are supported by this bootstrap loader. 
-[for 386bsd we load the second stage booter to 9000:0]
-
-
-
-3. The Second Stage Bootstrap Loader
-   --------------------------------
-
-       After the boot code is loaded, the control is passed to the second
-       stage bootstrap loader "boot2()".  In order to be able to load the
-       big kernel image (bigger than 512K or 640K, depends on the memory
-       configuration), the second stage boot loader will run on the protected
-       mode.  This bootstarp loader does not have any stand alone device
-       drivers, all the I/O's are through the BIOS calls.  Since the first
-       stage boot code will no longer be used at this moment, the memory
-       location of the first stage boot code (0000:1000H to 0000:1200H) will
-       be used as an internal buffer for BIOS calls.  Immediately after this 
-       internal buffer is the GDT table for the second stage boot loader. 
-       Since this boot loader needs to switch back and forth between protected
-       and real mode in order to use BIOS calls, the limit of the boot code
-       and boot data segments must not be greater than 64K.
-       
-       The boot loader loads the kernel image at memory location above 1 MB
-       to skip the memory hole between 521K/640K and 1MB.  After the kernel
-       is loaded, the boot loader stores the information in the stack and
-       then passes control to kernel.  Currently, the three information passed
-       fromm the boot loader to the kernel are type of the boot device, size
-       of the base memory and size of the extended memory.
-
-[ 386bsd receives: howto, bootdev]
-
-[ 386bsd is loaded where-ever the "MByte" bits of the load address specify,
-so if you link it for FE100000 it will load to 1MB, but if you link
-it for FE000000 it will load ad 0MB]
-
-[for machines with only 512KB normal ram the kernel will need to  be linked
-for 1MB and the bootblocks modified to run below 512KB. (8000:0)]
-
-
-4. The UNIX Startup
-   ----------------
-
-       Since the boot loader loads the kernel image at memory location above
-       1MB, the kernel has to start as protected mode.  In addition, the
-       link editor description file (vuifile) has to indicate that
-       the text and data segments start above 1MB.  Also, the boot loader
-       passes the infomation to the kernel through the stack.
-
-[MOST of what is mentionned below is NOT relevant to 386bsd]
-
-5. Disk Layout and Bad Block Handling
-   ---------------------------------
-       
-    The System V/386 Release 3.2 (AT) disk layout will be used as the disk
-    layout for the MACH System on the AT platform.
-
-    This disk layout is as follows:
-
-       * Reserve the first sector of cylinder 0 for the DOS boot record which
-         contains the master boot code (446 bytes) and the partition table.
-         (Refer to DOS Technical Reference Manual page 9-6 to 9-10).
-
-       * Reserve the first 29 sectors of the UNIX partition for the first
-         and the second stage bootstrap.
-
-       * Reserve the 30th sector of the UNIX partition for the pdinfo and
-         the vtoc tables.
-
-       * Reserve the 31st to the 34th sectors of the UNIX partition for the
-         bad track and the bad block mapping tables.
-
-       * Reserve up to 253 consecutive tracks when required, beginning with
-         the 35th sector of the UNIX partition, for alternate tracks.
-
-       * Reserve up to 253 consecutive blocks, beginning with the first
-         sector after the alternate tracks area, for alternate blocks.
-
-        SEC
-         1
-       ----------------------------------------------------
-       | X |                                              | CYL 0, TRK 0
-       ----------------  ..........    --------------------
-       |                 ..........                       |
-       ----------------  ..........    --------------------
-       |                 ..........                       |
-   ===============================================================
-    ^   |               BOOTSTRAP                          | CYL N, TRK M
-    |   ----------------------------------------------------
-    |   |                              |30 |31 |32 |33 |34 |
-       ----------------------------------------------------  ---
-    U   |                 ..........                       |   ^
-    N   ----------------  ..........   ---------------------   |
-    I   |                 ..........                       | Alternate Tracks
-    X   ----------------  ..........   ---------------------   |
-        |                 ..........                       |   V
-    P   ----------------------------------------------------  --- 
-    A   |                 ..........                       |   ^
-    R   ----------------  ..........   ---------------------   |
-    T   |                 ..........                       | Alternate Blocks
-    I   ----------------  ..........   --------------------    |
-    T   |                 ..........                       |   V
-    I   ----------------------------------------------------  ---
-    O   |  Unix root partition starts from here            |
-    N   ----------------                   -----------------
-       |                                                  |
-        ----------------------------------------------------
-        |                                                  |
-       ----------------------------------------------------
-       |                                                  |
-    |   ---------------------------------------------------
-    |   |                                                  |
-    |   ----------------------------------------------------
-    V   |                                                  |
-   ===============================================================
-       |                   ........                       |
-       ---------------     ........          --------------
-       |                   ........                       |
-       ----------------------------------------------------
-
-
-       The bad block handling mechanism is as follows:
-
-       * Use the alternate track in the alternate tracks area if the
-         track containing the target sector is bad.
-
-       * Use the alternate block in the alternate blocks area if the
-         target sector is bad.
-
-
-
-
-6. How to make:
-   -----------
-
-       Since the kernel image is loaded above 1 MB, the kernel must start
-       as protected mode.  This means that this bootstrap loader will work
-       only when the corresponding changes on the kernel startup code are done.
-
-       The make command to generate this bootstrap loader is:
-
-       make -f boot.mk fdboot      (floppy boot loader)
-       make -f boot.mk hdboot      (wini boot loader)
-[to make 386bsd bootblocks  "make da wd" (warning: they will be installed
-in /dev/mdec.. take backups)]
diff --git a/sys/i386/boot/biosboot/README.serial b/sys/i386/boot/biosboot/README.serial
deleted file mode 100644 (file)
index 4dc53ff..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-
-                         SERIAL CONSOLE USAGE NOTES
-                               Written by
-                      Bill Paul <wpaul@ctr.columbia.edu>
-                          Revised for 3.0-CURRENT by
-            Kazutaka Yokota <yokota@zodiac.mech.utsunomiya-u.ac.jp>
-
-The FreeBSD boot block can now be used to boot FreeBSD on a system with
-only a dumb terminal on a serial port as a console. This feature
-is provided for the benefit of people who wish to install FreeBSD on
-dedicated file/compute/terminal server machines that have no keyboard
-(or monitor) attached, just as is possible with Sun workstations and
-servers. People who don't need this extra functionality shouldn't notice
-the changes at all (unless I've screwed something up horribly).
-
-To boot FreeBSD in serial console mode, you must do the following:
-
-- UNPLUG YOUR KEYBOARD. Most PC systems probe for the keyboard during the
-  Power-On Self-Test (POST) and will generate an error if the keyboard
-  isn't detected. Some BIOSes may be set to ignore this error.  Many other 
-  machines will pause the boot process and wait for you to reattach the 
-  keyboard and press a key before proceeding any further. Consult the manual
-  of your motherboard to see how it responds to the error and how to
-  set the BIOS to ignore the error. If your computer complains about 
-  the lack of a keyboard but boots anyway, then you don't have to do 
-  anything special. (One machine with a PHOENIX BIOS that I have here 
-  merely says 'Keyboard failed' then continues to boot normally.) If your 
-  machine complains loudly about the lack of a keyboard and won't continue 
-  to boot until you plug it back in, you'll have to go into your CMOS 
-  configuration menu and change the 'Keyboard' setting to 'Not installed' 
-  in order to bypass the keyboard probe.
-
-  NOTE #1:
-  Setting the keyboard to 'Not installed' in the CMOS configuration
-  does *NOT* mean that you won't be able to use your keyboard. All this 
-  does is tell the BIOS not to probe for a keyboard at power-on so that
-  it won't bitch and moan if the keyboard isn't plugged in. You can leave the
-  keyboard plugged in even with this flag set to 'Not installed' and the
-  keyboard will still work. I repeat: changing the CMOS 'keyboard' setting
-  to 'Not installed' only disables the BIOS's keyboard probe; it does 
-  *NOT* actually disable the keyboard.
-
-  NOTE #2:
-  If your system has a PS/2 mouse, chances are very good that you will
-  need to unplug your mouse as well as your keyboard. This is because
-  PS/2 mice share some hardware with the keyboard, and leaving the mouse
-  plugged in can fool the keyboard probe into thinking the keyboard is
-  still there. I have access to a Gateway 2000 Pentium 90Mhz system with
-  an AMI BIOS that behaves this way. In general this is not a problem
-  since the mouse isn't much good without the keyboard anyway.
-
-- PLUG A DUMB TERMINAL INTO COM1. If you don't have a dumb terminal, you
-  can use an old PC/XT with a modem program, or the serial port on
-  another UNIX box. If you don't have a COM1, get one. At this time,
-  there is no way to select a port other than COM1 for the boot blocks
-  without recompiling the boot blocks. If you're already using COM1 for
-  another device, you'll have to temporarily remove that device and
-  install a new boot block and kernel once you get FreeBSD up and running.
-  (It is assumed that COM1 will be available on a file/compute/terminal
-  server anyway; if you really need COM1 for something else (and you can't
-  switch that something else to COM2), then you probably shouldn't even
-  be bothering with all this in the first place.)
-
-  NOTE #1:
-  The serial port settings are hardcoded to 9600 baud, 8 bits, no parity,
-  1 stop bit, by default. If you wish to change the speed, you need to 
-  recompile at least the boot blocks.  Add the following line to
-  /etc/make.conf and compile new boot blocks:
-
-       BOOT_COMCONSOLE_SPEED=115200
-
-  If the serial console is configured in some other way than by booting with
-  -h, or if the serial console used by the kernel is different from the one
-  used by the boot blocks, then you must also add the following option to the
-  kernel configuration file and compile a new kernel:
-
-        options        CONSPEED=115200
-
-  NOTE #2:
-  In addition to a serial cable, you will need a null modem adapter
-  in order to connect the terminal to the PC's serial port. If you don't
-  have one, go to Radio Shack and buy one: they're cheap.
-
-  NOTE #3:
-  If you wish to drop into the kernel debugger from the serial console
-  (useful for remote diagnostics, but also dangerous if you generate a
-  spurious BREAK on the serial port!) then you should compile your kernel
-  with the following options:
-
-       options BREAK_TO_DEBUGGER
-       options DDB
-
-
-- MAKE SURE THE CONFIGURATION FILE OF YOUR KERNEL HAS APPROPRIATE FLAGS
-  SET FOR COM1.
-
-  Relevant `flags' are:
-  0x10 enable console support for this unit.  The other console flags
-       are ignored unless this is set.  Currently, at most one unit can 
-       have console support; the first one (in config file order) with
-       this flag set is preferred. This option alone will not make
-       the serial port the console. Set the following flag or use the -h
-       option described below, together with this flag.
-  0x20 force this unit to be the console (unless there is another
-       higher priority console). This replaces the COMCONSOLE option.
-
-  Example:
-  device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4
-
-  If the flags were not set, you need to run UserConfig (on a different
-  console) or recompile the kernel.
-
-- CREATE THE FILE "boot.config" IN THE ROOT DIRECTORY of the `a' partition
-  on the boot drive.  Put the kernel name and options in one line.   The
-  kernel name is optional.  Options are subset of those described in boot(8): 
-  -h   toggle internal and serial consoles. You can use this to switch 
-       console devices. For instance, if you boot from the VGA console, 
-       you can use -h to force the kernel to use the serial port as its 
-       console device. Alternatively, if you boot from the serial port, 
-       you can use the -h to force the kernel to use the VGA display 
-       as the console instead. (Can you say 'toggle' boys and girls? 
-       I knew you could. :)
-  -D   toggle single and dual console configurations. In the single
-       configuration the console will be either the VGA display (internal 
-       console) or the serial port, depending on the state of the -h option
-       above. In the dual console configuration, both the VGA display 
-       and the serial port will become the console at the same time, 
-       regardless of the state of the -h option.
-       However, the dual console configuration takes effect only during
-       the boot prompt. Once the kernel is loaded, the console specified 
-       by the -h option becomes the only console.
-  -P   probe the keyboard. If no keyboard is found, the -D and -h options
-       are automatically set.
-
-  Use either the -P option to select the console automatically, or the -h
-  option to force the serial console.
-
-- BOOT THE MACHINE. You'll see a prompt appear on the terminal that looks 
-  something like this:
-
-  No keyboard found
-
-  >> FreeBSD BOOT @ 0x10000: 640/7168 k of memory, serial console
-  Boot default: 0:wd(0,a)kernel
-
-  boot:
-
-  This is identical to the prompt that normally appears on the VGA console,
-  except for the 'No keyboard found' message that indicates a keyboard
-  couldn't be detected, if the -P option is in `boot.config'. 
-
-  From here you can boot the system (or let it autoboot by itself) just
-  like you can from the VGA console and the kernel will automatically
-  use COM1 as the console device. This is done by passing a special flag 
-  to the kernel in the 'boothowto' word. (The curious can refer to 
-  <sys/reboot.h> and the sio driver sources for details.)
-
-
-CAVEATS:
-
-- The idea here is to allow people to set up dedicated servers that require
-  no graphics hardware or attached keyboards. Unfortunately, while (most?)
-  every system will let you boot without a keyboard, there are quite a few
-  that will not let you boot without a graphics adapter. Machines with
-  AMI BIOSes can be configured to boot with no graphics adapter installed
-  simply by changing the 'graphics adapter' setting in the CMOS configuration
-  to 'Not installed.' However, many machines do not support this option
-  and will refuse to boot if you have no display hardware in the system. With
-  these machines, you'll have to leave some kind of graphics card plugged in,
-  (even if it's just a junky mono board) although you won't have to attach
-  a monitor into it. You might also try installing an AMI BIOS. :)
-
-- Using a port other than COM1 as the console requires some recompiling.
-  Again, it's usually assumed that COM1 will be available for use as a
-  console device on a dedicated file/compute/terminal server, so hopefully
-  you'll never need to do this. But if you feel you must change the console
-  to a different port, here's how:
-
-       o Get the kernel source package.
-       o Edit /etc/make.conf and set BOOT_COMCONSOLE_PORT to the
-         address of the port you want to use (0x3F8, 0x2F8, 0x3E8 or
-         0x2E8). Only COM1 through COM4 can be used; multiport serial
-         cards will not work. No interrupt setting is needed.
-       o Create a custom kernel configuration file and add appropriate
-         `flags' for the serial port you want to use. For example, if you
-         want to make COM2 the console:
-
-         device sio1 at isa? port "IO_COM2" tty flags 0x10 irq 3
-
-         The console flags for the other serial ports should not be set.
-       o Recompile both the boot blocks and the kernel.
-       o Install the boot blocks with the disklabel command and boot
-         from the new kernel.
-
-
-$FreeBSD: src/sys/i386/boot/biosboot/README.serial,v 1.11 1999/08/28 00:43:10 peter Exp $
-$DragonFly: src/sys/i386/boot/biosboot/Attic/README.serial,v 1.2 2003/06/17 04:28:34 dillon Exp $
diff --git a/sys/i386/boot/biosboot/asm.S b/sys/i386/boot/biosboot/asm.S
deleted file mode 100644 (file)
index 4402eb2..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:34:13  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/asm.S,v 1.13 1999/08/28 00:43:11 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/asm.S,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-
-/*
-  Copyright 1988, 1989, 1990, 1991, 1992 
-   by Intel Corporation, Santa Clara, California.
-
-                All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-       .file "asm.s"
-
-#include "asm.h"
-
-
-CR0_PE_ON      =       0x1
-CR0_PE_OFF     =       0xfffffffe
-
-       .text
-
-/*
- *
- * real_to_prot()
- *     transfer from real mode to protected mode.
- */
-
-ENTRY(real_to_prot)
-       /* guarantee that interrupt is disabled when in prot mode */
-       cli
-
-       /* load the gdtr */
-       addr32
-       data32
-       lgdt    EXT(Gdtr)
-
-       /* set the PE bit of CR0 */
-       mov     %cr0, %eax
-
-       data32
-       or      $CR0_PE_ON, %eax
-       mov     %eax, %cr0 
-
-       /*
-        * make intrasegment jump to flush the processor pipeline and
-        * reload CS register
-        */
-       data32
-       ljmp    $0x18, $xprot
-xprot:
-
-       /*
-        * we are in USE32 mode now
-        * set up the protected mode segment registers : DS, SS, ES, FS
-        */
-       movw    $0x20, %ax      /* data segment */
-       mov     %ax, %ds        /* gas would waste a prefix byte for movw */
-       mov     %ax, %ss
-       mov     %ax, %es
-       movw    $0x10, %ax      /* flat segment */
-       mov     %ax, %fs
-
-#ifdef BDE_DEBUGGER
-       /* load idtr so we can debug */
-       lidt    EXT(Idtr_prot)
-#endif
-
-       ret
-
-/*
- *
- * prot_to_real()
- *     transfer from protected mode to real mode
- * 
- */
-
-ENTRY(prot_to_real)
-
-       /* Prepare %ax while we're still in a mode that gas understands. */
-       movw    $0x30, %ax
-
-       /* Change to use16 mode. */
-       ljmp    $0x28, $x16
-x16:
-
-       mov     %ax, %ds
-       mov     %ax, %ss
-       mov     %ax, %es
-       mov     %ax, %fs
-
-       /* clear the PE bit of CR0 */
-       mov     %cr0, %eax
-       data32
-       and     $CR0_PE_OFF, %eax
-       mov     %eax, %cr0
-
-       /*
-        * make intersegment jmp to flush the processor pipeline
-        * and reload CS register
-        */
-       data32
-       ljmp    $BOOTSEG, $xreal
-xreal:
-
-       /*
-        * we are in real mode now
-        * set up the real mode segment registers : DS, SS, ES, FS
-        */
-       mov     %cs, %ax
-       mov     %ax, %ds
-       mov     %ax, %ss
-       mov     %ax, %es
-       mov     %ax, %fs
-
-#ifdef BDE_DEBUGGER
-       /* load idtr so we can debug */
-       addr32
-       data32
-       lidt    EXT(Idtr_real)
-#endif
-
-       data32
-       ret
-
-/*
- * startprog(phyaddr)
- *     start the program on protected mode where phyaddr is the entry point
- *
- * XXX This whole mess should go away and we should run the boot code in
- * flat 32 bit mode with it linked -T BOOTSEG.  See the netboot code for
- * how this is done.
- */
-
-ENTRY(startprog)
-       push    %ebp
-       mov     %esp, %ebp
-       movl    %esp, %eax              /* Use eax as the old stack pointer */
-
-       /* convert the current stack to a 32 bit flat model */
-       movw    $0x10, %bx
-       mov     %bx, %ss
-       addl    $(BOOTSEG<<4),%esp
-       
-       /* copy the arguments from the old stack to the new stack */
-       pushl   0x14(%eax)              /* &bootinfo */
-       pushl   $0                      /* was &nfsdiskless */
-       pushl   $0                      /* was esym */
-       pushl   $0                      /* was cyloffset */
-       pushl   0x10(%eax)              /* bootdev */
-       pushl   0x0C(%eax)              /* howto */
-       movl    $(ourreturn),%ebx
-       addl    $(BOOTSEG<<4),%ebx      /* Fix it up for flat segments */
-       pushl   %ebx                    /* our return address */
-       
-       /* push on our entry address */
-       pushl   $0x08                   /* segment selector */
-       pushl   0x08(%eax)              /* kernel entry address */
-
-       /* convert over the other data segs */
-       movw    $0x10, %bx
-       mov     %bx, %ds
-       mov     %bx, %es
-
-       /* convert the PC (and code seg) */
-       lret
-ourreturn:
-       /* For now there is not much we can do, just lock in a loop */
-       jmp     ourreturn
-
-/*
- * pcpy(src, dst, cnt)
- *     where src is a virtual address and dst is a physical address
- */
-
-ENTRY(pcpy)
-       push    %ebp
-       mov     %esp, %ebp
-       push    %es
-       push    %esi
-       push    %edi
-       push    %ecx
-
-       cld
-
-       /* set %es to point at the flat segment */
-       movw    $0x10, %ax
-       mov     %ax, %es
-
-       mov     0x8(%ebp), %esi         /* source */
-       mov     0xc(%ebp), %edi         /* destination */
-       mov     0x10(%ebp), %ecx        /* count */
-
-       rep
-       movsb
-
-       pop     %ecx
-       pop     %edi
-       pop     %esi
-       pop     %es
-       pop     %ebp
-
-       ret
diff --git a/sys/i386/boot/biosboot/asm.h b/sys/i386/boot/biosboot/asm.h
deleted file mode 100644 (file)
index 3874197..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1991,1990,1989 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.7  92/02/29  15:33:41  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/asm.h,v 1.9 1999/08/28 00:43:11 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/asm.h,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-#define S_ARG0  4(%esp)
-#define S_ARG1  8(%esp)
-#define S_ARG2 12(%esp)
-#define S_ARG3 16(%esp)
-
-#define FRAME  pushl %ebp; movl %esp, %ebp
-#define EMARF  leave
-
-#define B_ARG0  8(%ebp)
-#define B_ARG1 12(%ebp)
-#define B_ARG2 16(%ebp)
-#define B_ARG3 20(%ebp)
-
-#ifdef wheeze
-
-#define ALIGN 4
-#define EXT(x) x
-#define LEXT(x) x:
-#define LCL(x) ./**/x
-
-#define LB(x,n) ./**/x
-#define LBb(x,n) ./**/x
-#define LBf(x,n) ./**/x
-
-#define        SVC lcall $7,$0
-
-#define String .string
-#define Value  .value
-#define Times(a,b) [a\*b]
-#define Divide(a,b) [a\\b]
-
-#define INB    inb     (%dx)
-#define OUTB   outb    (%dx)
-#define INL    inl     (%dx)
-#define OUTL   outl    (%dx)
-
-#else  wheeze
-#define ALIGN
-#define        LCL(x)  x
-
-#define LB(x,n) n
-#ifdef __STDC__
-#define EXT(x) _ ## x
-#define LEXT(x) _ ## x ## :
-
-#define LBb(x,n) n ## b
-#define LBf(x,n) n ## f
-#else __STDC__
-#define EXT(x) _/**/x
-#define LEXT(x) _/**/x/**/:
-#define LBb(x,n) n/**/b
-#define LBf(x,n) n/**/f
-#endif __STDC__
-#define SVC .byte 0x9a; .long 0; .word 0x7
-
-#define String .ascii
-#define Value  .word
-#define Times(a,b) (a*b)
-#define Divide(a,b) (a/b)
-
-#define INB    inb     %dx, %al
-#define OUTB   outb    %al, %dx
-#define INL    inl     %dx, %eax
-#define OUTL   outl    %eax, %dx
-
-#endif wheeze
-
-#define addr32 .byte 0x67
-#define data32 .byte 0x66
-
-#ifdef GPROF
-#ifdef __STDC__
-
-#define MCOUNT         .data; LB(x, 9); .long 0; .text; lea LBb(x, 9),%edx; call mcount
-#define        ENTRY(x)        .globl EXT(x); .align ALIGN; LEXT(x) ; \
-                       pushl %ebp; movl %esp, %ebp; MCOUNT; popl %ebp;
-#define        ENTRY2(x,y)     .globl EXT(x); .globl EXT(y); \
-                       .align ALIGN; LEXT(x) LEXT(y) ; \
-                       pushl %ebp; movl %esp, %ebp; MCOUNT; popl %ebp;
-#define        ASENTRY(x)      .globl x; .align ALIGN; x ## : ; \
-                       pushl %ebp; movl %esp, %ebp; MCOUNT; popl %ebp;
-
-#else   __STDC__
-
-#define MCOUNT         .data; LB(x, 9): .long 0; .text; lea LBb(x, 9),%edx; call mcount
-#define        ENTRY(x)        .globl EXT(x); .align ALIGN; LEXT(x) ; \
-                       pushl %ebp; movl %esp, %ebp; MCOUNT; popl %ebp;
-#define        ENTRY2(x,y)     .globl EXT(x); .globl EXT(y); \
-                       .align ALIGN; LEXT(x) LEXT(y)
-#define        ASENTRY(x)      .globl x; .align ALIGN; x: ; \
-                       pushl %ebp; movl %esp, %ebp; MCOUNT; popl %ebp;
-
-#endif __STDC__
-#else  GPROF
-#ifdef __STDC__
-
-#define MCOUNT
-#define        ENTRY(x)        .globl EXT(x); .align ALIGN; LEXT(x)
-#define        ENTRY2(x,y)     .globl EXT(x); .globl EXT(y); \
-                       .align ALIGN; LEXT(x) LEXT(y)
-#define        ASENTRY(x)      .globl x; .align ALIGN; x ## :
-
-#else  __STDC__
-
-#define MCOUNT
-#define        ENTRY(x)        .globl EXT(x); .align ALIGN; LEXT(x)
-#define        ENTRY2(x,y)     .globl EXT(x); .globl EXT(y); \
-                       .align ALIGN; LEXT(x) LEXT(y)
-#define        ASENTRY(x)      .globl x; .align ALIGN; x:
-
-#endif __STDC__
-#endif GPROF
-
-#define        Entry(x)        .globl EXT(x); .align ALIGN; LEXT(x)
-#define        DATA(x)         .globl EXT(x); .align ALIGN; LEXT(x)
diff --git a/sys/i386/boot/biosboot/bios.S b/sys/i386/boot/biosboot/bios.S
deleted file mode 100644 (file)
index e551cfc..0000000
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:34:26  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/bios.S,v 1.15 1999/08/28 00:43:11 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/bios.S,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-/*
-  Copyright 1988, 1989, 1990, 1991, 1992 
-   by Intel Corporation, Santa Clara, California.
-
-                All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-/*
- * Extensions for El Torito CD-ROM booting:
- *
- * Copyright © 1997 Pluto Technologies International, Inc.  Boulder CO
- * Copyright © 1997 interface business GmbH, Dresden.
- *      All rights reserved.
- *
- * This code has been written by Jörg Wunsch, Dresden.
- * Direct comments to <joerg_wunsch@interface-business.de>.
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``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(S) 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.
- *
- */
-
-       .file   "bios.s"
-
-#include "asm.h"
-       .text
-
-#ifndef CDBOOT
-
-/*
- * biosread(dev, cyl, head, sec, nsec, offset)
- *     Read "nsec" sectors from disk to offset "offset" in boot segment
- * BIOS call "INT 0x13 Function 0x2" to read sectors from disk into memory
- *     Call with       %ah = 0x2
- *                     %al = number of sectors
- *                     %ch = cylinder
- *                     %cl = sector
- *                     %dh = head
- *                     %dl = drive (0x80 for hard disk, 0x0 for floppy disk)
- *                     %es:%bx = segment:offset of buffer
- *     Return:         
- *                     %al = 0x0 on success; err code on failure
- */
-
-ENTRY(biosread)
-       push    %ebp
-       mov     %esp, %ebp
-
-       push    %ebx
-       push    %esi
-       push    %edi
-
-       movb    0x10(%ebp), %dh
-       movw    0x0c(%ebp), %cx
-       /* cylinder; the highest 2 bits of cyl is in %cl */
-       xchgb   %ch, %cl
-       rorb    $2, %cl
-       movb    0x14(%ebp), %al
-       orb     %al, %cl
-       incb    %cl                     /* sector; sec starts from 1, not 0 */
-       movb    0x8(%ebp), %dl          /* device */
-       movl    0x1c(%ebp), %ebx        /* offset */
-
-       /* prot_to_real will set %es to BOOTSEG */
-       call    EXT(prot_to_real)       /* enter real mode */
-       movb    $0x2, %ah               /* subfunction */
-       addr32
-       movb    0x18(%ebp), %al         /* number of sectors */
-
-       sti
-       int     $0x13
-       cli
-
-       /* save return value (actually movw %ax, %bx) */
-       mov     %eax, %ebx
-
-       data32
-       call    EXT(real_to_prot)       /* back to protected mode */
-
-       xor     %eax, %eax
-       movb    %bh, %al                /* return value in %ax */
-
-       pop     %edi
-       pop     %esi
-       pop     %ebx
-       pop     %ebp
-
-       ret
-
-#else /* CDBOOT */
-
-
-/*
- * int
- * getbootspec(struct specpacket *offset)
- *
- * Read CD-ROM boot specification packet to "offset".
- */
-ENTRY(getbootspec)
-       push    %ebp
-       mov     %esp, %ebp
-
-       push    %esi
-       push    %ebx
-
-       movw    0x8(%ebp), %si
-       mov     $0x7f, %edx
-
-       /* prot_to_real will set %es to BOOTSEG */
-       call    EXT(prot_to_real)       /* enter real mode */
-       movw    $0x4b01, %ax            /* (do not) terminate disk emulation */
-       movb    $0x7f, %dl              /* any drive */
-
-       sti
-       int     $0x13
-       cli
-
-       /* save return value (actually movw %ax, %bx) */
-       mov     %eax, %ebx
-
-       data32
-       call    EXT(real_to_prot)       /* back to protected mode */
-
-       xor     %eax, %eax
-       movb    %bh, %al                /* return value in %ax */
-
-       pop     %ebx
-       pop     %esi
-       pop     %ebp
-
-       ret
-
-
-/*
- * int
- * biosreadlba(struct daddrpacket *daddr)
- *     Read sectors using the BIOS "read extended" function
- * BIOS call "INT 0x13 Function 0x42" to read sectors from disk into memory
- *     Call with       %ah = 0x42
- *                     %dl = drive (0x0 for floppy disk, or emulated CD)
- *                     %ds:%si = ptr to disk address packet
- *     Return:
- *                     %ah = 0x0 on success; err code on failure
- */
-
-ENTRY(biosreadlba)
-       push    %ebp
-       mov     %esp, %ebp
-
-       push    %ebx
-       push    %esi
-
-       movw    8(%ebp), %si
-       movl    $0, %edx                /* emulated CD is always drive 0 */
-
-       /* prot_to_real will set %es to BOOTSEG */
-       call    EXT(prot_to_real)       /* enter real mode */
-       movw    $0x4200, %ax            /* subfunction */
-       movb    $0, %dl
-
-       sti
-       int     $0x13
-       cli
-
-       /* save return value (actually movw %ax, %bx) */
-       mov     %eax, %ebx
-
-       data32
-       call    EXT(real_to_prot)       /* back to protected mode */
-
-       xor     %eax, %eax
-       movb    %bh, %al                /* return value in %ax */
-
-       pop     %esi
-       pop     %ebx
-       pop     %ebp
-
-       ret
-
-#endif /* !CDBOOT */
-
-/*
- * putc(ch)
- * BIOS call "INT 10H Function 0Eh" to write character to console
- *     Call with       %ah = 0x0e
- *                     %al = character
- *                     %bh = page
- *                     %bl = foreground color ( graphics modes)
- */
-
-
-ENTRY(putc)
-       push    %ebp
-       mov     %esp, %ebp
-       push    %ebx
-       push    %esi
-       push    %edi
-
-       movb    0x8(%ebp), %cl
-
-       call    EXT(prot_to_real)
-
-       data32
-       mov     $0x1, %ebx              /* %bh=0, %bl=1 (blue) */
-       movb    $0xe, %ah
-       movb    %cl, %al
-       sti
-       int     $0x10                   /* display a byte */
-       cli
-
-       data32
-       call    EXT(real_to_prot)
-
-       pop     %edi
-       pop     %esi
-       pop     %ebx
-       pop     %ebp
-       ret
-
-
-/*
- * getc()
- * BIOS call "INT 16H Function 00H" to read character from keyboard
- *     Call with       %ah = 0x0
- *     Return:         %ah = keyboard scan code
- *                     %al = ASCII character
- */
-
-ENTRY(getc)
-       push    %ebp
-       mov     %esp, %ebp
-       push    %ebx                    /* save %ebx */
-       push    %esi
-       push    %edi
-
-       call    EXT(prot_to_real)
-
-       movb    $0x0, %ah
-       sti
-       int     $0x16
-       cli
-
-       movb    %al, %bl                /* real_to_prot uses %eax */
-
-       data32
-       call    EXT(real_to_prot)
-
-       xor     %eax, %eax
-       movb    %bl, %al
-
-       pop     %edi
-       pop     %esi
-       pop     %ebx
-       pop     %ebp
-       ret
-/*
- * ischar()
- *     if there is a character pending, return it; otherwise return 0
- * BIOS call "INT 16H Function 01H" to check whether a character is pending
- *     Call with       %ah = 0x1
- *     Return:
- *             If key waiting to be input:
- *                     %ah = keyboard scan code
- *                     %al = ASCII character
- *                     Zero flag = clear
- *             else
- *                     Zero flag = set
- */
-ENTRY(ischar)
-       push    %ebp
-       mov     %esp, %ebp
-       push    %ebx
-       push    %esi
-       push    %edi
-
-       call    EXT(prot_to_real)       /* enter real mode */
-
-       xor     %ebx, %ebx
-       movb    $0x1, %ah
-       sti
-       int     $0x16
-       cli
-       data32
-       jz      nochar
-       movb    %al, %bl
-
-nochar:
-       data32
-       call    EXT(real_to_prot)
-
-       xor     %eax, %eax
-       movb    %bl, %al
-
-       pop     %edi
-       pop     %esi
-       pop     %ebx
-       pop     %ebp
-       ret
-
-/*
- *
- * get_diskinfo():  return a word that represents the
- *     max number of sectors and heads and drives for this device
- *
- */
-
-ENTRY(get_diskinfo)
-       push    %ebp
-       mov     %esp, %ebp
-       push    %ebx
-       push    %esi
-       push    %edi
-
-       movb    0x8(%ebp), %dl          /* diskinfo(drive #) */
-       call    EXT(prot_to_real)       /* enter real mode */
-
-       movb    $0x8, %ah               /* ask for disk info */
-
-       sti
-       int     $0x13
-       cli
-
-       jnc     ok
-       /*
-        * Urk.  Call failed.  It is not supported for floppies by old BIOS's.
-        * Guess it's a 15-sector floppy.
-        */
-       subb    %ah, %ah                /* %ax = 0 */
-       movb    %al, %al
-       movb    %ah, %bh                /* %bh = 0 */
-       movb    $2, %bl                 /* %bl  bits 0-3 = drive type,
-                                               bit    2 = 1.2M */
-       movb    $79, %ch                /* max track */
-       movb    $15, %cl                /* max sector */
-       movb    $1, %dh                 /* max head */
-       movb    $1, %dl                 /* # floppy drives installed */
-       /* es:di = parameter table */
-       /* carry = 0 */
-ok:
-
-       data32
-       call    EXT(real_to_prot)       /* back to protected mode */
-
-       /* 
-        * form a longword representing all this gunk:
-        *       6 bit zero
-        *      10 bit max cylinder (0 based)
-        *       8 bit max head (0 based)
-        *       2 bit zero
-        *       6 bit max sector (1 based) = # sectors
-        */
-       movb    %cl, %al                /* Upper two bits of cylinder count */
-       andl    $192,%eax       
-       leal    0(,%eax,4),%eax         /* << 2 */
-       movb    %ch, %al                /* Lower 8 bits */
-       sall    $16,%eax                /* << 16 */
-       movb    %dh, %ah                /* max head */
-       andb    $0x3f, %cl              /* mask of cylinder gunk */
-       movb    %cl, %al                /* max sector (and # sectors) */
-
-       pop     %edi
-       pop     %esi
-       pop     %ebx
-       pop     %ebp
-       ret
-
-/*
- *
- * memsize(i) :  return the memory size in KB. i == 0 for conventional memory,
- *             i == 1 for extended memory
- *     BIOS call "INT 12H" to get conventional memory size
- *     BIOS call "INT 15H, AH=88H" to get extended memory size
- *             Both have the return value in AX.
- *
- */
-
-ENTRY(memsize)
-       push    %ebp
-       mov     %esp, %ebp
-       push    %ebx
-       push    %esi
-       push    %edi
-
-       mov     8(%ebp), %ebx
-
-       call    EXT(prot_to_real)       /* enter real mode */
-
-       cmpb    $0x1, %bl
-       data32
-       je      xext
-       
-       sti
-       int     $0x12
-       cli
-       data32
-       jmp     xdone
-
-xext:  movb    $0x88, %ah
-       sti
-       int     $0x15
-       cli
-
-xdone:
-       pushl   $0                      /* actually pushw $0 */
-       pushl   %eax                    /* actually pushw %ax */
-
-       data32
-       call    EXT(real_to_prot)
-
-       pop     %eax
-       pop     %edi
-       pop     %esi
-       pop     %ebx
-       pop     %ebp
-       ret
diff --git a/sys/i386/boot/biosboot/boot.c b/sys/i386/boot/biosboot/boot.c
deleted file mode 100644 (file)
index 6dd98e9..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, [92/04/03  16:51:14  rvb]
- * $FreeBSD: src/sys/i386/boot/biosboot/boot.c,v 1.76 1999/12/08 09:32:47 phk Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/boot.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-
-/*
-  Copyright 1988, 1989, 1990, 1991, 1992
-   by Intel Corporation, Santa Clara, California.
-
-                All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-#include <sys/param.h>
-#include "boot.h"
-#include <a.out.h>
-#include <sys/reboot.h>
-#include <machine/bootinfo.h>
-
-#define        ouraddr (BOOTSEG << 4)          /* XXX */
-
-#define        BOOT_CONFIG_SIZE        512
-#define        BOOT_HELP_SIZE          2048
-#define        KERNEL_CONFIG_SIZE      512
-#define        NAMEBUF_LEN             1024    /* oversized to defend against gets() */
-
-static char boot_config[BOOT_CONFIG_SIZE];
-static char boot_help[BOOT_HELP_SIZE];
-#ifdef NAMEBLOCK
-char *dflt_name;
-#endif
-char *name;
-static char kernel_config[KERNEL_CONFIG_SIZE];
-static char kernel_config_namebuf[NAMEBUF_LEN + sizeof "config"];
-static char linebuf[NAMEBUF_LEN];
-static char namebuf[NAMEBUF_LEN];
-static struct bootinfo bootinfo;
-int loadflags;
-
-static void getbootdev(char *ptr, int *howto);
-static void loadprog(void);
-static void readfile(char *path, char *buf, size_t nbytes);
-
-/* NORETURN */
-void
-boot(int drive)
-{
-       int ret;
-
-       /* Pick up the story from the Bios on geometry of disks */
-
-       for(ret = 0; ret < N_BIOS_GEOM; ret ++)
-               bootinfo.bi_bios_geom[ret] = get_diskinfo(ret + 0x80);
-
-       bootinfo.bi_basemem = memsize(0);
-       bootinfo.bi_extmem = memsize(1);
-       bootinfo.bi_memsizes_valid = 1;
-
-       gateA20();
-
-       /*
-        * The default boot device is the first partition in the
-        * compatibility slice on the boot drive.
-        */
-       dosdev = drive;
-       maj = 2;
-       unit = drive & 0x7f;
-#ifdef dontneed
-       slice = 0;
-       part = 0;
-#endif
-       if (drive & 0x80) {
-               /* Hard drive.  Adjust. */
-               maj = 0;
-#if BOOT_HD_BIAS > 0
-               if (unit >= BOOT_HD_BIAS) {
-                       /*
-                        * The drive is probably a SCSI drive with a unit
-                        * number BOOT_HD_BIAS less than the BIOS drive
-                        * number.
-                        */
-                       maj = 4;
-                       unit -= BOOT_HD_BIAS;
-               }
-#endif
-       }
-#ifndef RAWBOOT
-       readfile("boot.config", boot_config, BOOT_CONFIG_SIZE);
-       readfile("boot.help", boot_help, BOOT_HELP_SIZE);
-#endif
-#ifdef NAMEBLOCK
-       /*
-        * XXX
-        * DAMN! I don't understand why this is not being set 
-        * by the code in boot2.S
-        */
-       dflt_name= (char *)0x0000ffb0;
-       if( (*dflt_name++ == 'D') && (*dflt_name++ == 'N')) {
-               name = dflt_name;
-       } else
-#endif /*NAMEBLOCK*/
-               name = "kernel";
-       if (boot_config[0] != '\0') {
-               printf("boot.config: %s", boot_config);
-               getbootdev(boot_config, &loadflags);
-               if (openrd() != 0)
-                       name = "kernel";
-       }
-loadstart:
-       /* print this all each time.. (saves space to do so) */
-       /* If we have looped, use the previous entries as defaults */
-       printf("\r \n>> FreeBSD BOOT @ 0x%x: %d/%d k of memory, %s%s console\n"
-              "Boot default: %d:%s(%d,%c)%s\n"
-              "%s\n"
-              "boot: ",
-              ouraddr, bootinfo.bi_basemem, bootinfo.bi_extmem,
-              (loadflags & RB_SERIAL) ? "serial" : "internal",
-              (loadflags & RB_DUAL) ? "/dual" : "",
-              dosdev & 0x7f, devs[maj], unit, 'a' + part,
-              name ? name : "*specify_a_kernel_name*",
-              boot_help);
-
-       /*
-        * Ignore flags from previous attempted boot, if any.
-        * XXX this is now too strict.  Settings given in boot.config should
-        * not be changed.
-        */
-       loadflags &= (RB_DUAL | RB_SERIAL);
-
-       /*
-        * Be paranoid and make doubly sure that the input buffer is empty.
-        */
-       if (loadflags & (RB_DUAL | RB_SERIAL))
-               init_serial();
-
-       if (!gets(linebuf))
-               putchar('\n');
-       else
-               getbootdev(linebuf, &loadflags);
-       if (name == NULL)
-               goto loadstart;
-       ret = openrd();
-       if (ret != 0) {
-               if (ret > 0)
-                       printf("Can't find %s\n", name);
-               goto loadstart;
-       }
-/*     if (inode.i_mode&IEXEC)
-               loadflags |= RB_KDB;
-*/
-       loadprog();
-       goto loadstart;
-}
-
-static void
-loadprog(void)
-{
-       struct exec head;
-       int startaddr;
-       int addr;       /* physical address.. not directly useable */
-       int bootdev;
-       int i;
-       unsigned pad;
-       char *s, *t;
-
-       read((void *)&head, sizeof(head));
-       if ( N_BADMAG(head)) {
-               printf("Invalid format!\n");
-               return;
-       }
-
-       poff = N_TXTOFF(head);
-       /*if(poff==0)
-               poff = 32;*/
-
-       /*
-        * We assume that the entry address is the same as the lowest text
-        * address and that the kernel startup code handles relocation by
-        * this address rounded down to a multiple of 16M.
-        */
-       startaddr = head.a_entry & 0x00FFFFFF;
-       addr =  startaddr;
-       printf("Booting %d:%s(%d,%c)%s @ 0x%x\n"
-                       , dosdev & 0x7f
-                       , devs[maj]
-                       , unit
-                       , 'a'+part
-                       , name
-                       , addr);
-       if(addr < 0x00100000)
-       {
-               /*
-                * Bail out, instead of risking to damage the BIOS
-                * variables, the loader, or the adapter memory area.
-                * We don't support loading below 1 MB any more.
-                */
-               printf("Start address too low\n");
-               return;
-       }
-       printf("text=0x%x ", head.a_text);
-       /********************************************************/
-       /* LOAD THE TEXT SEGMENT                                */
-       /********************************************************/
-       xread((void *)addr, head.a_text);
-       addr += head.a_text;
-
-       /********************************************************/
-       /* Load the Initialised data after the text             */
-       /********************************************************/
-       while (addr & PAGE_MASK)
-                *(char *)addr++ = 0;
-
-       printf("data=0x%x ", head.a_data);
-       xread((void *)addr, head.a_data);
-       addr += head.a_data;
-
-       /********************************************************/
-       /* Skip over the uninitialised data                     */
-       /* (but clear it)                                       */
-       /********************************************************/
-       printf("bss=0x%x ", head.a_bss);
-
-/*
- * XXX however, we should be checking that we don't load ... into
- * nonexistent memory.  A full symbol table is unlikely to fit on 4MB
- * machines.
- */
-       /* kzip & kernel will zero their own bss */
-       addr += head.a_bss;
-
-       /* Pad to a page boundary. */
-       pad = (unsigned)addr & PAGE_MASK;
-       if (pad != 0) {
-               pad = PAGE_SIZE - pad;
-               addr += pad;
-       }
-       bootinfo.bi_symtab = addr;
-
-       /********************************************************/
-       /* Copy the symbol table size                           */
-       /********************************************************/
-       pcpy(&head.a_syms, (void *)addr, sizeof(head.a_syms));
-       addr += sizeof(head.a_syms);
-
-       /********************************************************/
-       /* Load the symbol table                                */
-       /********************************************************/
-       printf("symbols=[+0x%x+0x%x+0x%x", pad, sizeof(head.a_syms),
-              head.a_syms);
-       xread((void *)addr, head.a_syms);
-       addr += head.a_syms;
-
-       /********************************************************/
-       /* Load the string table size                           */
-       /********************************************************/
-       read((void *)&i, sizeof(int));
-       pcpy(&i, (void *)addr, sizeof(int));
-       i -= sizeof(int);
-       addr += sizeof(int);
-
-       /********************************************************/
-       /* Load the string table                                */
-       /********************************************************/
-       printf("+0x%x+0x%x]\n", sizeof(int), i);
-       xread((void *)addr, i);
-       addr += i;
-
-       bootinfo.bi_esymtab = addr;
-
-       /*
-        * For backwards compatibility, use the previously-unused adaptor
-        * and controller bitfields to hold the slice number.
-        */
-       bootdev = MAKEBOOTDEV(maj, (slice >> 4), slice & 0xf, unit, part);
-
-       bootinfo.bi_version = BOOTINFO_VERSION;
-       bootinfo.bi_kernelname = (u_int32_t)(name + ouraddr);
-       bootinfo.bi_nfs_diskless = 0;
-       bootinfo.bi_size = sizeof(bootinfo);
-       bootinfo.bi_bios_dev = dosdev;
-
-       /*
-        * Load the kernel config file (if any).  Its name is given by
-        * appending ".config" to the kernel name.  Build the name inline
-        * because no str*() functions are available.  The file has to be
-        * copied to &disklabel for userconfig.  It can't be loaded there
-        * directly because the label is used late in readfile() in some
-        * unusual cases.
-        */
-       s = name;
-       t = kernel_config_namebuf;
-       do
-               ;
-       while ((*t++ = *s++) != '\0');
-       s = ".config";
-       --t;
-       do
-               ;
-       while ((*t++ = *s++) != '\0');
-       readfile(kernel_config_namebuf, kernel_config, KERNEL_CONFIG_SIZE);
-       pcpy(kernel_config, (char *)&disklabel + ouraddr, KERNEL_CONFIG_SIZE);
-
-       printf("total=0x%x entry point=0x%x\n", addr, startaddr);
-       startprog(startaddr, loadflags | RB_BOOTINFO, bootdev,
-                 (unsigned)&bootinfo + ouraddr);
-}
-
-static void
-readfile(char *path, char *buf, size_t nbytes)
-{
-       int openstatus;
-
-       buf[0] = '\0';
-       name = path;
-       openstatus = openrd();
-       if (openstatus != 0) {
-               if (openstatus > 0)
-                       printf("Can't find file %s\n", name);
-       } else {
-               /* XXX no way to determine file size. */
-               read(buf, nbytes);
-       }
-       buf[nbytes - 1] = '\0';
-}
-
-static void
-getbootdev(char *ptr, int *howto)
-{
-       char c;
-       int f;
-       char *p;
-
-       /* Copy the flags to save some bytes. */
-       f = *howto;
-
-       c = *ptr;
-       for (;;) {
-nextarg:
-               while (c == ' ' || c == '\n')
-                       c = *++ptr;
-               if (c == '-')
-                       while ((c = *++ptr) != '\0') {
-                               if (c == ' ' || c == '\n')
-                                       goto nextarg;
-                               if (c == 'a')
-                                       f |= RB_ASKNAME;
-                               if (c == 'C')
-                                       f |= RB_CDROM;
-                               if (c == 'c')
-                                       f |= RB_CONFIG;
-                               if (c == 'D')
-                                       f ^= RB_DUAL;
-                               if (c == 'd')
-                                       f |= RB_KDB;
-                               if (c == 'g')
-                                       f |= RB_GDB;
-                               if (c == 'h')
-                                       f ^= RB_SERIAL;
-                               if (c == 'P')
-                                       f |= RB_PROBEKBD;
-                               if (c == 'r')
-                                       f |= RB_DFLTROOT;
-                               if (c == 's')
-                                       f |= RB_SINGLE;
-                               if (c == 'v')
-                                       f |= RB_VERBOSE;
-                       }
-               if (c == '\0')
-                       break;
-               p = name = namebuf;
-               while (c != '\0' && c != ' ' && c != '\n') {
-                       *p++ = c;
-                       c = *++ptr;
-               }
-               *p = '\0';
-       }
-       if (f & RB_PROBEKBD) {
-               if (probe_keyboard()) {
-                       f |= RB_DUAL | RB_SERIAL;
-                       printf("No keyboard found\n");
-               } else
-                       printf("Keyboard found\n");
-       }
-       if (f & (RB_DUAL | RB_SERIAL))
-               init_serial();
-       *howto = f;
-}
diff --git a/sys/i386/boot/biosboot/boot.h b/sys/i386/boot/biosboot/boot.h
deleted file mode 100644 (file)
index 4e3f75d..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:35:03  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/boot.h,v 1.25 1999/08/28 00:43:12 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/boot.h,v 1.3 2003/08/07 21:17:20 dillon Exp $
- */
-
-#include <sys/param.h>
-#include <sys/time.h>
-
-#include <vfs/ufs/fs.h>
-#include <vfs/ufs/quota.h>
-#include <vfs/ufs/inode.h>
-
-#define        RB_DUAL         0x40000         /* XXX */
-#define        RB_PROBEKBD     0x80000         /* XXX */
-
-extern char *devs[];
-extern char *name;
-extern struct fs *fs;
-extern struct inode inode;
-extern int dosdev, unit, slice, part, maj, boff, poff;
-extern unsigned tw_chars;
-extern int loadflags;
-extern struct disklabel disklabel;
-
-/* asm.S */
-#if ASM_ONLY
-void real_to_prot(void);
-void prot_to_real(void);
-#endif
-void startprog(unsigned int physaddr, int howto, int bootdev,
-              /* XXX struct bootinfo * */ unsigned int bootinfo);
-void pcpy(const void *src, void *dst, size_t count);
-
-/* bios.S */
-int biosread(int dev, int cyl, int head, int sec, int nsec, void *offset);
-void putc(int c);
-int getc(void);
-int ischar(void);
-int get_diskinfo(int drive);
-int memsize(int extended);
-void vesa_mode(int mode);
-
-/* boot.c */
-void boot(int drive);
-
-/* boot2.S */
-void boot2(void);
-
-/* disk.c */
-int devopen(void);
-void devread(char *iodest, int sector, int cnt);
-
-/* io.c */
-void gateA20(void);
-void printf(const char *format, ...);
-void putchar(int c);
-void delay1ms(void);
-int gets(char *buf);
-int strcmp(const char *s1, const char *s2);
-#ifdef CDBOOT
-int strcasecmp(const char *s1, const char *s2);
-#endif /* !CDBOOT */
-void bcopy(const void *from, void *to, size_t len);
-void twiddle(void);
-
-/* probe_keyboard.c */
-int probe_keyboard(void);
-
-/* serial.S */
-void serial_putc(int ch);
-int serial_getc(void);
-int serial_ischar(void);
-void init_serial(void);
-
-/* sys.c */
-void xread(char *addr, int size);
-void read(char *buffer, int count);
-int openrd(void);
diff --git a/sys/i386/boot/biosboot/boot.help b/sys/i386/boot/biosboot/boot.help
deleted file mode 100644 (file)
index 396fd94..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Usage: bios_drive:interface(unit,partition)kernel_name options
-    bios_drive   0, 1, ...
-    interface    fd, wd or da
-    unit         0, 1, ...
-    partition    a, c, ...
-    kernel_name  name of kernel, or ? for list of files in root directory
-    options      -a (ask name) -C (cdrom) -c (userconfig) -D (dual consoles)
-                 -d (debug early) -g (gdb) -h (serial console) -P (probe kbd)
-                 -r (default root) -s (single user) -v (verbose)
-Examples:
-    1:da(0,a)mykernel  boot `mykernel' on the first SCSI drive when one IDE
-                       drive is present
-    1:wd(2,a)          boot from the second (secondary master) IDE drive
-    1:da(0,a)?         list the files in the root directory on the specified
-                       drive/unit/partition, and set the default bios_drive,
-                       interface, unit and partition
-    -cv                boot with the defaults, then run UserConfig to modify
-                       hardware parameters (c), and print verbose messages (v)
diff --git a/sys/i386/boot/biosboot/boot2.S b/sys/i386/boot/biosboot/boot2.S
deleted file mode 100644 (file)
index d9790d3..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:35:26  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/boot2.S,v 1.12 1999/08/28 00:43:13 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/boot2.S,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-#include       "asm.h"
-
-/* Conventional GDT indexes. */
-#define BOOT_CS_INDEX          3
-#define BOOT_CS16_INDEX                5
-#define BOOT_DS_INDEX          4
-
-#ifdef BDE_DEBUGGER
-#define DB_CS_INDEX            14
-#define DB_CS16_INDEX          15
-#define DB_DS_INDEX            16
-#define GDT_INDEX              17
-#endif
-
-/* Vector numbers. */
-#define BREAKPOINT_VECTOR      3
-#define DEBUG_VECTOR           1
-
-/*
- * boot2() -- second stage boot
- * SP points to default string if found
- */
-
-ENTRY(boot2)
-       data32
-       subl    %eax, %eax
-       mov     %cs, %ax
-       mov     %ax, %ds
-       mov     %ax, %es
-       data32
-       shll    $4, %eax
-
-       /* fix up GDT entries for bootstrap */
-#define FIXUP(gdt_index) \
-       addr32; \
-       movl    %eax, EXT(Gdt)+(8*gdt_index)+2; /* actually movw %ax */ \
-       addr32; \
-       movb    %bl, EXT(Gdt)+(8*gdt_index)+4
-
-       data32
-       shld    $16, %eax, %ebx
-       FIXUP(BOOT_CS_INDEX)
-       FIXUP(BOOT_CS16_INDEX)
-       FIXUP(BOOT_DS_INDEX)
-
-       /* fix up GDT pointer */
-       data32
-       movl    %eax, %ecx
-       data32
-       addl    $ EXT(Gdt), %eax
-       addr32
-       data32
-       movl    %eax, EXT(Gdtr)+2
-
-#ifdef BDE_DEBUGGER
-       /* fix up GDT entry for GDT */
-       data32
-       shld    $16, %eax, %ebx
-       FIXUP(GDT_INDEX)
-
-       /* fix up IDT pointer */
-       data32
-       addl    $ EXT(Idt), %ecx
-       addr32
-       data32
-       movl    %ecx, EXT(Idtr_prot)+2
-
-       /* %es = vector table segment for a while */
-       push    %es
-       data32
-       subl    %eax, %eax
-       mov     %ax, %es
-
-       /* fix up GDT entries for bdb */
-       data32
-       movl    $4*DEBUG_VECTOR, %esi
-       addr32
-       movl    %es: 2(%esi), %eax      /* actually movw to %ax */
-       data32
-       shll    $4, %eax
-       data32
-       shld    $16, %eax, %ebx
-       FIXUP(DB_CS_INDEX)
-       FIXUP(DB_CS16_INDEX)
-       FIXUP(DB_DS_INDEX)
-
-       /* Fetch entry points of bdb's protected mode trap handlers.  These
-        * are stored at 2 before the corresponding entry points for real mode.
-        */
-       data32
-       subl    %ebx, %ebx
-       addr32
-       movl    %es: (%esi), %ebx       /* actually movw to %bx */
-       data32
-       subl    %ecx, %ecx
-       addr32
-       movl    %es: 4*(BREAKPOINT_VECTOR-DEBUG_VECTOR)(%esi), %ecx
-                                       /* actually movw to %cx */
-
-       /* %es = bdb segment for a while */
-       data32
-       shrl    $4, %eax
-       mov     %ax, %es
-
-       /* fix up IDT entries for bdb */
-       data32
-       subl    $2, %ebx                /* calculate EA to check it */
-       jb      1f                      /* give up if it would trap */
-       addr32
-       movl    %es: (%ebx), %eax       /* actually movw to %ax */
-       addr32
-       movl    %eax, EXT(Idt)+8*DEBUG_VECTOR   /* actually movw %ax */
-1:
-       data32
-       subl    $2, %ecx
-       jb      1f
-       addr32
-       movl    %es: (%ecx), %eax       /* actually movw to %ax */
-       addr32
-       movl    %eax, EXT(Idt)+8*BREAKPOINT_VECTOR      /* actually movw %ax */
-1:
-
-       /* finished with groping in real mode segments */
-       pop     %es
-#endif /* BDE_DEBUGGER */
-
-       /* change to protected mode */
-       data32
-       call    EXT(real_to_prot)
-
-       /* clear the bss */
-       movl    $ EXT(edata), %edi      /* no EXT(_edata) - krufty ld */
-       movl    $ EXT(end), %ecx        /* or EXT(_end) */
-       subl    %edi, %ecx
-       subb    %al, %al
-       rep
-       stosb
-
-#ifdef NAMEBLOCK
-       movl    %esp, EXT(dflt_name)
-#endif
-
-       movzbl  %dl, %edx       /* discard head (%dh) and random high bits */
-       pushl   %edx
-       call    EXT(boot)
-oops:
-       hlt
-       jmp     oops
diff --git a/sys/i386/boot/biosboot/disk.c b/sys/i386/boot/biosboot/disk.c
deleted file mode 100644 (file)
index 57f3512..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:35:49  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/disk.c,v 1.28 1999/12/08 09:32:48 phk Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/disk.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-/*
- * 93/10/08  bde
- *     If there is no 386BSD partition, initialize the label sector with
- *     LABELSECTOR instead of with garbage.
- *
- * 93/08/22  bde
- *     Fixed reading of bad sector table.  It is at the end of the 'c'
- *     partition, which is not always at the end of the disk.
- */
-
-#include "boot.h"
-#include <sys/disklabel.h>
-#include <sys/diskslice.h>
-
-#define        BIOS_DEV_FLOPPY 0x0
-#define        BIOS_DEV_WIN    0x80
-
-#define BPS            512
-#define        SPT(di)         ((di)&0xff)
-#define        HEADS(di)       ((((di)>>8)&0xff)+1)
-
-static int bsize;
-
-static int spt, spc;
-
-struct fs *fs;
-struct inode inode;
-int dosdev, unit, slice, part, maj, boff;
-
-/*#define EMBEDDED_DISKLABEL 1*/
-
-/* Read ahead buffer large enough for one track on a 1440K floppy.  For
- * reading from floppies, the bootstrap has to be loaded on a 64K boundary
- * to ensure that this buffer doesn't cross a 64K DMA boundary.
- */
-#define RA_SECTORS     18
-static char ra_buf[RA_SECTORS * BPS];
-static int ra_dev;
-static int ra_end;
-static int ra_first;
-
-static char *Bread(int dosdev, int sector);
-
-int
-devopen(void)
-{
-       struct dos_partition *dptr;
-       struct disklabel *dl;
-       char *p;
-       int i, sector = 0, di, dosdev_copy;
-
-       dosdev_copy = dosdev;
-       di = get_diskinfo(dosdev_copy);
-       spt = SPT(di);
-
-       /* Hack for 2.88MB floppy drives. */
-       if (!(dosdev_copy & 0x80) && spt == 36)
-               spt = 18;
-
-       spc = spt * HEADS(di);
-
-#ifndef RAWBOOT
-       {
-#ifdef EMBEDDED_DISKLABEL
-               dl = &disklabel;
-#else  EMBEDDED_DISKLABEL
-               p = Bread(dosdev_copy, 0);
-               dptr = (struct dos_partition *)(p+DOSPARTOFF);
-               slice = WHOLE_DISK_SLICE;
-               for (i = 0; i < NDOSPART; i++, dptr++)
-                       if (dptr->dp_typ == DOSPTYP_386BSD) {
-                               slice = BASE_SLICE + i;
-                               sector = dptr->dp_start;
-                               break;
-                       }
-               p = Bread(dosdev_copy, sector + LABELSECTOR);
-               dl=((struct disklabel *)p);
-               disklabel = *dl;        /* structure copy (maybe useful later)*/
-#endif EMBEDDED_DISKLABEL
-               if (dl->d_magic != DISKMAGIC) {
-                       printf("bad disklabel\n");
-                       return 1;
-               }
-               if( (maj == 4) || (maj == 0) || (maj == 1))
-               {
-                       if (dl->d_type == DTYPE_SCSI)
-                       {
-                               maj = 4; /* use scsi as boot dev */
-                       }
-                       else
-                       {
-                               maj = 0; /* must be ESDI/IDE */
-                       }
-               }
-               /* This little trick is for OnTrack DiskManager disks */
-               boff = dl->d_partitions[part].p_offset -
-                       dl->d_partitions[2].p_offset + sector;
-
-               bsize = dl->d_partitions[part].p_size;
-               if (bsize == 0) {
-                       printf("empty partition\n");
-                       return 1;
-               }
-
-       }
-#endif /* RAWBOOT */
-       return 0;
-}
-
-
-/*
- * Be aware that cnt is rounded up to N*BPS
- */
-void
-devread(char *iodest, int sector, int cnt)
-{
-       int offset;
-       char *p;
-       int dosdev_copy;
-
-       for (offset = 0; offset < cnt; offset += BPS)
-       {
-               dosdev_copy = dosdev;
-               p = Bread(dosdev_copy, sector++);
-               bcopy(p, iodest+offset, BPS);
-       }
-}
-
-
-static char *
-Bread(int dosdev, int sector)
-{
-       if (dosdev != ra_dev || sector < ra_first || sector >= ra_end)
-       {
-               int cyl, head, sec, nsec;
-
-               cyl = sector/spc;
-               if (cyl > 1023) {
-                       printf("Error: C:%d > 1023 (BIOS limit)\n", cyl);
-                       for(;;);        /* loop forever */
-               }
-               head = (sector % spc) / spt;
-               sec = sector % spt;
-               nsec = spt - sec;
-               if (nsec > RA_SECTORS)
-                       nsec = RA_SECTORS;
-               twiddle();
-               if (biosread(dosdev, cyl, head, sec, nsec, ra_buf) != 0)
-               {
-                   nsec = 1;
-                   twiddle();
-                   while (biosread(dosdev, cyl, head, sec, nsec, ra_buf) != 0) {
-                       printf("Error: D:0x%x C:%d H:%d S:%d\n",
-                              dosdev, cyl, head, sec);
-                       twiddle();
-                   }
-               }
-               ra_dev = dosdev;
-               ra_first = sector;
-               ra_end = sector + nsec;
-       }
-       return (ra_buf + (sector - ra_first) * BPS);
-}
diff --git a/sys/i386/boot/biosboot/io.c b/sys/i386/boot/biosboot/io.c
deleted file mode 100644 (file)
index 4725bff..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:35:57  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/io.c,v 1.26 1999/08/28 00:43:13 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/io.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-#include "boot.h"
-#include <machine/cpufunc.h>
-#include <sys/reboot.h>
-
-#define K_RDWR                 0x60            /* keyboard data & cmds (read/write) */
-#define K_STATUS       0x64            /* keyboard status */
-#define K_CMD          0x64            /* keybd ctlr command (write-only) */
-
-#define K_OBUF_FUL     0x01            /* output buffer full */
-#define K_IBUF_FUL     0x02            /* input buffer full */
-
-#define KC_CMD_WIN     0xd0            /* read  output port */
-#define KC_CMD_WOUT    0xd1            /* write output port */
-#define KB_A20         0xdf            /* enable A20,
-                                          enable output buffer full interrupt
-                                          enable data line
-                                          enable clock line */
-
-
-static int getchar(int in_buf);
-
-/*
- * Gate A20 for high memory
- */
-void
-gateA20(void)
-{
-#ifdef IBM_L40
-       outb(0x92, 0x2);
-#else  /* !IBM_L40 */
-       while (inb(K_STATUS) & K_IBUF_FUL);
-       while (inb(K_STATUS) & K_OBUF_FUL)
-               (void)inb(K_RDWR);
-
-       outb(K_CMD, KC_CMD_WOUT);
-       while (inb(K_STATUS) & K_IBUF_FUL);
-       outb(K_RDWR, KB_A20);
-       while (inb(K_STATUS) & K_IBUF_FUL);
-#endif /* IBM_L40 */
-}
-
-/* printf - only handles %d as decimal, %c as char, %s as string */
-
-void
-printf(const char *format, ...)
-{
-       int *dataptr = (int *)&format;
-       char c;
-
-       dataptr++;
-       while ((c = *format++))
-               if (c != '%')
-                       putchar(c);
-               else
-                       switch (c = *format++) {
-                             case 'd': {
-                                     int num = *dataptr++;
-                                     char buf[10], *ptr = buf;
-                                     if (num<0) {
-                                             num = -num;
-                                             putchar('-');
-                                     }
-                                     do
-                                             *ptr++ = '0'+num%10;
-                                     while (num /= 10);
-                                     do
-                                             putchar(*--ptr);
-                                     while (ptr != buf);
-                                     break;
-                             }
-                             case 'x': {
-                                     unsigned int num = *dataptr++, dig;
-                                     char buf[8], *ptr = buf;
-                                     do
-                                             *ptr++ = (dig=(num&0xf)) > 9?
-                                                       'a' + dig - 10 :
-                                                       '0' + dig;
-                                     while (num >>= 4);
-                                     do
-                                             putchar(*--ptr);
-                                     while (ptr != buf);
-                                     break;
-                             }
-                             case 'c': putchar((*dataptr++)&0xff); break;
-                             case 's': {
-                                     char *ptr = (char *)*dataptr++;
-                                     while ((c = *ptr++))
-                                             putchar(c);
-                                     break;
-                             }
-                       }
-}
-
-void
-putchar(int c)
-{
-       if (c == '\n')
-               putchar('\r');
-       if (loadflags & RB_DUAL) {
-               putc(c);
-               serial_putc(c);
-       } else if (loadflags & RB_SERIAL)
-               serial_putc(c);
-       else
-               putc(c);
-}
-
-static int
-getchar(int in_buf)
-{
-       int c;
-
-loop:
-       if (loadflags & RB_DUAL) {
-               if (ischar())
-                       c = getc();
-               else if (serial_ischar())
-                       c = serial_getc();
-               else
-                       goto loop;
-       } else if (loadflags & RB_SERIAL)
-               c = serial_getc();
-       else
-               c = getc();
-       if (c == '\r')
-               c = '\n';
-       if (c == '\b') {
-               if (in_buf != 0) {
-                       putchar('\b');
-                       putchar(' ');
-               } else {
-                       goto loop;
-               }
-       }
-       putchar(c);
-       return(c);
-}
-
-/*
- * This routine uses an inb to an unused port, the time to execute that
- * inb is approximately 1.25uS.  This value is pretty constant across
- * all CPU's and all buses, with the exception of some PCI implentations
- * that do not forward this I/O adress to the ISA bus as they know it
- * is not a valid ISA bus address, those machines execute this inb in
- * 60 nS :-(.
- *
- * XXX this should be converted to use bios_tick.
- */
-void
-delay1ms(void)
-{
-       int i = 800;
-       while (--i >= 0)
-               (void)inb(0x84);
-}
-
-static __inline int
-isch(void)
-{
-       int isc;
-
-       /*
-        * Checking the keyboard has the side effect of enabling clock
-        * interrupts so that bios_tick works.  Check the keyboard to
-        * get this side effect even if we only want the serial status.
-        */
-       isc = ischar();
-
-       if (loadflags & RB_DUAL) {
-               if (isc != 0)
-                       return (isc);
-       } else if (!(loadflags & RB_SERIAL))
-               return (isc);
-       return (serial_ischar());
-}
-
-static __inline unsigned
-pword(unsigned physaddr)
-{
-       unsigned result;
-
-       /*
-        * Give the fs prefix separately because gas omits it for
-        * "movl %fs:0x46c, %eax".
-        */
-       __asm __volatile("fs; movl %1, %0" : "=r" (result)
-                        : "m" (*(unsigned *)physaddr));
-       return (result);
-}
-
-int
-gets(char *buf)
-{
-#define bios_tick              pword(0x46c)
-#define BIOS_TICK_MS           55
-       unsigned initial_bios_tick;
-       char *ptr=buf;
-
-#if BOOTWAIT
-       for (initial_bios_tick = bios_tick;
-            bios_tick - initial_bios_tick < BOOTWAIT / BIOS_TICK_MS;)
-#endif
-               if (isch())
-                       for (;;) {
-                               switch(*ptr = getchar(ptr - buf) & 0xff) {
-                                     case '\n':
-                                     case '\r':
-                                       *ptr = '\0';
-                                       return 1;
-                                     case '\b':
-                                       if (ptr > buf) ptr--;
-                                       continue;
-                                     default:
-                                       ptr++;
-                               }
-#if TIMEOUT + 0
-#if !BOOTWAIT
-#error "TIMEOUT without BOOTWAIT"
-#endif
-                               for (initial_bios_tick = bios_tick;;) {
-                                       if (isch())
-                                               break;
-                                       if (bios_tick - initial_bios_tick >=
-                                           TIMEOUT / BIOS_TICK_MS)
-                                       return 0;
-                               }
-#endif
-                       }
-       return 0;
-}
-
-int
-strcmp(const char *s1, const char *s2)
-{
-       while (*s1 == *s2) {
-               if (!*s1++)
-                       return 0;
-               s2++;
-       }
-       return 1;
-}
-
-#ifdef CDBOOT
-int
-strcasecmp(const char *s1, const char *s2)
-{
-       /*
-        * We only consider ASCII chars and don't anticipate
-        * control characters (they are invalid in filenames
-        * anyway).
-        */
-       while ((*s1 & 0x5f) == (*s2 & 0x5f)) {
-               if (!*s1++)
-                       return 0;
-               s2++;
-       }
-       return 1;
-}
-#endif /* !CDBOOT */
-
-void
-bcopy(const void *from, void *to, size_t len)
-{
-       char *fp = (char *)from;
-       char *tp = (char *)to;
-
-       while (len-- > 0)
-               *tp++ = *fp++;
-}
-
-/* To quote Ken: "You are not expected to understand this." :) */
-
-void
-twiddle(void)
-{
-       putchar((char)tw_chars);
-       tw_chars = (tw_chars >> 8) | ((tw_chars & (unsigned long)0xFF) << 24);
-       putchar('\b');
-}
diff --git a/sys/i386/boot/biosboot/probe_keyboard.c b/sys/i386/boot/biosboot/probe_keyboard.c
deleted file mode 100644 (file)
index dbec40f..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*-
- * Copyright (c) 1997 Kazutaka YOKOTA (yokota@zodiac.mech.utsunomiya-u.ac.jp)
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD: src/sys/i386/boot/biosboot/probe_keyboard.c,v 1.15 1999/08/28 00:43:13 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/probe_keyboard.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-#include <sys/types.h>
-
-#include <machine/cpufunc.h>
-
-#include <i386/isa/isa.h>
-
-#include <dev/kbd/atkbdcreg.h>
-
-#include "boot.h"
-
-#define PROBE_MAXRETRY 5
-#define PROBE_MAXWAIT  400
-
-#define IO_DUMMY       0x84
-
-/* 7 microsec delay necessary for some keyboard controllers */
-static void
-delay7(void)
-{
-    /* 
-     * I know this is broken, but no timer is avaiable yet at this stage...
-     * See also comments in `delay1ms()' in `io.c'.
-     */
-    inb(IO_DUMMY); inb(IO_DUMMY);
-    inb(IO_DUMMY); inb(IO_DUMMY);
-    inb(IO_DUMMY); inb(IO_DUMMY);
-}
-
-/* 
- * Perform a simple test on the keyboard; issue the ECHO command and see
- * if the right answer is returned. We don't do anything as drastic as
- * full keyboard reset; it will be too troublesome and take too much time.
- */
-int
-probe_keyboard(void)
-{
-    int retry = PROBE_MAXRETRY;
-    int wait;
-    int i;
-
-    while (--retry >= 0) {
-       /* flush any noise */
-       while (inb(IO_KBD + KBD_STATUS_PORT) & KBDS_ANY_BUFFER_FULL) {
-           delay7();
-           inb(IO_KBD + KBD_DATA_PORT);
-           delay1ms();
-       }
-
-       /* wait until the controller can accept a command */
-       for (wait = PROBE_MAXWAIT; wait > 0; --wait) {
-           if (((i = inb(IO_KBD + KBD_STATUS_PORT)) 
-                & (KBDS_INPUT_BUFFER_FULL | KBDS_ANY_BUFFER_FULL)) == 0)
-               break;
-           if (i & KBDS_ANY_BUFFER_FULL) {
-               delay7();
-               inb(IO_KBD + KBD_DATA_PORT);
-           }
-           delay1ms();
-       }
-       if (wait <= 0)
-           continue;
-
-       /* send the ECHO command */
-       outb(IO_KBD + KBD_DATA_PORT, KBDC_ECHO);
-
-       /* wait for a response */
-       for (wait = PROBE_MAXWAIT; wait > 0; --wait) {
-            if (inb(IO_KBD + KBD_STATUS_PORT) & KBDS_ANY_BUFFER_FULL)
-                break;
-            delay1ms();
-       }
-       if (wait <= 0)
-           continue;
-
-       delay7();
-       i = inb(IO_KBD + KBD_DATA_PORT);
-#ifdef PROBE_KBD_BEBUG
-        printf("probe_keyboard: got 0x%x.\n", i);
-#endif
-       if (i == KBD_ECHO) {
-           /* got the right answer */
-           return (0);
-       }
-    }
-
-    return (1);
-}
diff --git a/sys/i386/boot/biosboot/serial.S b/sys/i386/boot/biosboot/serial.S
deleted file mode 100644 (file)
index cb7f8bc..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:34:26  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/serial.S,v 1.13 1999/08/28 00:43:14 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/serial.S,v 1.3 2003/08/07 21:17:20 dillon Exp $
- */
-
-/*
-  Copyright 1988, 1989, 1990, 1991, 1992 
-   by Intel Corporation, Santa Clara, California.
-
-                All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-/*
- * Serial bootblock interface routines
- * Copyright (c) 1994, J"org Wunsch
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * THE AUTHOR ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  THE AUTHOR DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- */ 
-
-       .file   "serial.S"
-
-#include <dev/serial/sio/sioreg.h>
-#include "asm.h"
-
-       .text
-
-/*
- * The serial port interface routines implement a simple polled i/o
- * interface to a standard serial port.  Due to the space restrictions
- * for the boot blocks, no BIOS support is used (since BIOS requires
- * expensive real/protected mode switches), instead the rudimentary
- * BIOS support is duplicated here.
- *
- * The base address and speed for the i/o port are passed from the
- * Makefile in the COMCONSOLE and CONSPEED preprocessor macros.  The
- * line control parameters are currently hard-coded to 8 bits, no
- * parity, 1 stop bit (8N1).  This can be changed in init_serial().
- */
-
-/*
- * void serial_putc(int ch);
- *     Write character `ch' to port COMCONSOLE.
- */
-ENTRY(serial_putc)
-       movl    $10000, %ecx    # timeout
-       movl    $COMCONSOLE + 5, %edx   # line status reg
-1:
-       decl    %ecx
-       je      2f
-       inb     %dx, %al
-       testb   $0x20, %al
-       je      1b              # TX buffer not empty
-
-       movb    4(%esp), %al
-
-       subl    $5, %edx        # TX output reg
-       outb    %al, %dx        # send this one
-
-2:
-       ret
-
-/*
- * int serial_getc(void);
- *     Read a character from port COMCONSOLE.
- */
-ENTRY(serial_getc)
-       mov     $COMCONSOLE + 5, %edx   # line status reg
-1:
-       inb     %dx, %al
-       testb   $0x01, %al
-       je      1b              # no rx char available
-
-       xorl    %eax, %eax
-       subl    $5, %edx        # rx buffer reg
-       inb     %dx, %al        # fetch (first) character
-
-       andb    $0x7F, %al      # remove any parity bits we get
-       cmpb    $0x7F, %al      # make DEL...
-       jne     2f
-       movb    $0x08, %al      # look like BS
-2:
-       ret
-
-/*
- * int serial_ischar(void);
- *       If there is a character in the input buffer of port COMCONSOLE,
- *       return nonzero; otherwise return 0.
- */
-ENTRY(serial_ischar)
-       xorl    %eax, %eax
-       movl    $COMCONSOLE + 5, %edx   # line status reg
-       inb     %dx, %al
-       andb    $0x01, %al              # rx char available?
-       ret
-
-/*
- * void init_serial(void);
- *     Initialize port COMCONSOLE to speed CONSPEED, line settings 8N1.
- */
-ENTRY(init_serial)
-       movl    $COMCONSOLE + 3, %edx   # line control reg
-       movb    $0x80, %al
-       outb    %al, %dx        # enable DLAB
-
-       subl    $3, %edx        # divisor latch, low byte
-       movb    $COMBRD(CONSPEED) & 0xff, %al
-       outb    %al, %dx
-       incl    %edx            # divisor latch, high byte
-       movb    $COMBRD(CONSPEED) >> 8, %al
-       outb    %al, %dx
-
-       incl    %edx            # fifo control register (if any)
-       xorl    %eax,%eax
-       outb    %al, %dx        # disable fifo to reduce worst-case busy-wait
-
-       incl    %edx            # line control reg
-       movb    $0x03, %al
-       outb    %al, %dx        # 8N1
-
-       incl    %edx            # modem control reg
-       outb    %al, %dx        # enable DTR/RTS
-
-       /* Flush the input buffer. */
-       incl    %edx            # line status reg
-1:
-       subl    $5, %edx        # rx buffer reg
-       inb     %dx, %al        # throw away (unconditionally the first time)
-       addl    $5, %edx        # line status reg
-       inb     %dx, %al
-       testb   $0x01, %al
-       jne     1b              # more
-
-       ret
diff --git a/sys/i386/boot/biosboot/start.S b/sys/i386/boot/biosboot/start.S
deleted file mode 100644 (file)
index bd99cbf..0000000
+++ /dev/null
@@ -1,459 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:36:29  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/start.S,v 1.13 1999/08/28 00:43:14 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/start.S,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-/*
-  Copyright 1988, 1989, 1990, 1991, 1992 
-   by Intel Corporation, Santa Clara, California.
-
-                All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-#include       "asm.h"
-
-       .file   "start.S"
-
-SIGNATURE=     0xaa55
-LOADSZ=                15      /* size of unix boot */
-PARTSTART=     0x1be   /* starting address of partition table */
-NUMPART=       4       /* number of partitions in partition table */
-PARTSZ=                16      /* each partition table entry is 16 bytes */
-BSDPART=       0xA5    /* value of boot_ind, means bootable partition */
-BOOTABLE=      0x80    /* value of boot_ind, means bootable partition */
-NAMEBLOCKMAGIC=        0xfadefeed /* value of magicnumebr for block2   */
-
-/*
- * This DEBUGMSG(msg) macro may be useful for debugging.  Its use is
- * restricted to this file since it only works in real mode.
- */
-#define DEBUGMSG(msg)          \
-       data32                  ; \
-       mov     $msg, %esi      ; \
-       data32                  ; \
-       call    message
-
-       .text   
-
-ENTRY(boot1)
-
-       /*
-        * XXX I have encountered at least one machine (a no-name laptop
-        * with an AMI WinBIOS) that will refuse to run the bootblock
-        * unless this short jump and nop are here. I'm not certain, but
-        * this may be a case of the BIOS performing some kind of simple
-        * virus detection.
-        */
-       jmp pacify_braindead_bios
-       nop
-pacify_braindead_bios:
-
-       /*
-        * start (aka boot1) is loaded at 0x0:0x7c00 but we want 0x7c0:0
-        * ljmp to the next instruction to adjust %cs
-        */
-       data32
-       ljmp $0x7c0, $start
-
-start:
-       /* set up %ds */
-       mov     %cs, %ax
-       mov     %ax, %ds
-
-       /* set up %ss and %esp */
-       data32
-       mov     $BOOTSEG, %eax
-       mov     %ax, %ss
-       /*
-        * make a little room on the stack for
-        * us to save the default bootstring we might find..
-        * effectively, we push the bootstring.
-        */
-       data32
-       mov     $BOOTSTACK-64, %esp
-
-       /* set up %es, (where we will load boot2 to) */
-       mov     %ax, %es
-
-
-       /* bootstrap passes us drive number in %dl */
-       cmpb    $0x80, %dl
-       data32
-       jae     hd
-
-fd:
-       /*
-        * XXX some bootstraps don't pass the drive number in %dl.
-        * This is a problem mainly when we are block 0 on a floppy.
-        * Force drive 0 for floppies.
-        * XXX %dl was assumed valid in the test that led here.
-        */
-       mov     $0x0, %dl
-
-       /* reset the disk system */
-       movb    $0x0, %ah
-       int     $0x13
-       data32
-       mov     $0x0001, %ecx   /* cyl 0, sector 1 */
-       movb    $0, %dh         /* head */
-       data32
-       jmp     load
-
-hd:    /**** load sector 0 into the BOOTSEG ****/
-       data32
-       mov     $0x0201, %eax
-       xor     %ebx, %ebx      /* %bx = 0 */
-       data32
-       mov     $0x0001, %ecx
-       data32
-       andl    $0xff, %edx
-       /*mov   $0x0080, %edx*/
-       int     $0x13
-       data32
-       jb      read_error
-
-       /* find the first 386BSD partition */
-       data32
-       mov     $PARTSTART, %ebx
-       data32
-       mov     $NUMPART, %ecx
-again:
-       addr32
-       movb    %es:4(%ebx), %al
-       cmpb    $BSDPART, %al
-       data32
-       je      found
-       data32
-       add     $PARTSZ, %ebx
-       data32
-       loop    again
-       data32
-       mov     $enoboot, %esi
-       data32
-       jmp     err_stop
-
-
-/*
- * BIOS call "INT 0x13 Function 0x2" to read sectors from disk into memory
- *     Call with       %ah = 0x2
- *                     %al = number of sectors
- *                     %ch = cylinder
- *                     %cl = sector
- *                     %dh = head
- *                     %dl = drive (0x80 for hard disk, 0x0 for floppy disk)
- *                     %es:%bx = segment:offset of buffer
- *     Return:
- *                     %al = 0x0 on success; err code on failure
- */
-
-found:
-       addr32
-       movb    %es:1(%ebx), %dh /* head */
-       addr32
-       movl    %es:2(%ebx), %ecx /*sect, cyl (+ 2 bytes junk in top word) */
-
-load:
-#ifdef NAMEBLOCK
-/*
- * Load the second sector and see if it is a boot instruction block.
- * If it is then scan the contents for the first valid string and copy it to 
- * the location of the default boot string.. then zero it out.
- * Finally write the block back to disk with the zero'd out entry..
- * I hate writing at this stage but we need this to be persistant.
- * If the boot fails, then the next boot will get the next string.
- * /etc/rc will regenerate a complete block2 iff the boot succeeds.
- *
- * Format of block 2 is:
- * [NAMEBLOCKMAGIC] <--0xdeafc0de
- * [nulls]
- * [bootstring]NULL  <---e.g. 0:wd(0,a)/kernel.experimental
- * [bootstring]NULL  <---e.g. 0:wd(0,a)/kernel.old
- * ....
- * [bootstring]NULL  <---e.g. 0:wd(0,f)/kernel
- * FF FF FF
- */
-where:
-       /*
-        * save things we might smash
-        * (that are not smashed immedatly after us anyway.)
-        */
-       data32
-       push    %ecx    /* preserve 'cyl,sector ' */
-       data32
-       push    %edx
-/* 
- * Load the second sector
- * BIOS call "INT 0x13 Function 0x2" to read sectors from disk into memory
- *     Call with       %ah = 0x2
- *                     %al = number of sectors
- *                     %ch = cylinder
- *                     %cl = sector
- *                     %dh = head
- *                     %dl = drive (0x80 for hard disk, 0x0 for floppy disk)
- *                     %es:%bx = segment:offset of buffer
- *     Return:
- *                     %al = 0x0 on success; err code on failure
- */
-       data32
-       movl    $0x0201, %eax   /function 2 (read) 1 sector */
-       xor     %ebx, %ebx      /* %bx = 0 */ /* buffer address (ES:0) */
-       data32
-       movl    $0x0002, %ecx   /* sector 2, cylinder 0 */
-       data32
-       andl    $0x00ff, %edx   /* head 0, drive N */
-       int     $0x13
-       data32
-       jb      read_error
-       /*
-        * confirm that it is one for us
-        */
-       data32
-       xorl    %ebx, %ebx      /* magic number at start of buffer */
-       data32
-       addr32
-       movl    %es:(%ebx), %eax
-       data32
-       cmpl    $NAMEBLOCKMAGIC, %eax
-       data32
-       jne     notours         /* not ours so return to caller */
-       /*
-        * scan for a bootstring
-        * Skip the magic number, and scan till we find a non-null,
-        * or a -1
-        */
-       incl    %ebx    /* quicker and smaller */
-       incl    %ebx
-       incl    %ebx
-scan:
-       incl    %ebx
-       addr32
-       movb    %es:(%ebx), %al /* load the next byte */
-       testb   %al, %al        /* and if it is null */
-       data32                  /* keep scanning (past deleted entries) */
-       jz scan
-       incb    %al             /* now look for -1 */
-       data32
-       jz      notours         /* if we reach the 0xFF then we have finished */
-
-       /*
-        * save our settings.. we need them twice..
-        */
-       data32
-       push    %ebx
-       /*
-        * copy it to the default string location
-        * which is just above the stack for 64 bytes.
-        */
-       data32
-       movl    $BOOTSTACK-64, %ecx     /* 64 bytes at the top of the stack */
-nxtbyte:
-       addr32
-       movb    %es:(%ebx), %al /* get the next byte in */
-       addr32
-       movb    %al, %es:(%ecx) /* and transfer it to the name buffer */
-       incl    %ebx            /* get on with the next byte */
-       incl    %ecx            /* get on with the next byte */
-       testb   %al, %al        /* if it was 0 then quit this */
-       data32
-       jnz nxtbyte             /* and looop if more to do */ 
-       
-       /*
-        * restore the saved settings and
-        * zero it out so next time we don't try it again
-        */
-       data32
-       pop     %ebx            /* get back our starting location */
-#ifdef NAMEBLOCK_WRITEBACK
-nxtbyte2:
-       addr32
-       movb    %es:(%ebx), %al /* get the byte */
-       addr32
-       movb    $0,  %es:(%ebx) /* zero it out */
-       data32
-       incl    %ebx            /* point to the next byte */
-       testb   %al, %al        /* check if we have finished.. */
-       data32
-       jne nxtbyte2
-/* 
- * Write the second sector back
- * Load the second sector
- * BIOS call "INT 0x13 Function 0x3" to write sectors from memory to disk
- *     Call with       %ah = 0x3
- *                     %al = number of sectors
- *                     %ch = cylinder
- *                     %cl = sector
- *                     %dh = head
- *                     %dl = drive (0x80 for hard disk, 0x0 for floppy disk)
- *                     %es:%bx = segment:offset of buffer
- *     Return:
- *                     %al = 0x0 on success; err code on failure
- */
-       data32
-       movl    $0x0301, %eax   /* write 1 sector */
-       xor     %ebx, %ebx      /* buffer is at offset 0 */ 
-       data32
-       movl    $0x0002, %ecx   /* block 2 */
-       data32
-       andl    $0xff, %edx     /* head 0 */
-       int     $0x13
-       data32
-       jnb     notours
-       data32
-       mov     $eread, %esi
-       jmp     err_stop
-#endif /* NAMEBLOCK_WRITEBACK */
-       /*
-        * return to the main-line
-        */
-notours:
-       data32
-       pop     %edx
-       data32
-       pop     %ecx
-#endif
-       movb    $0x2, %ah       /* function 2 */
-       movb    $LOADSZ, %al    /* number of blocks */
-       xor     %ebx, %ebx      /* %bx = 0, put it at 0 in the BOOTSEG */
-       int     $0x13
-       data32
-       jb      read_error
-
-       /*
-        * ljmp to the second stage boot loader (boot2).
-        * After ljmp, %cs is BOOTSEG and boot1 (512 bytes) will be used
-        * as an internal buffer "intbuf".
-        */
-
-       data32
-       ljmp    $BOOTSEG, $ EXT(boot2)
-
-/*
- * read_error
- */
-read_error:
-       data32
-       mov     $eread, %esi
-err_stop:
-       data32
-       call    message
-       data32
-       jmp     stop
-
-/*
- * message: write the error message in %ds:%esi to console
- */
-message:
-       /*
-        * Use BIOS "int 10H Function 0Eh" to write character in teletype mode
-        *      %ah = 0xe       %al = character
-        *      %bh = page      %bl = foreground color (graphics modes)
-        */
-
-       data32
-       push    %eax
-       data32
-       push    %ebx
-       data32
-       mov     $0x0001, %ebx
-       cld
-
-nextb:
-       lodsb                   /* load a byte into %al */
-       cmpb    $0x0, %al
-       data32
-       je      done
-       movb    $0xe, %ah
-       int     $0x10           /* display a byte */
-       data32
-       jmp     nextb
-done:
-       data32
-       pop     %ebx
-       data32
-       pop     %eax
-       data32
-       ret
-
-stop:  hlt
-       data32
-       jmp     stop            /* halt doesnt actually halt forever */
-
-/* error messages */
-
-
-#ifdef DEBUG
-one:   String          "1-\0"
-two:   String          "2-\0"
-three: String          "3-\0"
-four:  String          "4-\0"
-#endif DEBUG
-#ifdef         NAMEBLOCK_WRITEBACK
-ewrite:        String          "Write error\r\n\0"
-#endif /* NAMEBLOCK_WRITEBACK */
-eread: String          "Read error\r\n\0"
-enoboot: String                "No bootable partition\r\n\0"
-endofcode:
-/*
- * Dummy partition table in case we are block 0.  The ending c/h/s values
- * of the non-null partition are almost arbitary.  The length of this
- * partition is bogus for backwards compatibility and as a signature.
- * A real partition table shouldn't be as weird and broken as this one,
- * and the isa slice initialization routine interprets this table as
- * saying that the whole disk is used for FreeBSD.
- */
-/* flag, head, sec, cyl, typ, ehead, esect, ecyl, start, len */
-       . = EXT(boot1) + PARTSTART
-strttbl:
-       .byte 0x0,0,0,0,0,0,0,0
-       .long 0,0
-       .byte 0x0,0,0,0,0,0,0,0
-       .long 0,0
-       .byte 0x0,0,0,0,0,0,0,0
-       .long 0,0
-       .byte BOOTABLE,0,1,0,BSDPART,255,255,255
-       .long 0,50000
-/* the last 2 bytes in the sector 0 contain the signature */
-       . = EXT(boot1) + 0x1fe
-       .value  SIGNATURE
-ENTRY(disklabel)
-       . = EXT(boot1) + 0x400  
diff --git a/sys/i386/boot/biosboot/sys.c b/sys/i386/boot/biosboot/sys.c
deleted file mode 100644 (file)
index 9de738f..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:36:34  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/sys.c,v 1.22 1999/08/28 00:43:14 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/sys.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-#include "boot.h"
-#include <sys/dirent.h>
-#include <sys/reboot.h>
-
-#if 0
-/* #define BUFSIZE 4096 */
-#define BUFSIZE MAXBSIZE
-
-static char buf[BUFSIZE], fsbuf[SBSIZE], iobuf[MAXBSIZE];
-#endif
-
-static char biosdrivedigit;
-
-#define BUFSIZE 8192
-#define MAPBUFSIZE BUFSIZE
-static char buf[BUFSIZE], fsbuf[BUFSIZE], iobuf[BUFSIZE];
-
-static char mapbuf[MAPBUFSIZE];
-static int mapblock;
-
-int poff;
-
-#ifdef RAWBOOT
-#define STARTBYTE      8192    /* Where on the media the kernel starts */
-#endif
-
-static int block_map(int file_block);
-static int find(char *path);
-
-void
-xread(char *addr, int size)
-{
-       int count = BUFSIZE;
-       while (size > 0) {
-               if (BUFSIZE > size)
-                       count = size;
-               read(buf, count);
-               pcpy(buf, addr, count);
-               size -= count;
-               addr += count;
-       }
-}
-
-#ifndef RAWBOOT
-void
-read(char *buffer, int count)
-{
-       int logno, off, size;
-       int cnt2, bnum2;
-       struct fs *fs_copy;
-
-       while (count > 0 && poff < inode.i_size) {
-               fs_copy = fs;
-               off = blkoff(fs_copy, poff);
-               logno = lblkno(fs_copy, poff);
-               cnt2 = size = blksize(fs_copy, &inode, logno);
-               bnum2 = fsbtodb(fs_copy, block_map(logno)) + boff;
-               if (    (!off)  && (size <= count)) {
-                       devread(buffer, bnum2, cnt2);
-               } else {
-                       size -= off;
-                       if (size > count)
-                               size = count;
-                       devread(iobuf, bnum2, cnt2);
-                       bcopy(iobuf+off, buffer, size);
-               }
-               buffer += size;
-               count -= size;
-               poff += size;
-       }
-}
-#else
-void
-read(char *buffer, int count)
-{
-       int cnt, bnum, off, size;
-
-       off = STARTBYTE + poff;
-       poff += count;
-
-       /* Read any unaligned bit at the front */
-       cnt = off & 511;
-       if (cnt) {
-               size = 512-cnt;
-               if (count < size)
-                       size = count;
-               devread(iobuf, off >> 9, 512);
-               bcopy(iobuf+cnt, buffer, size);
-               count -= size;
-               off += size;
-               buffer += size;
-       }
-       size = count & (~511);
-       if (size && (off & (~511))) {
-               devread(buffer, off >> 9, size);
-               off += size;
-               count -= size;
-               buffer += size;
-       }
-       if (count) {
-               devread(iobuf, off >> 9, 512);
-               bcopy(iobuf, buffer, count);
-       }
-}
-#endif
-
-static int
-find(char *path)
-{
-       char *rest, ch;
-       int block, off, loc, ino = ROOTINO;
-       struct dirent *dp;
-       char list_only;
-
-       list_only = (path[0] == '?' && path[1] == '\0');
-loop:
-       devread(iobuf, fsbtodb(fs, ino_to_fsba(fs, ino)) + boff, fs->fs_bsize);
-       bcopy((void *)&((struct dinode *)iobuf)[ino % fs->fs_inopb],
-             (void *)&inode.i_din,
-             sizeof (struct dinode));
-       if (!*path)
-               return 1;
-       while (*path == '/')
-               path++;
-       if (!inode.i_size || ((inode.i_mode&IFMT) != IFDIR))
-               return 0;
-       for (rest = path; (ch = *rest) && ch != '/'; rest++) ;
-       *rest = 0;
-       loc = 0;
-       do {
-               if (loc >= inode.i_size) {
-                       if (list_only) {
-                               putchar('\n');
-                               return -1;
-                       } else {
-                               return 0;
-                       }
-               }
-               if (!(off = blkoff(fs, loc))) {
-                       block = lblkno(fs, loc);
-                       devread(iobuf, fsbtodb(fs, block_map(block)) + boff,
-                               blksize(fs, &inode, block));
-               }
-               dp = (struct dirent *)(iobuf + off);
-               loc += dp->d_reclen;
-               if (dp->d_fileno && list_only)
-                       printf("%s ", dp->d_name);
-       } while (!dp->d_fileno || strcmp(path, dp->d_name));
-       ino = dp->d_fileno;
-       *(path = rest) = ch;
-       goto loop;
-}
-
-
-static int
-block_map(int file_block)
-{
-       int bnum;
-       if (file_block < NDADDR)
-               return(inode.i_db[file_block]);
-       if ((bnum=fsbtodb(fs, inode.i_ib[0])+boff) != mapblock) {
-               devread(mapbuf, bnum, fs->fs_bsize);
-               mapblock = bnum;
-       }
-       return (((int *)mapbuf)[(file_block - NDADDR) % NINDIR(fs)]);
-}
-
-
-int
-openrd(void)
-{
-       char **devp, *name0 = name, *cp = name0;
-       int biosdrive, dosdev_copy, ret;
-
-       /*******************************************************\
-       * If bracket given look for preceding device name       *
-       \*******************************************************/
-       while (*cp && *cp!='(')
-               cp++;
-       if (!*cp)
-       {
-               cp = name0;
-       }
-       else
-       {
-               /*
-                * Look for a BIOS drive number (a leading digit followed
-                * by a colon).
-                */
-               biosdrivedigit = '\0';
-               if (*(name0 + 1) == ':' && *name0 >= '0' && *name0 <= '9') {
-                       biosdrivedigit = *name0;
-                       name0 += 2;
-               }
-
-               if (cp++ != name0)
-               {
-                       for (devp = devs; *devp; devp++)
-                               if (name0[0] == (*devp)[0] &&
-                                   name0[1] == (*devp)[1])
-                                       break;
-                       if (!*devp)
-                       {
-                               printf("Unknown device\n");
-                               return 1;
-                       }
-                       maj = devp-devs;
-               }
-               /*******************************************************\
-               * Look inside brackets for unit number, and partition   *
-               \*******************************************************/
-               /*
-                * Allow any valid digit as the unit number, as the BIOS
-                * will complain if the unit number is out of range.
-                * Restricting the range here prevents the possibilty of using
-                * BIOSes that support more than 2 units.
-                * XXX Bad values may cause strange errors, need to check if
-                * what happens when a value out of range is supplied.
-                */
-               if (*cp >= '0' && *cp <= '9')
-                       unit = *cp++ - '0';
-               if (!*cp || (*cp == ',' && !*++cp))
-                       return 1;
-               if (*cp >= 'a' && *cp <= 'p')
-                       part = *cp++ - 'a';
-               while (*cp && *cp++!=')') ;
-               if (!*cp)
-                       return 1;
-       }
-       biosdrive = biosdrivedigit - '0';
-       if (biosdrivedigit == '\0') {
-               biosdrive = unit;
-#if BOOT_HD_BIAS > 0
-               /* XXX */
-               if (maj == 4)
-                       biosdrive += BOOT_HD_BIAS;
-#endif
-       }
-       switch(maj)
-       {
-       case 0:
-       case 4:
-               dosdev_copy = biosdrive | 0x80;
-               break;
-       case 2:
-               dosdev_copy = biosdrive;
-               break;
-       default:
-               printf("Unknown device\n");
-               return 1;
-       }
-       dosdev = dosdev_copy;
-#if 0
-       /* XXX this is useful, but misplaced. */
-       printf("dosdev= %x, biosdrive = %d, unit = %d, maj = %d\n",
-               dosdev_copy, biosdrive, unit, maj);
-#endif
-
-       /***********************************************\
-       * Now we know the disk unit and part,           *
-       * Load disk info, (open the device)             *
-       \***********************************************/
-       if (devopen())
-               return 1;
-
-#ifndef RAWBOOT
-       /***********************************************\
-       * Load Filesystem info (mount the device)       *
-       \***********************************************/
-       devread((char *)(fs = (struct fs *)fsbuf), SBLOCK + boff, SBSIZE);
-       /***********************************************\
-       * Find the actual FILE on the mounted device    *
-       \***********************************************/
-       ret = find(cp);
-       name = cp;
-       if (ret == 0)
-               return 1;
-       if (ret < 0) {
-               name = NULL;
-               return -1;
-       }
-       poff = 0;
-#endif /* RAWBOOT */
-       return 0;
-}
diff --git a/sys/i386/boot/biosboot/table.c b/sys/i386/boot/biosboot/table.c
deleted file mode 100644 (file)
index b6a904e..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:36:43  rpd
- * $FreeBSD: src/sys/i386/boot/biosboot/table.c,v 1.20 1999/08/28 00:43:15 peter Exp $
- * $DragonFly: src/sys/i386/boot/biosboot/Attic/table.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-/*
-  Copyright 1988, 1989, 1990, 1991, 1992
-   by Intel Corporation, Santa Clara, California.
-
-                All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-#include "boot.h"
-
-/*  Segment Descriptor
- *
- * 31          24         19   16                 7           0
- * ------------------------------------------------------------
- * |             | |B| |A|       | |   |1|0|E|W|A|            |
- * | BASE 31..24 |G|/|0|V| LIMIT |P|DPL|  TYPE   | BASE 23:16 |
- * |             | |D| |L| 19..16| |   |1|1|C|R|A|            |
- * ------------------------------------------------------------
- * |                             |                            |
- * |        BASE 15..0           |       LIMIT 15..0          |
- * |                             |                            |
- * ------------------------------------------------------------
- */
-
-struct seg_desc {
-       unsigned short  limit_15_0;
-       unsigned short  base_15_0;
-       unsigned char   base_23_16;
-       unsigned char   p_dpl_type;
-       unsigned char   g_b_a_limit;
-       unsigned char   base_31_24;
-       };
-
-#define RUN    0               /* not really 0, but filled in at boot time */
-
-struct seg_desc        Gdt[] = {
-       {0x0, 0x0, 0x0, 0x0, 0x0, 0x0},         /* 0x0 : null */
-       {0xFFFF, 0x0, 0x0, 0x9F, 0xCF, 0x0},    /* 0x08 : kernel code */
-                       /* 0x9E? */
-       {0xFFFF, 0x0, 0x0, 0x93, 0xCF, 0x0},    /* 0x10 : kernel data */
-                       /* 0x92? */
-       {0xFFFF, RUN, RUN, 0x9E, 0x40, 0x0},    /* 0x18 : boot code */
-       {0xFFFF, RUN, RUN, 0x92, 0x40, 0x0},    /* 0x20 : boot data */
-       {0xFFFF, RUN, RUN, 0x9E, 0x0, 0x0},     /* 0x28 : boot code, 16 bits */
-       {0xFFFF, 0x0, 0x0, 0x92, 0x0, 0x0},     /* 0x30 : boot data, 16 bits */
-#ifdef BDE_DEBUGGER
-       /* More for bdb. */
-       {},                                     /* BIOS_TMP_INDEX = 7 : null */
-       {},                                     /* TSS_INDEX = 8 : null */
-       {0xFFFF, 0x0, 0x0, 0xB2, 0x40, 0x0},    /* DS_286_INDEX = 9 */
-       {0xFFFF, 0x0, 0x0, 0xB2, 0x40, 0x0},    /* ES_286_INDEX = 10 */
-       {},                                     /* Unused = 11 : null */
-       {0x7FFF, 0x8000, 0xB, 0xB2, 0x40, 0x0}, /* COLOR_INDEX = 12 */
-       {0x7FFF, 0x0, 0xB, 0xB2, 0x40, 0x0},    /* MONO_INDEX = 13 */
-       {0xFFFF, RUN, RUN, 0x9A, 0x40, 0x0},    /* DB_CS_INDEX = 14 */
-       {0xFFFF, RUN, RUN, 0x9A, 0x0, 0x0},     /* DB_CS16_INDEX = 15 */
-       {0xFFFF, RUN, RUN, 0x92, 0x40, 0x0},    /* DB_DS_INDEX = 16 */
-       {8*18-1, RUN, RUN, 0x92, 0x40, 0x0},    /* GDT_INDEX = 17 */
-#endif /* BDE_DEBUGGER */
-};
-
-#ifdef BDE_DEBUGGER
-struct idt_desc {
-       unsigned short  entry_15_0;
-       unsigned short  selector;
-       unsigned char   padding;
-       unsigned char   p_dpl_type;
-       unsigned short  entry_31_16;
-};
-
-struct idt_desc        Idt[] = {
-       {},                                     /* Null (int 0) */
-       {RUN, 0x70, 0, 0x8E, 0},                /* DEBUG_VECTOR = 1 */
-       {},                                     /* Null (int 2) */
-       {RUN, 0x70, 0, 0xEE, 0},                /* BREAKPOINT_VECTOR = 3 */
-};
-#endif /* BDE_DEBUGGER */
-
-struct pseudo_desc {
-       unsigned short  limit;
-       unsigned short  base_low;
-       unsigned short  base_high;
-       };
-
-struct pseudo_desc Gdtr = { sizeof Gdt - 1, RUN, RUN };
-#ifdef BDE_DEBUGGER
-struct pseudo_desc Idtr_prot = { sizeof Idt - 1, RUN, RUN };
-struct pseudo_desc Idtr_real = { 0x400 - 1, 0x0, 0x0 };
-#endif
-
-/*
- * All initialized data is defined in one file to reduce space wastage from
- * fragmentation.
- */
-char *devs[] = { "wd", "dk", "fd", "wt", "da", 0 };
-unsigned tw_chars = 0x5C2D2F7C;        /* "\-/|" */
diff --git a/sys/i386/boot/cdboot/Makefile b/sys/i386/boot/cdboot/Makefile
deleted file mode 100644 (file)
index 10f3538..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-# $FreeBSD: src/sys/i386/boot/cdboot/Makefile,v 1.7.2.1 2002/08/07 16:31:55 ru Exp $
-# $DragonFly: src/sys/i386/boot/cdboot/Attic/Makefile,v 1.3 2003/11/15 19:01:33 dillon Exp $
-#
-
-PROG=  boot
-# Order is very important on the SRCS line for this prog
-SRCS=  start.S table.c boot2.S boot.c asm.S bios.S serial.S
-SRCS+=  probe_keyboard.c io.c cdrom.c malloc.c
-
-.PATH: ${.CURDIR}/../biosboot
-
-BINMODE=       444
-CFLAGS=                -O2 -malign-functions=0 -malign-jumps=0 -malign-loops=0 \
-               -DBOOTWAIT=${BOOTWAIT} -DTIMEOUT=${TIMEOUT}
-CFLAGS+=       -DBOOTSEG=${BOOTSEG} -DBOOTSTACK=${BOOTSTACK}
-CFLAGS+=       -I${.CURDIR}/../biosboot
-CFLAGS+=       -DCDBOOT
-CFLAGS+=       ${CWARNFLAGS}
-#CFLAGS+=      -DDEBUG
-
-# By default, if a serial port is going to be used as console, use COM1
-# (aka /dev/ttyd0).
-BOOT_COMCONSOLE_PORT?=0x3F8
-CFLAGS+=       -DCOMCONSOLE=${BOOT_COMCONSOLE_PORT}
-
-BOOT_COMCONSOLE_SPEED?=9600
-CFLAGS+=       -DCONSPEED=${BOOT_COMCONSOLE_SPEED}
-
-# Enable code to take the default boot string from a fixed location on the
-# disk.  See nextboot(8) and README.386BSD for more info.
-#CFLAGS+=      -DNAMEBLOCK
-#CFLAGS+=      -DNAMEBLOCK_WRITEBACK
-
-# Bias the conversion from the BIOS drive number to the FreeBSD unit number
-# for hard disks.  This may be useful for people booting in a mixed IDE/SCSI
-# environment (set BOOT_HD_BIAS to the number of IDE drives).
-#CFLAGS+=      -DBOOT_HD_BIAS=1
-#
-# Details: this only applies if BOOT_HD_BIAS > 0.  If the BIOS drive number
-# for the boot drive is >= BOOT_HD_BIAS, then the boot drive is assumed to
-# be SCSI and have unit number (BIOS_drive_number - BOOT_HD_BIAS).  E.g.,
-# BOOT_HD_BIAS=1 makes BIOS drive 1 correspond to 1:sd(0,a) instead of
-# 1:wd(1,a).  If `sd' is given explicitly, then the drive is assumed to be
-# SCSI and have BIOS drive number (sd_unit_number + BOOT_HD_BIAS).  E.g.,
-# BOOT_HD_BIAS=1 makes sd(0,a) correspond to 1:sd(0,a) instead of 0:sd(0,a).
-
-CLEANFILES+=   boot.img boot.nohdr boot.strip
-LDFLAGS+=      -N -T 0 -nostdlib
-NOSHARED=      YES
-NOMAN=
-STRIP=
-
-# tunable timeout parameter, waiting for keypress, calibrated in ms
-BOOTWAIT?=     5000
-# tunable timeout during string input, calibrated in ms
-#TIMEOUT?=     30000
-
-# Location that boot2 is loaded at
-BOOTSEG=       0x1000
-
-# Offset in BOOTSEG for the top of the stack, keep this 16 byte aligned
-BOOTSTACK=     0xFFF0
-
-boot.strip:    boot
-       cp -p boot boot.strip
-       strip -aout boot.strip
-       size -aout boot.strip
-
-boot.nohdr:    boot.strip
-       dd if=boot.strip of=boot.nohdr ibs=32 skip=1 obs=1024b
-       ls -l boot.nohdr
-
-boot.img:      boot.nohdr
-       dd if=boot.nohdr of=boot.img bs=1440k count=1 conv=sync
-
-all:           boot.img
-
-install:
-       ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}\
-               boot.img ${DESTDIR}${BINDIR}/cdboot
-
-.include "../../../conf/bsd.kern.mk"
-.include <bsd.prog.mk>
diff --git a/sys/i386/boot/cdboot/asm.S b/sys/i386/boot/cdboot/asm.S
deleted file mode 100644 (file)
index 1033a88..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- * 
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- * 
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- * 
- * Carnegie Mellon requests users of this software to return to
- * 
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- * 
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:34:13  rpd
- * $FreeBSD: src/sys/i386/boot/cdboot/asm.S,v 1.2 1999/08/28 00:43:17 peter Exp $
- * $DragonFly: src/sys/i386/boot/cdboot/Attic/asm.S,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-
-/*
-  Copyright 1988, 1989, 1990, 1991, 1992 
-   by Intel Corporation, Santa Clara, California.
-
-                All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-       .file "asm.s"
-
-#include "asm.h"
-
-
-CR0_PE_ON      =       0x1
-CR0_PE_OFF     =       0xfffffffe
-
-       .text
-
-/*
- *
- * real_to_prot()
- *     transfer from real mode to protected mode.
- */
-
-ENTRY(real_to_prot)
-       /* guarantee that interrupt is disabled when in prot mode */
-       cli
-
-       /* load the gdtr */
-       addr32
-       data32
-       lgdt    EXT(Gdtr)
-
-       /* set the PE bit of CR0 */
-       mov     %cr0, %eax
-
-       data32
-       or      $CR0_PE_ON, %eax
-       mov     %eax, %cr0 
-
-       /*
-        * make intrasegment jump to flush the processor pipeline and
-        * reload CS register
-        */
-       data32
-       ljmp    $0x18, $xprot
-xprot:
-
-       /*
-        * we are in USE32 mode now
-        * set up the protected mode segment registers : DS, SS, ES, FS
-        */
-       movw    $0x20, %ax      /* data segment */
-       mov     %ax, %ds        /* gas would waste a prefix byte for movw */
-       mov     %ax, %ss
-       mov     %ax, %es
-       movw    $0x10, %ax      /* flat segment */
-       mov     %ax, %fs
-
-#ifdef BDE_DEBUGGER
-       /* load idtr so we can debug */
-       lidt    EXT(Idtr_prot)
-#endif
-
-       ret
-
-/*
- *
- * prot_to_real()
- *     transfer from protected mode to real mode
- * 
- */
-
-ENTRY(prot_to_real)
-
-       /* Prepare %ax while we're still in a mode that gas understands. */
-       movw    $0x30, %ax
-
-       /* Change to use16 mode. */
-       ljmp    $0x28, $x16
-x16:
-
-       mov     %ax, %ds
-       mov     %ax, %ss
-       mov     %ax, %es
-       mov     %ax, %fs
-
-       /* clear the PE bit of CR0 */
-       mov     %cr0, %eax
-       data32
-       and     $CR0_PE_OFF, %eax
-       mov     %eax, %cr0
-
-       /*
-        * make intersegment jmp to flush the processor pipeline
-        * and reload CS register
-        */
-       data32
-       ljmp    $BOOTSEG, $xreal
-xreal:
-
-       /*
-        * we are in real mode now
-        * set up the real mode segment registers : DS, SS, ES, FS
-        */
-       mov     %cs, %ax
-       mov     %ax, %ds
-       mov     %ax, %ss
-       mov     %ax, %es
-       mov     %ax, %fs
-
-#ifdef BDE_DEBUGGER
-       /* load idtr so we can debug */
-       addr32
-       data32
-       lidt    EXT(Idtr_real)
-#endif
-
-       data32
-       ret
-
-/*
- * startprog(phyaddr)
- *     start the program on protected mode where phyaddr is the entry point
- *
- * XXX This whole mess should go away and we should run the boot code in
- * flat 32 bit mode with it linked -T BOOTSEG.  See the netboot code for
- * how this is done.
- */
-
-ENTRY(startprog)
-       push    %ebp
-       mov     %esp, %ebp
-       movl    %esp, %eax              /* Use eax as the old stack pointer */
-
-       /* convert the current stack to a 32 bit flat model */
-       movw    $0x10, %bx
-       mov     %bx, %ss
-       addl    $(BOOTSEG<<4),%esp
-       
-       /* copy the arguments from the old stack to the new stack */
-       pushl   0x14(%eax)              /* &bootinfo */
-       pushl   $0                      /* was &nfsdiskless */
-       pushl   $0                      /* was esym */
-       pushl   $0                      /* was cyloffset */
-       pushl   0x10(%eax)              /* bootdev */
-       pushl   0x0C(%eax)              /* howto */
-       movl    $(ourreturn),%ebx
-       addl    $(BOOTSEG<<4),%ebx      /* Fix it up for flat segments */
-       pushl   %ebx                    /* our return address */
-       
-       /* push on our entry address */
-       pushl   $0x08                   /* segment selector */
-       pushl   0x08(%eax)              /* kernel entry address */
-
-       /* convert over the other data segs */
-       movw    $0x10, %bx
-       mov     %bx, %ds
-       mov     %bx, %es
-
-       /* convert the PC (and code seg) */
-       lret
-ourreturn:
-       /* For now there is not much we can do, just lock in a loop */
-       jmp     ourreturn
-
-/*
- *
- * pbzero( dst, cnt)
- *     where src is a virtual address and dst is a physical address
- */
-
-ENTRY(pbzero)
-       push    %ebp
-       mov     %esp, %ebp
-       push    %es
-       push    %esi
-       push    %edi
-       push    %ecx
-
-       cld
-
-       /* set %es to point at the flat segment */
-       movw    $0x10, %ax
-       mov     %ax, %es
-
-       mov     0x8(%ebp), %edi         /* destination */
-       mov     0xc(%ebp), %ecx         /* count */
-       xorl    %eax, %eax              /* value 0 */
-
-       rep
-       stosb
-
-       pop     %ecx
-       pop     %edi
-       pop     %esi
-       pop     %es
-       pop     %ebp
-
-       ret
-/*
- * pcpy(src, dst, cnt)
- *     where src is a virtual address and dst is a physical address
- */
-
-ENTRY(pcpy)
-       push    %ebp
-       mov     %esp, %ebp
-       push    %es
-       push    %esi
-       push    %edi
-       push    %ecx
-
-       cld
-
-       /* set %es to point at the flat segment */
-       movw    $0x10, %ax
-       mov     %ax, %es
-
-       mov     0x8(%ebp), %esi         /* source */
-       mov     0xc(%ebp), %edi         /* destination */
-       mov     0x10(%ebp), %ecx        /* count */
-
-       rep
-       movsb
-
-       pop     %ecx
-       pop     %edi
-       pop     %esi
-       pop     %es
-       pop     %ebp
-
-       ret
diff --git a/sys/i386/boot/cdboot/boot.c b/sys/i386/boot/cdboot/boot.c
deleted file mode 100644 (file)
index 21feb1f..0000000
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, [92/04/03  16:51:14  rvb]
- * $FreeBSD: src/sys/i386/boot/cdboot/boot.c,v 1.3 1999/08/28 00:43:17 peter Exp $
- * $DragonFly: src/sys/i386/boot/cdboot/Attic/boot.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-
-/*
-  Copyright 1988, 1989, 1990, 1991, 1992
-   by Intel Corporation, Santa Clara, California.
-
-                All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and
-its documentation for any purpose and without fee is hereby
-granted, provided that the above copyright notice appears in all
-copies and that both the copyright notice and this permission notice
-appear in supporting documentation, and that the name of Intel
-not be used in advertising or publicity pertaining to distribution
-of the software without specific, written prior permission.
-
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-*/
-
-/*
- * Extensions for El Torito CD-ROM booting:
- *
- * Copyright © 1997 Pluto Technologies International, Inc.  Boulder CO
- * Copyright © 1997 interface business GmbH, Dresden.
- *     All rights reserved.
- *
- * This code was written by Jörg Wunsch, Dresden.
- * Direct comments to <joerg_wunsch@interface-business.de>.
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``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(S) 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 "boot.h"
-#include <a.out.h>
-#include <sys/reboot.h>
-#include <machine/bootinfo.h>
-#ifdef PROBE_KEYBOARD_LOCK
-#include <machine/cpufunc.h>
-#endif
-
-#define        ouraddr (BOOTSEG << 4)          /* XXX */
-
-int loadflags;
-
-/*
- * XXX
- * By now, only "cd".  How do we learn from the BIOS we've been booted off
- * an ATAPI CD-ROM?  Do the non-{cd,wcd} drivers implement El Torito booting
- * at all?
- */
-static int maj = 6;
-static struct specpacket spkt = { 0x13 };
-static char *name;
-static char namebuf[128];
-static struct bootinfo bootinfo;
-
-static void getbootdev(char *ptr, int *howto);
-static void loadprog(void);
-
-/* NORETURN */
-void
-boot(int drive)
-{
-       int ret, i;
-
-#ifdef PROBE_KEYBOARD
-       if (probe_keyboard()) {
-               init_serial();
-               loadflags |= RB_SERIAL;
-               printf("\nNo keyboard found.");
-       }
-#endif
-
-#ifdef PROBE_KEYBOARD_LOCK
-       if (!(inb(0x64) & 0x10)) {
-               init_serial();
-               loadflags |= RB_SERIAL;
-               printf("\nKeyboard locked.");
-       }
-#endif
-
-#ifdef FORCE_COMCONSOLE
-       init_serial();
-       loadflags |= RB_SERIAL;
-       printf("\nSerial console forced.");
-#endif
-
-       /* Pick up the story from the Bios on geometry of disks */
-
-       /*
-        * XXX
-        * Do we need to defer this until we can relinguish the
-        * BIOS emulation?
-        */
-
-       for(ret = 0; ret < N_BIOS_GEOM; ret ++)
-               bootinfo.bi_bios_geom[ret] = get_diskinfo(ret + 0x80);
-
-       bootinfo.bi_basemem = memsize(0);
-       bootinfo.bi_extmem = memsize(1);
-       bootinfo.bi_memsizes_valid = 1;
-
-       gateA20();
-
-       ret = getbootspec(&spkt);
-       if (ret != 0) {
-               printf("Your BIOS int 0x13 extensions seem to be disabled.\n"
-                      "It's impossible to boot a CD-ROM without them.\n"
-                      "(BIOS int 0x13 fn 0x4b01 yielded error %d)\n",
-                      ret);
-               while (1)
-                       ;
-       }
-
-       if (devopen(sessionstart) == -1)
-               printf("Warning: cannot open default session.\n"
-                      "Maybe your BIOS int 0x13 extensions are disabled?\n"
-                      "You need them in order to boot a CD-ROM.\n");
-
-       for (;;) {
-               
-               /*
-                * The El Torito specification stinks.  Not only this
-                * crappy idea of `emulation booting' (and at least
-                * earlier versions of the AHA-2940 BIOS didn't
-                * implement anything else than floppy emulation
-                * booting), but note also that there's absolutely no
-                * way via the BIOS to obtain the starting LBA of your
-                * session.  All you can get ahold of is the LBA of
-                * that funny emulated disk.  Since this one just
-                * happens to be a file hidden inside the ISO9660
-                * filesystem, it is located at a varying offset from
-                * the start of the session.  We therefore allow to
-                * specify the starting block of the session to use in
-                * the boot string, so the operator can specify the
-                * session to boot from.  However, (s)he needs to know
-                * the RBA for the session from the CD-ROM TOC.
-                */
-               DPRINTF(("using session at sector %d\n", sessionstart));
-
-               name = "/kernel";
-               printf("\n>> FreeBSD CD-ROM BOOT\n"
-                      "Usage: [@%d]%s[-abcCdghrsv]\n"
-                      "Use ? for file list or press Enter for defaults\n"
-                      "\nBoot: ",
-                      sessionstart, name);
-
-               loadflags &= RB_SERIAL; /* clear all, but leave serial console */
-               loadflags |= RB_CDROM;  /* ...and default to CD-ROM root. */
-
-               getbootdev(namebuf, &loadflags);
-
-               DPRINTF(("Selected: name=`%s', loadflags=0x%x\n",
-                        name, loadflags));
-
-               ret = openrd(name);
-
-               DPRINTF(("openrd() = %d\n", ret));
-
-               if (ret != 0) {
-                       if (ret > 0)
-                               printf("Can't find %s\n", name);
-                       continue;
-               }
-               loadprog();
-       }
-}
-
-static void
-loadprog(void)
-{
-       struct exec head;
-       u_int32_t startaddr, addr, bootdev;
-       int i;
-       unsigned pad;
-
-       seek(0);
-       if (read((void *)&head, sizeof(head)) == -1 ||
-           N_BADMAG(head)) {
-               printf("Invalid format!\n");
-               return;
-       }
-
-       /*
-        * We assume that the entry address is the same as the lowest text
-        * address and that the kernel startup code handles relocation by
-        * this address rounded down to a multiple of 16M.
-        */
-       startaddr = head.a_entry & 0x00FFFFFF;
-       addr =  startaddr;
-       printf("Booting CD-ROM [@%d]%s @ 0x%x\n", sessionstart, name, addr);
-       if(addr < 0x00100000)
-       {
-               /*
-                * Bail out, instead of risking to damage the BIOS
-                * variables, the loader, or the adapter memory area.
-                * We don't support loading below 1 MB any more.
-                */
-               printf("Start address too low\n");
-               return;
-       }
-       printf("text=0x%x ", head.a_text);
-
-       /* load the text segment */
-       seek(N_TXTOFF(head));
-       if (xread((void *)addr, head.a_text) == -1)
-               return;
-       addr += head.a_text;
-
-       /* Pad to a page boundary. */
-       pad = (unsigned)addr & PAGE_MASK;
-       if (pad != 0) {
-               pad = PAGE_SIZE - pad;
-               pbzero((void *)addr, pad);
-               addr += pad;
-       }
-
-       /* load the initialised data after the text */
-       printf("data=0x%x ", head.a_data);
-       if (xread((void *)addr, head.a_data) == -1)
-               return;
-       addr += head.a_data;
-
-       /* Skip over the uninitialised data (but clear it) */
-       printf("bss=0x%x ", head.a_bss);
-
-/*
- * XXX however, we should be checking that we don't load ... into
- * nonexistent memory.  A full symbol table is unlikely to fit on 4MB
- * machines.
- */
-       pbzero((void *)addr, head.a_bss);
-       addr += head.a_bss;
-
-       /* Pad to a page boundary. */
-       pad = (unsigned)addr & PAGE_MASK;
-       if (pad != 0) {
-               pad = PAGE_SIZE - pad;
-               addr += pad;
-       }
-       bootinfo.bi_symtab = addr;
-
-       /* Copy the symbol table size */
-       pcpy(&head.a_syms, (void *)addr, sizeof(head.a_syms));
-       addr += sizeof(head.a_syms);
-
-       /* Load the symbol table */
-       printf("symbols=[+0x%x+0x%x+0x%x", pad, sizeof(head.a_syms),
-              head.a_syms);
-       if (xread((void *)addr, head.a_syms) == -1)
-               return;
-       addr += head.a_syms;
-
-       /* Load the string table size */
-       if (read((void *)&i, sizeof(int)) == -1)
-               return;
-       pcpy(&i, (void *)addr, sizeof(int));
-       i -= sizeof(int);
-       addr += sizeof(int);
-
-       /* Load the string table */
-       printf("+0x%x+0x%x]\n", sizeof(int), i);
-       if (xread((void *)addr, i) == -1)
-               return;
-       addr += i;
-
-       bootinfo.bi_esymtab = addr;
-
-       /* XXX what else can we say about a CD-ROM? */
-       bootdev = MAKEBOOTDEV(maj, 0, 0, 0, 0);
-
-       bootinfo.bi_version = BOOTINFO_VERSION;
-       bootinfo.bi_kernelname = (u_int32_t)(name + ouraddr);
-       bootinfo.bi_nfs_diskless = 0;
-       bootinfo.bi_size = sizeof(bootinfo);
-       printf("total=0x%x entry point=0x%x\n", (int)addr, (int)startaddr);
-       startprog((int)startaddr, loadflags | RB_BOOTINFO, bootdev,
-                 (int)&bootinfo + ouraddr);
-}
-
-static void
-getbootdev(char *ptr, int *howto)
-{
-       char c;
-
-       /*
-        * Be paranoid and make doubly sure that the input buffer is empty.
-        */
-       if (*howto & RB_SERIAL)
-               init_serial();
-
-       if (!gets(ptr)) {
-               putchar('\n');
-               return;
-       }
-       while ((c = *ptr) != '\0') {
-nextarg:
-               while (c == ' ')
-                       c = *++ptr;
-               if (c == '-')
-                       while ((c = *++ptr) != '\0') {
-                               if (c == ' ')
-                                       goto nextarg;
-                               if (c == 'C')
-                                       *howto &= ~RB_CDROM;
-                               if (c == 'a')
-                                       *howto |= RB_ASKNAME;
-                               if (c == 'b')
-                                       *howto |= RB_HALT;
-                               if (c == 'c')
-                                       *howto |= RB_CONFIG;
-                               if (c == 'd')
-                                       *howto |= RB_KDB;
-                               if (c == 'h') {
-                                       *howto ^= RB_SERIAL;
-                                       if (*howto & RB_SERIAL)
-                                               init_serial();
-                                       continue;
-                               }
-                               if (c == 'g')
-                                       *howto |= RB_GDB;
-                               if (c == 'r')
-                                       *howto |= RB_DFLTROOT;
-                               if (c == 's')
-                                       *howto |= RB_SINGLE;
-                               if (c == 'v')
-                                       *howto |= RB_VERBOSE;
-                       }
-               if (c == '\0')
-                       return;
-               name = ptr;
-               while (*++ptr != '\0') {
-                       if (*ptr == ' ') {
-                               *ptr++ = '\0';
-                               break;
-                       }
-               }
-       }
-}
diff --git a/sys/i386/boot/cdboot/boot.h b/sys/i386/boot/cdboot/boot.h
deleted file mode 100644 (file)
index a51cb37..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Mach Operating System
- * Copyright (c) 1992, 1991 Carnegie Mellon University
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
- *  School of Computer Science
- *  Carnegie Mellon University
- *  Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie Mellon
- * the rights to redistribute these changes.
- *
- *     from: Mach, Revision 2.2  92/04/04  11:35:03  rpd
- * $FreeBSD: src/sys/i386/boot/cdboot/boot.h,v 1.3 1999/08/28 00:43:17 peter Exp $
- * $DragonFly: src/sys/i386/boot/cdboot/Attic/boot.h,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-/*
- * Extensions for El Torito CD-ROM booting:
- *
- * Copyright © 1997 Pluto Technologies International, Inc.  Boulder CO
- * Copyright © 1997 interface business GmbH, Dresden.
- *      All rights reserved.
- *
- * This code has been written by Jörg Wunsch, Dresden.
- * Direct comments to <joerg_wunsch@interface-business.de>.
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``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(S) 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/time.h>
-
-/*
- * Specification packet per El Torito, BIOS int 0x13 fn 0x4b00/0x4b01
- */
-struct specpacket
-{
-       u_char size;            /* must be 0x13 */
-       u_char mediatype;       /*
-                                * 0 - no emulation
-                                * 1 - 1.2 MB floppy
-                                * 2 - 1.44 MB floppy
-                                * 3 - 2.88 MB floppy
-                                * 4 - hard disk C:
-                                */
-       u_char drvno;           /* emulated drive number */
-       u_char ctrlindx;        /* controller index, see El Torito */
-       u_int32_t lba;          /* LBA of emulated disk drive */
-       u_int16_t devspec;      /* device specification, see El Torito */
-       u_int16_t ubufseg;      /* user buffer segment */
-       u_int16_t loadseg;      /* load segment; 0 => use BIOS default 0x7c0 */
-       u_int16_t seccnt;       /* number of auto-loaded (virtual) sectors */
-       u_char cyls;            /* same values as in int 0x13, fn 8 */
-       u_char secs;
-       u_char heads;
-};
-
-/*
- * Disk address packet for extended BIOS int 0x13 fn's 0x41...0x48.
- */
-struct daddrpacket
-{
-       u_char size;            /* size of daddrpacket, must be 0x10 */
-       u_char reserved1;
-       u_char nblocks;         /*
-                                * number of 512-byte blocks to transfer,
-                                * must be <= 127
-                                */
-       u_char reserved2;
-       u_int16_t boffs;        /* bseg:boffs denominate the transfer buffer */
-       u_int16_t bseg;
-       u_int32_t lba;          /* actually a 64-bit type, but 64-bit arith */
-       u_int32_t lbahigh;      /* is expensive, and we don't really need it */
-};
-
-#ifdef DEBUG
-# define DPRINTF(x) printf x
-#else
-# define DPRINTF(x)
-#endif
-
-
-/* asm.S */
-#if ASM_ONLY
-void real_to_prot(void);
-void prot_to_real(void);
-#endif
-void startprog(unsigned int physaddr, int howto, int bootdev,
-              /* XXX struct bootinfo * */ unsigned int bootinfo);
-void pbzero(void *dst, size_t count);
-void pcpy(const void *src, void *dst, size_t count);
-
-/* bios.S */
-
-int biosread(int dev, int cyl, int head, int sec, int nsec, void *offset);
-int getbootspec(struct specpacket *offset);
-int biosreadlba(struct daddrpacket *daddr);
-void putc(int c);
-int getc(void);
-int ischar(void);
-int get_diskinfo(int drive);
-int memsize(int extended);
-
-/* boot.c */
-extern int loadflags;
-
-void boot(int drive);
-
-/* boot2.S */
-void boot2(void);
-
-/* cdrom.c */
-extern u_int32_t sessionstart;
-
-int devopen(u_int32_t session);
-void seek(u_int32_t offs);
-int read(u_char *addr, size_t size);
-int xread(u_char *addr, size_t size);
-int openrd(char *name);
-
-/* io.c */
-void gateA20(void);
-void printf(const char *format, ...);
-void putchar(int c);
-void delay1ms(void);
-int gets(char *buf);
-int strcasecmp(const char *s1, const char *s2);
-int strcmp(const char *s1, const char *s2);
-void bcopy(const void *from, void *to, size_t len);
-void twiddle(void);
-
-/* probe_keyboard.c */
-int probe_keyboard(void);
-
-/* serial.S */
-void serial_putc(int ch);
-int serial_getc(void);
-int serial_ischar(void);
-void init_serial(void);
-
-/* table.c */
-extern char *devs[];
-extern unsigned long tw_chars;
-
-/* malloc.c */
-void *malloc(size_t size);
-void free(void *chunk);
-
-/* linker stuff */
-extern void end;
diff --git a/sys/i386/boot/cdboot/cdrom.c b/sys/i386/boot/cdboot/cdrom.c
deleted file mode 100644 (file)
index 6bfd562..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- * Copyright © 1997 Pluto Technologies International, Inc.  Boulder CO
- * Copyright © 1997 interface business GmbH, Dresden.
- *     All rights reserved.
- *
- * This code was written by Jörg Wunsch, Dresden.
- * Direct comments to <joerg_wunsch@interface-business.de>.
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``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(S) 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.
- *
- * $FreeBSD: src/sys/i386/boot/cdboot/cdrom.c,v 1.4 1999/08/28 00:43:17 peter Exp $
- * $DragonFly: src/sys/i386/boot/cdboot/Attic/cdrom.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-
-#include "boot.h"
-
-#include <isofs/cd9660/iso.h>
-
-#define BLKSIZE        2048            /* CD-ROM data block size */
-#define BIOSSEC        512             /* BIOS sector size */
-
-#define CD2LBA(rba)    ((rba) << 2) /* CD-ROM relative block to BIOS LBA */
-
-u_int32_t sessionstart;
-
-static struct iso_primary_descriptor pdesc;
-
-static char *rootdirbuf;
-static size_t rootdirsize;
-static char xbuf[BLKSIZE];
-static u_int32_t curblk, startblk, filesize, offset;
-
-static int bread(u_int32_t rba, size_t nblks, void *buf);
-static void badread(const char *msg, u_int32_t blkno);
-static struct iso_directory_record *find(const char *path, int list_only);
-static char *get_rr_name(struct iso_directory_record *dirp, size_t *len_ret);
-static int iread(u_char *buf, size_t len,
-                void (*copyfun)(const void *src, void *dst, size_t size));
-
-static struct daddrpacket dpkt = { 0x10 };
-
-int
-devopen(u_int32_t session)
-{
-       int rv;
-       u_int32_t rootdirblk;
-       struct iso_directory_record *rootdirp;
-
-       if ((rv = bread(session + 16, 1, &pdesc)) != 0) {
-               printf("Error reading primary ISO descriptor: %d\n", rv);
-               return -1;
-       }
-       rootdirp = (struct iso_directory_record *)pdesc.root_directory_record;
-       rootdirblk = isonum_733(rootdirp->extent);
-       rootdirsize = isonum_733(rootdirp->size);
-
-       /* just in case, round up */
-       rootdirsize = (rootdirsize + BLKSIZE - 1) & ~(BLKSIZE - 1);
-
-       if (rootdirbuf != NULL)
-               free(rootdirbuf);
-       if ((rootdirbuf = malloc(rootdirsize)) == 0) {
-               printf("Cannot allocate memory for the root "
-                      "directory buffer.\n");
-               return -1;
-       }
-       if ((rv = bread(rootdirblk, rootdirsize / BLKSIZE, rootdirbuf))
-           != 0) {
-               printf("Error reading root directory: %d\n", rv);
-               return -1;
-       }
-
-       DPRINTF(("Root directory is 0x%x bytes @ %d\n",
-                rootdirsize, rootdirblk));
-
-       return 0;
-}
-
-static int
-bread(u_int32_t rba, size_t nblks, void *buf)
-{
-       int i, rv;
-
-       for (i = 0, rv = -1; rv != 0 && i < 3; i++) {
-               dpkt.nblocks = nblks * (BLKSIZE / BIOSSEC);
-               dpkt.boffs = (u_int16_t)((int)buf & 0xffff);
-               dpkt.bseg = BOOTSEG;
-               dpkt.lba = CD2LBA(rba);
-
-#ifdef DEBUG_VERBOSE
-               DPRINTF(("Calling biosreadlba(%d blocks, lba %d) = ",
-                        dpkt.nblocks, dpkt.lba));
-#endif
-
-               rv = biosreadlba(&dpkt);
-
-#ifdef DEBUG_VERBOSE
-               DPRINTF(("%d\n", rv));
-#endif
-       }
-       return rv;
-}
-
-
-void
-seek(u_int32_t offs)
-{
-       offset = offs;
-}
-
-static void
-badread(const char *msg, u_int32_t blkno)
-{
-       printf("Error reading block %d from CD-ROM: %s\n",
-              blkno, msg);
-}
-
-static __inline size_t
-minlen(size_t a, size_t b)
-{
-       return a < b? a: b;
-}
-
-/*
- * Internal form of read()/xread().
- */
-static int
-iread(u_char *buf, size_t len,
-      void (*copyfun)(const void *src, void *dst, size_t size))
-{
-       u_int32_t newblk, ptr;
-       size_t bsize;
-
-       newblk = offset / BLKSIZE + startblk;
-
-       if (newblk != curblk) {
-               if (offset + len >= filesize) {
-                       badread("access beyond file limit", newblk);
-                       return -1;
-               }
-               if (bread(newblk, 1, xbuf)) {
-                       badread("BIOS read error", newblk);
-                       return -1;
-               }
-               curblk = newblk;
-       }
-       ptr = offset & (BLKSIZE - 1);
-       if (ptr > 0) {
-               /* initial short transfer */
-               bsize = minlen(BLKSIZE - ptr, len);
-               copyfun(xbuf + ptr, buf, bsize);
-               buf += bsize;
-               len -= bsize;
-               offset += bsize;
-       }
-       for (; len > 0; len -= bsize) {
-               bsize = minlen(len, BLKSIZE);
-               newblk = offset / BLKSIZE + startblk;
-
-               if (newblk != curblk) {
-                       if (offset + bsize > filesize) {
-                               badread("access beyond file limit", newblk);
-                               return -1;
-                       }
-                       if (bread(newblk, 1, xbuf)) {
-                               badread("BIOS read error", newblk);
-                               return -1;
-                       }
-                       curblk = newblk;
-               }
-               copyfun(xbuf, buf, bsize);
-               buf += bsize;
-               offset += bsize;
-       }
-       return 0;
-}
-
-int
-read(u_char *buf, size_t len)
-{
-       DPRINTF(("read(0x%x, %d)\n", (int)buf, len));
-       return iread(buf, len, bcopy);
-}
-
-int
-xread(u_char *buf, size_t len)
-{
-       DPRINTF(("xread(0x%x, %d)\n", (int)buf, len));
-       return iread(buf, len, pcpy);
-}
-
-static char *
-get_rr_name(struct iso_directory_record *dirp, size_t *len_ret)
-{
-       struct rr_header {
-               char    type[2];
-               u_char  len;
-               u_char  version;
-       } *rrp;
-       struct rr_nm_header {
-               struct rr_header rrh;
-               u_char  flags;
-               char    name[0]; /* XXX -- using gcc extension */
-       } *rrnmp;
-       char *cp;
-
-       cp = dirp->name + (u_char)dirp->name_len[0];
-       /* round up to 16-bit boundary; ugly */
-       cp = (char *)(((int)cp + 1) & ~1);
-       rrp = (struct rr_header *)cp;
-
-       if (rrp->type[0] != 'R' || rrp->type[1] != 'R') {
-               DPRINTF(("no RR, "));
-               return 0;
-       }
-
-       DPRINTF(("RR attribs: "));
-       cp += rrp->len;
-       while (cp - (char *)dirp <= (u_char)dirp->length[0]) {
-               rrp = (struct rr_header *)cp;
-               DPRINTF(("%c%c ", rrp->type[0], rrp->type[1]));
-               if (rrp->type[0] == 'N' && rrp->type[1] == 'M') {
-                       rrnmp = (struct rr_nm_header *)rrp;
-                       *len_ret = rrp->len - sizeof(struct rr_nm_header);
-                       return rrnmp->name;
-               }
-               cp += rrp->len;
-       }
-
-       return 0;
-}
-
-static struct iso_directory_record *
-find(const char *path, int list_only)
-{
-       struct iso_directory_record *dirp;
-       char *ptr, *rrname;
-       size_t len, entrylen;
-       char namebuf[256];
-       int i;
-       int (*comp)(const char *, const char *);
-
-       while (*path && *path == '/')
-               path++;
-
-       for (ptr = rootdirbuf, i = 1;
-            ptr < rootdirbuf + rootdirsize;
-            ptr += entrylen, i++) {
-               dirp = (struct iso_directory_record *)ptr;
-               entrylen = (u_char)dirp->length[0];
-               len = (u_char)dirp->name_len[0];
-
-               DPRINTF(("# %d: offset 0x%x, length 0x%x = %d, ",
-                        i, (int)(ptr - rootdirbuf), entrylen, entrylen));
-
-               if (entrylen == 0) {
-                       /*
-                        * Dir entry of length 0.  That's the last
-                        * entry in this block, advance to the next
-                        * block (if any).  In case we get beyond the
-                        * end of the directory, we'll fall off the
-                        * loop due to the rootdirsize condition in
-                        * the `for' statement.
-                        */
-                       DPRINTF(("entrylen 0\n"));
-                       entrylen = (~((ptr - rootdirbuf) + BLKSIZE - 1))
-                               & (BLKSIZE - 1);
-                       continue;
-               }
-               if (len == 0) {
-                       DPRINTF(("name_len 0\n"));
-                       continue;
-               }
-               if (len == 1 &&
-                   (dirp->name[0] == '\0' || dirp->name[1] == '\1')) {
-                       DPRINTF(("dot/dot-dot entry\n"));
-                       continue;
-               }
-               /* don't consider directories */
-               if (dirp->flags[0] & 2) {
-                       DPRINTF(("directory\n"));
-                       continue;
-               }
-               rrname = get_rr_name(dirp, &len);
-               comp = rrname? strcmp: strcasecmp;
-
-               bcopy(rrname? rrname: dirp->name, namebuf, len);
-               namebuf[len] = 0;
-               DPRINTF(("name `%s'\n", namebuf));
-
-               if (list_only) {
-#ifndef DEBUG
-                       printf("%s ", namebuf);
-#endif
-               } else if (comp(path, namebuf) == 0)
-                       return dirp;
-       }
-#ifndef DEBUG
-       if (list_only)
-               printf("\n");
-#endif
-       return 0;
-}
-
-int
-openrd(char *name)
-{
-       char *cp;
-       const char *fname;
-       u_int32_t oldsession;
-       int session, list_only;
-       struct iso_directory_record *dirp;
-
-       session = 0;
-       fname = name;
-
-       /*
-        * We accept the following boot string:
-        *
-        * [@sessionstart] name
-        */
-       for (cp = name; *cp; cp++)
-               switch (*cp) {
-               /* we don't support filenames with spaces */
-               case ' ':       case '\t':
-                       break;
-
-               case '@':
-                       if (session) {
-                               printf("Syntax error\n");
-                               return -1;
-                       }
-                       session++;
-                       oldsession = sessionstart;
-                       sessionstart = 0;
-                       break;
-
-               case '0':       case '1':       case '2':
-               case '3':       case '4':       case '5':
-               case '6':       case '7':       case '8':
-               case '9':
-                       if (session == 1) {
-                               sessionstart *= 10;
-                               sessionstart += *cp - '0';
-                       }
-                       break;
-
-               default:
-                       if (session == 1) {
-                               session++;
-                               fname = cp;
-                       }
-               }
-
-       if (session && devopen(sessionstart) == -1) {
-               (void)devopen(oldsession);
-               sessionstart = oldsession;
-       }
-       if (session == 1)
-               /* XXX no filename, only session arg */
-               return -1;
-
-       list_only = fname[0] == '?' && fname[1] == 0;
-
-       DPRINTF(("Calling find(%s, %d):\n", fname, list_only));
-       dirp = find(fname, list_only);
-       DPRINTF(("find() returned 0x%x\n", (int)dirp));
-
-       if (list_only)
-               return -1;
-       if (dirp == 0)
-               return 1;
-
-       startblk = isonum_733(dirp->extent);
-       filesize = isonum_733(dirp->size);
-
-       DPRINTF(("startblk = %d, filesize = %d\n", startblk, filesize));
-
-       curblk = 0;     /* force a re-read, 0 is impossible file start */
-       seek(0);
-
-       return 0;
-}
diff --git a/sys/i386/boot/cdboot/malloc.c b/sys/i386/boot/cdboot/malloc.c
deleted file mode 100644 (file)
index 2d1affe..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright © 1997 Pluto Technologies International, Inc.  Boulder CO
- * Copyright © 1997 interface business GmbH, Dresden.
- *     All rights reserved.
- *
- * This code was written by Jörg Wunsch, Dresden.
- * Direct comments to <joerg_wunsch@interface-business.de>.
- *
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``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(S) 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.
- *
- * $FreeBSD: src/sys/i386/boot/cdboot/malloc.c,v 1.2 1999/08/28 00:43:18 peter Exp $
- * $DragonFly: src/sys/i386/boot/cdboot/Attic/malloc.c,v 1.2 2003/06/17 04:28:34 dillon Exp $
- */
-
-/*
- * Simple memory allocator for the bootstrap loader.  Probably suffers
- * a lot from fragmentation.
- */
-
-#include "boot.h"
-
-#include <stddef.h>
-
-/* ``Nobody will ever need more than 640 KB of RAM.'' :-) */
-#define MAXBRK (640 * 1024 * 1024)
-
-/* allocation unit */
-#define NCHUNKS 2048
-
-struct chunk
-{
-       struct chunk *next;
-       size_t len;
-};
-
-static void *brkval;
-static struct chunk *freelist;
-
-void *
-malloc(size_t len)
-{
-       struct chunk *p, *q, *oldp;
-       size_t nelems;
-
-       nelems = (len + sizeof(struct chunk) - 1) / sizeof(struct chunk) + 1;
-
-       /*
-        * First, see if we can satisfy the request from the freelist.
-        */
-       for (p = freelist, oldp = 0;
-            p && p != (struct chunk *)brkval;
-            oldp = p, p = p->next) {
-               if (p->len > nelems) {
-                       /* chunk is larger, shorten, and return the tail */
-                       p->len -= nelems;
-                       q = p + p->len;
-                       q->next = 0;
-                       q->len = nelems;
-                       q++;
-                       return (void *)q;
-               }
-               if (p->len == nelems) {
-                       /* exact match, remove from freelist */
-                       if (oldp == 0)
-                               freelist = p->next;
-                       else
-                               oldp->next = p->next;
-                       p->next = 0;
-                       p++;
-                       return (void *)p;
-               }
-       }
-       /*
-        * Nothing found on freelist, try obtaining more space.
-        */
-       if (brkval == 0)
-               brkval = &end;
-       q = p = (struct chunk *)brkval;
-       if ((int)(p + NCHUNKS) > MAXBRK)
-               return 0;
-
-       p += NCHUNKS;
-       brkval = p;
-
-       q->next = p;
-       q->len = NCHUNKS;
-
-       if (oldp == 0)
-               freelist = q;
-       else {
-               if (oldp + oldp->len == q) {
-                       /* extend last chunk */
-                       oldp->len += NCHUNKS;
-                       oldp->next = p;
-               } else
-                       oldp->next = q;
-       }
-
-       return malloc(len);
-}
-
-void
-free(void *ptr)
-{
-       struct chunk *p, *q, *oldp;
-
-       if (ptr == 0)
-               return;
-
-       q = (struct chunk *)ptr;
-       q--;
-       if (q->next != 0) {
-               printf("malloc error: botched ptr to free()\n");
-               return;
-       }
-
-       /*
-        * Walk the freelist, and insert in the correct sequence.
-        */
-       for (p = freelist, oldp = 0;
-            p && p != (struct chunk *)brkval;
-            oldp = p, p = p->next) {
-               if ((unsigned)p > (unsigned)q) {
-                       if (q + q->len == p) {
-                               /* aggregate with next chunk */
-                               q->len += p->len;
-                               q->next = p->next;
-                               p = p->next;
-                       }
-                       if (oldp) {
-                               if (oldp + oldp->len == q) {
-                               /* aggregate with previous chunk */
-                                       oldp->len += q->len;
-                                       oldp->next = p;
-                               } else {
-                               /* insert into chain */
-                                       q->next = p;
-                                       oldp->next = q;
-                               }
-                               return;
-                       }
-                       q->next = p;
-                       freelist = q;
-               }
-       }
-       if (oldp) {
-               /* we are topmost */
-               if (oldp + oldp->len == q) {
-                       /* aggregate with previous chunk */
-                       oldp->len += q->len;
-                       oldp->next = p;
-               } else {
-                       oldp->next = q;
-                       q->next = p;
-               }
-               return;
-       }
-       /* we are alone on the freelist */
-       freelist = q;
-}
-
diff --git a/sys/i386/boot/dosboot/Makefile b/sys/i386/boot/dosboot/Makefile
deleted file mode 100644 (file)
index 81a5dd1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-# $FreeBSD: src/sys/i386/boot/dosboot/Makefile,v 1.6.2.1 2002/08/07 16:31:56 ru Exp $
-# $DragonFly: src/sys/i386/boot/dosboot/Attic/Makefile,v 1.2 2003/06/17 04:28:34 dillon Exp $
-#
-
-MPROG= fbsdboot.exe
-CLEANFILES+=   ${MPROG}
-BINMODE=       444
-NOMAN=
-STRIP=
-
-all:   ${MPROG}
-
-install:       ${MPROG}
-       ${INSTALL} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
-           ${INSTALLFLAGS} ${MPROG} ${DESTDIR}${BINDIR}
-
-
-${MPROG}:      ${MPROG}.uu
-       uudecode < ${.CURDIR}/${MPROG}.uu
-
-.include <bsd.prog.mk>
diff --git a/sys/i386/boot/dosboot/ansi.h b/sys/i386/boot/dosboot/ansi.h
deleted file mode 100644 (file)
index 86810a3..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*-\r
- * Copyright (c) 1990 The Regents of the University of California.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement:\r
- *     This product includes software developed by the University of\r
- *     California, Berkeley and its contributors.\r
- * 4. Neither the name of the University nor the names of its contributors\r
- *    may be used to endorse or promote products derived from this software\r
- *    without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- *     from: @(#)ansi.h        7.1 (Berkeley) 3/9/91\r
- * $FreeBSD: src/sys/i386/boot/dosboot/ansi.h,v 1.5 1999/08/28 00:43:19 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/ansi.h,v 1.2 2003/06/17 04:28:34 dillon Exp $\r
- */\r
-\r
-#ifndef        _ANSI_H_\r
-#define        _ANSI_H_\r
-\r
-/*\r
- * Types which are fundamental to the implementation and may appear in\r
- * more than one standard header are defined here.  Standard headers\r
- * then use:\r
- *     #ifdef  _SIZE_T_\r
- *     typedef _SIZE_T_ size_t;\r
- *     #undef  _SIZE_T_\r
- *     #endif\r
- *\r
- * Thanks, ANSI!\r
- */\r
-#define        _CLOCK_T_       unsigned long           /* clock() */\r
-#define        _PTRDIFF_T_     int                     /* ptr1 - ptr2 */\r
-#define        _SIZE_T_        unsigned int            /* sizeof() */\r
-#define        _TIME_T_        long                    /* time() */\r
-#define        _VA_LIST_       char *                  /* va_list */\r
-#define        _WCHAR_T_       unsigned short          /* wchar_t */\r
-\r
-#endif /* _ANSI_H_ */\r
diff --git a/sys/i386/boot/dosboot/boot.c b/sys/i386/boot/dosboot/boot.c
deleted file mode 100644 (file)
index 8cec350..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/*\r
- * Mach Operating System\r
- * Copyright (c) 1992, 1991 Carnegie Mellon University\r
- * All Rights Reserved.\r
- * \r
- * Permission to use, copy, modify and distribute this software and its\r
- * documentation is hereby granted, provided that both the copyright\r
- * notice and this permission notice appear in all copies of the\r
- * software, derivative works or modified versions, and any portions\r
- * thereof, and that both notices appear in supporting documentation.\r
- * \r
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"\r
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR\r
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.\r
- * \r
- * Carnegie Mellon requests users of this software to return to\r
- * \r
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU\r
- *  School of Computer Science\r
- *  Carnegie Mellon University\r
- *  Pittsburgh PA 15213-3890\r
- * \r
- * any improvements or extensions that they make and grant Carnegie Mellon\r
- * the rights to redistribute these changes.\r
- *\r
- *     from: Mach, [92/04/03  16:51:14  rvb]\r
- * $FreeBSD: src/sys/i386/boot/dosboot/boot.c,v 1.5 1999/08/28 00:43:19 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/boot.c,v 1.2 2003/06/17 04:28:34 dillon Exp $\r
- */\r
-\r
-\r
-/*\r
-  Copyright 1988, 1989, 1990, 1991, 1992 \r
-   by Intel Corporation, Santa Clara, California.\r
-\r
-                All Rights Reserved\r
-\r
-Permission to use, copy, modify, and distribute this software and\r
-its documentation for any purpose and without fee is hereby\r
-granted, provided that the above copyright notice appears in all\r
-copies and that both the copyright notice and this permission notice\r
-appear in supporting documentation, and that the name of Intel\r
-not be used in advertising or publicity pertaining to distribution\r
-of the software without specific, written prior permission.\r
-\r
-INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE\r
-INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,\r
-IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR\r
-CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r
-LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,\r
-NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION\r
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\r
-*/\r
-#include <stdio.h>\r
-#include <conio.h>\r
-#include <process.h>\r
-#include <memory.h>\r
-\r
-#include "bootinfo.h"\r
-#include "protmod.h"\r
-#include "param.h"\r
-#include "boot.h"\r
-#include "reboot.h"\r
-\r
-#include "exec.h"\r
-\r
-int openrd(char *kernel);\r
-void ufs_read(char *buffer, long count);\r
-void xread(unsigned long addr, long size);\r
-\r
-static struct exec head;\r
-static long argv[10];\r
-static char buf[__LDPGSZ];\r
-static long int startaddr;\r
-\r
-void pbzero(unsigned long addr, unsigned long size)\r
-{\r
-       long s;\r
-\r
-       memset(buf, 0, __LDPGSZ);\r
-       while (size) {\r
-               s = size > __LDPGSZ ? __LDPGSZ : size;\r
-               pm_copy(buf, addr, s);\r
-               size -= s;\r
-               addr += s;\r
-       }\r
-}\r
-\r
-static long loadprog(long *hsize)\r
-{\r
-       long addr;      /* physical address.. not directly useable */\r
-       long hmaddress;\r
-       unsigned long pad;\r
-       long i;\r
-       static int (*x_entry)() = 0;\r
-\r
-       ufs_read(&head, (long) sizeof(head));\r
-       if (N_BADMAG(head)) {\r
-               printf("Invalid format!\n");\r
-               exit(0);\r
-       }\r
-\r
-       startaddr = (long)head.a_entry;\r
-       addr = (startaddr & 0x00ffffffl); /* some MEG boundary */\r
-       printf("Booting @ 0x%lx\n", addr);\r
-       if(addr < 0x100000l)\r
-       {\r
-               printf("Start address too low!\n");\r
-               exit(0);\r
-       }\r
-\r
-       poff = N_TXTOFF(head)+head.a_text+head.a_data+head.a_syms;\r
-       ufs_read((void *)&i, sizeof(long));\r
-       *hsize = head.a_text+head.a_data+head.a_bss;\r
-       *hsize = (*hsize+NBPG-1)&~(NBPG-1);\r
-       *hsize += i+4+head.a_syms;\r
-       addr=hmaddress=get_high_memory(*hsize);\r
-       if (!hmaddress) {\r
-               printf("Sorry, can't allocate enough memory!\n");\r
-               exit(0);\r
-       }\r
-\r
-       poff = N_TXTOFF(head);\r
-\r
-       /********************************************************/\r
-       /* LOAD THE TEXT SEGMENT                                */\r
-       /********************************************************/\r
-       printf("text=0x%lx ", head.a_text);\r
-       xread(addr, head.a_text);\r
-       addr += head.a_text;\r
-\r
-       /********************************************************/\r
-       /* Load the Initialised data after the text             */\r
-       /********************************************************/\r
-       while (addr & CLOFSET)\r
-               pm_copy("\0", addr++, 1);\r
-\r
-       printf("data=0x%lx ", head.a_data);\r
-       xread(addr, head.a_data);\r
-       addr += head.a_data;\r
-\r
-       /********************************************************/\r
-       /* Skip over the uninitialised data                     */\r
-       /* (but clear it)                                       */\r
-       /********************************************************/\r
-       printf("bss=0x%lx ", head.a_bss);\r
-       pbzero(addr, head.a_bss);\r
-       addr += head.a_bss;\r
-\r
-       /* Pad to a page boundary. */\r
-       pad = (unsigned long)(addr-hmaddress+(startaddr & 0x00ffffffl)) % NBPG;\r
-       if (pad != 0) {\r
-               pad = NBPG - pad;\r
-               addr += pad;\r
-       }\r
-       bootinfo.bi_symtab = addr-hmaddress+(startaddr & 0x00ffffffl);\r
-\r
-       /********************************************************/\r
-       /* Copy the symbol table size                           */\r
-       /********************************************************/\r
-       pm_copy((char *)&head.a_syms, addr, sizeof(head.a_syms));\r
-       addr += sizeof(head.a_syms);\r
-\r
-       /********************************************************/\r
-       /* Load the symbol table                                */\r
-       /********************************************************/\r
-       printf("symbols=[+0x%lx+0x%lx+0x%lx", pad, (long) sizeof(head.a_syms),\r
-              (long) head.a_syms);\r
-       xread(addr, head.a_syms);\r
-       addr += head.a_syms;\r
-\r
-       /********************************************************/\r
-       /* Load the string table size                           */\r
-       /********************************************************/\r
-       ufs_read((void *)&i, sizeof(long));\r
-       pm_copy((char *)&i, addr, sizeof(long));\r
-       i -= sizeof(long);\r
-       addr += sizeof(long);\r
-\r
-       /********************************************************/\r
-       /* Load the string table                                */\r
-       /********************************************************/\r
-       printf("+0x%x+0x%lx] ", sizeof(long), i);\r
-       xread(addr, i);\r
-       addr += i;\r
-\r
-       bootinfo.bi_esymtab = addr-hmaddress+(startaddr & 0x00ffffffl);\r
-\r
-       /*\r
-        * For backwards compatibility, use the previously-unused adaptor\r
-        * and controller bitfields to hold the slice number.\r
-        */\r
-       printf("total=0x%lx entry point=0x%lx\n",\r
-               addr-hmaddress+(startaddr & 0x00ffffffl),\r
-               startaddr & 0x00ffffffl);\r
-\r
-       return hmaddress;\r
-}\r
-\r
-void bsdboot(int drive, long loadflags, char *kernel)\r
-{\r
-       long hmaddress, size, bootdev;\r
-\r
-       /***************************************************************\\r
-       * As a default set it to the first partition of the first       *\r
-       * floppy or hard drive                                          *\r
-       \***************************************************************/\r
-       part = unit = 0;\r
-       maj = (drive&0x80 ? 0 : 2);             /* a good first bet */\r
-\r
-       if (openrd(kernel)) {\r
-               printf("Can't find %s\n", kernel);\r
-               exit(0);\r
-       }\r
-       hmaddress = loadprog(&size);\r
-       bootdev = MAKEBOOTDEV(maj, (slice >> 4), slice & 0xf, unit, part);\r
-       startprog(hmaddress, size, ((long)startaddr & 0xffffffl),\r
-                         loadflags | RB_BOOTINFO, bootdev);\r
-}\r
diff --git a/sys/i386/boot/dosboot/boot.h b/sys/i386/boot/dosboot/boot.h
deleted file mode 100644 (file)
index 47ded36..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*\r
- * Mach Operating System\r
- * Copyright (c) 1992, 1991 Carnegie Mellon University\r
- * All Rights Reserved.\r
- * \r
- * Permission to use, copy, modify and distribute this software and its\r
- * documentation is hereby granted, provided that both the copyright\r
- * notice and this permission notice appear in all copies of the\r
- * software, derivative works or modified versions, and any portions\r
- * thereof, and that both notices appear in supporting documentation.\r
- * \r
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"\r
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR\r
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.\r
- * \r
- * Carnegie Mellon requests users of this software to return to\r
- * \r
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU\r
- *  School of Computer Science\r
- *  Carnegie Mellon University\r
- *  Pittsburgh PA 15213-3890\r
- * \r
- * any improvements or extensions that they make and grant Carnegie Mellon\r
- * the rights to redistribute these changes.\r
- *\r
- *     from: Mach, Revision 2.2  92/04/04  11:35:03  rpd\r
- * $FreeBSD: src/sys/i386/boot/dosboot/boot.h,v 1.5 1999/08/28 00:43:20 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/boot.h,v 1.2 2003/06/17 04:28:34 dillon Exp $\r
- */\r
-\r
-#include "types.h"\r
-#include "param.h"\r
-#include "quota.h"\r
-#include "fs.h"\r
-#include "inode.h"\r
-\r
-extern char *devs[], *name, *iodest;\r
-extern struct fs *fs;\r
-extern struct inode inode;\r
-extern long dosdev, slice, unit, part, maj, boff, poff, bnum, cnt;\r
-\r
-extern void bsdboot(int d, long howto, char *kernel);\r
-extern void pbzero(unsigned long addr, unsigned long size);\r
diff --git a/sys/i386/boot/dosboot/bootinfo.h b/sys/i386/boot/dosboot/bootinfo.h
deleted file mode 100644 (file)
index ac67855..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*-\r
- * Copyright (C) 1994 by Rodney W. Grimes, Milwaukie, Oregon  97222\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer as\r
- *    the first lines of this file unmodified.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement:\r
- *     This product includes software developed by Rodney W. Grimes.\r
- * 4. The name of the author may not be used to endorse or promote products\r
- *    derived from this software without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY RODNEY W. GRIMES ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED.  IN NO EVENT SHALL RODNEY W. GRIMES BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- * $FreeBSD: src/sys/i386/boot/dosboot/bootinfo.h,v 1.5 1999/08/28 00:43:20 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/bootinfo.h,v 1.2 2003/06/17 04:28:34 dillon Exp $\r
- */\r
-\r
-#ifndef        _MACHINE_BOOTINFO_H_\r
-#define        _MACHINE_BOOTINFO_H_ \r
-\r
-/* Only change the version number if you break compatibility. */\r
-#define        BOOTINFO_VERSION        1\r
-\r
-#define        N_BIOS_GEOM             8\r
-\r
-/*\r
- * A zero bootinfo field often means that there is no info available.\r
- * Flags are used to indicate the validity of fields where zero is a\r
- * normal value.\r
- */\r
-struct bootinfo {\r
-       unsigned long           bi_version;\r
-       unsigned char           *bi_kernelname;\r
-       void                            *bi_nfs_diskless;\r
-                               /* End of fields that are always present. */\r
-#define        bi_endcommon            bi_n_bios_used\r
-       unsigned long           bi_n_bios_used;\r
-       unsigned long           bi_bios_geom[N_BIOS_GEOM];\r
-       unsigned long           bi_size;\r
-       unsigned char           bi_memsizes_valid;\r
-       unsigned char           bi_pad[3];\r
-       unsigned long           bi_basemem;\r
-       unsigned long           bi_extmem;\r
-       unsigned long           bi_symtab;\r
-       unsigned long           bi_esymtab;\r
-};\r
-\r
-#ifdef KERNEL\r
-extern struct bootinfo bootinfo;\r
-#endif\r
-\r
-#endif /* _MACHINE_BOOTINFO_H_ */\r
diff --git a/sys/i386/boot/dosboot/cdefs.h b/sys/i386/boot/dosboot/cdefs.h
deleted file mode 100644 (file)
index d9c2023..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*\r
- * Copyright (c) 1991, 1993\r
- *      The Regents of the University of California.  All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement:\r
- *      This product includes software developed by the University of\r
- *      California, Berkeley and its contributors.\r
- * 4. Neither the name of the University nor the names of its contributors\r
- *    may be used to endorse or promote products derived from this software\r
- *    without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- *      from: @(#)cdefs.h       8.1 (Berkeley) 6/2/93\r
- * $FreeBSD: src/sys/i386/boot/dosboot/cdefs.h,v 1.5 1999/08/28 00:43:21 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/cdefs.h,v 1.3 2003/08/27 11:42:34 rob Exp $\r
- */\r
-\r
-#ifndef _CDEFS_H_\r
-#define _CDEFS_H_\r
-\r
-#if defined(__cplusplus)\r
-#define __BEGIN_DECLS   extern "C" {\r
-#define __END_DECLS     };\r
-#else\r
-#define __BEGIN_DECLS\r
-#define __END_DECLS\r
-#endif\r
-\r
-/*\r
- * The __CONCAT macro is used to concatenate parts of symbol names, e.g.\r
- * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.\r
- * The __CONCAT macro is a bit tricky -- make sure you don't put spaces\r
- * in between its arguments.  __CONCAT can also concatenate double-quoted\r
- * strings produced by the __STRING macro, but this only works with ANSI C.\r
- */\r
-#if defined(__STDC__) || defined(__cplusplus)\r
-#define __CONCAT(x,y)   x ## y\r
-#define __STRING(x)     #x\r
-\r
-#else   /* !(__STDC__ || __cplusplus) */\r
-#define __CONCAT(x,y)   x/**/y\r
-#define __STRING(x)     "x"\r
-\r
-/* delete ANSI C keywords */\r
-#define const                           \r
-#define inline\r
-#define signed\r
-#define volatile\r
-#endif  /* !(__STDC__ || __cplusplus) */\r
-\r
-/*\r
- * GCC has extensions for declaring functions as const (`pure' - always returns\r
- * the same value given the same inputs, i.e., has no external state and\r
- * no side effects) and volatile (nonreturning or `dead').\r
- * These mainly affect optimization and warnings.  \r
- *\r
- * To facilitate portability of a non-standard extension we define __pure\r
- * and __dead and use these for qualifying functions. Non-gcc compilers\r
- * which have similar extensions can then define these appropriately.\r
- *\r
- * Unfortunately, GCC complains if these are used under strict ANSI mode \r
- * (`gcc -ansi -pedantic'), hence we need to define them only if compiling \r
- * without this.\r
- */\r
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)\r
-#define __dead __volatile\r
-#define __pure __const\r
-#else\r
-#define __dead\r
-#define __pure\r
-#endif\r
-\r
-#endif /* !_CDEFS_H_ */\r
diff --git a/sys/i386/boot/dosboot/dinode.h b/sys/i386/boot/dosboot/dinode.h
deleted file mode 100644 (file)
index ee789d8..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*\r
- * Copyright (c) 1982, 1989 The Regents of the University of California.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement:\r
- *     This product includes software developed by the University of\r
- *     California, Berkeley and its contributors.\r
- * 4. Neither the name of the University nor the names of its contributors\r
- *    may be used to endorse or promote products derived from this software\r
- *    without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- *     from: @(#)dinode.h      7.10 (Berkeley) 5/8/91\r
- * $FreeBSD: src/sys/i386/boot/dosboot/dinode.h,v 1.5 1999/08/28 00:43:21 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/dinode.h,v 1.2 2003/06/17 04:28:34 dillon Exp $\r
- */\r
-\r
-#ifndef _UFS_DINODE_H_\r
-#define _UFS_DINODE_H_ 1\r
-\r
-/*\r
- * A dinode contains all the meta-data associated with a UFS file.\r
- * This structure defines the on-disk format of a dinode.\r
- */\r
-\r
-#define        NDADDR  12              /* direct addresses in inode */\r
-#define        NIADDR  3               /* indirect addresses in inode */\r
-\r
-#define        MAXFASTLINK     (((NDADDR+NIADDR) * sizeof(daddr_t)) - 1)\r
-\r
-struct dinode {\r
-       u_short di_mode;        /*  0: mode and type of file */\r
-       short   di_nlink;       /*  2: number of links to file */\r
-       uid_t   di_uid;         /*  4: owner's user id */\r
-       gid_t   di_gid;         /*  6: owner's group id */\r
-       union {\r
-/*             u_quad_t v;*/\r
-               u_long val[2];\r
-       }       di_qsize;       /*  8: number of bytes in file */\r
-       time_t  di_atime;       /* 16: time last accessed */\r
-       long    di_atspare;\r
-       time_t  di_mtime;       /* 24: time last modified */\r
-       long    di_mtspare;\r
-       time_t  di_ctime;       /* 32: last time inode changed */\r
-       long    di_ctspare;\r
-       union {\r
-               struct {\r
-                       daddr_t di_udb[NDADDR]; /* 40: disk block addresses */\r
-                       daddr_t di_uib[NIADDR]; /* 88: indirect blocks */\r
-               } di_addr;\r
-               char di_usymlink[MAXFASTLINK+1];\r
-       } di_un;\r
-       long    di_flags;       /* 100: status, currently unused */\r
-       long    di_blocks;      /* 104: blocks actually held */\r
-       long    di_gen;         /* 108: generation number */\r
-#define        DI_SPARE_SZ     4               /* 112: spare for 4 longs */\r
-       u_long  di_spare[DI_SPARE_SZ];  /* reserved (unused) */\r
-};\r
-\r
-#define        di_db           di_un.di_addr.di_udb\r
-#define di_ib          di_un.di_addr.di_uib\r
-#define        di_symlink      di_un.di_usymlink\r
-\r
-#if BYTE_ORDER == LITTLE_ENDIAN || defined(tahoe) /* ugh! -- must be fixed */\r
-#define        di_size         di_qsize.val[0]\r
-#else /* BYTE_ORDER == BIG_ENDIAN */\r
-#define        di_size         di_qsize.val[1]\r
-#endif\r
-#define        di_rdev         di_db[0]\r
-\r
-/* file modes */\r
-#define        IFMT            0170000         /* mask of file type */\r
-#define        IFIFO           0010000         /* named pipe (fifo) */\r
-#define        IFCHR           0020000         /* character special device */\r
-#define        IFDIR           0040000         /* directory */\r
-#define        IFBLK           0060000         /* block special device */\r
-#define        IFREG           0100000         /* regular file */\r
-#define        IFLNK           0120000         /* symbolic link */\r
-#define        IFSOCK          0140000         /* UNIX domain socket */\r
-\r
-#define        ISUID           04000           /* set user identifier when exec'ing */\r
-#define        ISGID           02000           /* set group identifier when exec'ing */\r
-#define        ISVTX           01000           /* save execution information on exit */\r
-#define        IREAD           0400            /* read permission */\r
-#define        IWRITE          0200            /* write permission */\r
-#define        IEXEC           0100            /* execute permission */\r
-\r
-#define        DFASTLINK(di) \\r
-       ((((di).di_mode & IFMT) == IFLNK) && \\r
-        ((di).di_size <= MAXFASTLINK) && \\r
-        ((di).di_size == (di).di_spare[0]))\r
-#endif /* _UFS_DINODE_H_ */\r
diff --git a/sys/i386/boot/dosboot/dir.h b/sys/i386/boot/dosboot/dir.h
deleted file mode 100644 (file)
index 5fca4c3..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*\r
- * Copyright (c) 1982, 1986, 1989 The Regents of the University of California.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement:\r
- *     This product includes software developed by the University of\r
- *     California, Berkeley and its contributors.\r
- * 4. Neither the name of the University nor the names of its contributors\r
- *    may be used to endorse or promote products derived from this software\r
- *    without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- *     from: @(#)dir.h 7.3 (Berkeley) 2/5/91\r
- * $FreeBSD: src/sys/i386/boot/dosboot/dir.h,v 1.5 1999/08/28 00:43:21 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/dir.h,v 1.2 2003/06/17 04:28:34 dillon Exp $\r
- */\r
-\r
-/*\r
- * The information in this file should be obtained from <dirent.h>\r
- * and is provided solely (and temporarily) for backward compatibility.\r
- */\r
-\r
-#ifndef _DIR_H_\r
-#define        _DIR_H_\r
-\r
-#include "dirent.h"\r
-\r
-/*\r
- * Backwards compatibility.\r
- */\r
-#define direct dirent\r
-\r
-/*\r
- * The DIRSIZ macro gives the minimum record length which will hold\r
- * the directory entry.  This requires the amount of space in struct direct\r
- * without the d_name field, plus enough space for the name with a terminating\r
- * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary.\r
- */\r
-#undef DIRSIZ\r
-#define DIRSIZ(dp) \\r
-    ((sizeof (struct direct) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3))\r
-\r
-#endif /* !_DIR_H_ */\r
diff --git a/sys/i386/boot/dosboot/dirent.h b/sys/i386/boot/dosboot/dirent.h
deleted file mode 100644 (file)
index 3a2bc66..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*-\r
- * Copyright (c) 1989 The Regents of the University of California.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement:\r
- *     This product includes software developed by the University of\r
- *     California, Berkeley and its contributors.\r
- * 4. Neither the name of the University nor the names of its contributors\r
- *    may be used to endorse or promote products derived from this software\r
- *    without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- *     @(#)dirent.h    5.18 (Berkeley) 2/23/91\r
- *\r
- * $FreeBSD: src/sys/i386/boot/dosboot/dirent.h,v 1.2 1999/12/29 04:32:50 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/dirent.h,v 1.3 2003/08/26 21:42:17 rob Exp $\r
- */\r
-\r
-#ifndef _DIRENT_H_\r
-#define _DIRENT_H_\r
-\r
-/*\r
- * A directory entry has a struct dirent at the front of it, containing its\r
- * inode number, the length of the entry, and the length of the name\r
- * contained in the entry.  These are followed by the name padded to a 4\r
- * byte boundary with null bytes.  All names are guaranteed null terminated.\r
- * The maximum length of a name in a directory is MAXNAMLEN.\r
- */\r
-\r
-struct dirent {\r
-       u_long  d_fileno;               /* file number of entry */\r
-       u_short d_reclen;               /* length of this record */\r
-       u_short d_namlen;               /* length of string in d_name */\r
-#ifdef _POSIX_SOURCE\r
-       char    d_name[255 + 1];        /* name must be no longer than this */\r
-#else\r
-#define        MAXNAMLEN       255\r
-       char    d_name[MAXNAMLEN + 1];  /* name must be no longer than this */\r
-#endif\r
-};\r
-\r
-#ifdef _POSIX_SOURCE\r
-typedef void * DIR;\r
-#else\r
-\r
-#define        d_ino           d_fileno        /* backward compatibility */\r
-\r
-/* definitions for library routines operating on directories. */\r
-#define        DIRBLKSIZ       1024\r
-\r
-/* structure describing an open directory. */\r
-typedef struct _dirdesc {\r
-       long    dd_fd;          /* file descriptor associated with directory */\r
-       long    dd_loc;         /* offset in current buffer */\r
-       long    dd_size;        /* amount of data returned by getdirentries */\r
-       char    *dd_buf;        /* data buffer */\r
-       long    dd_len;         /* size of data buffer */\r
-       long    dd_seek;        /* magic cookie returned by getdirentries */\r
-       void    *dd_ddloc;      /* Linked list of ddloc structs for telldir/seekdir */\r
-} DIR;\r
-\r
-#define        dirfd(dirp)     ((dirp)->dd_fd)\r
-\r
-#ifndef NULL\r
-#define        NULL    0\r
-#endif\r
-\r
-#endif /* _POSIX_SOURCE */\r
-\r
-#ifndef KERNEL\r
-\r
-#include "cdefs.h"\r
-\r
-__BEGIN_DECLS\r
-DIR *opendir (const char *);\r
-struct dirent *readdir (DIR *);\r
-void rewinddir (DIR *);\r
-int closedir (DIR *);\r
-#ifndef _POSIX_SOURCE\r
-long telldir (const DIR *);\r
-void seekdir (DIR *, long);\r
-int scandir (const char *, struct dirent ***,\r
-    int (*)(struct dirent *), int (*)(const void *, const void *));\r
-int alphasort (const void *, const void *);\r
-int getdirentries (int, char *, int, long *);\r
-#endif /* not POSIX */\r
-__END_DECLS\r
-\r
-#endif /* !_KERNEL */\r
-\r
-#endif /* !_DIRENT_H_ */\r
diff --git a/sys/i386/boot/dosboot/disk.c b/sys/i386/boot/dosboot/disk.c
deleted file mode 100644 (file)
index 59d7434..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/*\r
- * Mach Operating System\r
- * Copyright (c) 1992, 1991 Carnegie Mellon University\r
- * All Rights Reserved.\r
- * \r
- * Permission to use, copy, modify and distribute this software and its\r
- * documentation is hereby granted, provided that both the copyright\r
- * notice and this permission notice appear in all copies of the\r
- * software, derivative works or modified versions, and any portions\r
- * thereof, and that both notices appear in supporting documentation.\r
- * \r
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"\r
- * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR\r
- * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.\r
- * \r
- * Carnegie Mellon requests users of this software to return to\r
- * \r
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU\r
- *  School of Computer Science\r
- *  Carnegie Mellon University\r
- *  Pittsburgh PA 15213-3890\r
- * \r
- * any improvements or extensions that they make and grant Carnegie Mellon\r
- * the rights to redistribute these changes.\r
- *\r
- *     from: Mach, Revision 2.2  92/04/04  11:35:49  rpd\r
- * $FreeBSD: src/sys/i386/boot/dosboot/disk.c,v 1.6 1999/12/08 09:32:49 phk Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/disk.c,v 1.2 2003/06/17 04:28:34 dillon Exp $\r
- */\r
-#include <stdio.h>\r
-#include <memory.h>\r
-\r
-#define bcopy(a,b,c)   memcpy(b,a,c)\r
-\r
-#include "boot.h"\r
-#include "disklabe.h"\r
-#include "diskslic.h"\r
-\r
-#define        BIOS_DEV_FLOPPY 0x0\r
-#define        BIOS_DEV_WIN    0x80\r
-\r
-#define BPS                    512\r
-#define        SPT(di)         ((di)&0xff)\r
-#define        HEADS(di)       ((((di)>>8)&0xff)+1)\r
-\r
-static char i_buf[BPS];\r
-#define I_ADDR         ((void *) i_buf)        /* XXX where all reads go */\r
-\r
-\r
-static int spt, spc;\r
-\r
-char *iodest;\r
-struct fs *fs;\r
-struct inode inode;\r
-long dosdev, slice, unit, part, maj, boff, poff, bnum, cnt;\r
-\r
-extern int biosread(int dev, int track, int head, int sector, int cnt, unsigned char far *buffer);\r
-\r
-struct disklabel disklabel;\r
-\r
-static void Bread(int dosdev, long sector);\r
-\r
-unsigned long get_diskinfo(int drive)\r
-{\r
-       char dr = (char) drive;\r
-       unsigned long rt;\r
-\r
-       _asm {\r
-               mov ah,8                ; get diskinfo\r
-               mov dl,dr               ; drive\r
-               int 13h\r
-               cmp ah,0\r
-               je ok\r
-               ;\r
-               ; Failure! We assume it's a floppy!\r
-               ;\r
-               sub ax,ax\r
-               mov bh,ah\r
-               mov bl,2\r
-               mov ch,79\r
-               mov cl,15\r
-               mov dh,1\r
-               mov dl,1\r
-       ok:\r
-               mov ah,dh\r
-               mov al,cl\r
-               and al,3fh\r
-               mov word ptr rt,ax\r
-\r
-               xor bx,bx\r
-               mov bl,cl\r
-               and bl,0c0h\r
-               shl bx,2\r
-               mov bl,ch\r
-               mov word ptr rt+2,bx\r
-       }\r
-       return rt;\r
-}\r
-\r
-int devopen(void)\r
-{\r
-       struct dos_partition *dptr;\r
-       struct disklabel *dl;\r
-       int dosdev = (int) inode.i_dev;\r
-       int i;\r
-       long di, sector;\r
-       \r
-       di = get_diskinfo(dosdev);\r
-       spc = (spt = (int)SPT(di)) * (int)HEADS(di);\r
-       if (dosdev == 2)\r
-       {\r
-               boff = 0;\r
-               part = (spt == 15 ? 3 : 1);\r
-       }\r
-       else\r
-       {\r
-#ifdef EMBEDDED_DISKLABEL\r
-               dl = &disklabel;\r
-#else  EMBEDDED_DISKLABEL\r
-               Bread(dosdev, 0);\r
-               dptr = (struct dos_partition *)(((char *)I_ADDR)+DOSPARTOFF);\r
-               sector = LABELSECTOR;\r
-               slice = WHOLE_DISK_SLICE;\r
-               for (i = 0; i < NDOSPART; i++, dptr++)\r
-                       if (dptr->dp_typ == DOSPTYP_386BSD) {\r
-                               slice = BASE_SLICE + i;\r
-                               sector = dptr->dp_start + LABELSECTOR;\r
-                               break;\r
-                       }\r
-               Bread(dosdev, sector++);\r
-               dl=((struct disklabel *)I_ADDR);\r
-               disklabel = *dl;        /* structure copy (maybe useful later)*/\r
-#endif EMBEDDED_DISKLABEL\r
-               if (dl->d_magic != DISKMAGIC) {\r
-                       printf("bad disklabel");\r
-                       return 1;\r
-               }\r
-\r
-               if( (maj == 4) || (maj == 0) || (maj == 1)) {\r
-                       if (dl->d_type == DTYPE_SCSI)\r
-                               maj = 4; /* use scsi as boot dev */\r
-                       else\r
-                               maj = 0; /* must be ESDI/IDE */\r
-               }\r
-\r
-               boff = dl->d_partitions[part].p_offset;\r
-       }\r
-       return 0;\r
-}\r
-\r
-void devread(void)\r
-{\r
-       long offset, sector = bnum;\r
-       int dosdev = (int) inode.i_dev;\r
-       for (offset = 0; offset < cnt; offset += BPS)\r
-       {\r
-               Bread(dosdev, sector++);\r
-               bcopy(I_ADDR, iodest+offset, BPS);\r
-       }\r
-}\r
-\r
-/* Read ahead buffer large enough for one track on a 1440K floppy.  For\r
- * reading from floppies, the bootstrap has to be loaded on a 64K boundary\r
- * to ensure that this buffer doesn't cross a 64K DMA boundary.\r
- */\r
-#define RA_SECTORS     18\r
-static char ra_buf[RA_SECTORS * BPS];\r
-static int ra_dev;\r
-static long ra_end;\r
-static long ra_first;\r
-\r
-static void Bread(int dosdev, long sector)\r
-{\r
-       if (dosdev != ra_dev || sector < ra_first || sector >= ra_end)\r
-       {\r
-               int cyl, head, sec, nsec;\r
-\r
-               cyl = (int) (sector/(long)spc);\r
-               head = (int) ((sector % (long) spc) / (long) spt);\r
-               sec = (int) (sector % (long) spt);\r
-               nsec = spt - sec;\r
-               if (nsec > RA_SECTORS)\r
-                       nsec = RA_SECTORS;\r
-               if (biosread(dosdev, cyl, head, sec, nsec, ra_buf) != 0)\r
-               {\r
-                   nsec = 1;\r
-                   while (biosread(dosdev, cyl, head, sec, nsec, ra_buf) != 0)\r
-                               printf("Error: C:%d H:%d S:%d\n", cyl, head, sec);\r
-               }\r
-               ra_dev = dosdev;\r
-               ra_first = sector;\r
-               ra_end = sector + nsec;\r
-       }\r
-       bcopy(ra_buf + (sector - ra_first) * BPS, I_ADDR, BPS);\r
-}\r
diff --git a/sys/i386/boot/dosboot/disklabe.h b/sys/i386/boot/dosboot/disklabe.h
deleted file mode 100644 (file)
index 15b140f..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-/*\r
- * Copyright (c) 1987, 1988, 1993\r
- *     The Regents of the University of California.  All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement:\r
- *     This product includes software developed by the University of\r
- *     California, Berkeley and its contributors.\r
- * 4. Neither the name of the University nor the names of its contributors\r
- *    may be used to endorse or promote products derived from this software\r
- *    without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- *     @(#)disklabel.h 8.1 (Berkeley) 6/2/93\r
- * $FreeBSD: src/sys/i386/boot/dosboot/disklabe.h,v 1.8 1999/12/29 04:32:50 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/disklabe.h,v 1.4 2004/06/02 19:31:02 dillon Exp $\r
- */\r
-\r
-#ifndef _SYS_DISKLABEL_H_\r
-#define _SYS_DISKLABEL_H_\r
-\r
-/*\r
- * Disk description table, see disktab(5)\r
- */\r
-#define        _PATH_DISKTAB   "/etc/disktab"\r
-#define        DISKTAB         "/etc/disktab"          /* deprecated */\r
-\r
-/*\r
- * Each disk has a label which includes information about the hardware\r
- * disk geometry, filesystem partitions, and drive specific information.\r
- * The label is in block 0 or 1, possibly offset from the beginning\r
- * to leave room for a bootstrap, etc.\r
- */\r
-\r
-/* XXX these should be defined per controller (or drive) elsewhere, not here! */\r
-#ifdef __i386__\r
-#define LABELSECTOR    1                       /* sector containing label */\r
-#define LABELOFFSET    0                       /* offset of label in sector */\r
-#define        OURPART         2                       /* partition is 'all BSD' */\r
-#define        RAWPART         3                       /* partition is 'all device' */\r
-#define readMSPtolabel readMBRtolabel\r
-#endif\r
-\r
-#ifndef readMSPtolabel\r
-#define readMSPtolabel(a,b,c,d,e)              /* zap calls if irrelevant */\r
-#endif\r
-\r
-#ifdef tahoe\r
-#define RAWPART                0\r
-#endif\r
-\r
-#ifndef        RAWPART\r
-#define        RAWPART         2\r
-#endif\r
-\r
-#ifndef        OURPART\r
-#define        OURPART         RAWPART                 /* by default it's all ours */\r
-#endif\r
-\r
-#ifndef        LABELSECTOR\r
-#define LABELSECTOR    0                       /* sector containing label */\r
-#endif\r
-\r
-#ifndef        LABELOFFSET\r
-#define LABELOFFSET    64                      /* offset of label in sector */\r
-#endif\r
-\r
-#define DISKMAGIC      ((u_long) 0x82564557ul) /* The disk magic number */\r
-#ifndef MAXPARTITIONS\r
-#define        MAXPARTITIONS   8\r
-#endif\r
-\r
-\r
-#ifndef LOCORE\r
-struct disklabel {\r
-       u_long  d_magic;                /* the magic number */\r
-       short   d_type;                 /* drive type */\r
-       short   d_subtype;              /* controller/d_type specific */\r
-       char    d_typename[16];         /* type name, e.g. "eagle" */\r
-       /* \r
-        * d_packname contains the pack identifier and is returned when\r
-        * the disklabel is read off the disk or in-core copy.\r
-        * d_boot0 and d_boot1 are the (optional) names of the\r
-        * primary (block 0) and secondary (block 1-15) bootstraps\r
-        * as found in /boot.  These are returned when using\r
-        * getdiskbyname(3) to retrieve the values from /etc/disktab.\r
-        */\r
-#if defined(_KERNEL) || defined(STANDALONE)\r
-       char    d_packname[16];                 /* pack identifier */ \r
-#else\r
-       union {\r
-               char    un_d_packname[16];      /* pack identifier */ \r
-               struct {\r
-                       char *un_d_boot0;       /* primary bootstrap name */\r
-                       char *un_d_boot1;       /* secondary bootstrap name */\r
-               } un_b; \r
-       } d_un; \r
-#define d_packname     d_un.un_d_packname\r
-#define d_boot0                d_un.un_b.un_d_boot0\r
-#define d_boot1                d_un.un_b.un_d_boot1\r
-#endif /* ! _KERNEL or STANDALONE */\r
-                       /* disk geometry: */\r
-       u_long  d_secsize;              /* # of bytes per sector */\r
-       u_long  d_nsectors;             /* # of data sectors per track */\r
-       u_long  d_ntracks;              /* # of tracks per cylinder */\r
-       u_long  d_ncylinders;           /* # of data cylinders per unit */\r
-       u_long  d_secpercyl;            /* # of data sectors per cylinder */\r
-       u_long  d_secperunit;           /* # of data sectors per unit */\r
-       /*\r
-        * Spares (bad sector replacements) below\r
-        * are not counted in d_nsectors or d_secpercyl.\r
-        * Spare sectors are assumed to be physical sectors\r
-        * which occupy space at the end of each track and/or cylinder.\r
-        */\r
-       u_short d_sparespertrack;       /* # of spare sectors per track */\r
-       u_short d_sparespercyl;         /* # of spare sectors per cylinder */\r
-       /*\r
-        * Alternate cylinders include maintenance, replacement,\r
-        * configuration description areas, etc.\r
-        */\r
-       u_long  d_acylinders;           /* # of alt. cylinders per unit */\r
-\r
-                       /* hardware characteristics: */\r
-       /*\r
-        * d_interleave, d_trackskew and d_cylskew describe perturbations\r
-        * in the media format used to compensate for a slow controller.\r
-        * Interleave is physical sector interleave, set up by the formatter\r
-        * or controller when formatting.  When interleaving is in use,\r
-        * logically adjacent sectors are not physically contiguous,\r
-        * but instead are separated by some number of sectors.\r
-        * It is specified as the ratio of physical sectors traversed\r
-        * per logical sector.  Thus an interleave of 1:1 implies contiguous\r
-        * layout, while 2:1 implies that logical sector 0 is separated\r
-        * by one sector from logical sector 1.\r
-        * d_trackskew is the offset of sector 0 on track N\r
-        * relative to sector 0 on track N-1 on the same cylinder.\r
-        * Finally, d_cylskew is the offset of sector 0 on cylinder N\r
-        * relative to sector 0 on cylinder N-1.\r
-        */\r
-       u_short d_rpm;                  /* rotational speed */\r
-       u_short d_interleave;           /* hardware sector interleave */\r
-       u_short d_trackskew;            /* sector 0 skew, per track */\r
-       u_short d_cylskew;              /* sector 0 skew, per cylinder */\r
-       u_long  d_headswitch;           /* head switch time, usec */\r
-       u_long  d_trkseek;              /* track-to-track seek, usec */\r
-       u_long  d_flags;                /* generic flags */\r
-#define NDDATA 5\r
-       u_long  d_drivedata[NDDATA];    /* drive-type specific information */\r
-#define NSPARE 5\r
-       u_long  d_spare[NSPARE];        /* reserved for future use */\r
-       u_long  d_magic2;               /* the magic number (again) */\r
-       u_short d_checksum;             /* xor of data incl. partitions */\r
-\r
-                       /* filesystem and partition information: */\r
-       u_short d_npartitions;          /* number of partitions in following */\r
-       u_long  d_bbsize;               /* size of boot area at sn0, bytes */\r
-       u_long  d_sbsize;               /* max size of fs superblock, bytes */\r
-       struct  partition {             /* the partition table */\r
-               u_long  p_size;         /* number of sectors in partition */\r
-               u_long  p_offset;       /* starting sector */\r
-               u_long  p_fsize;        /* filesystem basic fragment size */\r
-               u_char  p_fstype;       /* filesystem type, see below */\r
-               u_char  p_frag;         /* filesystem fragments per block */\r
-               union {\r
-                       u_short cpg;    /* UFS: FS cylinders per group */\r
-                       u_short sgs;    /* LFS: FS segment shift */\r
-               } __partition_u1;\r
-#define        p_cpg   __partition_u1.cpg\r
-#define        p_sgs   __partition_u1.sgs\r
-       } d_partitions[MAXPARTITIONS];  /* actually may be more */\r
-};\r
-/*\r
-struct cpu_disklabel {\r
-};\r
-*/\r
-#else /* LOCORE */\r
-       /*\r
-        * offsets for asm boot files.\r
-        */\r
-       .set    d_secsize,40\r
-       .set    d_nsectors,44\r
-       .set    d_ntracks,48\r
-       .set    d_ncylinders,52\r
-       .set    d_secpercyl,56\r
-       .set    d_secperunit,60\r
-       .set    d_end_,276              /* size of disk label */\r
-#endif /* LOCORE */\r
-\r
-/* d_type values: */\r
-#define        DTYPE_SMD               1               /* SMD, XSMD; VAX hp/up */\r
-#define        DTYPE_MSCP              2               /* MSCP */\r
-#define        DTYPE_DEC               3               /* other DEC (rk, rl) */\r
-#define        DTYPE_SCSI              4               /* SCSI */\r
-#define        DTYPE_ESDI              5               /* ESDI interface */\r
-#define        DTYPE_ST506             6               /* ST506 etc. */\r
-#define        DTYPE_HPIB              7               /* CS/80 on HP-IB */\r
-#define        DTYPE_HPFL              8               /* HP Fiber-link */\r
-#define        DTYPE_FLOPPY            10              /* floppy */\r
-\r
-/* d_subtype values: */\r
-#define DSTYPE_INDOSPART       0x8             /* is inside dos partition */\r
-#define DSTYPE_DOSPART(s)      ((s) & 3)       /* dos partition number */\r
-#define DSTYPE_GEOMETRY                0x10            /* drive params in label */\r
-\r
-#ifdef DKTYPENAMES\r
-static char *dktypenames[] = {\r
-       "unknown",\r
-       "SMD",\r
-       "MSCP",\r
-       "old DEC",\r
-       "SCSI",\r
-       "ESDI",\r
-       "ST506",\r
-       "HP-IB",\r
-       "HP-FL",\r
-       "type 9",\r
-       "floppy",\r
-       0\r
-};\r
-#define DKMAXTYPES     (sizeof(dktypenames) / sizeof(dktypenames[0]) - 1)\r
-#endif\r
-\r
-/*\r
- * Filesystem type and version.\r
- * Used to interpret other filesystem-specific\r
- * per-partition information.\r
- */\r
-#define        FS_UNUSED       0               /* unused */\r
-#define        FS_SWAP         1               /* swap */\r
-#define        FS_V6           2               /* Sixth Edition */\r
-#define        FS_V7           3               /* Seventh Edition */\r
-#define        FS_SYSV         4               /* System V */\r
-#define        FS_V71K         5               /* V7 with 1K blocks (4.1, 2.9) */\r
-#define        FS_V8           6               /* Eighth Edition, 4K blocks */\r
-#define        FS_BSDFFS       7               /* 4.2BSD fast file system */\r
-#define        FS_MSDOS        8               /* MSDOS file system */\r
-#define        FS_BSDLFS       9               /* 4.4BSD log-structured file system */\r
-#define        FS_OTHER        10              /* in use, but unknown/unsupported */\r
-#define        FS_HPFS         11              /* OS/2 high-performance file system */\r
-#define        FS_ISO9660      12              /* ISO 9660, normally CD-ROM */\r
-#define        FS_BOOT         13              /* partition contains bootstrap */\r
-\r
-#ifdef DKTYPENAMES\r
-static char *fstypenames[] = {\r
-       "unused",\r
-       "swap",\r
-       "Version 6",\r
-       "Version 7",\r
-       "System V",\r
-       "4.1BSD",\r
-       "Eighth Edition",\r
-       "4.2BSD",\r
-       "MSDOS",\r
-       "4.4LFS",\r
-       "unknown",\r
-       "HPFS",\r
-       "ISO9660",\r
-       "boot",\r
-       0\r
-};\r
-#define FSMAXTYPES     (sizeof(fstypenames) / sizeof(fstypenames[0]) - 1)\r
-#endif\r
-\r
-/*\r
- * flags shared by various drives:\r
- */\r
-#define                D_REMOVABLE     0x01            /* removable media */\r
-#define                D_ECC           0x02            /* supports ECC */\r
-#define                D_BADSECT       0x04            /* supports bad sector forw. */\r
-#define                D_RAMDISK       0x08            /* disk emulator */\r
-#define                D_CHAIN         0x10            /* can do back-back transfers */\r
-\r
-/*\r
- * Drive data for SMD.\r
- */\r
-#define        d_smdflags      d_drivedata[0]\r
-#define                D_SSE           0x1             /* supports skip sectoring */\r
-#define        d_mindist       d_drivedata[1]\r
-#define        d_maxdist       d_drivedata[2]\r
-#define        d_sdist         d_drivedata[3]\r
-\r
-/*\r
- * Drive data for ST506.\r
- */\r
-#define d_precompcyl   d_drivedata[0]\r
-#define d_gap3         d_drivedata[1]          /* used only when formatting */\r
-\r
-/*\r
- * Drive data for SCSI.\r
- */\r
-#define        d_blind         d_drivedata[0]\r
-\r
-#ifndef LOCORE\r
-/*\r
- * Structure used to perform a format\r
- * or other raw operation, returning data\r
- * and/or register values.\r
- * Register identification and format\r
- * are device- and driver-dependent.\r
- */\r
-struct format_op {\r
-       char    *df_buf;\r
-       long    df_count;               /* value-result */\r
-       daddr_t df_startblk;\r
-       long    df_reg[8];              /* result */\r
-};\r
-\r
-/*\r
- * Structure used internally to retrieve\r
- * information about a partition on a disk.\r
- */\r
-struct partinfo {\r
-       struct disklabel *disklab;\r
-       struct partition *part;\r
-};\r
-\r
-/* DOS partition table -- located in boot block */\r
-\r
-#define DOSBBSECTOR    0       /* DOS boot block relative sector number */\r
-#define DOSPARTOFF     446\r
-#define NDOSPART       4\r
-#define        DOSPTYP_386BSD  0xa5    /* 386BSD partition type */\r
-#define        MBR_PTYPE_FreeBSD 0xa5  /* FreeBSD partition type */\r
-\r
-struct dos_partition {\r
-       unsigned char   dp_flag;        /* bootstrap flags */\r
-       unsigned char   dp_shd;         /* starting head */\r
-       unsigned char   dp_ssect;       /* starting sector */\r
-       unsigned char   dp_scyl;        /* starting cylinder */\r
-       unsigned char   dp_typ;         /* partition type */\r
-       unsigned char   dp_ehd;         /* end head */\r
-       unsigned char   dp_esect;       /* end sector */\r
-       unsigned char   dp_ecyl;        /* end cylinder */\r
-       unsigned long   dp_start;       /* absolute starting sector number */\r
-       unsigned long   dp_size;        /* partition size in sectors */\r
-};\r
-\r
-extern struct dos_partition dos_partitions[NDOSPART];\r
-\r
-#define DPSECT(s) ((s) & 0x3f)         /* isolate relevant bits of sector */\r
-#define DPCYL(c, s) ((c) + (((s) & 0xc0)<<2)) /* and those that are cylinder */\r
-\r
-/*\r
- * Disk-specific ioctls.\r
- */\r
-               /* get and set disklabel; DIOCGPART used internally */\r
-#define DIOCGDINFO     _IOR('d', 101, struct disklabel)/* get */\r
-#define DIOCSDINFO     _IOW('d', 102, struct disklabel)/* set */\r
-#define DIOCWDINFO     _IOW('d', 103, struct disklabel)/* set, update disk */\r
-#define DIOCGPART      _IOW('d', 104, struct partinfo) /* get partition */\r
-\r
-#define DIOCWLABEL     _IOW('d', 109, int)     /* write en/disable label */\r
-\r
-#define DIOCSBAD       _IOW('d', 110, struct dkbad)    /* set kernel dkbad */\r
-\r
-#endif /* LOCORE */\r
-\r
-#ifdef KERNEL\r
-struct dkbad;\r
-\r
-u_int   dkcksum (struct disklabel *);\r
-int    writedisklabel (dev_t dev, void (*strat)(), struct disklabel *lp);\r
-char * readdisklabel (dev_t dev, void (*strat)(), struct disklabel *lp, struct dos_partition *dp, struct dkbad *bdp);\r
-int    setdisklabel (struct disklabel *olp, struct disklabel *nlp, u_long openmask);\r
-void   disksort (struct buf *ap, struct buf *bp);\r
-void    diskerr (struct buf *, dev_t, char *, char *, int, int, struct disklabel *);\r
-#ifdef __i386\r
-char * readMBRtolabel ( dev_t dev , void (*strat)(), register struct disklabel *lp, struct dos_partition *dp, int *cyl);\r
-#endif\r
-#endif\r
-\r
-#if !defined(_KERNEL) && !defined(LOCORE)\r
-\r
-#include "cdefs.h"\r
-\r
-__BEGIN_DECLS\r
-struct disklabel *getdiskbyname (const char *);\r
-__END_DECLS\r
-\r
-#endif\r
-\r
-#ifdef __i386\r
-/* encoding of disk minor numbers, should be elsewhere... */\r
-#define dkunit(dev)            (minor(dev) >> 3)\r
-#define dkpart(dev)            (minor(dev) & 07)\r
-#define dkminor(unit, part)    (((unit) << 3) | (part))\r
-#endif\r
-\r
-#endif\r
-\r
-\r
diff --git a/sys/i386/boot/dosboot/dosboot.c b/sys/i386/boot/dosboot/dosboot.c
deleted file mode 100644 (file)
index d8992e5..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-/*\r
- *     dosboot.c               Boot FreeBSD from DOS partition\r
- *\r
- *     (C) 1994 by Christian Gusenbauer (cg@fimp01.fim.uni-linz.ac.at)\r
- *     All Rights Reserved.\r
- * \r
- *     Permission to use, copy, modify and distribute this software and its\r
- *     documentation is hereby granted, provided that both the copyright\r
- *     notice and this permission notice appear in all copies of the\r
- *     software, derivative works or modified versions, and any portions\r
- *     thereof, and that both notices appear in supporting documentation.\r
- * \r
- *     I ALLOW YOU USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. I DISCLAIM\r
- *     ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE\r
- *     USE OF THIS SOFTWARE.\r
- * \r
- *     Parts of this file are\r
- *     Copyright (c) 1992, 1991 Carnegie Mellon University\r
- *     All Rights Reserved.\r
- * \r
- *     Permission to use, copy, modify and distribute this software and its\r
- *     documentation is hereby granted, provided that both the copyright\r
- *     notice and this permission notice appear in all copies of the\r
- *     software, derivative works or modified versions, and any portions\r
- *     thereof, and that both notices appear in supporting documentation.\r
- * \r
- *     CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"\r
- *     CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR\r
- *     ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.\r
- * \r
- *     Carnegie Mellon requests users of this software to return to\r
- * \r
- *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU\r
- *  School of Computer Science\r
- *  Carnegie Mellon University\r
- *  Pittsburgh PA 15213-3890\r
- * \r
- *     any improvements or extensions that they make and grant Carnegie Mellon\r
- *     the rights to redistribute these changes.\r
- */\r
-#include <bios.h>\r
-#include <stdio.h>\r
-#include <process.h>\r
-\r
-#include "protmod.h"\r
-#include "param.h"\r
-#include "boot.h"\r
-#include "bootinfo.h"\r
-#include "reboot.h"\r
-\r
-#include "exec.h"\r
-\r
-#define BUFSIZE 4096\r
-\r
-static struct exec head;\r
-static long argv[10];\r
-static long startaddr;\r
-\r
-int biosread(int dev, int track, int head, int sector, int cnt, unsigned char far *buffer)\r
-{\r
-       struct _diskinfo_t di;\r
-       int r;\r
-\r
-       di.drive = dev;                                         /* first hard disk */\r
-       di.head = head;                                         /* head # */\r
-       di.track = track;                                       /* track # */\r
-       di.sector = sector+1;                           /* sector # */\r
-       di.nsectors = cnt;                                      /* only 1 sector */\r
-       di.buffer = (void far *) buffer;    /* sector buffer */\r
-       r= _bios_disk(_DISK_READ, &di);\r
-       return r&0xFF00;\r
-}\r
-\r
-static void dosxread(FILE *fp, unsigned long addr, long size)\r
-{\r
-       extern char buf[BUFSIZE];\r
-\r
-       int count = BUFSIZE;\r
-       while (size > 0l) {\r
-               if (BUFSIZE > size)\r
-                       count = (int) size;\r
-               fread(buf, count, 1, fp);\r
-               pm_copy(buf, addr, count);\r
-               size -= count;\r
-               addr += count;\r
-       }\r
-}\r
-\r
-static long loadprog(FILE *fp, long *hsize)\r
-{\r
-       long int addr;  /* physical address.. not directly useable */\r
-       long int hmaddress, pad, i;\r
-       static int (*x_entry)() = 0;\r
-\r
-       fread(&head, sizeof(head), 1, fp);\r
-       fseek(fp, 4096-sizeof(head), 1);\r
-       if (N_BADMAG(head)) {\r
-               printf("Invalid format!\n");\r
-               exit(0);\r
-       }\r
-\r
-       startaddr = (long)head.a_entry;\r
-       addr = (startaddr & 0x00ffffffl); /* some MEG boundary */\r
-       printf("Booting @ 0x%lx\n", addr);\r
-       if(addr < 0x100000l)\r
-       {\r
-               printf("Start address too low!\n");\r
-               exit(0);\r
-       }\r
-\r
-       poff = N_TXTOFF(head)+head.a_text+head.a_data+head.a_syms;\r
-       fseek(fp, poff, 0);\r
-       fread(&i, sizeof(i), 1, fp);\r
-       *hsize = head.a_text+head.a_data+head.a_bss;\r
-       *hsize = (*hsize+NBPG-1)&~(NBPG-1);\r
-       *hsize += i+4+head.a_syms;\r
-       addr=hmaddress=get_high_memory(*hsize);\r
-       if (!hmaddress) {\r
-               printf("Sorry, can't allocate enough memory!\n");\r
-               exit(0);\r
-       }\r
-\r
-       poff = N_TXTOFF(head);\r
-       fseek(fp, poff, 0);\r
-\r
-       /********************************************************/\r
-       /* LOAD THE TEXT SEGMENT                                */\r
-       /********************************************************/\r
-       printf("text=0x%lx ", head.a_text);\r
-       dosxread(fp, addr, head.a_text);\r
-       addr += head.a_text;\r
-\r
-       /********************************************************/\r
-       /* Load the Initialised data after the text             */\r
-       /********************************************************/\r
-       while (addr & CLOFSET)\r
-               pm_copy("\0", addr++, 1);\r
-\r
-       printf("data=0x%lx ", head.a_data);\r
-       dosxread(fp, addr, head.a_data);\r
-       addr += head.a_data;\r
-\r
-       /********************************************************/\r
-       /* Skip over the uninitialised data                     */\r
-       /* (but clear it)                                       */\r
-       /********************************************************/\r
-       printf("bss=0x%lx ", head.a_bss);\r
-       pbzero(addr, head.a_bss);\r
-       addr += head.a_bss;\r
-\r
-       /* Pad to a page boundary. */\r
-       pad = (unsigned long)(addr-hmaddress+(startaddr & 0x00ffffffl)) % NBPG;\r
-       if (pad != 0) {\r
-               pad = NBPG - pad;\r
-               addr += pad;\r
-       }\r
-       bootinfo.bi_symtab = addr-hmaddress+(startaddr & 0x00ffffffl);\r
-\r
-       /********************************************************/\r
-       /* Copy the symbol table size                           */\r
-       /********************************************************/\r
-       pm_copy((char *)&head.a_syms, addr, sizeof(head.a_syms));\r
-       addr += sizeof(head.a_syms);\r
-\r
-       /********************************************************/\r
-       /* Load the symbol table                                */\r
-       /********************************************************/\r
-       printf("symbols=[+0x%lx+0x%lx+0x%lx", pad, (long) sizeof(head.a_syms),\r
-              (long) head.a_syms);\r
-       dosxread(fp, addr, head.a_syms);\r
-       addr += head.a_syms;\r
-\r
-       /********************************************************/\r
-       /* Load the string table size                           */\r
-       /********************************************************/\r
-       fread((void *)&i, sizeof(long), 1, fp);\r
-       pm_copy((char *)&i, addr, sizeof(long));\r
-       i -= sizeof(long);\r
-       addr += sizeof(long);\r
-\r
-       /********************************************************/\r
-       /* Load the string table                                */\r
-       /********************************************************/\r
-       printf("+0x%x+0x%lx] ", sizeof(long), i);\r
-       dosxread(fp, addr, i);\r
-       addr += i;\r
-\r
-       bootinfo.bi_esymtab = addr-hmaddress+(startaddr & 0x00ffffffl);\r
-\r
-       /*\r
-        * For backwards compatibility, use the previously-unused adaptor\r
-        * and controller bitfields to hold the slice number.\r
-        */\r
-       printf("total=0x%lx entry point=0x%lx\n",\r
-               addr-hmaddress+(startaddr & 0x00ffffffl),\r
-               startaddr & 0x00ffffffl);\r
-\r
-       return hmaddress;\r
-}\r
-\r
-void dosboot(long howto, char *kernel)\r
-{\r
-       long hmaddress, size, bootdev;\r
-       FILE *fp;\r
-\r
-       fp = fopen(kernel, "rb");                       /* open kernel for reading */\r
-       if (!fp) {\r
-               fprintf(stderr, "Sorry, can't open %s!\n", kernel);\r
-               return;\r
-       }\r
-       hmaddress = loadprog(fp, &size);\r
-       fclose(fp);\r
-\r
-       bootdev = MAKEBOOTDEV(maj, (slice >> 4), slice & 0xf, unit, part);\r
-       startprog(hmaddress, size, ((long)startaddr & 0xffffffl),\r
-                         howto | RB_BOOTINFO, bootdev);\r
-}\r
diff --git a/sys/i386/boot/dosboot/dosboot.h b/sys/i386/boot/dosboot/dosboot.h
deleted file mode 100644 (file)
index 2e43d74..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*\r
- *     dosboot.h               Boot FreeBSD from DOS partition\r
- *\r
- *     (C) 1994 by Christian Gusenbauer (cg@fimp01.fim.uni-linz.ac.at)\r
- *     All Rights Reserved.\r
- * \r
- *     Permission to use, copy, modify and distribute this software and its\r
- *     documentation is hereby granted, provided that both the copyright\r
- *     notice and this permission notice appear in all copies of the\r
- *     software, derivative works or modified versions, and any portions\r
- *     thereof, and that both notices appear in supporting documentation.\r
- * \r
- *     I ALLOW YOU USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. I DISCLAIM\r
- *     ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE\r
- *     USE OF THIS SOFTWARE.\r
- * \r
- */\r
-void dosboot(long howto, char *kernel);\r
diff --git a/sys/i386/boot/dosboot/endian.h b/sys/i386/boot/dosboot/endian.h
deleted file mode 100644 (file)
index f05cf9b..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*\r
- * Copyright (c) 1987, 1991 Regents of the University of California.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement:\r
- *     This product includes software developed by the University of\r
- *     California, Berkeley and its contributors.\r
- * 4. Neither the name of the University nor the names of its contributors\r
- *    may be used to endorse or promote products derived from this software\r
- *    without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- *     from: @(#)endian.h      7.8 (Berkeley) 4/3/91\r
- * $FreeBSD: src/sys/i386/boot/dosboot/endian.h,v 1.5 1999/08/28 00:43:22 peter Exp $\r
- * $DragonFly: src/sys/i386/boot/dosboot/Attic/endian.h,v 1.3 2003/07/26 19:07:46 rob Exp $\r
- */\r
-\r
-#ifndef _MACHINE_ENDIAN_H_\r
-#define _MACHINE_ENDIAN_H_ 1\r
-\r
-/*\r
- * Define the order of 32-bit words in 64-bit words.\r
- */\r
-#define        _QUAD_HIGHWORD 1\r
-#define        _QUAD_LOWWORD 0\r
-\r
-/*\r
- * Definitions for byte order, according to byte significance from low\r
- * address to high.\r
- */\r
-#define        LITTLE_ENDIAN   1234    /* LSB first: i386, vax */\r
-#define        BIG_ENDIAN      4321    /* MSB first: 68000, ibm, net */\r
-#define        PDP_ENDIAN      3412    /* LSB first in word, MSW first in long */\r
-\r
-#define        BYTE_ORDER      LITTLE_ENDIAN\r
-\r
-#ifndef KERNEL\r
-#include "cdefs.h"\r
-#endif\r
-\r
-#define __word_swap_long(x) \\r
-({ u_long X = (x); \\r
-   __asm ("rorl $16, %1" \\r
-       : "=r" (X) \\r
-       : "0" (X)); \\r
-   X; })\r
-#if __GNUC__ >= 2\r
-#define __byte_swap_long(x) \\r
-({ u_long X = (x); \\r
-   __asm ("xchgb %h1, %b1\n\trorl $16, %1\n\txchgb %h1, %b1" \\r
-       : "=q" (X) \\r
-       : "0" (X)); \\r
-   X; })\r
-#define __byte_swap_word(x) \\r
-({ u_short X = (x); \\r
-   __asm ("xchgb %h1, %b1" \\r
-       : "=q" (X) \\r
-       : "0" (X)); \\r
-   X; })\r
-#else /* __GNUC__ >= 2 */\r
-#define __byte_swap_long(x) \\r
-({ u_long X = (x); \\r
-   __asm ("rorw $8, %w1\n\trorl $16, %1\n\trorw $8, %w1" \\r
-       : "=r" (X) \\r
-       : "0" (X)); \\r
-   X; })\r
-#define __byte_swap_word(x) \\r
-({ u_short X = (x); \\r
-   __asm ("rorw $8, %w1" \\r
-       : "=r" (X) \\r
-       : "0" (X)); \\r
-   X; })\r
-#endif /* __GNUC__ >= 2 */\r
-\r
-/*\r
- * Macros for network/external number representation conversion.\r
- */\r
-#if BYTE_ORDER == BIG_ENDIAN && !defined(lint)\r
-#define        ntohl(x)        (x)\r
-#define        ntohs(x)        (x)\r
-#define        htonl(x)        (x)\r
-#define        htons(x)        (x)\r
-\r
-#define        NTOHL(x)        (x)\r
-#define        NTOHS(x)        (x)\r
-#define        HTONL(x)        (x)\r
-#define        HTONS(x)        (x)\r
-\r
-#else\r
-\r
-#define        ntohl   __byte_swap_long\r
-#define        ntohs   __byte_swap_word\r
-#define        htonl   __byte_swap_long\r
-#define        htons   __byte_swap_word\r
-\r
-#define        NTOHL(x)        (x) = ntohl((u_long)x)\r
-#define        NTOHS(x)        (x) = ntohs((u_short)x)\r
-#define        HTONL(x)        (x) = htonl((u_long)x)\r
-#define        HTONS(x)        (x) = htons((u_short)x)\r
-#endif\r
-#endif /* _MACHINE_ENDIAN_H_ */\r
diff --git a/sys/i386/boot/dosboot/exec.h b/sys/i386/boot/dosboot/exec.h
deleted file mode 100644 (file)
index f71dd76..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*-\r
- * Copyright (c) 1992, 1993\r
- *     The Regents of the University of California.  All rights reserved.\r
- * (c) UNIX System Laboratories, Inc.\r
- * All or some portions of this file are derived from material licensed\r
- * to the University of California by American Telephone and Telegraph\r
- * Co. or Unix System Laboratories, Inc. and are reproduced herein with\r
- * the permission of UNIX System Laboratories, Inc.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- *    notice, this list of conditions and the following disclaimer in the\r
- *    documentation and/or other materials provided with the distribution.\r
- * 3. All advertising materials mentioning features or use of this software\r
- *    must display the following acknowledgement: