-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) }
+
+ __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
+
+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
+#
+# 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)'
+
+
+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
+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)
+ * 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)
+ * 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)
+ * 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
+ * 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
+ * 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)
+ * 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:
+ *
+ * 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)
+ * 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
+ * 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
+ * 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)
+ * 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)
+ * 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
+ * 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
+ * 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)
+ * 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)
+ * 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
+ * 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
+ * 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)
+ * 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)
+ * 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>
+ * 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>
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+ * 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"
+ * 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)
+ * 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>
+ * 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
+ * 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"
+ * 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>
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+#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)
+{
+ 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);
+ 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,
+ 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:
+ 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);
+ 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);
+}
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ .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
+ 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,
+
+#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
+#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)
+
+ .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
+
+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;
+ 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;
+ 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);
+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
+};
+{
+ struct inode *inode;
+ char *name;
-+ int error;
++ int error, fd;
+
+ inode = get_inode(dir->i_sb, dentry, &error);
+ if(error) return(error);
+ 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);
+}
+ int err;
+
+ if((file = inode_dentry_name(ino, dentry)) == NULL) return(-ENOMEM);
++ if(append)
++ return(-EPERM);
++
+ err = unlink_file(file);
+ kfree(file);
+ return(err);
+ 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){
+ * 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
+ 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);
+ 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+ * 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
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+
+#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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+
+#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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+ * 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)
+ * 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)
+ * 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
+
+#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)
+ * 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)
+
+#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)
+ * 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)
+ * 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
+
+ * 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
+
+ * 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
+
+ * 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)
+ * 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)
+ * 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
+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
+
+ * 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"
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+ * 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__
+
+#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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+#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;
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+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);
+ printk("new_mm : /proc/mm copy_segments failed, "
+ "errno = %d\n", errno);
+ }
++
+ return(fd);
+}
+
+ * 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)
+ * 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(®s->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)
+
+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)
+ * 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(®s->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)
+ * 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)
+ * 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)
+ * 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
+
+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>
+ * 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)
+ 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.
+ * 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)
+
+ 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(¤t->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(¤t->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.
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+int fork_tramp(void *stack)
+{
+ cli();
++ arch_init_thread();
+ init_new_thread_stack(stack, finish_fork_handler);
+ os_usr1_process(os_getpid());
+ return(0);
+ * 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
+
+
+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
+ * 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
+ * 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
+ * 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
+ * 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
+ * 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
+ * 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
+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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+ * 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)
+ * 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)
+ * 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)
+ * 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>
+
+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)
+ * 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)
+ .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)
+ * 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)
+ * 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
+ * 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
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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
+#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"
+ 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;
+ * 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
+
+#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)
+ * 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"
+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)
+ * 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)
+ * 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)
+ * 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)
+ * 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)
+ * 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"
+ show_trace((unsigned long *) ®s);
+}
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
+
+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>
+ 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"
+}
+
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>
+
+ 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
+
+
+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
+
+
+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.
+ 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
+ * 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"
+ * 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>
+ * 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"
+ * 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)
+ * 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
+
+
+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"
+ 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>
+
+ 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"
+ 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>
+
+ 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
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);
}
}
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);
/* 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>
/* 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
+ 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)
+ * 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
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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)
+ * 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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+#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
+}
+
+#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
+#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
+#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
+
+#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)
+
+#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
+
+#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
+
+#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
+
+#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
+#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)
+ * 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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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)
+ * 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)
+ * 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
+
+#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
+
+#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)
+ * 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)
+ * 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
+
+#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)
+ * 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)
+ * 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
+
+#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
+
+#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__
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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)
+ * 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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+#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
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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
+
+#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)
+ * 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
+
+#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
+
+#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)
+ * 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
+
+#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
+
+#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
+
+#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)
/* 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>
} 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
+ * 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
+ * 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,
#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
*/
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);
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)
+
+#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 */
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},
#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
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
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;
}
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;
}
- up_write(¤t->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)
+ * 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;