summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bushnell <thomas@gnu.org>1997-03-24 21:53:03 +0000
committerThomas Bushnell <thomas@gnu.org>1997-03-24 21:53:03 +0000
commit30b32d2ccbf95436b642e6208d6829dcf68981fa (patch)
tree481af37a46b22473db7cadf280a6b5466136d726
parent455c9e455d124e3359d8f9e16ffe111178589e6f (diff)
prerelease work
-rw-r--r--=announce-1.038
-rw-r--r--ChangeLog107
-rw-r--r--Drivers.macros44
-rw-r--r--INSTALL183
-rw-r--r--Makefile176
-rw-r--r--Makefile.in513
-rw-r--r--README37
-rw-r--r--configure.in45
-rw-r--r--device/ds_routines.c3
-rw-r--r--i386/Drivers.in117
-rw-r--r--i386/Files628
-rw-r--r--i386/Makefrag73
-rw-r--r--i386/README-Drivers299
-rw-r--r--i386/Subdirs31
-rw-r--r--i386/bogus/com.h6
-rw-r--r--i386/device-drivers.h.in59
-rw-r--r--i386/driverlist.in1
-rw-r--r--i386/i386/locore.S7
-rw-r--r--i386/i386/pit.c4
-rw-r--r--i386/i386at/com.c2
-rw-r--r--i386/i386at/gpl/linux/block/genhd.c20
-rw-r--r--i386/i386at/gpl/linux/block/triton.c8
-rw-r--r--i386/i386at/gpl/linux/include/linux/autoconf.h19
-rw-r--r--i386/i386at/gpl/linux/linux_block.c10
-rw-r--r--i386/i386at/gpl/linux/linux_init.c12
-rw-r--r--i386/i386at/gpl/linux/net/8390.c2
-rw-r--r--i386/i386at/gpl/linux/pci/bios32.c6
-rw-r--r--i386/i386at/gpl/linux/pci/pci.c2
-rw-r--r--i386/i386at/gpl/linux/scsi/aha1740.c7
-rw-r--r--i386/i386at/gpl/linux/scsi/hosts.c8
-rw-r--r--i386/i386at/gpl/linux/scsi/scsi.c4
-rw-r--r--i386/i386at/i386at_ds_routines.c5
-rw-r--r--i386/i386at/kd.c4
-rw-r--r--include/mach/message.h3
-rw-r--r--kern/bootstrap.c3
-rw-r--r--version.c2
-rw-r--r--vm/vm_object.c2
-rw-r--r--vm/vm_resident.c2
38 files changed, 2260 insertions, 232 deletions
diff --git a/=announce-1.0 b/=announce-1.0
new file mode 100644
index 00000000..a8eb8956
--- /dev/null
+++ b/=announce-1.0
@@ -0,0 +1,38 @@
+I am pleased to announce version 1.0 of the GNU distribution of the
+Mach kernel. It may be found in the file (about XXX MB compressed)
+ftp://prep.ai.mit.edu/pub/gnu/gnumach-1.0.tar.gz.
+
+This distribution was prepared in order to install some bug fixes and
+minor improvements (not worth noting here) to the Utah microkernel,
+and to make the package conform to the GNU coding standards, at least
+minimally, as regards configuration. This was based upon the UK22
+distribution, with some modifications made at Utah as well.
+
+This kernel will be in the forthcoming complete binary distribution of
+GNU. The release is being made now, in the hopes that any serious
+problems we didn't notice might be found in advance of that
+distribution. Volunteers who are interested in compiling this release
+should do so, and please report any problems asap.
+
+All the non-kernel pieces of the Utah distribution are not present in
+this distribution, except for the MiG interface generator which is
+still supplied. These other pieces were never used for GNU, and are
+not really part of the kernel at all. We may separate MiG into a
+separate distribution for convenience at some later date.
+
+This distribution is only for i386, i486, i586 (pentium), and i686
+(sexium [pentium pro]) processors on PC-AT compatible machines.
+Volunteers interested in ports to other architectures are eagerly
+sought.
+
+Most ethernet cards and disk controllers are supported by this kernel;
+ones for which Linux drivers exist can be ported easily. Non-network
+devices for which BSD drivers exist can be ported with a little
+effort, but not much.
+
+Bug reports relating to this distribution should be sent to
+bug-hurd@prep.ai.mit.edu. Requests for assistance should be made on
+help-hurd@prep.ai.mit.edu.
+
+The md5sum checksum for gnumach-1.0.tar.gz is:
+
diff --git a/ChangeLog b/ChangeLog
index cd84c19a..f843879a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,110 @@
+Mon Mar 24 16:23:21 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * version.c (version): Make that 1.0. Whee.
+
+Fri Mar 21 15:50:09 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * i386/i386at/gpl/linux/scsi/aha1740.c (aha1740_test_port): Try
+ and turn on PORTADDR_ENH before checking it.
+
+ * vm/vm_object.c (vm_object_cached_max): Increase to 200.
+
+Thu Mar 20 12:33:06 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * Makefile.in (dist): New target. Reorganized some vars
+ describing source.
+ * i386/Subdirs: New file.
+ * i386/Files: New file.
+
+ * version.c (version): Push back to 0.1.
+
+ * Makefile.in (cross_compiling, bindir, libexecdir): New
+ variable.
+
+ * Makefile.in (install): Depend on cross-mig and cross-migcom;
+ install them. New rules added to build mig, migcom, cross-mig,
+ and cross-migcom.
+
+ * configure.in (AC_PROG_LEX, AC_PROG_YACC): New tests.
+ (BUILD_CC): New test to set these.
+
+ * Makefile.in (%.h %_user.c): Depend on $(MIG) too.
+ (%_interface.h %_server.c): Likewise.
+ (MIG): Don't use @MIG@; hard code it to the one we build.
+ (BUILD_CC, BUILD_CFLAGS, MIGCOM, LEX, YACC, LEXLIB): New variables.
+
+Wed Mar 19 16:47:28 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * i386/i386at/kd.c (BROKEN_KEYBOARD_RESET): Turn off this so that
+ we attempt the keyboard resets.
+ * i386/i386/locore.S (cpu_shutdown): Attempt to provide a more
+ `robust' null_idtr.
+
+Mon Mar 17 13:47:14 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * i386/i386at/gpl/linux/scsi/hosts.c (scsi_init): Don't print out
+ gratuitious obnoxiousness.
+ * i386/i386at/gpl/linux/scsi/scsi.c (scsi_dev_init): Likewise.
+ * i386/i386at/gpl/linux/block/triton.c (ide_init_triton):
+ Likewise.
+ (init_triton_dma): Likewise.
+ * i386/i386at/gpl/linux/pci/pci.c (pci_init): Likewise.
+ * i386/i386at/gpl/linux/pci/bios32.c (check_pcibios): Likewise.
+ (pcibios_init): Likewise.
+ * i386/i386at/gpl/linux/block/genhd.c (add_partition): Likewise.
+
+ * i386/i386at/gpl/linux/net/8390.c (ei_debug): Make default value
+ zero.
+
+Wed Mar 12 14:50:46 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * i386/i386at/com.c (comprobe): Turn off noisiness.
+
+ * i386/i386at/gpl/linux/linux_block.c (check_disk_change): Don't
+ print out gratuitous obnoxiousness.
+ (device_open): Likewise.
+ * kern/bootstrap.c (copy_bootstrap): Likewise.
+ (user_bootstrap): Likewise.
+ * i386/i386at/gpl/linux/block/genhd.c (msdos_partition): Likewise.
+ (osf_partition): Likewise.
+ (sun_partition): Likewise.
+ (check_partition): Likewise.
+ * i386/i386/pit.c (findspeed): Likewise.
+ * vm/vm_resident.c (vm_page_bootstrap): Likewise.
+
+Mon Mar 10 15:04:47 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * i386/i386at/gpl/linux/linux_init.c (calibrate_delay): Don't
+ print out gratuitous obnoxiousness.
+
+ * i386/i386at/gpl/linux/linux_init.c (linux_init): Only call
+ linux_net_emulation_init if CONFIG_INET. Include
+ <i386/device-drivers.h>.
+
+ * i386/i386at/i386at_ds_routines.c: Include
+ <i386/device-drivers.h>. Don't mention linux_net_emulation_ops
+ unless CONFIG_INET.
+
+ * device/ds_routines.c (io_done_thread_continue): [i386]
+ Conditionalize free_skbuffs also on CONFIG_INET. Include
+ <i386/device-drivers.h>.
+
+ * i386/Drivers.in, i386/device-drivers.h.in, i386/driverlist.in:
+ New files.
+ * i386/Makefrag: Include i386/driverlist; don't include all device
+ drivers in kernel image; instead use list from driverlist.
+ * configure.in: Configure in $systype subdir too.
+
+ * i386/i386at/gpl/linux/include/linux/autoconf.h: Damage severly
+ to conform to device-drivers.h model.
+
+ * i386/bogus/com.h: Include <i386/device-drivers.h>.
+ Only turn on NCOM if CONFIG_MACH_COM is present.
+
+Mon Mar 3 16:26:58 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
+
+ * include/mach/message.h (__mach_msg, __mach_msg_trap): Add decls.
+
Tue Feb 25 15:42:23 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* i386/Makefrag (INCLUDES): Find `include' directory in new
diff --git a/Drivers.macros b/Drivers.macros
new file mode 100644
index 00000000..95bab83e
--- /dev/null
+++ b/Drivers.macros
@@ -0,0 +1,44 @@
+dnl
+dnl Some autoconf macros useful for device driver configuration
+dnl
+
+AC_SUBST(device_drivers)
+
+dnl AC_DRIVER_ALIAS(alias, canonical) makes --enable-alias have the
+dnl same effect as --enable-canonical.
+
+AC_DEFUN(AC_DRIVER_ALIAS, [
+[#] Checking for alias [$1]
+AC_ARG_ENABLE([$1],,
+enable_[$2]="$enable_[$1]"
+)])
+
+dnl AC_DRIVER_CLASS(name,option,files) defines a class of drivers. If
+dnl any driver declared by AC_DRIVER to be in that class is selected
+dnl by the user, then set the specified option with AC_DEFINE and add
+dnl the specified files to the output variable `device_drivers'. This
+dnl macro must precede the use of any corresponding AC_DRIVER macros.
+
+AC_DEFUN(AC_DRIVER_CLASS, [
+driver_class_[$1]_option=[$2]
+driver_class_[$1]_files="[$3]"
+])
+
+dnl AC_DRIVER(name,option,files [,class]) detects option --enable-name. If
+dnl it's set, then `option' is defined with AC_DEFINE, and files is
+dnl added to the output variable `device_drivers'. The driver is of class
+dnl `class'; see the comments on AC_DRIVER_CLASS for more information.
+
+AC_DEFUN(AC_DRIVER, [
+[#] Checking for device driver option [$1]
+AC_ARG_ENABLE([$1],,
+AC_DEFINE([$2])
+device_drivers="$device_drivers [$3]"
+if test "driver_class_[$4]_selected+set" != set; then
+ driver_class_[$4]_selected=yes
+ AC_DEFINE_UNQUOTED($driver_class_[$4]_option)
+ device_drivers="$device_drivers $driver_class_[$4]_files"
+fi
+)])
+
+
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 00000000..50dbe439
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,183 @@
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
+
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 558b094e..00000000
--- a/Makefile
+++ /dev/null
@@ -1,176 +0,0 @@
-# Makefile for Mach 4 kernel directory
-# Copyright 1996 Free Software Foundation, Inc.
-# This file is part of GNU Mach. Redistribution terms are not yet decided.
-
-
-
-# Set at entry:
-# $(srcdir) $(systype) $(installed-clib)
-
-sysdep = $(srcdir)/$(systype)
-
-ifeq ($(MIG),)
-MIG := mig
-endif
-
-ifeq ($(AWK),)
-AWK := awk
-endif
-
-all:
-
-# All the source in each directory. Note that `bogus' contains no source,
-# only header files.
-
-# Generic code for various hardware drivers
-chips-files = atm.c audio.c bt431.c bt455.c bt459.c build_font.c busses.c \
- cfb_hdw.c cfb_misc.c dc503.c dtop_handlers.c dtop_hdw.c dz_hdw.c \
- fb_hdw.c fb_misc.c fdc_82077_hdw.c frc.c ims332.c isdn_79c30_hdw.c \
- kernel_font.c lance.c lance_mapped.c lk201.c mc_clock.c mouse.c \
- nc.c nw_mk.c pm_hdw.c pm_misc.c scc_8530_hdw.c screen.c \
- screen_switch.c serial_console.c sfb_hdw.c sfb_misc.c spans.c \
- tca100.c tca100_if.c xcfb_hdb.c xcfb_misc.c
-
-# Generic code for various SCSI unit types
-scsi-files = disk_label.c mapped_scsi.c pc_scsi_label.c rz.c rz_audio.c \
- rz_cpu.c rz_disk.c rz_disk_bbr.c rz_host.c rz_tape.c scsi.c \
- scsi_alldevs.c scsi_comm.c scsi_cpu.c scsi_disk.c scsi_jukebox.c \
- scsi_optical.c scsi_printer.c scsi_rom.c scsi_scanner.c \
- scsi_tape.c scsi_worm.c
-
-# Icky kernel debugger
-ddb-files = $(addprefix db_,$(ddb-names))
-ddb-names = access.c aout.c break.c command.c cond.c examine.c expr.c \
- ext_symtab.c input.c lex.c macro.c mp.c output.c print.c run.c \
- sym.c task_thread.c trap.c variables.c watch.c write_cmd.c
-
-# Device support interfaces
-device-files = blkio.c chario.c cirbuf.c cons.c dev_lookup.c dev_name.c \
- dev_pager.c device_init.c dk_label.c ds_routines.c net_io.c subrs.c
-
-# IPC implementation
-ipc-files = $(addprefix ipc_,$(ipc-names)) \
- mach_msg.c mach_port.c mach_rpc.c mach_debug.c fipc.c
-ipc-names = entry.c hash.c init.c kmsg.c marequest.c mqueue.c \
- notify.c object.c port.c pset.c right.c space.c splay.c \
- table.c target.c thread.c
-
-# "kernel" implementation (tasks, threads, trivia, etc.)
-kern-files = act.c ast.c bootstrap.c counters.c debug.c eventcount.c \
- exception.c host.c ipc_host.c ipc_kobject.c ipc_mig.c ipc_sched.c \
- ipc_tt.c kalloc.c lock.c lock_mon.c mach_clock.c mach_factor.c \
- machine.c pc_sample.c printf.c priority.c processor.c profile.c \
- queue.c sched_prim.c startup.c strings.c syscall_emulation.c \
- syscall_subr.c syscall_sw.c task.c thread.c thread_swap.c \
- time_stamp.c timer.c xpr.c zalloc.c elf-load.c
-
-# Still more trivia
-util-files = about_to_die.c cpu.c cpu_init.c die.c putchar.c puts.c
-
-# Virtual memory implementation
-vm-files = $(addprefix vm_,$(vm-names)) memory_object.c
-vm-names = debug.c external.c fault.c init.c kern.c map.c \
- object.c pageout.c resident.c user.c
-
-
-
-# Object files that go into the kernel image. (This will be augmented by the
-# machine dependent Makefile fragment.)
-
-# Basic kernel source for Mach
-objfiles := $(subst .c,.o,$(ipc-files) $(kern-files) $(util-files) $(vm-files))
-vpath %.c $(srcdir)/ipc $(srcdir)/kern $(srcdir)/util $(srcdir)/vm
-
-# These device support files are always needed; the others are needed only
-# if particular drivers want the routines.
-# XXX functions in device/subrs.c should each be moved elsewhere
-objfiles += cons.o dev_lookup.o dev_name.o dev_pager.o device_init.o \
- ds_routines.o subrs.o net_io.o blkio.o chario.o
-vpath %.c $(srcdir)/device
-
-# DDB support -- eventually to die. Please.
-objfiles += $(subst .c,.o,$(ddb-files))
-vpath %.c $(srcdir)/ddb
-
-# Version number
-objfiles += version.o
-vpath version.c $(srcdir)
-
-
-# We steal routines from the C library and put them here.
-objfiles += clib-routines.o
-
-clib-routines = memcpy memset bcopy bzero htonl ntohl ntohs
-
-clib-routines.o: $(installed-clib)
- $(LD) -o clib-routines.o -r $(addprefix -u ,$(clib-routines)) $(installed-clib)
-
-
-# Automatically generated source
-
-# User stubs
-objfiles += memory_object_user_user.o memory_object_default_user.o \
- device_reply_user.o memory_object_reply_user.o
-
-# Server stubs
-objfiles += device_server.o device_pager_server.o mach_port_server.o \
- mach_server.o mach4_server.o mach_debug_server.o mach_host_server.o
-
-# Where to find the relevant Mig source files
-vpath %.cli $(srcdir)/vm $(srcdir)/device
-vpath %.srv $(srcdir)/device $(srcdir)/ipc $(srcdir)/kern
-
-
-# XXXX temporary
-vm_fault.o: memory_object_user.h
-vm_object.o: memory_object_default.h
-ds_routines.o: device_reply.h
-
-
-
-
-#
-# Compilation flags
-#
-
-DEFINES += -DMACH -DCMU -DMACH_KERNEL -DKERNEL
-INCLUDES += -I. -I$(srcdir) -I$(srcdir)/util -I$(srcdir)/bogus \
- -I$(srcdir)/kern -I$(srcdir)/device \
- -I$(srcdir)/include -I$(srcdir)/include/mach/sa
-
-include $(sysdep)/Makefrag
-
-CPPFLAGS += -nostdinc $(DEFINES) $(INCLUDES)
-
-MIGFLAGS += $(CPPFLAGS)
-
-#
-# Image
-#
-# (The newline in this command makes it much easier to read in make output.)
-all: kernel
-kernel: $(objfiles)
- $(LD) -o $@ $(LDFLAGS) \
- $(objfiles)
-#
-# How to do some things
-#
-
-# Building foo.h from foo.sym:
-%.symc: %.sym
- $(AWK) -f $(srcdir)/gensym.awk $< >$*.symc
-%.symc.o: %.symc
- $(CC) -S $(CPPFLAGS) $(CFLAGS) $(CPPFLAGS-$@) -x c -o $@ $<
-%.h: %.symc.o
- sed <$< -e 's/^[^*].*$$//' | \
- sed -e 's/^[*]/#define/' -e 's/mAgIc[^-0-9]*//' >$@
-
-# Building from foo.cli
-%.h %_user.c: %.cli
- $(MIG) $(MIGFLAGS) -header $*.h -user $*_user.c -server /dev/null $<
-
-# Building from foo.srv
-%_interface.h %_server.c: %.srv
- $(MIG) $(MIGFLAGS) -header $*_interface.h -server $*_server.c -user /dev/null $<
-
-
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 00000000..8ecc22c4
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,513 @@
+# Makefile for Mach 4 kernel directory
+# Copyright 1996 Free Software Foundation, Inc.
+# This file is part of GNU Mach. Redistribution terms are not yet decided.
+
+
+
+# Variables from `configure'.
+srcdir=@srcdir@
+systype=@systype@
+prefix=@prefix@
+
+installed-clib=$(prefix)/lib/libcrt.a
+exec_prefix=$(prefix)
+
+bootdir=$(exec_prefix)/boot
+includedir=$(prefix)/include
+libexecdir=$(exec_prefix)/libexec
+bindir=$(exec_prefix)/bin
+
+sysdep = $(srcdir)/$(systype)
+
+cross_compiling=@cross_compiling@
+
+# Programs found by configure.
+AWK=@AWK@
+INSTALL=@INSTALL@
+CC=@CC@
+BUILD_CC=@BUILD_CC@
+LEX=@LEX@
+YACC=@YACC@
+
+LEXLIB=@LEXLIB@
+
+INSTALL_PROGRAM=$(INSTALL)
+INSTALL_DATA=$(INSTALL) -m 644
+
+CFLAGS=@CFLAGS@
+
+# We build these locally
+MIG=./mig
+MIGCOM=./migcom
+
+all:
+
+# All the possible architectures
+all-archs = i386
+
+all-archs-subdirs = $(patsubst %,$(srcdir)/%/Subdirs,$(all-archs))
+all-archs-files = $(patsubst %,$(srcdir)/%/Files,$(all-archs))
+
+# Files distributed from the top level directory:
+topfiles = ChangeLog ChangeLog.0 ChangeLog.00 Drivers.macros Makefile.in \
+ README INSTALL config.guess config.sub configure configure.in \
+ gensym.awk install-sh version.c
+
+# All the source in each directory.
+
+# Old crud from a previous configure scheme
+bogus-files = bootstrap_symbols.h fast_tas.h hw_footprint.h net_atm.h \
+ power_save.h simple_clock.h stat_time.h xpr_debug.h \
+ $(patsubst %,mach_%.h,assert counters debug fixpri host ipc_compat \
+ ipc_debug ipc_test kdb ldebug lock_mon machine_routines mp_debug \
+ pagemap pcsample ttd vm_debug) \
+ $(patsubst %,norma_%.h,device ether ipc task vm)
+
+# Generic code for various hardware drivers
+chips-files = atm.c audio.c bt431.c bt455.c bt459.c build_font.c busses.c \
+ cfb_hdw.c cfb_misc.c dc503.c dtop_handlers.c dtop_hdw.c dz_hdw.c \
+ fb_hdw.c fb_misc.c fdc_82077_hdw.c frc.c ims332.c isdn_79c30_hdw.c \
+ kernel_font.c lance.c lance_mapped.c lk201.c mc_clock.c mouse.c \
+ nc.c nw_mk.c pm_hdw.c pm_misc.c scc_8530_hdw.c screen.c \
+ screen_switch.c serial_console.c sfb_hdw.c sfb_misc.c spans.c \
+ tca100.c tca100_if.c xcfb_hdw.c xcfb_misc.c \
+ atmreg.h audio_config.h audio_defs.h bt431.h bt455.h bt459.h \
+ bt478.h busses.h dc503.h dtop.h dz_7085.h dz_defs.h eccreg.h \
+ fdc_82077.h ims332.h isdn_79c30.h lance.h lk201.h mc_clock.h \
+ nc.h nw.h nw_mk.h pm_defs.h scc_8530.h screen.h screen_defs.h \
+ screen_switch.h serial_defs.h spans.h tca100.h tca100_if.h \
+ vs42x_rb.h xcfb_monitor.h
+
+# Generic code for various SCSI unit types
+scsi-files = disk_label.c mapped_scsi.c pc_scsi_label.c rz.c rz_audio.c \
+ rz_cpu.c rz_disk.c rz_disk_bbr.c rz_host.c rz_tape.c scsi.c \
+ scsi_alldevs.c scsi_comm.c scsi_cpu.c scsi_disk.c scsi_jukebox.c \
+ scsi_optical.c scsi_printer.c scsi_rom.c scsi_scanner.c \
+ scsi_tape.c scsi_worm.c \
+ compat_30.h mapped_scsi.h rz.h rz_labels.h scsi.h scsi2.h \
+ scsi_defs.h scsi_endian.h
+
+# Icky kernel debugger
+ddb-cfiles = $(addprefix db_,$(ddb-names))
+ddb-names = access.c aout.c break.c command.c cond.c examine.c expr.c \
+ ext_symtab.c input.c lex.c macro.c mp.c output.c print.c run.c \
+ sym.c task_thread.c trap.c variables.c watch.c write_cmd.c
+ddb-files = $(ddb-cfiles) $(patsubst %,db_%.h, \
+ access break command expr lex output print run sym task_thread \
+ variables watch) nlist.h stab.h tr.h
+
+# Device support interfaces
+device-files = blkio.c chario.c cirbuf.c cons.c dev_lookup.c dev_name.c \
+ dev_pager.c device_init.c dk_label.c ds_routines.c net_io.c subrs.c \
+ buf.h cirbuf.h conf.h cons.h dev_hdr.h dev_master.h device_port.h \
+ device_types_kernel.h ds_routines.h errno.h if_ether.h if_hdr.h \
+ io_req.h net_io.h param.h tty.h memory_object_reply.cli \
+ dev_forward.defs device_pager.srv device_reply.cli
+
+# IPC implementation
+ipc-cfiles = $(addprefix ipc_,$(ipc-names)) \
+ mach_msg.c mach_port.c mach_rpc.c mach_debug.c fipc.c
+ipc-names = entry.c hash.c init.c kmsg.c marequest.c mqueue.c \
+ notify.c object.c port.c pset.c right.c space.c splay.c \
+ table.c target.c thread.c
+ipc-files = $(ipc-cfiles) mach_port.srv fipc.h port.h mach_msg.h \
+ $(patsubst %,ipc_%.h, \
+ entry hash init kmsg kmsg_queue machdep marequest mqueue notify \
+ object port pset right space splay table target thread types)
+
+# "kernel" implementation (tasks, threads, trivia, etc.)
+kern-cfiles = act.c ast.c bootstrap.c counters.c debug.c eventcount.c \
+ exception.c host.c ipc_host.c ipc_kobject.c ipc_mig.c ipc_sched.c \
+ ipc_tt.c kalloc.c lock.c lock_mon.c mach_clock.c mach_factor.c \
+ machine.c pc_sample.c printf.c priority.c processor.c profile.c \
+ queue.c sched_prim.c startup.c strings.c syscall_emulation.c \
+ syscall_subr.c syscall_sw.c task.c thread.c thread_swap.c \
+ time_stamp.c timer.c xpr.c zalloc.c elf-load.c
+kern-files = $(kern-cfiles) \
+ act.h assert.h ast.h compat_xxx_defs.h counters.h cpu_number.h \
+ debug.h eventcount.h host.h ipc_host.h ipc_kobject.h ipc_sched.h \
+ ipc_tt.h kalloc.h kern_types.h lock.h mach_param.h macro_help.h \
+ pc_sample.h processor.h queue.h refcount.h sched.h sched_prim.h \
+ shuttle.h strings.h syscall_emulation.h syscall_subr.h syscall_sw.h \
+ task.h thread.h thread_swap.h time_out.h time_stamp.h timer.h xpr.h \
+ zalloc.h \
+ mach.srv mach4.srv mach_debug.srv mach_host.srv
+
+# Still more trivia
+util-cfiles = about_to_die.c cpu.c cpu_init.c die.c putchar.c puts.c
+util-files = $(util-cfiles) config.h cpu.h cpu_subs.h cpus.h debug.h \
+ phys_mem.h ref_count.h
+
+# Virtual memory implementation
+vm-cfiles = $(addprefix vm_,$(vm-names)) memory_object.c
+vm-names = debug.c external.c fault.c init.c kern.c map.c \
+ object.c pageout.c resident.c user.c
+vm-files = $(vm-cfiles) memory_object_default.cli memory_object_user.cli \
+ memory_object.h pmap.h $(patsubst %,vm_%.h, \
+ external fault kern map object page pageout user)
+
+
+
+# Object files that go into the kernel image. (This will be augmented by the
+# machine dependent Makefile fragment.)
+
+# Basic kernel source for Mach
+objfiles := $(subst .c,.o,$(ipc-cfiles) $(kern-cfiles) \
+ $(util-cfiles) $(vm-cfiles))
+vpath %.c $(srcdir)/ipc $(srcdir)/kern $(srcdir)/util $(srcdir)/vm
+
+# These device support files are always needed; the others are needed only
+# if particular drivers want the routines.
+# XXX functions in device/subrs.c should each be moved elsewhere
+objfiles += cons.o dev_lookup.o dev_name.o dev_pager.o device_init.o \
+ ds_routines.o subrs.o net_io.o blkio.o chario.o
+vpath %.c $(srcdir)/device
+
+# DDB support -- eventually to die. Please.
+objfiles += $(subst .c,.o,$(ddb-cfiles))
+vpath %.c $(srcdir)/ddb
+
+# Version number
+objfiles += version.o
+vpath version.c $(srcdir)
+
+
+# Header files installed for user use
+device-headers= $(addprefix device/,audio_status.h bpf.h device.defs \
+ device_reply.defs device_request.defs device_types.defs \
+ device_types.h disk_status.h net_status.h tape_status.h \
+ tty_status.h)
+mach-headers= $(addprefix mach/, bootstrap.defs default_pager.defs \
+ default_pager_helper.defs default_pager_types.defs \
+ exc.defs mach.defs mach4.defs mach_host.defs mach_norma.defs \
+ mach_port.defs mach_types.defs memory_object.defs \
+ memory_object_default.defs norma_task.defs notify.defs \
+ std_types.defs \
+ alert.h boolean.h boot.h default_pager_types.h exception.h \
+ host_info.h kern_return.h mach_param.h mach_types.h \
+ machine.h macro_help.h memory_object.h message.h mig_errors.h \
+ msg_type.h multiboot.h norma_special_ports.h notify.h \
+ pc_sample.h policy.h port.h proc_ops.h processor_info.h \
+ profil.h profilparam.h rpc.h std_types.h syscall_sw.h \
+ task_info.h task_special_ports.h thread_info.h \
+ thread_special_ports.h thread_status.h thread_switch.h \
+ time_value.h version.h vm_attributes.h vm_inherit.h \
+ vm_param.h vm_prot.h vm_statistics.h)
+
+mach-debug-headers:= $(addprefix mach_debug/, hash_info.h ipc_info.h \
+ mach_debug.defs mach_debug_types.defs mach_debug_types.h \
+ pc_info.h vm_info.h zone_info.h)
+
+installed-headers:= $(device-headers) $(mach-headers)
+
+
+
+# We steal routines from the C library and put them here.
+# If we link against the C library directly, then we have to hope that we have
+# correctly found all the dependencies that might bring in C library code.
+# This method is much safer because it's easy to check this one object file
+# for sanity.
+objfiles += clib-routines.o
+
+clib-routines = memcpy memset bcopy bzero htonl ntohl ntohs
+
+clib-routines.o: $(installed-clib)
+ $(LD) -o clib-routines.o -r $(addprefix -u ,$(clib-routines)) $(installed-clib)
+
+# This rule checks clib-routines and makes sure it doesn't have any
+# extra symbols.
+kernel: check-clib-routines
+check-clib-routines: clib-routines.o
+ (set -e; test `echo $(clib-routines) | wc -w` -eq `nm $< | wc -l`; \
+ touch check-clib-routines)
+
+
+# Empty dependency file
+clib-routines.d:; touch $@
+
+
+
+# Automatically generated source
+
+# User stubs
+objfiles += memory_object_user_user.o memory_object_default_user.o \
+ device_reply_user.o memory_object_reply_user.o
+
+# Server stubs
+objfiles += device_server.o device_pager_server.o mach_port_server.o \
+ mach_server.o mach4_server.o mach_debug_server.o mach_host_server.o
+
+# Where to find the relevant Mig source files
+vpath %.cli $(srcdir)/vm $(srcdir)/device
+vpath %.srv $(srcdir)/device $(srcdir)/ipc $(srcdir)/kern
+
+
+
+
+#
+# Compilation flags
+#
+
+DEFINES += -DMACH -DCMU -DMACH_KERNEL -DKERNEL
+INCLUDES += -I. -I$(srcdir) -I$(srcdir)/include -I$(srcdir)/include/mach/sa \
+ -I$(srcdir)/bogus -I$(srcdir)/util -I$(srcdir)/kern -I$(srcdir)/device
+
+
+include $(sysdep)/Makefrag
+
+CPPFLAGS += -nostdinc $(DEFINES) $(INCLUDES)
+
+MIGFLAGS += $(CPPFLAGS)
+
+
+all: kernel cross-migcom
+
+
+#
+# Kernel Image
+#
+# (The newline in this command makes it much easier to read in make output.)
+kernel: $(objfiles)
+ $(LD) -o $@ $(LDFLAGS) \
+ $(objfiles)
+
+
+
+#
+# Installation
+#
+installed-headers-names = $(addprefix $(includedir)/,$(installed-headers))
+installed-sysdep-headers-names = $(addprefix $(includedir)/,$($(systype)-installed-headers))
+install: mkinstalldirs kernel $(installed-headers-names) $(installed-sysdep-headers-names) cross-mig cross-migcom
+ $(INSTALL_PROGRAM) kernel $(bootdir)/gnumach
+ $(INSTALL_PROGRAM) cross-mig $(bindir)/mig
+ $(INSTALL_PROGRAM) cross-migcom $(libexecdir)/mig
+ -ln -s $(systype) $(includedir)/mach/machine
+
+$(installed-headers-names): $(includedir)/%: $(srcdir)/include/%
+ $(INSTALL_DATA) $< $@
+
+$(installed-sysdep-headers-names): $(includedir)/%: $(sysdep)/include/%
+ $(INSTALL_DATA) $< $@
+
+mkinstalldirs:
+ mkdir -p $(bootdir) $(includedir) $(includedir)/device \
+ $(includedir)/mach $(includedir)/mach/$(systype)
+
+
+#
+# Building the distribution
+#
+
+dist:
+ rm -rf gnumach-$(version)
+ mkdir gnumach-$(version)
+ # Directories
+ mkdir gnumach-$(version)/{bogus,chips,ddb,device,ipc,kern,mig,scsi,util,vm,include}
+ mkdir gnumach-$(version)/include/{mach,device,mach_debug}
+ for dir in `cat $(all-archs-subdirs)`; do \
+ mkdir -p gnumach-$(version)/$$dir; \
+ done
+ # Files
+ ln $(addprefix $(srcdir)/,$(topfiles)) gnumach-$(version)
+ ln $(addprefix $(srcdir)/bogus/,$(bogus-files)) gnumach-$(version)/bogus
+ ln $(addprefix $(srcdir)/chips/,$(chips-files)) gnumach-$(version)/chips
+ ln $(addprefix $(srcdir)/ddb/,$(ddb-files)) gnumach-$(version)/ddb
+ ln $(addprefix $(srcdir)/device/,$(device-files)) gnumach-$(version)/device
+ ln $(addprefix $(srcdir)/ipc/,$(ipc-files)) gnumach-$(version)/ipc
+ ln $(addprefix $(srcdir)/kern/,$(kern-files)) gnumach-$(version)/kern
+ ln $(addprefix $(srcdir)/mig/,$(mig-files)) gnumach-$(version)/mig
+ ln $(addprefix $(srcdir)/scsi/,$(scsi-files)) gnumach-$(version)/scsi
+ ln $(addprefix $(srcdir)/util/,$(util-files)) gnumach-$(version)/util
+ ln $(addprefix $(srcdir)/vm/,$(vm-files)) gnumach-$(version)/vm
+ ln $(addprefix $(srcdir)/include/,$(mach-headers)) gnumach-$(version)/include/mach
+ ln $(addprefix $(srcdir)/include/,$(device-headers)) gnumach-$(version)/include/device
+ ln $(addprefix $(srcdir)/include/,$(mach-debug-headers)) gnumach-$(version)/include/mach_debug
+ # Files in arch dirs
+ for file in `cat $(all-archs-files)`; do \
+ ln $(srcdir)/$$file gnumach-$(version)/`dirname $$file`; \
+ done
+ for arch in $(all-archs); do \
+ ln -s $$arch gnumach-$(version)/arch/include/mach/machine; \
+ done
+
+
+
+#
+# Autoconf support
+#
+$(srcdir)/configure: configure.in
+ cd $(srcdir) && autoconf
+
+Makefile: Makefile.in config.status
+ ./config.status
+
+config.status: configure
+ ./config.status --recheck
+
+vpath %.in $(srcdir)
+vpath configure $(srcdir)
+
+
+
+#
+# How to do some things
+#
+
+# Building foo.h from foo.sym:
+%.symc: %.sym
+ $(AWK) -f $(srcdir)/gensym.awk $< >$*.symc
+%.symc.o: %.symc
+ $(CC) -S $(CPPFLAGS) $(CFLAGS) $(CPPFLAGS-$@) -x c -o $@ $<
+%.h: %.symc.o
+ sed <$< -e 's/^[^*].*$$//' | \
+ sed -e 's/^[*]/#define/' -e 's/mAgIc[^-0-9]*//' >$@
+
+# Building from foo.cli
+%.h %_user.c: %.cli $(MIG) $(MIGCOM)
+ $(MIG) $(MIGFLAGS) -header $*.h -user $*_user.c -server /dev/null $<
+
+# Building from foo.srv
+%_interface.h %_server.c: %.srv $(MIG) $(MIGCOM)
+ $(MIG) $(MIGFLAGS) -header $*_interface.h -server $*_server.c -user /dev/null $<
+
+#
+# Dependency generation
+#
+
+# Include dependency files
+ifneq ($(no_deps),t)
+
+# For each file generated by MiG we need a .d file.
+servers = $(filter %_server.o,$(objfiles))
+include $(subst _server.o,.migs_d,$(servers)) /dev/null
+include $(subst _server.o,.migsh_d,$(servers)) /dev/null
+
+# vm_user.o fits the pattern, but is not actually a MiG-related file.
+users = $(filter-out vm_user.o,$(filter %_user.o,$(objfiles)))
+include $(subst _user.o,.migu_d,$(users)) /dev/null
+include $(subst _user.o,.miguh_d,$(users)) /dev/null
+
+# For each .o file we need a .d file.
+include $(subst .o,.d,$(filter %.o,$(objfiles))) /dev/null
+
+endif
+
+# Here is how to make those dependency files
+
+%.migs_d: %.srv
+ (set -e; $(CPP) $(MIGFLAGS) -M -MG -x c $< | \
+ sed -e 's/\.srv\.o:/_server.c $@:/' > $@)
+
+%.migu_d: %.cli
+ (set -e; $(CPP) $(MIGFLAGS) -M -MG -x c $< | \
+ sed -e 's/\.cli\.o:/_user.c $@:/' > $@)
+
+%.migsh_d: %.migs_d
+ sed -e 's/_server\.c /_interface.h /' -e 's/migs_d/migsh_d/' < $< > $@
+
+%.miguh_d: %.migu_d
+ sed -e 's/_user\.c /.h /' -e 's/migu_d/miguh_d/' < $< > $@
+
+# Generic rule for $(CC) based compilation for making dependencies
+define make-deps
+set -e; $(CC) $(CFLAGS) $(CPPFLAGS) -M -MG $< | \
+ sed > $@.new -e 's/$*\.o:/$*.o $@:/'
+mv -f $@.new $@
+endef
+
+%.d: %.c; $(make-deps)
+%.d: %.S; $(make-deps)
+
+# .s files don't go through the preprocessor, so we do this
+# This rule must come *after* the genuine ones above, so that
+# make doesn't build a .s file and then make an empty dependency
+# list.
+%.d: %.s
+ echo '$*.o: $<' > $@
+
+
+# How to build MiG:
+
+mig-objfiles = error.o global.o header.o lexxer.o migcom.o parser.o routine.o \
+ server.o statement.o string.o type.o user.o utils.o
+mig-csrcfiles = $(subst .o,.c,$(mig-objfiles))
+mig-othersrc = alloc.h boolean.h error.h global.h lexxer.h message.h \
+ mig_string.h routine.h statement.h type.h utils.h write.h \
+ lexxer.l parser.y mig.sh parser.h cpu.sym
+
+mig-files = $(mig-csrcfiles) $(mig-othersrc) ChangeLog
+
+vpath cpu.sym $(srcdir)/mig
+
+# Don't use $(CPPFLAGS) here; MiG needs none of the Mach headers except
+# what happens automagically to build cpu.h.
+
+# Here's how to build MiG for the target.
+cross-mig-objfiles = $(addprefix cross-,$(mig-objfiles))
+
+$(cross-mig-objfiles): cross-%.o: $(srcdir)/mig/%.c
+ $(CC) -c $(CFLAGS) -I. -I$(srcdir)/mig -o $@ $<
+
+./cross-migcom: $(cross-mig-objfiles)
+ $(CC) $(CFLAGS) $(cross-mig-objfiles) $(LEXLIB) -o $@
+
+# Dependencies for these .o files
+ifneq ($(no_deps),t)
+include $(subst .o,.d,$(cross-mig-objfiles)) /dev/null
+endif
+
+$(subst .o,.d,$(cross-mig-objfiles)): cross-%.d: $(srcdir)/mig/%.c
+ set -e; $(CC) $(CFLAGS) -M -MG $< | \
+ sed > $@.new -e 's/$*\.o:/$*.o $@:/'
+ mv -f $@.new $@
+
+
+ifeq ($(cross_compiling),yes)
+# When cross compiling, we build two migcoms; one for our use and one to
+# install. Otherwise, we just build the one.
+
+$(mig-objfiles): %.o: $(srcdir)/mig/%.c
+ $(BUILD_CC) -c $(BUILD_CFLAGS) -I. -I$(srcdir)/mig -o $@ $<
+
+./migcom: $(mig-objfiles)
+ $(BUILD_CC) $(BUILD_CFLAGS) $(mig-objfiles) $(LEXLIB) -o $@
+
+ifneq ($(no_deps),t)
+include $(subst .o,.d,$(mig-objfiles))
+endif
+
+$(subst .o,.d,$(mig-objfiles)): %.d: $(srcdir)/mig/%.c
+ set -e; $(BUILD_CC) $(BUILD_CFLAGS) -M -MG $< | \
+ sed > $@.new -e 's/$*\.o:/$*.o $@:/'
+ mv -f $@.new $@
+
+else
+./migcom: ./cross-migcom
+ rm -f $@
+ $(LN) $< $@
+endif
+
+$(srcdir)/mig/lexxer.c: $(srcdir)/mig/lexxer.l
+ $(LEX) $(LFLAGS) $<
+ mv lex.yy.c $*.c
+
+$(srcdir)/mig/parser.c $(srcdir)/mig/parser.h: $(srcdir)/mig/parser.y
+ $(YACC) $(YFLAGS) -d $<
+ mv y.tab.c $(srcdir)/mig/parser.c
+ mv y.tab.h $(srcdir)/mig/parser.h
+
+# Version of mig script that looks for the right local tools
+ifeq ($(cross_compiling),yes)
+./mig: $(srcdir)/mig/mig.sh Makefile
+ sed -e 's,@MIGDIR@,.,g' \
+ -e 's,@CPP@,${BUILD_CC} -x c-header -E,g' \
+ $< >$@.tmp && chmod +x $@.tmp && mv -f $@.tmp $@
+else
+./mig: $(srcdir)/mig/mig.sh Makefile
+ sed -e 's,@MIGDIR@,.,g' \
+ -e 's,@CPP@,${CC} -x c-header -E,g' \
+ $< >$@.tmp && chmod +x $@.tmp && mv -f $@.tmp $@
+endif
+
+
diff --git a/README b/README
new file mode 100644
index 00000000..f3a04a44
--- /dev/null
+++ b/README
@@ -0,0 +1,37 @@
+-*- Text -*-
+This is the GNU mach 0.1 distribution.
+
+This kernel is derived from the Utah kernel source. We use it to run
+the Hurd on. It is being distributed by us so that we can more easily
+modify the source, and so that it will work with the normal GNU coding
+standards and Makefile conventions.
+
+libmach, bootloaders, default pagers, and the like are not part of
+this distribution. For libraries, we refer you to the GNU C library,
+which has Mach support. For bootloaders, we refer you to GRUB. (This
+kernel can be loaded by any bootloader that uses the multiboot
+standard.) For default pagers, we refer you to your particular system
+that you will run on top of Mach. The upcoming Hurd distribution
+(version 0.2) will contain the code that used to be in the Utah kernel
+distributions for doing the work of the default pager.
+
+The interface generator `MiG' is still part of this distribution.
+Perhaps at some later point it will be split out, as it surely should
+be.
+
+Generic installation instructions may be found in the file INSTALL.
+
+By default, you get a kernel with no device drivers for disks and
+network devices. This is not what you want! Examine the file
+`README-Drivers' in the directory for the machine type your kernel is
+on (e.g., `i386/README-Drivers') for a list of configure --enable
+switches. Give the appropriate set for your hardware. It is
+generally safe to specify switches for hardware you don't have; in
+this way you can build kernels that work on different physical machine
+set ups.
+
+The specific switches you give to configure are always recorded in the
+file `config.status'. So you can always tell what options you used to
+build a particular kernel.
+
+
diff --git a/configure.in b/configure.in
new file mode 100644
index 00000000..aef8c733
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,45 @@
+dnl Configure script for GNU Mach.
+dnl Copyright 1997 Free Software Foundation, Inc.
+dnl This file is part of GNU Mach. Redistribution terms are not yet decided.
+
+AC_INIT(kern/ipc_kobject.c)
+
+#
+# Deduce output var `systype' from configuration parms.
+#
+AC_CANONICAL_HOST
+
+case "$host_cpu" in
+i[[345]]86) systype=i386 ;;
+*) AC_MSG_ERROR([unsupported CPU type]) ;;
+esac
+
+AC_SUBST(systype)
+AC_SUBST(cross_compiling)
+
+# Default prefix is / for the kernel.
+AC_PREFIX_DEFAULT()
+
+#
+# Programs
+#
+AC_PROG_CC
+AC_PROG_AWK
+AC_PROG_INSTALL
+AC_PROG_LEX
+AC_PROG_YACC
+AC_CHECK_TOOL(MIG, mig, mig)
+
+if test $host != $build; then
+ AC_CHECK_PROG(BUILD_CC, gcc cc)
+fi
+
+# Set up `machine' link in build directory for easier header file location.
+AC_LINK_FILES(${systype}/${systype},machine)
+
+# Do machine-specific configuration last so that it can override anything
+# set above if necessary.
+
+AC_CONFIG_SUBDIRS($systype)
+
+AC_OUTPUT(Makefile)
diff --git a/device/ds_routines.c b/device/ds_routines.c
index 9880f7ec..9f3e039d 100644
--- a/device/ds_routines.c
+++ b/device/ds_routines.c
@@ -66,6 +66,7 @@
#ifdef i386
#include <i386at/device_emul.h>
+#include <i386/device-drivers.h>
#endif
#ifdef i386
@@ -1428,7 +1429,7 @@ void io_done_thread_continue()
register spl_t s;
register io_req_t ior;
-#if defined (i386) && defined (LINUX_DEV)
+#if defined (i386) && defined (LINUX_DEV) && defined (CONFIG_INET)
free_skbuffs ();
#endif
s = splio();
diff --git a/i386/Drivers.in b/i386/Drivers.in
new file mode 100644
index 00000000..e4d22607
--- /dev/null
+++ b/i386/Drivers.in
@@ -0,0 +1,117 @@
+AC_INIT(i386/i386asm.sym)
+
+sinclude([../Drivers.macros])
+
+AC_CONFIG_HEADER(device-drivers.h)
+
+dnl Aliases have to come first.
+
+AC_DRIVER_ALIAS(3c501, el1)
+AC_DRIVER_ALIAS(3c503, el2)
+AC_DRIVER_ALIAS(3c59x, vortex)
+AC_DRIVER_ALIAS(hpj2577, hp100)
+AC_DRIVER_ALIAS(hpj2573, hp100)
+AC_DRIVER_ALIAS(hpj2585, hp100)
+AC_DRIVER_ALIAS(hp27248b, hp100)
+AC_DRIVER_ALIAS(eth32, eth16i)
+AC_DRIVER_ALIAS(znote, znet)
+AC_DRIVER_ALIAS(de100, depca)
+AC_DRIVER_ALIAS(de101, depca)
+AC_DRIVER_ALIAS(de200, depca)
+AC_DRIVER_ALIAS(de201, depca)
+AC_DRIVER_ALIAS(de202, depca)
+AC_DRIVER_ALIAS(de210, depca)
+AC_DRIVER_ALIAS(de422, depca)
+AC_DRIVER_ALIAS(de203, ewrk3)
+AC_DRIVER_ALIAS(de204, ewrk3)
+AC_DRIVER_ALIAS(de205, ewrk3)
+AC_DRIVER_ALIAS(de425, de4x5)
+AC_DRIVER_ALIAS(de434, de4x5)
+AC_DRIVER_ALIAS(de435, de4x5)
+AC_DRIVER_ALIAS(de500, de4x5)
+AC_DRIVER_ALIAS(3c507, el16)
+AC_DRIVER_ALIAS(3c505, elplus)
+
+
+dnl Kinds of drivers that have gobs of source files that get brought in.
+
+AC_DRIVER_CLASS(scsi, CONFIG_SCSI, constants.o hosts.o scsi.o scsi_debug.o scsi_ioctl.o scsi_proc.o scsicam.o sd.o sd_ioctl.o sr.o sr_ioctl.o)
+
+AC_DRIVER_CLASS(net, CONFIG_INET, linux_net.o Space.o dev.o net_init.o)
+
+dnl Strictly speaking, we could have a `linux' option too, but it's
+dnl not possible to built a useful kernel without at least one Linux
+dnl driver, so that's not really necessary.
+
+
+dnl Serial devices
+
+AC_DRIVER(com, CONFIG_MACH_COM, com.o)
+
+
+dnl non-SCSI Disk controllers
+
+AC_DRIVER(floppy, CONFIG_BLK_DEV_FD, floppy.o)
+AC_DRIVER(ide, CONFIG_BLK_DEV_IDE, cmd640.o ide-cd.o ide.o rz1000.o triton.o)
+
+
+dnl SCSI Disk controllers
+
+AC_DRIVER(advansys, CONFIG_SCSI_ADVANSYS, advansys.o, scsi)
+AC_DRIVER(buslogic, CONFIG_SCSI_BUSLOGIC, BusLogic.o, scsi)
+AC_DRIVER(u1434f, CONFIG_SCSI_U14_34F, u14-34f.o, scsi)
+AC_DRIVER(ultrastor, CONFIG_SCSI_ULTRASTOR, ultrastor.o, scsi)
+AC_DRIVER(aha152x, CONFIG_SCSI_AHA152X, aha152x.o, scsi)
+AC_DRIVER(aha1542, CONFIG_SCSI_AHA1542, aha1542.o, scsi)
+AC_DRIVER(aha1740, CONFIG_SCSI_AHA1740, aha1740.o, scsi)
+AC_DRIVER(aic7xxx, CONFIG_SCSI_AIC7XXX, aic7xxx.o, scsi)
+AC_DRIVER(futuredomain, CONFIG_SCSI_FUTURE_DOMAIN, fdomain.o, scsi)
+AC_DRIVER(in2000, CONFIG_SCSI_IN2000, in2000.o, scsi)
+AC_DRIVER(ncr5380, CONFIG_SCSI_GENERIC_NCR5380, g_NCR5380.o, scsi)
+AC_DRIVER(ncr53c406a, CONFIG_SCSI_NCR53C406A, NCR53c406a.o, scsi)
+AC_DRIVER(qlogic, CONFIG_SCSI_QLOGIC, qlogic.o, scsi)
+AC_DRIVER(pas16, CONFIG_SCSI_PASS16, pas16.o, scsi)
+AC_DRIVER(seagate, CONFIG_SCSI_SEAGATE, seagate.o, scsi)
+AC_DRIVER(t128, CONFIG_SCSI_T128, t128.o, scsi)
+AC_DRIVER(ncr53c7xx, CONFIG_SCSI_NCR53C7xx, 53c7,8xx.o, scsi)
+AC_DRIVER(eatadma, CONFIG_SCSI_EATA_DMA, eata_dma.o, scsi)
+AC_DRIVER(eatapio, CONFIG_SCSI_EATA_PIO, eata_pio.o, scsi)
+AC_DRIVER(wd7000, CONFIG_SCSI_7000FASST, wd7000.o, scsi)
+AC_DRIVER(eata, CONFIG_SCSI_EATA, eata.o, scsi)
+AC_DRIVER(am53c974, CONFIG_SCSI_AM53C974, AM53C974.o, scsi)
+
+
+dnl Ethernet controllers
+
+AC_DRIVER(ne2000, CONFIG_NE2000, ne.o 8390.o, net)
+AC_DRIVER(el2, CONFIG_EL2, 3c403.o 8390.o, net)
+AC_DRIVER(wd80x3, CONFIG_WD80x3, wd.o 8390.o, net)
+AC_DRIVER(el1, CONFIG_EL1, 3c501.o, net)
+AC_DRIVER(ul, CONFIG_ULTRA, smc-ultra.o 8390.o, net)
+AC_DRIVER(hplanplus, CONFIG_HPLAN_PLUS, hp-plus.o, net)
+AC_DRIVER(hplan, CONFIG_HPLAN, hp.o 8390.o, net)
+AC_DRIVER(vortex, CONFIG_VORTEX, 3c59x.o, net)
+AC_DRIVER(seeq8005, CONFIG_SEEQ8005, seeq8005.o, net)
+AC_DRIVER(hp100, CONFIG_HP100, hp100.o, net)
+AC_DRIVER(ac3200, CONFIG_AC3200, ac3200.o 8390.o, net)
+AC_DRIVER(e2100, CONFIG_E2100, e2100.o 8390.o, net)
+AC_DRIVER(at1700, CONFIG_AT1700, at1700.o, net)
+AC_DRIVER(eth16i, CONFIG_ETH16I, eth16i.o, net)
+AC_DRIVER(znet, CONFIG_ZNET, znet.o, net)
+AC_DRIVER(eexpress, CONFIG_EEXPRESS, eexpress.o, net)
+AC_DRIVER(eexpresspro, CONFIG_EEXPRESS_PRO, eepro.o, net)
+AC_DRIVER(depca, CONFIG_DEPCA, depca.o, net)
+AC_DRIVER(ewrk3, CONFIG_EWRK3, ewrk3.o, net)
+AC_DRIVER(de4x5, CONFIG_DE4X5, de4x5.o, net)
+AC_DRIVER(apricot, CONFIG_APRICOT, apricot.o, net)
+AC_DRIVER(wavelan, CONFIG_WAVELAN, wavelan.o, net)
+AC_DRIVER(el16, CONFIG_EL16, 3c507.o, net)
+AC_DRIVER(elplus, CONFIG_ELPLUS, 3c505.o, net)
+AC_DRIVER(de600, CONFIG_DE600, de600.o, net)
+AC_DRIVER(de620, CONFIG_DE620, de620.o, net)
+AC_DRIVER(skg16, CONFIG_SK_G16, sk_g16.o, net)
+AC_DRIVER(ni52, CONFIG_NI52, ni52.o, net)
+AC_DRIVER(ni65, CONFIG_NI65, ni65.o, net)
+AC_DRIVER(atp, CONFIG_ATP, apt.o, net)
+
+AC_OUTPUT(driverlist)
diff --git a/i386/Files b/i386/Files
new file mode 100644
index 00000000..9521be30
--- /dev/null
+++ b/i386/Files
@@ -0,0 +1,628 @@
+i386/Makefrag
+i386/bogus/aha.h
+i386/bogus/asc.h
+i386/bogus/at3c501.h
+i386/bogus/blit.h
+i386/bogus/com.h
+i386/bogus/de6c.h
+i386/bogus/eaha.h
+i386/bogus/evc.h
+i386/bogus/fd.h
+i386/bogus/fpe.h
+i386/bogus/hd.h
+i386/bogus/hpp.h
+i386/bogus/lpr.h
+i386/bogus/mach_machine_routines.h
+i386/bogus/ne.h
+i386/bogus/ns8390.h
+i386/bogus/nscsi.h
+i386/bogus/par.h
+i386/bogus/pc586.h
+i386/bogus/platforms.h
+i386/bogus/rc.h
+i386/bogus/sbic.h
+i386/bogus/sci.h
+i386/bogus/sii.h
+i386/bogus/siop.h
+i386/bogus/ul.h
+i386/bogus/wd.h
+i386/bogus/wt.h
+i386/dos/dos_buf.c
+i386/dos/dos_check_err.c
+i386/dos/dos_close.c
+i386/dos/dos_fstat.c
+i386/dos/dos_gettimeofday.c
+i386/dos/dos_io.h
+i386/dos/dos_open.c
+i386/dos/dos_read.c
+i386/dos/dos_rename.c
+i386/dos/dos_seek.c
+i386/dos/dos_tcgetattr.c
+i386/dos/dos_unlink.c
+i386/dos/dos_write.c
+i386/dos/putchar.c
+i386/dos/i16/gdt.h
+i386/dos/i16/gdt_sels.h
+i386/dos/i16/i16_crt0.S
+i386/dos/i16/i16_crt0.h
+i386/dos/i16/i16_dos.h
+i386/dos/i16/i16_dos_mem.c
+i386/dos/i16/i16_exit.c
+i386/dos/i16/i16_main.c
+i386/dos/i16/i16_putchar.c
+i386/dos/i16/i16_vcpi.c
+i386/dos/i16/i16_xms.c
+i386/dos/i16/idt.h
+i386/dos/i16/phys_mem_sources.h
+i386/i386/ast.h
+i386/i386/ast_check.c
+i386/i386/ast_types.h
+i386/i386/cpu_number.h
+i386/i386/cswitch.S
+i386/i386/db_disasm.c
+i386/i386/db_interface.c
+i386/i386/db_machdep.h
+i386/i386/db_trace.c
+i386/i386/debug.h
+i386/i386/debug_i386.c
+i386/i386/debug_trace.S
+i386/i386/eflags.h
+i386/i386/fpu.c
+i386/i386/fpe.b
+i386/i386/fpe.b_elf
+i386/i386/fpe_linkage.c
+i386/i386/fpu.h
+i386/i386/gdt.c
+i386/i386/gdt.h
+i386/i386/hardclock.c
+i386/i386/i386asm.sym
+i386/i386/idt-gen.h
+i386/i386/idt.c
+i386/i386/idt_inittab.S
+i386/i386/io_emulate.c
+i386/i386/io_emulate.h
+i386/i386/io_map.c
+i386/i386/io_port.h
+i386/i386/iopb.c
+i386/i386/iopb.h
+i386/i386/ipl.h
+i386/i386/ktss.c
+i386/i386/ktss.h
+i386/i386/ldt.c
+i386/i386/kttd_interface.c
+i386/i386/kttd_machdep.h
+i386/i386/ldt.h
+i386/i386/lock.h
+i386/i386/locore.S
+i386/i386/loose_ends.c
+i386/i386/mach_i386.srv
+i386/i386/mach_param.h
+i386/i386/machine_routines.h
+i386/i386/machspl.h
+i386/i386/mp_desc.c
+i386/i386/mp_desc.h
+i386/i386/pcb.c
+i386/i386/phys.c
+i386/i386/pic.c
+i386/i386/pic.h
+i386/i386/pio.h
+i386/i386/pit.c
+i386/i386/pit.h
+i386/i386/pmap.h
+i386/i386/proc_reg.h
+i386/i386/sched_param.h
+i386/i386/seg.c
+i386/i386/seg.h
+i386/i386/setjmp.h
+i386/i386/spl.S
+i386/i386/spl.h
+i386/i386/thread.h
+i386/i386/time_stamp.h
+i386/i386/timer.h
+i386/i386/trap.c
+i386/i386/trap.h
+i386/i386/tss.h
+i386/i386/user_ldt.c
+i386/i386/user_ldt.h
+i386/i386/vm_param.h
+i386/i386/vm_tuning.h
+i386/i386/xpr.h
+i386/i386/zalloc.h
+i386/i386at/asm_startup.h
+i386/i386at/autoconf.c
+i386/i386at/blit.c
+i386/i386at/blitreg.h
+i386/i386at/blituser.h
+i386/i386at/blitvar.h
+i386/i386at/boothdr.S
+i386/i386at/com.c
+i386/i386at/comreg.h
+i386/i386at/conf.c
+i386/i386at/cram.h
+i386/i386at/cons_conf.c
+i386/i386at/dev_hdr.h
+i386/i386at/device_emul.h
+i386/i386at/disk.h
+i386/i386at/ds8390.h
+i386/i386at/eisa.h
+i386/i386at/fd.c
+i386/i386at/fdreg.h
+i386/i386at/i386at_ds_routines.c
+i386/i386at/i8250.h
+i386/i386at/i82586.h
+i386/i386at/idt.h
+i386/i386at/if_3c501.c
+i386/i386at/lpr.c
+i386/i386at/if_3c501.h
+i386/i386at/if_3c503.h
+i386/i386at/if_ne.c
+i386/i386at/if_de6c.c
+i386/i386at/if_de6c.h
+i386/i386at/if_de6s.S
+i386/i386at/if_nereg.h
+i386/i386at/if_ns8390.c
+i386/i386at/if_ns8390.h
+i386/i386at/if_par.c
+i386/i386at/if_par.h
+i386/i386at/if_pc586.c
+i386/i386at/if_pc586.h
+i386/i386at/if_wd8003.h
+i386/i386at/immc.c
+i386/i386at/int_init.c
+i386/i386at/interrupt.S
+i386/i386at/iopl.c
+i386/i386at/kd.c
+i386/i386at/kd.h
+i386/i386at/kd_event.c
+i386/i386at/kd_mouse.c
+i386/i386at/kd_queue.c
+i386/i386at/kd_queue.h
+i386/i386at/kdasm.S
+i386/i386at/kdsoft.h
+i386/i386at/gpl/if_hpp.c
+i386/i386at/gpl/if_ns.c
+i386/i386at/gpl/if_nsreg.h
+i386/i386at/gpl/if_ul.c
+i386/i386at/gpl/if_wd.c
+i386/i386at/gpl/linux/linux_autoirq.c
+i386/i386at/gpl/linux/linux_block.c
+i386/i386at/gpl/linux/linux_dma.c
+i386/i386at/gpl/linux/linux_emul.h
+i386/i386at/gpl/linux/linux_init.c
+i386/i386at/gpl/linux/linux_irq.c
+i386/i386at/gpl/linux/linux_kmem.c
+i386/i386at/gpl/linux/linux_misc.c
+i386/i386at/gpl/linux/linux_net.c
+i386/i386at/gpl/linux/linux_port.c
+i386/i386at/gpl/linux/linux_printk.c
+i386/i386at/gpl/linux/linux_sched.c
+i386/i386at/gpl/linux/linux_soft.c
+i386/i386at/gpl/linux/linux_timer.c
+i386/i386at/gpl/linux/linux_version.c
+i386/i386at/gpl/linux/linux_vsprintf.c
+i386/i386at/gpl/linux/block/cmd640.c
+i386/i386at/gpl/linux/block/floppy.c
+i386/i386at/gpl/linux/block/genhd.c
+i386/i386at/gpl/linux/block/ide-cd.c
+i386/i386at/gpl/linux/block/ide.c
+i386/i386at/gpl/linux/block/ide.h
+i386/i386at/gpl/linux/block/ide_modes.h
+i386/i386at/gpl/linux/block/rz1000.c
+i386/i386at/gpl/linux/block/triton.c
+i386/i386at/gpl/linux/include/asm/bitops.h
+i386/i386at/gpl/linux/include/asm/byteorder.h
+i386/i386at/gpl/linux/include/asm/delay.h
+i386/i386at/gpl/linux/include/asm/errno.h
+i386/i386at/gpl/linux/include/asm/dma.h
+i386/i386at/gpl/linux/include/asm/fcntl.h
+i386/i386at/gpl/linux/include/asm/floppy.h
+i386/i386at/gpl/linux/include/asm/io.h
+i386/i386at/gpl/linux/include/asm/irq.h
+i386/i386at/gpl/linux/include/asm/ioctl.h
+i386/i386at/gpl/linux/include/asm/page.h
+i386/i386at/gpl/linux/include/asm/param.h
+i386/i386at/gpl/linux/include/asm/processor.h
+i386/i386at/gpl/linux/include/asm/ptrace.h
+i386/i386at/gpl/linux/include/asm/resource.h
+i386/i386at/gpl/linux/include/asm/segment.h
+i386/i386at/gpl/linux/include/asm/sigcontext.h
+i386/i386at/gpl/linux/include/asm/signal.h
+i386/i386at/gpl/linux/include/asm/socket.h
+i386/i386at/gpl/linux/include/asm/stat.h
+i386/i386at/gpl/linux/include/asm/statfs.h
+i386/i386at/gpl/linux/include/asm/string.h
+i386/i386at/gpl/linux/include/asm/system.h
+i386/i386at/gpl/linux/include/asm/termios.h
+i386/i386at/gpl/linux/include/asm/types.h
+i386/i386at/gpl/linux/include/asm/unistd.h
+i386/i386at/gpl/linux/include/linux/autoconf.h
+i386/i386at/gpl/linux/include/linux/binfmts.h
+i386/i386at/gpl/linux/include/linux/bios32.h
+i386/i386at/gpl/linux/include/linux/blk.h
+i386/i386at/gpl/linux/include/linux/blkdev.h
+i386/i386at/gpl/linux/include/linux/cdrom.h
+i386/i386at/gpl/linux/include/linux/config.h
+i386/i386at/gpl/linux/include/linux/delay.h
+i386/i386at/gpl/linux/include/linux/errno.h
+i386/i386at/gpl/linux/include/linux/etherdevice.h
+i386/i386at/gpl/linux/include/linux/fcntl.h
+i386/i386at/gpl/linux/include/linux/fd.h
+i386/i386at/gpl/linux/include/linux/fdreg.h
+i386/i386at/gpl/linux/include/linux/fs.h
+i386/i386at/gpl/linux/include/linux/genhd.h
+i386/i386at/gpl/linux/include/linux/hdreg.h
+i386/i386at/gpl/linux/include/linux/head.h
+i386/i386at/gpl/linux/include/linux/if.h
+i386/i386at/gpl/linux/include/linux/if_arp.h
+i386/i386at/gpl/linux/include/linux/if_ether.h
+i386/i386at/gpl/linux/include/linux/if_tr.h
+i386/i386at/gpl/linux/include/linux/igmp.h
+i386/i386at/gpl/linux/include/linux/in.h
+i386/i386at/gpl/linux/include/linux/interrupt.h
+i386/i386at/gpl/linux/include/linux/inet.h
+i386/i386at/gpl/linux/include/linux/ioctl.h
+i386/i386at/gpl/linux/include/linux/ioport.h
+i386/i386at/gpl/linux/include/linux/ip.h
+i386/i386at/gpl/linux/include/linux/ipc.h
+i386/i386at/gpl/linux/include/linux/kdev_t.h
+i386/i386at/gpl/linux/include/linux/kernel.h
+i386/i386at/gpl/linux/include/linux/kernel_stat.h
+i386/i386at/gpl/linux/include/linux/limits.h
+i386/i386at/gpl/linux/include/linux/linkage.h
+i386/i386at/gpl/linux/include/linux/locks.h
+i386/i386at/gpl/linux/include/linux/major.h
+i386/i386at/gpl/linux/include/linux/malloc.h
+i386/i386at/gpl/linux/include/linux/math_emu.h
+i386/i386at/gpl/linux/include/linux/mc146818rtc.h
+i386/i386at/gpl/linux/include/linux/minix_fs.h
+i386/i386at/gpl/linux/include/linux/minix_fs_sb.h
+i386/i386at/gpl/linux/include/linux/mm.h
+i386/i386at/gpl/linux/include/linux/module.h
+i386/i386at/gpl/linux/include/linux/net.h
+i386/i386at/gpl/linux/include/linux/mount.h
+i386/i386at/gpl/linux/include/linux/netdevice.h
+i386/i386at/gpl/linux/include/linux/nfs.h
+i386/i386at/gpl/linux/include/linux/notifier.h
+i386/i386at/gpl/linux/include/linux/pagemap.h
+i386/i386at/gpl/linux/include/linux/param.h
+i386/i386at/gpl/linux/include/linux/pci.h
+i386/i386at/gpl/linux/include/linux/personality.h
+i386/i386at/gpl/linux/include/linux/proc_fs.h
+i386/i386at/gpl/linux/include/linux/ptrace.h
+i386/i386at/gpl/linux/include/linux/resource.h
+i386/i386at/gpl/linux/include/linux/quota.h
+i386/i386at/gpl/linux/include/linux/route.h
+i386/i386at/gpl/linux/include/linux/sched.h
+i386/i386at/gpl/linux/include/linux/scsicam.h
+i386/i386at/gpl/linux/include/linux/scsi.h
+i386/i386at/gpl/linux/include/linux/sem.h
+i386/i386at/gpl/linux/include/linux/signal.h
+i386/i386at/gpl/linux/include/linux/skbuff.h
+i386/i386at/gpl/linux/include/linux/smp.h
+i386/i386at/gpl/linux/include/linux/socket.h
+i386/i386at/gpl/linux/include/linux/sockios.h
+i386/i386at/gpl/linux/include/linux/stat.h
+i386/i386at/gpl/linux/include/linux/stddef.h
+i386/i386at/gpl/linux/include/linux/string.h
+i386/i386at/gpl/linux/include/linux/tasks.h
+i386/i386at/gpl/linux/include/linux/tcp.h
+i386/i386at/gpl/linux/include/linux/termios.h
+i386/i386at/gpl/linux/include/linux/time.h
+i386/i386at/gpl/linux/include/linux/timer.h
+i386/i386at/gpl/linux/include/linux/tqueue.h
+i386/i386at/gpl/linux/include/linux/trdevice.h
+i386/i386at/gpl/linux/include/linux/tty.h
+i386/i386at/gpl/linux/include/linux/tty_driver.h
+i386/i386at/gpl/linux/include/linux/tty_ldisc.h
+i386/i386at/gpl/linux/include/linux/types.h
+i386/i386at/gpl/linux/include/linux/uio.h
+i386/i386at/gpl/linux/include/linux/unistd.h
+i386/i386at/gpl/linux/include/linux/utsname.h
+i386/i386at/gpl/linux/include/linux/version.h
+i386/i386at/gpl/linux/include/linux/vfs.h
+i386/i386at/gpl/linux/include/linux/vm86.h
+i386/i386at/gpl/linux/include/linux/wait.h
+i386/i386at/gpl/linux/include/net/af_unix.h
+i386/i386at/gpl/linux/include/net/arp.h
+i386/i386at/gpl/linux/include/net/atalkcall.h
+i386/i386at/gpl/linux/include/net/ax25.h
+i386/i386at/gpl/linux/include/net/ax25call.h
+i386/i386at/gpl/linux/include/net/checksum.h
+i386/i386at/gpl/linux/include/net/datalink.h
+i386/i386at/gpl/linux/include/net/icmp.h
+i386/i386at/gpl/linux/include/net/ip.h
+i386/i386at/gpl/linux/include/net/ip_alias.h
+i386/i386at/gpl/linux/include/net/ip_forward.h
+i386/i386at/gpl/linux/include/net/ipip.h
+i386/i386at/gpl/linux/include/net/ipx.h
+i386/i386at/gpl/linux/include/net/ipxcall.h
+i386/i386at/gpl/linux/include/net/netlink.h
+i386/i386at/gpl/linux/include/net/netrom.h
+i386/i386at/gpl/linux/include/net/nrcall.h
+i386/i386at/gpl/linux/include/net/p8022.h
+i386/i386at/gpl/linux/include/net/p8022call.h
+i386/i386at/gpl/linux/include/net/protocol.h
+i386/i386at/gpl/linux/include/net/psnap.h
+i386/i386at/gpl/linux/include/net/psnapcall.h
+i386/i386at/gpl/linux/include/net/rarp.h
+i386/i386at/gpl/linux/include/net/raw.h
+i386/i386at/gpl/linux/include/net/route.h
+i386/i386at/gpl/linux/include/net/slhc.h
+i386/i386at/gpl/linux/include/net/snmp.h
+i386/i386at/gpl/linux/include/net/sock.h
+i386/i386at/gpl/linux/include/net/tcp.h
+i386/i386at/gpl/linux/include/net/udp.h
+i386/i386at/gpl/linux/net/3c501.c
+i386/i386at/gpl/linux/net/3c503.c
+i386/i386at/gpl/linux/net/3c503.h
+i386/i386at/gpl/linux/net/3c505.c
+i386/i386at/gpl/linux/net/3c505.h
+i386/i386at/gpl/linux/net/3c507.c
+i386/i386at/gpl/linux/net/3c509.c
+i386/i386at/gpl/linux/net/3c59x.c
+i386/i386at/gpl/linux/net/8390.c
+i386/i386at/gpl/linux/net/8390.h
+i386/i386at/gpl/linux/net/Space.c
+i386/i386at/gpl/linux/net/ac3200.c
+i386/i386at/gpl/linux/net/apricot.c
+i386/i386at/gpl/linux/net/at1700.c
+i386/i386at/gpl/linux/net/atp.c
+i386/i386at/gpl/linux/net/atp.h
+i386/i386at/gpl/linux/net/de4x5.c
+i386/i386at/gpl/linux/net/de4x5.h
+i386/i386at/gpl/linux/net/de620.h
+i386/i386at/gpl/linux/net/de600.c
+i386/i386at/gpl/linux/net/de620.c
+i386/i386at/gpl/linux/net/depca.c
+i386/i386at/gpl/linux/net/depca.h
+i386/i386at/gpl/linux/net/dev.c
+i386/i386at/gpl/linux/net/e2100.c
+i386/i386at/gpl/linux/net/eepro.c
+i386/i386at/gpl/linux/net/eexpress.c
+i386/i386at/gpl/linux/net/eth16i.c
+i386/i386at/gpl/linux/net/ewrk3.c
+i386/i386at/gpl/linux/net/ewrk3.h
+i386/i386at/gpl/linux/net/hp-plus.c
+i386/i386at/gpl/linux/net/hp.c
+i386/i386at/gpl/linux/net/hp100.c
+i386/i386at/gpl/linux/net/hp100.h
+i386/i386at/gpl/linux/net/i82586.h
+i386/i386at/gpl/linux/net/iow.h
+i386/i386at/gpl/linux/net/lance.c
+i386/i386at/gpl/linux/net/ne.c
+i386/i386at/gpl/linux/net/net_init.c
+i386/i386at/gpl/linux/net/ni52.c
+i386/i386at/gpl/linux/net/ni52.h
+i386/i386at/gpl/linux/net/ni65.c
+i386/i386at/gpl/linux/net/ni65.h
+i386/i386at/gpl/linux/net/seeq8005.c
+i386/i386at/gpl/linux/net/seeq8005.h
+i386/i386at/gpl/linux/net/smc-ultra.c
+i386/i386at/gpl/linux/net/sk_g16.c
+i386/i386at/gpl/linux/net/sk_g16.h
+i386/i386at/gpl/linux/net/tulip.c
+i386/i386at/gpl/linux/net/wavelan.c
+i386/i386at/gpl/linux/net/wavelan.h
+i386/i386at/gpl/linux/net/wd.c
+i386/i386at/gpl/linux/net/znet.c
+i386/i386at/gpl/linux/pci/bios32.c
+i386/i386at/gpl/linux/pci/pci.c
+i386/i386at/gpl/linux/scsi/53c7,8xx.c
+i386/i386at/gpl/linux/scsi/53c7,8xx.h
+i386/i386at/gpl/linux/scsi/53c8xx_d.h
+i386/i386at/gpl/linux/scsi/53c8xx_u.h
+i386/i386at/gpl/linux/scsi/BusLogic.c
+i386/i386at/gpl/linux/scsi/AM53C974.c
+i386/i386at/gpl/linux/scsi/AM53C974.h
+i386/i386at/gpl/linux/scsi/BusLogic.h
+i386/i386at/gpl/linux/scsi/constants.c
+i386/i386at/gpl/linux/scsi/NCR5380.h
+i386/i386at/gpl/linux/scsi/NCR5380.src
+i386/i386at/gpl/linux/scsi/NCR53c406a.c
+i386/i386at/gpl/linux/scsi/NCR53c406a.h
+i386/i386at/gpl/linux/scsi/advansys.c
+i386/i386at/gpl/linux/scsi/advansys.h
+i386/i386at/gpl/linux/scsi/aha152x.c
+i386/i386at/gpl/linux/scsi/aha152x.h
+i386/i386at/gpl/linux/scsi/aha1542.c
+i386/i386at/gpl/linux/scsi/aha1542.h
+i386/i386at/gpl/linux/scsi/aha1740.c
+i386/i386at/gpl/linux/scsi/aha1740.h
+i386/i386at/gpl/linux/scsi/aic7xxx.c
+i386/i386at/gpl/linux/scsi/aic7xxx.h
+i386/i386at/gpl/linux/scsi/aic7xxx_proc.src
+i386/i386at/gpl/linux/scsi/aic7xxx_reg.h
+i386/i386at/gpl/linux/scsi/aic7xxx_seq.h
+i386/i386at/gpl/linux/scsi/constants.h
+i386/i386at/gpl/linux/scsi/eata.c
+i386/i386at/gpl/linux/scsi/eata.h
+i386/i386at/gpl/linux/scsi/eata_dma.c
+i386/i386at/gpl/linux/scsi/eata_dma.h
+i386/i386at/gpl/linux/scsi/eata_dma_proc.h
+i386/i386at/gpl/linux/scsi/eata_dma_proc.src
+i386/i386at/gpl/linux/scsi/eata_generic.h
+i386/i386at/gpl/linux/scsi/eata_pio.c
+i386/i386at/gpl/linux/scsi/eata_pio.h
+i386/i386at/gpl/linux/scsi/eata_pio_proc.src
+i386/i386at/gpl/linux/scsi/in2000.c
+i386/i386at/gpl/linux/scsi/fdomain.c
+i386/i386at/gpl/linux/scsi/fdomain.h
+i386/i386at/gpl/linux/scsi/g_NCR5380.c
+i386/i386at/gpl/linux/scsi/g_NCR5380.h
+i386/i386at/gpl/linux/scsi/hosts.c
+i386/i386at/gpl/linux/scsi/hosts.h
+i386/i386at/gpl/linux/scsi/pas16.c
+i386/i386at/gpl/linux/scsi/in2000.h
+i386/i386at/gpl/linux/scsi/pas16.h
+i386/i386at/gpl/linux/scsi/qlogic.c
+i386/i386at/gpl/linux/scsi/qlogic.h
+i386/i386at/gpl/linux/scsi/scsi.h
+i386/i386at/gpl/linux/scsi/scsi.c
+i386/i386at/gpl/linux/scsi/scsi_proc.c
+i386/i386at/gpl/linux/scsi/scsi_debug.c
+i386/i386at/gpl/linux/scsi/scsi_debug.h
+i386/i386at/gpl/linux/scsi/scsi_ioctl.c
+i386/i386at/gpl/linux/scsi/scsi_ioctl.h
+i386/i386at/gpl/linux/scsi/scsicam.c
+i386/i386at/gpl/linux/scsi/sd_ioctl.c
+i386/i386at/gpl/linux/scsi/sd.c
+i386/i386at/gpl/linux/scsi/sd.h
+i386/i386at/gpl/linux/scsi/seagate.c
+i386/i386at/gpl/linux/scsi/seagate.h
+i386/i386at/gpl/linux/scsi/sr.c
+i386/i386at/gpl/linux/scsi/sr.h
+i386/i386at/gpl/linux/scsi/sr_ioctl.c
+i386/i386at/gpl/linux/scsi/u14-34f.c
+i386/i386at/gpl/linux/scsi/t128.c
+i386/i386at/gpl/linux/scsi/t128.h
+i386/i386at/gpl/linux/scsi/u14-34f.h
+i386/i386at/gpl/linux/scsi/ultrastor.c
+i386/i386at/gpl/linux/scsi/ultrastor.h
+i386/i386at/gpl/linux/scsi/wd7000.c
+i386/i386at/gpl/linux/scsi/wd7000.h
+i386/i386at/lprreg.h
+i386/i386at/model_dep.c
+i386/i386at/nfd.c
+i386/i386at/nfdreg.h
+i386/i386at/nhd.c
+i386/i386at/nhdreg.h
+i386/i386at/phys_mem_grab_page.c
+i386/i386at/pic_isa.c
+i386/i386at/rtc.c
+i386/i386at/rtc.h
+i386/imps/Makefile.in
+i386/imps/apic.h
+i386/imps/cpu_number.h
+i386/imps/cpus.h
+i386/imps/imps.c
+i386/imps/impsasm.sym
+i386/include/Makefile.in
+i386/include/Makerules
+i386/include/mach/proc_ops.h
+i386/include/mach/setjmp.h
+i386/include/mach/machine
+i386/include/mach/sa/stdarg.h
+i386/include/mach/sa/sys/varargs.h
+i386/include/mach/i386/asm.h
+i386/include/mach/i386/bios.h
+i386/include/mach/i386/boolean.h
+i386/include/mach/i386/code16.h
+i386/include/mach/i386/cthreads.h
+i386/include/mach/i386/debug_reg.h
+i386/include/mach/i386/disk.h
+i386/include/mach/i386/dpmi.h
+i386/include/mach/i386/eflags.h
+i386/include/mach/i386/exception.h
+i386/include/mach/i386/far_ptr.h
+i386/include/mach/i386/fp_reg.h
+i386/include/mach/i386/ioccom.h
+i386/include/mach/i386/kern_return.h
+i386/include/mach/i386/mach_i386.defs
+i386/include/mach/i386/mach_i386_types.h
+i386/include/mach/i386/machine_types.defs
+i386/include/mach/i386/multiboot.h
+i386/include/mach/i386/paging.h
+i386/include/mach/i386/pio.h
+i386/include/mach/i386/pmode.h
+i386/include/mach/i386/proc_reg.h
+i386/include/mach/i386/rpc.h
+i386/include/mach/i386/seg.h
+i386/include/mach/i386/syscall_sw.h
+i386/include/mach/i386/thread_status.h
+i386/include/mach/i386/time_stamp.h
+i386/include/mach/i386/trap.h
+i386/include/mach/i386/tss.h
+i386/include/mach/i386/vcpi.h
+i386/include/mach/i386/vm_param.h
+i386/include/mach/i386/vm_types.h
+i386/include/mach/i386/exec/elf.h
+i386/intel/pmap.c
+i386/intel/pmap.h
+i386/intel/read_fault.c
+i386/pc/Makerules
+i386/pc/NOTES
+i386/pc/debug.h
+i386/pc/exit.c
+i386/pc/gdt.h
+i386/pc/gdt_sels.h
+i386/pc/ipl.h
+i386/pc/irq.h
+i386/pc/irq_list.h
+i386/pc/pc_asm.sym
+i386/pc/phys_mem.h
+i386/pc/phys_mem_add.c
+i386/pc/pic.c
+i386/pc/pic.h
+i386/pc/putchar.c
+i386/pc/real.h
+i386/pc/real_tss.c
+i386/pc/real_tss.h
+i386/pc/real_tss_def.S
+i386/pc/i16/i16_a20.c
+i386/pc/i16/i16_a20.h
+i386/pc/i16/i16_bios.h
+i386/pc/i16/i16_exit.c
+i386/pc/i16/i16_ext_mem.c
+i386/pc/i16/i16_init.c
+i386/pc/i16/i16_main.c
+i386/pc/i16/i16_pic.c
+i386/pc/i16/i16_putchar.c
+i386/pc/i16/i16_raw.c
+i386/pc/i16/i16_raw_test_a20.S
+i386/pc/i16/i16_real_int.S
+i386/pc/i16/i16_switch.h
+i386/pc/i16/phys_mem_collect.c
+i386/pc/i16/phys_mem_sources.h
+i386/pc/i16/raw_exit.c
+i386/pc/i16/raw_real_int.c
+i386/pc/rv86/config.h
+i386/pc/rv86/gdt_sels.h
+i386/pc/rv86/idt_irq_init.c
+i386/pc/rv86/rv86_real_int.c
+i386/pc/rv86/rv86_real_int_asm.S
+i386/pc/rv86/rv86_reflect_irq.S
+i386/pc/rv86/rv86_trap_handler.S
+i386/pc/rv86/trap_handler.S
+i386/util/Makerules
+i386/util/NOTES
+i386/util/anno.c
+i386/util/anno.h
+i386/util/cpu.h
+i386/util/cpu_subs.h
+i386/util/cpu_tables_init.c
+i386/util/cpu_tables_load.c
+i386/util/crtn.S
+i386/util/debug.h
+i386/util/gdt.c
+i386/util/gdt.h
+i386/util/gdt_sels.h
+i386/util/i386_asm.sym
+i386/util/idt.c
+i386/util/idt.h
+i386/util/idt_inittab.S
+i386/util/idt_inittab.h
+i386/util/ldt.h
+i386/util/trap.h
+i386/util/trap_asm.sym
+i386/util/trap_dump.c
+i386/util/trap_dump_die.c
+i386/util/trap_handler.S
+i386/util/trap_return.S
+i386/util/tss.c
+i386/util/tss.h
+i386/util/tss_dump.c
+i386/util/vm_param.h
+i386/util/i16/debug.h
+i386/util/i16/i16.h
+i386/util/i16/i16_die.c
+i386/util/i16/i16_gdt_init_temp.c
+i386/util/i16/i16_nanodelay.c
+i386/util/i16/i16_puts.c
+i386/util/i16/i16_writehex.c
+i386/Files
+i386/README-Drivers
+i386/Drivers.in
+i386/driverlist.in
+i386/configure
+i386/device-drivers.h.in
+i386/Subdirs
diff --git a/i386/Makefrag b/i386/Makefrag
index 23f5e856..fcab4703 100644
--- a/i386/Makefrag
+++ b/i386/Makefrag
@@ -7,16 +7,18 @@
DEFINES += -DCONTINUATIONS -DLINUX_DEV -D__ELF__ -Di386
# Source files for any i386 kernel
-i386at-files = autoconf.c blit.c com.c conf.c cons_conf.c fd.c \
+i386at-files = autoconf.c blit.c conf.c cons_conf.c fd.c rtc.c \
i386at_ds_routines.c immc.c int_init.c iopl.c kd.c kd_event.c \
- kd_mouse.c kd_queue.c lpr.c model_dep.c nfd.c nhd.c \
- phys_mem_grab_page.c pic_isa.c rtc.c
+ kd_mouse.c kd_queue.c model_dep.c phys_mem_grab_page.c pic_isa.c
i386-files = ast_check.c db_disasm.c db_interface.c db_trace.c debug_i386.c \
fpe_linkage.c fpu.c gdt.c hardclock.c idt.c io_emulate.c io_map.c \
iopb.c ktss.c kttd_interface.c ldt.c loose_ends.c mp_desc.c pcb.c \
phys.c pic.c pit.c seg.c trap.c user_ldt.c
intel-files = pmap.c read_fault.c
+# Drivers; not used in all kernel, but only if selected.
+driver-files= com.c
+
# Assembler source
i386at-Sfiles = boothdr.S interrupt.S kdasm.S
i386-Sfiles = cswitch.S debug_trace.S idt_inittab.S locore.S spl.S
@@ -39,9 +41,6 @@ objfiles += mach_i386_server.o
### Linux device drivers (make this Better, Please)
-# instead of Mach's KERNEL, Linux uses __KERNEL__. Whee.
-DEFINES += -D__KERNEL__
-
linux-gen-files = $(addprefix linux_,$(linux-gen-names))
linux-gen-names = autoirq.c block.c dma.c init.c irq.c kmem.c misc.c net.c \
port.c printk.c sched.c soft.c timer.c version.c vsprintf.c
@@ -64,21 +63,53 @@ linux-scsi-files = 53c7,8xx.c AM53C974.c BusLogic.c NCR53c406a.c advansys.c \
sd_ioctl.c seagate.c sr.c sr_ioctl.c t128.c u14-34f.c \
ultrastor.c wd7000.c
-objfiles += $(subst .c,.o,$(linux-gen-files) $(linux-block-files) \
- $(linux-net-files) $(linux-pci-files) $(linux-scsi-files))
+all-linux-files = $(linux-gen-files) $(linux-block-files) \
+ $(linux-net-files) $(linux-pci-files) $(linux-scsi-files)
+
+# These are always used.
+objfiles += $(subst .c,.o,$(filter-out linux_net.c,$(linux-gen-files)))
+objfiles += $(subst .c,.o,$(linux-pci-files)) genhd.o
+
vpath %.c $(sysdep)/i386at/gpl/linux $(sysdep)/i386at/gpl/linux/block
vpath %.c $(sysdep)/i386at/gpl/linux/net $(sysdep)/i386at/gpl/linux/pci
vpath %.c $(sysdep)/i386at/gpl/linux/scsi
+# These files need special flags for compilation; each one will
+# have a variable like wd7000.c-linux-flags with those flags.
+CFLAGS += $($(<F)-linux-flags)
+
+# These flags are:
+# Instead of Mach's KERNEL, Linux uses __KERNEL__. Whee.
+# Arrange for special include directories too.
# Because of the use of `extern inline' in some Linux header files without
# corresponding text-segment definitions, we must always optimize.
-CFLAGS += -O2
+linux-spec-flags= -D__KERNEL__ -I$(sysdep)/i386at/gpl/linux \
+ -I$(sysdep)/i386at/gpl/linux/include -O2
+
+# Here is where those specs are found.
+include linux-flags
+
+# How to make this file:
+
+linux-flags: $(sysdep)/Makefrag
+ rm -f $@
+ for i in $(all-linux-files); do \
+ echo $$i-linux-flags '= $$(linux-spec-flags)' >> $@; \
+ done
+ echo 'linux-flags-done='$(all-linux-files) >> $@
+
+# If we haven't included `linux-flags' properly, then don't try and build
+# .d files.
+ifneq ($(linux-flags-done),$(all-linux-files))
+no_deps=t
+endif
### End Linux device drivers grot
-# XXX Temporary
-i386at_ds_routines.o: device_interface.h
+
+include i386/driverlist
+objfiles += $(device_drivers)
@@ -93,10 +124,8 @@ objfiles := boothdr.o $(filter-out boothdr.o,$(objfiles))
INCLUDES := -I$(sysdep)/i386at -I$(sysdep)/i386 \
-I$(sysdep)/include -I$(sysdep)/include/mach/sa \
-I$(sysdep)/bogus -I$(sysdep) \
- -I$(sysdep)/i386at/gpl/linux -I$(sysdep)/i386at/gpl/linux/include \
$(INCLUDES)
-
# arrange suitable load address
LDFLAGS += -Ttext 100000
@@ -105,7 +134,25 @@ ASFLAGS += -DASSEMBLER
boothdr.o: i386asm.h
+
+# Header files we install
+
+# We have our own version of this file
+installed-headers := $(filter-out mach/proc_ops.h,$(installed-headers))
+
+i386-installed-headers= mach/proc_ops.h \
+ $(addprefix mach/i386/,asm.h bios.h boolean.h code16.h \
+ debug_reg.h disk.h dpmi.h eflags.h exception.h far_ptr.h \
+ fp_reg.h ioccom.h kern_return.h mach_i386.defs \
+ mach_i386_types.h machine_types.defs multiboot.h paging.h \
+ pio.h pmode.h proc_reg.h rpc.h seg.h syscall_sw.h \
+ thread_status.h time_stamp.h trap.h tss.h vcpi.h vm_param.h \
+ vm_types.h)
+
+
# Cheat, cheat, cheat.
fpe.o: fpe.b_elf
uudecode $<
vpath fpe.b_elf $(sysdep)/i386
+
+fpe.d:; touch $@ \ No newline at end of file
diff --git a/i386/README-Drivers b/i386/README-Drivers
new file mode 100644
index 00000000..bb2f5211
--- /dev/null
+++ b/i386/README-Drivers
@@ -0,0 +1,299 @@
+Adaptec 1740
+Patch probe routine to add outb to put card in enhanced mode.
+
+-*- text -*-
+
+** Turning on or off device drivers
+
+Each device driver has an associated configure switch. The table at
+the end of this file gives the list of configure switches. For many
+devices there are multiple drivers to choose from.
+
+
+** What the configure switches do
+
+Each configure switch has two effects. First, it defines a CPP symbol
+that turns on or off the hooks that autoconfigure the device and add
+it to the list of available devices. Second, it adds the source code
+for the driver to a make variable so that the code for the driver is
+compiled and linked into the kernel.
+
+
+** What are those extra numbers
+
+Each driver is followed by one or more triplets of three numbers.
+These triplets specify combinations of I/O address, spl, and, pic that
+are believed to work.
+
+
+** Then comes the name of the device to users. %d is a unit number.
+
+
+***
+
+All source file names are relative to .../gnumach/i386/i386at for Mach
+drivers, and .../gnumach/i386/i386at/gpl/linux for Linux drivers.
+
+
+*** Serial devices and similar equivalents
+
+PC com ports
+ --enable-com com.c
+ 0x3f8,2f8,3e8
+ com%d
+
+System Console (always enabled)
+ (indirect name for kd or first com line)
+ console
+
+PC keyboard/display (always enabled)
+ kd
+
+
+*** Special devices
+
+Mappable time device (always enabled)
+ time
+
+Mouse interface to PC (always enabled)
+ (Piggy backs horribly on COM devices)
+ mouse%d
+
+X Window System interface to keyboard (always enabled)
+ kbd%d
+
+Interface to setting up IO port access for users (always enabled)
+ iopl%d
+
+
+
+*** Disk controllers (except for SCSI)
+
+PC floppy
+ --enable-floppy block/floppy.c
+ 0x3f0, 370
+ fd%d
+
+IDE disks
+ --enable-ide block/{cmd640,ide-cd,ide,rz1000,triton}.c
+ hd%d (disks)
+ wcd%d (cdroms)
+
+
+*** SCSI disks Disks all show up as `sd%d'. CD Roms all show up as
+`cd%d'. Tapes and generic are not currently supported.
+
+AdvansSys
+ --enable-advansys scsi/advansys.c
+
+BusLogic MultiMaster
+ --enable-buslogic scsi/BusLogic.c
+
+UltraStor 14F/34F
+ --enable-u1434f scsi/u14-34f.c
+
+UlstraStor 14F, 24F, and 34F
+ --enable-ultrastor scsi/ultrastor.c
+
+Adaptec AHA-152x
+ --enable-aha152x scsi/aha152x.c
+
+Adaptec AHA-1542
+ --enable-aha1542 scsi/aha1540.c
+
+Adaptec AHA-1740
+ --enable-aha1740 scsi/aha1740.c
+
+Adaptec AIC7xxx
+ --enable-aic7xxx scsi/aic7xxx.c
+
+Future Domain TMC-16x0
+ --enable-futuredomain scsi/fdomain.c
+
+Always IN 2000
+ --enable-in2000 scsi/in2000.c
+
+Generic NCR5380
+ --enable-ncr5380 scsi/g_NCR5380.c
+
+NCR53c406 chip
+ --enable-ncr53c406a scsi/NCR53c406a.c
+
+Qlogic FAS408
+ --enable-qlogic scsi/qlogic.c
+
+Pro Audio Spectrum/Studio 16
+ --enable-pas16 scsi/pas16.c
+
+Seagate ST01, ST02, Future Domain TMC-885, TMC-950
+ --enable-seagate scsi/seagate.c
+
+Trantor T128, T128F, T228
+ --enable-t128 scsi/t128.c
+
+NCR 53C7xx
+ --enable-ncr53c7xx scsi/53c7,8xx.c
+
+EATA DMA
+ --enable-eatadma scsi/eata_dma.c
+
+EATA PIO
+ --enable-eatapio scsi/eata_pio.c
+
+WD 7000
+ --enable-wd7000 scsi/wd7000.c
+
+EATA
+ --enable-eata scsi/eata.c
+
+AM52/79C974
+ --enable-am53c974 scsi/AM53C974.c
+
+
+
+*** Ethernet controllers
+These all show up as `eth%d' except the atp device.
+
+NE2000
+ --enable-ne2000 net/ne.c 8390.c
+ 0x300,280,320,340,360
+
+3Com 503 (Etherlink II)
+ --enable-3c503 net/3c503.c net/8390.c
+ --enable-el2
+ 0x300,310,330,350,250,280,2a0,2e0
+
+3Com 509 (Etherlink III)
+ --enable-3c509 net/3c509.c
+ --enable-el3
+
+Western Digital 8003E
+ --enable-wd80x3 net/wd.c, net/8390.c
+ 0x300,280,380,240
+
+3COM Etherlink 3C501
+ --enable-3c501 net/3c501.c
+ --enable-el1
+ 0x280, 300
+
+SMC Ultra
+ --enable-ul net/smc-ultra.c net/8390.c
+ 0x200,220,240,280,300,340,380
+
+Hewlett Packard PC LAN 27??? plus ethercards.
+ --enable-hplanplus net/hp-plus.c
+ 0x200,240,280,2c0,300,320,340
+
+Hewlett Packard PC Lan
+ --enable-hplan net/hp.c, net/8390.c
+ 0x300,320,340,280,2c0,200,240
+
+3Com 3c590/3c595 Vortex
+ --enable-3c59x
+ --enable-vortex net/3c59x.c
+
+Seeq 8005
+ --enable-seeq8005 net/seeq8005.c
+ 0x300,320,340,360
+
+Hewlett Packard HP10/100 cards net/hp100.c
+ --enable-hp100
+ --enable-hpj2577
+ --enable-hpj2573
+ --enable-hp27248b
+ --enable-hp2585
+
+Ansel Communications EISA 3200
+ --enable-ac3200 net/ac3200.c, net/8390.c
+
+Cabletron E2100 series
+ --enable-e2100 net/e2100.c, net/8390.c
+ 0x300,280,380,220
+
+Allied Telesis AT1700
+ --enable-at1700 net/at1700.c
+ 0x260,280,2a0,240,340,320,380,300
+
+ECL EtherTeam 16i and 32 EISA
+ --enable-eth16i net/eth16i.c
+ --enable-eth32
+ 0x260,280,2a0,240,340,320,380,300 (16i)
+
+Zenith Z-Note (and some IBM thinkpads)
+ --enable-znet net/znet.c
+ --enable-znote
+
+Intel EtherExpress
+ --enable-eexpress net/eexpress.c
+ 0x300,270,320,340
+
+Intel EtherExpress Pro/10
+ --enable-eexpresspro net/eepro.c
+ 0x200,240,280,2c0,300,320,340,360
+
+Digital DEPCA and EtherWORKS
+ (DEPCA, DE10[01], DE20[012] Turbo, DE210, DE422)
+ --enable-depca net/depca.c
+ --enable-de100
+ --enable-de101
+ --enable-de200
+ --enable-de201
+ --enable-de202
+ --enable-de210
+ --enable-de422
+
+EtherWORKS 3 Driver
+ (DE20[345])
+ --enable-ewrk3 net/ewrk3.c
+ --enable-de203
+ --enable-de204
+ --enable-de205
+
+Digital DE 400 series cards: DE425, DE43[45], DE500
+ --enable-de4x5 net/de4x5.c
+ --enable-de425
+ --enable-de434
+ --enable-de435
+ --enable-de500
+
+Apricot 82596
+ --enable-apricot net/apricot.c
+
+AT&T GIS (NCR) WaveLAN
+ --enable-wavelan net/wavelan.c
+ 0x390
+
+3Com 507 EtherLink16
+ --enable-3c507 net/3c507.c
+ --enable-el16
+ 0x300,320,340,280
+
+3Com 505 Etherlink Plus
+ --enable-3c505 net/3c505.c
+ --enable-elplus
+ 0x300,280,310
+
+D-Link DE-600
+ --enable-de600 net/de600.c
+ 0x378
+
+D-Link DE-620
+ --enable-de620 net/de620.c
+ 0x378
+
+Schneider & Koch G16
+ --enable-skg16 net/sk_g16.c
+ 0x100,180,208,220,288,320,328,390
+
+NI5210
+ --enable-ni52 net/ni52.c
+ 0x300,280,360,320,340
+
+NI6510
+ --enable-ni65 net/ni65.c
+ 0x300/320/340/360
+
+Run-time ATtachable (Pocket) ethernet driver
+ --enable-atp net/atp.c
+ 0x378,278,3bc
+ atp%d
diff --git a/i386/Subdirs b/i386/Subdirs
new file mode 100644
index 00000000..7f05b6ee
--- /dev/null
+++ b/i386/Subdirs
@@ -0,0 +1,31 @@
+i386/aux
+i386/bogus
+i386/chips
+i386/dos
+i386/dos/i16
+i386/i386
+i386/i386at
+i386/i386at/gpl
+i386/i386at/gpl/linux
+i386/i386at/gpl/linux/block
+i386/i386at/gpl/linux/include
+i386/i386at/gpl/linux/include/asm
+i386/i386at/gpl/linux/include/linux
+i386/i386at/gpl/linux/include/net
+i386/i386at/gpl/linux/net
+i386/i386at/gpl/linux/pci
+i386/i386at/gpl/linux/scsi
+i386/i386at/boot
+i386/imps
+i386/include
+i386/include/mach
+i386/include/mach/sa
+i386/include/mach/sa/sys
+i386/include/mach/i386
+i386/include/mach/i386/exec
+i386/intel
+i386/pc
+i386/pc/i16
+i386/pc/rv86
+i386/util
+i386/util/i16
diff --git a/i386/bogus/com.h b/i386/bogus/com.h
index 11832d40..ec56981c 100644
--- a/i386/bogus/com.h
+++ b/i386/bogus/com.h
@@ -1 +1,7 @@
+#include <i386/device-drivers.h>
+
+#ifdef CONFIG_MACH_COM
#define NCOM 4
+#else
+#define NCOM 0
+#endif
diff --git a/i386/device-drivers.h.in b/i386/device-drivers.h.in
new file mode 100644
index 00000000..f09fe08d
--- /dev/null
+++ b/i386/device-drivers.h.in
@@ -0,0 +1,59 @@
+/* All possible device drivers; must match Drivers.in. */
+
+#undef CONFIG_SCSI
+#undef CONFIG_INET
+#undef CONFIG_MACH_COM
+#undef CONFIG_BLK_DEV_FD
+#undef CONFIG_BLK_DEV_IDE
+#undef CONFIG_SCSI_ADVANSYS
+#undef CONFIG_SCSI_BUSLOGIC
+#undef CONFIG_SCSI_U14_34F
+#undef CONFIG_SCSI_ULTRASTOR
+#undef CONFIG_SCSI_AHA152X
+#undef CONFIG_SCSI_AHA1542
+#undef CONFIG_SCSI_AHA1740
+#undef CONFIG_SCSI_AIC7XXX
+#undef CONFIG_SCSI_FUTURE_DOMAIN
+#undef CONFIG_SCSI_IN2000
+#undef CONFIG_SCSI_GENERIC_NCR5380
+#undef CONFIG_SCSI_NCR53C406A
+#undef CONFIG_SCSI_QLOGIC
+#undef CONFIG_SCSI_PASS16
+#undef CONFIG_SCSI_SEAGATE
+#undef CONFIG_SCSI_T128
+#undef CONFIG_SCSI_NCR53C7xx
+#undef CONFIG_SCSI_EATA_DMA
+#undef CONFIG_SCSI_EATA_PIO
+#undef CONFIG_SCSI_7000FASST
+#undef CONFIG_SCSI_EATA
+#undef CONFIG_SCSI_AM53C974
+#undef CONFIG_NE2000
+#undef CONFIG_EL2
+#undef CONFIG_WD80x3
+#undef CONFIG_EL1
+#undef CONFIG_ULTRA
+#undef CONFIG_HPLAN_plus
+#undef CONFIG_HPLAN
+#undef CONFIG_VORTEX
+#undef CONFIG_SEEQ8005
+#undef CONFIG_HP100
+#undef CONFIG_AC3200
+#undef CONFIG_E2100
+#undef CONFIG_AT1700
+#undef CONFIG_ETH16I
+#undef CONFIG_ZNET
+#undef CONFIG_EEXPRESS
+#undef CONFIG_EEXPRESS_PRO
+#undef CONFIG_DEPCA
+#undef CONFIG_EWRK3
+#undef CONFIG_DE4X5
+#undef CONFIG_APRICOT
+#undef CONFIG_WAVELAN
+#undef CONFIG_EL16
+#undef CONFIG_ELPLUS
+#undef CONFIG_DE600
+#undef CONFIG_DE620
+#undef CONFIG_SK_G16
+#undef CONFIG_NI52
+#undef CONFIG_NI65
+#undef CONFIG_ATP
diff --git a/i386/driverlist.in b/i386/driverlist.in
new file mode 100644
index 00000000..b1d5f8f4
--- /dev/null
+++ b/i386/driverlist.in
@@ -0,0 +1 @@
+device_drivers = @device_drivers@
diff --git a/i386/i386/locore.S b/i386/i386/locore.S
index 8bc5d5e0..75f20b0b 100644
--- a/i386/i386/locore.S
+++ b/i386/i386/locore.S
@@ -1705,9 +1705,12 @@ tenmicroloop:
* cpu_shutdown()
* Force reboot
*/
+null_idt:
+ .space 8 * 32
+
null_idtr:
- .word 0
- .long 0
+ .word 8 * 32 - 1
+ .long null_idt
Entry(cpu_shutdown)
lidt null_idtr /* disable the interrupt handler */
diff --git a/i386/i386/pit.c b/i386/i386/pit.c
index 3ae14870..d0f3f9c0 100644
--- a/i386/i386/pit.c
+++ b/i386/i386/pit.c
@@ -144,8 +144,8 @@ findspeed()
*/
/* we arrange calculation so that it doesn't overflow */
delaycount = ((COUNT/1000) * CLKNUM) / (0xffff-leftover);
- printf("findspeed: delaycount=%d (tics=%d)\n",
- delaycount, (0xffff-leftover));
+ /* printf("findspeed: delaycount=%d (tics=%d)\n",
+ delaycount, (0xffff-leftover));*/
splon(s); /* restore interrupt state */
}
diff --git a/i386/i386at/com.c b/i386/i386at/com.c
index 113387f2..6d7972d2 100644
--- a/i386/i386at/com.c
+++ b/i386/i386at/com.c
@@ -173,7 +173,7 @@ comprobe_general(struct bus_device *dev, int noisy)
int
comprobe(int port, struct bus_device *dev)
{
- return comprobe_general(dev, /*noisy*/ 1);
+ return comprobe_general(dev, /*noisy*/ 0);
}
#if RCLINE >= 0
diff --git a/i386/i386at/gpl/linux/block/genhd.c b/i386/i386at/gpl/linux/block/genhd.c
index 60cba6c1..cebc7eaa 100644
--- a/i386/i386at/gpl/linux/block/genhd.c
+++ b/i386/i386at/gpl/linux/block/genhd.c
@@ -88,7 +88,7 @@ static void add_partition (struct gendisk *hd, int minor, int start, int size)
{
hd->part[minor].start_sect = start;
hd->part[minor].nr_sects = size;
- print_minor_name(hd, minor);
+ /* print_minor_name(hd, minor);*/
}
static inline int is_extended_partition(struct partition *p)
@@ -301,7 +301,7 @@ check_table:
continue;
add_partition(hd, minor, first_sector+START_SECT(p), NR_SECTS(p));
if (is_extended_partition(p)) {
- printk(" <");
+ /* printk(" <");*/
/*
* If we are rereading the partition table, we need
* to set the size of the partition so that we will
@@ -311,7 +311,7 @@ check_table:
hd->sizes[minor] = hd->part[minor].nr_sects
>> (BLOCK_SIZE_BITS - 9);
extended_partition(hd, MKDEV(hd->major, minor));
- printk(" >");
+ /* printk(" >");*/
/* prevent someone doing mkfs or mkswap on an
extended partition, but leave room for LILO */
if (hd->part[minor].nr_sects > 2)
@@ -332,7 +332,7 @@ check_table:
add_partition(hd, current_minor, START_SECT(p), NR_SECTS(p));
}
}
- printk("\n");
+ /* printk("\n");*/
brelse(bh);
return 1;
}
@@ -405,7 +405,7 @@ static int osf_partition(struct gendisk *hd, unsigned int dev, unsigned long fir
partition->p_size);
current_minor++;
}
- printk("\n");
+ /* printk("\n");*/
brelse(bh);
return 1;
}
@@ -475,7 +475,7 @@ static int sun_partition(struct gendisk *hd, unsigned int dev, unsigned long fir
add_partition(hd, current_minor, st_sector, p->num_sectors);
current_minor++;
}
- printk("\n");
+ /* printk("\n");*/
brelse(bh);
return 1;
}
@@ -487,8 +487,8 @@ static void check_partition(struct gendisk *hd, kdev_t dev)
static int first_time = 1;
unsigned long first_sector;
- if (first_time)
- printk("Partition check:\n");
+ /* if (first_time)
+ printk("Partition check:\n");*/
first_time = 0;
first_sector = hd->part[MINOR(dev)].start_sect;
@@ -501,8 +501,8 @@ static void check_partition(struct gendisk *hd, kdev_t dev)
return;
}
- printk(" ");
- print_minor_name(hd, MINOR(dev));
+ /* printk(" ");
+ print_minor_name(hd, MINOR(dev));*/
#ifdef CONFIG_MSDOS_PARTITION
if (msdos_partition(hd, dev, first_sector))
return;
diff --git a/i386/i386at/gpl/linux/block/triton.c b/i386/i386at/gpl/linux/block/triton.c
index 58296611..4f825f69 100644
--- a/i386/i386at/gpl/linux/block/triton.c
+++ b/i386/i386at/gpl/linux/block/triton.c
@@ -341,9 +341,13 @@ static void init_triton_dma (ide_hwif_t *hwif, unsigned short base)
{
static unsigned long dmatable = 0;
+#if 0
printk(" %s: BusMaster DMA at 0x%04x-0x%04x", hwif->name, base, base+7);
+#endif
if (check_region(base, 8)) {
+#if 0
printk(" -- ERROR, PORTS ALREADY IN USE");
+#endif
} else {
request_region(base, 8, "triton DMA");
hwif->dma_base = base;
@@ -362,7 +366,9 @@ static void init_triton_dma (ide_hwif_t *hwif, unsigned short base)
hwif->dmaproc = &triton_dmaproc;
}
}
+#if 0
printk("\n");
+#endif
}
/*
@@ -448,10 +454,12 @@ void ide_init_triton (byte bus, byte fn)
continue;
s_clks = ((~time >> 12) & 3) + 2;
r_clks = ((~time >> 8) & 3) + 1;
+#if 0
printk(" %s timing: (0x%04x) sample_CLKs=%d, recovery_CLKs=%d (PIO mode%d)\n",
hwif->name, time, s_clks, r_clks, calc_mode(s_clks+r_clks));
print_triton_drive_flags (0, time & 0xf);
print_triton_drive_flags (1, (time >> 4) & 0xf);
+#endif
}
quit: if (rc) printk("ide: pcibios access failed - %s\n", pcibios_strerror(rc));
diff --git a/i386/i386at/gpl/linux/include/linux/autoconf.h b/i386/i386at/gpl/linux/include/linux/autoconf.h
index 1588347c..0d565aed 100644
--- a/i386/i386at/gpl/linux/include/linux/autoconf.h
+++ b/i386/i386at/gpl/linux/include/linux/autoconf.h
@@ -1,8 +1,4 @@
/*
- * Automatically generated C config: don't edit
- */
-
-/*
* Loadable module support
*/
#undef CONFIG_MODULES
@@ -25,11 +21,16 @@
#undef CONFIG_M586
#undef CONFIG_M686
+/* Fetch GNUmach driver config file */
+#include <i386/device-drivers.h>
+
+#if 0 /* these are now in device-drivers.h */
/*
* Floppy, IDE, and other block devices
*/
#define CONFIG_BLK_DEV_FD 1
#define CONFIG_BLK_DEV_IDE 1
+#endif
/*
* Please see drivers/block/README.ide for help/info on IDE drives
@@ -46,6 +47,7 @@
#undef CONFIG_BLK_DEV_LOOP
#undef CONFIG_BLK_DEV_XD
+#if 0 /* now in device-drivers.h */
/*
* Networking options
*/
@@ -55,6 +57,7 @@
#undef CONFIG_IP_FORWARD
#undef CONFIG_IP_MULTICAST
#undef CONFIG_IP_ACCT
+#endif
/*
* (it is safe to leave these untouched)
@@ -74,10 +77,12 @@
#undef CONFIG_AX25
#undef CONFIG_NETLINK
+#if 0
/*
* SCSI support
*/
#define CONFIG_SCSI 1
+#endif
/*
* SCSI support type (disk, tape, CDrom)
@@ -87,6 +92,7 @@
#define CONFIG_BLK_DEV_SR 1
#undef CONFIG_CHR_DEV_SG
+#if 0 /* now in device-drivers.h */
/*
* Some SCSI devices (e.g. CD jukebox) support multiple LUNs
*/
@@ -118,6 +124,7 @@
#undef CONFIG_SCSI_NCR53C406A
#undef CONFIG_SCSI_AM53C974
#define CONFIG_SCSI_NCR53C7xx 1
+#endif
/*
* Network device support
@@ -129,6 +136,7 @@
#undef CONFIG_SLIP_SMART
#undef CONFIG_PPP
+#if 0
/*
* CCP compressors for PPP are only built as modules.
*/
@@ -164,6 +172,7 @@
* CD-ROM drivers (not for SCSI or IDE/ATAPI drives)
*/
#undef CONFIG_CD_NO_IDESCSI
+#endif
/*
* Filesystems
@@ -185,6 +194,7 @@
#undef CONFIG_HPFS_FS
#undef CONFIG_SYSV_FS
+#if 0
/*
* Character devices
*/
@@ -208,3 +218,4 @@
* Kernel hacking
*/
#undef CONFIG_PROFILE
+#endif
diff --git a/i386/i386at/gpl/linux/linux_block.c b/i386/i386at/gpl/linux/linux_block.c
index e06cc403..d7e335b9 100644
--- a/i386/i386at/gpl/linux/linux_block.c
+++ b/i386/i386at/gpl/linux/linux_block.c
@@ -1600,7 +1600,7 @@ check_disk_change (kdev_t dev)
if (! (*fops->check_media_change) (dev))
return 0;
- printf ("Disk change detected on device %s\n", kdevname(dev));
+ /* printf ("Disk change detected on device %s\n", kdevname(dev));*/
if (fops->revalidate)
(*fops->revalidate) (dev);
@@ -1918,8 +1918,8 @@ find_major:
goto slice_done;
}
- printf ("%s: default slice %d: %s OS\n", np->name, slice,
- (sysid == UNIXOS ? "Mach" : (sysid == BSDOS ? "BSD" : "LINUX")));
+ /* printf ("%s: default slice %d: %s OS\n", np->name, slice,
+ (sysid == UNIXOS ? "Mach" : (sysid == BSDOS ? "BSD" : "LINUX")));*/
slice_done:
if (ds->fops->release)
@@ -2049,7 +2049,7 @@ find_major:
dlp = (struct disklabel *) (bhp->b_data + ((LBLLOC << 9) & (bsize - 1)));
if (dlp->d_magic != DISKMAGIC || dlp->d_magic2 != DISKMAGIC)
goto vtoc;
- printf ("%s: BSD LABEL\n", np->name);
+ /* printf ("%s: BSD LABEL\n", np->name);*/
lp->d_npartitions = dlp->d_npartitions;
memcpy (lp->d_partitions, dlp->d_partitions,
MAXPARTITIONS * sizeof (struct partition));
@@ -2080,7 +2080,7 @@ find_major:
err = D_NO_SUCH_DEVICE;
goto label_done;
}
- printf ("%s: LOCAL LABEL\n", np->name);
+ /* printf ("%s: LOCAL LABEL\n", np->name);*/
lp->d_npartitions = (evp->nparts > MAXPARTITIONS
? MAXPARTITIONS : evp->nparts);
for (i = 0; i < lp->d_npartitions; i++)
diff --git a/i386/i386at/gpl/linux/linux_init.c b/i386/i386at/gpl/linux/linux_init.c
index d2abae28..4e7b006a 100644
--- a/i386/i386at/gpl/linux/linux_init.c
+++ b/i386/i386at/gpl/linux/linux_init.c
@@ -54,6 +54,8 @@
#include <asm/system.h>
+#include <i386/device-drivers.h>
+
/*
* Set if the machine has an EISA bus.
*/
@@ -230,7 +232,9 @@ linux_init()
/*
* Initialize devices.
*/
+#ifdef CONFIG_INET
linux_net_emulation_init();
+#endif
cli();
device_setup();
@@ -389,7 +393,7 @@ calibrate_delay()
{
int ticks;
- printk("Calibrating delay loop.. ");
+ /* printk("Calibrating delay loop.. "); */
while (loops_per_sec <<= 1) {
/* Wait for "start of" clock tick. */
ticks = jiffies;
@@ -402,11 +406,11 @@ calibrate_delay()
if (ticks >= hz) {
loops_per_sec = muldiv(loops_per_sec,
hz, ticks);
- printk("ok - %lu.%02lu BogoMips\n",
+ /*printk("ok - %lu.%02lu BogoMips\n",
loops_per_sec / 500000,
- (loops_per_sec / 5000) % 100);
+ (loops_per_sec / 5000) % 100);*/
return;
}
}
- printk("failed\n");
+/* printk("failed\n");*/
}
diff --git a/i386/i386at/gpl/linux/net/8390.c b/i386/i386at/gpl/linux/net/8390.c
index 05ea32f6..7962413c 100644
--- a/i386/i386at/gpl/linux/net/8390.c
+++ b/i386/i386at/gpl/linux/net/8390.c
@@ -85,7 +85,7 @@ static const char *version =
#ifdef EI_DEBUG
int ei_debug = EI_DEBUG;
#else
-int ei_debug = 1;
+int ei_debug = 0;
#endif
#ifdef EI_PINGPONG
static int ei_pingpong = 1;
diff --git a/i386/i386at/gpl/linux/pci/bios32.c b/i386/i386at/gpl/linux/pci/bios32.c
index e10fdab3..f0717fdb 100644
--- a/i386/i386at/gpl/linux/pci/bios32.c
+++ b/i386/i386at/gpl/linux/pci/bios32.c
@@ -192,10 +192,12 @@ extern unsigned long check_pcibios(unsigned long memory_start, unsigned long mem
if (signature != PCI_SIGNATURE)
pcibios_entry = 0;
}
+#if 0
if (pcibios_entry) {
printk ("pcibios_init : PCI BIOS revision %x.%02x entry at 0x%lx\n",
major_revision, minor_revision, pcibios_entry);
}
+#endif
}
return memory_start;
}
@@ -433,13 +435,17 @@ unsigned long pcibios_init(unsigned long memory_start, unsigned long memory_end)
check->fields.revision, check);
continue;
}
+#if 0
printk ("pcibios_init : BIOS32 Service Directory structure at 0x%p\n", check);
+#endif
if (!bios32_entry) {
if (check->fields.entry >= 0x100000) {
printk("pcibios_init: entry in high memory, unable to access\n");
} else {
bios32_indirect.address = bios32_entry = check->fields.entry;
+#if 0
printk ("pcibios_init : BIOS32 Service Directory entry at 0x%lx\n", bios32_entry);
+#endif
}
} else {
printk ("pcibios_init : multiple entries, mail drew@colorado.edu\n");
diff --git a/i386/i386at/gpl/linux/pci/pci.c b/i386/i386at/gpl/linux/pci/pci.c
index 03846d02..e5f59797 100644
--- a/i386/i386at/gpl/linux/pci/pci.c
+++ b/i386/i386at/gpl/linux/pci/pci.c
@@ -894,7 +894,9 @@ unsigned long pci_init (unsigned long mem_start, unsigned long mem_end)
return mem_start;
}
+#if 0
printk("Probing PCI hardware.\n");
+#endif
memset(&pci_root, 0, sizeof(pci_root));
pci_root.subordinate = scan_bus(&pci_root, &mem_start);
diff --git a/i386/i386at/gpl/linux/scsi/aha1740.c b/i386/i386at/gpl/linux/scsi/aha1740.c
index e3b8f1d0..250aa1b8 100644
--- a/i386/i386at/gpl/linux/scsi/aha1740.c
+++ b/i386/i386at/gpl/linux/scsi/aha1740.c
@@ -1,4 +1,4 @@
-/* $Id: aha1740.c,v 1.1.1.1 1997/02/25 21:27:46 thomas Exp $
+/* $Id: aha1740.c,v 1.2 1997/03/24 21:51:17 thomas Exp $
* 1993/03/31
* linux/kernel/aha1740.c
*
@@ -56,7 +56,7 @@ struct proc_dir_entry proc_scsi_aha1740 = {
#endif
/*
-static const char RCSid[] = "$Header: cvs/gnumach/i386/i386at/gpl/linux/scsi/Attic/aha1740.c,v 1.1.1.1 1997/02/25 21:27:46 thomas Exp $";
+static const char RCSid[] = "$Header: cvs/gnumach/i386/i386at/gpl/linux/scsi/Attic/aha1740.c,v 1.2 1997/03/24 21:51:17 thomas Exp $";
*/
static unsigned int slot, base;
@@ -166,6 +166,9 @@ int aha1740_test_port(void)
return 0;
}
+ /* Try and turn on enhanced mode */
+ tmp = inb (PORTADR);
+ outb (PORTADR, tmp | PORTADDR_ENH);
if ( inb(PORTADR) & PORTADDR_ENH )
return 1; /* Okay, we're all set */
diff --git a/i386/i386at/gpl/linux/scsi/hosts.c b/i386/i386at/gpl/linux/scsi/hosts.c
index cb0163b4..72ae0cb6 100644
--- a/i386/i386at/gpl/linux/scsi/hosts.c
+++ b/i386/i386at/gpl/linux/scsi/hosts.c
@@ -134,7 +134,7 @@
#endif
/*
-static const char RCSid[] = "$Header: cvs/gnumach/i386/i386at/gpl/linux/scsi/Attic/hosts.c,v 1.1.1.1 1997/02/25 21:27:49 thomas Exp $";
+static const char RCSid[] = "$Header: cvs/gnumach/i386/i386at/gpl/linux/scsi/Attic/hosts.c,v 1.2 1997/03/24 21:51:24 thomas Exp $";
*/
/*
@@ -387,12 +387,16 @@ unsigned int scsi_init()
name = shpnt->hostt->info(shpnt);
else
name = shpnt->hostt->name;
+#if 0
printk ("scsi%d : %s\n", /* And print a little message */
shpnt->host_no, name);
+#endif
}
-
+
+#if 0
printk ("scsi : %d host%s.\n", next_scsi_host,
(next_scsi_host == 1) ? "" : "s");
+#endif
scsi_make_blocked_list();
diff --git a/i386/i386at/gpl/linux/scsi/scsi.c b/i386/i386at/gpl/linux/scsi/scsi.c
index 85d234e1..7b29168f 100644
--- a/i386/i386at/gpl/linux/scsi/scsi.c
+++ b/i386/i386at/gpl/linux/scsi/scsi.c
@@ -49,7 +49,7 @@
#undef USE_STATIC_SCSI_MEMORY
/*
-static const char RCSid[] = "$Header: cvs/gnumach/i386/i386at/gpl/linux/scsi/Attic/scsi.c,v 1.1.1.1 1997/02/25 21:27:50 thomas Exp $";
+static const char RCSid[] = "$Header: cvs/gnumach/i386/i386at/gpl/linux/scsi/Attic/scsi.c,v 1.2 1997/03/24 21:51:33 thomas Exp $";
*/
@@ -2352,12 +2352,14 @@ int scsi_dev_init(void)
for (shpnt = scsi_hostlist; shpnt; shpnt = shpnt->next)
scan_scsis(shpnt,0,0,0,0); /* scan for scsi devices */
+#if 0
printk("scsi : detected ");
for (sdtpnt = scsi_devicelist; sdtpnt; sdtpnt = sdtpnt->next)
if (sdtpnt->dev_noticed && sdtpnt->name)
printk("%d SCSI %s%s ", sdtpnt->dev_noticed, sdtpnt->name,
(sdtpnt->dev_noticed != 1) ? "s" : "");
printk("total.\n");
+#endif
for(sdtpnt = scsi_devicelist; sdtpnt; sdtpnt = sdtpnt->next)
if(sdtpnt->init && sdtpnt->dev_noticed) (*sdtpnt->init)();
diff --git a/i386/i386at/i386at_ds_routines.c b/i386/i386at/i386at_ds_routines.c
index b1375afd..b67aa9ec 100644
--- a/i386/i386at/i386at_ds_routines.c
+++ b/i386/i386at/i386at_ds_routines.c
@@ -35,20 +35,25 @@
#include <i386at/dev_hdr.h>
#include <i386at/device_emul.h>
+#include <i386/device-drivers.h>
extern struct device_emulation_ops mach_device_emulation_ops;
#ifdef LINUX_DEV
extern struct device_emulation_ops linux_block_emulation_ops;
+#ifdef CONFIG_INET
extern struct device_emulation_ops linux_net_emulation_ops;
#endif
+#endif
/* List of emulations. */
static struct device_emulation_ops *emulation_list[] =
{
#ifdef LINUX_DEV
&linux_block_emulation_ops,
+#ifdef CONFIG_INET
&linux_net_emulation_ops,
#endif
+#endif
&mach_device_emulation_ops,
};
diff --git a/i386/i386at/kd.c b/i386/i386at/kd.c
index 6c41ec56..906fdd51 100644
--- a/i386/i386at/kd.c
+++ b/i386/i386at/kd.c
@@ -116,8 +116,9 @@ void kd_enqsc(); /* enqueues a scancode */
void timeout();
+#if 0
#define BROKEN_KEYBOARD_RESET
-
+#endif
struct tty kd_tty;
extern int rebootflag;
@@ -2327,7 +2328,6 @@ kdreboot()
kd_sendcmd(0xFE); /* XXX - magic # */
delay(1000000); /* wait to see if anything happens */
#endif
-
/*
* If that didn't work, then we'll just have to try and
* do it the hard way.
diff --git a/include/mach/message.h b/include/mach/message.h
index 8f1860f8..d6402863 100644
--- a/include/mach/message.h
+++ b/include/mach/message.h
@@ -438,6 +438,9 @@ mach_msg
#endif /* LINTLIBRARY */
#endif /* c_plusplus || __STDC__ */
+extern typeof (mach_msg) __mach_msg;
+extern typeof (mach_msg_trap) __mach_msg_trap;
+
/* Definitions for the old IPC interface. */
diff --git a/kern/bootstrap.c b/kern/bootstrap.c
index f1e3c43d..3643a5cb 100644
--- a/kern/bootstrap.c
+++ b/kern/bootstrap.c
@@ -290,7 +290,6 @@ static void copy_bootstrap(void *e, struct exec_info *boot_exec_info)
register vm_map_t user_map = current_task()->map;
int err;
-printf("loading...\n");
if (err = exec_load(boot_read, read_exec, e, boot_exec_info))
panic("Cannot load user-bootstrap image: error code %d", err);
@@ -478,8 +477,6 @@ static void user_bootstrap()
root_string,
(char *)0);
-printf("Starting bootstrap at %x\n", boot_exec_info.entry);
-
/*
* Exit to user thread.
*/
diff --git a/version.c b/version.c
index 3cf20d99..f673e866 100644
--- a/version.c
+++ b/version.c
@@ -1 +1 @@
-char version[] = "GNUmach 0.2";
+char version[] = "GNUmach 1.0";
diff --git a/vm/vm_object.c b/vm/vm_object.c
index 5186ee6c..801fb068 100644
--- a/vm/vm_object.c
+++ b/vm/vm_object.c
@@ -182,7 +182,7 @@ vm_object_t kernel_object;
*/
queue_head_t vm_object_cached_list;
int vm_object_cached_count;
-int vm_object_cached_max = 100; /* may be patched*/
+int vm_object_cached_max = 200; /* may be patched*/
decl_simple_lock_data(,vm_object_cached_lock_data)
diff --git a/vm/vm_resident.c b/vm/vm_resident.c
index 5c4f2822..eba01570 100644
--- a/vm/vm_resident.c
+++ b/vm/vm_resident.c
@@ -290,7 +290,7 @@ void vm_page_bootstrap(
*startp = virtual_space_start;
*endp = virtual_space_end;
- printf("vm_page_bootstrap: %d free pages\n", vm_page_free_count);
+ /* printf("vm_page_bootstrap: %d free pages\n", vm_page_free_count);*/
vm_page_free_count_minimum = vm_page_free_count;
}