Whamcloud - gitweb
- updated vanilla series to include uml 6 patch
authormmex <mmex>
Thu, 17 Jul 2003 00:50:53 +0000 (00:50 +0000)
committermmex <mmex>
Thu, 17 Jul 2003 00:50:53 +0000 (00:50 +0000)
lustre/kernel_patches/patches/uml-patch-2.4.20-6.patch [moved from lustre/kernel_patches/patches/uml-patch-2.4.20-4.patch with 93% similarity]
lustre/kernel_patches/pc/uml-patch-2.4.20-6.pc [moved from lustre/kernel_patches/pc/uml-patch-2.4.20-4.pc with 99% similarity]

@@ -1,561 +1,6 @@
-diff -Naur -X ../exclude-files orig/CREDITS um/CREDITS
---- orig/CREDITS       Thu Feb 27 13:04:11 2003
-+++ um/CREDITS Thu Feb 27 13:05:17 2003
-@@ -432,6 +432,7 @@
- E: lars@nocrew.org
- W: http://lars.nocrew.org/
- D: dsp56k device driver
-+D: ptrace proxy in user mode kernel port
- S: Kopmansg 2
- S: 411 13  Goteborg
- S: Sweden
-@@ -721,7 +722,7 @@
- E: jdike@karaya.com
- W: http://user-mode-linux.sourceforge.net
- D: User mode kernel port
--S: RR1 Box 67C
-+S: 375 Tubbs Hill Rd
- S: Deering NH 03244
- S: USA
-diff -Naur -X ../exclude-files orig/Documentation/Configure.help um/Documentation/Configure.help
---- orig/Documentation/Configure.help  Thu Feb 27 13:04:11 2003
-+++ um/Documentation/Configure.help    Thu Feb 27 13:05:17 2003
-@@ -14690,19 +14690,23 @@
-   The module will be called dsbr100.o. If you want to compile it as a
-   module, say M here and read <file:Documentation/modules.txt>.
--Always do synchronous disk IO for UBD
--CONFIG_BLK_DEV_UBD_SYNC
-+CONFIG_BLK_DEV_UBD
-   The User-Mode Linux port includes a driver called UBD which will let
-   you access arbitrary files on the host computer as block devices.
--  Writes to such a block device are not immediately written to the
--  host's disk; this may cause problems if, for example, the User-Mode
--  Linux 'Virtual Machine' uses a journalling file system and the host
--  computer crashes.
-+  Unless you know that you do not need such virtual block devices say
-+  Y here.
-+
-+Always do synchronous disk IO for UBD
-+CONFIG_BLK_DEV_UBD_SYNC
-+  Writes to the virtual block device are not immediately written to the host's
-+  disk; this may cause problems if, for example, the User-Mode Linux
-+  'Virtual Machine' uses a journalling filesystem and the host computer
-+  crashes.
-   Synchronous operation (i.e. always writing data to the host's disk
-   immediately) is configurable on a per-UBD basis by using a special
-   kernel command line option.  Alternatively, you can say Y here to
--  turn on synchronous operation by default for all block.
-+  turn on synchronous operation by default for all block devices.
-   If you're running a journalling file system (like reiserfs, for
-   example) in your virtual machine, you will want to say Y here.  If
-@@ -14714,6 +14718,7 @@
- CONFIG_PT_PROXY
-   This option enables a debugging interface which allows gdb to debug
-   the kernel without needing to actually attach to kernel threads.
-+  CONFIG_XTERM_CHAN must be enabled in order to enable CONFIG_PT_PROXY.
-   If you want to do kernel debugging, say Y here; otherwise say N.
- Management console
-@@ -14908,25 +14913,173 @@
- SLIP transport
- CONFIG_UML_NET_SLIP
--  The Slip User-Mode Linux network transport allows a running UML to
-+  The slip User-Mode Linux network transport allows a running UML to
-   network with its host over a point-to-point link.  Unlike Ethertap,
-   which can carry any Ethernet frame (and hence even non-IP packets),
--  the Slip transport can only carry IP packets.
-+  the slip transport can only carry IP packets.
--  To use this, your host must support Slip devices.
-+  To use this, your host must support slip devices.
-   For more information, see
-   <http://user-mode-linux.sourceforge.net/networking.html>.  That site
--  has examples of the UML command line to use to enable Slip
-+  has examples of the UML command line to use to enable slip
-   networking, and details of a few quirks with it.
--  The Ethertap Transport is preferred over Slip because of its
--  limitation.  If you prefer Slip, however, say Y here.  Otherwise
-+  The Ethertap Transport is preferred over slip because of its
-+  limitations.  If you prefer slip, however, say Y here.  Otherwise
-   choose the Multicast transport (to network multiple UMLs on 
-   multiple hosts), Ethertap (to network with the host and the
-   outside world), and/or the Daemon transport (to network multiple
-   UMLs on a single host).  You may choose more than one without
-   conflict.  If you don't need UML networking, say N.
-+
-+SLiRP transport
-+CONFIG_UML_NET_SLIRP
-+  The SLiRP User-Mode Linux network transport allows a running UML
-+  to network by invoking a program that can handle SLIP encapsulated
-+  packets.  This is commonly (but not limited to) the application
-+  known as SLiRP, a program that can re-socket IP packets back onto
-+  the host on which it is run.  Only IP packets are supported,
-+  unlike other network transports that can handle all Ethernet
-+  frames.  In general, slirp allows the UML the same IP connectivity
-+  to the outside world that the host user is permitted, and unlike
-+  other transports, SLiRP works without the need of root level
-+  privleges, setuid binaries, or SLIP devices on the host.  This
-+  also means not every type of connection is possible, but most
-+  situations can be accomodated with carefully crafted slirp
-+  commands that can be passed along as part of the network device's
-+  setup string.  The effect of this transport on the UML is similar
-+  that of a host behind a firewall that masquerades all network
-+  connections passing through it (but is less secure).
-+
-+  To use this you should first have slirp compiled somewhere
-+  accessible on the host, and have read its documentation.  If you
-+  don't need UML networking, say N.
-+
-+  Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp"
-+
-+Default main console channel initialization
-+CONFIG_CON_ZERO_CHAN
-+  This is the string describing the channel to which the main console
-+  will be attached by default.  This value can be overridden from the
-+  command line.  The default value is "fd:0,fd:1", which attaches the
-+  main console to stdin and stdout.
-+  It is safe to leave this unchanged.
-+
-+Default console channel initialization
-+CONFIG_CON_CHAN
-+  This is the string describing the channel to which all consoles
-+  except the main console will be attached by default.  This value can
-+  be overridden from the command line.  The default value is "xterm",
-+  which brings them up in xterms.
-+  It is safe to leave this unchanged, although you may wish to change
-+  this if you expect the UML that you build to be run in environments
-+  which don't have X or xterm available.
-+
-+Default serial line channel initialization
-+CONFIG_SSL_CHAN
-+  This is the string describing the channel to which the serial lines
-+  will be attached by default.  This value can be overridden from the
-+  command line.  The default value is "pty", which attaches them to
-+  traditional pseudo-terminals.
-+  It is safe to leave this unchanged, although you may wish to change
-+  this if you expect the UML that you build to be run in environments
-+  which don't have a set of /dev/pty* devices.
-+
-+Nesting level
-+CONFIG_NEST_LEVEL
-+  This is set to the number of layers of UMLs that this UML will be run
-+  in.  Normally, this is zero, meaning that it will run directly on the
-+  host.  Setting it to one will build a UML that can run inside a UML
-+  that is running on the host.  Generally, if you intend this UML to run
-+  inside another UML, set CONFIG_NEST_LEVEL to one more than the host UML.
-+  Note that if the hosting UML has its CONFIG_KERNEL_HALF_GIGS set to 
-+  greater than one, then the guest UML should have its CONFIG_NEST_LEVEL 
-+  set to the host's CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS.
-+  Only change this if you are running nested UMLs.
-+
-+Kernel address space size (in .5G units)
-+CONFIG_KERNEL_HALF_GIGS
-+  This determines the amount of address space that UML will allocate for
-+  its own, measured in half Gigabyte units.  The default is 1.
-+  Change this only if you need to boot UML with an unusually large amount
-+  of physical memory.
-+
-+UML sound support
-+CONFIG_UML_SOUND
-+  This option enables UML sound support.  If enabled, it will pull in
-+  soundcore and the UML hostaudio relay, which acts as a intermediary
-+  between the host's dsp and mixer devices and the UML sound system.
-+  It is safe to say 'Y' here.
-+
-+UML SMP support
-+CONFIG_UML_SMP
-+  This option enables UML SMP support.  UML implements virtual SMP by
-+  allowing as many processes to run simultaneously on the host as
-+  there are virtual processors configured.  Obviously, if the host is
-+  a uniprocessor, those processes will timeshare, but, inside UML,
-+  will appear to be running simultaneously.  If the host is a
-+  multiprocessor, then UML processes may run simultaneously, depending
-+  on the host scheduler.
-+  CONFIG_SMP will be set to whatever this option is set to.
-+  It is safe to leave this unchanged.
-+
-+file descriptor channel support
-+CONFIG_FD_CHAN
-+  This option enables support for attaching UML consoles and serial
-+  lines to already set up file descriptors.  Generally, the main
-+  console is attached to file descriptors 0 and 1 (stdin and stdout),
-+  so it would be wise to leave this enabled unless you intend to
-+  attach it to some other host device.
-+
-+null device channel support
-+CONFIG_NULL_CHAN
-+  This option enables support for attaching UML consoles and serial
-+  lines to a device similar to /dev/null.  Data written to it disappears
-+  and there is never any data to be read.
-+
-+port channel support
-+CONFIG_PORT_CHAN
-+  This option enables support for attaching UML consoles and serial
-+  lines to host portals.  They may be accessed with 'telnet <host>
-+  <port number>'.  Any number of consoles and serial lines may be
-+  attached to a single portal, although what UML device you get when
-+  you telnet to that portal will be unpredictable.
-+  It is safe to say 'Y' here.
-+
-+pty channel support
-+CONFIG_PTY_CHAN
-+  This option enables support for attaching UML consoles and serial
-+  lines to host pseudo-terminals.  Access to both traditional
-+  pseudo-terminals (/dev/pty*) and pts pseudo-terminals are controlled
-+  with this option.  The assignment of UML devices to host devices
-+  will be announced in the kernel message log.
-+  It is safe to say 'Y' here.
-+
-+tty channel support
-+CONFIG_TTY_CHAN
-+  This option enables support for attaching UML consoles and serial
-+  lines to host terminals.  Access to both virtual consoles
-+  (/dev/tty*) and the slave side of pseudo-terminals (/dev/ttyp* and
-+  /dev/pts/*) are controlled by this option.
-+  It is safe to say 'Y' here.
-+
-+xterm channel support
-+CONFIG_XTERM_CHAN
-+  This option enables support for attaching UML consoles and serial
-+  lines to xterms.  Each UML device so assigned will be brought up in
-+  its own xterm.
-+  If you disable this option, then CONFIG_PT_PROXY will be disabled as
-+  well, since UML's gdb currently requires an xterm.
-+  It is safe to say 'Y' here.
-+
-+tty logging
-+CONFIG_TTY_LOG
-+  This option enables logging of all data going through pseudo-terminals
-+  to the host.  This is primarily useful for honeypots, where you want
-+  secure keystroke logging that can't be detected or disabled by root.
-+  Say 'N' unless you are setting up a UML honeypot or otherwise know that
-+  you want this option.
- Microtek USB scanner support
- CONFIG_USB_MICROTEK
-diff -Naur -X ../exclude-files orig/MAINTAINERS um/MAINTAINERS
---- orig/MAINTAINERS   Thu Feb 27 13:04:12 2003
-+++ um/MAINTAINERS     Thu Feb 27 13:05:17 2003
-@@ -1841,6 +1841,14 @@
- L:    linux-usb-devel@lists.sourceforge.net
- W:    http://usb.in.tum.de
- S:    Maintained
-+
-+USER-MODE PORT
-+P:    Jeff Dike
-+M:    jdike@karaya.com
-+L:    user-mode-linux-devel@lists.sourceforge.net
-+L:    user-mode-linux-user@lists.sourceforge.net
-+W:    http://user-mode-linux.sourceforge.net
-+S:    Maintained
-       
- USB "USBNET" DRIVER
- P:    David Brownell
-diff -Naur -X ../exclude-files orig/Makefile um/Makefile
---- orig/Makefile      Thu Feb 27 13:04:12 2003
-+++ um/Makefile        Thu Feb 27 13:05:17 2003
-@@ -5,7 +5,15 @@
- KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
--ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
-+# SUBARCH tells the usermode build what the underlying arch is.  That is set
-+# first, and if a usermode build is happening, the "ARCH=um" on the command
-+# line overrides the setting of ARCH below.  If a native build is happening,
-+# then ARCH is assigned, getting whatever value it gets normally, and 
-+# SUBARCH is subsequently ignored.
-+
-+SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
-+ARCH := $(SUBARCH)
-+
- KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
- CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
-diff -Naur -X ../exclude-files orig/arch/um/Makefile um/arch/um/Makefile
---- orig/arch/um/Makefile      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/Makefile        Fri Mar 28 21:46:54 2003
-@@ -0,0 +1,168 @@
-+# 
-+# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+OS := $(shell uname -s)
-+
-+ARCH_DIR = arch/um
-+
-+core-y := kernel sys-$(SUBARCH) os-$(OS)
-+drivers-y := fs drivers
-+subdir-y := $(core-y) $(drivers-y)
-+SUBDIRS += $(foreach dir,$(subdir-y),$(ARCH_DIR)/$(dir))
-+
-+CORE_FILES += $(foreach dir,$(core-y),$(ARCH_DIR)/$(dir)/built-in.o)
-+DRIVERS += $(foreach dir,$(drivers-y),$(ARCH_DIR)/$(dir)/built-in.o)
-+
-+include $(ARCH_DIR)/Makefile-$(SUBARCH)
-+include $(ARCH_DIR)/Makefile-os-$(OS)
-+
-+MAKEFILE-$(CONFIG_MODE_TT) += Makefile-tt
-+MAKEFILE-$(CONFIG_MODE_SKAS) += Makefile-skas
-+
-+ifneq ($(MAKEFILE-y),)
-+  include $(addprefix $(ARCH_DIR)/,$(MAKEFILE-y))
-+endif
-+
-+EXTRAVERSION := $(EXTRAVERSION)-4um
-+
-+include/linux/version.h: arch/$(ARCH)/Makefile
-+
-+# Recalculate MODLIB to reflect the EXTRAVERSION changes (via KERNELRELEASE)
-+# The way the toplevel Makefile is written EXTRAVERSION is not supposed
-+# to be changed outside the toplevel Makefile, but recalculating MODLIB is
-+# a sufficient workaround until we no longer need architecture dependent
-+# EXTRAVERSION...
-+MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
-+
-+ifeq ($(CONFIG_DEBUGSYM),y)
-+CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
-+endif
-+
-+CFLAGS-$(CONFIG_DEBUGSYM) += -g
-+
-+ARCH_INCLUDE = -I$(TOPDIR)/$(ARCH_DIR)/include
-+
-+# -Derrno=kernel_errno - This turns all kernel references to errno into
-+# kernel_errno to separate them from the libc errno.  This allows -fno-common
-+# in CFLAGS.  Otherwise, it would cause ld to complain about the two different
-+# errnos.
-+
-+CFLAGS += $(ARCH_CFLAGS) $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \
-+      -D_LARGEFILE64_SOURCE $(ARCH_INCLUDE) -Derrno=kernel_errno \
-+      $(MODE_INCLUDE)
-+
-+LINKFLAGS += -r
-+
-+LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc
-+
-+SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000)
-+
-+# These aren't in Makefile-tt because they are needed in the !CONFIG_MODE_TT +
-+# CONFIG_MODE_SKAS + CONFIG_STATIC_LINK case.
-+
-+LINK_TT = -static
-+LD_SCRIPT_TT := link.ld
-+
-+ifeq ($(CONFIG_STATIC_LINK),y)
-+  LINK-y += $(LINK_TT)
-+  LD_SCRIPT-y := $(LD_SCRIPT_TT)
-+else
-+ifeq ($(CONFIG_MODE_TT),y)
-+  LINK-y += $(LINK_TT)
-+  LD_SCRIPT-y := $(LD_SCRIPT_TT)
-+else
-+ifeq ($(CONFIG_MODE_SKAS),y)
-+  LINK-y += $(LINK_SKAS)
-+  LD_SCRIPT-y := $(LD_SCRIPT_SKAS)
-+endif
-+endif
-+endif
-+
-+LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
-+M4_MODE_TT := $(shell [ "$(CONFIG_MODE_TT)" = "y" ] && echo -DMODE_TT)
-+
-+$(LD_SCRIPT-y): $(LD_SCRIPT-y).in
-+      pages=$$(( 1 << $(CONFIG_KERNEL_STACK_ORDER) )) ; \
-+      m4 -DSTART=$$(($(TOP_ADDR) - $(SIZE))) -DELF_ARCH=$(ELF_ARCH) \
-+              -DELF_FORMAT=$(ELF_FORMAT) $(M4_MODE_TT) \
-+              -DKERNEL_STACK_SIZE=$$(( 4096 * $$pages )) $< > $@
-+
-+SYMLINK_HEADERS = include/asm-um/archparam.h include/asm-um/system.h \
-+      include/asm-um/sigcontext.h include/asm-um/processor.h \
-+      include/asm-um/ptrace.h include/asm-um/arch-signal.h
-+
-+ARCH_SYMLINKS = include/asm-um/arch arch/um/include/sysdep arch/um/os \
-+      $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h
-+
-+ifeq ($(CONFIG_MODE_SKAS), y)
-+$(SYS_HEADERS) : $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
-+endif
-+
-+GEN_HEADERS += $(ARCH_DIR)/include/task.h $(ARCH_DIR)/include/kern_constants.h 
-+
-+setup: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS) 
-+
-+linux: setup $(ARCH_DIR)/main.o vmlinux $(LD_SCRIPT-y)
-+      mv vmlinux vmlinux.o
-+      $(CC) -Wl,-T,$(LD_SCRIPT-y) $(LINK-y) $(LINK_WRAPS) \
-+              -o linux $(ARCH_DIR)/main.o vmlinux.o -L/usr/lib -lutil
-+
-+USER_CFLAGS := $(patsubst -I%,,$(CFLAGS))
-+USER_CFLAGS := $(patsubst -Derrno=kernel_errno,,$(USER_CFLAGS))
-+USER_CFLAGS := $(patsubst -D__KERNEL__,,$(USER_CFLAGS)) $(ARCH_INCLUDE) \
-+      $(MODE_INCLUDE)
-+
-+# To get a definition of F_SETSIG
-+USER_CFLAGS += -D_GNU_SOURCE
-+
-+CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/link.ld $(ARCH_DIR)/dyn_link.ld \
-+      $(GEN_HEADERS) $(ARCH_DIR)/include/uml-config.h
-+
-+$(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c
-+      $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
-+
-+archmrproper:
-+      rm -f $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) include/asm \
-+              $(LD_SCRIPT) $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS))
-+
-+archclean: sysclean
-+      find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
-+              -o -name '*.gcov' \) -type f -print | xargs rm -f
-+      cd $(ARCH_DIR) ; \
-+      for dir in $(subdir-y) util ; do $(MAKE) -C $$dir clean; done
-+
-+archdep: 
-+
-+$(SYMLINK_HEADERS):
-+      cd $(TOPDIR)/$(dir $@) ; \
-+      ln -sf $(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $(notdir $@)
-+
-+include/asm-um/arch:
-+      cd $(TOPDIR)/include/asm-um && ln -sf ../asm-$(SUBARCH) arch
-+
-+arch/um/include/sysdep:
-+      cd $(TOPDIR)/arch/um/include && ln -sf sysdep-$(SUBARCH) sysdep
-+
-+arch/um/os:
-+      cd $(ARCH_DIR) && ln -sf os-$(OS) os
-+
-+$(ARCH_DIR)/include/task.h : $(ARCH_DIR)/util/mk_task
-+      $< > $@
-+
-+$(ARCH_DIR)/include/kern_constants.h : $(ARCH_DIR)/util/mk_constants
-+      $< > $@
-+
-+$(ARCH_DIR)/include/uml-config.h : $(TOPDIR)/include/linux/autoconf.h
-+      sed 's/ CONFIG/ UML_CONFIG/' $(TOPDIR)/include/linux/autoconf.h > $@
-+
-+$(ARCH_DIR)/util/mk_task : $(ARCH_DIR)/util/mk_task_user.c \
-+      $(ARCH_DIR)/util/mk_task_kern.c $(SYS_HEADERS)
-+      $(MAKE) $(MFLAGS) -C $(ARCH_DIR)/util mk_task
-+
-+$(ARCH_DIR)/util/mk_constants : $(ARCH_DIR)/util/mk_constants_user.c \
-+      $(ARCH_DIR)/util/mk_constants_kern.c 
-+      $(MAKE) $(MFLAGS) -C $(ARCH_DIR)/util mk_constants
-+
-+export SUBARCH USER_CFLAGS OS
-diff -Naur -X ../exclude-files orig/arch/um/Makefile-i386 um/arch/um/Makefile-i386
---- orig/arch/um/Makefile-i386 Wed Dec 31 19:00:00 1969
-+++ um/arch/um/Makefile-i386   Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,35 @@
-+ifeq ($(CONFIG_HOST_2G_2G), y)
-+TOP_ADDR = 0x80000000
-+else
-+TOP_ADDR = 0xc0000000
-+endif
-+
-+ARCH_CFLAGS = -U__$(SUBARCH)__ -U$(SUBARCH) -DUM_FASTCALL
-+ELF_ARCH = $(SUBARCH)
-+ELF_FORMAT = elf32-$(SUBARCH)
-+
-+I386_H = $(ARCH_DIR)/include/sysdep-i386
-+SYS = $(ARCH_DIR)/sys-i386
-+UTIL = $(SYS)/util
-+SUBDIRS += $(UTIL)
-+
-+SYS_HEADERS = $(I386_H)/sc.h $(I386_H)/thread.h
-+
-+$(I386_H)/sc.h : $(UTIL)/mk_sc
-+      $(UTIL)/mk_sc > $@
-+
-+$(I386_H)/thread.h : $(UTIL)/mk_thread
-+      $(UTIL)/mk_thread > $@
-+
-+$(UTIL)/mk_sc : $(UTIL)/mk_sc.c
-+      $(MAKE) -C $(UTIL) mk_sc
-+
-+$(UTIL)/mk_thread : $(UTIL)/mk_thread_user.c $(UTIL)/mk_thread_kern.c \
-+      $(I386_H)/sc.h
-+      $(MAKE) -C $(UTIL) mk_thread
-+
-+sysclean :
-+      rm -f $(SYS_HEADERS)
-+      $(MAKE) -C $(UTIL) clean
-+      $(MAKE) -C $(SYS) clean
-+
-diff -Naur -X ../exclude-files orig/arch/um/Makefile-ia64 um/arch/um/Makefile-ia64
---- orig/arch/um/Makefile-ia64 Wed Dec 31 19:00:00 1969
-+++ um/arch/um/Makefile-ia64   Wed Oct 23 21:08:04 2002
-@@ -0,0 +1 @@
-+START_ADDR = 0x1000000000000000
-diff -Naur -X ../exclude-files orig/arch/um/Makefile-os-Linux um/arch/um/Makefile-os-Linux
---- orig/arch/um/Makefile-os-Linux     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/Makefile-os-Linux       Mon Dec  9 14:21:51 2002
-@@ -0,0 +1,7 @@
-+# 
-+# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+SUBDIRS += $(ARCH_DIR)/os-$(OS)/drivers
-+DRIVERS += $(ARCH_DIR)/os-$(OS)/drivers/drivers.o
-diff -Naur -X ../exclude-files orig/arch/um/Makefile-ppc um/arch/um/Makefile-ppc
---- orig/arch/um/Makefile-ppc  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/Makefile-ppc    Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,9 @@
-+ifeq ($(CONFIG_HOST_2G_2G), y)
-+START_ADDR = 0x80000000
-+else
-+START_ADDR = 0xc0000000
-+endif
-+ARCH_CFLAGS = -U__powerpc__ -D__UM_PPC__
-+
-+# The arch is ppc, but the elf32 name is powerpc
-+ELF_SUBARCH = powerpc
-diff -Naur -X ../exclude-files orig/arch/um/Makefile-skas um/arch/um/Makefile-skas
---- orig/arch/um/Makefile-skas Wed Dec 31 19:00:00 1969
-+++ um/arch/um/Makefile-skas   Sun Dec 15 22:02:57 2002
-@@ -0,0 +1,20 @@
-+# 
-+# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+PROFILE += -pg
-+
-+CFLAGS-$(CONFIG_GCOV) += -fprofile-arcs -ftest-coverage
-+CFLAGS-$(CONFIG_GPROF) += $(PROFILE)
-+LINK-$(CONFIG_GPROF) += $(PROFILE)
-+
-+MODE_INCLUDE += -I$(TOPDIR)/$(ARCH_DIR)/kernel/skas/include
-+
-+LINK_SKAS = -Wl,-rpath,/lib 
-+LD_SCRIPT_SKAS = dyn_link.ld
-+
-+GEN_HEADERS += $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
-+
-+$(ARCH_DIR)/kernel/skas/include/skas_ptregs.h :
-+      $(MAKE) -C $(ARCH_DIR)/kernel/skas include/skas_ptregs.h
-diff -Naur -X ../exclude-files orig/arch/um/Makefile-tt um/arch/um/Makefile-tt
---- orig/arch/um/Makefile-tt   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/Makefile-tt     Mon Dec 16 20:22:23 2002
-@@ -0,0 +1,7 @@
-+# 
-+# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+MODE_INCLUDE += -I$(TOPDIR)/$(ARCH_DIR)/kernel/tt/include
-+
 diff -Naur -X ../exclude-files orig/arch/um/common.ld.in um/arch/um/common.ld.in
---- orig/arch/um/common.ld.in  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/common.ld.in    Tue Feb  4 19:35:13 2003
+--- orig/arch/um/common.ld.in  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/common.ld.in    2003-02-04 19:35:13.000000000 -0500
 @@ -0,0 +1,53 @@
 +  .kstrtab : { *(.kstrtab) }
 +
@@ -610,9 +55,70 @@ diff -Naur -X ../exclude-files orig/arch/um/common.ld.in um/arch/um/common.ld.in
 +  __fini_array_end = .;
 +
 +  .data.init : { *(.data.init) }
+diff -Naur -X ../exclude-files orig/arch/um/config_block.in um/arch/um/config_block.in
+--- orig/arch/um/config_block.in       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/config_block.in 2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,16 @@
++mainmenu_option next_comment
++comment 'Block Devices'
++
++bool 'Virtual block device' CONFIG_BLK_DEV_UBD
++dep_bool '  Always do synchronous disk IO for UBD' CONFIG_BLK_DEV_UBD_SYNC $CONFIG_BLK_DEV_UBD
++tristate 'Loopback device support' CONFIG_BLK_DEV_LOOP
++dep_tristate 'Network block device support' CONFIG_BLK_DEV_NBD $CONFIG_NET
++tristate 'RAM disk support' CONFIG_BLK_DEV_RAM
++if [ "$CONFIG_BLK_DEV_RAM" = "y" -o "$CONFIG_BLK_DEV_RAM" = "m" ]; then
++      int '   Default RAM disk size' CONFIG_BLK_DEV_RAM_SIZE 4096
++fi
++dep_bool '  Initial RAM disk (initrd) support' CONFIG_BLK_DEV_INITRD $CONFIG_BLK_DEV_RAM
++
++tristate 'Example IO memory driver' CONFIG_MMAPPER
++
++endmenu
+diff -Naur -X ../exclude-files orig/arch/um/config_char.in um/arch/um/config_char.in
+--- orig/arch/um/config_char.in        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/config_char.in  2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,37 @@
++mainmenu_option next_comment
++comment 'Character Devices'
++
++define_bool CONFIG_STDIO_CONSOLE y
++
++bool 'Virtual serial line' CONFIG_SSL
++
++bool 'file descriptor channel support' CONFIG_FD_CHAN
++bool 'null channel support' CONFIG_NULL_CHAN
++bool 'port channel support' CONFIG_PORT_CHAN
++bool 'pty channel support' CONFIG_PTY_CHAN
++bool 'tty channel support' CONFIG_TTY_CHAN
++bool 'xterm channel support' CONFIG_XTERM_CHAN
++string 'Default main console channel initialization' CONFIG_CON_ZERO_CHAN \
++            "fd:0,fd:1"
++string 'Default console channel initialization' CONFIG_CON_CHAN "xterm"
++string 'Default serial line channel initialization' CONFIG_SSL_CHAN "pty"
++
++
++bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
++if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
++   int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
++fi
++
++bool 'Watchdog Timer Support' CONFIG_WATCHDOG
++dep_bool '  Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT \
++      $CONFIG_WATCHDOG
++dep_tristate '  Software Watchdog' CONFIG_SOFT_WATCHDOG $CONFIG_WATCHDOG
++dep_tristate '  UML watchdog' CONFIG_UML_WATCHDOG $CONFIG_WATCHDOG
++
++tristate 'Sound support' CONFIG_UML_SOUND
++define_tristate CONFIG_SOUND $CONFIG_UML_SOUND
++define_tristate CONFIG_HOSTAUDIO $CONFIG_UML_SOUND
++
++bool 'Enable tty logging' CONFIG_TTY_LOG
++
++endmenu
 diff -Naur -X ../exclude-files orig/arch/um/config.in um/arch/um/config.in
---- orig/arch/um/config.in     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/config.in       Thu Feb 27 13:12:39 2003
+--- orig/arch/um/config.in     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/config.in       2003-02-27 13:12:39.000000000 -0500
 @@ -0,0 +1,104 @@
 +define_bool CONFIG_USERMODE y
 +
@@ -718,9 +224,60 @@ diff -Naur -X ../exclude-files orig/arch/um/config.in um/arch/um/config.in
 +dep_bool 'Enable gprof support' CONFIG_GPROF $CONFIG_DEBUGSYM
 +dep_bool 'Enable gcov support' CONFIG_GCOV $CONFIG_DEBUGSYM
 +endmenu
+diff -Naur -X ../exclude-files orig/arch/um/config_net.in um/arch/um/config_net.in
+--- orig/arch/um/config_net.in 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/config_net.in   2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,47 @@
++mainmenu_option next_comment
++comment 'Network Devices'
++
++# UML virtual driver
++bool 'Virtual network device' CONFIG_UML_NET
++
++dep_bool '  Ethertap transport' CONFIG_UML_NET_ETHERTAP $CONFIG_UML_NET
++dep_bool '  TUN/TAP transport' CONFIG_UML_NET_TUNTAP $CONFIG_UML_NET
++dep_bool '  SLIP transport' CONFIG_UML_NET_SLIP $CONFIG_UML_NET
++dep_bool '  SLiRP transport' CONFIG_UML_NET_SLIRP $CONFIG_UML_NET
++dep_bool '  Daemon transport' CONFIG_UML_NET_DAEMON $CONFIG_UML_NET
++dep_bool '  Multicast transport' CONFIG_UML_NET_MCAST $CONFIG_UML_NET
++dep_bool '  pcap transport' CONFIG_UML_NET_PCAP $CONFIG_UML_NET
++
++# Below are hardware-independent drivers mirrored from
++# drivers/net/Config.in. It would be nice if Linux
++# had HW independent drivers separated from the other
++# but it does not. Until then each non-ISA/PCI arch
++# needs to provide it's own menu of network drivers
++
++tristate 'Dummy net driver support' CONFIG_DUMMY
++tristate 'Bonding driver support' CONFIG_BONDING
++tristate 'EQL (serial line load balancing) support' CONFIG_EQUALIZER
++tristate 'Universal TUN/TAP device driver support' CONFIG_TUN
++if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
++   if [ "$CONFIG_NETLINK" = "y" ]; then
++      tristate 'Ethertap network tap (OBSOLETE)' CONFIG_ETHERTAP
++   fi
++fi
++
++tristate 'PPP (point-to-point protocol) support' CONFIG_PPP
++if [ ! "$CONFIG_PPP" = "n" ]; then
++   dep_bool '  PPP multilink support (EXPERIMENTAL)' CONFIG_PPP_MULTILINK $CONFIG_EXPERIMENTAL
++   dep_bool '  PPP filtering' CONFIG_PPP_FILTER $CONFIG_FILTER
++   dep_tristate '  PPP support for async serial ports' CONFIG_PPP_ASYNC $CONFIG_PPP
++   dep_tristate '  PPP support for sync tty ports' CONFIG_PPP_SYNC_TTY $CONFIG_PPP
++   dep_tristate '  PPP Deflate compression' CONFIG_PPP_DEFLATE $CONFIG_PPP
++   dep_tristate '  PPP BSD-Compress compression' CONFIG_PPP_BSDCOMP $CONFIG_PPP
++   dep_tristate '  PPP over Ethernet (EXPERIMENTAL)' CONFIG_PPPOE $CONFIG_PPP $CONFIG_EXPERIMENTAL
++fi
++
++tristate 'SLIP (serial line) support' CONFIG_SLIP
++dep_bool '  CSLIP compressed headers' CONFIG_SLIP_COMPRESSED $CONFIG_SLIP
++dep_bool '  Keepalive and linefill' CONFIG_SLIP_SMART $CONFIG_SLIP
++dep_bool '  Six bit SLIP encapsulation' CONFIG_SLIP_MODE_SLIP6 $CONFIG_SLIP
++
++endmenu
 diff -Naur -X ../exclude-files orig/arch/um/config.release um/arch/um/config.release
---- orig/arch/um/config.release        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/config.release  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/config.release        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/config.release  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,302 @@
 +#
 +# Automatically generated make config: don't edit
@@ -1024,121 +581,9 @@ diff -Naur -X ../exclude-files orig/arch/um/config.release um/arch/um/config.rel
 +#
 +# CONFIG_DEBUG_SLAB is not set
 +# CONFIG_DEBUGSYM is not set
-diff -Naur -X ../exclude-files orig/arch/um/config_block.in um/arch/um/config_block.in
---- orig/arch/um/config_block.in       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/config_block.in Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,16 @@
-+mainmenu_option next_comment
-+comment 'Block Devices'
-+
-+bool 'Virtual block device' CONFIG_BLK_DEV_UBD
-+dep_bool '  Always do synchronous disk IO for UBD' CONFIG_BLK_DEV_UBD_SYNC $CONFIG_BLK_DEV_UBD
-+tristate 'Loopback device support' CONFIG_BLK_DEV_LOOP
-+dep_tristate 'Network block device support' CONFIG_BLK_DEV_NBD $CONFIG_NET
-+tristate 'RAM disk support' CONFIG_BLK_DEV_RAM
-+if [ "$CONFIG_BLK_DEV_RAM" = "y" -o "$CONFIG_BLK_DEV_RAM" = "m" ]; then
-+      int '   Default RAM disk size' CONFIG_BLK_DEV_RAM_SIZE 4096
-+fi
-+dep_bool '  Initial RAM disk (initrd) support' CONFIG_BLK_DEV_INITRD $CONFIG_BLK_DEV_RAM
-+
-+tristate 'Example IO memory driver' CONFIG_MMAPPER
-+
-+endmenu
-diff -Naur -X ../exclude-files orig/arch/um/config_char.in um/arch/um/config_char.in
---- orig/arch/um/config_char.in        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/config_char.in  Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,37 @@
-+mainmenu_option next_comment
-+comment 'Character Devices'
-+
-+define_bool CONFIG_STDIO_CONSOLE y
-+
-+bool 'Virtual serial line' CONFIG_SSL
-+
-+bool 'file descriptor channel support' CONFIG_FD_CHAN
-+bool 'null channel support' CONFIG_NULL_CHAN
-+bool 'port channel support' CONFIG_PORT_CHAN
-+bool 'pty channel support' CONFIG_PTY_CHAN
-+bool 'tty channel support' CONFIG_TTY_CHAN
-+bool 'xterm channel support' CONFIG_XTERM_CHAN
-+string 'Default main console channel initialization' CONFIG_CON_ZERO_CHAN \
-+            "fd:0,fd:1"
-+string 'Default console channel initialization' CONFIG_CON_CHAN "xterm"
-+string 'Default serial line channel initialization' CONFIG_SSL_CHAN "pty"
-+
-+
-+bool 'Unix98 PTY support' CONFIG_UNIX98_PTYS
-+if [ "$CONFIG_UNIX98_PTYS" = "y" ]; then
-+   int 'Maximum number of Unix98 PTYs in use (0-2048)' CONFIG_UNIX98_PTY_COUNT 256
-+fi
-+
-+bool 'Watchdog Timer Support' CONFIG_WATCHDOG
-+dep_bool '  Disable watchdog shutdown on close' CONFIG_WATCHDOG_NOWAYOUT \
-+      $CONFIG_WATCHDOG
-+dep_tristate '  Software Watchdog' CONFIG_SOFT_WATCHDOG $CONFIG_WATCHDOG
-+dep_tristate '  UML watchdog' CONFIG_UML_WATCHDOG $CONFIG_WATCHDOG
-+
-+tristate 'Sound support' CONFIG_UML_SOUND
-+define_tristate CONFIG_SOUND $CONFIG_UML_SOUND
-+define_tristate CONFIG_HOSTAUDIO $CONFIG_UML_SOUND
-+
-+bool 'Enable tty logging' CONFIG_TTY_LOG
-+
-+endmenu
-diff -Naur -X ../exclude-files orig/arch/um/config_net.in um/arch/um/config_net.in
---- orig/arch/um/config_net.in Wed Dec 31 19:00:00 1969
-+++ um/arch/um/config_net.in   Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,47 @@
-+mainmenu_option next_comment
-+comment 'Network Devices'
-+
-+# UML virtual driver
-+bool 'Virtual network device' CONFIG_UML_NET
-+
-+dep_bool '  Ethertap transport' CONFIG_UML_NET_ETHERTAP $CONFIG_UML_NET
-+dep_bool '  TUN/TAP transport' CONFIG_UML_NET_TUNTAP $CONFIG_UML_NET
-+dep_bool '  SLIP transport' CONFIG_UML_NET_SLIP $CONFIG_UML_NET
-+dep_bool '  SLiRP transport' CONFIG_UML_NET_SLIRP $CONFIG_UML_NET
-+dep_bool '  Daemon transport' CONFIG_UML_NET_DAEMON $CONFIG_UML_NET
-+dep_bool '  Multicast transport' CONFIG_UML_NET_MCAST $CONFIG_UML_NET
-+dep_bool '  pcap transport' CONFIG_UML_NET_PCAP $CONFIG_UML_NET
-+
-+# Below are hardware-independent drivers mirrored from
-+# drivers/net/Config.in. It would be nice if Linux
-+# had HW independent drivers separated from the other
-+# but it does not. Until then each non-ISA/PCI arch
-+# needs to provide it's own menu of network drivers
-+
-+tristate 'Dummy net driver support' CONFIG_DUMMY
-+tristate 'Bonding driver support' CONFIG_BONDING
-+tristate 'EQL (serial line load balancing) support' CONFIG_EQUALIZER
-+tristate 'Universal TUN/TAP device driver support' CONFIG_TUN
-+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-+   if [ "$CONFIG_NETLINK" = "y" ]; then
-+      tristate 'Ethertap network tap (OBSOLETE)' CONFIG_ETHERTAP
-+   fi
-+fi
-+
-+tristate 'PPP (point-to-point protocol) support' CONFIG_PPP
-+if [ ! "$CONFIG_PPP" = "n" ]; then
-+   dep_bool '  PPP multilink support (EXPERIMENTAL)' CONFIG_PPP_MULTILINK $CONFIG_EXPERIMENTAL
-+   dep_bool '  PPP filtering' CONFIG_PPP_FILTER $CONFIG_FILTER
-+   dep_tristate '  PPP support for async serial ports' CONFIG_PPP_ASYNC $CONFIG_PPP
-+   dep_tristate '  PPP support for sync tty ports' CONFIG_PPP_SYNC_TTY $CONFIG_PPP
-+   dep_tristate '  PPP Deflate compression' CONFIG_PPP_DEFLATE $CONFIG_PPP
-+   dep_tristate '  PPP BSD-Compress compression' CONFIG_PPP_BSDCOMP $CONFIG_PPP
-+   dep_tristate '  PPP over Ethernet (EXPERIMENTAL)' CONFIG_PPPOE $CONFIG_PPP $CONFIG_EXPERIMENTAL
-+fi
-+
-+tristate 'SLIP (serial line) support' CONFIG_SLIP
-+dep_bool '  CSLIP compressed headers' CONFIG_SLIP_COMPRESSED $CONFIG_SLIP
-+dep_bool '  Keepalive and linefill' CONFIG_SLIP_SMART $CONFIG_SLIP
-+dep_bool '  Six bit SLIP encapsulation' CONFIG_SLIP_MODE_SLIP6 $CONFIG_SLIP
-+
-+endmenu
 diff -Naur -X ../exclude-files orig/arch/um/config_scsi.in um/arch/um/config_scsi.in
---- orig/arch/um/config_scsi.in        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/config_scsi.in  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/config_scsi.in        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/config_scsi.in  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,30 @@
 +comment 'SCSI support type (disk, tape, CD-ROM)'
 +
@@ -1171,8 +616,8 @@ diff -Naur -X ../exclude-files orig/arch/um/config_scsi.in um/arch/um/config_scs
 +
 +dep_tristate 'SCSI debugging host simulator (EXPERIMENTAL)' CONFIG_SCSI_DEBUG $CONFIG_SCSI
 diff -Naur -X ../exclude-files orig/arch/um/defconfig um/arch/um/defconfig
---- orig/arch/um/defconfig     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/defconfig       Mon Jan 20 11:26:54 2003
+--- orig/arch/um/defconfig     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/defconfig       2003-01-20 11:26:54.000000000 -0500
 @@ -0,0 +1,396 @@
 +#
 +# Automatically generated make config: don't edit
@@ -1570,107 +1015,9 @@ diff -Naur -X ../exclude-files orig/arch/um/defconfig um/arch/um/defconfig
 +CONFIG_PT_PROXY=y
 +# CONFIG_GPROF is not set
 +# CONFIG_GCOV is not set
-diff -Naur -X ../exclude-files orig/arch/um/drivers/Makefile um/arch/um/drivers/Makefile
---- orig/arch/um/drivers/Makefile      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/Makefile        Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,94 @@
-+# 
-+# Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+O_TARGET := built-in.o 
-+
-+CHAN_OBJS := chan_kern.o chan_user.o line.o 
-+
-+list-multi := slip.o slirp.o daemon.o mcast.o mconsole.o net.o ubd.o \
-+      hostaudio.o pcap.o port.o harddog.o
-+
-+slip-objs := slip_kern.o slip_user.o
-+slirp-objs := slirp_kern.o slirp_user.o
-+daemon-objs := daemon_kern.o daemon_user.o
-+mcast-objs := mcast_kern.o mcast_user.o
-+pcap-objs := pcap_kern.o pcap_user.o -lpcap -L/usr/lib
-+net-objs := net_kern.o net_user.o
-+mconsole-objs := mconsole_kern.o mconsole_user.o
-+hostaudio-objs := hostaudio_kern.o hostaudio_user.o
-+ubd-objs := ubd_kern.o ubd_user.o
-+port-objs := port_kern.o port_user.o
-+harddog-objs := harddog_kern.o harddog_user.o
-+
-+export-objs := mconsole_kern.o
-+
-+obj-y = 
-+obj-$(CONFIG_SSL) += ssl.o 
-+obj-$(CONFIG_UML_NET_SLIP) += slip.o
-+obj-$(CONFIG_UML_NET_SLIRP) += slirp.o
-+obj-$(CONFIG_UML_NET_DAEMON) += daemon.o 
-+obj-$(CONFIG_UML_NET_MCAST) += mcast.o 
-+obj-$(CONFIG_UML_NET_PCAP) += pcap.o 
-+obj-$(CONFIG_UML_NET) += net.o 
-+obj-$(CONFIG_MCONSOLE) += mconsole.o
-+obj-$(CONFIG_MMAPPER) += mmapper_kern.o 
-+obj-$(CONFIG_BLK_DEV_UBD) += ubd.o 
-+obj-$(CONFIG_HOSTAUDIO) += hostaudio.o
-+obj-$(CONFIG_FD_CHAN) += fd.o 
-+obj-$(CONFIG_NULL_CHAN) += null.o 
-+obj-$(CONFIG_PORT_CHAN) += port.o
-+obj-$(CONFIG_PTY_CHAN) += pty.o
-+obj-$(CONFIG_TTY_CHAN) += tty.o 
-+obj-$(CONFIG_XTERM_CHAN) += xterm.o xterm_kern.o
-+obj-$(CONFIG_UML_WATCHDOG) += harddog.o
-+
-+CFLAGS_pcap_user.o = -I/usr/include/pcap
-+
-+obj-y += stdio_console.o $(CHAN_OBJS)
-+
-+USER_SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y) $(obj-m)),$($(f)-objs))
-+
-+USER_OBJS = $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) fd.o \
-+      null.o pty.o tty.o xterm.o
-+
-+include $(TOPDIR)/Rules.make
-+
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
-+
-+clean:
-+
-+modules:
-+
-+fastdep:
-+
-+dep:
-+
-+archmrproper:
-+
-+daemon.o : $(daemon-objs)
-+
-+slip.o : $(slip-objs)
-+
-+slirp.o : $(slirp-objs)
-+
-+mcast.o : $(mcast-objs)
-+
-+pcap.o : $(pcap-objs)
-+
-+mconsole.o : $(mconsole-objs)
-+
-+net.o : $(net-objs)
-+
-+hostaudio.o : $(hostaudio-objs)
-+
-+ubd.o : $(ubd-objs)
-+
-+port.o : $(port-objs)
-+
-+harddog.o : $(harddog-objs)
-+
-+$(list-multi) : # This doesn't work, but should : '%.o : $(%-objs)'
-+      $(LD) $(LD_RFLAG) -r -o $@ $($(patsubst %.o,%,$@)-objs)
 diff -Naur -X ../exclude-files orig/arch/um/drivers/chan_kern.c um/arch/um/drivers/chan_kern.c
---- orig/arch/um/drivers/chan_kern.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/chan_kern.c     Thu Mar  6 19:25:16 2003
+--- orig/arch/um/drivers/chan_kern.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/chan_kern.c     2003-03-06 19:25:16.000000000 -0500
 @@ -0,0 +1,510 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -2183,8 +1530,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/chan_kern.c um/arch/um/drive
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/chan_user.c um/arch/um/drivers/chan_user.c
---- orig/arch/um/drivers/chan_user.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/chan_user.c     Wed Mar 26 13:23:48 2003
+--- orig/arch/um/drivers/chan_user.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/chan_user.c     2003-03-26 13:23:48.000000000 -0500
 @@ -0,0 +1,213 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -2399,9 +1746,390 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/chan_user.c um/arch/um/drive
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/drivers/cow.h um/arch/um/drivers/cow.h
+--- orig/arch/um/drivers/cow.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/cow.h   2003-06-05 14:28:44.000000000 -0400
+@@ -0,0 +1,34 @@
++#ifndef __COW_H__
++#define __COW_H__
++
++#include <asm/types.h>
++
++#if __BYTE_ORDER == __BIG_ENDIAN
++# define ntohll(x) (x)
++# define htonll(x) (x)
++#elif __BYTE_ORDER == __LITTLE_ENDIAN
++# define ntohll(x)  bswap_64(x)
++# define htonll(x)  bswap_64(x)
++#else
++#error "__BYTE_ORDER not defined"
++#endif
++
++extern int init_cow_file(int fd, char *cow_file, char *backing_file, 
++                       int sectorsize, int *bitmap_offset_out, 
++                       unsigned long *bitmap_len_out, int *data_offset_out);
++extern int read_cow_header(int fd, __u32 *magic_out, char **backing_file_out, 
++                         time_t *mtime_out, __u64 *size_out, 
++                         int *sectorsize_out, int *bitmap_offset_out);
++extern int write_cow_header(char *cow_file, int fd, char *backing_file, 
++                          int sectorsize, long long *size);
++extern void cow_sizes(__u64 size, int sectorsize, int bitmap_offset, 
++                    unsigned long *bitmap_len_out, int *data_offset_out);
++
++#endif
++
++/*
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+diff -Naur -X ../exclude-files orig/arch/um/drivers/cow_sys.h um/arch/um/drivers/cow_sys.h
+--- orig/arch/um/drivers/cow_sys.h     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/cow_sys.h       2003-06-05 14:29:25.000000000 -0400
+@@ -0,0 +1,48 @@
++#ifndef __COW_SYS_H__
++#define __COW_SYS_H__
++
++#include "kern_util.h"
++#include "user_util.h"
++#include "os.h"
++#include "user.h"
++
++static inline void *cow_malloc(int size)
++{
++      return(um_kmalloc(size));
++}
++
++static inline void cow_free(void *ptr)
++{
++      kfree(ptr);
++}
++
++#define cow_printf printk
++
++static inline char *cow_strdup(char *str)
++{
++      return(uml_strdup(str));
++}
++
++static inline int cow_seek_file(int fd, __u64 offset)
++{
++      return(os_seek_file(fd, offset));
++}
++
++static inline int cow_file_size(char *file, __u64 *size_out)
++{
++      return(os_file_size(file, size_out));
++}
++
++static inline int cow_write_file(int fd, char *buf, int size)
++{
++      return(os_write_file(fd, buf, size));
++}
++
++#endif
++
++/*
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+diff -Naur -X ../exclude-files orig/arch/um/drivers/cow_user.c um/arch/um/drivers/cow_user.c
+--- orig/arch/um/drivers/cow_user.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/cow_user.c      2003-06-05 14:39:18.000000000 -0400
+@@ -0,0 +1,287 @@
++#include <stddef.h>
++#include <string.h>
++#include <errno.h>
++#include <unistd.h>
++#include <byteswap.h>
++#include <sys/stat.h>
++#include <sys/time.h>
++#include <sys/param.h>
++#include <netinet/in.h>
++
++#include "cow.h"
++#include "cow_sys.h"
++
++#define PATH_LEN_V1 256
++
++struct cow_header_v1 {
++      int magic;
++      int version;
++      char backing_file[PATH_LEN_V1];
++      time_t mtime;
++      __u64 size;
++      int sectorsize;
++};
++
++#define PATH_LEN_V2 MAXPATHLEN
++
++struct cow_header_v2 {
++      unsigned long magic;
++      unsigned long version;
++      char backing_file[PATH_LEN_V2];
++      time_t mtime;
++      __u64 size;
++      int sectorsize;
++};
++
++union cow_header {
++      struct cow_header_v1 v1;
++      struct cow_header_v2 v2;
++};
++
++#define COW_MAGIC 0x4f4f4f4d  /* MOOO */
++#define COW_VERSION 2
++
++void cow_sizes(__u64 size, int sectorsize, int bitmap_offset, 
++             unsigned long *bitmap_len_out, int *data_offset_out)
++{
++      *bitmap_len_out = (size + sectorsize - 1) / (8 * sectorsize);
++
++      *data_offset_out = bitmap_offset + *bitmap_len_out;
++      *data_offset_out = (*data_offset_out + sectorsize - 1) / sectorsize;
++      *data_offset_out *= sectorsize;
++}
++
++static int absolutize(char *to, int size, char *from)
++{
++      char save_cwd[256], *slash;
++      int remaining;
++
++      if(getcwd(save_cwd, sizeof(save_cwd)) == NULL) {
++              cow_printf("absolutize : unable to get cwd - errno = %d\n", 
++                         errno);
++              return(-1);
++      }
++      slash = strrchr(from, '/');
++      if(slash != NULL){
++              *slash = '\0';
++              if(chdir(from)){
++                      *slash = '/';
++                      cow_printf("absolutize : Can't cd to '%s' - " 
++                                 "errno = %d\n", from, errno);
++                      return(-1);
++              }
++              *slash = '/';
++              if(getcwd(to, size) == NULL){
++                      cow_printf("absolutize : unable to get cwd of '%s' - "
++                             "errno = %d\n", from, errno);
++                      return(-1);
++              }
++              remaining = size - strlen(to);
++              if(strlen(slash) + 1 > remaining){
++                      cow_printf("absolutize : unable to fit '%s' into %d "
++                             "chars\n", from, size);
++                      return(-1);
++              }
++              strcat(to, slash);
++      }
++      else {
++              if(strlen(save_cwd) + 1 + strlen(from) + 1 > size){
++                      cow_printf("absolutize : unable to fit '%s' into %d "
++                             "chars\n", from, size);
++                      return(-1);
++              }
++              strcpy(to, save_cwd);
++              strcat(to, "/");
++              strcat(to, from);
++      }
++      chdir(save_cwd);
++      return(0);
++}
++
++int write_cow_header(char *cow_file, int fd, char *backing_file, 
++                   int sectorsize, long long *size)
++{
++        struct cow_header_v2 *header;
++      struct stat64 buf;
++      int err;
++
++      err = cow_seek_file(fd, 0);
++      if(err != 0){
++              cow_printf("write_cow_header - lseek failed, errno = %d\n", 
++                         errno);
++              return(-errno);
++      }
++
++      err = -ENOMEM;
++      header = cow_malloc(sizeof(*header));
++      if(header == NULL){
++              cow_printf("Failed to allocate COW V2 header\n");
++              goto out;
++      }
++      header->magic = htonl(COW_MAGIC);
++      header->version = htonl(COW_VERSION);
++
++      err = -EINVAL;
++      if(strlen(backing_file) > sizeof(header->backing_file) - 1){
++              cow_printf("Backing file name \"%s\" is too long - names are "
++                         "limited to %d characters\n", backing_file, 
++                         sizeof(header->backing_file) - 1);
++              goto out_free;
++      }
++
++      if(absolutize(header->backing_file, sizeof(header->backing_file), 
++                    backing_file))
++              goto out_free;
++
++      err = stat64(header->backing_file, &buf);
++      if(err < 0){
++              cow_printf("Stat of backing file '%s' failed, errno = %d\n",
++                         header->backing_file, errno);
++              err = -errno;
++              goto out_free;
++      }
++
++      err = cow_file_size(header->backing_file, size);
++      if(err){
++              cow_printf("Couldn't get size of backing file '%s', "
++                         "errno = %d\n", header->backing_file, -*size);
++              goto out_free;
++      }
++
++      header->mtime = htonl(buf.st_mtime);
++      header->size = htonll(*size);
++      header->sectorsize = htonl(sectorsize);
++
++      err = write(fd, header, sizeof(*header));
++      if(err != sizeof(*header)){
++              cow_printf("Write of header to new COW file '%s' failed, "
++                         "errno = %d\n", cow_file, errno);
++              goto out_free;
++      }
++      err = 0;
++ out_free:
++      cow_free(header);
++ out:
++      return(err);
++}
++
++int read_cow_header(int fd, __u32 *magic_out, char **backing_file_out, 
++                  time_t *mtime_out, __u64 *size_out, 
++                  int *sectorsize_out, int *bitmap_offset_out)
++{
++      union cow_header *header;
++      char *file;
++      int err, n;
++      unsigned long version, magic;
++
++      header = cow_malloc(sizeof(*header));
++      if(header == NULL){
++              cow_printf("read_cow_header - Failed to allocate header\n");
++              return(-ENOMEM);
++      }
++      err = -EINVAL;
++      n = read(fd, header, sizeof(*header));
++      if(n < offsetof(typeof(header->v1), backing_file)){
++              cow_printf("read_cow_header - short header\n");
++              goto out;
++      }
++
++      magic = header->v1.magic;
++      if(magic == COW_MAGIC) {
++              version = header->v1.version;
++      }
++      else if(magic == ntohl(COW_MAGIC)){
++              version = ntohl(header->v1.version);
++      }
++      else goto out;
++
++      *magic_out = COW_MAGIC;
++
++      if(version == 1){
++              if(n < sizeof(header->v1)){
++                      cow_printf("read_cow_header - failed to read V1 "
++                                 "header\n");
++                      goto out;
++              }
++              *mtime_out = header->v1.mtime;
++              *size_out = header->v1.size;
++              *sectorsize_out = header->v1.sectorsize;
++              *bitmap_offset_out = sizeof(header->v1);
++              file = header->v1.backing_file;
++      }
++      else if(version == 2){
++              if(n < sizeof(header->v2)){
++                      cow_printf("read_cow_header - failed to read V2 "
++                                 "header\n");
++                      goto out;
++              }
++              *mtime_out = ntohl(header->v2.mtime);
++              *size_out = ntohll(header->v2.size);
++              *sectorsize_out = ntohl(header->v2.sectorsize);
++              *bitmap_offset_out = sizeof(header->v2);
++              file = header->v2.backing_file;
++      }
++      else {
++              cow_printf("read_cow_header - invalid COW version\n");
++              goto out;
++      }
++      err = -ENOMEM;
++      *backing_file_out = cow_strdup(file);
++      if(*backing_file_out == NULL){
++              cow_printf("read_cow_header - failed to allocate backing "
++                         "file\n");
++              goto out;
++      }
++      err = 0;
++ out:
++      cow_free(header);
++      return(err);
++}
++
++int init_cow_file(int fd, char *cow_file, char *backing_file, int sectorsize,
++                int *bitmap_offset_out, unsigned long *bitmap_len_out, 
++                int *data_offset_out)
++{
++      __u64 size, offset;
++      char zero = 0;
++      int err;
++
++      err = write_cow_header(cow_file, fd, backing_file, sectorsize, &size);
++      if(err) 
++              goto out;
++      
++      cow_sizes(size, sectorsize, sizeof(struct cow_header_v2), 
++                bitmap_len_out, data_offset_out);
++      *bitmap_offset_out = sizeof(struct cow_header_v2);
++
++      offset = *data_offset_out + size - sizeof(zero);
++      err = cow_seek_file(fd, offset);
++      if(err != 0){
++              cow_printf("cow bitmap lseek failed : errno = %d\n", errno);
++              goto out;
++      }
++
++      /* does not really matter how much we write it is just to set EOF 
++       * this also sets the entire COW bitmap
++       * to zero without having to allocate it 
++       */
++      err = cow_write_file(fd, &zero, sizeof(zero));
++      if(err != sizeof(zero)){
++              err = -EINVAL;
++              cow_printf("Write of bitmap to new COW file '%s' failed, "
++                         "errno = %d\n", cow_file, errno);
++              goto out;
++      }
++
++      return(0);
++
++ out:
++      return(err);
++}
++
++/*
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/daemon.h um/arch/um/drivers/daemon.h
---- orig/arch/um/drivers/daemon.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/daemon.h        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/daemon.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/daemon.h        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,35 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -2439,8 +2167,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/daemon.h um/arch/um/drivers/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/daemon_kern.c um/arch/um/drivers/daemon_kern.c
---- orig/arch/um/drivers/daemon_kern.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/daemon_kern.c   Sun Dec 15 21:19:17 2002
+--- orig/arch/um/drivers/daemon_kern.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/daemon_kern.c   2002-12-15 21:19:17.000000000 -0500
 @@ -0,0 +1,113 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org) and 
@@ -2556,8 +2284,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/daemon_kern.c um/arch/um/dri
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/daemon_user.c um/arch/um/drivers/daemon_user.c
---- orig/arch/um/drivers/daemon_user.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/daemon_user.c   Fri Jan 17 13:48:59 2003
+--- orig/arch/um/drivers/daemon_user.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/daemon_user.c   2003-01-17 13:48:59.000000000 -0500
 @@ -0,0 +1,195 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org) and 
@@ -2755,8 +2483,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/daemon_user.c um/arch/um/dri
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/fd.c um/arch/um/drivers/fd.c
---- orig/arch/um/drivers/fd.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/fd.c    Sun Dec 15 20:57:25 2002
+--- orig/arch/um/drivers/fd.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/fd.c    2002-12-15 20:57:25.000000000 -0500
 @@ -0,0 +1,96 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -2855,8 +2583,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/fd.c um/arch/um/drivers/fd.c
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/harddog_kern.c um/arch/um/drivers/harddog_kern.c
---- orig/arch/um/drivers/harddog_kern.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/harddog_kern.c  Sun Dec 15 20:57:42 2002
+--- orig/arch/um/drivers/harddog_kern.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/harddog_kern.c  2002-12-15 20:57:42.000000000 -0500
 @@ -0,0 +1,194 @@
 +/* UML hardware watchdog, shamelessly stolen from:
 + *
@@ -3053,8 +2781,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/harddog_kern.c um/arch/um/dr
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/harddog_user.c um/arch/um/drivers/harddog_user.c
---- orig/arch/um/drivers/harddog_user.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/harddog_user.c  Wed Dec  4 16:38:05 2002
+--- orig/arch/um/drivers/harddog_user.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/harddog_user.c  2002-12-04 16:38:05.000000000 -0500
 @@ -0,0 +1,137 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -3194,8 +2922,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/harddog_user.c um/arch/um/dr
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/drivers/hostaudio_kern.c
---- orig/arch/um/drivers/hostaudio_kern.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/hostaudio_kern.c        Fri Mar 28 21:57:16 2003
+--- orig/arch/um/drivers/hostaudio_kern.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/hostaudio_kern.c        2003-03-28 21:57:16.000000000 -0500
 @@ -0,0 +1,330 @@
 +/* 
 + * Copyright (C) 2002 Steve Schmidtke 
@@ -3528,8 +3256,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_kern.c um/arch/um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_user.c um/arch/um/drivers/hostaudio_user.c
---- orig/arch/um/drivers/hostaudio_user.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/hostaudio_user.c        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/hostaudio_user.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/hostaudio_user.c        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,149 @@
 +/* 
 + * Copyright (C) 2002 Steve Schmidtke 
@@ -3681,8 +3409,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/hostaudio_user.c um/arch/um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/line.c um/arch/um/drivers/line.c
---- orig/arch/um/drivers/line.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/line.c  Wed Mar 26 15:09:44 2003
+--- orig/arch/um/drivers/line.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/line.c  2003-03-26 15:09:44.000000000 -0500
 @@ -0,0 +1,589 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -4273,9 +4001,107 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/line.c um/arch/um/drivers/li
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/drivers/Makefile um/arch/um/drivers/Makefile
+--- orig/arch/um/drivers/Makefile      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/Makefile        2003-06-05 13:48:51.000000000 -0400
+@@ -0,0 +1,94 @@
++# 
++# Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET := built-in.o 
++
++CHAN_OBJS := chan_kern.o chan_user.o line.o 
++
++list-multi := slip.o slirp.o daemon.o mcast.o mconsole.o net.o ubd.o \
++      hostaudio.o pcap.o port.o harddog.o
++
++slip-objs := slip_kern.o slip_user.o
++slirp-objs := slirp_kern.o slirp_user.o
++daemon-objs := daemon_kern.o daemon_user.o
++mcast-objs := mcast_kern.o mcast_user.o
++pcap-objs := pcap_kern.o pcap_user.o -lpcap -L/usr/lib
++net-objs := net_kern.o net_user.o
++mconsole-objs := mconsole_kern.o mconsole_user.o
++hostaudio-objs := hostaudio_kern.o hostaudio_user.o
++ubd-objs := ubd_kern.o ubd_user.o cow_user.o
++port-objs := port_kern.o port_user.o
++harddog-objs := harddog_kern.o harddog_user.o
++
++export-objs := mconsole_kern.o
++
++obj-y = 
++obj-$(CONFIG_SSL) += ssl.o 
++obj-$(CONFIG_UML_NET_SLIP) += slip.o
++obj-$(CONFIG_UML_NET_SLIRP) += slirp.o
++obj-$(CONFIG_UML_NET_DAEMON) += daemon.o 
++obj-$(CONFIG_UML_NET_MCAST) += mcast.o 
++obj-$(CONFIG_UML_NET_PCAP) += pcap.o 
++obj-$(CONFIG_UML_NET) += net.o 
++obj-$(CONFIG_MCONSOLE) += mconsole.o
++obj-$(CONFIG_MMAPPER) += mmapper_kern.o 
++obj-$(CONFIG_BLK_DEV_UBD) += ubd.o 
++obj-$(CONFIG_HOSTAUDIO) += hostaudio.o
++obj-$(CONFIG_FD_CHAN) += fd.o 
++obj-$(CONFIG_NULL_CHAN) += null.o 
++obj-$(CONFIG_PORT_CHAN) += port.o
++obj-$(CONFIG_PTY_CHAN) += pty.o
++obj-$(CONFIG_TTY_CHAN) += tty.o 
++obj-$(CONFIG_XTERM_CHAN) += xterm.o xterm_kern.o
++obj-$(CONFIG_UML_WATCHDOG) += harddog.o
++
++CFLAGS_pcap_user.o = -I/usr/include/pcap
++
++obj-y += stdio_console.o $(CHAN_OBJS)
++
++USER_SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y) $(obj-m)),$($(f)-objs))
++
++USER_OBJS = $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) fd.o \
++      null.o pty.o tty.o xterm.o
++
++include $(TOPDIR)/Rules.make
++
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++
++clean:
++
++modules:
++
++fastdep:
++
++dep:
++
++archmrproper:
++
++daemon.o : $(daemon-objs)
++
++slip.o : $(slip-objs)
++
++slirp.o : $(slirp-objs)
++
++mcast.o : $(mcast-objs)
++
++pcap.o : $(pcap-objs)
++
++mconsole.o : $(mconsole-objs)
++
++net.o : $(net-objs)
++
++hostaudio.o : $(hostaudio-objs)
++
++ubd.o : $(ubd-objs)
++
++port.o : $(port-objs)
++
++harddog.o : $(harddog-objs)
++
++$(list-multi) : # This doesn't work, but should : '%.o : $(%-objs)'
++      $(LD) $(LD_RFLAG) -r -o $@ $($(patsubst %.o,%,$@)-objs)
 diff -Naur -X ../exclude-files orig/arch/um/drivers/mcast.h um/arch/um/drivers/mcast.h
---- orig/arch/um/drivers/mcast.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/mcast.h Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/mcast.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/mcast.h 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,30 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -4308,8 +4134,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mcast.h um/arch/um/drivers/m
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/mcast_kern.c um/arch/um/drivers/mcast_kern.c
---- orig/arch/um/drivers/mcast_kern.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/mcast_kern.c    Sun Dec 15 20:58:55 2002
+--- orig/arch/um/drivers/mcast_kern.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/mcast_kern.c    2002-12-15 20:58:55.000000000 -0500
 @@ -0,0 +1,145 @@
 +/*
 + * user-mode-linux networking multicast transport
@@ -4457,8 +4283,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mcast_kern.c um/arch/um/driv
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/mcast_user.c um/arch/um/drivers/mcast_user.c
---- orig/arch/um/drivers/mcast_user.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/mcast_user.c    Sun Dec 15 21:19:16 2002
+--- orig/arch/um/drivers/mcast_user.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/mcast_user.c    2002-12-15 21:19:16.000000000 -0500
 @@ -0,0 +1,175 @@
 +/*
 + * user-mode-linux networking multicast transport
@@ -4636,8 +4462,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mcast_user.c um/arch/um/driv
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/mconsole_kern.c um/arch/um/drivers/mconsole_kern.c
---- orig/arch/um/drivers/mconsole_kern.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/mconsole_kern.c Fri Mar 28 21:58:11 2003
+--- orig/arch/um/drivers/mconsole_kern.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/mconsole_kern.c 2003-03-28 21:58:11.000000000 -0500
 @@ -0,0 +1,453 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
@@ -5093,8 +4919,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mconsole_kern.c um/arch/um/d
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/mconsole_user.c um/arch/um/drivers/mconsole_user.c
---- orig/arch/um/drivers/mconsole_user.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/mconsole_user.c Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/mconsole_user.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/mconsole_user.c 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,212 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
@@ -5309,8 +5135,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mconsole_user.c um/arch/um/d
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/mmapper_kern.c um/arch/um/drivers/mmapper_kern.c
---- orig/arch/um/drivers/mmapper_kern.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/mmapper_kern.c  Sun Dec 15 21:03:08 2002
+--- orig/arch/um/drivers/mmapper_kern.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/mmapper_kern.c  2002-12-15 21:03:08.000000000 -0500
 @@ -0,0 +1,148 @@
 +/*
 + * arch/um/drivers/mmapper_kern.c
@@ -5461,8 +5287,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/mmapper_kern.c um/arch/um/dr
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/net_kern.c um/arch/um/drivers/net_kern.c
---- orig/arch/um/drivers/net_kern.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/net_kern.c      Sun Dec 15 21:19:16 2002
+--- orig/arch/um/drivers/net_kern.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/net_kern.c      2002-12-15 21:19:16.000000000 -0500
 @@ -0,0 +1,870 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org) and 
@@ -6335,8 +6161,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/net_kern.c um/arch/um/driver
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/net_user.c um/arch/um/drivers/net_user.c
---- orig/arch/um/drivers/net_user.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/net_user.c      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/net_user.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/net_user.c      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,254 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -6593,8 +6419,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/net_user.c um/arch/um/driver
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/null.c um/arch/um/drivers/null.c
---- orig/arch/um/drivers/null.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/null.c  Sun Dec 15 21:04:00 2002
+--- orig/arch/um/drivers/null.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/null.c  2002-12-15 21:04:00.000000000 -0500
 @@ -0,0 +1,56 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -6653,8 +6479,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/null.c um/arch/um/drivers/nu
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/pcap_kern.c um/arch/um/drivers/pcap_kern.c
---- orig/arch/um/drivers/pcap_kern.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/pcap_kern.c     Sun Dec 15 21:19:15 2002
+--- orig/arch/um/drivers/pcap_kern.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/pcap_kern.c     2002-12-15 21:19:15.000000000 -0500
 @@ -0,0 +1,127 @@
 +/*
 + * Copyright (C) 2002 Jeff Dike <jdike@karaya.com>
@@ -6784,8 +6610,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/pcap_kern.c um/arch/um/drive
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/pcap_user.c um/arch/um/drivers/pcap_user.c
---- orig/arch/um/drivers/pcap_user.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/pcap_user.c     Sun Dec 15 21:04:39 2002
+--- orig/arch/um/drivers/pcap_user.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/pcap_user.c     2002-12-15 21:04:39.000000000 -0500
 @@ -0,0 +1,143 @@
 +/*
 + * Copyright (C) 2002 Jeff Dike <jdike@karaya.com>
@@ -6931,8 +6757,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/pcap_user.c um/arch/um/drive
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/pcap_user.h um/arch/um/drivers/pcap_user.h
---- orig/arch/um/drivers/pcap_user.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/pcap_user.h     Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/pcap_user.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/pcap_user.h     2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,31 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -6966,8 +6792,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/pcap_user.h um/arch/um/drive
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/port.h um/arch/um/drivers/port.h
---- orig/arch/um/drivers/port.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/port.h  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/port.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/port.h  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,30 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -7000,8 +6826,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/port.h um/arch/um/drivers/po
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/port_kern.c um/arch/um/drivers/port_kern.c
---- orig/arch/um/drivers/port_kern.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/port_kern.c     Mon Dec 30 20:57:42 2002
+--- orig/arch/um/drivers/port_kern.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/port_kern.c     2002-12-30 20:57:42.000000000 -0500
 @@ -0,0 +1,302 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -7306,8 +7132,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/port_kern.c um/arch/um/drive
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/port_user.c um/arch/um/drivers/port_user.c
---- orig/arch/um/drivers/port_user.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/port_user.c     Mon Dec 16 22:46:20 2002
+--- orig/arch/um/drivers/port_user.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/port_user.c     2002-12-16 22:46:20.000000000 -0500
 @@ -0,0 +1,206 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -7516,8 +7342,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/port_user.c um/arch/um/drive
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/pty.c um/arch/um/drivers/pty.c
---- orig/arch/um/drivers/pty.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/pty.c   Sun Dec 15 21:06:01 2002
+--- orig/arch/um/drivers/pty.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/pty.c   2002-12-15 21:06:01.000000000 -0500
 @@ -0,0 +1,148 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -7668,8 +7494,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/pty.c um/arch/um/drivers/pty
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/slip.h um/arch/um/drivers/slip.h
---- orig/arch/um/drivers/slip.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/slip.h  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/slip.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/slip.h  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,39 @@
 +#ifndef __UM_SLIP_H
 +#define __UM_SLIP_H
@@ -7711,8 +7537,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/slip.h um/arch/um/drivers/sl
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/slip_kern.c um/arch/um/drivers/slip_kern.c
---- orig/arch/um/drivers/slip_kern.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/slip_kern.c     Sun Dec 15 21:06:24 2002
+--- orig/arch/um/drivers/slip_kern.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/slip_kern.c     2002-12-15 21:06:24.000000000 -0500
 @@ -0,0 +1,109 @@
 +#include "linux/config.h"
 +#include "linux/kernel.h"
@@ -7824,8 +7650,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/slip_kern.c um/arch/um/drive
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/slip_proto.h um/arch/um/drivers/slip_proto.h
---- orig/arch/um/drivers/slip_proto.h  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/slip_proto.h    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/slip_proto.h  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/slip_proto.h    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,93 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -7921,8 +7747,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/slip_proto.h um/arch/um/driv
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/slip_user.c um/arch/um/drivers/slip_user.c
---- orig/arch/um/drivers/slip_user.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/slip_user.c     Sun Dec 15 21:06:35 2002
+--- orig/arch/um/drivers/slip_user.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/slip_user.c     2002-12-15 21:06:35.000000000 -0500
 @@ -0,0 +1,279 @@
 +#include <stdio.h>
 +#include <stdlib.h>
@@ -8204,8 +8030,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/slip_user.c um/arch/um/drive
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/slirp.h um/arch/um/drivers/slirp.h
---- orig/arch/um/drivers/slirp.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/slirp.h Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/slirp.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/slirp.h 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,51 @@
 +#ifndef __UM_SLIRP_H
 +#define __UM_SLIRP_H
@@ -8259,8 +8085,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/slirp.h um/arch/um/drivers/s
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/slirp_kern.c um/arch/um/drivers/slirp_kern.c
---- orig/arch/um/drivers/slirp_kern.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/slirp_kern.c    Sun Dec 15 21:06:54 2002
+--- orig/arch/um/drivers/slirp_kern.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/slirp_kern.c    2002-12-15 21:06:54.000000000 -0500
 @@ -0,0 +1,132 @@
 +#include "linux/kernel.h"
 +#include "linux/stddef.h"
@@ -8395,8 +8221,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/slirp_kern.c um/arch/um/driv
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/slirp_user.c um/arch/um/drivers/slirp_user.c
---- orig/arch/um/drivers/slirp_user.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/slirp_user.c    Sun Dec 15 21:07:08 2002
+--- orig/arch/um/drivers/slirp_user.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/slirp_user.c    2002-12-15 21:07:08.000000000 -0500
 @@ -0,0 +1,202 @@
 +#include <stdio.h>
 +#include <stdlib.h>
@@ -8601,8 +8427,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/slirp_user.c um/arch/um/driv
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/ssl.c um/arch/um/drivers/ssl.c
---- orig/arch/um/drivers/ssl.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/ssl.c   Thu Mar  6 18:55:01 2003
+--- orig/arch/um/drivers/ssl.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/ssl.c   2003-03-06 18:55:01.000000000 -0500
 @@ -0,0 +1,265 @@
 +/* 
 + * Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
@@ -8870,8 +8696,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ssl.c um/arch/um/drivers/ssl
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/ssl.h um/arch/um/drivers/ssl.h
---- orig/arch/um/drivers/ssl.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/ssl.h   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/ssl.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/ssl.h   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,23 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -8897,8 +8723,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ssl.h um/arch/um/drivers/ssl
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/stdio_console.c um/arch/um/drivers/stdio_console.c
---- orig/arch/um/drivers/stdio_console.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/stdio_console.c Sun Dec 15 21:08:20 2002
+--- orig/arch/um/drivers/stdio_console.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/stdio_console.c 2002-12-15 21:08:20.000000000 -0500
 @@ -0,0 +1,250 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -9151,8 +8977,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/stdio_console.c um/arch/um/d
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/stdio_console.h um/arch/um/drivers/stdio_console.h
---- orig/arch/um/drivers/stdio_console.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/stdio_console.h Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/stdio_console.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/stdio_console.h 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,21 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -9176,8 +9002,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/stdio_console.h um/arch/um/d
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/tty.c um/arch/um/drivers/tty.c
---- orig/arch/um/drivers/tty.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/tty.c   Sun Dec 15 21:08:41 2002
+--- orig/arch/um/drivers/tty.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/tty.c   2002-12-15 21:08:41.000000000 -0500
 @@ -0,0 +1,86 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -9266,8 +9092,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/tty.c um/arch/um/drivers/tty
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_kern.c um/arch/um/drivers/ubd_kern.c
---- orig/arch/um/drivers/ubd_kern.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/ubd_kern.c      Tue Mar 11 15:46:36 2003
+--- orig/arch/um/drivers/ubd_kern.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/ubd_kern.c      2003-03-11 15:46:36.000000000 -0500
 @@ -0,0 +1,1067 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -10337,9 +10163,9 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_kern.c um/arch/um/driver
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/drivers/ubd_user.c
---- orig/arch/um/drivers/ubd_user.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/ubd_user.c      Thu Mar  6 18:08:55 2003
-@@ -0,0 +1,626 @@
+--- orig/arch/um/drivers/ubd_user.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/ubd_user.c      2003-06-05 14:39:22.000000000 -0400
+@@ -0,0 +1,372 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
 + * Copyright (C) 2001 Ridgerun,Inc (glonnon@ridgerun.com)
@@ -10366,128 +10192,10 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +#include "user.h"
 +#include "ubd_user.h"
 +#include "os.h"
++#include "cow.h"
 +
 +#include <endian.h>
 +#include <byteswap.h>
-+#if __BYTE_ORDER == __BIG_ENDIAN
-+# define ntohll(x) (x)
-+# define htonll(x) (x)
-+#elif __BYTE_ORDER == __LITTLE_ENDIAN
-+# define ntohll(x)  bswap_64(x)
-+# define htonll(x)  bswap_64(x)
-+#else
-+#error "__BYTE_ORDER not defined"
-+#endif
-+
-+#define PATH_LEN_V1 256
-+
-+struct cow_header_v1 {
-+      int magic;
-+      int version;
-+      char backing_file[PATH_LEN_V1];
-+      time_t mtime;
-+      __u64 size;
-+      int sectorsize;
-+};
-+
-+#define PATH_LEN_V2 MAXPATHLEN
-+
-+struct cow_header_v2 {
-+      unsigned long magic;
-+      unsigned long version;
-+      char backing_file[PATH_LEN_V2];
-+      time_t mtime;
-+      __u64 size;
-+      int sectorsize;
-+};
-+
-+union cow_header {
-+      struct cow_header_v1 v1;
-+      struct cow_header_v2 v2;
-+};
-+
-+#define COW_MAGIC 0x4f4f4f4d  /* MOOO */
-+#define COW_VERSION 2
-+
-+static void sizes(__u64 size, int sectorsize, int bitmap_offset, 
-+                unsigned long *bitmap_len_out, int *data_offset_out)
-+{
-+      *bitmap_len_out = (size + sectorsize - 1) / (8 * sectorsize);
-+
-+      *data_offset_out = bitmap_offset + *bitmap_len_out;
-+      *data_offset_out = (*data_offset_out + sectorsize - 1) / sectorsize;
-+      *data_offset_out *= sectorsize;
-+}
-+
-+static int read_cow_header(int fd, int *magic_out, char **backing_file_out, 
-+                         time_t *mtime_out, __u64 *size_out, 
-+                         int *sectorsize_out, int *bitmap_offset_out)
-+{
-+      union cow_header *header;
-+      char *file;
-+      int err, n;
-+      unsigned long version, magic;
-+
-+      header = um_kmalloc(sizeof(*header));
-+      if(header == NULL){
-+              printk("read_cow_header - Failed to allocate header\n");
-+              return(-ENOMEM);
-+      }
-+      err = -EINVAL;
-+      n = read(fd, header, sizeof(*header));
-+      if(n < offsetof(typeof(header->v1), backing_file)){
-+              printk("read_cow_header - short header\n");
-+              goto out;
-+      }
-+
-+      magic = header->v1.magic;
-+      if(magic == COW_MAGIC) {
-+              version = header->v1.version;
-+      }
-+      else if(magic == ntohl(COW_MAGIC)){
-+              version = ntohl(header->v1.version);
-+      }
-+      else goto out;
-+
-+      *magic_out = COW_MAGIC;
-+
-+      if(version == 1){
-+              if(n < sizeof(header->v1)){
-+                      printk("read_cow_header - failed to read V1 header\n");
-+                      goto out;
-+              }
-+              *mtime_out = header->v1.mtime;
-+              *size_out = header->v1.size;
-+              *sectorsize_out = header->v1.sectorsize;
-+              *bitmap_offset_out = sizeof(header->v1);
-+              file = header->v1.backing_file;
-+      }
-+      else if(version == 2){
-+              if(n < sizeof(header->v2)){
-+                      printk("read_cow_header - failed to read V2 header\n");
-+                      goto out;
-+              }
-+              *mtime_out = ntohl(header->v2.mtime);
-+              *size_out = ntohll(header->v2.size);
-+              *sectorsize_out = ntohl(header->v2.sectorsize);
-+              *bitmap_offset_out = sizeof(header->v2);
-+              file = header->v2.backing_file;
-+      }
-+      else {
-+              printk("read_cow_header - invalid COW version\n");
-+              goto out;
-+      }
-+      err = -ENOMEM;
-+      *backing_file_out = uml_strdup(file);
-+      if(*backing_file_out == NULL){
-+              printk("read_cow_header - failed to allocate backing file\n");
-+              goto out;
-+      }
-+      err = 0;
-+ out:
-+      kfree(header);
-+      return(err);
-+}
 +
 +static int same_backing_files(char *from_cmdline, char *from_cow, char *cow)
 +{
@@ -10520,6 +10228,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +      long long actual;
 +      int err;
 +
++      printk("%ld", htonll(size));
 +      if(stat64(file, &buf) < 0){
 +              printk("Failed to stat backing file \"%s\", errno = %d\n",
 +                     file, errno);
@@ -10557,118 +10266,6 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +      return(0);
 +}
 +
-+static int absolutize(char *to, int size, char *from)
-+{
-+      char save_cwd[256], *slash;
-+      int remaining;
-+
-+      if(getcwd(save_cwd, sizeof(save_cwd)) == NULL) {
-+              printk("absolutize : unable to get cwd - errno = %d\n", errno);
-+              return(-1);
-+      }
-+      slash = strrchr(from, '/');
-+      if(slash != NULL){
-+              *slash = '\0';
-+              if(chdir(from)){
-+                      *slash = '/';
-+                      printk("absolutize : Can't cd to '%s' - errno = %d\n",
-+                             from, errno);
-+                      return(-1);
-+              }
-+              *slash = '/';
-+              if(getcwd(to, size) == NULL){
-+                      printk("absolutize : unable to get cwd of '%s' - "
-+                             "errno = %d\n", from, errno);
-+                      return(-1);
-+              }
-+              remaining = size - strlen(to);
-+              if(strlen(slash) + 1 > remaining){
-+                      printk("absolutize : unable to fit '%s' into %d "
-+                             "chars\n", from, size);
-+                      return(-1);
-+              }
-+              strcat(to, slash);
-+      }
-+      else {
-+              if(strlen(save_cwd) + 1 + strlen(from) + 1 > size){
-+                      printk("absolutize : unable to fit '%s' into %d "
-+                             "chars\n", from, size);
-+                      return(-1);
-+              }
-+              strcpy(to, save_cwd);
-+              strcat(to, "/");
-+              strcat(to, from);
-+      }
-+      chdir(save_cwd);
-+      return(0);
-+}
-+
-+static int write_cow_header(char *cow_file, int fd, char *backing_file, 
-+                          int sectorsize, long long *size)
-+{
-+        struct cow_header_v2 *header;
-+      struct stat64 buf;
-+      int err;
-+
-+      err = os_seek_file(fd, 0);
-+      if(err != 0){
-+              printk("write_cow_header - lseek failed, errno = %d\n", errno);
-+              return(-errno);
-+      }
-+
-+      err = -ENOMEM;
-+      header = um_kmalloc(sizeof(*header));
-+      if(header == NULL){
-+              printk("Failed to allocate COW V2 header\n");
-+              goto out;
-+      }
-+      header->magic = htonl(COW_MAGIC);
-+      header->version = htonl(COW_VERSION);
-+
-+      err = -EINVAL;
-+      if(strlen(backing_file) > sizeof(header->backing_file) - 1){
-+              printk("Backing file name \"%s\" is too long - names are "
-+                     "limited to %d characters\n", backing_file, 
-+                     sizeof(header->backing_file) - 1);
-+              goto out_free;
-+      }
-+
-+      if(absolutize(header->backing_file, sizeof(header->backing_file), 
-+                    backing_file))
-+              goto out_free;
-+
-+      err = stat64(header->backing_file, &buf);
-+      if(err < 0){
-+              printk("Stat of backing file '%s' failed, errno = %d\n",
-+                     header->backing_file, errno);
-+              err = -errno;
-+              goto out_free;
-+      }
-+
-+      err = os_file_size(header->backing_file, size);
-+      if(err){
-+              printk("Couldn't get size of backing file '%s', errno = %d\n",
-+                     header->backing_file, -*size);
-+              goto out_free;
-+      }
-+
-+      header->mtime = htonl(buf.st_mtime);
-+      header->size = htonll(*size);
-+      header->sectorsize = htonl(sectorsize);
-+
-+      err = write(fd, header, sizeof(*header));
-+      if(err != sizeof(*header)){
-+              printk("Write of header to new COW file '%s' failed, "
-+                     "errno = %d\n", cow_file, errno);
-+              goto out_free;
-+      }
-+      err = 0;
-+ out_free:
-+      kfree(header);
-+ out:
-+      return(err);
-+}
-+
 +int open_ubd_file(char *file, struct openflags *openflags, 
 +                char **backing_file_out, int *bitmap_offset_out, 
 +                unsigned long *bitmap_len_out, int *data_offset_out, 
@@ -10725,8 +10322,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +              if(err) goto error;
 +      }
 +
-+      sizes(size, sectorsize, *bitmap_offset_out, bitmap_len_out, 
-+            data_offset_out);
++      cow_sizes(size, sectorsize, *bitmap_offset_out, bitmap_len_out, 
++                data_offset_out);
 +
 +        return(fd);
 + error:
@@ -10738,10 +10335,7 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +                  int sectorsize, int *bitmap_offset_out, 
 +                  unsigned long *bitmap_len_out, int *data_offset_out)
 +{
-+      __u64 offset;
 +      int err, fd;
-+      long long size;
-+      char zero = 0;
 +
 +      flags.c = 1;
 +      fd = open_ubd_file(cow_file, &flags, NULL, NULL, NULL, NULL, NULL);
@@ -10752,35 +10346,13 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 +              goto out;
 +      }
 +
-+      err = write_cow_header(cow_file, fd, backing_file, sectorsize, &size);
-+      if(err) goto out_close;
-+
-+      sizes(size, sectorsize, sizeof(struct cow_header_v2), 
-+            bitmap_len_out, data_offset_out);
-+      *bitmap_offset_out = sizeof(struct cow_header_v2);
-+
-+      offset = *data_offset_out + size - sizeof(zero);
-+      err = os_seek_file(fd, offset);
-+      if(err != 0){
-+              printk("cow bitmap lseek failed : errno = %d\n", errno);
-+              goto out_close;
-+      }
-+
-+      /* does not really matter how much we write it is just to set EOF 
-+       * this also sets the entire COW bitmap
-+       * to zero without having to allocate it 
-+       */
-+      err = os_write_file(fd, &zero, sizeof(zero));
-+      if(err != sizeof(zero)){
-+              printk("Write of bitmap to new COW file '%s' failed, "
-+                     "errno = %d\n", cow_file, errno);
-+              goto out_close;
-+      }
-+
-+      return(fd);
++      err = init_cow_file(fd, cow_file, backing_file, sectorsize, 
++                          bitmap_offset_out, bitmap_len_out, 
++                          data_offset_out);
++      if(!err)
++              return(fd);
 +
-+ out_close:
-+      close(fd);
++      os_close_file(fd);
 + out:
 +      return(err);
 +}
@@ -10967,8 +10539,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/ubd_user.c um/arch/um/driver
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/xterm.c um/arch/um/drivers/xterm.c
---- orig/arch/um/drivers/xterm.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/xterm.c Mon Dec 30 20:49:22 2002
+--- orig/arch/um/drivers/xterm.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/xterm.c 2002-12-30 20:49:22.000000000 -0500
 @@ -0,0 +1,200 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -11171,8 +10743,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/xterm.c um/arch/um/drivers/x
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/xterm.h um/arch/um/drivers/xterm.h
---- orig/arch/um/drivers/xterm.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/xterm.h Wed Oct 23 21:08:04 2002
+--- orig/arch/um/drivers/xterm.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/xterm.h 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,22 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -11197,8 +10769,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/xterm.h um/arch/um/drivers/x
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/drivers/xterm_kern.c um/arch/um/drivers/xterm_kern.c
---- orig/arch/um/drivers/xterm_kern.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/drivers/xterm_kern.c    Tue Dec 17 17:31:20 2002
+--- orig/arch/um/drivers/xterm_kern.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/drivers/xterm_kern.c    2002-12-17 17:31:20.000000000 -0500
 @@ -0,0 +1,79 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -11280,8 +10852,8 @@ diff -Naur -X ../exclude-files orig/arch/um/drivers/xterm_kern.c um/arch/um/driv
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/dyn_link.ld.in um/arch/um/dyn_link.ld.in
---- orig/arch/um/dyn_link.ld.in        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/dyn_link.ld.in  Fri Jan 17 23:37:27 2003
+--- orig/arch/um/dyn_link.ld.in        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/dyn_link.ld.in  2003-01-17 23:37:27.000000000 -0500
 @@ -0,0 +1,172 @@
 +OUTPUT_FORMAT("ELF_FORMAT")
 +OUTPUT_ARCH(ELF_ARCH)
@@ -11455,64 +11027,9 @@ diff -Naur -X ../exclude-files orig/arch/um/dyn_link.ld.in um/arch/um/dyn_link.l
 +  .debug_typenames 0 : { *(.debug_typenames) }
 +  .debug_varnames  0 : { *(.debug_varnames) }
 +}
-diff -Naur -X ../exclude-files orig/arch/um/fs/Makefile um/arch/um/fs/Makefile
---- orig/arch/um/fs/Makefile   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/fs/Makefile     Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,23 @@
-+# 
-+# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+O_TARGET := built-in.o
-+
-+subdir-y =
-+subdir-m =
-+
-+subdir-$(CONFIG_HOSTFS) += hostfs
-+subdir-$(CONFIG_HPPFS) += hppfs
-+
-+obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
-+obj-m += $(join $(subdir-m),$(subdir-m:%=/%.o))
-+
-+include $(TOPDIR)/Rules.make
-+
-+dep:
-+
-+clean:
-+
-+archmrproper:
-diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/Makefile um/arch/um/fs/hostfs/Makefile
---- orig/arch/um/fs/hostfs/Makefile    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/fs/hostfs/Makefile      Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,24 @@
-+# 
-+# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+# struct stat64 changed the inode field name between 2.2 and 2.4 from st_ino
-+# to __st_ino.  It stayed in the same place, so as long as the correct name
-+# is used, hostfs compiled on 2.2 should work on 2.4 and vice versa.
-+
-+STAT64_INO_FIELD := $(shell grep -q __st_ino /usr/include/bits/stat.h && \
-+                              echo __)st_ino
-+
-+USER_CFLAGS := $(USER_CFLAGS) -DSTAT64_INO_FIELD=$(STAT64_INO_FIELD)
-+
-+O_TARGET := hostfs.o
-+obj-y = hostfs_kern.o hostfs_user.o
-+obj-m = $(O_TARGET)
-+
-+USER_OBJS = $(filter %_user.o,$(obj-y))
-+
-+include $(TOPDIR)/Rules.make
-+
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
 diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs.h um/arch/um/fs/hostfs/hostfs.h
---- orig/arch/um/fs/hostfs/hostfs.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/fs/hostfs/hostfs.h      Mon Feb 24 23:00:47 2003
+--- orig/arch/um/fs/hostfs/hostfs.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/fs/hostfs/hostfs.h      2003-05-22 11:03:20.000000000 -0400
 @@ -0,0 +1,69 @@
 +#ifndef __UM_FS_HOSTFS
 +#define __UM_FS_HOSTFS
@@ -11554,7 +11071,7 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs.h um/arch/um/fs/hos
 +                   unsigned long *mtime_out, unsigned long *ctime_out, 
 +                   int *blksize_out, unsigned long long *blocks_out);
 +extern int access_file(char *path, int r, int w, int x);
-+extern int open_file(char *path, int r, int w);
++extern int open_file(char *path, int r, int w, int append);
 +extern int file_type(const char *path, int *rdev);
 +extern void *open_dir(char *path, int *err_out);
 +extern char *read_dir(void *stream, unsigned long long *pos, 
@@ -11584,9 +11101,9 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs.h um/arch/um/fs/hos
 +
 +#endif
 diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/fs/hostfs/hostfs_kern.c
---- orig/arch/um/fs/hostfs/hostfs_kern.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/fs/hostfs/hostfs_kern.c Sun Apr 13 21:29:33 2003
-@@ -0,0 +1,870 @@
+--- orig/arch/um/fs/hostfs/hostfs_kern.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/fs/hostfs/hostfs_kern.c 2003-05-22 11:26:25.000000000 -0400
+@@ -0,0 +1,923 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -11606,6 +11123,7 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +#include "kern.h"
 +#include "user_util.h"
 +#include "2_5compat.h"
++#include "init.h"
 +
 +#define file_hostfs_i(file) (&(file)->f_dentry->d_inode->u.hostfs_i)
 +
@@ -11618,8 +11136,9 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +      .d_delete               = hostfs_d_delete,
 +};
 +
-+/* Not changed */
++/* Changed in hostfs_args before the kernel starts running */
 +static char *root_ino = "/";
++static int append = 0;
 +
 +#define HOSTFS_SUPER_MAGIC 0x00c0ffee
 +
@@ -11627,6 +11146,43 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +static struct inode_operations hostfs_dir_iops;
 +static struct address_space_operations hostfs_link_aops;
 +
++static int __init hostfs_args(char *options, int *add)
++{
++      char *ptr;
++
++      ptr = strchr(options, ',');
++      if(ptr != NULL)
++              *ptr++ = '\0';
++      if(*options != '\0')
++              root_ino = options;
++
++      options = ptr;
++      while(options){
++              ptr = strchr(options, ',');
++              if(ptr != NULL)
++                      *ptr++ = '\0';
++              if(*options != '\0'){
++                      if(!strcmp(options, "append"))
++                              append = 1;
++                      else printf("hostfs_args - unsupported option - %s\n",
++                                  options);
++              }
++              options = ptr;
++      }
++      return(0);
++}
++
++__uml_setup("hostfs=", hostfs_args,
++"hostfs=<root dir>,<flags>,...\n"
++"    This is used to set hostfs parameters.  The root directory argument\n"
++"    is used to confine all hostfs mounts to within the specified directory\n"
++"    tree on the host.  If this isn't specified, then a user inside UML can\n"
++"    mount anything on the host that's accessible to the user that's running\n"
++"    it.\n"
++"    The only flag currently supported is 'append', which specifies that all\n"
++"    files opened by hostfs will be opened in append mode.\n\n"
++);
++
 +static char *dentry_name(struct dentry *dentry, int extra)
 +{
 +      struct dentry *parent;
@@ -11863,7 +11419,7 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +      if(name == NULL) 
 +              return(-ENOMEM);
 +
-+      fd = open_file(name, r, w);
++      fd = open_file(name, r, w, append);
 +      kfree(name);
 +      if(fd < 0) return(fd);
 +      file_hostfs_i(file)->fd = fd;
@@ -11952,6 +11508,8 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +                      PAGE_CACHE_SIZE);
 +      if(err < 0) goto out;
 +
++      memset(&buffer[err], 0, PAGE_CACHE_SIZE - err);
++
 +      flush_dcache_page(page);
 +      SetPageUptodate(page);
 +      if (PageError(page)) ClearPageError(page);
@@ -12013,6 +11571,7 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +static struct address_space_operations hostfs_aops = {
 +      .writepage      = hostfs_writepage,
 +      .readpage       = hostfs_readpage,
++/*    .set_page_dirty = __set_page_dirty_nobuffers, */
 +      .prepare_write  = hostfs_prepare_write,
 +      .commit_write   = hostfs_commit_write
 +};
@@ -12086,7 +11645,7 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +{
 +      struct inode *inode;
 +      char *name;
-+      int error;
++      int error, fd;
 +
 +      inode = get_inode(dir->i_sb, dentry, &error);
 +      if(error) return(error);
@@ -12095,16 +11654,21 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +              iput(inode);
 +              return(-ENOMEM);
 +      }
-+      error = file_create(name, 
-+                          mode & S_IRUSR, mode & S_IWUSR, mode & S_IXUSR, 
-+                          mode & S_IRGRP, mode & S_IWGRP, mode & S_IXGRP, 
-+                          mode & S_IROTH, mode & S_IWOTH, mode & S_IXOTH);
-+      if(!error) error = read_name(inode, name);
++      fd = file_create(name, 
++                       mode & S_IRUSR, mode & S_IWUSR, mode & S_IXUSR, 
++                       mode & S_IRGRP, mode & S_IWGRP, mode & S_IXGRP, 
++                       mode & S_IROTH, mode & S_IWOTH, mode & S_IXOTH);
++      if(fd < 0) 
++              error = fd;
++      else error = read_name(inode, name);
++
 +      kfree(name);
 +      if(error){
 +              iput(inode);
 +              return(error);
 +      }
++      inode->u.hostfs_i.fd = fd;
++      inode->u.hostfs_i.mode = FMODE_READ | FMODE_WRITE;
 +      d_instantiate(dentry, inode);
 +      return(0);
 +}
@@ -12169,6 +11733,9 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +      int err;
 +
 +      if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
++      if(append)
++              return(-EPERM);
++
 +      err = unlink_file(file);
 +      kfree(file);
 +      return(err);
@@ -12276,6 +11843,9 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 +      struct hostfs_iattr attrs;
 +      char *name;
 +      int err;
++      
++      if(append) 
++              attr->ia_valid &= ~ATTR_SIZE;
 +
 +      attrs.ia_valid = 0;
 +      if(attr->ia_valid & ATTR_MODE){
@@ -12458,9 +12028,9 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_kern.c um/arch/um/f
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_user.c um/arch/um/fs/hostfs/hostfs_user.c
---- orig/arch/um/fs/hostfs/hostfs_user.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/fs/hostfs/hostfs_user.c Fri Jan 31 21:48:30 2003
-@@ -0,0 +1,341 @@
+--- orig/arch/um/fs/hostfs/hostfs_user.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/fs/hostfs/hostfs_user.c 2003-05-22 11:06:46.000000000 -0400
+@@ -0,0 +1,347 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -12538,14 +12108,20 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_user.c um/arch/um/f
 +      else return(0);
 +}
 +
-+int open_file(char *path, int r, int w)
++int open_file(char *path, int r, int w, int append)
 +{
 +      int mode = 0, fd;
 +
-+      if(r && !w) mode = O_RDONLY;
-+      else if(!r && w) mode = O_WRONLY;
-+      else if(r && w) mode = O_RDWR;
++      if(r && !w) 
++              mode = O_RDONLY;
++      else if(!r && w) 
++              mode = O_WRONLY;
++      else if(r && w) 
++              mode = O_RDWR;
 +      else panic("Impossible mode in open_file");
++
++      if(append)
++              mode |= O_APPEND;
 +      fd = open64(path, mode);
 +      if(fd < 0) return(-errno);
 +      else return(fd);
@@ -12630,10 +12206,10 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_user.c um/arch/um/f
 +      mode |= or ? S_IROTH : 0;
 +      mode |= ow ? S_IWOTH : 0;
 +      mode |= ox ? S_IXOTH : 0;
-+      fd = open64(name, O_CREAT, mode);
-+      if(fd < 0) return(-errno);
-+      close(fd);
-+      return(0);
++      fd = open64(name, O_CREAT | O_RDWR, mode);
++      if(fd < 0) 
++              return(-errno);
++      return(fd);
 +}
 +
 +int set_attr(const char *file, struct hostfs_iattr *attrs)
@@ -12802,23 +12378,37 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/hostfs_user.c um/arch/um/f
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/Makefile um/arch/um/fs/hppfs/Makefile
---- orig/arch/um/fs/hppfs/Makefile     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/fs/hppfs/Makefile       Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,10 @@
-+O_TARGET := hppfs.o
-+obj-y = hppfs_kern.o #hppfs_user.o
-+obj-m = $(O_TARGET)
+diff -Naur -X ../exclude-files orig/arch/um/fs/hostfs/Makefile um/arch/um/fs/hostfs/Makefile
+--- orig/arch/um/fs/hostfs/Makefile    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/fs/hostfs/Makefile      2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,24 @@
++# 
++# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
 +
-+CFLAGS_hppfs_kern.o := $(CFLAGS)
-+#CFLAGS_hppfs_user.o := $(USER_CFLAGS)
++# struct stat64 changed the inode field name between 2.2 and 2.4 from st_ino
++# to __st_ino.  It stayed in the same place, so as long as the correct name
++# is used, hostfs compiled on 2.2 should work on 2.4 and vice versa.
 +
-+override CFLAGS =  
++STAT64_INO_FIELD := $(shell grep -q __st_ino /usr/include/bits/stat.h && \
++                              echo __)st_ino
++
++USER_CFLAGS := $(USER_CFLAGS) -DSTAT64_INO_FIELD=$(STAT64_INO_FIELD)
++
++O_TARGET := hostfs.o
++obj-y = hostfs_kern.o hostfs_user.o
++obj-m = $(O_TARGET)
++
++USER_OBJS = $(filter %_user.o,$(obj-y))
 +
 +include $(TOPDIR)/Rules.make
++
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
 diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/hppfs_kern.c um/arch/um/fs/hppfs/hppfs_kern.c
---- orig/arch/um/fs/hppfs/hppfs_kern.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/fs/hppfs/hppfs_kern.c   Thu Feb 27 13:14:26 2003
+--- orig/arch/um/fs/hppfs/hppfs_kern.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/fs/hppfs/hppfs_kern.c   2003-02-27 13:14:26.000000000 -0500
 @@ -0,0 +1,725 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -13545,9 +13135,50 @@ diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/hppfs_kern.c um/arch/um/fs/
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/fs/hppfs/Makefile um/arch/um/fs/hppfs/Makefile
+--- orig/arch/um/fs/hppfs/Makefile     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/fs/hppfs/Makefile       2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,10 @@
++O_TARGET := hppfs.o
++obj-y = hppfs_kern.o #hppfs_user.o
++obj-m = $(O_TARGET)
++
++CFLAGS_hppfs_kern.o := $(CFLAGS)
++#CFLAGS_hppfs_user.o := $(USER_CFLAGS)
++
++override CFLAGS =  
++
++include $(TOPDIR)/Rules.make
+diff -Naur -X ../exclude-files orig/arch/um/fs/Makefile um/arch/um/fs/Makefile
+--- orig/arch/um/fs/Makefile   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/fs/Makefile     2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,23 @@
++# 
++# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET := built-in.o
++
++subdir-y =
++subdir-m =
++
++subdir-$(CONFIG_HOSTFS) += hostfs
++subdir-$(CONFIG_HPPFS) += hppfs
++
++obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
++obj-m += $(join $(subdir-m),$(subdir-m:%=/%.o))
++
++include $(TOPDIR)/Rules.make
++
++dep:
++
++clean:
++
++archmrproper:
 diff -Naur -X ../exclude-files orig/arch/um/include/2_5compat.h um/arch/um/include/2_5compat.h
---- orig/arch/um/include/2_5compat.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/2_5compat.h     Thu Feb 27 20:15:19 2003
+--- orig/arch/um/include/2_5compat.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/2_5compat.h     2003-02-27 20:15:19.000000000 -0500
 @@ -0,0 +1,46 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -13595,20 +13226,9 @@ diff -Naur -X ../exclude-files orig/arch/um/include/2_5compat.h um/arch/um/inclu
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/include/Makefile um/arch/um/include/Makefile
---- orig/arch/um/include/Makefile      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/Makefile        Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,7 @@
-+all : sc.h
-+
-+sc.h : ../util/mk_sc
-+      ../util/mk_sc > $@
-+
-+../util/mk_sc :
-+      $(MAKE) -C ../util mk_sc
 diff -Naur -X ../exclude-files orig/arch/um/include/chan_kern.h um/arch/um/include/chan_kern.h
---- orig/arch/um/include/chan_kern.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/chan_kern.h     Fri Nov 15 13:32:35 2002
+--- orig/arch/um/include/chan_kern.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/chan_kern.h     2002-11-15 13:32:35.000000000 -0500
 @@ -0,0 +1,56 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -13667,8 +13287,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/chan_kern.h um/arch/um/inclu
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/chan_user.h um/arch/um/include/chan_user.h
---- orig/arch/um/include/chan_user.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/chan_user.h     Wed Nov  6 16:44:00 2002
+--- orig/arch/um/include/chan_user.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/chan_user.h     2002-11-06 16:44:00.000000000 -0500
 @@ -0,0 +1,66 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -13737,8 +13357,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/chan_user.h um/arch/um/inclu
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/choose-mode.h um/arch/um/include/choose-mode.h
---- orig/arch/um/include/choose-mode.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/choose-mode.h   Fri Jan 17 13:23:32 2003
+--- orig/arch/um/include/choose-mode.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/choose-mode.h   2003-01-17 13:23:32.000000000 -0500
 @@ -0,0 +1,35 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -13776,8 +13396,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/choose-mode.h um/arch/um/inc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/frame.h um/arch/um/include/frame.h
---- orig/arch/um/include/frame.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/frame.h Mon Dec  2 21:43:03 2002
+--- orig/arch/um/include/frame.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/frame.h 2002-12-02 21:43:03.000000000 -0500
 @@ -0,0 +1,53 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -13833,8 +13453,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/frame.h um/arch/um/include/f
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/frame_kern.h um/arch/um/include/frame_kern.h
---- orig/arch/um/include/frame_kern.h  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/frame_kern.h    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/frame_kern.h  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/frame_kern.h    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,34 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -13871,8 +13491,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/frame_kern.h um/arch/um/incl
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/frame_user.h um/arch/um/include/frame_user.h
---- orig/arch/um/include/frame_user.h  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/frame_user.h    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/frame_user.h  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/frame_user.h    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,23 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -13898,8 +13518,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/frame_user.h um/arch/um/incl
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/helper.h um/arch/um/include/helper.h
---- orig/arch/um/include/helper.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/helper.h        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/helper.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/helper.h        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,27 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -13929,8 +13549,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/helper.h um/arch/um/include/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/hostaudio.h um/arch/um/include/hostaudio.h
---- orig/arch/um/include/hostaudio.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/hostaudio.h     Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/hostaudio.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/hostaudio.h     2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,48 @@
 +/* 
 + * Copyright (C) 2002 Steve Schmidtke 
@@ -13981,8 +13601,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/hostaudio.h um/arch/um/inclu
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/init.h um/arch/um/include/init.h
---- orig/arch/um/include/init.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/init.h  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/init.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/init.h  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,114 @@
 +#ifndef _LINUX_UML_INIT_H
 +#define _LINUX_UML_INIT_H
@@ -14099,8 +13719,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/init.h um/arch/um/include/in
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/initrd.h um/arch/um/include/initrd.h
---- orig/arch/um/include/initrd.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/initrd.h        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/initrd.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/initrd.h        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,22 @@
 +/*
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -14124,9 +13744,40 @@ diff -Naur -X ../exclude-files orig/arch/um/include/initrd.h um/arch/um/include/
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/include/irq_kern.h um/arch/um/include/irq_kern.h
+--- orig/arch/um/include/irq_kern.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/irq_kern.h      2003-05-15 13:57:48.000000000 -0400
+@@ -0,0 +1,27 @@
++/* 
++ * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#ifndef __IRQ_KERN_H__
++#define __IRQ_KERN_H__
++
++#include "linux/interrupt.h"
++
++extern int um_request_irq(unsigned int irq, int fd, int type,
++                        void (*handler)(int, void *, struct pt_regs *),
++                        unsigned long irqflags,  const char * devname,
++                        void *dev_id);
++
++#endif
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/arch/um/include/irq_user.h um/arch/um/include/irq_user.h
---- orig/arch/um/include/irq_user.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/irq_user.h      Sun Dec  8 20:38:42 2002
+--- orig/arch/um/include/irq_user.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/irq_user.h      2002-12-08 20:38:42.000000000 -0500
 @@ -0,0 +1,35 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -14164,8 +13815,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/irq_user.h um/arch/um/includ
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/kern.h um/arch/um/include/kern.h
---- orig/arch/um/include/kern.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/kern.h  Sat Nov  2 21:38:02 2002
+--- orig/arch/um/include/kern.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/kern.h  2002-11-02 21:38:02.000000000 -0500
 @@ -0,0 +1,48 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -14216,8 +13867,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/kern.h um/arch/um/include/ke
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/kern_util.h um/arch/um/include/kern_util.h
---- orig/arch/um/include/kern_util.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/kern_util.h     Wed Apr 16 16:00:11 2003
+--- orig/arch/um/include/kern_util.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/kern_util.h     2003-04-16 16:00:11.000000000 -0400
 @@ -0,0 +1,121 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -14341,8 +13992,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/kern_util.h um/arch/um/inclu
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/line.h um/arch/um/include/line.h
---- orig/arch/um/include/line.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/line.h  Fri Nov 15 13:44:44 2002
+--- orig/arch/um/include/line.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/line.h  2002-11-15 13:44:44.000000000 -0500
 @@ -0,0 +1,106 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -14450,9 +14101,20 @@ diff -Naur -X ../exclude-files orig/arch/um/include/line.h um/arch/um/include/li
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/include/Makefile um/arch/um/include/Makefile
+--- orig/arch/um/include/Makefile      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/Makefile        2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,7 @@
++all : sc.h
++
++sc.h : ../util/mk_sc
++      ../util/mk_sc > $@
++
++../util/mk_sc :
++      $(MAKE) -C ../util mk_sc
 diff -Naur -X ../exclude-files orig/arch/um/include/mconsole.h um/arch/um/include/mconsole.h
---- orig/arch/um/include/mconsole.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/mconsole.h      Fri Jan 17 13:48:25 2003
+--- orig/arch/um/include/mconsole.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/mconsole.h      2003-01-17 13:48:25.000000000 -0500
 @@ -0,0 +1,99 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org)
@@ -14554,8 +14216,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mconsole.h um/arch/um/includ
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/mconsole_kern.h um/arch/um/include/mconsole_kern.h
---- orig/arch/um/include/mconsole_kern.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/mconsole_kern.h Fri Nov 15 15:21:58 2002
+--- orig/arch/um/include/mconsole_kern.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/mconsole_kern.h 2002-11-15 15:21:58.000000000 -0500
 @@ -0,0 +1,62 @@
 +/*
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -14620,8 +14282,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mconsole_kern.h um/arch/um/i
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/mem.h um/arch/um/include/mem.h
---- orig/arch/um/include/mem.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/mem.h   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/mem.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/mem.h   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,29 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -14653,8 +14315,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mem.h um/arch/um/include/mem
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/mem_user.h um/arch/um/include/mem_user.h
---- orig/arch/um/include/mem_user.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/mem_user.h      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/mem_user.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/mem_user.h      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,87 @@
 +/*
 + * arch/um/include/mem_user.h
@@ -14744,8 +14406,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mem_user.h um/arch/um/includ
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/mode.h um/arch/um/include/mode.h
---- orig/arch/um/include/mode.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/mode.h  Fri Jan 17 13:23:32 2003
+--- orig/arch/um/include/mode.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/mode.h  2003-01-17 13:23:32.000000000 -0500
 @@ -0,0 +1,30 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -14778,8 +14440,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mode.h um/arch/um/include/mo
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/mode_kern.h um/arch/um/include/mode_kern.h
---- orig/arch/um/include/mode_kern.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/mode_kern.h     Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/mode_kern.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/mode_kern.h     2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,30 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -14812,8 +14474,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/mode_kern.h um/arch/um/inclu
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/net_kern.h um/arch/um/include/net_kern.h
---- orig/arch/um/include/net_kern.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/net_kern.h      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/net_kern.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/net_kern.h      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,81 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -14897,8 +14559,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/net_kern.h um/arch/um/includ
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/net_user.h um/arch/um/include/net_user.h
---- orig/arch/um/include/net_user.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/net_user.h      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/net_user.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/net_user.h      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,66 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -14967,8 +14629,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/net_user.h um/arch/um/includ
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/os.h um/arch/um/include/os.h
---- orig/arch/um/include/os.h  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/os.h    Tue Feb  4 19:11:32 2003
+--- orig/arch/um/include/os.h  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/os.h    2003-02-04 19:11:32.000000000 -0500
 @@ -0,0 +1,137 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -15108,8 +14770,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/os.h um/arch/um/include/os.h
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/process.h um/arch/um/include/process.h
---- orig/arch/um/include/process.h     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/process.h       Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/process.h     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/process.h       2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,25 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -15137,8 +14799,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/process.h um/arch/um/include
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/ptrace_user.h um/arch/um/include/ptrace_user.h
---- orig/arch/um/include/ptrace_user.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/ptrace_user.h   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/ptrace_user.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/ptrace_user.h   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,18 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -15159,8 +14821,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/ptrace_user.h um/arch/um/inc
 +
 +#endif
 diff -Naur -X ../exclude-files orig/arch/um/include/sigcontext.h um/arch/um/include/sigcontext.h
---- orig/arch/um/include/sigcontext.h  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sigcontext.h    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sigcontext.h  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sigcontext.h    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,25 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -15188,8 +14850,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sigcontext.h um/arch/um/incl
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sigio.h um/arch/um/include/sigio.h
---- orig/arch/um/include/sigio.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sigio.h Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sigio.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sigio.h 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,28 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -15220,8 +14882,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sigio.h um/arch/um/include/s
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/signal_kern.h um/arch/um/include/signal_kern.h
---- orig/arch/um/include/signal_kern.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/signal_kern.h   Thu Dec  5 18:08:47 2002
+--- orig/arch/um/include/signal_kern.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/signal_kern.h   2002-12-05 18:08:47.000000000 -0500
 @@ -0,0 +1,22 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -15246,8 +14908,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/signal_kern.h um/arch/um/inc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/signal_user.h um/arch/um/include/signal_user.h
---- orig/arch/um/include/signal_user.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/signal_user.h   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/signal_user.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/signal_user.h   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,26 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -15276,8 +14938,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/signal_user.h um/arch/um/inc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/skas_ptrace.h um/arch/um/include/skas_ptrace.h
---- orig/arch/um/include/skas_ptrace.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/skas_ptrace.h   Mon Dec 16 11:54:52 2002
+--- orig/arch/um/include/skas_ptrace.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/skas_ptrace.h   2002-12-16 11:54:52.000000000 -0500
 @@ -0,0 +1,36 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -15316,8 +14978,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/skas_ptrace.h um/arch/um/inc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/syscall_user.h um/arch/um/include/syscall_user.h
---- orig/arch/um/include/syscall_user.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/syscall_user.h  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/syscall_user.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/syscall_user.h  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,23 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -15343,8 +15005,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/syscall_user.h um/arch/um/in
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/checksum.h um/arch/um/include/sysdep-i386/checksum.h
---- orig/arch/um/include/sysdep-i386/checksum.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-i386/checksum.h  Tue Oct 29 21:23:02 2002
+--- orig/arch/um/include/sysdep-i386/checksum.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-i386/checksum.h  2002-10-29 21:23:02.000000000 -0500
 @@ -0,0 +1,217 @@
 +/* 
 + * Licensed under the GPL
@@ -15564,8 +15226,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/checksum.h um/ar
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame.h um/arch/um/include/sysdep-i386/frame.h
---- orig/arch/um/include/sysdep-i386/frame.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-i386/frame.h     Fri Dec  6 14:07:54 2002
+--- orig/arch/um/include/sysdep-i386/frame.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-i386/frame.h     2002-12-06 14:07:54.000000000 -0500
 @@ -0,0 +1,29 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -15597,8 +15259,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame.h um/arch/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame_kern.h um/arch/um/include/sysdep-i386/frame_kern.h
---- orig/arch/um/include/sysdep-i386/frame_kern.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-i386/frame_kern.h        Mon Dec  2 21:45:04 2002
+--- orig/arch/um/include/sysdep-i386/frame_kern.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-i386/frame_kern.h        2002-12-02 21:45:04.000000000 -0500
 @@ -0,0 +1,69 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -15670,8 +15332,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame_kern.h um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame_user.h um/arch/um/include/sysdep-i386/frame_user.h
---- orig/arch/um/include/sysdep-i386/frame_user.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-i386/frame_user.h        Fri Dec  6 14:13:59 2002
+--- orig/arch/um/include/sysdep-i386/frame_user.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-i386/frame_user.h        2002-12-06 14:13:59.000000000 -0500
 @@ -0,0 +1,91 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -15765,8 +15427,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/frame_user.h um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/ptrace.h um/arch/um/include/sysdep-i386/ptrace.h
---- orig/arch/um/include/sysdep-i386/ptrace.h  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-i386/ptrace.h    Fri Jan 17 13:23:31 2003
+--- orig/arch/um/include/sysdep-i386/ptrace.h  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-i386/ptrace.h    2003-01-17 13:23:31.000000000 -0500
 @@ -0,0 +1,193 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -15962,8 +15624,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/ptrace.h um/arch
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/ptrace_user.h um/arch/um/include/sysdep-i386/ptrace_user.h
---- orig/arch/um/include/sysdep-i386/ptrace_user.h     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-i386/ptrace_user.h       Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sysdep-i386/ptrace_user.h     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-i386/ptrace_user.h       2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,62 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -16028,8 +15690,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/ptrace_user.h um
 +
 +#endif
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/sigcontext.h um/arch/um/include/sysdep-i386/sigcontext.h
---- orig/arch/um/include/sysdep-i386/sigcontext.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-i386/sigcontext.h        Sun Dec  8 18:21:33 2002
+--- orig/arch/um/include/sysdep-i386/sigcontext.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-i386/sigcontext.h        2002-12-08 18:21:33.000000000 -0500
 @@ -0,0 +1,49 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -16081,8 +15743,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/sigcontext.h um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/syscalls.h um/arch/um/include/sysdep-i386/syscalls.h
---- orig/arch/um/include/sysdep-i386/syscalls.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-i386/syscalls.h  Sun Dec  8 18:04:15 2002
+--- orig/arch/um/include/sysdep-i386/syscalls.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-i386/syscalls.h  2002-12-08 18:04:15.000000000 -0500
 @@ -0,0 +1,61 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16146,8 +15808,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-i386/syscalls.h um/ar
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ia64/ptrace.h um/arch/um/include/sysdep-ia64/ptrace.h
---- orig/arch/um/include/sysdep-ia64/ptrace.h  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-ia64/ptrace.h    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sysdep-ia64/ptrace.h  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-ia64/ptrace.h    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,26 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16176,8 +15838,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ia64/ptrace.h um/arch
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ia64/sigcontext.h um/arch/um/include/sysdep-ia64/sigcontext.h
---- orig/arch/um/include/sysdep-ia64/sigcontext.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-ia64/sigcontext.h        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sysdep-ia64/sigcontext.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-ia64/sigcontext.h        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,20 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16200,8 +15862,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ia64/sigcontext.h um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ia64/syscalls.h um/arch/um/include/sysdep-ia64/syscalls.h
---- orig/arch/um/include/sysdep-ia64/syscalls.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-ia64/syscalls.h  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sysdep-ia64/syscalls.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-ia64/syscalls.h  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,20 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16224,8 +15886,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ia64/syscalls.h um/ar
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ppc/ptrace.h um/arch/um/include/sysdep-ppc/ptrace.h
---- orig/arch/um/include/sysdep-ppc/ptrace.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-ppc/ptrace.h     Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sysdep-ppc/ptrace.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-ppc/ptrace.h     2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,104 @@
 +/* 
 + * Licensed under the GPL
@@ -16332,8 +15994,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ppc/ptrace.h um/arch/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ppc/sigcontext.h um/arch/um/include/sysdep-ppc/sigcontext.h
---- orig/arch/um/include/sysdep-ppc/sigcontext.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-ppc/sigcontext.h Sat Nov 23 22:02:19 2002
+--- orig/arch/um/include/sysdep-ppc/sigcontext.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-ppc/sigcontext.h 2002-11-23 22:02:19.000000000 -0500
 @@ -0,0 +1,62 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16398,8 +16060,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ppc/sigcontext.h um/a
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ppc/syscalls.h um/arch/um/include/sysdep-ppc/syscalls.h
---- orig/arch/um/include/sysdep-ppc/syscalls.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysdep-ppc/syscalls.h   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sysdep-ppc/syscalls.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysdep-ppc/syscalls.h   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,50 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16452,8 +16114,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysdep-ppc/syscalls.h um/arc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/sysrq.h um/arch/um/include/sysrq.h
---- orig/arch/um/include/sysrq.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/sysrq.h Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/sysrq.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/sysrq.h 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SYSRQ_H
 +#define __UM_SYSRQ_H
@@ -16462,8 +16124,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/sysrq.h um/arch/um/include/s
 +
 +#endif
 diff -Naur -X ../exclude-files orig/arch/um/include/tempfile.h um/arch/um/include/tempfile.h
---- orig/arch/um/include/tempfile.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/tempfile.h      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/tempfile.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/tempfile.h      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,21 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -16487,8 +16149,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/tempfile.h um/arch/um/includ
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/time_user.h um/arch/um/include/time_user.h
---- orig/arch/um/include/time_user.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/time_user.h     Wed Jan  8 12:55:47 2003
+--- orig/arch/um/include/time_user.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/time_user.h     2003-01-08 12:55:47.000000000 -0500
 @@ -0,0 +1,17 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -16508,8 +16170,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/time_user.h um/arch/um/inclu
 +
 +#endif
 diff -Naur -X ../exclude-files orig/arch/um/include/tlb.h um/arch/um/include/tlb.h
---- orig/arch/um/include/tlb.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/tlb.h   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/tlb.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/tlb.h   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,23 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -16535,8 +16197,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/tlb.h um/arch/um/include/tlb
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/ubd_user.h um/arch/um/include/ubd_user.h
---- orig/arch/um/include/ubd_user.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/ubd_user.h      Thu Mar  6 18:09:14 2003
+--- orig/arch/um/include/ubd_user.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/ubd_user.h      2003-03-06 18:09:14.000000000 -0500
 @@ -0,0 +1,77 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16615,37 +16277,19 @@ diff -Naur -X ../exclude-files orig/arch/um/include/ubd_user.h um/arch/um/includ
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/include/um_mmu.h um/arch/um/include/um_mmu.h
---- orig/arch/um/include/um_mmu.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/um_mmu.h        Sat Nov  9 12:51:43 2002
-@@ -0,0 +1,40 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
+diff -Naur -X ../exclude-files orig/arch/um/include/umid.h um/arch/um/include/umid.h
+--- orig/arch/um/include/umid.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/umid.h  2002-12-16 20:52:19.000000000 -0500
+@@ -0,0 +1,22 @@
++/*
++ * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
 + */
 +
-+#ifndef __ARCH_UM_MMU_H
-+#define __ARCH_UM_MMU_H
-+
-+#include "linux/config.h"
-+#include "choose-mode.h"
-+
-+#ifdef CONFIG_MODE_TT
-+#include "../kernel/tt/include/mmu.h"
-+#endif
-+
-+#ifdef CONFIG_MODE_SKAS
-+#include "../kernel/skas/include/mmu.h"
-+#endif
++#ifndef __UMID_H__
++#define __UMID_H__
 +
-+typedef union {
-+#ifdef CONFIG_MODE_TT
-+      struct mmu_context_tt tt;
-+#endif
-+#ifdef CONFIG_MODE_SKAS
-+      struct mmu_context_skas skas;
-+#endif
-+} mm_context_t;
++extern int umid_file_name(char *name, char *buf, int len);
 +
 +#endif
 +
@@ -16659,70 +16303,25 @@ diff -Naur -X ../exclude-files orig/arch/um/include/um_mmu.h um/arch/um/include/
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/include/um_uaccess.h um/arch/um/include/um_uaccess.h
---- orig/arch/um/include/um_uaccess.h  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/um_uaccess.h    Sat Nov 23 22:03:02 2002
-@@ -0,0 +1,73 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
+diff -Naur -X ../exclude-files orig/arch/um/include/uml_uaccess.h um/arch/um/include/uml_uaccess.h
+--- orig/arch/um/include/uml_uaccess.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/uml_uaccess.h   2002-12-19 13:15:22.000000000 -0500
+@@ -0,0 +1,28 @@
++/*
++ * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
 + */
 +
-+#ifndef __ARCH_UM_UACCESS_H
-+#define __ARCH_UM_UACCESS_H
-+
-+#include "linux/config.h"
-+#include "choose-mode.h"
-+
-+#ifdef CONFIG_MODE_TT
-+#include "../kernel/tt/include/uaccess.h"
-+#endif
-+
-+#ifdef CONFIG_MODE_SKAS
-+#include "../kernel/skas/include/uaccess.h"
-+#endif
-+
-+#define access_ok(type, addr, size) \
-+      CHOOSE_MODE_PROC(access_ok_tt, access_ok_skas, type, addr, size)
-+
-+static inline int verify_area(int type, const void * addr, unsigned long size)
-+{
-+      return(CHOOSE_MODE_PROC(verify_area_tt, verify_area_skas, type, addr,
-+                              size));
-+}
-+
-+static inline int copy_from_user(void *to, const void *from, int n)
-+{
-+      return(CHOOSE_MODE_PROC(copy_from_user_tt, copy_from_user_skas, to,
-+                              from, n));
-+}
-+
-+static inline int copy_to_user(void *to, const void *from, int n)
-+{
-+      return(CHOOSE_MODE_PROC(copy_to_user_tt, copy_to_user_skas, to, 
-+                              from, n));
-+}
-+
-+static inline int strncpy_from_user(char *dst, const char *src, int count)
-+{
-+      return(CHOOSE_MODE_PROC(strncpy_from_user_tt, strncpy_from_user_skas,
-+                              dst, src, count));
-+}
-+
-+static inline int __clear_user(void *mem, int len)
-+{
-+      return(CHOOSE_MODE_PROC(__clear_user_tt, __clear_user_skas, mem, len));
-+}
-+
-+static inline int clear_user(void *mem, int len)
-+{
-+      return(CHOOSE_MODE_PROC(clear_user_tt, clear_user_skas, mem, len));
-+}
++#ifndef __UML_UACCESS_H__
++#define __UML_UACCESS_H__
 +
-+static inline int strnlen_user(const void *str, int len)
-+{
-+      return(CHOOSE_MODE_PROC(strnlen_user_tt, strnlen_user_skas, str, len));
-+}
++extern int __do_copy_to_user(void *to, const void *from, int n,
++                                void **fault_addr, void **fault_catcher);
++extern unsigned long __do_user_copy(void *to, const void *from, int n,
++                                  void **fault_addr, void **fault_catcher,
++                                  void (*op)(void *to, const void *from,
++                                             int n), int *faulted_out);
++void __do_copy(void *to, const void *from, int n);
 +
 +#endif
 +
@@ -16736,51 +16335,37 @@ diff -Naur -X ../exclude-files orig/arch/um/include/um_uaccess.h um/arch/um/incl
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/include/umid.h um/arch/um/include/umid.h
---- orig/arch/um/include/umid.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/umid.h  Mon Dec 16 20:52:19 2002
-@@ -0,0 +1,22 @@
-+/*
-+ * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
+diff -Naur -X ../exclude-files orig/arch/um/include/um_mmu.h um/arch/um/include/um_mmu.h
+--- orig/arch/um/include/um_mmu.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/um_mmu.h        2002-11-09 12:51:43.000000000 -0500
+@@ -0,0 +1,40 @@
++/* 
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
 + */
 +
-+#ifndef __UMID_H__
-+#define __UMID_H__
++#ifndef __ARCH_UM_MMU_H
++#define __ARCH_UM_MMU_H
 +
-+extern int umid_file_name(char *name, char *buf, int len);
++#include "linux/config.h"
++#include "choose-mode.h"
 +
++#ifdef CONFIG_MODE_TT
++#include "../kernel/tt/include/mmu.h"
 +#endif
 +
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur -X ../exclude-files orig/arch/um/include/uml_uaccess.h um/arch/um/include/uml_uaccess.h
---- orig/arch/um/include/uml_uaccess.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/uml_uaccess.h   Thu Dec 19 13:15:22 2002
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#ifndef __UML_UACCESS_H__
-+#define __UML_UACCESS_H__
++#ifdef CONFIG_MODE_SKAS
++#include "../kernel/skas/include/mmu.h"
++#endif
 +
-+extern int __do_copy_to_user(void *to, const void *from, int n,
-+                                void **fault_addr, void **fault_catcher);
-+extern unsigned long __do_user_copy(void *to, const void *from, int n,
-+                                  void **fault_addr, void **fault_catcher,
-+                                  void (*op)(void *to, const void *from,
-+                                             int n), int *faulted_out);
-+void __do_copy(void *to, const void *from, int n);
++typedef union {
++#ifdef CONFIG_MODE_TT
++      struct mmu_context_tt tt;
++#endif
++#ifdef CONFIG_MODE_SKAS
++      struct mmu_context_skas skas;
++#endif
++} mm_context_t;
 +
 +#endif
 +
@@ -16795,8 +16380,8 @@ diff -Naur -X ../exclude-files orig/arch/um/include/uml_uaccess.h um/arch/um/inc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/umn.h um/arch/um/include/umn.h
---- orig/arch/um/include/umn.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/umn.h   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/umn.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/umn.h   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,27 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16825,9 +16410,86 @@ diff -Naur -X ../exclude-files orig/arch/um/include/umn.h um/arch/um/include/umn
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/include/um_uaccess.h um/arch/um/include/um_uaccess.h
+--- orig/arch/um/include/um_uaccess.h  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/um_uaccess.h    2002-11-23 22:03:02.000000000 -0500
+@@ -0,0 +1,73 @@
++/* 
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#ifndef __ARCH_UM_UACCESS_H
++#define __ARCH_UM_UACCESS_H
++
++#include "linux/config.h"
++#include "choose-mode.h"
++
++#ifdef CONFIG_MODE_TT
++#include "../kernel/tt/include/uaccess.h"
++#endif
++
++#ifdef CONFIG_MODE_SKAS
++#include "../kernel/skas/include/uaccess.h"
++#endif
++
++#define access_ok(type, addr, size) \
++      CHOOSE_MODE_PROC(access_ok_tt, access_ok_skas, type, addr, size)
++
++static inline int verify_area(int type, const void * addr, unsigned long size)
++{
++      return(CHOOSE_MODE_PROC(verify_area_tt, verify_area_skas, type, addr,
++                              size));
++}
++
++static inline int copy_from_user(void *to, const void *from, int n)
++{
++      return(CHOOSE_MODE_PROC(copy_from_user_tt, copy_from_user_skas, to,
++                              from, n));
++}
++
++static inline int copy_to_user(void *to, const void *from, int n)
++{
++      return(CHOOSE_MODE_PROC(copy_to_user_tt, copy_to_user_skas, to, 
++                              from, n));
++}
++
++static inline int strncpy_from_user(char *dst, const char *src, int count)
++{
++      return(CHOOSE_MODE_PROC(strncpy_from_user_tt, strncpy_from_user_skas,
++                              dst, src, count));
++}
++
++static inline int __clear_user(void *mem, int len)
++{
++      return(CHOOSE_MODE_PROC(__clear_user_tt, __clear_user_skas, mem, len));
++}
++
++static inline int clear_user(void *mem, int len)
++{
++      return(CHOOSE_MODE_PROC(clear_user_tt, clear_user_skas, mem, len));
++}
++
++static inline int strnlen_user(const void *str, int len)
++{
++      return(CHOOSE_MODE_PROC(strnlen_user_tt, strnlen_user_skas, str, len));
++}
++
++#endif
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/arch/um/include/user.h um/arch/um/include/user.h
---- orig/arch/um/include/user.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/user.h  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/include/user.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/user.h  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,29 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -16859,9 +16521,9 @@ diff -Naur -X ../exclude-files orig/arch/um/include/user.h um/arch/um/include/us
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/include/user_util.h um/arch/um/include/user_util.h
---- orig/arch/um/include/user_util.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/include/user_util.h     Wed Apr 23 20:42:00 2003
-@@ -0,0 +1,103 @@
+--- orig/arch/um/include/user_util.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/include/user_util.h     2003-05-15 13:53:40.000000000 -0400
+@@ -0,0 +1,104 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -16952,6 +16614,7 @@ diff -Naur -X ../exclude-files orig/arch/um/include/user_util.h um/arch/um/inclu
 +extern int arch_handle_signal(int sig, union uml_pt_regs *regs);
 +extern int arch_fixup(unsigned long address, void *sc_ptr);
 +extern int can_do_skas(void);
++extern void arch_init_thread(void);
 +
 +#endif
 +
@@ -16965,86 +16628,9 @@ diff -Naur -X ../exclude-files orig/arch/um/include/user_util.h um/arch/um/inclu
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/kernel/Makefile um/arch/um/kernel/Makefile
---- orig/arch/um/kernel/Makefile       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/Makefile Thu Apr 10 11:14:55 2003
-@@ -0,0 +1,73 @@
-+# 
-+# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+O_TARGET = built-in.o
-+
-+obj-y = config.o checksum.o exec_kern.o exitcode.o frame_kern.o frame.o \
-+      helper.o init_task.o irq.o irq_user.o ksyms.o mem.o mem_user.o \
-+      process.o process_kern.o ptrace.o reboot.o resource.o sigio_user.o \
-+      sigio_kern.o signal_kern.o signal_user.o smp.o syscall_kern.o \
-+      syscall_user.o sysrq.o sys_call_table.o tempfile.o time.o \
-+      time_kern.o tlb.o trap_kern.o trap_user.o uaccess_user.o um_arch.o \
-+      umid.o user_syms.o user_util.o
-+
-+obj-$(CONFIG_BLK_DEV_INITRD) += initrd_kern.o initrd_user.o
-+obj-$(CONFIG_GPROF) += gprof_syms.o
-+obj-$(CONFIG_GCOV) += gmon_syms.o
-+obj-$(CONFIG_TTY_LOG) += tty_log.o
-+
-+subdir-$(CONFIG_MODE_TT) += tt
-+subdir-$(CONFIG_MODE_SKAS) += skas
-+
-+user-objs-$(CONFIG_TTY_LOG) += tty_log.o
-+
-+obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
-+
-+# user_syms.o not included here because Rules.make has its own ideas about
-+# building anything in export-objs
-+
-+USER_OBJS = $(filter %_user.o,$(obj-y)) $(user-objs-y) config.o helper.o \
-+      process.o tempfile.o time.o umid.o user_util.o 
-+
-+DMODULES-$(CONFIG_MODULES) = -D__CONFIG_MODULES__
-+DMODVERSIONS-$(CONFIG_MODVERSIONS) = -D__CONFIG_MODVERSIONS__
-+
-+export-objs-$(CONFIG_GPROF) += gprof_syms.o
-+export-objs-$(CONFIG_GCOV) += gmon_syms.o
-+
-+export-objs = ksyms.o process_kern.o signal_kern.o user_syms.o $(export-objs-y)
-+
-+CFLAGS_user_syms.o = -D__AUTOCONF_INCLUDED__ $(DMODULES-y) $(DMODVERSIONS-y) \
-+      -I/usr/include -I../include
-+
-+CFLAGS_frame.o := $(patsubst -fomit-frame-pointer,,$(USER_CFLAGS))
-+
-+include $(TOPDIR)/Rules.make
-+
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
-+
-+# This has to be separate because it needs be compiled with frame pointers
-+# regardless of how the rest of the kernel is built.
-+
-+frame.o: frame.c
-+      $(CC) $(CFLAGS_$@) -c -o $@ $<
-+
-+QUOTE = 'my $$config=`cat $(TOPDIR)/.config`; $$config =~ s/"/\\"/g ; $$config =~ s/\n/\\n"\n"/g ; while(<STDIN>) { $$_ =~ s/CONFIG/$$config/; print $$_ }'
-+
-+config.c : config.c.in $(TOPDIR)/.config
-+      $(PERL) -e $(QUOTE) < config.c.in > $@
-+
-+clean:
-+      $(RM) config.c
-+      for dir in $(subdir-y) ; do $(MAKE) -C $$dir clean; done
-+
-+modules:
-+
-+fastdep:
-+
-+dep:
-+
-+archmrproper: clean
 diff -Naur -X ../exclude-files orig/arch/um/kernel/checksum.c um/arch/um/kernel/checksum.c
---- orig/arch/um/kernel/checksum.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/checksum.c       Thu Oct 31 22:39:58 2002
+--- orig/arch/um/kernel/checksum.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/checksum.c       2002-10-31 22:39:58.000000000 -0500
 @@ -0,0 +1,42 @@
 +#include "asm/uaccess.h"
 +#include "linux/errno.h"
@@ -17089,8 +16675,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/checksum.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/config.c.in um/arch/um/kernel/config.c.in
---- orig/arch/um/kernel/config.c.in    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/config.c.in      Thu Apr 10 11:17:55 2003
+--- orig/arch/um/kernel/config.c.in    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/config.c.in      2003-04-10 11:17:55.000000000 -0400
 @@ -0,0 +1,32 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -17125,8 +16711,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/config.c.in um/arch/um/kernel
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/exec_kern.c um/arch/um/kernel/exec_kern.c
---- orig/arch/um/kernel/exec_kern.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/exec_kern.c      Wed Apr 16 16:35:05 2003
+--- orig/arch/um/kernel/exec_kern.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/exec_kern.c      2003-04-16 16:35:05.000000000 -0400
 @@ -0,0 +1,86 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -17215,8 +16801,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/exec_kern.c um/arch/um/kernel
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/exitcode.c um/arch/um/kernel/exitcode.c
---- orig/arch/um/kernel/exitcode.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/exitcode.c       Thu Nov  7 18:22:04 2002
+--- orig/arch/um/kernel/exitcode.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/exitcode.c       2002-11-07 18:22:04.000000000 -0500
 @@ -0,0 +1,73 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -17292,8 +16878,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/exitcode.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/frame.c um/arch/um/kernel/frame.c
---- orig/arch/um/kernel/frame.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/frame.c  Wed Dec 11 11:12:41 2002
+--- orig/arch/um/kernel/frame.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/frame.c  2002-12-11 11:12:41.000000000 -0500
 @@ -0,0 +1,342 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -17638,8 +17224,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/frame.c um/arch/um/kernel/fra
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/frame_kern.c um/arch/um/kernel/frame_kern.c
---- orig/arch/um/kernel/frame_kern.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/frame_kern.c     Sun Dec  8 19:44:13 2002
+--- orig/arch/um/kernel/frame_kern.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/frame_kern.c     2002-12-08 19:44:13.000000000 -0500
 @@ -0,0 +1,171 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -17813,8 +17399,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/frame_kern.c um/arch/um/kerne
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/gmon_syms.c um/arch/um/kernel/gmon_syms.c
---- orig/arch/um/kernel/gmon_syms.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/gmon_syms.c      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/gmon_syms.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/gmon_syms.c      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,20 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -17837,8 +17423,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/gmon_syms.c um/arch/um/kernel
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/gprof_syms.c um/arch/um/kernel/gprof_syms.c
---- orig/arch/um/kernel/gprof_syms.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/gprof_syms.c     Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/gprof_syms.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/gprof_syms.c     2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,20 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -17861,8 +17447,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/gprof_syms.c um/arch/um/kerne
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/helper.c um/arch/um/kernel/helper.c
---- orig/arch/um/kernel/helper.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/helper.c Thu Oct 31 10:34:23 2002
+--- orig/arch/um/kernel/helper.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/helper.c 2002-10-31 10:34:23.000000000 -0500
 @@ -0,0 +1,153 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -18017,74 +17603,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/helper.c um/arch/um/kernel/he
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/kernel/init_task.c um/arch/um/kernel/init_task.c
---- orig/arch/um/kernel/init_task.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/init_task.c      Sat Dec 28 19:58:44 2002
-@@ -0,0 +1,61 @@
-+/* 
-+ * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include "linux/config.h"
-+#include "linux/mm.h"
-+#include "linux/sched.h"
-+#include "linux/version.h"
-+#include "asm/uaccess.h"
-+#include "asm/pgtable.h"
-+#include "user_util.h"
-+#include "mem_user.h"
-+
-+static struct fs_struct init_fs = INIT_FS;
-+static struct files_struct init_files = INIT_FILES;
-+static struct signal_struct init_signals = INIT_SIGNALS;
-+struct mm_struct init_mm = INIT_MM(init_mm);
-+
-+/*
-+ * Initial task structure.
-+ *
-+ * We need to make sure that this is 16384-byte aligned due to the
-+ * way process stacks are handled. This is done by having a special
-+ * "init_task" linker map entry..
-+ */
-+
-+union task_union init_task_union 
-+__attribute__((__section__(".data.init_task"))) = 
-+{ INIT_TASK(init_task_union.task) };
-+
-+struct task_struct *alloc_task_struct(void)
-+{
-+      return((struct task_struct *) 
-+             __get_free_pages(GFP_KERNEL, CONFIG_KERNEL_STACK_ORDER));
-+}
-+
-+void unprotect_stack(unsigned long stack)
-+{
-+      protect_memory(stack, (1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE, 
-+                     1, 1, 0, 1);
-+}
-+
-+void free_task_struct(struct task_struct *task)
-+{
-+      /* free_pages decrements the page counter and only actually frees
-+       * the pages if they are now not accessed by anything.
-+       */
-+      free_pages((unsigned long) task, CONFIG_KERNEL_STACK_ORDER);
-+}
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/initrd_kern.c um/arch/um/kernel/initrd_kern.c
---- orig/arch/um/kernel/initrd_kern.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/initrd_kern.c    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/initrd_kern.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/initrd_kern.c    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,59 @@
 +/*
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -18146,8 +17667,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/initrd_kern.c um/arch/um/kern
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/initrd_user.c um/arch/um/kernel/initrd_user.c
---- orig/arch/um/kernel/initrd_user.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/initrd_user.c    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/initrd_user.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/initrd_user.c    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,43 @@
 +/*
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -18192,9 +17713,74 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/initrd_user.c um/arch/um/kern
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/kernel/init_task.c um/arch/um/kernel/init_task.c
+--- orig/arch/um/kernel/init_task.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/init_task.c      2002-12-28 19:58:44.000000000 -0500
+@@ -0,0 +1,61 @@
++/* 
++ * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#include "linux/config.h"
++#include "linux/mm.h"
++#include "linux/sched.h"
++#include "linux/version.h"
++#include "asm/uaccess.h"
++#include "asm/pgtable.h"
++#include "user_util.h"
++#include "mem_user.h"
++
++static struct fs_struct init_fs = INIT_FS;
++static struct files_struct init_files = INIT_FILES;
++static struct signal_struct init_signals = INIT_SIGNALS;
++struct mm_struct init_mm = INIT_MM(init_mm);
++
++/*
++ * Initial task structure.
++ *
++ * We need to make sure that this is 16384-byte aligned due to the
++ * way process stacks are handled. This is done by having a special
++ * "init_task" linker map entry..
++ */
++
++union task_union init_task_union 
++__attribute__((__section__(".data.init_task"))) = 
++{ INIT_TASK(init_task_union.task) };
++
++struct task_struct *alloc_task_struct(void)
++{
++      return((struct task_struct *) 
++             __get_free_pages(GFP_KERNEL, CONFIG_KERNEL_STACK_ORDER));
++}
++
++void unprotect_stack(unsigned long stack)
++{
++      protect_memory(stack, (1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE, 
++                     1, 1, 0, 1);
++}
++
++void free_task_struct(struct task_struct *task)
++{
++      /* free_pages decrements the page counter and only actually frees
++       * the pages if they are now not accessed by anything.
++       */
++      free_pages((unsigned long) task, CONFIG_KERNEL_STACK_ORDER);
++}
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/irq.c um/arch/um/kernel/irq.c
---- orig/arch/um/kernel/irq.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/irq.c    Wed Mar 26 14:45:29 2003
+--- orig/arch/um/kernel/irq.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/irq.c    2003-03-26 14:45:29.000000000 -0500
 @@ -0,0 +1,842 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -19039,8 +18625,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/irq.c um/arch/um/kernel/irq.c
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/irq_user.c um/arch/um/kernel/irq_user.c
---- orig/arch/um/kernel/irq_user.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/irq_user.c       Sun Dec 22 15:49:46 2002
+--- orig/arch/um/kernel/irq_user.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/irq_user.c       2002-12-22 15:49:46.000000000 -0500
 @@ -0,0 +1,427 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -19470,8 +19056,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/irq_user.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/ksyms.c um/arch/um/kernel/ksyms.c
---- orig/arch/um/kernel/ksyms.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/ksyms.c  Tue Dec 17 13:29:43 2002
+--- orig/arch/um/kernel/ksyms.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/ksyms.c  2002-12-17 13:29:43.000000000 -0500
 @@ -0,0 +1,94 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -19567,9 +19153,86 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/ksyms.c um/arch/um/kernel/ksy
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/kernel/Makefile um/arch/um/kernel/Makefile
+--- orig/arch/um/kernel/Makefile       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/Makefile 2003-04-10 11:14:55.000000000 -0400
+@@ -0,0 +1,73 @@
++# 
++# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET = built-in.o
++
++obj-y = config.o checksum.o exec_kern.o exitcode.o frame_kern.o frame.o \
++      helper.o init_task.o irq.o irq_user.o ksyms.o mem.o mem_user.o \
++      process.o process_kern.o ptrace.o reboot.o resource.o sigio_user.o \
++      sigio_kern.o signal_kern.o signal_user.o smp.o syscall_kern.o \
++      syscall_user.o sysrq.o sys_call_table.o tempfile.o time.o \
++      time_kern.o tlb.o trap_kern.o trap_user.o uaccess_user.o um_arch.o \
++      umid.o user_syms.o user_util.o
++
++obj-$(CONFIG_BLK_DEV_INITRD) += initrd_kern.o initrd_user.o
++obj-$(CONFIG_GPROF) += gprof_syms.o
++obj-$(CONFIG_GCOV) += gmon_syms.o
++obj-$(CONFIG_TTY_LOG) += tty_log.o
++
++subdir-$(CONFIG_MODE_TT) += tt
++subdir-$(CONFIG_MODE_SKAS) += skas
++
++user-objs-$(CONFIG_TTY_LOG) += tty_log.o
++
++obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
++
++# user_syms.o not included here because Rules.make has its own ideas about
++# building anything in export-objs
++
++USER_OBJS = $(filter %_user.o,$(obj-y)) $(user-objs-y) config.o helper.o \
++      process.o tempfile.o time.o umid.o user_util.o 
++
++DMODULES-$(CONFIG_MODULES) = -D__CONFIG_MODULES__
++DMODVERSIONS-$(CONFIG_MODVERSIONS) = -D__CONFIG_MODVERSIONS__
++
++export-objs-$(CONFIG_GPROF) += gprof_syms.o
++export-objs-$(CONFIG_GCOV) += gmon_syms.o
++
++export-objs = ksyms.o process_kern.o signal_kern.o user_syms.o $(export-objs-y)
++
++CFLAGS_user_syms.o = -D__AUTOCONF_INCLUDED__ $(DMODULES-y) $(DMODVERSIONS-y) \
++      -I/usr/include -I../include
++
++CFLAGS_frame.o := $(patsubst -fomit-frame-pointer,,$(USER_CFLAGS))
++
++include $(TOPDIR)/Rules.make
++
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++
++# This has to be separate because it needs be compiled with frame pointers
++# regardless of how the rest of the kernel is built.
++
++frame.o: frame.c
++      $(CC) $(CFLAGS_$@) -c -o $@ $<
++
++QUOTE = 'my $$config=`cat $(TOPDIR)/.config`; $$config =~ s/"/\\"/g ; $$config =~ s/\n/\\n"\n"/g ; while(<STDIN>) { $$_ =~ s/CONFIG/$$config/; print $$_ }'
++
++config.c : config.c.in $(TOPDIR)/.config
++      $(PERL) -e $(QUOTE) < config.c.in > $@
++
++clean:
++      $(RM) config.c
++      for dir in $(subdir-y) ; do $(MAKE) -C $$dir clean; done
++
++modules:
++
++fastdep:
++
++dep:
++
++archmrproper: clean
 diff -Naur -X ../exclude-files orig/arch/um/kernel/mem.c um/arch/um/kernel/mem.c
---- orig/arch/um/kernel/mem.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/mem.c    Sun Mar 30 14:30:26 2003
+--- orig/arch/um/kernel/mem.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/mem.c    2003-03-30 14:30:26.000000000 -0500
 @@ -0,0 +1,852 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -20424,8 +20087,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem.c um/arch/um/kernel/mem.c
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/mem_user.c um/arch/um/kernel/mem_user.c
---- orig/arch/um/kernel/mem_user.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/mem_user.c       Thu Mar  6 16:05:21 2003
+--- orig/arch/um/kernel/mem_user.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/mem_user.c       2003-03-06 16:05:21.000000000 -0500
 @@ -0,0 +1,232 @@
 +/*
 + * arch/um/kernel/mem_user.c
@@ -20660,8 +20323,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mem_user.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/mprot.h um/arch/um/kernel/mprot.h
---- orig/arch/um/kernel/mprot.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/mprot.h  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/mprot.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/mprot.h  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __MPROT_H__
 +#define __MPROT_H__
@@ -20670,8 +20333,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/mprot.h um/arch/um/kernel/mpr
 +
 +#endif
 diff -Naur -X ../exclude-files orig/arch/um/kernel/process.c um/arch/um/kernel/process.c
---- orig/arch/um/kernel/process.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/process.c        Wed Apr 23 20:36:15 2003
+--- orig/arch/um/kernel/process.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/process.c        2003-04-23 20:36:15.000000000 -0400
 @@ -0,0 +1,286 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -20960,8 +20623,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/process.c um/arch/um/kernel/p
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/process_kern.c um/arch/um/kernel/process_kern.c
---- orig/arch/um/kernel/process_kern.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/process_kern.c   Wed Apr 16 16:02:09 2003
+--- orig/arch/um/kernel/process_kern.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/process_kern.c   2003-04-16 16:02:09.000000000 -0400
 @@ -0,0 +1,391 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -21355,8 +21018,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/process_kern.c um/arch/um/ker
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/ptrace.c um/arch/um/kernel/ptrace.c
---- orig/arch/um/kernel/ptrace.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/ptrace.c Sat Dec 28 22:50:21 2002
+--- orig/arch/um/kernel/ptrace.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/ptrace.c 2002-12-28 22:50:21.000000000 -0500
 @@ -0,0 +1,325 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -21684,8 +21347,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/ptrace.c um/arch/um/kernel/pt
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/reboot.c um/arch/um/kernel/reboot.c
---- orig/arch/um/kernel/reboot.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/reboot.c Mon Dec 30 20:57:42 2002
+--- orig/arch/um/kernel/reboot.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/reboot.c 2002-12-30 20:57:42.000000000 -0500
 @@ -0,0 +1,71 @@
 +/* 
 + * Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
@@ -21759,8 +21422,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/reboot.c um/arch/um/kernel/re
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/resource.c um/arch/um/kernel/resource.c
---- orig/arch/um/kernel/resource.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/resource.c       Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/resource.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/resource.c       2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,23 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -21786,9 +21449,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/resource.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/sigio_kern.c um/arch/um/kernel/sigio_kern.c
---- orig/arch/um/kernel/sigio_kern.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/sigio_kern.c     Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,56 @@
+--- orig/arch/um/kernel/sigio_kern.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/sigio_kern.c     2003-05-11 18:34:01.000000000 -0400
+@@ -0,0 +1,57 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -21801,6 +21464,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/sigio_kern.c um/arch/um/kerne
 +#include "init.h"
 +#include "sigio.h"
 +#include "irq_user.h"
++#include "irq_kern.h"
 +
 +/* Protected by sigio_lock() called from write_sigio_workaround */
 +static int sigio_irq_fd = -1;
@@ -21846,8 +21510,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/sigio_kern.c um/arch/um/kerne
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/sigio_user.c um/arch/um/kernel/sigio_user.c
---- orig/arch/um/kernel/sigio_user.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/sigio_user.c     Sun Dec 29 23:36:35 2002
+--- orig/arch/um/kernel/sigio_user.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/sigio_user.c     2002-12-29 23:36:35.000000000 -0500
 @@ -0,0 +1,440 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -22290,8 +21954,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/sigio_user.c um/arch/um/kerne
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/signal_kern.c um/arch/um/kernel/signal_kern.c
---- orig/arch/um/kernel/signal_kern.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/signal_kern.c    Sun Dec  8 19:44:13 2002
+--- orig/arch/um/kernel/signal_kern.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/signal_kern.c    2002-12-08 19:44:13.000000000 -0500
 @@ -0,0 +1,367 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -22661,8 +22325,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/signal_kern.c um/arch/um/kern
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/signal_user.c um/arch/um/kernel/signal_user.c
---- orig/arch/um/kernel/signal_user.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/signal_user.c    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/signal_user.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/signal_user.c    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,142 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -22806,43 +22470,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/signal_user.c um/arch/um/kern
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/Makefile um/arch/um/kernel/skas/Makefile
---- orig/arch/um/kernel/skas/Makefile  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/Makefile    Fri Nov  1 16:05:44 2002
-@@ -0,0 +1,30 @@
-+# 
-+# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+O_TARGET = skas.o
-+
-+obj-y = exec_kern.o exec_user.o mem.o mem_user.o mmu.o process.o \
-+      process_kern.o syscall_kern.o syscall_user.o time.o tlb.o trap_user.o
-+
-+subdir-y = sys-$(SUBARCH)
-+
-+obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
-+
-+USER_OBJS = $(filter %_user.o,$(obj-y)) process.o time.o
-+
-+include $(TOPDIR)/Rules.make
-+
-+include/skas_ptregs.h : util/mk_ptregs
-+      util/mk_ptregs > $@
-+
-+util/mk_ptregs :
-+      $(MAKE) -C util
-+
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
-+
-+clean :
-+      $(MAKE) -C util clean
-+      $(RM) -f include/skas_ptregs.h
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/exec_kern.c um/arch/um/kernel/skas/exec_kern.c
---- orig/arch/um/kernel/skas/exec_kern.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/exec_kern.c Mon Nov 11 18:57:19 2002
+--- orig/arch/um/kernel/skas/exec_kern.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/exec_kern.c 2002-11-11 18:57:19.000000000 -0500
 @@ -0,0 +1,41 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -22886,8 +22516,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/exec_kern.c um/arch/um/k
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/exec_user.c um/arch/um/kernel/skas/exec_user.c
---- orig/arch/um/kernel/skas/exec_user.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/exec_user.c Sun Nov  3 19:23:01 2002
+--- orig/arch/um/kernel/skas/exec_user.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/exec_user.c 2002-11-03 19:23:01.000000000 -0500
 @@ -0,0 +1,61 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -22951,8 +22581,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/exec_user.c um/arch/um/k
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/mmu.h um/arch/um/kernel/skas/include/mmu.h
---- orig/arch/um/kernel/skas/include/mmu.h     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/include/mmu.h       Sun Nov 10 21:21:50 2002
+--- orig/arch/um/kernel/skas/include/mmu.h     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/include/mmu.h       2002-11-10 21:21:50.000000000 -0500
 @@ -0,0 +1,27 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -22982,8 +22612,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/mmu.h um/arch/um
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/mode.h um/arch/um/kernel/skas/include/mode.h
---- orig/arch/um/kernel/skas/include/mode.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/include/mode.h      Wed Mar 26 13:27:46 2003
+--- orig/arch/um/kernel/skas/include/mode.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/include/mode.h      2003-03-26 13:27:46.000000000 -0500
 @@ -0,0 +1,36 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23022,8 +22652,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/mode.h um/arch/u
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/mode_kern.h um/arch/um/kernel/skas/include/mode_kern.h
---- orig/arch/um/kernel/skas/include/mode_kern.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/include/mode_kern.h Mon Dec 16 21:49:11 2002
+--- orig/arch/um/kernel/skas/include/mode_kern.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/include/mode_kern.h 2002-12-16 21:49:11.000000000 -0500
 @@ -0,0 +1,51 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23077,8 +22707,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/mode_kern.h um/a
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/proc_mm.h um/arch/um/kernel/skas/include/proc_mm.h
---- orig/arch/um/kernel/skas/include/proc_mm.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/include/proc_mm.h   Wed Nov 13 11:57:23 2002
+--- orig/arch/um/kernel/skas/include/proc_mm.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/include/proc_mm.h   2002-11-13 11:57:23.000000000 -0500
 @@ -0,0 +1,55 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23136,8 +22766,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/proc_mm.h um/arc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/ptrace-skas.h um/arch/um/kernel/skas/include/ptrace-skas.h
---- orig/arch/um/kernel/skas/include/ptrace-skas.h     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/include/ptrace-skas.h       Fri Jan 17 13:22:09 2003
+--- orig/arch/um/kernel/skas/include/ptrace-skas.h     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/include/ptrace-skas.h       2003-01-17 13:22:09.000000000 -0500
 @@ -0,0 +1,57 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23197,8 +22827,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/ptrace-skas.h um
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/skas.h um/arch/um/kernel/skas/include/skas.h
---- orig/arch/um/kernel/skas/include/skas.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/include/skas.h      Sun Dec  8 21:00:12 2002
+--- orig/arch/um/kernel/skas/include/skas.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/include/skas.h      2002-12-08 21:00:12.000000000 -0500
 @@ -0,0 +1,49 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23250,8 +22880,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/skas.h um/arch/u
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/uaccess.h um/arch/um/kernel/skas/include/uaccess.h
---- orig/arch/um/kernel/skas/include/uaccess.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/include/uaccess.h   Fri Jan 31 23:05:56 2003
+--- orig/arch/um/kernel/skas/include/uaccess.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/include/uaccess.h   2003-01-31 23:05:56.000000000 -0500
 @@ -0,0 +1,232 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23485,9 +23115,43 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/include/uaccess.h um/arc
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/Makefile um/arch/um/kernel/skas/Makefile
+--- orig/arch/um/kernel/skas/Makefile  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/Makefile    2002-11-01 16:05:44.000000000 -0500
+@@ -0,0 +1,30 @@
++# 
++# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET = skas.o
++
++obj-y = exec_kern.o exec_user.o mem.o mem_user.o mmu.o process.o \
++      process_kern.o syscall_kern.o syscall_user.o time.o tlb.o trap_user.o
++
++subdir-y = sys-$(SUBARCH)
++
++obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
++
++USER_OBJS = $(filter %_user.o,$(obj-y)) process.o time.o
++
++include $(TOPDIR)/Rules.make
++
++include/skas_ptregs.h : util/mk_ptregs
++      util/mk_ptregs > $@
++
++util/mk_ptregs :
++      $(MAKE) -C util
++
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++
++clean :
++      $(MAKE) -C util clean
++      $(RM) -f include/skas_ptregs.h
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/mem.c um/arch/um/kernel/skas/mem.c
---- orig/arch/um/kernel/skas/mem.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/mem.c       Mon Dec 16 21:49:39 2002
+--- orig/arch/um/kernel/skas/mem.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/mem.c       2002-12-16 21:49:39.000000000 -0500
 @@ -0,0 +1,30 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23520,8 +23184,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/mem.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/mem_user.c um/arch/um/kernel/skas/mem_user.c
---- orig/arch/um/kernel/skas/mem_user.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/mem_user.c  Tue Dec 31 00:13:18 2002
+--- orig/arch/um/kernel/skas/mem_user.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/mem_user.c  2002-12-31 00:13:18.000000000 -0500
 @@ -0,0 +1,95 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23619,8 +23283,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/mem_user.c um/arch/um/ke
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/mmu.c um/arch/um/kernel/skas/mmu.c
---- orig/arch/um/kernel/skas/mmu.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/mmu.c       Wed Nov 13 13:09:57 2002
+--- orig/arch/um/kernel/skas/mmu.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/mmu.c       2002-11-13 13:09:57.000000000 -0500
 @@ -0,0 +1,44 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -23667,9 +23331,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/mmu.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/kernel/skas/process.c
---- orig/arch/um/kernel/skas/process.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/process.c   Wed Mar 26 14:43:19 2003
-@@ -0,0 +1,407 @@
+--- orig/arch/um/kernel/skas/process.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/process.c   2003-05-15 15:21:48.000000000 -0400
+@@ -0,0 +1,409 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -24012,7 +23676,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/ker
 +int new_mm(int from)
 +{
 +      struct proc_mm_op copy;
-+      int n, fd = os_open_file("/proc/mm", of_write(OPENFLAGS()), 0);
++      int n, fd = os_open_file("/proc/mm", 
++                               of_cloexec(of_write(OPENFLAGS())), 0);
 +
 +      if(fd < 0)
 +              return(-errno);
@@ -24026,6 +23691,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/ker
 +                      printk("new_mm : /proc/mm copy_segments failed, "
 +                             "errno = %d\n", errno);
 +      }
++
 +      return(fd);
 +}
 +
@@ -24078,8 +23744,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process.c um/arch/um/ker
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process_kern.c um/arch/um/kernel/skas/process_kern.c
---- orig/arch/um/kernel/skas/process_kern.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/process_kern.c      Sun Dec 22 20:37:39 2002
+--- orig/arch/um/kernel/skas/process_kern.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/process_kern.c      2002-12-22 20:37:39.000000000 -0500
 @@ -0,0 +1,191 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -24272,9 +23938,105 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/process_kern.c um/arch/u
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/syscall_kern.c um/arch/um/kernel/skas/syscall_kern.c
+--- orig/arch/um/kernel/skas/syscall_kern.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/syscall_kern.c      2002-12-08 21:01:44.000000000 -0500
+@@ -0,0 +1,42 @@
++/* 
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#include "linux/sys.h"
++#include "asm/errno.h"
++#include "asm/unistd.h"
++#include "asm/ptrace.h"
++#include "asm/current.h"
++#include "sysdep/syscalls.h"
++#include "kern_util.h"
++
++extern syscall_handler_t *sys_call_table[];
++
++long execute_syscall_skas(void *r)
++{
++      struct pt_regs *regs = r;
++      long res;
++      int syscall;
++
++      current->thread.nsyscalls++;
++      nsyscalls++;
++      syscall = UPT_SYSCALL_NR(&regs->regs);
++
++      if((syscall >= NR_syscalls) || (syscall < 0))
++              res = -ENOSYS;
++      else res = EXECUTE_SYSCALL(syscall, regs);
++
++      return(res);
++}
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/syscall_user.c um/arch/um/kernel/skas/syscall_user.c
+--- orig/arch/um/kernel/skas/syscall_user.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/syscall_user.c      2002-12-08 21:00:12.000000000 -0500
+@@ -0,0 +1,46 @@
++/* 
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#include <stdlib.h>
++#include <signal.h>
++#include "kern_util.h"
++#include "syscall_user.h"
++#include "sysdep/ptrace.h"
++#include "sysdep/sigcontext.h"
++
++/* XXX Bogus */
++#define ERESTARTSYS   512
++#define ERESTARTNOINTR        513
++#define ERESTARTNOHAND        514
++
++void handle_syscall(union uml_pt_regs *regs)
++{
++      long result;
++      int index;
++
++      index = record_syscall_start(UPT_SYSCALL_NR(regs));
++
++      syscall_trace();
++      result = execute_syscall(regs);
++
++      REGS_SET_SYSCALL_RETURN(regs->skas.regs, result);
++      if((result == -ERESTARTNOHAND) || (result == -ERESTARTSYS) || 
++         (result == -ERESTARTNOINTR))
++              do_signal(result);
++
++      syscall_trace();
++      record_syscall_end(index, result);
++}
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/sys-i386/Makefile um/arch/um/kernel/skas/sys-i386/Makefile
---- orig/arch/um/kernel/skas/sys-i386/Makefile Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/sys-i386/Makefile   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/skas/sys-i386/Makefile 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/sys-i386/Makefile   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,17 @@
 +# 
 +# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -24294,8 +24056,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/sys-i386/Makefile um/arc
 +
 +clean :
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/sys-i386/sigcontext.c um/arch/um/kernel/skas/sys-i386/sigcontext.c
---- orig/arch/um/kernel/skas/sys-i386/sigcontext.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/sys-i386/sigcontext.c       Sun Dec  8 20:38:46 2002
+--- orig/arch/um/kernel/skas/sys-i386/sigcontext.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/sys-i386/sigcontext.c       2002-12-08 20:38:46.000000000 -0500
 @@ -0,0 +1,115 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -24412,105 +24174,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/sys-i386/sigcontext.c um
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/syscall_kern.c um/arch/um/kernel/skas/syscall_kern.c
---- orig/arch/um/kernel/skas/syscall_kern.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/syscall_kern.c      Sun Dec  8 21:01:44 2002
-@@ -0,0 +1,42 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include "linux/sys.h"
-+#include "asm/errno.h"
-+#include "asm/unistd.h"
-+#include "asm/ptrace.h"
-+#include "asm/current.h"
-+#include "sysdep/syscalls.h"
-+#include "kern_util.h"
-+
-+extern syscall_handler_t *sys_call_table[];
-+
-+long execute_syscall_skas(void *r)
-+{
-+      struct pt_regs *regs = r;
-+      long res;
-+      int syscall;
-+
-+      current->thread.nsyscalls++;
-+      nsyscalls++;
-+      syscall = UPT_SYSCALL_NR(&regs->regs);
-+
-+      if((syscall >= NR_syscalls) || (syscall < 0))
-+              res = -ENOSYS;
-+      else res = EXECUTE_SYSCALL(syscall, regs);
-+
-+      return(res);
-+}
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/syscall_user.c um/arch/um/kernel/skas/syscall_user.c
---- orig/arch/um/kernel/skas/syscall_user.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/syscall_user.c      Sun Dec  8 21:00:12 2002
-@@ -0,0 +1,46 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include <stdlib.h>
-+#include <signal.h>
-+#include "kern_util.h"
-+#include "syscall_user.h"
-+#include "sysdep/ptrace.h"
-+#include "sysdep/sigcontext.h"
-+
-+/* XXX Bogus */
-+#define ERESTARTSYS   512
-+#define ERESTARTNOINTR        513
-+#define ERESTARTNOHAND        514
-+
-+void handle_syscall(union uml_pt_regs *regs)
-+{
-+      long result;
-+      int index;
-+
-+      index = record_syscall_start(UPT_SYSCALL_NR(regs));
-+
-+      syscall_trace();
-+      result = execute_syscall(regs);
-+
-+      REGS_SET_SYSCALL_RETURN(regs->skas.regs, result);
-+      if((result == -ERESTARTNOHAND) || (result == -ERESTARTSYS) || 
-+         (result == -ERESTARTNOINTR))
-+              do_signal(result);
-+
-+      syscall_trace();
-+      record_syscall_end(index, result);
-+}
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/time.c um/arch/um/kernel/skas/time.c
---- orig/arch/um/kernel/skas/time.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/time.c      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/skas/time.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/time.c      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,30 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -24543,8 +24209,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/time.c um/arch/um/kernel
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/tlb.c um/arch/um/kernel/skas/tlb.c
---- orig/arch/um/kernel/skas/tlb.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/tlb.c       Sun Dec 22 18:30:35 2002
+--- orig/arch/um/kernel/skas/tlb.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/tlb.c       2002-12-22 18:30:35.000000000 -0500
 @@ -0,0 +1,153 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -24700,8 +24366,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/tlb.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/trap_user.c um/arch/um/kernel/skas/trap_user.c
---- orig/arch/um/kernel/skas/trap_user.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/trap_user.c Sun Dec 15 13:28:41 2002
+--- orig/arch/um/kernel/skas/trap_user.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/trap_user.c 2002-12-15 13:28:41.000000000 -0500
 @@ -0,0 +1,65 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -24769,8 +24435,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/trap_user.c um/arch/um/k
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/util/Makefile um/arch/um/kernel/skas/util/Makefile
---- orig/arch/um/kernel/skas/util/Makefile     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/util/Makefile       Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/skas/util/Makefile     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/util/Makefile       2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,10 @@
 +all: mk_ptregs
 +
@@ -24783,8 +24449,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/util/Makefile um/arch/um
 +clean : 
 +      $(RM) -f mk_ptregs *.o *~
 diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/util/mk_ptregs.c um/arch/um/kernel/skas/util/mk_ptregs.c
---- orig/arch/um/kernel/skas/util/mk_ptregs.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/skas/util/mk_ptregs.c    Mon Nov 11 12:10:06 2002
+--- orig/arch/um/kernel/skas/util/mk_ptregs.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/skas/util/mk_ptregs.c    2002-11-11 12:10:06.000000000 -0500
 @@ -0,0 +1,50 @@
 +#include <asm/ptrace.h>
 +#include <asm/user.h>
@@ -24837,8 +24503,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/skas/util/mk_ptregs.c um/arch
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/smp.c um/arch/um/kernel/smp.c
---- orig/arch/um/kernel/smp.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/smp.c    Sat Feb 22 14:28:45 2003
+--- orig/arch/um/kernel/smp.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/smp.c    2003-02-22 14:28:45.000000000 -0500
 @@ -0,0 +1,324 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -25128,520 +24794,31 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/smp.c um/arch/um/kernel/smp.c
 +      int cpus = smp_num_cpus - 1;
 +      int i;
 +
-+      if (!cpus)
-+              return 0;
-+
-+      spin_lock_bh(&call_lock);
-+      atomic_set(&scf_started, 0);
-+      atomic_set(&scf_finished, 0);
-+      func = _func;
-+      info = _info;
-+
-+      for (i=0;i<NR_CPUS;i++)
-+              if (i != current->processor && test_bit(i, &cpu_online_map))
-+                      write(cpu_data[i].ipi_pipe[1], "C", 1);
-+
-+      while (atomic_read(&scf_started) != cpus)
-+              barrier();
-+
-+      if (wait)
-+              while (atomic_read(&scf_finished) != cpus)
-+                      barrier();
-+
-+      spin_unlock_bh(&call_lock);
-+      return 0;
-+}
-+
-+#endif
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
-diff -Naur -X ../exclude-files orig/arch/um/kernel/sys_call_table.c um/arch/um/kernel/sys_call_table.c
---- orig/arch/um/kernel/sys_call_table.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/sys_call_table.c Thu Feb 27 13:33:23 2003
-@@ -0,0 +1,485 @@
-+/* 
-+ * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include "linux/unistd.h"
-+#include "linux/version.h"
-+#include "linux/sys.h"
-+#include "asm/signal.h"
-+#include "sysdep/syscalls.h"
-+#include "kern_util.h"
-+
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_exit;
-+extern syscall_handler_t sys_fork;
-+extern syscall_handler_t sys_creat;
-+extern syscall_handler_t sys_link;
-+extern syscall_handler_t sys_unlink;
-+extern syscall_handler_t sys_chdir;
-+extern syscall_handler_t sys_mknod;
-+extern syscall_handler_t sys_chmod;
-+extern syscall_handler_t sys_lchown16;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_stat;
-+extern syscall_handler_t sys_getpid;
-+extern syscall_handler_t sys_oldumount;
-+extern syscall_handler_t sys_setuid16;
-+extern syscall_handler_t sys_getuid16;
-+extern syscall_handler_t sys_ptrace;
-+extern syscall_handler_t sys_alarm;
-+extern syscall_handler_t sys_fstat;
-+extern syscall_handler_t sys_pause;
-+extern syscall_handler_t sys_utime;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_access;
-+extern syscall_handler_t sys_nice;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_sync;
-+extern syscall_handler_t sys_kill;
-+extern syscall_handler_t sys_rename;
-+extern syscall_handler_t sys_mkdir;
-+extern syscall_handler_t sys_rmdir;
-+extern syscall_handler_t sys_pipe;
-+extern syscall_handler_t sys_times;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_brk;
-+extern syscall_handler_t sys_setgid16;
-+extern syscall_handler_t sys_getgid16;
-+extern syscall_handler_t sys_signal;
-+extern syscall_handler_t sys_geteuid16;
-+extern syscall_handler_t sys_getegid16;
-+extern syscall_handler_t sys_acct;
-+extern syscall_handler_t sys_umount;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_ioctl;
-+extern syscall_handler_t sys_fcntl;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_setpgid;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_olduname;
-+extern syscall_handler_t sys_umask;
-+extern syscall_handler_t sys_chroot;
-+extern syscall_handler_t sys_ustat;
-+extern syscall_handler_t sys_dup2;
-+extern syscall_handler_t sys_getppid;
-+extern syscall_handler_t sys_getpgrp;
-+extern syscall_handler_t sys_sigaction;
-+extern syscall_handler_t sys_sgetmask;
-+extern syscall_handler_t sys_ssetmask;
-+extern syscall_handler_t sys_setreuid16;
-+extern syscall_handler_t sys_setregid16;
-+extern syscall_handler_t sys_sigsuspend;
-+extern syscall_handler_t sys_sigpending;
-+extern syscall_handler_t sys_sethostname;
-+extern syscall_handler_t sys_setrlimit;
-+extern syscall_handler_t sys_old_getrlimit;
-+extern syscall_handler_t sys_getrusage;
-+extern syscall_handler_t sys_gettimeofday;
-+extern syscall_handler_t sys_settimeofday;
-+extern syscall_handler_t sys_getgroups16;
-+extern syscall_handler_t sys_setgroups16;
-+extern syscall_handler_t sys_symlink;
-+extern syscall_handler_t sys_lstat;
-+extern syscall_handler_t sys_readlink;
-+extern syscall_handler_t sys_uselib;
-+extern syscall_handler_t sys_swapon;
-+extern syscall_handler_t sys_reboot;
-+extern syscall_handler_t old_readdir;
-+extern syscall_handler_t sys_munmap;
-+extern syscall_handler_t sys_truncate;
-+extern syscall_handler_t sys_ftruncate;
-+extern syscall_handler_t sys_fchmod;
-+extern syscall_handler_t sys_fchown16;
-+extern syscall_handler_t sys_getpriority;
-+extern syscall_handler_t sys_setpriority;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_statfs;
-+extern syscall_handler_t sys_fstatfs;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_socketcall;
-+extern syscall_handler_t sys_syslog;
-+extern syscall_handler_t sys_setitimer;
-+extern syscall_handler_t sys_getitimer;
-+extern syscall_handler_t sys_newstat;
-+extern syscall_handler_t sys_newlstat;
-+extern syscall_handler_t sys_newfstat;
-+extern syscall_handler_t sys_uname;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_vhangup;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_swapoff;
-+extern syscall_handler_t sys_sysinfo;
-+extern syscall_handler_t sys_ipc;
-+extern syscall_handler_t sys_fsync;
-+extern syscall_handler_t sys_sigreturn;
-+extern syscall_handler_t sys_rt_sigreturn;
-+extern syscall_handler_t sys_clone;
-+extern syscall_handler_t sys_setdomainname;
-+extern syscall_handler_t sys_newuname;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_adjtimex;
-+extern syscall_handler_t sys_mprotect;
-+extern syscall_handler_t sys_sigprocmask;
-+extern syscall_handler_t sys_create_module;
-+extern syscall_handler_t sys_init_module;
-+extern syscall_handler_t sys_delete_module;
-+extern syscall_handler_t sys_get_kernel_syms;
-+extern syscall_handler_t sys_quotactl;
-+extern syscall_handler_t sys_getpgid;
-+extern syscall_handler_t sys_fchdir;
-+extern syscall_handler_t sys_bdflush;
-+extern syscall_handler_t sys_sysfs;
-+extern syscall_handler_t sys_personality;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_setfsuid16;
-+extern syscall_handler_t sys_setfsgid16;
-+extern syscall_handler_t sys_llseek;
-+extern syscall_handler_t sys_getdents;
-+extern syscall_handler_t sys_flock;
-+extern syscall_handler_t sys_msync;
-+extern syscall_handler_t sys_readv;
-+extern syscall_handler_t sys_writev;
-+extern syscall_handler_t sys_getsid;
-+extern syscall_handler_t sys_fdatasync;
-+extern syscall_handler_t sys_sysctl;
-+extern syscall_handler_t sys_mlock;
-+extern syscall_handler_t sys_munlock;
-+extern syscall_handler_t sys_mlockall;
-+extern syscall_handler_t sys_munlockall;
-+extern syscall_handler_t sys_sched_setparam;
-+extern syscall_handler_t sys_sched_getparam;
-+extern syscall_handler_t sys_sched_setscheduler;
-+extern syscall_handler_t sys_sched_getscheduler;
-+extern syscall_handler_t sys_sched_get_priority_max;
-+extern syscall_handler_t sys_sched_get_priority_min;
-+extern syscall_handler_t sys_sched_rr_get_interval;
-+extern syscall_handler_t sys_nanosleep;
-+extern syscall_handler_t sys_mremap;
-+extern syscall_handler_t sys_setresuid16;
-+extern syscall_handler_t sys_getresuid16;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_query_module;
-+extern syscall_handler_t sys_poll;
-+extern syscall_handler_t sys_nfsservctl;
-+extern syscall_handler_t sys_setresgid16;
-+extern syscall_handler_t sys_getresgid16;
-+extern syscall_handler_t sys_prctl;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_rt_sigaction;
-+extern syscall_handler_t sys_rt_sigprocmask;
-+extern syscall_handler_t sys_rt_sigpending;
-+extern syscall_handler_t sys_rt_sigtimedwait;
-+extern syscall_handler_t sys_rt_sigqueueinfo;
-+extern syscall_handler_t sys_rt_sigsuspend;
-+extern syscall_handler_t sys_pread;
-+extern syscall_handler_t sys_pwrite;
-+extern syscall_handler_t sys_chown16;
-+extern syscall_handler_t sys_getcwd;
-+extern syscall_handler_t sys_capget;
-+extern syscall_handler_t sys_capset;
-+extern syscall_handler_t sys_sigaltstack;
-+extern syscall_handler_t sys_sendfile;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_ni_syscall;
-+extern syscall_handler_t sys_vfork;
-+extern syscall_handler_t sys_getrlimit;
-+extern syscall_handler_t sys_mmap2;
-+extern syscall_handler_t sys_truncate64;
-+extern syscall_handler_t sys_ftruncate64;
-+extern syscall_handler_t sys_stat64;
-+extern syscall_handler_t sys_lstat64;
-+extern syscall_handler_t sys_fstat64;
-+extern syscall_handler_t sys_lchown;
-+extern syscall_handler_t sys_getuid;
-+extern syscall_handler_t sys_getgid;
-+extern syscall_handler_t sys_geteuid;
-+extern syscall_handler_t sys_getegid;
-+extern syscall_handler_t sys_setreuid;
-+extern syscall_handler_t sys_setregid;
-+extern syscall_handler_t sys_getgroups;
-+extern syscall_handler_t sys_setgroups;
-+extern syscall_handler_t sys_fchown;
-+extern syscall_handler_t sys_setresuid;
-+extern syscall_handler_t sys_getresuid;
-+extern syscall_handler_t sys_setresgid;
-+extern syscall_handler_t sys_getresgid;
-+extern syscall_handler_t sys_chown;
-+extern syscall_handler_t sys_setuid;
-+extern syscall_handler_t sys_setgid;
-+extern syscall_handler_t sys_setfsuid;
-+extern syscall_handler_t sys_setfsgid;
-+extern syscall_handler_t sys_pivot_root;
-+extern syscall_handler_t sys_mincore;
-+extern syscall_handler_t sys_madvise;
-+extern syscall_handler_t sys_fcntl64;
-+extern syscall_handler_t sys_getdents64;
-+extern syscall_handler_t sys_gettid;
-+extern syscall_handler_t sys_readahead;
-+extern syscall_handler_t sys_tkill;
-+extern syscall_handler_t sys_setxattr;
-+extern syscall_handler_t sys_lsetxattr;
-+extern syscall_handler_t sys_fsetxattr;
-+extern syscall_handler_t sys_getxattr;
-+extern syscall_handler_t sys_lgetxattr;
-+extern syscall_handler_t sys_fgetxattr;
-+extern syscall_handler_t sys_listxattr;
-+extern syscall_handler_t sys_llistxattr;
-+extern syscall_handler_t sys_flistxattr;
-+extern syscall_handler_t sys_removexattr;
-+extern syscall_handler_t sys_lremovexattr;
-+extern syscall_handler_t sys_fremovexattr;
-+
-+extern syscall_handler_t um_mount;
-+extern syscall_handler_t um_time;
-+extern syscall_handler_t um_stime;
-+
-+#define LAST_GENERIC_SYSCALL __NR_sched_getaffinity
++      if (!cpus)
++              return 0;
 +
-+#if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
-+#define LAST_SYSCALL LAST_GENERIC_SYSCALL
-+#else
-+#define LAST_SYSCALL LAST_ARCH_SYSCALL
-+#endif
++      spin_lock_bh(&call_lock);
++      atomic_set(&scf_started, 0);
++      atomic_set(&scf_finished, 0);
++      func = _func;
++      info = _info;
 +
-+syscall_handler_t *sys_call_table[] = {
-+      [ 0 ] = sys_ni_syscall,
-+      [ __NR_exit ] = sys_exit,
-+      [ __NR_fork ] = sys_fork,
-+      [ __NR_read ] = (syscall_handler_t *) sys_read,
-+      [ __NR_write ] = (syscall_handler_t *) sys_write,
++      for (i=0;i<NR_CPUS;i++)
++              if (i != current->processor && test_bit(i, &cpu_online_map))
++                      write(cpu_data[i].ipi_pipe[1], "C", 1);
 +
-+      /* These three are declared differently in asm/unistd.h */
-+      [ __NR_open ] = (syscall_handler_t *) sys_open,
-+      [ __NR_close ] = (syscall_handler_t *) sys_close,
-+      [ __NR_waitpid ] = (syscall_handler_t *) sys_waitpid,
-+      [ __NR_creat ] = sys_creat,
-+      [ __NR_link ] = sys_link,
-+      [ __NR_unlink ] = sys_unlink,
++      while (atomic_read(&scf_started) != cpus)
++              barrier();
 +
-+      /* declared differently in kern_util.h */
-+      [ __NR_execve ] = (syscall_handler_t *) sys_execve,
-+      [ __NR_chdir ] = sys_chdir,
-+      [ __NR_time ] = um_time,
-+      [ __NR_mknod ] = sys_mknod,
-+      [ __NR_chmod ] = sys_chmod,
-+      [ __NR_lchown ] = sys_lchown16,
-+      [ __NR_break ] = sys_ni_syscall,
-+      [ __NR_oldstat ] = sys_stat,
-+      [ __NR_lseek ] = (syscall_handler_t *) sys_lseek,
-+      [ __NR_getpid ] = sys_getpid,
-+      [ __NR_mount ] = um_mount,
-+      [ __NR_umount ] = sys_oldumount,
-+      [ __NR_setuid ] = sys_setuid16,
-+      [ __NR_getuid ] = sys_getuid16,
-+      [ __NR_stime ] = um_stime,
-+      [ __NR_ptrace ] = sys_ptrace,
-+      [ __NR_alarm ] = sys_alarm,
-+      [ __NR_oldfstat ] = sys_fstat,
-+      [ __NR_pause ] = sys_pause,
-+      [ __NR_utime ] = sys_utime,
-+      [ __NR_stty ] = sys_ni_syscall,
-+      [ __NR_gtty ] = sys_ni_syscall,
-+      [ __NR_access ] = sys_access,
-+      [ __NR_nice ] = sys_nice,
-+      [ __NR_ftime ] = sys_ni_syscall,
-+      [ __NR_sync ] = sys_sync,
-+      [ __NR_kill ] = sys_kill,
-+      [ __NR_rename ] = sys_rename,
-+      [ __NR_mkdir ] = sys_mkdir,
-+      [ __NR_rmdir ] = sys_rmdir,
++      if (wait)
++              while (atomic_read(&scf_finished) != cpus)
++                      barrier();
 +
-+      /* Declared differently in asm/unistd.h */
-+      [ __NR_dup ] = (syscall_handler_t *) sys_dup,
-+      [ __NR_pipe ] = sys_pipe,
-+      [ __NR_times ] = sys_times,
-+      [ __NR_prof ] = sys_ni_syscall,
-+      [ __NR_brk ] = sys_brk,
-+      [ __NR_setgid ] = sys_setgid16,
-+      [ __NR_getgid ] = sys_getgid16,
-+      [ __NR_signal ] = sys_signal,
-+      [ __NR_geteuid ] = sys_geteuid16,
-+      [ __NR_getegid ] = sys_getegid16,
-+      [ __NR_acct ] = sys_acct,
-+      [ __NR_umount2 ] = sys_umount,
-+      [ __NR_lock ] = sys_ni_syscall,
-+      [ __NR_ioctl ] = sys_ioctl,
-+      [ __NR_fcntl ] = sys_fcntl,
-+      [ __NR_mpx ] = sys_ni_syscall,
-+      [ __NR_setpgid ] = sys_setpgid,
-+      [ __NR_ulimit ] = sys_ni_syscall,
-+      [ __NR_oldolduname ] = sys_olduname,
-+      [ __NR_umask ] = sys_umask,
-+      [ __NR_chroot ] = sys_chroot,
-+      [ __NR_ustat ] = sys_ustat,
-+      [ __NR_dup2 ] = sys_dup2,
-+      [ __NR_getppid ] = sys_getppid,
-+      [ __NR_getpgrp ] = sys_getpgrp,
-+      [ __NR_setsid ] = (syscall_handler_t *) sys_setsid,
-+      [ __NR_sigaction ] = sys_sigaction,
-+      [ __NR_sgetmask ] = sys_sgetmask,
-+      [ __NR_ssetmask ] = sys_ssetmask,
-+      [ __NR_setreuid ] = sys_setreuid16,
-+      [ __NR_setregid ] = sys_setregid16,
-+      [ __NR_sigsuspend ] = sys_sigsuspend,
-+      [ __NR_sigpending ] = sys_sigpending,
-+      [ __NR_sethostname ] = sys_sethostname,
-+      [ __NR_setrlimit ] = sys_setrlimit,
-+      [ __NR_getrlimit ] = sys_old_getrlimit,
-+      [ __NR_getrusage ] = sys_getrusage,
-+      [ __NR_gettimeofday ] = sys_gettimeofday,
-+      [ __NR_settimeofday ] = sys_settimeofday,
-+      [ __NR_getgroups ] = sys_getgroups16,
-+      [ __NR_setgroups ] = sys_setgroups16,
-+      [ __NR_symlink ] = sys_symlink,
-+      [ __NR_oldlstat ] = sys_lstat,
-+      [ __NR_readlink ] = sys_readlink,
-+      [ __NR_uselib ] = sys_uselib,
-+      [ __NR_swapon ] = sys_swapon,
-+      [ __NR_reboot ] = sys_reboot,
-+      [ __NR_readdir ] = old_readdir,
-+      [ __NR_munmap ] = sys_munmap,
-+      [ __NR_truncate ] = sys_truncate,
-+      [ __NR_ftruncate ] = sys_ftruncate,
-+      [ __NR_fchmod ] = sys_fchmod,
-+      [ __NR_fchown ] = sys_fchown16,
-+      [ __NR_getpriority ] = sys_getpriority,
-+      [ __NR_setpriority ] = sys_setpriority,
-+      [ __NR_profil ] = sys_ni_syscall,
-+      [ __NR_statfs ] = sys_statfs,
-+      [ __NR_fstatfs ] = sys_fstatfs,
-+      [ __NR_ioperm ] = sys_ni_syscall,
-+      [ __NR_socketcall ] = sys_socketcall,
-+      [ __NR_syslog ] = sys_syslog,
-+      [ __NR_setitimer ] = sys_setitimer,
-+      [ __NR_getitimer ] = sys_getitimer,
-+      [ __NR_stat ] = sys_newstat,
-+      [ __NR_lstat ] = sys_newlstat,
-+      [ __NR_fstat ] = sys_newfstat,
-+      [ __NR_olduname ] = sys_uname,
-+      [ __NR_iopl ] = sys_ni_syscall,
-+      [ __NR_vhangup ] = sys_vhangup,
-+      [ __NR_idle ] = sys_ni_syscall,
-+      [ __NR_wait4 ] = (syscall_handler_t *) sys_wait4,
-+      [ __NR_swapoff ] = sys_swapoff,
-+      [ __NR_sysinfo ] = sys_sysinfo,
-+      [ __NR_ipc ] = sys_ipc,
-+      [ __NR_fsync ] = sys_fsync,
-+      [ __NR_sigreturn ] = sys_sigreturn,
-+      [ __NR_clone ] = sys_clone,
-+      [ __NR_setdomainname ] = sys_setdomainname,
-+      [ __NR_uname ] = sys_newuname,
-+      [ __NR_adjtimex ] = sys_adjtimex,
-+      [ __NR_mprotect ] = sys_mprotect,
-+      [ __NR_sigprocmask ] = sys_sigprocmask,
-+      [ __NR_create_module ] = sys_create_module,
-+      [ __NR_init_module ] = sys_init_module,
-+      [ __NR_delete_module ] = sys_delete_module,
-+      [ __NR_get_kernel_syms ] = sys_get_kernel_syms,
-+      [ __NR_quotactl ] = sys_quotactl,
-+      [ __NR_getpgid ] = sys_getpgid,
-+      [ __NR_fchdir ] = sys_fchdir,
-+      [ __NR_bdflush ] = sys_bdflush,
-+      [ __NR_sysfs ] = sys_sysfs,
-+      [ __NR_personality ] = sys_personality,
-+      [ __NR_afs_syscall ] = sys_ni_syscall,
-+      [ __NR_setfsuid ] = sys_setfsuid16,
-+      [ __NR_setfsgid ] = sys_setfsgid16,
-+      [ __NR__llseek ] = sys_llseek,
-+      [ __NR_getdents ] = sys_getdents,
-+      [ __NR__newselect ] = (syscall_handler_t *) sys_select,
-+      [ __NR_flock ] = sys_flock,
-+      [ __NR_msync ] = sys_msync,
-+      [ __NR_readv ] = sys_readv,
-+      [ __NR_writev ] = sys_writev,
-+      [ __NR_getsid ] = sys_getsid,
-+      [ __NR_fdatasync ] = sys_fdatasync,
-+      [ __NR__sysctl ] = sys_sysctl,
-+      [ __NR_mlock ] = sys_mlock,
-+      [ __NR_munlock ] = sys_munlock,
-+      [ __NR_mlockall ] = sys_mlockall,
-+      [ __NR_munlockall ] = sys_munlockall,
-+      [ __NR_sched_setparam ] = sys_sched_setparam,
-+      [ __NR_sched_getparam ] = sys_sched_getparam,
-+      [ __NR_sched_setscheduler ] = sys_sched_setscheduler,
-+      [ __NR_sched_getscheduler ] = sys_sched_getscheduler,
-+      [ __NR_sched_yield ] = (syscall_handler_t *) yield,
-+      [ __NR_sched_get_priority_max ] = sys_sched_get_priority_max,
-+      [ __NR_sched_get_priority_min ] = sys_sched_get_priority_min,
-+      [ __NR_sched_rr_get_interval ] = sys_sched_rr_get_interval,
-+      [ __NR_nanosleep ] = sys_nanosleep,
-+      [ __NR_mremap ] = sys_mremap,
-+      [ __NR_setresuid ] = sys_setresuid16,
-+      [ __NR_getresuid ] = sys_getresuid16,
-+      [ __NR_vm86 ] = sys_ni_syscall,
-+      [ __NR_query_module ] = sys_query_module,
-+      [ __NR_poll ] = sys_poll,
-+      [ __NR_nfsservctl ] = sys_nfsservctl,
-+      [ __NR_setresgid ] = sys_setresgid16,
-+      [ __NR_getresgid ] = sys_getresgid16,
-+      [ __NR_prctl ] = sys_prctl,
-+      [ __NR_rt_sigreturn ] = sys_rt_sigreturn,
-+      [ __NR_rt_sigaction ] = sys_rt_sigaction,
-+      [ __NR_rt_sigprocmask ] = sys_rt_sigprocmask,
-+      [ __NR_rt_sigpending ] = sys_rt_sigpending,
-+      [ __NR_rt_sigtimedwait ] = sys_rt_sigtimedwait,
-+      [ __NR_rt_sigqueueinfo ] = sys_rt_sigqueueinfo,
-+      [ __NR_rt_sigsuspend ] = sys_rt_sigsuspend,
-+      [ __NR_pread ] = sys_pread,
-+      [ __NR_pwrite ] = sys_pwrite,
-+      [ __NR_chown ] = sys_chown16,
-+      [ __NR_getcwd ] = sys_getcwd,
-+      [ __NR_capget ] = sys_capget,
-+      [ __NR_capset ] = sys_capset,
-+      [ __NR_sigaltstack ] = sys_sigaltstack,
-+      [ __NR_sendfile ] = sys_sendfile,
-+      [ __NR_getpmsg ] = sys_ni_syscall,
-+      [ __NR_putpmsg ] = sys_ni_syscall,
-+      [ __NR_vfork ] = sys_vfork,
-+      [ __NR_ugetrlimit ] = sys_getrlimit,
-+      [ __NR_mmap2 ] = sys_mmap2,
-+      [ __NR_truncate64 ] = sys_truncate64,
-+      [ __NR_ftruncate64 ] = sys_ftruncate64,
-+      [ __NR_stat64 ] = sys_stat64,
-+      [ __NR_lstat64 ] = sys_lstat64,
-+      [ __NR_fstat64 ] = sys_fstat64,
-+      [ __NR_fcntl64 ] = sys_fcntl64,
-+      [ __NR_getdents64 ] = sys_getdents64,
-+        [ __NR_security ] = sys_ni_syscall,
-+      [ __NR_gettid ] = sys_gettid,
-+      [ __NR_readahead ] = sys_readahead,
-+      [ __NR_setxattr ] = sys_setxattr,
-+      [ __NR_lsetxattr ] = sys_lsetxattr,
-+      [ __NR_fsetxattr ] = sys_fsetxattr,
-+      [ __NR_getxattr ] = sys_getxattr,
-+      [ __NR_lgetxattr ] = sys_lgetxattr,
-+      [ __NR_fgetxattr ] = sys_fgetxattr,
-+      [ __NR_listxattr ] = sys_listxattr,
-+      [ __NR_llistxattr ] = sys_llistxattr,
-+      [ __NR_flistxattr ] = sys_flistxattr,
-+      [ __NR_removexattr ] = sys_removexattr,
-+      [ __NR_lremovexattr ] = sys_lremovexattr,
-+      [ __NR_fremovexattr ] = sys_fremovexattr,
-+      [ __NR_tkill ] = sys_tkill,
-+      [ __NR_sendfile64 ] = sys_ni_syscall,
-+      [ __NR_futex ] = sys_ni_syscall,
-+      [ __NR_sched_setaffinity ] = sys_ni_syscall,
-+      [ __NR_sched_getaffinity ] = sys_ni_syscall,
++      spin_unlock_bh(&call_lock);
++      return 0;
++}
 +
-+      ARCH_SYSCALLS
-+      [ LAST_SYSCALL + 1 ... NR_syscalls ] = 
-+              (syscall_handler_t *) sys_ni_syscall
-+};
++#endif
 +
 +/*
 + * Overrides for Emacs so that we follow Linus's tabbing style.
@@ -25654,8 +24831,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/sys_call_table.c um/arch/um/k
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_kern.c um/arch/um/kernel/syscall_kern.c
---- orig/arch/um/kernel/syscall_kern.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/syscall_kern.c   Fri Nov  8 14:04:10 2002
+--- orig/arch/um/kernel/syscall_kern.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/syscall_kern.c   2002-11-08 14:04:10.000000000 -0500
 @@ -0,0 +1,343 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -25961,34 +25138,523 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_kern.c um/arch/um/ker
 +      
 +      error = error ? -EFAULT : 0;
 +
-+      return error;
-+}
++      return error;
++}
++
++int sys_sigaltstack(const stack_t *uss, stack_t *uoss)
++{
++      return(do_sigaltstack(uss, uoss, PT_REGS_SP(&current->thread.regs)));
++}
++
++long execute_syscall(void *r)
++{
++      return(CHOOSE_MODE_PROC(execute_syscall_tt, execute_syscall_skas, r));
++}
++
++spinlock_t syscall_lock = SPIN_LOCK_UNLOCKED;
++
++static int syscall_index = 0;
++
++int next_syscall_index(int limit)
++{
++      int ret;
++
++      spin_lock(&syscall_lock);
++      ret = syscall_index;
++      if(++syscall_index == limit)
++              syscall_index = 0;
++      spin_unlock(&syscall_lock);
++      return(ret);
++}
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
+diff -Naur -X ../exclude-files orig/arch/um/kernel/sys_call_table.c um/arch/um/kernel/sys_call_table.c
+--- orig/arch/um/kernel/sys_call_table.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/sys_call_table.c 2003-02-27 13:33:23.000000000 -0500
+@@ -0,0 +1,485 @@
++/* 
++ * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#include "linux/unistd.h"
++#include "linux/version.h"
++#include "linux/sys.h"
++#include "asm/signal.h"
++#include "sysdep/syscalls.h"
++#include "kern_util.h"
++
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_exit;
++extern syscall_handler_t sys_fork;
++extern syscall_handler_t sys_creat;
++extern syscall_handler_t sys_link;
++extern syscall_handler_t sys_unlink;
++extern syscall_handler_t sys_chdir;
++extern syscall_handler_t sys_mknod;
++extern syscall_handler_t sys_chmod;
++extern syscall_handler_t sys_lchown16;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_stat;
++extern syscall_handler_t sys_getpid;
++extern syscall_handler_t sys_oldumount;
++extern syscall_handler_t sys_setuid16;
++extern syscall_handler_t sys_getuid16;
++extern syscall_handler_t sys_ptrace;
++extern syscall_handler_t sys_alarm;
++extern syscall_handler_t sys_fstat;
++extern syscall_handler_t sys_pause;
++extern syscall_handler_t sys_utime;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_access;
++extern syscall_handler_t sys_nice;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_sync;
++extern syscall_handler_t sys_kill;
++extern syscall_handler_t sys_rename;
++extern syscall_handler_t sys_mkdir;
++extern syscall_handler_t sys_rmdir;
++extern syscall_handler_t sys_pipe;
++extern syscall_handler_t sys_times;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_brk;
++extern syscall_handler_t sys_setgid16;
++extern syscall_handler_t sys_getgid16;
++extern syscall_handler_t sys_signal;
++extern syscall_handler_t sys_geteuid16;
++extern syscall_handler_t sys_getegid16;
++extern syscall_handler_t sys_acct;
++extern syscall_handler_t sys_umount;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_ioctl;
++extern syscall_handler_t sys_fcntl;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_setpgid;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_olduname;
++extern syscall_handler_t sys_umask;
++extern syscall_handler_t sys_chroot;
++extern syscall_handler_t sys_ustat;
++extern syscall_handler_t sys_dup2;
++extern syscall_handler_t sys_getppid;
++extern syscall_handler_t sys_getpgrp;
++extern syscall_handler_t sys_sigaction;
++extern syscall_handler_t sys_sgetmask;
++extern syscall_handler_t sys_ssetmask;
++extern syscall_handler_t sys_setreuid16;
++extern syscall_handler_t sys_setregid16;
++extern syscall_handler_t sys_sigsuspend;
++extern syscall_handler_t sys_sigpending;
++extern syscall_handler_t sys_sethostname;
++extern syscall_handler_t sys_setrlimit;
++extern syscall_handler_t sys_old_getrlimit;
++extern syscall_handler_t sys_getrusage;
++extern syscall_handler_t sys_gettimeofday;
++extern syscall_handler_t sys_settimeofday;
++extern syscall_handler_t sys_getgroups16;
++extern syscall_handler_t sys_setgroups16;
++extern syscall_handler_t sys_symlink;
++extern syscall_handler_t sys_lstat;
++extern syscall_handler_t sys_readlink;
++extern syscall_handler_t sys_uselib;
++extern syscall_handler_t sys_swapon;
++extern syscall_handler_t sys_reboot;
++extern syscall_handler_t old_readdir;
++extern syscall_handler_t sys_munmap;
++extern syscall_handler_t sys_truncate;
++extern syscall_handler_t sys_ftruncate;
++extern syscall_handler_t sys_fchmod;
++extern syscall_handler_t sys_fchown16;
++extern syscall_handler_t sys_getpriority;
++extern syscall_handler_t sys_setpriority;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_statfs;
++extern syscall_handler_t sys_fstatfs;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_socketcall;
++extern syscall_handler_t sys_syslog;
++extern syscall_handler_t sys_setitimer;
++extern syscall_handler_t sys_getitimer;
++extern syscall_handler_t sys_newstat;
++extern syscall_handler_t sys_newlstat;
++extern syscall_handler_t sys_newfstat;
++extern syscall_handler_t sys_uname;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_vhangup;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_swapoff;
++extern syscall_handler_t sys_sysinfo;
++extern syscall_handler_t sys_ipc;
++extern syscall_handler_t sys_fsync;
++extern syscall_handler_t sys_sigreturn;
++extern syscall_handler_t sys_rt_sigreturn;
++extern syscall_handler_t sys_clone;
++extern syscall_handler_t sys_setdomainname;
++extern syscall_handler_t sys_newuname;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_adjtimex;
++extern syscall_handler_t sys_mprotect;
++extern syscall_handler_t sys_sigprocmask;
++extern syscall_handler_t sys_create_module;
++extern syscall_handler_t sys_init_module;
++extern syscall_handler_t sys_delete_module;
++extern syscall_handler_t sys_get_kernel_syms;
++extern syscall_handler_t sys_quotactl;
++extern syscall_handler_t sys_getpgid;
++extern syscall_handler_t sys_fchdir;
++extern syscall_handler_t sys_bdflush;
++extern syscall_handler_t sys_sysfs;
++extern syscall_handler_t sys_personality;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_setfsuid16;
++extern syscall_handler_t sys_setfsgid16;
++extern syscall_handler_t sys_llseek;
++extern syscall_handler_t sys_getdents;
++extern syscall_handler_t sys_flock;
++extern syscall_handler_t sys_msync;
++extern syscall_handler_t sys_readv;
++extern syscall_handler_t sys_writev;
++extern syscall_handler_t sys_getsid;
++extern syscall_handler_t sys_fdatasync;
++extern syscall_handler_t sys_sysctl;
++extern syscall_handler_t sys_mlock;
++extern syscall_handler_t sys_munlock;
++extern syscall_handler_t sys_mlockall;
++extern syscall_handler_t sys_munlockall;
++extern syscall_handler_t sys_sched_setparam;
++extern syscall_handler_t sys_sched_getparam;
++extern syscall_handler_t sys_sched_setscheduler;
++extern syscall_handler_t sys_sched_getscheduler;
++extern syscall_handler_t sys_sched_get_priority_max;
++extern syscall_handler_t sys_sched_get_priority_min;
++extern syscall_handler_t sys_sched_rr_get_interval;
++extern syscall_handler_t sys_nanosleep;
++extern syscall_handler_t sys_mremap;
++extern syscall_handler_t sys_setresuid16;
++extern syscall_handler_t sys_getresuid16;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_query_module;
++extern syscall_handler_t sys_poll;
++extern syscall_handler_t sys_nfsservctl;
++extern syscall_handler_t sys_setresgid16;
++extern syscall_handler_t sys_getresgid16;
++extern syscall_handler_t sys_prctl;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_rt_sigaction;
++extern syscall_handler_t sys_rt_sigprocmask;
++extern syscall_handler_t sys_rt_sigpending;
++extern syscall_handler_t sys_rt_sigtimedwait;
++extern syscall_handler_t sys_rt_sigqueueinfo;
++extern syscall_handler_t sys_rt_sigsuspend;
++extern syscall_handler_t sys_pread;
++extern syscall_handler_t sys_pwrite;
++extern syscall_handler_t sys_chown16;
++extern syscall_handler_t sys_getcwd;
++extern syscall_handler_t sys_capget;
++extern syscall_handler_t sys_capset;
++extern syscall_handler_t sys_sigaltstack;
++extern syscall_handler_t sys_sendfile;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_ni_syscall;
++extern syscall_handler_t sys_vfork;
++extern syscall_handler_t sys_getrlimit;
++extern syscall_handler_t sys_mmap2;
++extern syscall_handler_t sys_truncate64;
++extern syscall_handler_t sys_ftruncate64;
++extern syscall_handler_t sys_stat64;
++extern syscall_handler_t sys_lstat64;
++extern syscall_handler_t sys_fstat64;
++extern syscall_handler_t sys_lchown;
++extern syscall_handler_t sys_getuid;
++extern syscall_handler_t sys_getgid;
++extern syscall_handler_t sys_geteuid;
++extern syscall_handler_t sys_getegid;
++extern syscall_handler_t sys_setreuid;
++extern syscall_handler_t sys_setregid;
++extern syscall_handler_t sys_getgroups;
++extern syscall_handler_t sys_setgroups;
++extern syscall_handler_t sys_fchown;
++extern syscall_handler_t sys_setresuid;
++extern syscall_handler_t sys_getresuid;
++extern syscall_handler_t sys_setresgid;
++extern syscall_handler_t sys_getresgid;
++extern syscall_handler_t sys_chown;
++extern syscall_handler_t sys_setuid;
++extern syscall_handler_t sys_setgid;
++extern syscall_handler_t sys_setfsuid;
++extern syscall_handler_t sys_setfsgid;
++extern syscall_handler_t sys_pivot_root;
++extern syscall_handler_t sys_mincore;
++extern syscall_handler_t sys_madvise;
++extern syscall_handler_t sys_fcntl64;
++extern syscall_handler_t sys_getdents64;
++extern syscall_handler_t sys_gettid;
++extern syscall_handler_t sys_readahead;
++extern syscall_handler_t sys_tkill;
++extern syscall_handler_t sys_setxattr;
++extern syscall_handler_t sys_lsetxattr;
++extern syscall_handler_t sys_fsetxattr;
++extern syscall_handler_t sys_getxattr;
++extern syscall_handler_t sys_lgetxattr;
++extern syscall_handler_t sys_fgetxattr;
++extern syscall_handler_t sys_listxattr;
++extern syscall_handler_t sys_llistxattr;
++extern syscall_handler_t sys_flistxattr;
++extern syscall_handler_t sys_removexattr;
++extern syscall_handler_t sys_lremovexattr;
++extern syscall_handler_t sys_fremovexattr;
++
++extern syscall_handler_t um_mount;
++extern syscall_handler_t um_time;
++extern syscall_handler_t um_stime;
 +
-+int sys_sigaltstack(const stack_t *uss, stack_t *uoss)
-+{
-+      return(do_sigaltstack(uss, uoss, PT_REGS_SP(&current->thread.regs)));
-+}
++#define LAST_GENERIC_SYSCALL __NR_sched_getaffinity
 +
-+long execute_syscall(void *r)
-+{
-+      return(CHOOSE_MODE_PROC(execute_syscall_tt, execute_syscall_skas, r));
-+}
++#if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
++#define LAST_SYSCALL LAST_GENERIC_SYSCALL
++#else
++#define LAST_SYSCALL LAST_ARCH_SYSCALL
++#endif
 +
-+spinlock_t syscall_lock = SPIN_LOCK_UNLOCKED;
++syscall_handler_t *sys_call_table[] = {
++      [ 0 ] = sys_ni_syscall,
++      [ __NR_exit ] = sys_exit,
++      [ __NR_fork ] = sys_fork,
++      [ __NR_read ] = (syscall_handler_t *) sys_read,
++      [ __NR_write ] = (syscall_handler_t *) sys_write,
 +
-+static int syscall_index = 0;
++      /* These three are declared differently in asm/unistd.h */
++      [ __NR_open ] = (syscall_handler_t *) sys_open,
++      [ __NR_close ] = (syscall_handler_t *) sys_close,
++      [ __NR_waitpid ] = (syscall_handler_t *) sys_waitpid,
++      [ __NR_creat ] = sys_creat,
++      [ __NR_link ] = sys_link,
++      [ __NR_unlink ] = sys_unlink,
 +
-+int next_syscall_index(int limit)
-+{
-+      int ret;
++      /* declared differently in kern_util.h */
++      [ __NR_execve ] = (syscall_handler_t *) sys_execve,
++      [ __NR_chdir ] = sys_chdir,
++      [ __NR_time ] = um_time,
++      [ __NR_mknod ] = sys_mknod,
++      [ __NR_chmod ] = sys_chmod,
++      [ __NR_lchown ] = sys_lchown16,
++      [ __NR_break ] = sys_ni_syscall,
++      [ __NR_oldstat ] = sys_stat,
++      [ __NR_lseek ] = (syscall_handler_t *) sys_lseek,
++      [ __NR_getpid ] = sys_getpid,
++      [ __NR_mount ] = um_mount,
++      [ __NR_umount ] = sys_oldumount,
++      [ __NR_setuid ] = sys_setuid16,
++      [ __NR_getuid ] = sys_getuid16,
++      [ __NR_stime ] = um_stime,
++      [ __NR_ptrace ] = sys_ptrace,
++      [ __NR_alarm ] = sys_alarm,
++      [ __NR_oldfstat ] = sys_fstat,
++      [ __NR_pause ] = sys_pause,
++      [ __NR_utime ] = sys_utime,
++      [ __NR_stty ] = sys_ni_syscall,
++      [ __NR_gtty ] = sys_ni_syscall,
++      [ __NR_access ] = sys_access,
++      [ __NR_nice ] = sys_nice,
++      [ __NR_ftime ] = sys_ni_syscall,
++      [ __NR_sync ] = sys_sync,
++      [ __NR_kill ] = sys_kill,
++      [ __NR_rename ] = sys_rename,
++      [ __NR_mkdir ] = sys_mkdir,
++      [ __NR_rmdir ] = sys_rmdir,
 +
-+      spin_lock(&syscall_lock);
-+      ret = syscall_index;
-+      if(++syscall_index == limit)
-+              syscall_index = 0;
-+      spin_unlock(&syscall_lock);
-+      return(ret);
-+}
++      /* Declared differently in asm/unistd.h */
++      [ __NR_dup ] = (syscall_handler_t *) sys_dup,
++      [ __NR_pipe ] = sys_pipe,
++      [ __NR_times ] = sys_times,
++      [ __NR_prof ] = sys_ni_syscall,
++      [ __NR_brk ] = sys_brk,
++      [ __NR_setgid ] = sys_setgid16,
++      [ __NR_getgid ] = sys_getgid16,
++      [ __NR_signal ] = sys_signal,
++      [ __NR_geteuid ] = sys_geteuid16,
++      [ __NR_getegid ] = sys_getegid16,
++      [ __NR_acct ] = sys_acct,
++      [ __NR_umount2 ] = sys_umount,
++      [ __NR_lock ] = sys_ni_syscall,
++      [ __NR_ioctl ] = sys_ioctl,
++      [ __NR_fcntl ] = sys_fcntl,
++      [ __NR_mpx ] = sys_ni_syscall,
++      [ __NR_setpgid ] = sys_setpgid,
++      [ __NR_ulimit ] = sys_ni_syscall,
++      [ __NR_oldolduname ] = sys_olduname,
++      [ __NR_umask ] = sys_umask,
++      [ __NR_chroot ] = sys_chroot,
++      [ __NR_ustat ] = sys_ustat,
++      [ __NR_dup2 ] = sys_dup2,
++      [ __NR_getppid ] = sys_getppid,
++      [ __NR_getpgrp ] = sys_getpgrp,
++      [ __NR_setsid ] = (syscall_handler_t *) sys_setsid,
++      [ __NR_sigaction ] = sys_sigaction,
++      [ __NR_sgetmask ] = sys_sgetmask,
++      [ __NR_ssetmask ] = sys_ssetmask,
++      [ __NR_setreuid ] = sys_setreuid16,
++      [ __NR_setregid ] = sys_setregid16,
++      [ __NR_sigsuspend ] = sys_sigsuspend,
++      [ __NR_sigpending ] = sys_sigpending,
++      [ __NR_sethostname ] = sys_sethostname,
++      [ __NR_setrlimit ] = sys_setrlimit,
++      [ __NR_getrlimit ] = sys_old_getrlimit,
++      [ __NR_getrusage ] = sys_getrusage,
++      [ __NR_gettimeofday ] = sys_gettimeofday,
++      [ __NR_settimeofday ] = sys_settimeofday,
++      [ __NR_getgroups ] = sys_getgroups16,
++      [ __NR_setgroups ] = sys_setgroups16,
++      [ __NR_symlink ] = sys_symlink,
++      [ __NR_oldlstat ] = sys_lstat,
++      [ __NR_readlink ] = sys_readlink,
++      [ __NR_uselib ] = sys_uselib,
++      [ __NR_swapon ] = sys_swapon,
++      [ __NR_reboot ] = sys_reboot,
++      [ __NR_readdir ] = old_readdir,
++      [ __NR_munmap ] = sys_munmap,
++      [ __NR_truncate ] = sys_truncate,
++      [ __NR_ftruncate ] = sys_ftruncate,
++      [ __NR_fchmod ] = sys_fchmod,
++      [ __NR_fchown ] = sys_fchown16,
++      [ __NR_getpriority ] = sys_getpriority,
++      [ __NR_setpriority ] = sys_setpriority,
++      [ __NR_profil ] = sys_ni_syscall,
++      [ __NR_statfs ] = sys_statfs,
++      [ __NR_fstatfs ] = sys_fstatfs,
++      [ __NR_ioperm ] = sys_ni_syscall,
++      [ __NR_socketcall ] = sys_socketcall,
++      [ __NR_syslog ] = sys_syslog,
++      [ __NR_setitimer ] = sys_setitimer,
++      [ __NR_getitimer ] = sys_getitimer,
++      [ __NR_stat ] = sys_newstat,
++      [ __NR_lstat ] = sys_newlstat,
++      [ __NR_fstat ] = sys_newfstat,
++      [ __NR_olduname ] = sys_uname,
++      [ __NR_iopl ] = sys_ni_syscall,
++      [ __NR_vhangup ] = sys_vhangup,
++      [ __NR_idle ] = sys_ni_syscall,
++      [ __NR_wait4 ] = (syscall_handler_t *) sys_wait4,
++      [ __NR_swapoff ] = sys_swapoff,
++      [ __NR_sysinfo ] = sys_sysinfo,
++      [ __NR_ipc ] = sys_ipc,
++      [ __NR_fsync ] = sys_fsync,
++      [ __NR_sigreturn ] = sys_sigreturn,
++      [ __NR_clone ] = sys_clone,
++      [ __NR_setdomainname ] = sys_setdomainname,
++      [ __NR_uname ] = sys_newuname,
++      [ __NR_adjtimex ] = sys_adjtimex,
++      [ __NR_mprotect ] = sys_mprotect,
++      [ __NR_sigprocmask ] = sys_sigprocmask,
++      [ __NR_create_module ] = sys_create_module,
++      [ __NR_init_module ] = sys_init_module,
++      [ __NR_delete_module ] = sys_delete_module,
++      [ __NR_get_kernel_syms ] = sys_get_kernel_syms,
++      [ __NR_quotactl ] = sys_quotactl,
++      [ __NR_getpgid ] = sys_getpgid,
++      [ __NR_fchdir ] = sys_fchdir,
++      [ __NR_bdflush ] = sys_bdflush,
++      [ __NR_sysfs ] = sys_sysfs,
++      [ __NR_personality ] = sys_personality,
++      [ __NR_afs_syscall ] = sys_ni_syscall,
++      [ __NR_setfsuid ] = sys_setfsuid16,
++      [ __NR_setfsgid ] = sys_setfsgid16,
++      [ __NR__llseek ] = sys_llseek,
++      [ __NR_getdents ] = sys_getdents,
++      [ __NR__newselect ] = (syscall_handler_t *) sys_select,
++      [ __NR_flock ] = sys_flock,
++      [ __NR_msync ] = sys_msync,
++      [ __NR_readv ] = sys_readv,
++      [ __NR_writev ] = sys_writev,
++      [ __NR_getsid ] = sys_getsid,
++      [ __NR_fdatasync ] = sys_fdatasync,
++      [ __NR__sysctl ] = sys_sysctl,
++      [ __NR_mlock ] = sys_mlock,
++      [ __NR_munlock ] = sys_munlock,
++      [ __NR_mlockall ] = sys_mlockall,
++      [ __NR_munlockall ] = sys_munlockall,
++      [ __NR_sched_setparam ] = sys_sched_setparam,
++      [ __NR_sched_getparam ] = sys_sched_getparam,
++      [ __NR_sched_setscheduler ] = sys_sched_setscheduler,
++      [ __NR_sched_getscheduler ] = sys_sched_getscheduler,
++      [ __NR_sched_yield ] = (syscall_handler_t *) yield,
++      [ __NR_sched_get_priority_max ] = sys_sched_get_priority_max,
++      [ __NR_sched_get_priority_min ] = sys_sched_get_priority_min,
++      [ __NR_sched_rr_get_interval ] = sys_sched_rr_get_interval,
++      [ __NR_nanosleep ] = sys_nanosleep,
++      [ __NR_mremap ] = sys_mremap,
++      [ __NR_setresuid ] = sys_setresuid16,
++      [ __NR_getresuid ] = sys_getresuid16,
++      [ __NR_vm86 ] = sys_ni_syscall,
++      [ __NR_query_module ] = sys_query_module,
++      [ __NR_poll ] = sys_poll,
++      [ __NR_nfsservctl ] = sys_nfsservctl,
++      [ __NR_setresgid ] = sys_setresgid16,
++      [ __NR_getresgid ] = sys_getresgid16,
++      [ __NR_prctl ] = sys_prctl,
++      [ __NR_rt_sigreturn ] = sys_rt_sigreturn,
++      [ __NR_rt_sigaction ] = sys_rt_sigaction,
++      [ __NR_rt_sigprocmask ] = sys_rt_sigprocmask,
++      [ __NR_rt_sigpending ] = sys_rt_sigpending,
++      [ __NR_rt_sigtimedwait ] = sys_rt_sigtimedwait,
++      [ __NR_rt_sigqueueinfo ] = sys_rt_sigqueueinfo,
++      [ __NR_rt_sigsuspend ] = sys_rt_sigsuspend,
++      [ __NR_pread ] = sys_pread,
++      [ __NR_pwrite ] = sys_pwrite,
++      [ __NR_chown ] = sys_chown16,
++      [ __NR_getcwd ] = sys_getcwd,
++      [ __NR_capget ] = sys_capget,
++      [ __NR_capset ] = sys_capset,
++      [ __NR_sigaltstack ] = sys_sigaltstack,
++      [ __NR_sendfile ] = sys_sendfile,
++      [ __NR_getpmsg ] = sys_ni_syscall,
++      [ __NR_putpmsg ] = sys_ni_syscall,
++      [ __NR_vfork ] = sys_vfork,
++      [ __NR_ugetrlimit ] = sys_getrlimit,
++      [ __NR_mmap2 ] = sys_mmap2,
++      [ __NR_truncate64 ] = sys_truncate64,
++      [ __NR_ftruncate64 ] = sys_ftruncate64,
++      [ __NR_stat64 ] = sys_stat64,
++      [ __NR_lstat64 ] = sys_lstat64,
++      [ __NR_fstat64 ] = sys_fstat64,
++      [ __NR_fcntl64 ] = sys_fcntl64,
++      [ __NR_getdents64 ] = sys_getdents64,
++        [ __NR_security ] = sys_ni_syscall,
++      [ __NR_gettid ] = sys_gettid,
++      [ __NR_readahead ] = sys_readahead,
++      [ __NR_setxattr ] = sys_setxattr,
++      [ __NR_lsetxattr ] = sys_lsetxattr,
++      [ __NR_fsetxattr ] = sys_fsetxattr,
++      [ __NR_getxattr ] = sys_getxattr,
++      [ __NR_lgetxattr ] = sys_lgetxattr,
++      [ __NR_fgetxattr ] = sys_fgetxattr,
++      [ __NR_listxattr ] = sys_listxattr,
++      [ __NR_llistxattr ] = sys_llistxattr,
++      [ __NR_flistxattr ] = sys_flistxattr,
++      [ __NR_removexattr ] = sys_removexattr,
++      [ __NR_lremovexattr ] = sys_lremovexattr,
++      [ __NR_fremovexattr ] = sys_fremovexattr,
++      [ __NR_tkill ] = sys_tkill,
++      [ __NR_sendfile64 ] = sys_ni_syscall,
++      [ __NR_futex ] = sys_ni_syscall,
++      [ __NR_sched_setaffinity ] = sys_ni_syscall,
++      [ __NR_sched_getaffinity ] = sys_ni_syscall,
++
++      ARCH_SYSCALLS
++      [ LAST_SYSCALL + 1 ... NR_syscalls ] = 
++              (syscall_handler_t *) sys_ni_syscall
++};
 +
 +/*
 + * Overrides for Emacs so that we follow Linus's tabbing style.
@@ -26001,8 +25667,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_kern.c um/arch/um/ker
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_user.c um/arch/um/kernel/syscall_user.c
---- orig/arch/um/kernel/syscall_user.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/syscall_user.c   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/syscall_user.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/syscall_user.c   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,48 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -26053,8 +25719,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/syscall_user.c um/arch/um/ker
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/sysrq.c um/arch/um/kernel/sysrq.c
---- orig/arch/um/kernel/sysrq.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/sysrq.c  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/sysrq.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/sysrq.c  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,98 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -26155,8 +25821,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/sysrq.c um/arch/um/kernel/sys
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tempfile.c um/arch/um/kernel/tempfile.c
---- orig/arch/um/kernel/tempfile.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tempfile.c       Fri Jan 17 23:16:19 2003
+--- orig/arch/um/kernel/tempfile.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tempfile.c       2003-01-17 23:16:19.000000000 -0500
 @@ -0,0 +1,80 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -26239,8 +25905,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tempfile.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/time.c um/arch/um/kernel/time.c
---- orig/arch/um/kernel/time.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/time.c   Wed Apr 23 20:45:19 2003
+--- orig/arch/um/kernel/time.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/time.c   2003-04-23 20:45:19.000000000 -0400
 @@ -0,0 +1,127 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -26370,8 +26036,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/time.c um/arch/um/kernel/time
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/time_kern.c um/arch/um/kernel/time_kern.c
---- orig/arch/um/kernel/time_kern.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/time_kern.c      Wed Apr 23 22:19:08 2003
+--- orig/arch/um/kernel/time_kern.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/time_kern.c      2003-04-23 22:19:08.000000000 -0400
 @@ -0,0 +1,172 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -26546,8 +26212,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/time_kern.c um/arch/um/kernel
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tlb.c um/arch/um/kernel/tlb.c
---- orig/arch/um/kernel/tlb.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tlb.c    Wed Oct 23 22:15:51 2002
+--- orig/arch/um/kernel/tlb.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tlb.c    2002-10-23 22:15:51.000000000 -0400
 @@ -0,0 +1,80 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -26630,8 +26296,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tlb.c um/arch/um/kernel/tlb.c
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_kern.c um/arch/um/kernel/trap_kern.c
---- orig/arch/um/kernel/trap_kern.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/trap_kern.c      Wed Mar 26 13:26:00 2003
+--- orig/arch/um/kernel/trap_kern.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/trap_kern.c      2003-03-26 13:26:00.000000000 -0500
 @@ -0,0 +1,192 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -26826,8 +26492,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_kern.c um/arch/um/kernel
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_user.c um/arch/um/kernel/trap_user.c
---- orig/arch/um/kernel/trap_user.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/trap_user.c      Wed Mar 26 13:25:50 2003
+--- orig/arch/um/kernel/trap_user.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/trap_user.c      2003-03-26 13:25:50.000000000 -0500
 @@ -0,0 +1,140 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -26969,52 +26635,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/trap_user.c um/arch/um/kernel
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/Makefile um/arch/um/kernel/tt/Makefile
---- orig/arch/um/kernel/tt/Makefile    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/Makefile      Fri Dec 20 23:29:42 2002
-@@ -0,0 +1,39 @@
-+# 
-+# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+O_TARGET = tt.o
-+
-+obj-y = exec_kern.o exec_user.o gdb.o ksyms.o mem.o mem_user.o process_kern.o \
-+      syscall_kern.o syscall_user.o time.o tlb.o tracer.o trap_user.o \
-+      uaccess_user.o
-+
-+obj-$(CONFIG_PT_PROXY) += gdb_kern.o 
-+
-+subdir-y = sys-$(SUBARCH)
-+subdir-$(CONFIG_PT_PROXY) += ptproxy
-+
-+obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
-+
-+export-objs = ksyms.o
-+
-+USER_OBJS = $(filter %_user.o,$(obj-y)) gdb.o time.o tracer.o
-+
-+UNMAP_CFLAGS := $(patsubst -pg -DPROFILING,,$(USER_CFLAGS))
-+UNMAP_CFLAGS := $(patsubst -fprofile-arcs -ftest-coverage,,$(UNMAP_CFLAGS))
-+
-+include $(TOPDIR)/Rules.make
-+
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
-+
-+$(O_TARGET) : unmap_fin.o
-+
-+unmap.o: unmap.c
-+      $(CC) $(UNMAP_CFLAGS) -c -o $@ $<
-+
-+unmap_fin.o : unmap.o
-+      ld -r -o $@ $< -lc -L/usr/lib
-+
-+clean :
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/exec_kern.c um/arch/um/kernel/tt/exec_kern.c
---- orig/arch/um/kernel/tt/exec_kern.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/exec_kern.c   Thu Oct 24 19:22:17 2002
+--- orig/arch/um/kernel/tt/exec_kern.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/exec_kern.c   2002-10-24 19:22:17.000000000 -0400
 @@ -0,0 +1,83 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27100,8 +26723,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/exec_kern.c um/arch/um/ker
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/exec_user.c um/arch/um/kernel/tt/exec_user.c
---- orig/arch/um/kernel/tt/exec_user.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/exec_user.c   Thu Dec  5 19:36:57 2002
+--- orig/arch/um/kernel/tt/exec_user.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/exec_user.c   2002-12-05 19:36:57.000000000 -0500
 @@ -0,0 +1,49 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -27153,8 +26776,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/exec_user.c um/arch/um/ker
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/gdb.c um/arch/um/kernel/tt/gdb.c
---- orig/arch/um/kernel/tt/gdb.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/gdb.c Fri Jan 17 13:23:31 2003
+--- orig/arch/um/kernel/tt/gdb.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/gdb.c 2003-01-17 13:23:31.000000000 -0500
 @@ -0,0 +1,278 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27435,8 +27058,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/gdb.c um/arch/um/kernel/tt
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/gdb_kern.c um/arch/um/kernel/tt/gdb_kern.c
---- orig/arch/um/kernel/tt/gdb_kern.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/gdb_kern.c    Sun Dec 15 21:16:17 2002
+--- orig/arch/um/kernel/tt/gdb_kern.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/gdb_kern.c    2002-12-15 21:16:17.000000000 -0500
 @@ -0,0 +1,40 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27479,8 +27102,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/gdb_kern.c um/arch/um/kern
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/debug.h um/arch/um/kernel/tt/include/debug.h
---- orig/arch/um/kernel/tt/include/debug.h     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/include/debug.h       Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/tt/include/debug.h     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/include/debug.h       2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,29 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002  Jeff Dike (jdike@karaya.com) and
@@ -27512,8 +27135,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/debug.h um/arch/um
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/mmu.h um/arch/um/kernel/tt/include/mmu.h
---- orig/arch/um/kernel/tt/include/mmu.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/include/mmu.h Sat Nov  9 12:51:32 2002
+--- orig/arch/um/kernel/tt/include/mmu.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/include/mmu.h 2002-11-09 12:51:32.000000000 -0500
 @@ -0,0 +1,23 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27539,8 +27162,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/mmu.h um/arch/um/k
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/mode.h um/arch/um/kernel/tt/include/mode.h
---- orig/arch/um/kernel/tt/include/mode.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/include/mode.h        Mon Dec  9 00:34:40 2002
+--- orig/arch/um/kernel/tt/include/mode.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/include/mode.h        2002-12-09 00:34:40.000000000 -0500
 @@ -0,0 +1,36 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27579,8 +27202,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/mode.h um/arch/um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/mode_kern.h um/arch/um/kernel/tt/include/mode_kern.h
---- orig/arch/um/kernel/tt/include/mode_kern.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/include/mode_kern.h   Mon Dec 16 21:49:18 2002
+--- orig/arch/um/kernel/tt/include/mode_kern.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/include/mode_kern.h   2002-12-16 21:49:18.000000000 -0500
 @@ -0,0 +1,52 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27635,8 +27258,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/mode_kern.h um/arc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/ptrace-tt.h um/arch/um/kernel/tt/include/ptrace-tt.h
---- orig/arch/um/kernel/tt/include/ptrace-tt.h Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/include/ptrace-tt.h   Fri Jan 17 13:23:30 2003
+--- orig/arch/um/kernel/tt/include/ptrace-tt.h 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/include/ptrace-tt.h   2003-01-17 13:23:30.000000000 -0500
 @@ -0,0 +1,26 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -27665,8 +27288,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/ptrace-tt.h um/arc
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/tt.h um/arch/um/kernel/tt/include/tt.h
---- orig/arch/um/kernel/tt/include/tt.h        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/include/tt.h  Fri Dec 20 23:29:11 2002
+--- orig/arch/um/kernel/tt/include/tt.h        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/include/tt.h  2002-12-20 23:29:11.000000000 -0500
 @@ -0,0 +1,46 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27715,8 +27338,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/tt.h um/arch/um/ke
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/uaccess.h um/arch/um/kernel/tt/include/uaccess.h
---- orig/arch/um/kernel/tt/include/uaccess.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/include/uaccess.h     Tue Mar 25 16:58:42 2003
+--- orig/arch/um/kernel/tt/include/uaccess.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/include/uaccess.h     2003-03-25 16:58:42.000000000 -0500
 @@ -0,0 +1,122 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -27841,8 +27464,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/include/uaccess.h um/arch/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ksyms.c um/arch/um/kernel/tt/ksyms.c
---- orig/arch/um/kernel/tt/ksyms.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ksyms.c       Sun Oct 27 17:01:56 2002
+--- orig/arch/um/kernel/tt/ksyms.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ksyms.c       2002-10-27 17:01:56.000000000 -0500
 @@ -0,0 +1,28 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -27872,9 +27495,52 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ksyms.c um/arch/um/kernel/
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/Makefile um/arch/um/kernel/tt/Makefile
+--- orig/arch/um/kernel/tt/Makefile    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/Makefile      2002-12-20 23:29:42.000000000 -0500
+@@ -0,0 +1,39 @@
++# 
++# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET = tt.o
++
++obj-y = exec_kern.o exec_user.o gdb.o ksyms.o mem.o mem_user.o process_kern.o \
++      syscall_kern.o syscall_user.o time.o tlb.o tracer.o trap_user.o \
++      uaccess_user.o
++
++obj-$(CONFIG_PT_PROXY) += gdb_kern.o 
++
++subdir-y = sys-$(SUBARCH)
++subdir-$(CONFIG_PT_PROXY) += ptproxy
++
++obj-y += $(join $(subdir-y),$(subdir-y:%=/%.o))
++
++export-objs = ksyms.o
++
++USER_OBJS = $(filter %_user.o,$(obj-y)) gdb.o time.o tracer.o
++
++UNMAP_CFLAGS := $(patsubst -pg -DPROFILING,,$(USER_CFLAGS))
++UNMAP_CFLAGS := $(patsubst -fprofile-arcs -ftest-coverage,,$(UNMAP_CFLAGS))
++
++include $(TOPDIR)/Rules.make
++
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++
++$(O_TARGET) : unmap_fin.o
++
++unmap.o: unmap.c
++      $(CC) $(UNMAP_CFLAGS) -c -o $@ $<
++
++unmap_fin.o : unmap.o
++      ld -r -o $@ $< -lc -L/usr/lib
++
++clean :
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/mem.c um/arch/um/kernel/tt/mem.c
---- orig/arch/um/kernel/tt/mem.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/mem.c Mon Dec 16 21:49:51 2002
+--- orig/arch/um/kernel/tt/mem.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/mem.c 2002-12-16 21:49:51.000000000 -0500
 @@ -0,0 +1,51 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27928,8 +27594,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/mem.c um/arch/um/kernel/tt
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/mem_user.c um/arch/um/kernel/tt/mem_user.c
---- orig/arch/um/kernel/tt/mem_user.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/mem_user.c    Fri Jan 17 22:07:31 2003
+--- orig/arch/um/kernel/tt/mem_user.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/mem_user.c    2003-01-17 22:07:31.000000000 -0500
 @@ -0,0 +1,50 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -27982,9 +27648,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/mem_user.c um/arch/um/kern
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/process_kern.c um/arch/um/kernel/tt/process_kern.c
---- orig/arch/um/kernel/tt/process_kern.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/process_kern.c        Sun Feb 16 21:34:23 2003
-@@ -0,0 +1,516 @@
+--- orig/arch/um/kernel/tt/process_kern.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/process_kern.c        2003-05-29 13:46:00.000000000 -0400
+@@ -0,0 +1,517 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -28169,6 +27835,7 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/process_kern.c um/arch/um/
 +int fork_tramp(void *stack)
 +{
 +      cli();
++      arch_init_thread();
 +      init_new_thread_stack(stack, finish_fork_handler);
 +      os_usr1_process(os_getpid());
 +      return(0);
@@ -28502,8 +28169,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/process_kern.c um/arch/um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/Makefile um/arch/um/kernel/tt/ptproxy/Makefile
---- orig/arch/um/kernel/tt/ptproxy/Makefile    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ptproxy/Makefile      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/tt/ptproxy/Makefile    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/Makefile      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,12 @@
 +O_TARGET = ptproxy.o
 +
@@ -28518,8 +28185,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/Makefile um/arch/u
 +
 +clean:
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/proxy.c um/arch/um/kernel/tt/ptproxy/proxy.c
---- orig/arch/um/kernel/tt/ptproxy/proxy.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ptproxy/proxy.c       Wed Apr 16 14:01:03 2003
+--- orig/arch/um/kernel/tt/ptproxy/proxy.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/proxy.c       2003-04-16 14:01:03.000000000 -0400
 @@ -0,0 +1,370 @@
 +/**********************************************************************
 +proxy.c
@@ -28892,8 +28559,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/proxy.c um/arch/um
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/ptproxy.h um/arch/um/kernel/tt/ptproxy/ptproxy.h
---- orig/arch/um/kernel/tt/ptproxy/ptproxy.h   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ptproxy/ptproxy.h     Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/tt/ptproxy/ptproxy.h   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/ptproxy.h     2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,61 @@
 +/**********************************************************************
 +ptproxy.h
@@ -28957,8 +28624,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/ptproxy.h um/arch/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/ptrace.c um/arch/um/kernel/tt/ptproxy/ptrace.c
---- orig/arch/um/kernel/tt/ptproxy/ptrace.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ptproxy/ptrace.c      Mon Nov 11 13:06:03 2002
+--- orig/arch/um/kernel/tt/ptproxy/ptrace.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/ptrace.c      2002-11-11 13:06:03.000000000 -0500
 @@ -0,0 +1,239 @@
 +/**********************************************************************
 +ptrace.c
@@ -29200,8 +28867,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/ptrace.c um/arch/u
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/sysdep.c um/arch/um/kernel/tt/ptproxy/sysdep.c
---- orig/arch/um/kernel/tt/ptproxy/sysdep.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ptproxy/sysdep.c      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/tt/ptproxy/sysdep.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/sysdep.c      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,71 @@
 +/**********************************************************************
 +sysdep.c
@@ -29275,8 +28942,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/sysdep.c um/arch/u
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/sysdep.h um/arch/um/kernel/tt/ptproxy/sysdep.h
---- orig/arch/um/kernel/tt/ptproxy/sysdep.h    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ptproxy/sysdep.h      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/tt/ptproxy/sysdep.h    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/sysdep.h      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,25 @@
 +/**********************************************************************
 +sysdep.h
@@ -29304,8 +28971,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/sysdep.h um/arch/u
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/wait.c um/arch/um/kernel/tt/ptproxy/wait.c
---- orig/arch/um/kernel/tt/ptproxy/wait.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ptproxy/wait.c        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/tt/ptproxy/wait.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/wait.c        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,86 @@
 +/**********************************************************************
 +wait.c
@@ -29394,8 +29061,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/wait.c um/arch/um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/wait.h um/arch/um/kernel/tt/ptproxy/wait.h
---- orig/arch/um/kernel/tt/ptproxy/wait.h      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/ptproxy/wait.h        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/tt/ptproxy/wait.h      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/ptproxy/wait.h        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,15 @@
 +/**********************************************************************
 +wait.h
@@ -29412,94 +29079,9 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/ptproxy/wait.h um/arch/um/
 +extern int parent_wait_return(struct debugger *debugger, pid_t unused);
 +
 +#endif
-diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/sys-i386/Makefile um/arch/um/kernel/tt/sys-i386/Makefile
---- orig/arch/um/kernel/tt/sys-i386/Makefile   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/sys-i386/Makefile     Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,17 @@
-+# 
-+# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+O_TARGET = sys-i386.o
-+
-+obj-y = sigcontext.o
-+
-+USER_OBJS = sigcontext.o
-+
-+include $(TOPDIR)/Rules.make
-+
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
-+
-+clean :
-diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/sys-i386/sigcontext.c um/arch/um/kernel/tt/sys-i386/sigcontext.c
---- orig/arch/um/kernel/tt/sys-i386/sigcontext.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/sys-i386/sigcontext.c Sun Dec  1 23:33:52 2002
-@@ -0,0 +1,60 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#include <stdlib.h>
-+#include <asm/sigcontext.h>
-+#include "kern_util.h"
-+#include "sysdep/frame.h"
-+
-+int copy_sc_from_user_tt(void *to_ptr, void *from_ptr, void *data)
-+{
-+      struct arch_frame_data *arch = data;
-+      struct sigcontext *to = to_ptr, *from = from_ptr;
-+      struct _fpstate *to_fp, *from_fp;
-+      unsigned long sigs;
-+      int err;
-+
-+      to_fp = to->fpstate;
-+      from_fp = from->fpstate;
-+      sigs = to->oldmask;
-+      err = copy_from_user_proc(to, from, sizeof(*to));
-+      to->oldmask = sigs;
-+      if(to_fp != NULL){
-+              err |= copy_from_user_proc(&to->fpstate, &to_fp,
-+                                         sizeof(to->fpstate));
-+              err |= copy_from_user_proc(to_fp, from_fp, arch->fpstate_size);
-+      }
-+      return(err);
-+}
-+
-+int copy_sc_to_user_tt(void *to_ptr, void *fp, void *from_ptr, void *data)
-+{
-+      struct arch_frame_data *arch = data;
-+      struct sigcontext *to = to_ptr, *from = from_ptr;
-+      struct _fpstate *to_fp, *from_fp;
-+      int err;
-+
-+      to_fp = (struct _fpstate *) 
-+              (fp ? (unsigned long) fp : ((unsigned long) to + sizeof(*to)));
-+      from_fp = from->fpstate;
-+      err = copy_to_user_proc(to, from, sizeof(*to));
-+      if(from_fp != NULL){
-+              err |= copy_to_user_proc(&to->fpstate, &to_fp,
-+                                       sizeof(to->fpstate));
-+              err |= copy_to_user_proc(to_fp, from_fp, arch->fpstate_size);
-+      }
-+      return(err);
-+}
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/syscall_kern.c um/arch/um/kernel/tt/syscall_kern.c
---- orig/arch/um/kernel/tt/syscall_kern.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/syscall_kern.c        Sun Dec  8 19:32:53 2002
+--- orig/arch/um/kernel/tt/syscall_kern.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/syscall_kern.c        2002-12-08 19:32:53.000000000 -0500
 @@ -0,0 +1,142 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -29644,8 +29226,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/syscall_kern.c um/arch/um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/syscall_user.c um/arch/um/kernel/tt/syscall_user.c
---- orig/arch/um/kernel/tt/syscall_user.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/syscall_user.c        Sun Dec  8 21:00:11 2002
+--- orig/arch/um/kernel/tt/syscall_user.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/syscall_user.c        2002-12-08 21:00:11.000000000 -0500
 @@ -0,0 +1,89 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -29736,9 +29318,94 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/syscall_user.c um/arch/um/
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/sys-i386/Makefile um/arch/um/kernel/tt/sys-i386/Makefile
+--- orig/arch/um/kernel/tt/sys-i386/Makefile   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/sys-i386/Makefile     2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,17 @@
++# 
++# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET = sys-i386.o
++
++obj-y = sigcontext.o
++
++USER_OBJS = sigcontext.o
++
++include $(TOPDIR)/Rules.make
++
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++
++clean :
+diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/sys-i386/sigcontext.c um/arch/um/kernel/tt/sys-i386/sigcontext.c
+--- orig/arch/um/kernel/tt/sys-i386/sigcontext.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/sys-i386/sigcontext.c 2002-12-01 23:33:52.000000000 -0500
+@@ -0,0 +1,60 @@
++/* 
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#include <stdlib.h>
++#include <asm/sigcontext.h>
++#include "kern_util.h"
++#include "sysdep/frame.h"
++
++int copy_sc_from_user_tt(void *to_ptr, void *from_ptr, void *data)
++{
++      struct arch_frame_data *arch = data;
++      struct sigcontext *to = to_ptr, *from = from_ptr;
++      struct _fpstate *to_fp, *from_fp;
++      unsigned long sigs;
++      int err;
++
++      to_fp = to->fpstate;
++      from_fp = from->fpstate;
++      sigs = to->oldmask;
++      err = copy_from_user_proc(to, from, sizeof(*to));
++      to->oldmask = sigs;
++      if(to_fp != NULL){
++              err |= copy_from_user_proc(&to->fpstate, &to_fp,
++                                         sizeof(to->fpstate));
++              err |= copy_from_user_proc(to_fp, from_fp, arch->fpstate_size);
++      }
++      return(err);
++}
++
++int copy_sc_to_user_tt(void *to_ptr, void *fp, void *from_ptr, void *data)
++{
++      struct arch_frame_data *arch = data;
++      struct sigcontext *to = to_ptr, *from = from_ptr;
++      struct _fpstate *to_fp, *from_fp;
++      int err;
++
++      to_fp = (struct _fpstate *) 
++              (fp ? (unsigned long) fp : ((unsigned long) to + sizeof(*to)));
++      from_fp = from->fpstate;
++      err = copy_to_user_proc(to, from, sizeof(*to));
++      if(from_fp != NULL){
++              err |= copy_to_user_proc(&to->fpstate, &to_fp,
++                                       sizeof(to->fpstate));
++              err |= copy_to_user_proc(to_fp, from_fp, arch->fpstate_size);
++      }
++      return(err);
++}
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/time.c um/arch/um/kernel/tt/time.c
---- orig/arch/um/kernel/tt/time.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/time.c        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/tt/time.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/time.c        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,28 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -29769,8 +29436,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/time.c um/arch/um/kernel/t
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/tlb.c um/arch/um/kernel/tt/tlb.c
---- orig/arch/um/kernel/tt/tlb.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/tlb.c Thu Dec 19 13:03:11 2002
+--- orig/arch/um/kernel/tt/tlb.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/tlb.c 2002-12-19 13:03:11.000000000 -0500
 @@ -0,0 +1,220 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -29993,8 +29660,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/tlb.c um/arch/um/kernel/tt
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/tracer.c um/arch/um/kernel/tt/tracer.c
---- orig/arch/um/kernel/tt/tracer.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/tracer.c      Wed Mar 26 10:01:33 2003
+--- orig/arch/um/kernel/tt/tracer.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/tracer.c      2003-03-26 10:01:33.000000000 -0500
 @@ -0,0 +1,453 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -30450,8 +30117,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/tracer.c um/arch/um/kernel
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/trap_user.c um/arch/um/kernel/tt/trap_user.c
---- orig/arch/um/kernel/tt/trap_user.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/trap_user.c   Mon Dec  9 13:14:42 2002
+--- orig/arch/um/kernel/tt/trap_user.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/trap_user.c   2002-12-09 13:14:42.000000000 -0500
 @@ -0,0 +1,59 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -30513,8 +30180,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/trap_user.c um/arch/um/ker
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/uaccess_user.c um/arch/um/kernel/tt/uaccess_user.c
---- orig/arch/um/kernel/tt/uaccess_user.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/uaccess_user.c        Tue Mar 25 17:10:54 2003
+--- orig/arch/um/kernel/tt/uaccess_user.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/uaccess_user.c        2003-03-25 17:10:54.000000000 -0500
 @@ -0,0 +1,100 @@
 +/* 
 + * Copyright (C) 2001 Chris Emerson (cemerson@chiark.greenend.org.uk)
@@ -30617,8 +30284,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/uaccess_user.c um/arch/um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/unmap.c um/arch/um/kernel/tt/unmap.c
---- orig/arch/um/kernel/tt/unmap.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tt/unmap.c       Wed Dec 11 10:42:21 2002
+--- orig/arch/um/kernel/tt/unmap.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tt/unmap.c       2002-12-11 10:42:21.000000000 -0500
 @@ -0,0 +1,31 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -30652,8 +30319,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tt/unmap.c um/arch/um/kernel/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/tty_log.c um/arch/um/kernel/tty_log.c
---- orig/arch/um/kernel/tty_log.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/tty_log.c        Wed Apr 16 16:35:20 2003
+--- orig/arch/um/kernel/tty_log.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/tty_log.c        2003-04-16 16:35:20.000000000 -0400
 @@ -0,0 +1,213 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) and 
@@ -30869,8 +30536,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/tty_log.c um/arch/um/kernel/t
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/uaccess_user.c um/arch/um/kernel/uaccess_user.c
---- orig/arch/um/kernel/uaccess_user.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/uaccess_user.c   Tue Mar 25 17:06:05 2003
+--- orig/arch/um/kernel/uaccess_user.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/uaccess_user.c   2003-03-25 17:06:05.000000000 -0500
 @@ -0,0 +1,64 @@
 +/* 
 + * Copyright (C) 2001 Chris Emerson (cemerson@chiark.greenend.org.uk)
@@ -30937,8 +30604,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/uaccess_user.c um/arch/um/ker
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/um_arch.c um/arch/um/kernel/um_arch.c
---- orig/arch/um/kernel/um_arch.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/um_arch.c        Thu Mar  6 19:06:09 2003
+--- orig/arch/um/kernel/um_arch.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/um_arch.c        2003-03-06 19:06:09.000000000 -0500
 @@ -0,0 +1,425 @@
 +/* 
 + * Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
@@ -31366,8 +31033,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/um_arch.c um/arch/um/kernel/u
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/umid.c um/arch/um/kernel/umid.c
---- orig/arch/um/kernel/umid.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/umid.c   Mon Feb 24 23:11:23 2003
+--- orig/arch/um/kernel/umid.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/umid.c   2003-02-24 23:11:23.000000000 -0500
 @@ -0,0 +1,319 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -31689,8 +31356,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/umid.c um/arch/um/kernel/umid
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/kernel/user_syms.c um/arch/um/kernel/user_syms.c
---- orig/arch/um/kernel/user_syms.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/user_syms.c      Wed Oct 23 21:08:04 2002
+--- orig/arch/um/kernel/user_syms.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/user_syms.c      2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,116 @@
 +#include <stdio.h>
 +#include <unistd.h>
@@ -31809,8 +31476,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/user_syms.c um/arch/um/kernel
 +
 +EXPORT_SYMBOL(find_iomem);
 diff -Naur -X ../exclude-files orig/arch/um/kernel/user_util.c um/arch/um/kernel/user_util.c
---- orig/arch/um/kernel/user_util.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/kernel/user_util.c      Wed Apr 23 20:41:54 2003
+--- orig/arch/um/kernel/user_util.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/kernel/user_util.c      2003-04-23 20:41:54.000000000 -0400
 @@ -0,0 +1,164 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -31977,8 +31644,8 @@ diff -Naur -X ../exclude-files orig/arch/um/kernel/user_util.c um/arch/um/kernel
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/link.ld.in um/arch/um/link.ld.in
---- orig/arch/um/link.ld.in    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/link.ld.in      Fri Jan 17 23:11:30 2003
+--- orig/arch/um/link.ld.in    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/link.ld.in      2003-01-17 23:11:30.000000000 -0500
 @@ -0,0 +1,95 @@
 +OUTPUT_FORMAT("ELF_FORMAT")
 +OUTPUT_ARCH(ELF_ARCH)
@@ -32076,8 +31743,8 @@ diff -Naur -X ../exclude-files orig/arch/um/link.ld.in um/arch/um/link.ld.in
 +  .comment 0 : { *(.comment) }
 +}
 diff -Naur -X ../exclude-files orig/arch/um/main.c um/arch/um/main.c
---- orig/arch/um/main.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/main.c  Fri Jan 17 13:22:40 2003
+--- orig/arch/um/main.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/main.c  2003-01-17 13:22:40.000000000 -0500
 @@ -0,0 +1,195 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -32274,65 +31941,284 @@ diff -Naur -X ../exclude-files orig/arch/um/main.c um/arch/um/main.c
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/os-Linux/Makefile um/arch/um/os-Linux/Makefile
---- orig/arch/um/os-Linux/Makefile     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/Makefile       Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,17 @@
+diff -Naur -X ../exclude-files orig/arch/um/Makefile um/arch/um/Makefile
+--- orig/arch/um/Makefile      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/Makefile        2003-06-05 15:42:11.000000000 -0400
+@@ -0,0 +1,168 @@
 +# 
-+# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 +# Licensed under the GPL
 +#
 +
-+O_TARGET = built-in.o
++OS := $(shell uname -s)
 +
-+obj-y = file.o process.o tty.o
++ARCH_DIR = arch/um
 +
-+include $(TOPDIR)/Rules.make
++core-y := kernel sys-$(SUBARCH) os-$(OS)
++drivers-y := fs drivers
++subdir-y := $(core-y) $(drivers-y)
++SUBDIRS += $(foreach dir,$(subdir-y),$(ARCH_DIR)/$(dir))
 +
-+$(obj-y) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++CORE_FILES += $(foreach dir,$(core-y),$(ARCH_DIR)/$(dir)/built-in.o)
++DRIVERS += $(foreach dir,$(drivers-y),$(ARCH_DIR)/$(dir)/built-in.o)
 +
-+clean :
++include $(ARCH_DIR)/Makefile-$(SUBARCH)
++include $(ARCH_DIR)/Makefile-os-$(OS)
++
++MAKEFILE-$(CONFIG_MODE_TT) += Makefile-tt
++MAKEFILE-$(CONFIG_MODE_SKAS) += Makefile-skas
++
++ifneq ($(MAKEFILE-y),)
++  include $(addprefix $(ARCH_DIR)/,$(MAKEFILE-y))
++endif
++
++EXTRAVERSION := $(EXTRAVERSION)-6um
++
++include/linux/version.h: arch/$(ARCH)/Makefile
++
++# Recalculate MODLIB to reflect the EXTRAVERSION changes (via KERNELRELEASE)
++# The way the toplevel Makefile is written EXTRAVERSION is not supposed
++# to be changed outside the toplevel Makefile, but recalculating MODLIB is
++# a sufficient workaround until we no longer need architecture dependent
++# EXTRAVERSION...
++MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
++
++ifeq ($(CONFIG_DEBUGSYM),y)
++CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS))
++endif
++
++CFLAGS-$(CONFIG_DEBUGSYM) += -g
++
++ARCH_INCLUDE = -I$(TOPDIR)/$(ARCH_DIR)/include
++
++# -Derrno=kernel_errno - This turns all kernel references to errno into
++# kernel_errno to separate them from the libc errno.  This allows -fno-common
++# in CFLAGS.  Otherwise, it would cause ld to complain about the two different
++# errnos.
++
++CFLAGS += $(ARCH_CFLAGS) $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \
++      -D_LARGEFILE64_SOURCE $(ARCH_INCLUDE) -Derrno=kernel_errno \
++      $(MODE_INCLUDE)
++
++LINKFLAGS += -r
++
++LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc
++
++SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000)
++
++# These aren't in Makefile-tt because they are needed in the !CONFIG_MODE_TT +
++# CONFIG_MODE_SKAS + CONFIG_STATIC_LINK case.
++
++LINK_TT = -static
++LD_SCRIPT_TT := link.ld
++
++ifeq ($(CONFIG_STATIC_LINK),y)
++  LINK-y += $(LINK_TT)
++  LD_SCRIPT-y := $(LD_SCRIPT_TT)
++else
++ifeq ($(CONFIG_MODE_TT),y)
++  LINK-y += $(LINK_TT)
++  LD_SCRIPT-y := $(LD_SCRIPT_TT)
++else
++ifeq ($(CONFIG_MODE_SKAS),y)
++  LINK-y += $(LINK_SKAS)
++  LD_SCRIPT-y := $(LD_SCRIPT_SKAS)
++endif
++endif
++endif
++
++LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
++M4_MODE_TT := $(shell [ "$(CONFIG_MODE_TT)" = "y" ] && echo -DMODE_TT)
++
++$(LD_SCRIPT-y): $(LD_SCRIPT-y).in
++      pages=$$(( 1 << $(CONFIG_KERNEL_STACK_ORDER) )) ; \
++      m4 -DSTART=$$(($(TOP_ADDR) - $(SIZE))) -DELF_ARCH=$(ELF_ARCH) \
++              -DELF_FORMAT=$(ELF_FORMAT) $(M4_MODE_TT) \
++              -DKERNEL_STACK_SIZE=$$(( 4096 * $$pages )) $< > $@
++
++SYMLINK_HEADERS = include/asm-um/archparam.h include/asm-um/system.h \
++      include/asm-um/sigcontext.h include/asm-um/processor.h \
++      include/asm-um/ptrace.h include/asm-um/arch-signal.h
++
++ARCH_SYMLINKS = include/asm-um/arch arch/um/include/sysdep arch/um/os \
++      $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h
++
++ifeq ($(CONFIG_MODE_SKAS), y)
++$(SYS_HEADERS) : $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
++endif
++
++GEN_HEADERS += $(ARCH_DIR)/include/task.h $(ARCH_DIR)/include/kern_constants.h 
++
++setup: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS) 
++
++linux: setup $(ARCH_DIR)/main.o vmlinux $(LD_SCRIPT-y)
++      mv vmlinux vmlinux.o
++      $(CC) -Wl,-T,$(LD_SCRIPT-y) $(LINK-y) $(LINK_WRAPS) \
++              -o linux $(ARCH_DIR)/main.o vmlinux.o -L/usr/lib -lutil
++
++USER_CFLAGS := $(patsubst -I%,,$(CFLAGS))
++USER_CFLAGS := $(patsubst -Derrno=kernel_errno,,$(USER_CFLAGS))
++USER_CFLAGS := $(patsubst -D__KERNEL__,,$(USER_CFLAGS)) $(ARCH_INCLUDE) \
++      $(MODE_INCLUDE)
++
++# To get a definition of F_SETSIG
++USER_CFLAGS += -D_GNU_SOURCE
++
++CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/link.ld $(ARCH_DIR)/dyn_link.ld \
++      $(GEN_HEADERS) $(ARCH_DIR)/include/uml-config.h
++
++$(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c
++      $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
 +
 +archmrproper:
-diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/Makefile um/arch/um/os-Linux/drivers/Makefile
---- orig/arch/um/os-Linux/drivers/Makefile     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/drivers/Makefile       Wed Oct 23 21:08:04 2002
-@@ -0,0 +1,31 @@
++      rm -f $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) include/asm \
++              $(LD_SCRIPT) $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS))
++
++archclean: sysclean
++      find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
++              -o -name '*.gcov' \) -type f -print | xargs rm -f
++      cd $(ARCH_DIR) ; \
++      for dir in $(subdir-y) util ; do $(MAKE) -C $$dir clean; done
++
++archdep: 
++
++$(SYMLINK_HEADERS):
++      cd $(TOPDIR)/$(dir $@) ; \
++      ln -sf $(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $(notdir $@)
++
++include/asm-um/arch:
++      cd $(TOPDIR)/include/asm-um && ln -sf ../asm-$(SUBARCH) arch
++
++arch/um/include/sysdep:
++      cd $(TOPDIR)/arch/um/include && ln -sf sysdep-$(SUBARCH) sysdep
++
++arch/um/os:
++      cd $(ARCH_DIR) && ln -sf os-$(OS) os
++
++$(ARCH_DIR)/include/task.h : $(ARCH_DIR)/util/mk_task
++      $< > $@
++
++$(ARCH_DIR)/include/kern_constants.h : $(ARCH_DIR)/util/mk_constants
++      $< > $@
++
++$(ARCH_DIR)/include/uml-config.h : $(TOPDIR)/include/linux/autoconf.h
++      sed 's/ CONFIG/ UML_CONFIG/' $(TOPDIR)/include/linux/autoconf.h > $@
++
++$(ARCH_DIR)/util/mk_task : $(ARCH_DIR)/util/mk_task_user.c \
++      $(ARCH_DIR)/util/mk_task_kern.c $(SYS_HEADERS)
++      $(MAKE) $(MFLAGS) -C $(ARCH_DIR)/util mk_task
++
++$(ARCH_DIR)/util/mk_constants : $(ARCH_DIR)/util/mk_constants_user.c \
++      $(ARCH_DIR)/util/mk_constants_kern.c 
++      $(MAKE) $(MFLAGS) -C $(ARCH_DIR)/util mk_constants
++
++export SUBARCH USER_CFLAGS OS
+diff -Naur -X ../exclude-files orig/arch/um/Makefile-i386 um/arch/um/Makefile-i386
+--- orig/arch/um/Makefile-i386 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/Makefile-i386   2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,35 @@
++ifeq ($(CONFIG_HOST_2G_2G), y)
++TOP_ADDR = 0x80000000
++else
++TOP_ADDR = 0xc0000000
++endif
++
++ARCH_CFLAGS = -U__$(SUBARCH)__ -U$(SUBARCH) -DUM_FASTCALL
++ELF_ARCH = $(SUBARCH)
++ELF_FORMAT = elf32-$(SUBARCH)
++
++I386_H = $(ARCH_DIR)/include/sysdep-i386
++SYS = $(ARCH_DIR)/sys-i386
++UTIL = $(SYS)/util
++SUBDIRS += $(UTIL)
++
++SYS_HEADERS = $(I386_H)/sc.h $(I386_H)/thread.h
++
++$(I386_H)/sc.h : $(UTIL)/mk_sc
++      $(UTIL)/mk_sc > $@
++
++$(I386_H)/thread.h : $(UTIL)/mk_thread
++      $(UTIL)/mk_thread > $@
++
++$(UTIL)/mk_sc : $(UTIL)/mk_sc.c
++      $(MAKE) -C $(UTIL) mk_sc
++
++$(UTIL)/mk_thread : $(UTIL)/mk_thread_user.c $(UTIL)/mk_thread_kern.c \
++      $(I386_H)/sc.h
++      $(MAKE) -C $(UTIL) mk_thread
++
++sysclean :
++      rm -f $(SYS_HEADERS)
++      $(MAKE) -C $(UTIL) clean
++      $(MAKE) -C $(SYS) clean
++
+diff -Naur -X ../exclude-files orig/arch/um/Makefile-ia64 um/arch/um/Makefile-ia64
+--- orig/arch/um/Makefile-ia64 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/Makefile-ia64   2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1 @@
++START_ADDR = 0x1000000000000000
+diff -Naur -X ../exclude-files orig/arch/um/Makefile-os-Linux um/arch/um/Makefile-os-Linux
+--- orig/arch/um/Makefile-os-Linux     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/Makefile-os-Linux       2002-12-09 14:21:51.000000000 -0500
+@@ -0,0 +1,7 @@
 +# 
-+# Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
++# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
 +# Licensed under the GPL
 +#
 +
-+O_TARGET := drivers.o
-+
-+list-multi := tuntap.o ethertap.o
++SUBDIRS += $(ARCH_DIR)/os-$(OS)/drivers
++DRIVERS += $(ARCH_DIR)/os-$(OS)/drivers/drivers.o
+diff -Naur -X ../exclude-files orig/arch/um/Makefile-ppc um/arch/um/Makefile-ppc
+--- orig/arch/um/Makefile-ppc  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/Makefile-ppc    2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,9 @@
++ifeq ($(CONFIG_HOST_2G_2G), y)
++START_ADDR = 0x80000000
++else
++START_ADDR = 0xc0000000
++endif
++ARCH_CFLAGS = -U__powerpc__ -D__UM_PPC__
 +
-+ethertap-objs := ethertap_kern.o ethertap_user.o
-+tuntap-objs := tuntap_kern.o tuntap_user.o
++# The arch is ppc, but the elf32 name is powerpc
++ELF_SUBARCH = powerpc
+diff -Naur -X ../exclude-files orig/arch/um/Makefile-skas um/arch/um/Makefile-skas
+--- orig/arch/um/Makefile-skas 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/Makefile-skas   2002-12-15 22:02:57.000000000 -0500
+@@ -0,0 +1,20 @@
++# 
++# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
 +
-+obj-y = 
-+obj-$(CONFIG_UML_NET_ETHERTAP) += ethertap.o
-+obj-$(CONFIG_UML_NET_TUNTAP) += tuntap.o
++PROFILE += -pg
 +
-+USER_SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y)),$($(f)-objs))
++CFLAGS-$(CONFIG_GCOV) += -fprofile-arcs -ftest-coverage
++CFLAGS-$(CONFIG_GPROF) += $(PROFILE)
++LINK-$(CONFIG_GPROF) += $(PROFILE)
 +
-+USER_OBJS = $(filter %_user.o,$(obj-y) $(USER_SINGLE_OBJS))
++MODE_INCLUDE += -I$(TOPDIR)/$(ARCH_DIR)/kernel/skas/include
 +
-+include $(TOPDIR)/Rules.make
++LINK_SKAS = -Wl,-rpath,/lib 
++LD_SCRIPT_SKAS = dyn_link.ld
 +
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++GEN_HEADERS += $(ARCH_DIR)/kernel/skas/include/skas_ptregs.h
 +
-+ethertap.o : $(ethertap-objs)
++$(ARCH_DIR)/kernel/skas/include/skas_ptregs.h :
++      $(MAKE) -C $(ARCH_DIR)/kernel/skas include/skas_ptregs.h
+diff -Naur -X ../exclude-files orig/arch/um/Makefile-tt um/arch/um/Makefile-tt
+--- orig/arch/um/Makefile-tt   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/Makefile-tt     2002-12-16 20:22:23.000000000 -0500
+@@ -0,0 +1,7 @@
++# 
++# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
 +
-+tuntap.o : $(tuntap-objs)
++MODE_INCLUDE += -I$(TOPDIR)/$(ARCH_DIR)/kernel/tt/include
 +
-+$(list-multi) : # This doesn't work, but should : '%.o : $(%-objs)'
-+      $(LD) $(LD_RFLAG) -r -o $@ $($(patsubst %.o,%,$@)-objs)
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/etap.h um/arch/um/os-Linux/drivers/etap.h
---- orig/arch/um/os-Linux/drivers/etap.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/drivers/etap.h Wed Oct 23 21:08:04 2002
+--- orig/arch/um/os-Linux/drivers/etap.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/drivers/etap.h 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,27 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -32362,8 +32248,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/etap.h um/arch/um/o
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/ethertap_kern.c um/arch/um/os-Linux/drivers/ethertap_kern.c
---- orig/arch/um/os-Linux/drivers/ethertap_kern.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/drivers/ethertap_kern.c        Sun Dec 15 21:17:37 2002
+--- orig/arch/um/os-Linux/drivers/ethertap_kern.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/drivers/ethertap_kern.c        2002-12-15 21:17:37.000000000 -0500
 @@ -0,0 +1,122 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org) and 
@@ -32488,8 +32374,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/ethertap_kern.c um/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/ethertap_user.c um/arch/um/os-Linux/drivers/ethertap_user.c
---- orig/arch/um/os-Linux/drivers/ethertap_user.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/drivers/ethertap_user.c        Sun Dec 15 21:17:52 2002
+--- orig/arch/um/os-Linux/drivers/ethertap_user.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/drivers/ethertap_user.c        2002-12-15 21:17:52.000000000 -0500
 @@ -0,0 +1,238 @@
 +/*
 + * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org) and 
@@ -32729,9 +32615,44 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/ethertap_user.c um/
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/Makefile um/arch/um/os-Linux/drivers/Makefile
+--- orig/arch/um/os-Linux/drivers/Makefile     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/drivers/Makefile       2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,31 @@
++# 
++# Copyright (C) 2000, 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET := drivers.o
++
++list-multi := tuntap.o ethertap.o
++
++ethertap-objs := ethertap_kern.o ethertap_user.o
++tuntap-objs := tuntap_kern.o tuntap_user.o
++
++obj-y = 
++obj-$(CONFIG_UML_NET_ETHERTAP) += ethertap.o
++obj-$(CONFIG_UML_NET_TUNTAP) += tuntap.o
++
++USER_SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y)),$($(f)-objs))
++
++USER_OBJS = $(filter %_user.o,$(obj-y) $(USER_SINGLE_OBJS))
++
++include $(TOPDIR)/Rules.make
++
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++
++ethertap.o : $(ethertap-objs)
++
++tuntap.o : $(tuntap-objs)
++
++$(list-multi) : # This doesn't work, but should : '%.o : $(%-objs)'
++      $(LD) $(LD_RFLAG) -r -o $@ $($(patsubst %.o,%,$@)-objs)
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/tuntap.h um/arch/um/os-Linux/drivers/tuntap.h
---- orig/arch/um/os-Linux/drivers/tuntap.h     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/drivers/tuntap.h       Wed Oct 23 21:08:04 2002
+--- orig/arch/um/os-Linux/drivers/tuntap.h     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/drivers/tuntap.h       2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,32 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -32766,8 +32687,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/tuntap.h um/arch/um
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/tuntap_kern.c um/arch/um/os-Linux/drivers/tuntap_kern.c
---- orig/arch/um/os-Linux/drivers/tuntap_kern.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/drivers/tuntap_kern.c  Sun Dec 15 21:18:16 2002
+--- orig/arch/um/os-Linux/drivers/tuntap_kern.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/drivers/tuntap_kern.c  2002-12-15 21:18:16.000000000 -0500
 @@ -0,0 +1,105 @@
 +/* 
 + * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
@@ -32875,8 +32796,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/tuntap_kern.c um/ar
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/tuntap_user.c um/arch/um/os-Linux/drivers/tuntap_user.c
---- orig/arch/um/os-Linux/drivers/tuntap_user.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/drivers/tuntap_user.c  Sun Dec 15 21:18:25 2002
+--- orig/arch/um/os-Linux/drivers/tuntap_user.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/drivers/tuntap_user.c  2002-12-15 21:18:25.000000000 -0500
 @@ -0,0 +1,223 @@
 +/* 
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -33102,8 +33023,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/drivers/tuntap_user.c um/ar
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/file.c um/arch/um/os-Linux/file.c
---- orig/arch/um/os-Linux/file.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/file.c Tue Feb  4 19:32:10 2003
+--- orig/arch/um/os-Linux/file.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/file.c 2003-02-04 19:32:10.000000000 -0500
 @@ -0,0 +1,384 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -33490,8 +33411,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/file.c um/arch/um/os-Linux/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/include/file.h um/arch/um/os-Linux/include/file.h
---- orig/arch/um/os-Linux/include/file.h       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/include/file.h Wed Oct 23 21:08:04 2002
+--- orig/arch/um/os-Linux/include/file.h       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/include/file.h 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,22 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -33515,9 +33436,30 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/include/file.h um/arch/um/o
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/os-Linux/Makefile um/arch/um/os-Linux/Makefile
+--- orig/arch/um/os-Linux/Makefile     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/Makefile       2002-10-23 21:08:04.000000000 -0400
+@@ -0,0 +1,17 @@
++# 
++# Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET = built-in.o
++
++obj-y = file.o process.o tty.o
++
++include $(TOPDIR)/Rules.make
++
++$(obj-y) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++
++clean :
++
++archmrproper:
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/process.c um/arch/um/os-Linux/process.c
---- orig/arch/um/os-Linux/process.c    Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/process.c      Wed Jan  8 14:19:00 2003
+--- orig/arch/um/os-Linux/process.c    1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/process.c      2003-01-08 14:19:00.000000000 -0500
 @@ -0,0 +1,142 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -33662,8 +33604,8 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/process.c um/arch/um/os-Lin
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/os-Linux/tty.c um/arch/um/os-Linux/tty.c
---- orig/arch/um/os-Linux/tty.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/os-Linux/tty.c  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/os-Linux/tty.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/os-Linux/tty.c  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,61 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -33726,60 +33668,10 @@ diff -Naur -X ../exclude-files orig/arch/um/os-Linux/tty.c um/arch/um/os-Linux/t
 + * c-file-style: "linux"
 + * End:
 + */
-diff -Naur -X ../exclude-files orig/arch/um/sys-i386/Makefile um/arch/um/sys-i386/Makefile
---- orig/arch/um/sys-i386/Makefile     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/Makefile       Sat Nov 23 23:34:24 2002
-@@ -0,0 +1,46 @@
-+# 
-+# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+# Licensed under the GPL
-+#
-+
-+O_TARGET = built-in.o
-+
-+obj-y = bugs.o checksum.o extable.o fault.o ksyms.o ldt.o ptrace.o \
-+      ptrace_user.o semaphore.o sigcontext.o syscalls.o sysrq.o
-+export-objs = ksyms.o
-+
-+USER_OBJS = bugs.o ptrace_user.o sigcontext.o fault.o
-+
-+SYMLINKS = semaphore.c extable.c
-+
-+semaphore.c-dir = kernel
-+extable.c-dir = mm
-+
-+include $(TOPDIR)/Rules.make
-+
-+$(USER_OBJS) : %.o: %.c
-+      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
-+
-+define make_link
-+      -rm -f $1
-+      ln -sf $(TOPDIR)/arch/i386/$($1-dir)/$1 $1
-+endef
-+
-+$(SYMLINKS): 
-+      $(call make_link,$@)
-+
-+clean:
-+      $(MAKE) -C util clean
-+      rm -f $(SYMLINKS)
-+
-+fastdep:
-+
-+dep:
-+
-+archmrproper:
-+
-+archclean:
-+
-+archdep:
-+
-+modules:
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/bugs.c um/arch/um/sys-i386/bugs.c
---- orig/arch/um/sys-i386/bugs.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/bugs.c Sun Dec  8 20:38:45 2002
-@@ -0,0 +1,157 @@
+--- orig/arch/um/sys-i386/bugs.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/bugs.c 2003-05-29 13:46:50.000000000 -0400
+@@ -0,0 +1,177 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 + * Licensed under the GPL
@@ -33790,6 +33682,7 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/bugs.c um/arch/um/sys-i386/
 +#include <errno.h>
 +#include <string.h>
 +#include <sys/signal.h>
++#include <asm/ldt.h>
 +#include "kern_util.h"
 +#include "user.h"
 +#include "sysdep/ptrace.h"
@@ -33886,6 +33779,25 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/bugs.c um/arch/um/sys-i386/
 +      return(1);
 +}
 +
++static void disable_lcall(void)
++{
++      struct modify_ldt_ldt_s ldt;
++      int err;
++
++      bzero(&ldt, sizeof(ldt));
++      ldt.entry_number = 7;
++      ldt.base_addr = 0;
++      ldt.limit = 0;
++      err = modify_ldt(1, &ldt, sizeof(ldt));
++      if(err)
++              printk("Failed to disable lcall7 - errno = %d\n", errno);
++}
++
++void arch_init_thread(void)
++{
++      disable_lcall();
++}
++
 +void arch_check_bugs(void)
 +{
 +      int have_it;
@@ -33938,8 +33850,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/bugs.c um/arch/um/sys-i386/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/checksum.S um/arch/um/sys-i386/checksum.S
---- orig/arch/um/sys-i386/checksum.S   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/checksum.S     Thu Oct 31 20:17:50 2002
+--- orig/arch/um/sys-i386/checksum.S   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/checksum.S     2002-10-31 20:17:50.000000000 -0500
 @@ -0,0 +1,460 @@
 +/*
 + * INET               An implementation of the TCP/IP protocol suite for the LINUX
@@ -34402,8 +34314,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/checksum.S um/arch/um/sys-i
 +              
 +#endif
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/fault.c um/arch/um/sys-i386/fault.c
---- orig/arch/um/sys-i386/fault.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/fault.c        Sun Oct 27 16:49:35 2002
+--- orig/arch/um/sys-i386/fault.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/fault.c        2002-10-27 16:49:35.000000000 -0500
 @@ -0,0 +1,34 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -34440,8 +34352,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/fault.c um/arch/um/sys-i386
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ksyms.c um/arch/um/sys-i386/ksyms.c
---- orig/arch/um/sys-i386/ksyms.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/ksyms.c        Tue Oct 29 21:01:45 2002
+--- orig/arch/um/sys-i386/ksyms.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/ksyms.c        2002-10-29 21:01:45.000000000 -0500
 @@ -0,0 +1,17 @@
 +#include "linux/module.h"
 +#include "linux/in6.h"
@@ -34461,8 +34373,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ksyms.c um/arch/um/sys-i386
 +EXPORT_SYMBOL(csum_partial_copy_from);
 +EXPORT_SYMBOL(csum_partial_copy_to);
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ldt.c um/arch/um/sys-i386/ldt.c
---- orig/arch/um/sys-i386/ldt.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/ldt.c  Wed Nov 13 12:43:04 2002
+--- orig/arch/um/sys-i386/ldt.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/ldt.c  2002-11-13 12:43:04.000000000 -0500
 @@ -0,0 +1,92 @@
 +/*
 + * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -34556,9 +34468,59 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ldt.c um/arch/um/sys-i386/l
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/arch/um/sys-i386/Makefile um/arch/um/sys-i386/Makefile
+--- orig/arch/um/sys-i386/Makefile     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/Makefile       2002-11-23 23:34:24.000000000 -0500
+@@ -0,0 +1,46 @@
++# 
++# Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++# Licensed under the GPL
++#
++
++O_TARGET = built-in.o
++
++obj-y = bugs.o checksum.o extable.o fault.o ksyms.o ldt.o ptrace.o \
++      ptrace_user.o semaphore.o sigcontext.o syscalls.o sysrq.o
++export-objs = ksyms.o
++
++USER_OBJS = bugs.o ptrace_user.o sigcontext.o fault.o
++
++SYMLINKS = semaphore.c extable.c
++
++semaphore.c-dir = kernel
++extable.c-dir = mm
++
++include $(TOPDIR)/Rules.make
++
++$(USER_OBJS) : %.o: %.c
++      $(CC) $(CFLAGS_$@) $(USER_CFLAGS) -c -o $@ $<
++
++define make_link
++      -rm -f $1
++      ln -sf $(TOPDIR)/arch/i386/$($1-dir)/$1 $1
++endef
++
++$(SYMLINKS): 
++      $(call make_link,$@)
++
++clean:
++      $(MAKE) -C util clean
++      rm -f $(SYMLINKS)
++
++fastdep:
++
++dep:
++
++archmrproper:
++
++archclean:
++
++archdep:
++
++modules:
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ptrace.c um/arch/um/sys-i386/ptrace.c
---- orig/arch/um/sys-i386/ptrace.c     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/ptrace.c       Sun Oct 27 16:49:35 2002
+--- orig/arch/um/sys-i386/ptrace.c     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/ptrace.c       2002-10-27 16:49:35.000000000 -0500
 @@ -0,0 +1,365 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -34926,8 +34888,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ptrace.c um/arch/um/sys-i38
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ptrace_user.c um/arch/um/sys-i386/ptrace_user.c
---- orig/arch/um/sys-i386/ptrace_user.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/ptrace_user.c  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-i386/ptrace_user.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/ptrace_user.c  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,117 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -35047,8 +35009,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/ptrace_user.c um/arch/um/sy
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/sigcontext.c um/arch/um/sys-i386/sigcontext.c
---- orig/arch/um/sys-i386/sigcontext.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/sigcontext.c   Mon Dec  2 23:20:13 2002
+--- orig/arch/um/sys-i386/sigcontext.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/sigcontext.c   2002-12-02 23:20:13.000000000 -0500
 @@ -0,0 +1,80 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -35131,8 +35093,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/sigcontext.c um/arch/um/sys
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/syscalls.c um/arch/um/sys-i386/syscalls.c
---- orig/arch/um/sys-i386/syscalls.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/syscalls.c     Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-i386/syscalls.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/syscalls.c     2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,68 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -35203,8 +35165,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/syscalls.c um/arch/um/sys-i
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/sysrq.c um/arch/um/sys-i386/sysrq.c
---- orig/arch/um/sys-i386/sysrq.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/sysrq.c        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-i386/sysrq.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/sysrq.c        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,30 @@
 +#include "linux/kernel.h"
 +#include "linux/smp.h"
@@ -35237,8 +35199,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/sysrq.c um/arch/um/sys-i386
 +        show_trace((unsigned long *) &regs);
 +}
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/util/Makefile um/arch/um/sys-i386/util/Makefile
---- orig/arch/um/sys-i386/util/Makefile        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/util/Makefile  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-i386/util/Makefile        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/util/Makefile  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,28 @@
 +EXE = mk_sc mk_thread
 +
@@ -35269,8 +35231,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/util/Makefile um/arch/um/sy
 +fastdep :
 +
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/util/mk_sc.c um/arch/um/sys-i386/util/mk_sc.c
---- orig/arch/um/sys-i386/util/mk_sc.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/util/mk_sc.c   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-i386/util/mk_sc.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/util/mk_sc.c   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,51 @@
 +#include <stdio.h>
 +#include <signal.h>
@@ -35324,8 +35286,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/util/mk_sc.c um/arch/um/sys
 +  return(0);
 +}
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/util/mk_thread_kern.c um/arch/um/sys-i386/util/mk_thread_kern.c
---- orig/arch/um/sys-i386/util/mk_thread_kern.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/util/mk_thread_kern.c  Mon Dec  9 23:24:38 2002
+--- orig/arch/um/sys-i386/util/mk_thread_kern.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/util/mk_thread_kern.c  2002-12-09 23:24:38.000000000 -0500
 @@ -0,0 +1,22 @@
 +#include "linux/config.h"
 +#include "linux/stddef.h"
@@ -35350,8 +35312,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/util/mk_thread_kern.c um/ar
 +}
 +
 diff -Naur -X ../exclude-files orig/arch/um/sys-i386/util/mk_thread_user.c um/arch/um/sys-i386/util/mk_thread_user.c
---- orig/arch/um/sys-i386/util/mk_thread_user.c        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-i386/util/mk_thread_user.c  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-i386/util/mk_thread_user.c        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-i386/util/mk_thread_user.c  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,30 @@
 +#include <stdio.h>
 +
@@ -35384,8 +35346,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-i386/util/mk_thread_user.c um/ar
 +  printf("#endif\n");
 +}
 diff -Naur -X ../exclude-files orig/arch/um/sys-ia64/Makefile um/arch/um/sys-ia64/Makefile
---- orig/arch/um/sys-ia64/Makefile     Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-ia64/Makefile       Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-ia64/Makefile     1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-ia64/Makefile       2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,26 @@
 +OBJ = sys.o
 +
@@ -35414,8 +35376,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-ia64/Makefile um/arch/um/sys-ia6
 +
 +include $(TOPDIR)/Rules.make
 diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/Makefile um/arch/um/sys-ppc/Makefile
---- orig/arch/um/sys-ppc/Makefile      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-ppc/Makefile        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-ppc/Makefile      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-ppc/Makefile        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,80 @@
 +OBJ = sys.o
 +
@@ -35498,8 +35460,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/Makefile um/arch/um/sys-ppc/
 +
 +include $(TOPDIR)/Rules.make
 diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/misc.S um/arch/um/sys-ppc/misc.S
---- orig/arch/um/sys-ppc/misc.S        Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-ppc/misc.S  Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-ppc/misc.S        1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-ppc/misc.S  2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,116 @@
 +/*
 + * This file contains miscellaneous low-level functions.
@@ -35618,8 +35580,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/misc.S um/arch/um/sys-ppc/mi
 +      bdnz    1b
 +      blr
 diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/miscthings.c um/arch/um/sys-ppc/miscthings.c
---- orig/arch/um/sys-ppc/miscthings.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-ppc/miscthings.c    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-ppc/miscthings.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-ppc/miscthings.c    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,53 @@
 +#include "linux/threads.h"
 +#include "linux/stddef.h"  // for NULL
@@ -35675,8 +35637,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/miscthings.c um/arch/um/sys-
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/ptrace.c um/arch/um/sys-ppc/ptrace.c
---- orig/arch/um/sys-ppc/ptrace.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-ppc/ptrace.c        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-ppc/ptrace.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-ppc/ptrace.c        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,28 @@
 +#include "linux/sched.h"
 +#include "asm/ptrace.h"
@@ -35707,8 +35669,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/ptrace.c um/arch/um/sys-ppc/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/ptrace_user.c um/arch/um/sys-ppc/ptrace_user.c
---- orig/arch/um/sys-ppc/ptrace_user.c Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-ppc/ptrace_user.c   Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-ppc/ptrace_user.c 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-ppc/ptrace_user.c   2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,40 @@
 +#include <sys/ptrace.h>
 +#include <errno.h>
@@ -35751,8 +35713,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/ptrace_user.c um/arch/um/sys
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/sigcontext.c um/arch/um/sys-ppc/sigcontext.c
---- orig/arch/um/sys-ppc/sigcontext.c  Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-ppc/sigcontext.c    Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-ppc/sigcontext.c  1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-ppc/sigcontext.c    2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,15 @@
 +#include "asm/ptrace.h"
 +#include "asm/sigcontext.h"
@@ -35770,8 +35732,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/sigcontext.c um/arch/um/sys-
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/sysrq.c um/arch/um/sys-ppc/sysrq.c
---- orig/arch/um/sys-ppc/sysrq.c       Wed Dec 31 19:00:00 1969
-+++ um/arch/um/sys-ppc/sysrq.c Wed Oct 23 21:08:04 2002
+--- orig/arch/um/sys-ppc/sysrq.c       1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/sys-ppc/sysrq.c 2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,43 @@
 +/* 
 + * Copyright (C) 2001 Chris Emerson (cemerson@chiark.greenend.org.uk)
@@ -35817,8 +35779,8 @@ diff -Naur -X ../exclude-files orig/arch/um/sys-ppc/sysrq.c um/arch/um/sys-ppc/s
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/arch/um/util/Makefile um/arch/um/util/Makefile
---- orig/arch/um/util/Makefile Wed Dec 31 19:00:00 1969
-+++ um/arch/um/util/Makefile   Wed Oct 23 21:09:14 2002
+--- orig/arch/um/util/Makefile 1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/util/Makefile   2002-10-23 21:09:14.000000000 -0400
 @@ -0,0 +1,26 @@
 +ALL = mk_task mk_constants
 +
@@ -35847,8 +35809,8 @@ diff -Naur -X ../exclude-files orig/arch/um/util/Makefile um/arch/um/util/Makefi
 +
 +archmrproper : clean
 diff -Naur -X ../exclude-files orig/arch/um/util/mk_constants_kern.c um/arch/um/util/mk_constants_kern.c
---- orig/arch/um/util/mk_constants_kern.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/util/mk_constants_kern.c        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/util/mk_constants_kern.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/util/mk_constants_kern.c        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,24 @@
 +#include "linux/kernel.h"
 +#include "linux/stringify.h"
@@ -35875,8 +35837,8 @@ diff -Naur -X ../exclude-files orig/arch/um/util/mk_constants_kern.c um/arch/um/
 +  return(0);
 +}
 diff -Naur -X ../exclude-files orig/arch/um/util/mk_constants_user.c um/arch/um/util/mk_constants_user.c
---- orig/arch/um/util/mk_constants_user.c      Wed Dec 31 19:00:00 1969
-+++ um/arch/um/util/mk_constants_user.c        Wed Oct 23 21:08:04 2002
+--- orig/arch/um/util/mk_constants_user.c      1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/util/mk_constants_user.c        2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,28 @@
 +#include <stdio.h>
 +
@@ -35907,8 +35869,8 @@ diff -Naur -X ../exclude-files orig/arch/um/util/mk_constants_user.c um/arch/um/
 +  printf("#endif\n");
 +}
 diff -Naur -X ../exclude-files orig/arch/um/util/mk_task_kern.c um/arch/um/util/mk_task_kern.c
---- orig/arch/um/util/mk_task_kern.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/util/mk_task_kern.c     Sun Dec  8 21:03:34 2002
+--- orig/arch/um/util/mk_task_kern.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/util/mk_task_kern.c     2002-12-08 21:03:34.000000000 -0500
 @@ -0,0 +1,17 @@
 +#include "linux/sched.h"
 +#include "linux/stddef.h"
@@ -35928,8 +35890,8 @@ diff -Naur -X ../exclude-files orig/arch/um/util/mk_task_kern.c um/arch/um/util/
 +  return(0);
 +}
 diff -Naur -X ../exclude-files orig/arch/um/util/mk_task_user.c um/arch/um/util/mk_task_user.c
---- orig/arch/um/util/mk_task_user.c   Wed Dec 31 19:00:00 1969
-+++ um/arch/um/util/mk_task_user.c     Wed Oct 23 21:08:04 2002
+--- orig/arch/um/util/mk_task_user.c   1969-12-31 19:00:00.000000000 -0500
++++ um/arch/um/util/mk_task_user.c     2002-10-23 21:08:04.000000000 -0400
 @@ -0,0 +1,30 @@
 +#include <stdio.h>
 +
@@ -35961,9 +35923,252 @@ diff -Naur -X ../exclude-files orig/arch/um/util/mk_task_user.c um/arch/um/util/
 +  printf("\n");
 +  printf("#endif\n");
 +}
+diff -Naur -X ../exclude-files orig/CREDITS um/CREDITS
+--- orig/CREDITS       2003-02-27 13:04:11.000000000 -0500
++++ um/CREDITS 2003-02-27 13:05:17.000000000 -0500
+@@ -432,6 +432,7 @@
+ E: lars@nocrew.org
+ W: http://lars.nocrew.org/
+ D: dsp56k device driver
++D: ptrace proxy in user mode kernel port
+ S: Kopmansg 2
+ S: 411 13  Goteborg
+ S: Sweden
+@@ -721,7 +722,7 @@
+ E: jdike@karaya.com
+ W: http://user-mode-linux.sourceforge.net
+ D: User mode kernel port
+-S: RR1 Box 67C
++S: 375 Tubbs Hill Rd
+ S: Deering NH 03244
+ S: USA
+diff -Naur -X ../exclude-files orig/Documentation/Configure.help um/Documentation/Configure.help
+--- orig/Documentation/Configure.help  2003-02-27 13:04:11.000000000 -0500
++++ um/Documentation/Configure.help    2003-02-27 13:05:17.000000000 -0500
+@@ -14690,19 +14690,23 @@
+   The module will be called dsbr100.o. If you want to compile it as a
+   module, say M here and read <file:Documentation/modules.txt>.
+-Always do synchronous disk IO for UBD
+-CONFIG_BLK_DEV_UBD_SYNC
++CONFIG_BLK_DEV_UBD
+   The User-Mode Linux port includes a driver called UBD which will let
+   you access arbitrary files on the host computer as block devices.
+-  Writes to such a block device are not immediately written to the
+-  host's disk; this may cause problems if, for example, the User-Mode
+-  Linux 'Virtual Machine' uses a journalling file system and the host
+-  computer crashes.
++  Unless you know that you do not need such virtual block devices say
++  Y here.
++
++Always do synchronous disk IO for UBD
++CONFIG_BLK_DEV_UBD_SYNC
++  Writes to the virtual block device are not immediately written to the host's
++  disk; this may cause problems if, for example, the User-Mode Linux
++  'Virtual Machine' uses a journalling filesystem and the host computer
++  crashes.
+   Synchronous operation (i.e. always writing data to the host's disk
+   immediately) is configurable on a per-UBD basis by using a special
+   kernel command line option.  Alternatively, you can say Y here to
+-  turn on synchronous operation by default for all block.
++  turn on synchronous operation by default for all block devices.
+   If you're running a journalling file system (like reiserfs, for
+   example) in your virtual machine, you will want to say Y here.  If
+@@ -14714,6 +14718,7 @@
+ CONFIG_PT_PROXY
+   This option enables a debugging interface which allows gdb to debug
+   the kernel without needing to actually attach to kernel threads.
++  CONFIG_XTERM_CHAN must be enabled in order to enable CONFIG_PT_PROXY.
+   If you want to do kernel debugging, say Y here; otherwise say N.
+ Management console
+@@ -14908,26 +14913,174 @@
+ SLIP transport
+ CONFIG_UML_NET_SLIP
+-  The Slip User-Mode Linux network transport allows a running UML to
++  The slip User-Mode Linux network transport allows a running UML to
+   network with its host over a point-to-point link.  Unlike Ethertap,
+   which can carry any Ethernet frame (and hence even non-IP packets),
+-  the Slip transport can only carry IP packets.
++  the slip transport can only carry IP packets.
+-  To use this, your host must support Slip devices.
++  To use this, your host must support slip devices.
+   For more information, see
+   <http://user-mode-linux.sourceforge.net/networking.html>.  That site
+-  has examples of the UML command line to use to enable Slip
++  has examples of the UML command line to use to enable slip
+   networking, and details of a few quirks with it.
+-  The Ethertap Transport is preferred over Slip because of its
+-  limitation.  If you prefer Slip, however, say Y here.  Otherwise
++  The Ethertap Transport is preferred over slip because of its
++  limitations.  If you prefer slip, however, say Y here.  Otherwise
+   choose the Multicast transport (to network multiple UMLs on 
+   multiple hosts), Ethertap (to network with the host and the
+   outside world), and/or the Daemon transport (to network multiple
+   UMLs on a single host).  You may choose more than one without
+   conflict.  If you don't need UML networking, say N.
++SLiRP transport
++CONFIG_UML_NET_SLIRP
++  The SLiRP User-Mode Linux network transport allows a running UML
++  to network by invoking a program that can handle SLIP encapsulated
++  packets.  This is commonly (but not limited to) the application
++  known as SLiRP, a program that can re-socket IP packets back onto
++  the host on which it is run.  Only IP packets are supported,
++  unlike other network transports that can handle all Ethernet
++  frames.  In general, slirp allows the UML the same IP connectivity
++  to the outside world that the host user is permitted, and unlike
++  other transports, SLiRP works without the need of root level
++  privleges, setuid binaries, or SLIP devices on the host.  This
++  also means not every type of connection is possible, but most
++  situations can be accomodated with carefully crafted slirp
++  commands that can be passed along as part of the network device's
++  setup string.  The effect of this transport on the UML is similar
++  that of a host behind a firewall that masquerades all network
++  connections passing through it (but is less secure).
++
++  To use this you should first have slirp compiled somewhere
++  accessible on the host, and have read its documentation.  If you
++  don't need UML networking, say N.
++
++  Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp"
++
++Default main console channel initialization
++CONFIG_CON_ZERO_CHAN
++  This is the string describing the channel to which the main console
++  will be attached by default.  This value can be overridden from the
++  command line.  The default value is "fd:0,fd:1", which attaches the
++  main console to stdin and stdout.
++  It is safe to leave this unchanged.
++
++Default console channel initialization
++CONFIG_CON_CHAN
++  This is the string describing the channel to which all consoles
++  except the main console will be attached by default.  This value can
++  be overridden from the command line.  The default value is "xterm",
++  which brings them up in xterms.
++  It is safe to leave this unchanged, although you may wish to change
++  this if you expect the UML that you build to be run in environments
++  which don't have X or xterm available.
++
++Default serial line channel initialization
++CONFIG_SSL_CHAN
++  This is the string describing the channel to which the serial lines
++  will be attached by default.  This value can be overridden from the
++  command line.  The default value is "pty", which attaches them to
++  traditional pseudo-terminals.
++  It is safe to leave this unchanged, although you may wish to change
++  this if you expect the UML that you build to be run in environments
++  which don't have a set of /dev/pty* devices.
++
++Nesting level
++CONFIG_NEST_LEVEL
++  This is set to the number of layers of UMLs that this UML will be run
++  in.  Normally, this is zero, meaning that it will run directly on the
++  host.  Setting it to one will build a UML that can run inside a UML
++  that is running on the host.  Generally, if you intend this UML to run
++  inside another UML, set CONFIG_NEST_LEVEL to one more than the host UML.
++  Note that if the hosting UML has its CONFIG_KERNEL_HALF_GIGS set to 
++  greater than one, then the guest UML should have its CONFIG_NEST_LEVEL 
++  set to the host's CONFIG_NEST_LEVEL + CONFIG_KERNEL_HALF_GIGS.
++  Only change this if you are running nested UMLs.
++
++Kernel address space size (in .5G units)
++CONFIG_KERNEL_HALF_GIGS
++  This determines the amount of address space that UML will allocate for
++  its own, measured in half Gigabyte units.  The default is 1.
++  Change this only if you need to boot UML with an unusually large amount
++  of physical memory.
++
++UML sound support
++CONFIG_UML_SOUND
++  This option enables UML sound support.  If enabled, it will pull in
++  soundcore and the UML hostaudio relay, which acts as a intermediary
++  between the host's dsp and mixer devices and the UML sound system.
++  It is safe to say 'Y' here.
++
++UML SMP support
++CONFIG_UML_SMP
++  This option enables UML SMP support.  UML implements virtual SMP by
++  allowing as many processes to run simultaneously on the host as
++  there are virtual processors configured.  Obviously, if the host is
++  a uniprocessor, those processes will timeshare, but, inside UML,
++  will appear to be running simultaneously.  If the host is a
++  multiprocessor, then UML processes may run simultaneously, depending
++  on the host scheduler.
++  CONFIG_SMP will be set to whatever this option is set to.
++  It is safe to leave this unchanged.
++
++file descriptor channel support
++CONFIG_FD_CHAN
++  This option enables support for attaching UML consoles and serial
++  lines to already set up file descriptors.  Generally, the main
++  console is attached to file descriptors 0 and 1 (stdin and stdout),
++  so it would be wise to leave this enabled unless you intend to
++  attach it to some other host device.
++
++null device channel support
++CONFIG_NULL_CHAN
++  This option enables support for attaching UML consoles and serial
++  lines to a device similar to /dev/null.  Data written to it disappears
++  and there is never any data to be read.
++
++port channel support
++CONFIG_PORT_CHAN
++  This option enables support for attaching UML consoles and serial
++  lines to host portals.  They may be accessed with 'telnet <host>
++  <port number>'.  Any number of consoles and serial lines may be
++  attached to a single portal, although what UML device you get when
++  you telnet to that portal will be unpredictable.
++  It is safe to say 'Y' here.
++
++pty channel support
++CONFIG_PTY_CHAN
++  This option enables support for attaching UML consoles and serial
++  lines to host pseudo-terminals.  Access to both traditional
++  pseudo-terminals (/dev/pty*) and pts pseudo-terminals are controlled
++  with this option.  The assignment of UML devices to host devices
++  will be announced in the kernel message log.
++  It is safe to say 'Y' here.
++
++tty channel support
++CONFIG_TTY_CHAN
++  This option enables support for attaching UML consoles and serial
++  lines to host terminals.  Access to both virtual consoles
++  (/dev/tty*) and the slave side of pseudo-terminals (/dev/ttyp* and
++  /dev/pts/*) are controlled by this option.
++  It is safe to say 'Y' here.
++
++xterm channel support
++CONFIG_XTERM_CHAN
++  This option enables support for attaching UML consoles and serial
++  lines to xterms.  Each UML device so assigned will be brought up in
++  its own xterm.
++  If you disable this option, then CONFIG_PT_PROXY will be disabled as
++  well, since UML's gdb currently requires an xterm.
++  It is safe to say 'Y' here.
++
++tty logging
++CONFIG_TTY_LOG
++  This option enables logging of all data going through pseudo-terminals
++  to the host.  This is primarily useful for honeypots, where you want
++  secure keystroke logging that can't be detected or disabled by root.
++  Say 'N' unless you are setting up a UML honeypot or otherwise know that
++  you want this option.
++
+ Microtek USB scanner support
+ CONFIG_USB_MICROTEK
+   Say Y here if you want support for the Microtek X6USB and
 diff -Naur -X ../exclude-files orig/drivers/char/Makefile um/drivers/char/Makefile
---- orig/drivers/char/Makefile Thu Feb 27 13:04:15 2003
-+++ um/drivers/char/Makefile   Thu Feb 27 13:05:21 2003
+--- orig/drivers/char/Makefile 2003-02-27 13:04:15.000000000 -0500
++++ um/drivers/char/Makefile   2003-02-27 13:05:21.000000000 -0500
 @@ -95,6 +95,12 @@
    endif
  endif
@@ -35978,8 +36183,8 @@ diff -Naur -X ../exclude-files orig/drivers/char/Makefile um/drivers/char/Makefi
    KEYMAP   =
    KEYBD    =
 diff -Naur -X ../exclude-files orig/drivers/char/tty_io.c um/drivers/char/tty_io.c
---- orig/drivers/char/tty_io.c Thu Feb 27 13:04:15 2003
-+++ um/drivers/char/tty_io.c   Thu Feb 27 13:05:21 2003
+--- orig/drivers/char/tty_io.c 2003-02-27 13:04:15.000000000 -0500
++++ um/drivers/char/tty_io.c   2003-02-27 13:05:21.000000000 -0500
 @@ -637,6 +637,9 @@
        wake_up_interruptible(&tty->write_wait);
  }
@@ -36068,8 +36273,8 @@ diff -Naur -X ../exclude-files orig/drivers/char/tty_io.c um/drivers/char/tty_io
  }
  
 diff -Naur -X ../exclude-files orig/drivers/net/setup.c um/drivers/net/setup.c
---- orig/drivers/net/setup.c   Sun Sep 15 12:13:19 2002
-+++ um/drivers/net/setup.c     Wed Oct 23 21:08:05 2002
+--- orig/drivers/net/setup.c   2002-09-15 12:13:19.000000000 -0400
++++ um/drivers/net/setup.c     2002-10-23 21:08:05.000000000 -0400
 @@ -28,7 +28,6 @@
  extern int lmc_setup(void);
  
@@ -36078,19 +36283,19 @@ diff -Naur -X ../exclude-files orig/drivers/net/setup.c um/drivers/net/setup.c
  
  /* Pad device name to IFNAMSIZ=16. F.e. __PAD6 is string of 9 zeros. */
  #define __PAD6 "\0\0\0\0\0\0\0\0\0"
-@@ -102,9 +101,6 @@
-  */  
+@@ -103,9 +102,6 @@
  #ifdef CONFIG_MADGEMC
        {madgemc_probe, 0},
--#endif
+ #endif
 -#ifdef CONFIG_UML_NET
 -      {uml_net_probe, 0},
- #endif
+-#endif
   
        {NULL, 0},
+ };
 diff -Naur -X ../exclude-files orig/include/asm-i386/hardirq.h um/include/asm-i386/hardirq.h
---- orig/include/asm-i386/hardirq.h    Sun Sep 15 12:13:19 2002
-+++ um/include/asm-i386/hardirq.h      Wed Apr 16 13:59:04 2003
+--- orig/include/asm-i386/hardirq.h    2002-09-15 12:13:19.000000000 -0400
++++ um/include/asm-i386/hardirq.h      2003-05-28 11:02:07.000000000 -0400
 @@ -4,6 +4,7 @@
  #include <linux/config.h>
  #include <linux/threads.h>
@@ -36100,8 +36305,8 @@ diff -Naur -X ../exclude-files orig/include/asm-i386/hardirq.h um/include/asm-i3
  /* assembly code in softirq.h is sensitive to the offsets of these fields */
  typedef struct {
 diff -Naur -X ../exclude-files orig/include/asm-um/a.out.h um/include/asm-um/a.out.h
---- orig/include/asm-um/a.out.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/a.out.h  Sun Oct 27 11:54:50 2002
+--- orig/include/asm-um/a.out.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/a.out.h  2002-10-27 11:54:50.000000000 -0500
 @@ -0,0 +1,20 @@
 +#ifndef __UM_A_OUT_H
 +#define __UM_A_OUT_H
@@ -36123,37 +36328,9 @@ diff -Naur -X ../exclude-files orig/include/asm-um/a.out.h um/include/asm-um/a.o
 +      CHOOSE_MODE((honeypot ? host_task_size : task_size), task_size)
 +
 +#endif
-diff -Naur -X ../exclude-files orig/include/asm-um/arch-signal-i386.h um/include/asm-um/arch-signal-i386.h
---- orig/include/asm-um/arch-signal-i386.h     Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/arch-signal-i386.h       Wed Oct 23 21:08:05 2002
-@@ -0,0 +1,24 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#ifndef __UM_ARCH_SIGNAL_I386_H
-+#define __UM_ARCH_SIGNAL_I386_H
-+
-+struct arch_signal_context {
-+      unsigned long extrasigs[_NSIG_WORDS];
-+};
-+
-+#endif
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
 diff -Naur -X ../exclude-files orig/include/asm-um/archparam-i386.h um/include/asm-um/archparam-i386.h
---- orig/include/asm-um/archparam-i386.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/archparam-i386.h Sun Dec  8 20:09:11 2002
+--- orig/include/asm-um/archparam-i386.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/archparam-i386.h 2002-12-08 20:09:11.000000000 -0500
 @@ -0,0 +1,80 @@
 +/* 
 + * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
@@ -36236,8 +36413,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/archparam-i386.h um/include/a
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/archparam-ppc.h um/include/asm-um/archparam-ppc.h
---- orig/include/asm-um/archparam-ppc.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/archparam-ppc.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/archparam-ppc.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/archparam-ppc.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,41 @@
 +#ifndef __UM_ARCHPARAM_PPC_H
 +#define __UM_ARCHPARAM_PPC_H
@@ -36280,9 +36457,37 @@ diff -Naur -X ../exclude-files orig/include/asm-um/archparam-ppc.h um/include/as
 +#define __HAVE_ARCH_STRRCHR
 +
 +#endif
+diff -Naur -X ../exclude-files orig/include/asm-um/arch-signal-i386.h um/include/asm-um/arch-signal-i386.h
+--- orig/include/asm-um/arch-signal-i386.h     1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/arch-signal-i386.h       2002-10-23 21:08:05.000000000 -0400
+@@ -0,0 +1,24 @@
++/* 
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#ifndef __UM_ARCH_SIGNAL_I386_H
++#define __UM_ARCH_SIGNAL_I386_H
++
++struct arch_signal_context {
++      unsigned long extrasigs[_NSIG_WORDS];
++};
++
++#endif
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/include/asm-um/atomic.h um/include/asm-um/atomic.h
---- orig/include/asm-um/atomic.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/atomic.h Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/atomic.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/atomic.h 2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_ATOMIC_H
 +#define __UM_ATOMIC_H
@@ -36291,8 +36496,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/atomic.h um/include/asm-um/at
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/bitops.h um/include/asm-um/bitops.h
---- orig/include/asm-um/bitops.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/bitops.h Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/bitops.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/bitops.h 2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_BITOPS_H
 +#define __UM_BITOPS_H
@@ -36301,8 +36506,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/bitops.h um/include/asm-um/bi
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/boot.h um/include/asm-um/boot.h
---- orig/include/asm-um/boot.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/boot.h   Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/boot.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/boot.h   2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_BOOT_H
 +#define __UM_BOOT_H
@@ -36311,8 +36516,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/boot.h um/include/asm-um/boot
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/bugs.h um/include/asm-um/bugs.h
---- orig/include/asm-um/bugs.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/bugs.h   Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/bugs.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/bugs.h   2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_BUGS_H
 +#define __UM_BUGS_H
@@ -36321,8 +36526,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/bugs.h um/include/asm-um/bugs
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/byteorder.h um/include/asm-um/byteorder.h
---- orig/include/asm-um/byteorder.h    Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/byteorder.h      Thu Feb 27 13:20:12 2003
+--- orig/include/asm-um/byteorder.h    1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/byteorder.h      2003-02-27 13:20:12.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_BYTEORDER_H
 +#define __UM_BYTEORDER_H
@@ -36331,8 +36536,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/byteorder.h um/include/asm-um
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/cache.h um/include/asm-um/cache.h
---- orig/include/asm-um/cache.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/cache.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/cache.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/cache.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_CACHE_H
 +#define __UM_CACHE_H
@@ -36341,8 +36546,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/cache.h um/include/asm-um/cac
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/checksum.h um/include/asm-um/checksum.h
---- orig/include/asm-um/checksum.h     Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/checksum.h       Tue Oct 29 17:25:12 2002
+--- orig/include/asm-um/checksum.h     1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/checksum.h       2002-10-29 17:25:12.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_CHECKSUM_H
 +#define __UM_CHECKSUM_H
@@ -36351,8 +36556,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/checksum.h um/include/asm-um/
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/cobalt.h um/include/asm-um/cobalt.h
---- orig/include/asm-um/cobalt.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/cobalt.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/cobalt.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/cobalt.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_COBALT_H
 +#define __UM_COBALT_H
@@ -36361,8 +36566,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/cobalt.h um/include/asm-um/co
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/current.h um/include/asm-um/current.h
---- orig/include/asm-um/current.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/current.h        Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/current.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/current.h        2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,34 @@
 +/* 
 + * Copyright (C) 2000 Jeff Dike (jdike@karaya.com)
@@ -36399,8 +36604,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/current.h um/include/asm-um/c
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/delay.h um/include/asm-um/delay.h
---- orig/include/asm-um/delay.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/delay.h  Sun Dec  8 20:09:15 2002
+--- orig/include/asm-um/delay.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/delay.h  2002-12-08 20:09:15.000000000 -0500
 @@ -0,0 +1,7 @@
 +#ifndef __UM_DELAY_H
 +#define __UM_DELAY_H
@@ -36410,8 +36615,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/delay.h um/include/asm-um/del
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/desc.h um/include/asm-um/desc.h
---- orig/include/asm-um/desc.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/desc.h   Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/desc.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/desc.h   2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_DESC_H
 +#define __UM_DESC_H
@@ -36420,8 +36625,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/desc.h um/include/asm-um/desc
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/div64.h um/include/asm-um/div64.h
---- orig/include/asm-um/div64.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/div64.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/div64.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/div64.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef _UM_DIV64_H
 +#define _UM_DIV64_H
@@ -36430,8 +36635,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/div64.h um/include/asm-um/div
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/dma.h um/include/asm-um/dma.h
---- orig/include/asm-um/dma.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/dma.h    Sun Oct 27 16:53:42 2002
+--- orig/include/asm-um/dma.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/dma.h    2002-10-27 16:53:42.000000000 -0500
 @@ -0,0 +1,10 @@
 +#ifndef __UM_DMA_H
 +#define __UM_DMA_H
@@ -36444,8 +36649,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/dma.h um/include/asm-um/dma.h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/elf.h um/include/asm-um/elf.h
---- orig/include/asm-um/elf.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/elf.h    Sun Dec  8 20:13:07 2002
+--- orig/include/asm-um/elf.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/elf.h    2002-12-08 20:13:07.000000000 -0500
 @@ -0,0 +1,18 @@
 +#ifndef __UM_ELF_H
 +#define __UM_ELF_H
@@ -36466,8 +36671,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/elf.h um/include/asm-um/elf.h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/errno.h um/include/asm-um/errno.h
---- orig/include/asm-um/errno.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/errno.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/errno.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/errno.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_ERRNO_H
 +#define __UM_ERRNO_H
@@ -36476,8 +36681,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/errno.h um/include/asm-um/err
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/fcntl.h um/include/asm-um/fcntl.h
---- orig/include/asm-um/fcntl.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/fcntl.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/fcntl.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/fcntl.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_FCNTL_H
 +#define __UM_FCNTL_H
@@ -36486,8 +36691,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/fcntl.h um/include/asm-um/fcn
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/fixmap.h um/include/asm-um/fixmap.h
---- orig/include/asm-um/fixmap.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/fixmap.h Wed Mar 26 22:01:27 2003
+--- orig/include/asm-um/fixmap.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/fixmap.h 2003-05-28 11:02:08.000000000 -0400
 @@ -0,0 +1,89 @@
 +#ifndef __UM_FIXMAP_H
 +#define __UM_FIXMAP_H
@@ -36579,8 +36784,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/fixmap.h um/include/asm-um/fi
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/floppy.h um/include/asm-um/floppy.h
---- orig/include/asm-um/floppy.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/floppy.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/floppy.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/floppy.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_FLOPPY_H
 +#define __UM_FLOPPY_H
@@ -36589,8 +36794,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/floppy.h um/include/asm-um/fl
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/hardirq.h um/include/asm-um/hardirq.h
---- orig/include/asm-um/hardirq.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/hardirq.h        Wed Apr 16 13:59:04 2003
+--- orig/include/asm-um/hardirq.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/hardirq.h        2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_HARDIRQ_H
 +#define __UM_HARDIRQ_H
@@ -36599,8 +36804,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/hardirq.h um/include/asm-um/h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/hdreg.h um/include/asm-um/hdreg.h
---- orig/include/asm-um/hdreg.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/hdreg.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/hdreg.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/hdreg.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_HDREG_H
 +#define __UM_HDREG_H
@@ -36609,8 +36814,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/hdreg.h um/include/asm-um/hdr
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/highmem.h um/include/asm-um/highmem.h
---- orig/include/asm-um/highmem.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/highmem.h        Wed Apr 16 13:59:04 2003
+--- orig/include/asm-um/highmem.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/highmem.h        2003-05-28 11:02:08.000000000 -0400
 @@ -0,0 +1,12 @@
 +#ifndef __UM_HIGHMEM_H
 +#define __UM_HIGHMEM_H
@@ -36625,8 +36830,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/highmem.h um/include/asm-um/h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/hw_irq.h um/include/asm-um/hw_irq.h
---- orig/include/asm-um/hw_irq.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/hw_irq.h Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/hw_irq.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/hw_irq.h 2003-05-11 18:31:58.000000000 -0400
 @@ -0,0 +1,10 @@
 +#ifndef _ASM_UM_HW_IRQ_H
 +#define _ASM_UM_HW_IRQ_H
@@ -36639,8 +36844,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/hw_irq.h um/include/asm-um/hw
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/ide.h um/include/asm-um/ide.h
---- orig/include/asm-um/ide.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/ide.h    Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/ide.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/ide.h    2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_IDE_H
 +#define __UM_IDE_H
@@ -36649,8 +36854,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/ide.h um/include/asm-um/ide.h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/init.h um/include/asm-um/init.h
---- orig/include/asm-um/init.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/init.h   Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/init.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/init.h   2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,11 @@
 +#ifndef _UM_INIT_H
 +#define _UM_INIT_H
@@ -36663,9 +36868,29 @@ diff -Naur -X ../exclude-files orig/include/asm-um/init.h um/include/asm-um/init
 +#endif
 +
 +#endif
+diff -Naur -X ../exclude-files orig/include/asm-um/ioctl.h um/include/asm-um/ioctl.h
+--- orig/include/asm-um/ioctl.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/ioctl.h  2002-10-23 21:08:05.000000000 -0400
+@@ -0,0 +1,6 @@
++#ifndef __UM_IOCTL_H
++#define __UM_IOCTL_H
++
++#include "asm/arch/ioctl.h"
++
++#endif
+diff -Naur -X ../exclude-files orig/include/asm-um/ioctls.h um/include/asm-um/ioctls.h
+--- orig/include/asm-um/ioctls.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/ioctls.h 2002-10-23 21:11:14.000000000 -0400
+@@ -0,0 +1,6 @@
++#ifndef __UM_IOCTLS_H
++#define __UM_IOCTLS_H
++
++#include "asm/arch/ioctls.h"
++
++#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/io.h um/include/asm-um/io.h
---- orig/include/asm-um/io.h   Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/io.h     Sun Oct 27 16:53:42 2002
+--- orig/include/asm-um/io.h   1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/io.h     2002-10-27 16:53:42.000000000 -0500
 @@ -0,0 +1,25 @@
 +#ifndef __UM_IO_H
 +#define __UM_IO_H
@@ -36692,29 +36917,19 @@ diff -Naur -X ../exclude-files orig/include/asm-um/io.h um/include/asm-um/io.h
 +}
 +
 +#endif
-diff -Naur -X ../exclude-files orig/include/asm-um/ioctl.h um/include/asm-um/ioctl.h
---- orig/include/asm-um/ioctl.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/ioctl.h  Wed Oct 23 21:08:05 2002
-@@ -0,0 +1,6 @@
-+#ifndef __UM_IOCTL_H
-+#define __UM_IOCTL_H
-+
-+#include "asm/arch/ioctl.h"
-+
-+#endif
-diff -Naur -X ../exclude-files orig/include/asm-um/ioctls.h um/include/asm-um/ioctls.h
---- orig/include/asm-um/ioctls.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/ioctls.h Wed Oct 23 21:11:14 2002
+diff -Naur -X ../exclude-files orig/include/asm-um/ipcbuf.h um/include/asm-um/ipcbuf.h
+--- orig/include/asm-um/ipcbuf.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/ipcbuf.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
-+#ifndef __UM_IOCTLS_H
-+#define __UM_IOCTLS_H
++#ifndef __UM_IPCBUF_H
++#define __UM_IPCBUF_H
 +
-+#include "asm/arch/ioctls.h"
++#include "asm/arch/ipcbuf.h"
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/ipc.h um/include/asm-um/ipc.h
---- orig/include/asm-um/ipc.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/ipc.h    Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/ipc.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/ipc.h    2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_IPC_H
 +#define __UM_IPC_H
@@ -36722,33 +36937,13 @@ diff -Naur -X ../exclude-files orig/include/asm-um/ipc.h um/include/asm-um/ipc.h
 +#include "asm/arch/ipc.h"
 +
 +#endif
-diff -Naur -X ../exclude-files orig/include/asm-um/ipcbuf.h um/include/asm-um/ipcbuf.h
---- orig/include/asm-um/ipcbuf.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/ipcbuf.h Wed Oct 23 21:08:05 2002
-@@ -0,0 +1,6 @@
-+#ifndef __UM_IPCBUF_H
-+#define __UM_IPCBUF_H
-+
-+#include "asm/arch/ipcbuf.h"
-+
-+#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/irq.h um/include/asm-um/irq.h
---- orig/include/asm-um/irq.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/irq.h    Wed Mar 26 22:01:25 2003
-@@ -0,0 +1,36 @@
+--- orig/include/asm-um/irq.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/irq.h    2003-05-03 11:03:52.000000000 -0400
+@@ -0,0 +1,22 @@
 +#ifndef __UM_IRQ_H
 +#define __UM_IRQ_H
 +
-+/* The i386 irq.h has a struct task_struct in a prototype without including
-+ * sched.h.  This forward declaration kills the resulting warning.
-+ */
-+struct task_struct;
-+
-+#include "asm/arch/irq.h"
-+#include "asm/ptrace.h"
-+
-+#undef NR_IRQS
-+
 +#define TIMER_IRQ             0
 +#define UMN_IRQ                       1
 +#define CONSOLE_IRQ           2
@@ -36767,14 +36962,10 @@ diff -Naur -X ../exclude-files orig/include/asm-um/irq.h um/include/asm-um/irq.h
 +#define LAST_IRQ XTERM_IRQ
 +#define NR_IRQS (LAST_IRQ + 1)
 +
-+extern int um_request_irq(unsigned int irq, int fd, int type,
-+                        void (*handler)(int, void *, struct pt_regs *),
-+                        unsigned long irqflags,  const char * devname,
-+                        void *dev_id);
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/keyboard.h um/include/asm-um/keyboard.h
---- orig/include/asm-um/keyboard.h     Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/keyboard.h       Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/keyboard.h     1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/keyboard.h       2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_KEYBOARD_H
 +#define __UM_KEYBOARD_H
@@ -36783,8 +36974,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/keyboard.h um/include/asm-um/
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/kmap_types.h um/include/asm-um/kmap_types.h
---- orig/include/asm-um/kmap_types.h   Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/kmap_types.h     Thu Feb 27 13:20:14 2003
+--- orig/include/asm-um/kmap_types.h   1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/kmap_types.h     2003-02-27 13:20:14.000000000 -0500
 @@ -0,0 +1,11 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -36798,8 +36989,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/kmap_types.h um/include/asm-u
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/linux_logo.h um/include/asm-um/linux_logo.h
---- orig/include/asm-um/linux_logo.h   Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/linux_logo.h     Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/linux_logo.h   1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/linux_logo.h     2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_LINUX_LOGO_H
 +#define __UM_LINUX_LOGO_H
@@ -36808,8 +36999,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/linux_logo.h um/include/asm-u
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/locks.h um/include/asm-um/locks.h
---- orig/include/asm-um/locks.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/locks.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/locks.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/locks.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_LOCKS_H
 +#define __UM_LOCKS_H
@@ -36818,8 +37009,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/locks.h um/include/asm-um/loc
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/mca_dma.h um/include/asm-um/mca_dma.h
---- orig/include/asm-um/mca_dma.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/mca_dma.h        Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/mca_dma.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/mca_dma.h        2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef mca___UM_DMA_H
 +#define mca___UM_DMA_H
@@ -36828,8 +37019,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/mca_dma.h um/include/asm-um/m
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/mman.h um/include/asm-um/mman.h
---- orig/include/asm-um/mman.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/mman.h   Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/mman.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/mman.h   2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_MMAN_H
 +#define __UM_MMAN_H
@@ -36837,35 +37028,9 @@ diff -Naur -X ../exclude-files orig/include/asm-um/mman.h um/include/asm-um/mman
 +#include "asm/arch/mman.h"
 +
 +#endif
-diff -Naur -X ../exclude-files orig/include/asm-um/mmu.h um/include/asm-um/mmu.h
---- orig/include/asm-um/mmu.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/mmu.h    Sat Nov  9 12:51:11 2002
-@@ -0,0 +1,22 @@
-+/* 
-+ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
-+ * Licensed under the GPL
-+ */
-+
-+#ifndef __MMU_H
-+#define __MMU_H
-+
-+#include "um_mmu.h"
-+
-+#endif
-+
-+/*
-+ * Overrides for Emacs so that we follow Linus's tabbing style.
-+ * Emacs will notice this stuff at the end of the file and automatically
-+ * adjust the settings for this buffer only.  This must remain at the end
-+ * of the file.
-+ * ---------------------------------------------------------------------------
-+ * Local variables:
-+ * c-file-style: "linux"
-+ * End:
-+ */
 diff -Naur -X ../exclude-files orig/include/asm-um/mmu_context.h um/include/asm-um/mmu_context.h
---- orig/include/asm-um/mmu_context.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/mmu_context.h    Wed Apr 16 13:59:16 2003
+--- orig/include/asm-um/mmu_context.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/mmu_context.h    2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,72 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -36939,9 +37104,35 @@ diff -Naur -X ../exclude-files orig/include/asm-um/mmu_context.h um/include/asm-
 + * c-file-style: "linux"
 + * End:
 + */
+diff -Naur -X ../exclude-files orig/include/asm-um/mmu.h um/include/asm-um/mmu.h
+--- orig/include/asm-um/mmu.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/mmu.h    2002-11-09 12:51:11.000000000 -0500
+@@ -0,0 +1,22 @@
++/* 
++ * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
++ * Licensed under the GPL
++ */
++
++#ifndef __MMU_H
++#define __MMU_H
++
++#include "um_mmu.h"
++
++#endif
++
++/*
++ * Overrides for Emacs so that we follow Linus's tabbing style.
++ * Emacs will notice this stuff at the end of the file and automatically
++ * adjust the settings for this buffer only.  This must remain at the end
++ * of the file.
++ * ---------------------------------------------------------------------------
++ * Local variables:
++ * c-file-style: "linux"
++ * End:
++ */
 diff -Naur -X ../exclude-files orig/include/asm-um/module.h um/include/asm-um/module.h
---- orig/include/asm-um/module.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/module.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/module.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/module.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_MODULE_H
 +#define __UM_MODULE_H
@@ -36950,8 +37141,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/module.h um/include/asm-um/mo
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/msgbuf.h um/include/asm-um/msgbuf.h
---- orig/include/asm-um/msgbuf.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/msgbuf.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/msgbuf.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/msgbuf.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_MSGBUF_H
 +#define __UM_MSGBUF_H
@@ -36960,8 +37151,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/msgbuf.h um/include/asm-um/ms
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/mtrr.h um/include/asm-um/mtrr.h
---- orig/include/asm-um/mtrr.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/mtrr.h   Thu Mar 27 15:11:56 2003
+--- orig/include/asm-um/mtrr.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/mtrr.h   2003-05-29 13:46:27.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_MTRR_H
 +#define __UM_MTRR_H
@@ -36970,8 +37161,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/mtrr.h um/include/asm-um/mtrr
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/namei.h um/include/asm-um/namei.h
---- orig/include/asm-um/namei.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/namei.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/namei.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/namei.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_NAMEI_H
 +#define __UM_NAMEI_H
@@ -36980,8 +37171,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/namei.h um/include/asm-um/nam
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/page.h um/include/asm-um/page.h
---- orig/include/asm-um/page.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/page.h   Sun Oct 27 16:49:35 2002
+--- orig/include/asm-um/page.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/page.h   2002-10-27 16:49:35.000000000 -0500
 @@ -0,0 +1,53 @@
 +#ifndef __UM_PAGE_H
 +#define __UM_PAGE_H
@@ -37037,13 +37228,13 @@ diff -Naur -X ../exclude-files orig/include/asm-um/page.h um/include/asm-um/page
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/page_offset.h um/include/asm-um/page_offset.h
---- orig/include/asm-um/page_offset.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/page_offset.h    Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/page_offset.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/page_offset.h    2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1 @@
 +#define PAGE_OFFSET_RAW (uml_physmem)
 diff -Naur -X ../exclude-files orig/include/asm-um/param.h um/include/asm-um/param.h
---- orig/include/asm-um/param.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/param.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/param.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/param.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,24 @@
 +#ifndef _UM_PARAM_H
 +#define _UM_PARAM_H
@@ -37070,8 +37261,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/param.h um/include/asm-um/par
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/pci.h um/include/asm-um/pci.h
---- orig/include/asm-um/pci.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/pci.h    Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/pci.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/pci.h    2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_PCI_H
 +#define __UM_PCI_H
@@ -37080,8 +37271,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/pci.h um/include/asm-um/pci.h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/pgalloc.h um/include/asm-um/pgalloc.h
---- orig/include/asm-um/pgalloc.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/pgalloc.h        Wed Apr 16 13:59:04 2003
+--- orig/include/asm-um/pgalloc.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/pgalloc.h        2003-05-28 11:02:08.000000000 -0400
 @@ -0,0 +1,162 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -37246,8 +37437,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/pgalloc.h um/include/asm-um/p
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/pgtable.h um/include/asm-um/pgtable.h
---- orig/include/asm-um/pgtable.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/pgtable.h        Wed Apr 16 13:59:04 2003
+--- orig/include/asm-um/pgtable.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/pgtable.h        2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,428 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -37678,8 +37869,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/pgtable.h um/include/asm-um/p
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/poll.h um/include/asm-um/poll.h
---- orig/include/asm-um/poll.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/poll.h   Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/poll.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/poll.h   2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_POLL_H
 +#define __UM_POLL_H
@@ -37688,8 +37879,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/poll.h um/include/asm-um/poll
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/posix_types.h um/include/asm-um/posix_types.h
---- orig/include/asm-um/posix_types.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/posix_types.h    Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/posix_types.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/posix_types.h    2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_POSIX_TYPES_H
 +#define __UM_POSIX_TYPES_H
@@ -37698,8 +37889,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/posix_types.h um/include/asm-
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/processor-generic.h um/include/asm-um/processor-generic.h
---- orig/include/asm-um/processor-generic.h    Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/processor-generic.h      Wed Apr 16 13:59:03 2003
+--- orig/include/asm-um/processor-generic.h    1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/processor-generic.h      2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,182 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -37884,8 +38075,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/processor-generic.h um/includ
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/processor-i386.h um/include/asm-um/processor-i386.h
---- orig/include/asm-um/processor-i386.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/processor-i386.h Wed Apr 16 13:59:03 2003
+--- orig/include/asm-um/processor-i386.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/processor-i386.h 2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,35 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -37923,8 +38114,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/processor-i386.h um/include/a
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/processor-ppc.h um/include/asm-um/processor-ppc.h
---- orig/include/asm-um/processor-ppc.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/processor-ppc.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/processor-ppc.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/processor-ppc.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,15 @@
 +#ifndef __UM_PROCESSOR_PPC_H
 +#define __UM_PROCESSOR_PPC_H
@@ -37942,8 +38133,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/processor-ppc.h um/include/as
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/ptrace-generic.h um/include/asm-um/ptrace-generic.h
---- orig/include/asm-um/ptrace-generic.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/ptrace-generic.h Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/ptrace-generic.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/ptrace-generic.h 2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,74 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -38020,8 +38211,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/ptrace-generic.h um/include/a
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/ptrace-i386.h um/include/asm-um/ptrace-i386.h
---- orig/include/asm-um/ptrace-i386.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/ptrace-i386.h    Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/ptrace-i386.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/ptrace-i386.h    2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,46 @@
 +/* 
 + * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
@@ -38070,8 +38261,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/ptrace-i386.h um/include/asm-
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/resource.h um/include/asm-um/resource.h
---- orig/include/asm-um/resource.h     Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/resource.h       Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/resource.h     1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/resource.h       2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_RESOURCE_H
 +#define __UM_RESOURCE_H
@@ -38080,8 +38271,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/resource.h um/include/asm-um/
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/rwlock.h um/include/asm-um/rwlock.h
---- orig/include/asm-um/rwlock.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/rwlock.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/rwlock.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/rwlock.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_RWLOCK_H
 +#define __UM_RWLOCK_H
@@ -38090,8 +38281,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/rwlock.h um/include/asm-um/rw
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/rwsem.h um/include/asm-um/rwsem.h
---- orig/include/asm-um/rwsem.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/rwsem.h  Wed Apr 16 13:59:03 2003
+--- orig/include/asm-um/rwsem.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/rwsem.h  2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,10 @@
 +#ifndef __UM_RWSEM_H__
 +#define __UM_RWSEM_H__
@@ -38104,8 +38295,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/rwsem.h um/include/asm-um/rws
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/scatterlist.h um/include/asm-um/scatterlist.h
---- orig/include/asm-um/scatterlist.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/scatterlist.h    Thu Feb 27 13:21:49 2003
+--- orig/include/asm-um/scatterlist.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/scatterlist.h    2003-02-27 13:21:49.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SCATTERLIST_H
 +#define __UM_SCATTERLIST_H
@@ -38114,16 +38305,16 @@ diff -Naur -X ../exclude-files orig/include/asm-um/scatterlist.h um/include/asm-
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/segment.h um/include/asm-um/segment.h
---- orig/include/asm-um/segment.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/segment.h        Fri Nov  1 19:45:34 2002
+--- orig/include/asm-um/segment.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/segment.h        2002-11-01 19:45:34.000000000 -0500
 @@ -0,0 +1,4 @@
 +#ifndef __UM_SEGMENT_H
 +#define __UM_SEGMENT_H
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/semaphore.h um/include/asm-um/semaphore.h
---- orig/include/asm-um/semaphore.h    Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/semaphore.h      Wed Apr 16 13:59:03 2003
+--- orig/include/asm-um/semaphore.h    1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/semaphore.h      2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SEMAPHORE_H
 +#define __UM_SEMAPHORE_H
@@ -38132,8 +38323,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/semaphore.h um/include/asm-um
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/sembuf.h um/include/asm-um/sembuf.h
---- orig/include/asm-um/sembuf.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/sembuf.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/sembuf.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/sembuf.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SEMBUF_H
 +#define __UM_SEMBUF_H
@@ -38142,8 +38333,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/sembuf.h um/include/asm-um/se
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/serial.h um/include/asm-um/serial.h
---- orig/include/asm-um/serial.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/serial.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/serial.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/serial.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SERIAL_H
 +#define __UM_SERIAL_H
@@ -38152,8 +38343,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/serial.h um/include/asm-um/se
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/shmbuf.h um/include/asm-um/shmbuf.h
---- orig/include/asm-um/shmbuf.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/shmbuf.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/shmbuf.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/shmbuf.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SHMBUF_H
 +#define __UM_SHMBUF_H
@@ -38162,8 +38353,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/shmbuf.h um/include/asm-um/sh
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/shmparam.h um/include/asm-um/shmparam.h
---- orig/include/asm-um/shmparam.h     Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/shmparam.h       Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/shmparam.h     1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/shmparam.h       2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SHMPARAM_H
 +#define __UM_SHMPARAM_H
@@ -38172,8 +38363,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/shmparam.h um/include/asm-um/
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/sigcontext-generic.h um/include/asm-um/sigcontext-generic.h
---- orig/include/asm-um/sigcontext-generic.h   Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/sigcontext-generic.h     Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/sigcontext-generic.h   1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/sigcontext-generic.h     2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SIGCONTEXT_GENERIC_H
 +#define __UM_SIGCONTEXT_GENERIC_H
@@ -38182,8 +38373,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/sigcontext-generic.h um/inclu
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/sigcontext-i386.h um/include/asm-um/sigcontext-i386.h
---- orig/include/asm-um/sigcontext-i386.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/sigcontext-i386.h        Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/sigcontext-i386.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/sigcontext-i386.h        2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SIGCONTEXT_I386_H
 +#define __UM_SIGCONTEXT_I386_H
@@ -38192,8 +38383,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/sigcontext-i386.h um/include/
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/sigcontext-ppc.h um/include/asm-um/sigcontext-ppc.h
---- orig/include/asm-um/sigcontext-ppc.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/sigcontext-ppc.h Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/sigcontext-ppc.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/sigcontext-ppc.h 2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,10 @@
 +#ifndef __UM_SIGCONTEXT_PPC_H
 +#define __UM_SIGCONTEXT_PPC_H
@@ -38206,8 +38397,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/sigcontext-ppc.h um/include/a
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/siginfo.h um/include/asm-um/siginfo.h
---- orig/include/asm-um/siginfo.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/siginfo.h        Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/siginfo.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/siginfo.h        2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SIGINFO_H
 +#define __UM_SIGINFO_H
@@ -38216,8 +38407,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/siginfo.h um/include/asm-um/s
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/signal.h um/include/asm-um/signal.h
---- orig/include/asm-um/signal.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/signal.h Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/signal.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/signal.h 2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,22 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -38242,8 +38433,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/signal.h um/include/asm-um/si
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/smp.h um/include/asm-um/smp.h
---- orig/include/asm-um/smp.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/smp.h    Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/smp.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/smp.h    2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,19 @@
 +#ifndef __UM_SMP_H
 +#define __UM_SMP_H
@@ -38265,8 +38456,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/smp.h um/include/asm-um/smp.h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/smplock.h um/include/asm-um/smplock.h
---- orig/include/asm-um/smplock.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/smplock.h        Wed Apr 16 13:59:04 2003
+--- orig/include/asm-um/smplock.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/smplock.h        2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SMPLOCK_H
 +#define __UM_SMPLOCK_H
@@ -38275,8 +38466,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/smplock.h um/include/asm-um/s
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/socket.h um/include/asm-um/socket.h
---- orig/include/asm-um/socket.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/socket.h Thu Feb 27 13:20:13 2003
+--- orig/include/asm-um/socket.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/socket.h 2003-02-27 13:20:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SOCKET_H
 +#define __UM_SOCKET_H
@@ -38285,8 +38476,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/socket.h um/include/asm-um/so
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/sockios.h um/include/asm-um/sockios.h
---- orig/include/asm-um/sockios.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/sockios.h        Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/sockios.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/sockios.h        2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_SOCKIOS_H
 +#define __UM_SOCKIOS_H
@@ -38295,8 +38486,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/sockios.h um/include/asm-um/s
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/softirq.h um/include/asm-um/softirq.h
---- orig/include/asm-um/softirq.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/softirq.h        Wed Apr 16 13:59:04 2003
+--- orig/include/asm-um/softirq.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/softirq.h        2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,13 @@
 +#ifndef __UM_SOFTIRQ_H
 +#define __UM_SOFTIRQ_H
@@ -38312,8 +38503,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/softirq.h um/include/asm-um/s
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/spinlock.h um/include/asm-um/spinlock.h
---- orig/include/asm-um/spinlock.h     Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/spinlock.h       Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/spinlock.h     1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/spinlock.h       2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,10 @@
 +#ifndef __UM_SPINLOCK_H
 +#define __UM_SPINLOCK_H
@@ -38325,19 +38516,9 @@ diff -Naur -X ../exclude-files orig/include/asm-um/spinlock.h um/include/asm-um/
 +#endif
 +
 +#endif
-diff -Naur -X ../exclude-files orig/include/asm-um/stat.h um/include/asm-um/stat.h
---- orig/include/asm-um/stat.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/stat.h   Wed Oct 23 21:08:05 2002
-@@ -0,0 +1,6 @@
-+#ifndef __UM_STAT_H
-+#define __UM_STAT_H
-+
-+#include "asm/arch/stat.h"
-+
-+#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/statfs.h um/include/asm-um/statfs.h
---- orig/include/asm-um/statfs.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/statfs.h Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/statfs.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/statfs.h 2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef _UM_STATFS_H
 +#define _UM_STATFS_H
@@ -38345,9 +38526,19 @@ diff -Naur -X ../exclude-files orig/include/asm-um/statfs.h um/include/asm-um/st
 +#include "asm/arch/statfs.h"
 +
 +#endif
+diff -Naur -X ../exclude-files orig/include/asm-um/stat.h um/include/asm-um/stat.h
+--- orig/include/asm-um/stat.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/stat.h   2002-10-23 21:08:05.000000000 -0400
+@@ -0,0 +1,6 @@
++#ifndef __UM_STAT_H
++#define __UM_STAT_H
++
++#include "asm/arch/stat.h"
++
++#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/string.h um/include/asm-um/string.h
---- orig/include/asm-um/string.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/string.h Mon Feb 24 22:52:09 2003
+--- orig/include/asm-um/string.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/string.h 2003-02-24 22:52:09.000000000 -0500
 @@ -0,0 +1,7 @@
 +#ifndef __UM_STRING_H
 +#define __UM_STRING_H
@@ -38357,8 +38548,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/string.h um/include/asm-um/st
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/system-generic.h um/include/asm-um/system-generic.h
---- orig/include/asm-um/system-generic.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/system-generic.h Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/system-generic.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/system-generic.h 2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,50 @@
 +#ifndef __UM_SYSTEM_GENERIC_H
 +#define __UM_SYSTEM_GENERIC_H
@@ -38411,8 +38602,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/system-generic.h um/include/a
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/system-i386.h um/include/asm-um/system-i386.h
---- orig/include/asm-um/system-i386.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/system-i386.h    Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/system-i386.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/system-i386.h    2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,39 @@
 +#ifndef __UM_SYSTEM_I386_H
 +#define __UM_SYSTEM_I386_H
@@ -38454,8 +38645,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/system-i386.h um/include/asm-
 +    
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/system-ppc.h um/include/asm-um/system-ppc.h
---- orig/include/asm-um/system-ppc.h   Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/system-ppc.h     Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/system-ppc.h   1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/system-ppc.h     2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,12 @@
 +#ifndef __UM_SYSTEM_PPC_H
 +#define __UM_SYSTEM_PPC_H
@@ -38470,8 +38661,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/system-ppc.h um/include/asm-u
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/termbits.h um/include/asm-um/termbits.h
---- orig/include/asm-um/termbits.h     Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/termbits.h       Wed Oct 23 21:11:14 2002
+--- orig/include/asm-um/termbits.h     1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/termbits.h       2002-10-23 21:11:14.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_TERMBITS_H
 +#define __UM_TERMBITS_H
@@ -38480,8 +38671,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/termbits.h um/include/asm-um/
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/termios.h um/include/asm-um/termios.h
---- orig/include/asm-um/termios.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/termios.h        Thu Feb 27 13:20:13 2003
+--- orig/include/asm-um/termios.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/termios.h        2003-02-27 13:20:13.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef __UM_TERMIOS_H
 +#define __UM_TERMIOS_H
@@ -38490,8 +38681,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/termios.h um/include/asm-um/t
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/timex.h um/include/asm-um/timex.h
---- orig/include/asm-um/timex.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/timex.h  Wed Mar 26 22:01:25 2003
+--- orig/include/asm-um/timex.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/timex.h  2003-05-28 11:02:07.000000000 -0400
 @@ -0,0 +1,18 @@
 +#ifndef __UM_TIMEX_H
 +#define __UM_TIMEX_H
@@ -38512,13 +38703,13 @@ diff -Naur -X ../exclude-files orig/include/asm-um/timex.h um/include/asm-um/tim
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/tlb.h um/include/asm-um/tlb.h
---- orig/include/asm-um/tlb.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/tlb.h    Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/tlb.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/tlb.h    2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1 @@
 +#include <asm-generic/tlb.h>
 diff -Naur -X ../exclude-files orig/include/asm-um/types.h um/include/asm-um/types.h
---- orig/include/asm-um/types.h        Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/types.h  Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/types.h        1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/types.h  2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_TYPES_H
 +#define __UM_TYPES_H
@@ -38527,8 +38718,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/types.h um/include/asm-um/typ
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/uaccess.h um/include/asm-um/uaccess.h
---- orig/include/asm-um/uaccess.h      Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/uaccess.h        Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/uaccess.h      1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/uaccess.h        2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,97 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -38628,8 +38819,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/uaccess.h um/include/asm-um/u
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/ucontext.h um/include/asm-um/ucontext.h
---- orig/include/asm-um/ucontext.h     Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/ucontext.h       Sun Dec  1 13:20:58 2002
+--- orig/include/asm-um/ucontext.h     1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/ucontext.h       2002-12-01 13:20:58.000000000 -0500
 @@ -0,0 +1,6 @@
 +#ifndef _ASM_UM_UCONTEXT_H
 +#define _ASM_UM_UCONTEXT_H
@@ -38638,8 +38829,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/ucontext.h um/include/asm-um/
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/unaligned.h um/include/asm-um/unaligned.h
---- orig/include/asm-um/unaligned.h    Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/unaligned.h      Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/unaligned.h    1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/unaligned.h      2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_UNALIGNED_H
 +#define __UM_UNALIGNED_H
@@ -38648,8 +38839,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/unaligned.h um/include/asm-um
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/unistd.h um/include/asm-um/unistd.h
---- orig/include/asm-um/unistd.h       Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/unistd.h Wed Mar 26 22:01:27 2003
+--- orig/include/asm-um/unistd.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/unistd.h 2003-05-28 11:02:08.000000000 -0400
 @@ -0,0 +1,118 @@
 +/* 
 + * Copyright (C) 2000, 2001  Jeff Dike (jdike@karaya.com)
@@ -38770,8 +38961,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/unistd.h um/include/asm-um/un
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/asm-um/user.h um/include/asm-um/user.h
---- orig/include/asm-um/user.h Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/user.h   Wed Apr 16 13:59:45 2003
+--- orig/include/asm-um/user.h 1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/user.h   2003-05-28 11:04:47.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_USER_H
 +#define __UM_USER_H
@@ -38780,8 +38971,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/user.h um/include/asm-um/user
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/vga.h um/include/asm-um/vga.h
---- orig/include/asm-um/vga.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/vga.h    Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/vga.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/vga.h    2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_VGA_H
 +#define __UM_VGA_H
@@ -38790,8 +38981,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/vga.h um/include/asm-um/vga.h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/asm-um/xor.h um/include/asm-um/xor.h
---- orig/include/asm-um/xor.h  Wed Dec 31 19:00:00 1969
-+++ um/include/asm-um/xor.h    Wed Oct 23 21:08:05 2002
+--- orig/include/asm-um/xor.h  1969-12-31 19:00:00.000000000 -0500
++++ um/include/asm-um/xor.h    2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,6 @@
 +#ifndef __UM_XOR_H
 +#define __UM_XOR_H
@@ -38800,8 +38991,8 @@ diff -Naur -X ../exclude-files orig/include/asm-um/xor.h um/include/asm-um/xor.h
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/linux/blk.h um/include/linux/blk.h
---- orig/include/linux/blk.h   Sun Sep 15 12:13:19 2002
-+++ um/include/linux/blk.h     Wed Apr 16 13:59:04 2003
+--- orig/include/linux/blk.h   2002-09-15 12:13:19.000000000 -0400
++++ um/include/linux/blk.h     2003-05-28 11:02:34.000000000 -0400
 @@ -320,6 +320,15 @@
  #define DEVICE_REQUEST do_ida_request
  #define DEVICE_NR(device) (MINOR(device) >> 4)
@@ -38819,8 +39010,8 @@ diff -Naur -X ../exclude-files orig/include/linux/blk.h um/include/linux/blk.h
  
  /* provide DEVICE_xxx defaults, if not explicitly defined
 diff -Naur -X ../exclude-files orig/include/linux/fs.h um/include/linux/fs.h
---- orig/include/linux/fs.h    Thu Feb 27 13:04:27 2003
-+++ um/include/linux/fs.h      Wed Apr 16 13:59:03 2003
+--- orig/include/linux/fs.h    2003-02-27 13:04:27.000000000 -0500
++++ um/include/linux/fs.h      2003-05-28 11:02:07.000000000 -0400
 @@ -318,6 +318,8 @@
  #include <linux/ncp_fs_i.h>
  #include <linux/proc_fs_i.h>
@@ -38842,8 +39033,8 @@ diff -Naur -X ../exclude-files orig/include/linux/fs.h um/include/linux/fs.h
        } u;
  };
 diff -Naur -X ../exclude-files orig/include/linux/hostfs_fs_i.h um/include/linux/hostfs_fs_i.h
---- orig/include/linux/hostfs_fs_i.h   Wed Dec 31 19:00:00 1969
-+++ um/include/linux/hostfs_fs_i.h     Wed Oct 23 21:08:05 2002
+--- orig/include/linux/hostfs_fs_i.h   1969-12-31 19:00:00.000000000 -0500
++++ um/include/linux/hostfs_fs_i.h     2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,21 @@
 +#ifndef _HOSTFS_FS_I
 +#define _HOSTFS_FS_I
@@ -38867,8 +39058,8 @@ diff -Naur -X ../exclude-files orig/include/linux/hostfs_fs_i.h um/include/linux
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/linux/hppfs_fs_i.h um/include/linux/hppfs_fs_i.h
---- orig/include/linux/hppfs_fs_i.h    Wed Dec 31 19:00:00 1969
-+++ um/include/linux/hppfs_fs_i.h      Wed Oct 23 21:08:05 2002
+--- orig/include/linux/hppfs_fs_i.h    1969-12-31 19:00:00.000000000 -0500
++++ um/include/linux/hppfs_fs_i.h      2002-10-23 21:08:05.000000000 -0400
 @@ -0,0 +1,19 @@
 +#ifndef _HPPFS_FS_I
 +#define _HPPFS_FS_I
@@ -38890,8 +39081,8 @@ diff -Naur -X ../exclude-files orig/include/linux/hppfs_fs_i.h um/include/linux/
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/include/linux/kernel.h um/include/linux/kernel.h
---- orig/include/linux/kernel.h        Thu Feb 27 13:04:27 2003
-+++ um/include/linux/kernel.h  Wed Mar 26 22:01:25 2003
+--- orig/include/linux/kernel.h        2003-02-27 13:04:27.000000000 -0500
++++ um/include/linux/kernel.h  2003-05-28 11:02:07.000000000 -0400
 @@ -49,7 +49,7 @@
  # define ATTRIB_NORET  __attribute__((noreturn))
  # define NORET_AND     noreturn,
@@ -38902,8 +39093,8 @@ diff -Naur -X ../exclude-files orig/include/linux/kernel.h um/include/linux/kern
  #else
  #define FASTCALL(x)   x
 diff -Naur -X ../exclude-files orig/include/linux/kernel_stat.h um/include/linux/kernel_stat.h
---- orig/include/linux/kernel_stat.h   Thu Feb 27 13:04:27 2003
-+++ um/include/linux/kernel_stat.h     Wed Apr 16 13:59:39 2003
+--- orig/include/linux/kernel_stat.h   2003-02-27 13:04:27.000000000 -0500
++++ um/include/linux/kernel_stat.h     2003-05-28 11:02:07.000000000 -0400
 @@ -12,7 +12,7 @@
   * used by rstatd/perfmeter
   */
@@ -38914,8 +39105,8 @@ diff -Naur -X ../exclude-files orig/include/linux/kernel_stat.h um/include/linux
  
  struct kernel_stat {
 diff -Naur -X ../exclude-files orig/include/linux/mm.h um/include/linux/mm.h
---- orig/include/linux/mm.h    Sun Sep 15 12:13:19 2002
-+++ um/include/linux/mm.h      Wed Apr 16 13:59:04 2003
+--- orig/include/linux/mm.h    2002-09-15 12:13:19.000000000 -0400
++++ um/include/linux/mm.h      2003-05-28 11:02:07.000000000 -0400
 @@ -425,6 +425,14 @@
  extern struct page * FASTCALL(__alloc_pages(unsigned int gfp_mask, unsigned int order, zonelist_t *zonelist));
  extern struct page * alloc_pages_node(int nid, unsigned int gfp_mask, unsigned int order);
@@ -38975,8 +39166,8 @@ diff -Naur -X ../exclude-files orig/include/linux/mm.h um/include/linux/mm.h
        return ret;
  }
 diff -Naur -X ../exclude-files orig/include/linux/proc_mm.h um/include/linux/proc_mm.h
---- orig/include/linux/proc_mm.h       Wed Dec 31 19:00:00 1969
-+++ um/include/linux/proc_mm.h Wed Apr 16 13:59:47 2003
+--- orig/include/linux/proc_mm.h       1969-12-31 19:00:00.000000000 -0500
++++ um/include/linux/proc_mm.h 2003-05-28 11:03:43.000000000 -0400
 @@ -0,0 +1,48 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -39027,8 +39218,8 @@ diff -Naur -X ../exclude-files orig/include/linux/proc_mm.h um/include/linux/pro
 +
 +#endif
 diff -Naur -X ../exclude-files orig/include/linux/tty.h um/include/linux/tty.h
---- orig/include/linux/tty.h   Thu Feb 27 13:04:28 2003
-+++ um/include/linux/tty.h     Wed Apr 16 13:59:04 2003
+--- orig/include/linux/tty.h   2003-02-27 13:04:28.000000000 -0500
++++ um/include/linux/tty.h     2003-05-28 11:02:07.000000000 -0400
 @@ -309,6 +309,9 @@
        spinlock_t read_lock;
        /* If the tty has a pending do_SAK, queue it here - akpm */
@@ -39047,18 +39238,17 @@ diff -Naur -X ../exclude-files orig/include/linux/tty.h um/include/linux/tty.h
  extern int a2232board_init(void);
  
  extern int tty_paranoia_check(struct tty_struct *tty, kdev_t device,
-@@ -420,6 +424,8 @@
+@@ -421,5 +425,7 @@
  extern int vt_ioctl(struct tty_struct *tty, struct file * file,
                    unsigned int cmd, unsigned long arg);
-+
-+extern void stdio_console_init(void);
  
++extern void stdio_console_init(void);
++
  #endif /* __KERNEL__ */
  #endif
 diff -Naur -X ../exclude-files orig/init/do_mounts.c um/init/do_mounts.c
---- orig/init/do_mounts.c      Thu Feb 27 13:04:28 2003
-+++ um/init/do_mounts.c        Thu Feb 27 13:05:27 2003
+--- orig/init/do_mounts.c      2003-02-27 13:04:28.000000000 -0500
++++ um/init/do_mounts.c        2003-02-27 13:05:27.000000000 -0500
 @@ -153,6 +153,22 @@
        { "pf",         0x2f00 },
        { "apblock", APBLOCK_MAJOR << 8},
@@ -39083,8 +39273,8 @@ diff -Naur -X ../exclude-files orig/init/do_mounts.c um/init/do_mounts.c
  #if defined(CONFIG_ARCH_S390)
        { "dasda", (DASD_MAJOR << MINORBITS) },
 diff -Naur -X ../exclude-files orig/kernel/panic.c um/kernel/panic.c
---- orig/kernel/panic.c        Thu Feb 27 13:04:29 2003
-+++ um/kernel/panic.c  Thu Feb 27 13:05:27 2003
+--- orig/kernel/panic.c        2003-02-27 13:04:29.000000000 -0500
++++ um/kernel/panic.c  2003-02-27 13:05:27.000000000 -0500
 @@ -66,7 +66,7 @@
        smp_send_stop();
  #endif
@@ -39094,9 +39284,47 @@ diff -Naur -X ../exclude-files orig/kernel/panic.c um/kernel/panic.c
  
        if (panic_timeout > 0)
        {
+diff -Naur -X ../exclude-files orig/MAINTAINERS um/MAINTAINERS
+--- orig/MAINTAINERS   2003-02-27 13:04:12.000000000 -0500
++++ um/MAINTAINERS     2003-02-27 13:05:17.000000000 -0500
+@@ -1841,6 +1841,14 @@
+ L:    linux-usb-devel@lists.sourceforge.net
+ W:    http://usb.in.tum.de
+ S:    Maintained
++
++USER-MODE PORT
++P:    Jeff Dike
++M:    jdike@karaya.com
++L:    user-mode-linux-devel@lists.sourceforge.net
++L:    user-mode-linux-user@lists.sourceforge.net
++W:    http://user-mode-linux.sourceforge.net
++S:    Maintained
+       
+ USB "USBNET" DRIVER
+ P:    David Brownell
+diff -Naur -X ../exclude-files orig/Makefile um/Makefile
+--- orig/Makefile      2003-02-27 13:04:12.000000000 -0500
++++ um/Makefile        2003-02-27 13:05:17.000000000 -0500
+@@ -5,7 +5,15 @@
+ KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
+-ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
++# SUBARCH tells the usermode build what the underlying arch is.  That is set
++# first, and if a usermode build is happening, the "ARCH=um" on the command
++# line overrides the setting of ARCH below.  If a native build is happening,
++# then ARCH is assigned, getting whatever value it gets normally, and 
++# SUBARCH is subsequently ignored.
++
++SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
++ARCH := $(SUBARCH)
++
+ KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
+ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
 diff -Naur -X ../exclude-files orig/mm/Makefile um/mm/Makefile
---- orig/mm/Makefile   Wed Aug 21 11:47:43 2002
-+++ um/mm/Makefile     Fri Nov  8 14:21:36 2002
+--- orig/mm/Makefile   2002-08-21 11:47:43.000000000 -0400
++++ um/mm/Makefile     2002-11-08 14:21:36.000000000 -0500
 @@ -17,5 +17,6 @@
            shmem.o
  
@@ -39105,8 +39333,8 @@ diff -Naur -X ../exclude-files orig/mm/Makefile um/mm/Makefile
  
  include $(TOPDIR)/Rules.make
 diff -Naur -X ../exclude-files orig/mm/mmap.c um/mm/mmap.c
---- orig/mm/mmap.c     Thu Feb 27 13:04:29 2003
-+++ um/mm/mmap.c       Thu Feb 27 13:05:27 2003
+--- orig/mm/mmap.c     2003-02-27 13:04:29.000000000 -0500
++++ um/mm/mmap.c       2003-02-27 13:05:27.000000000 -0500
 @@ -390,10 +390,11 @@
        return 0;
  }
@@ -39123,8 +39351,8 @@ diff -Naur -X ../exclude-files orig/mm/mmap.c um/mm/mmap.c
        unsigned int vm_flags;
        int correct_wcount = 0;
 diff -Naur -X ../exclude-files orig/mm/mprotect.c um/mm/mprotect.c
---- orig/mm/mprotect.c Wed Aug 21 11:47:43 2002
-+++ um/mm/mprotect.c   Sun Nov 10 20:24:32 2002
+--- orig/mm/mprotect.c 2002-08-21 11:47:43.000000000 -0400
++++ um/mm/mprotect.c   2002-11-10 20:24:32.000000000 -0500
 @@ -264,7 +264,8 @@
        return 0;
  }
@@ -39154,15 +39382,15 @@ diff -Naur -X ../exclude-files orig/mm/mprotect.c um/mm/mprotect.c
 -      up_write(&current->mm->mmap_sem);
 +      up_write(&mm->mmap_sem);
        return error;
-+}
+ }
 +
 +asmlinkage long sys_mprotect(unsigned long start, size_t len, unsigned long prot)
 +{
 +        return(do_mprotect(current->mm, start, len, prot));
- }
++}
 diff -Naur -X ../exclude-files orig/mm/proc_mm.c um/mm/proc_mm.c
---- orig/mm/proc_mm.c  Wed Dec 31 19:00:00 1969
-+++ um/mm/proc_mm.c    Tue Nov 19 14:20:26 2002
+--- orig/mm/proc_mm.c  1969-12-31 19:00:00.000000000 -0500
++++ um/mm/proc_mm.c    2002-11-19 14:20:26.000000000 -0500
 @@ -0,0 +1,173 @@
 +/* 
 + * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
@@ -39338,8 +39566,8 @@ diff -Naur -X ../exclude-files orig/mm/proc_mm.c um/mm/proc_mm.c
 + * End:
 + */
 diff -Naur -X ../exclude-files orig/mm/slab.c um/mm/slab.c
---- orig/mm/slab.c     Thu Feb 27 13:04:29 2003
-+++ um/mm/slab.c       Thu Feb 27 13:05:27 2003
+--- orig/mm/slab.c     2003-02-27 13:04:29.000000000 -0500
++++ um/mm/slab.c       2003-02-27 13:05:27.000000000 -0500
 @@ -1946,10 +1946,14 @@
  
        name = cachep->name; 
@@ -1,25 +1,16 @@
-CREDITS
-Documentation/Configure.help
-MAINTAINERS
-Makefile
-arch/um/Makefile
-arch/um/Makefile-i386
-arch/um/Makefile-ia64
-arch/um/Makefile-os-Linux
-arch/um/Makefile-ppc
-arch/um/Makefile-skas
-arch/um/Makefile-tt
 arch/um/common.ld.in
-arch/um/config.in
-arch/um/config.release
 arch/um/config_block.in
 arch/um/config_char.in
+arch/um/config.in
 arch/um/config_net.in
+arch/um/config.release
 arch/um/config_scsi.in
 arch/um/defconfig
-arch/um/drivers/Makefile
 arch/um/drivers/chan_kern.c
 arch/um/drivers/chan_user.c
+arch/um/drivers/cow.h
+arch/um/drivers/cow_sys.h
+arch/um/drivers/cow_user.c
 arch/um/drivers/daemon.h
 arch/um/drivers/daemon_kern.c
 arch/um/drivers/daemon_user.c
@@ -29,6 +20,7 @@ arch/um/drivers/harddog_user.c
 arch/um/drivers/hostaudio_kern.c
 arch/um/drivers/hostaudio_user.c
 arch/um/drivers/line.c
+arch/um/drivers/Makefile
 arch/um/drivers/mcast.h
 arch/um/drivers/mcast_kern.c
 arch/um/drivers/mcast_user.c
@@ -63,15 +55,14 @@ arch/um/drivers/xterm.c
 arch/um/drivers/xterm.h
 arch/um/drivers/xterm_kern.c
 arch/um/dyn_link.ld.in
-arch/um/fs/Makefile
-arch/um/fs/hostfs/Makefile
 arch/um/fs/hostfs/hostfs.h
 arch/um/fs/hostfs/hostfs_kern.c
 arch/um/fs/hostfs/hostfs_user.c
-arch/um/fs/hppfs/Makefile
+arch/um/fs/hostfs/Makefile
 arch/um/fs/hppfs/hppfs_kern.c
+arch/um/fs/hppfs/Makefile
+arch/um/fs/Makefile
 arch/um/include/2_5compat.h
-arch/um/include/Makefile
 arch/um/include/chan_kern.h
 arch/um/include/chan_user.h
 arch/um/include/choose-mode.h
@@ -82,10 +73,12 @@ arch/um/include/helper.h
 arch/um/include/hostaudio.h
 arch/um/include/init.h
 arch/um/include/initrd.h
+arch/um/include/irq_kern.h
 arch/um/include/irq_user.h
 arch/um/include/kern.h
 arch/um/include/kern_util.h
 arch/um/include/line.h
+arch/um/include/Makefile
 arch/um/include/mconsole.h
 arch/um/include/mconsole_kern.h
 arch/um/include/mem.h
@@ -122,14 +115,13 @@ arch/um/include/tempfile.h
 arch/um/include/time_user.h
 arch/um/include/tlb.h
 arch/um/include/ubd_user.h
-arch/um/include/um_mmu.h
-arch/um/include/um_uaccess.h
 arch/um/include/umid.h
 arch/um/include/uml_uaccess.h
+arch/um/include/um_mmu.h
 arch/um/include/umn.h
+arch/um/include/um_uaccess.h
 arch/um/include/user.h
 arch/um/include/user_util.h
-arch/um/kernel/Makefile
 arch/um/kernel/checksum.c
 arch/um/kernel/config.c.in
 arch/um/kernel/exec_kern.c
@@ -139,12 +131,13 @@ arch/um/kernel/frame_kern.c
 arch/um/kernel/gmon_syms.c
 arch/um/kernel/gprof_syms.c
 arch/um/kernel/helper.c
-arch/um/kernel/init_task.c
 arch/um/kernel/initrd_kern.c
 arch/um/kernel/initrd_user.c
+arch/um/kernel/init_task.c
 arch/um/kernel/irq.c
 arch/um/kernel/irq_user.c
 arch/um/kernel/ksyms.c
+arch/um/kernel/Makefile
 arch/um/kernel/mem.c
 arch/um/kernel/mem_user.c
 arch/um/kernel/mprot.h
@@ -157,7 +150,6 @@ arch/um/kernel/sigio_kern.c
 arch/um/kernel/sigio_user.c
 arch/um/kernel/signal_kern.c
 arch/um/kernel/signal_user.c
-arch/um/kernel/skas/Makefile
 arch/um/kernel/skas/exec_kern.c
 arch/um/kernel/skas/exec_user.c
 arch/um/kernel/skas/include/mmu.h
@@ -167,23 +159,24 @@ arch/um/kernel/skas/include/proc_mm.h
 arch/um/kernel/skas/include/ptrace-skas.h
 arch/um/kernel/skas/include/skas.h
 arch/um/kernel/skas/include/uaccess.h
+arch/um/kernel/skas/Makefile
 arch/um/kernel/skas/mem.c
 arch/um/kernel/skas/mem_user.c
 arch/um/kernel/skas/mmu.c
 arch/um/kernel/skas/process.c
 arch/um/kernel/skas/process_kern.c
-arch/um/kernel/skas/sys-i386/Makefile
-arch/um/kernel/skas/sys-i386/sigcontext.c
 arch/um/kernel/skas/syscall_kern.c
 arch/um/kernel/skas/syscall_user.c
+arch/um/kernel/skas/sys-i386/Makefile
+arch/um/kernel/skas/sys-i386/sigcontext.c
 arch/um/kernel/skas/time.c
 arch/um/kernel/skas/tlb.c
 arch/um/kernel/skas/trap_user.c
 arch/um/kernel/skas/util/Makefile
 arch/um/kernel/skas/util/mk_ptregs.c
 arch/um/kernel/smp.c
-arch/um/kernel/sys_call_table.c
 arch/um/kernel/syscall_kern.c
+arch/um/kernel/sys_call_table.c
 arch/um/kernel/syscall_user.c
 arch/um/kernel/sysrq.c
 arch/um/kernel/tempfile.c
@@ -192,7 +185,6 @@ arch/um/kernel/time_kern.c
 arch/um/kernel/tlb.c
 arch/um/kernel/trap_kern.c
 arch/um/kernel/trap_user.c
-arch/um/kernel/tt/Makefile
 arch/um/kernel/tt/exec_kern.c
 arch/um/kernel/tt/exec_user.c
 arch/um/kernel/tt/gdb.c
@@ -205,6 +197,7 @@ arch/um/kernel/tt/include/ptrace-tt.h
 arch/um/kernel/tt/include/tt.h
 arch/um/kernel/tt/include/uaccess.h
 arch/um/kernel/tt/ksyms.c
+arch/um/kernel/tt/Makefile
 arch/um/kernel/tt/mem.c
 arch/um/kernel/tt/mem_user.c
 arch/um/kernel/tt/process_kern.c
@@ -216,10 +209,10 @@ arch/um/kernel/tt/ptproxy/sysdep.c
 arch/um/kernel/tt/ptproxy/sysdep.h
 arch/um/kernel/tt/ptproxy/wait.c
 arch/um/kernel/tt/ptproxy/wait.h
-arch/um/kernel/tt/sys-i386/Makefile
-arch/um/kernel/tt/sys-i386/sigcontext.c
 arch/um/kernel/tt/syscall_kern.c
 arch/um/kernel/tt/syscall_user.c
+arch/um/kernel/tt/sys-i386/Makefile
+arch/um/kernel/tt/sys-i386/sigcontext.c
 arch/um/kernel/tt/time.c
 arch/um/kernel/tt/tlb.c
 arch/um/kernel/tt/tracer.c
@@ -234,24 +227,31 @@ arch/um/kernel/user_syms.c
 arch/um/kernel/user_util.c
 arch/um/link.ld.in
 arch/um/main.c
-arch/um/os-Linux/Makefile
-arch/um/os-Linux/drivers/Makefile
+arch/um/Makefile
+arch/um/Makefile-i386
+arch/um/Makefile-ia64
+arch/um/Makefile-os-Linux
+arch/um/Makefile-ppc
+arch/um/Makefile-skas
+arch/um/Makefile-tt
 arch/um/os-Linux/drivers/etap.h
 arch/um/os-Linux/drivers/ethertap_kern.c
 arch/um/os-Linux/drivers/ethertap_user.c
+arch/um/os-Linux/drivers/Makefile
 arch/um/os-Linux/drivers/tuntap.h
 arch/um/os-Linux/drivers/tuntap_kern.c
 arch/um/os-Linux/drivers/tuntap_user.c
 arch/um/os-Linux/file.c
 arch/um/os-Linux/include/file.h
+arch/um/os-Linux/Makefile
 arch/um/os-Linux/process.c
 arch/um/os-Linux/tty.c
-arch/um/sys-i386/Makefile
 arch/um/sys-i386/bugs.c
 arch/um/sys-i386/checksum.S
 arch/um/sys-i386/fault.c
 arch/um/sys-i386/ksyms.c
 arch/um/sys-i386/ldt.c
+arch/um/sys-i386/Makefile
 arch/um/sys-i386/ptrace.c
 arch/um/sys-i386/ptrace_user.c
 arch/um/sys-i386/sigcontext.c
@@ -274,14 +274,16 @@ arch/um/util/mk_constants_kern.c
 arch/um/util/mk_constants_user.c
 arch/um/util/mk_task_kern.c
 arch/um/util/mk_task_user.c
+CREDITS
+Documentation/Configure.help
 drivers/char/Makefile
 drivers/char/tty_io.c
 drivers/net/setup.c
 include/asm-i386/hardirq.h
 include/asm-um/a.out.h
-include/asm-um/arch-signal-i386.h
 include/asm-um/archparam-i386.h
 include/asm-um/archparam-ppc.h
+include/asm-um/arch-signal-i386.h
 include/asm-um/atomic.h
 include/asm-um/bitops.h
 include/asm-um/boot.h
@@ -306,11 +308,11 @@ include/asm-um/highmem.h
 include/asm-um/hw_irq.h
 include/asm-um/ide.h
 include/asm-um/init.h
-include/asm-um/io.h
 include/asm-um/ioctl.h
 include/asm-um/ioctls.h
-include/asm-um/ipc.h
+include/asm-um/io.h
 include/asm-um/ipcbuf.h
+include/asm-um/ipc.h
 include/asm-um/irq.h
 include/asm-um/keyboard.h
 include/asm-um/kmap_types.h
@@ -318,8 +320,8 @@ include/asm-um/linux_logo.h
 include/asm-um/locks.h
 include/asm-um/mca_dma.h
 include/asm-um/mman.h
-include/asm-um/mmu.h
 include/asm-um/mmu_context.h
+include/asm-um/mmu.h
 include/asm-um/module.h
 include/asm-um/msgbuf.h
 include/asm-um/mtrr.h
@@ -358,8 +360,8 @@ include/asm-um/socket.h
 include/asm-um/sockios.h
 include/asm-um/softirq.h
 include/asm-um/spinlock.h
-include/asm-um/stat.h
 include/asm-um/statfs.h
+include/asm-um/stat.h
 include/asm-um/string.h
 include/asm-um/system-generic.h
 include/asm-um/system-i386.h
@@ -387,6 +389,8 @@ include/linux/proc_mm.h
 include/linux/tty.h
 init/do_mounts.c
 kernel/panic.c
+MAINTAINERS
+Makefile
 mm/Makefile
 mm/mmap.c
 mm/mprotect.c