-UMlinux
+.config*
root_fs*
build_*
toolchain_build_*
include toolchain/*/Makefile.in
include package/Makefile.in
include package/*/Makefile.in
+include target/Makefile.in
+include target/*/Makefile.in
#############################################################
#
HOSTCC:=gcc
BASE_DIR:=${shell pwd}
-SOURCE_DIR:=$(BASE_DIR)/sources
-DL_DIR:=$(SOURCE_DIR)/dl
-PATCH_DIR=$(SOURCE_DIR)/patches
+DL_DIR:=$(BASE_DIR)/sources/dl
+PATCH_DIR=$(BASE_DIR)/sources/patches
BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX)
TARGET_DIR:=$(BUILD_DIR)/root
STAGING_DIR=$(BUILD_DIR)/staging_dir
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BISON_DIR) install
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
- cp -a $(SOURCE_DIR)/yacc $(TARGET_DIR)/usr/bin/yacc
+ cp -a package/bison/yacc $(TARGET_DIR)/usr/bin/yacc
bison: uclibc $(TARGET_DIR)/$(BISON_TARGET_BINARY)
--- /dev/null
+#!/bin/sh
+exec /usr/bin/bison -y "$@"
--- /dev/null
+ac_cv_func_setvbuf_reversed=no
--- /dev/null
+# Boa v0.94 configuration file
+# File format has not changed from 0.93
+# File format has changed little from 0.92
+# version changes are noted in the comments
+#
+# The Boa configuration file is parsed with a lex/yacc or flex/bison
+# generated parser. If it reports an error, the line number will be
+# provided; it should be easy to spot. The syntax of each of these
+# rules is very simple, and they can occur in any order. Where possible
+# these directives mimic those of NCSA httpd 1.3; I saw no reason to
+# introduce gratuitous differences.
+
+# $Id: boa.conf,v 1.1 2004/10/09 02:48:37 andersen Exp $
+
+# The "ServerRoot" is not in this configuration file. It can be compiled
+# into the server (see defines.h) or specified on the command line with
+# the -c option, for example:
+#
+# boa -c /usr/local/boa
+
+
+# Port: The port Boa runs on. The default port for http servers is 80.
+# If it is less than 1024, the server must be started as root.
+
+Port 80
+
+# Listen: the Internet address to bind(2) to. If you leave it out,
+# it takes the behavior before 0.93.17.2, which is to bind to all
+# addresses (INADDR_ANY). You only get one "Listen" directive,
+# if you want service on multiple IP addresses, you have three choices:
+# 1. Run boa without a "Listen" directive
+# a. All addresses are treated the same; makes sense if the addresses
+# are localhost, ppp, and eth0.
+# b. Use the VirtualHost directive below to point requests to different
+# files. Should be good for a very large number of addresses (web
+# hosting clients).
+# 2. Run one copy of boa per IP address, each has its own configuration
+# with a "Listen" directive. No big deal up to a few tens of addresses.
+# Nice separation between clients.
+# The name you provide gets run through inet_aton(3), so you have to use dotted
+# quad notation. This configuration is too important to trust some DNS.
+
+#Listen 192.68.0.5
+
+# User: The name or UID the server should run as.
+# Group: The group name or GID the server should run as.
+
+User nobody
+Group nobody
+
+# ServerAdmin: The email address where server problems should be sent.
+# Note: this is not currently used, except as an environment variable
+# for CGIs.
+
+#ServerAdmin root@localhost
+
+# ErrorLog: The location of the error log file. If this does not start
+# with /, it is considered relative to the server root.
+# Set to /dev/null if you don't want errors logged.
+# If unset, defaults to /dev/stderr
+
+ErrorLog /var/log/boa/error_log
+# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
+# is somewhat experimental and might fail under heavy load.
+# "Usual libc implementations of printf will stall the whole
+# process if the receiving end of a pipe stops reading."
+#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log"
+
+# AccessLog: The location of the access log file. If this does not
+# start with /, it is considered relative to the server root.
+# Comment out or set to /dev/null (less effective) to disable
+# Access logging.
+
+AccessLog /var/log/boa/access_log
+# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
+# is somewhat experimental and might fail under heavy load.
+# "Usual libc implementations of printf will stall the whole
+# process if the receiving end of a pipe stops reading."
+#AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log"
+
+# UseLocaltime: Logical switch. Uncomment to use localtime
+# instead of UTC time
+#UseLocaltime
+
+# VerboseCGILogs: this is just a logical switch.
+# It simply notes the start and stop times of cgis in the error log
+# Comment out to disable.
+
+#VerboseCGILogs
+
+# ServerName: the name of this server that should be sent back to
+# clients if different than that returned by gethostname + gethostbyname
+
+#ServerName www.your.org.here
+
+# VirtualHost: a logical switch.
+# Comment out to disable.
+# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A'
+# become /var/www/IP-A.
+# Example: http://localhost/ becomes /var/www/127.0.0.1
+#
+# Not used until version 0.93.17.2. This "feature" also breaks commonlog
+# output rules, it prepends the interface number to each access_log line.
+# You are expected to fix that problem with a postprocessing script.
+
+#VirtualHost
+
+# DocumentRoot: The root directory of the HTML documents.
+# Comment out to disable server non user files.
+
+DocumentRoot /var/www
+
+# UserDir: The name of the directory which is appended onto a user's home
+# directory if a ~user request is recieved.
+
+UserDir public_html
+
+# DirectoryIndex: Name of the file to use as a pre-written HTML
+# directory index. Please MAKE AND USE THESE FILES. On the
+# fly creation of directory indexes can be _slow_.
+# Comment out to always use DirectoryMaker
+
+DirectoryIndex index.html
+
+# DirectoryMaker: Name of program used to create a directory listing.
+# Comment out to disable directory listings. If both this and
+# DirectoryIndex are commented out, accessing a directory will give
+# an error (though accessing files in the directory are still ok).
+
+DirectoryMaker /usr/lib/boa/boa_indexer
+
+# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker
+# has been commented out, the the on-the-fly indexing of Boa can be used
+# to generate indexes of directories. Be warned that the output is
+# extremely minimal and can cause delays when slow disks are used.
+# Note: The DirectoryCache must be writable by the same user/group that
+# Boa runs as.
+
+# DirectoryCache /var/spool/boa/dircache
+
+# KeepAliveMax: Number of KeepAlive requests to allow per connection
+# Comment out, or set to 0 to disable keepalive processing
+
+KeepAliveMax 1000
+
+# KeepAliveTimeout: seconds to wait before keepalive connection times out
+
+KeepAliveTimeout 10
+
+# MimeTypes: This is the file that is used to generate mime type pairs
+# and Content-Type fields for boa.
+# Set to /dev/null if you do not want to load a mime types file.
+# Do *not* comment out (better use AddType!)
+
+MimeTypes /etc/mime.types
+
+# DefaultType: MIME type used if the file extension is unknown, or there
+# is no file extension.
+
+DefaultType text/plain
+
+# AddType: adds types without editing mime.types
+# Example: AddType type extension [extension ...]
+
+# Uncomment the next line if you want .cgi files to execute from anywhere
+#AddType application/x-httpd-cgi cgi
+
+# Redirect, Alias, and ScriptAlias all have the same semantics -- they
+# match the beginning of a request and take appropriate action. Use
+# Redirect for other servers, Alias for the same server, and ScriptAlias
+# to enable directories for script execution.
+
+# Redirect allows you to tell clients about documents which used to exist in
+# your server's namespace, but do not anymore. This allows you to tell the
+# clients where to look for the relocated document.
+# Example: Redirect /bar http://elsewhere/feh/bar
+
+# Aliases: Aliases one path to another.
+# Example: Alias /path1/bar /path2/foo
+
+# Alias /doc /usr/doc
+
+# ScriptAlias: Maps a virtual path to a directory for serving scripts
+# Example: ScriptAlias /htbin/ /www/htbin/
+
+ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
+
$(BOA_WORKDIR)/Makefile: $(BOA_DIR)/.unpacked
rm -f $(BOA_WORKDIR)/Makefile
mkdir -p $(BOA_WORKDIR)
- (cd $(BOA_WORKDIR) && CONFIG_SITE=$(SOURCE_DIR)/boa-config.site-$(ARCH) \
+ (cd $(BOA_WORKDIR) && CONFIG_SITE=package/boa/boa-config.site-$(ARCH) \
CC=$(TARGET_CC) $(BOA_DIR)/configure)
touch $(BOA_WORKDIR)/.depend
-
+
$(BOA_WORKDIR)/boa $(BOA_WORKDIR)/boa_indexer: $(BOA_WORKDIR)/Makefile
rm -f $@
$(MAKE) VPATH=$(BOA_DIR)/src/ -C $(BOA_WORKDIR)
mkdir -p $(TARGET_DIR)/usr/lib/boa
cp -f $(BOA_WORKDIR)/src/boa_indexer $(TARGET_DIR)/usr/lib/boa/boa_indexer
mkdir -p $(TARGET_DIR)/etc/boa
- cp -f $(SOURCE_DIR)/boa.conf $(TARGET_DIR)/etc/boa
- cp -f $(SOURCE_DIR)/mime.types $(TARGET_DIR)/etc/mime.types
+ cp -f package/boa/boa.conf $(TARGET_DIR)/etc/boa
+ cp -f package/boa/mime.types $(TARGET_DIR)/etc/mime.types
strip --strip-all $(TARGET_DIR)/usr/sbin/boa $(TARGET_DIR)/usr/lib/boa/boa_indexer
touch $(BOA_WORKDIR)/.installed
--- /dev/null
+###############################################################################
+#
+# MIME-TYPES and the extensions that represent them
+#
+# This file is part of the "mime-support" package. Please send email (not a
+# bug report) to mime-support@packages.debian.org if you would like new types
+# and/or extensions to be added.
+#
+# Note: Compression schemes like "gzip", "bzip", and "compress" are not
+# actually "mime-types". They are "encodings" and hence must _not_ have
+# entries in this file to map their extensions. The "mime-type" of an
+# encoded file refers to the type of data that has been encoded, not the
+# type of the encoding.
+#
+###############################################################################
+
+
+application/activemessage
+application/andrew-inset
+application/applefile
+application/atomicmail
+application/cu-seeme csm cu
+application/dca-rft
+application/dec-dx
+application/dsptype tsp
+application/futuresplash spl
+application/ghostview
+application/mac-binhex40 hqx
+application/macwriteii
+application/msaccess mdb
+application/msword doc dot
+application/news-message-id
+application/news-transmission
+application/octet-stream bin
+application/oda oda
+application/pdf pdf
+application/pgp-signature pgp
+application/postscript ps ai eps
+application/remote-printing
+application/rtf rtf
+application/slate
+application/vnd.ms-excel xls xlb
+application/vnd.ms-powerpoint ppt pps pot
+application/vnd.wap.wmlc wmlc
+application/vnd.wap.wmlscriptc wmlsc
+application/wita
+application/wordperfect5.1 wp5
+application/zip zip
+application/x-123 wk
+application/x-bcpio bcpio
+application/x-chess-pgn pgn
+application/x-core
+application/x-cpio cpio
+application/x-csh
+application/x-debian-package deb
+application/x-director dcr dir dxr
+application/x-dms dms
+application/x-dvi dvi
+application/x-executable
+application/x-font pfa pfb gsf pcf pcf.Z
+application/x-gnumeric gnumeric
+application/x-gtar gtar tgz
+application/x-hdf hdf
+application/x-httpd-php phtml pht php
+application/x-httpd-php3 php3
+application/x-httpd-php3-source phps
+application/x-httpd-php3-preprocessed php3p
+application/x-httpd-php4 php4
+application/x-ica ica
+application/x-java class
+application/x-javascript js
+application/x-kdelnk
+application/x-kchart chrt
+application/x-killustrator kil
+application/x-kpresenter kpr kpt
+application/x-kspread ksp
+application/x-kword kwd kwt
+application/x-latex latex
+application/x-lha lha
+application/x-lzh lzh
+application/x-lzx lzx
+application/x-maker frm maker frame fm fb book fbdoc
+application/x-mif mif
+application/x-msdos-program com exe bat dll
+application/x-msi msi
+application/x-netcdf nc cdf
+application/x-ns-proxy-autoconfig pac
+application/x-object o
+application/x-ogg ogg
+application/x-oz-application oza
+application/x-perl pl pm
+application/x-redhat-package-manager rpm
+application/x-rx
+application/x-sh
+application/x-shar shar
+application/x-shellscript
+application/x-shockwave-flash swf swfl
+application/x-stuffit sit
+application/x-sv4cpio sv4cpio
+application/x-sv4crc sv4crc
+application/x-tar tar
+application/x-tcl
+application/x-tex
+application/x-tex-gf gf
+application/x-tex-pk pk PK
+application/x-texinfo texinfo texi
+application/x-trash ~ % bak old sik
+application/x-troff t tr roff
+application/x-troff-man man
+application/x-troff-me me
+application/x-troff-ms ms
+application/x-ustar ustar
+application/x-wais-source src
+application/x-wingz wz
+
+audio/basic au snd
+audio/midi mid midi
+audio/mpeg mpga mpega mp2 mp3
+audio/mpegurl m3u
+audio/prs.sid sid
+audio/x-aiff aif aiff aifc
+audio/x-gsm gsm
+audio/x-pn-realaudio ra rm ram
+audio/x-wav wav
+
+image/bitmap bmp
+image/gif gif
+image/ief ief
+image/jpeg jpeg jpg jpe
+image/pcx pcx
+image/png png
+image/tiff tiff tif
+image/vnd.wap.wbmp wbmp
+image/x-cmu-raster ras
+image/x-coreldraw cdr
+image/x-coreldrawpattern pat
+image/x-coreldrawtemplate cdt
+image/x-corelphotopaint cpt
+image/x-jng jng
+image/x-portable-anymap pnm
+image/x-portable-bitmap pbm
+image/x-portable-graymap pgm
+image/x-portable-pixmap ppm
+image/x-rgb rgb
+image/x-xbitmap xbm
+image/x-xpixmap xpm
+image/x-xwindowdump xwd
+
+inode/chardevice
+inode/blockdevice
+inode/directory-locked
+inode/directory
+inode/fifo
+inode/socket
+
+message/external-body
+message/news
+message/partial
+message/rfc822
+
+multipart/alternative
+multipart/appledouble
+multipart/digest
+multipart/mixed
+multipart/parallel
+
+text/comma-separated-values csv
+text/css css
+text/english
+text/html htm html xhtml
+text/mathml mml
+text/plain txt text diff
+text/richtext rtx
+text/tab-separated-values tsv
+text/vnd.wap.wml wml
+text/vnd.wap.wmlscript wmls
+text/xml xml
+text/x-c++hdr h++ hpp hxx hh
+text/x-c++src c++ cpp cxx cc
+text/x-chdr h
+text/x-crontab
+text/x-csh csh
+text/x-csrc c
+text/x-java java
+text/x-makefile
+text/x-moc moc
+text/x-pascal p pas
+text/x-setext etx
+text/x-sh sh
+text/x-tcl tcl tk
+text/x-tex tex ltx sty cls
+text/x-vcalendar vcs
+text/x-vcard vcf
+
+video/dl dl
+video/fli fli
+video/gl gl
+video/mpeg mpeg mpg mpe
+video/quicktime qt mov
+video/x-mng mng
+video/x-ms-asf asf asx
+video/x-msvideo avi
+video/x-sgi-movie movie
+
+x-world/x-vrml vrm vrml wrl
BRIDGE_TARGET_BINARY:=usr/sbin/brctl
$(DL_DIR)/$(BRIDGE_SOURCE):
- $(WGET) -P $(DL_DIR) $(BRIDGE_SOURCE_URL)/$(BRIDGE_SOURCE)
+ $(WGET) -P $(DL_DIR) $(BRIDGE_SOURCE_URL)/$(BRIDGE_SOURCE)
$(BRIDGE_BUILD_DIR)/.unpacked: $(DL_DIR)/$(BRIDGE_SOURCE)
zcat $(DL_DIR)/$(BRIDGE_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- patch -p1 -d $(BRIDGE_BUILD_DIR) < $(SOURCE_DIR)/bridge.patch
+ patch -p1 -d $(BRIDGE_BUILD_DIR) < package/bridge/bridge.patch
touch $(BRIDGE_BUILD_DIR)/.unpacked
$(BRIDGE_BUILD_DIR)/.configured: $(BRIDGE_BUILD_DIR)/.unpacked
--- /dev/null
+--- bridge-utils-0.9.6/libbridge/Makefile.in.dist 2004-03-01 20:55:52.000000000 -0600
++++ bridge-utils-0.9.6/libbridge/Makefile.in 2004-03-01 20:56:23.000000000 -0600
+@@ -5,7 +5,7 @@
+ RANLIB=@RANLIB@
+
+ CC=@CC@
+-CFLAGS = -Wall -g $(KERNEL_HEADERS)
++CFLAGS = -Wall -g @CFLAGS@ $(KERNEL_HEADERS)
+
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
$(BUSYBOX_DIR)/.configured: $(DL_DIR)/$(BUSYBOX_SOURCE) $(BUSYBOX_CONFIG)
$(BUSYBOX_UNZIP) $(DL_DIR)/$(BUSYBOX_SOURCE) | tar -C $(BUILD_DIR) -xvf -
# Allow busybox patches.
- $(SOURCE_DIR)/patch-kernel.sh $(BUSYBOX_DIR) package/busybox busybox-\*.patch
+ toolchain/patch-kernel.sh $(BUSYBOX_DIR) package/busybox busybox-\*.patch
cp $(BUSYBOX_CONFIG) $(BUSYBOX_DIR)/.config
$(SED) "s,^CROSS.*,CROSS=$(TARGET_CROSS)\n\
PREFIX=$(TARGET_DIR),;" $(BUSYBOX_DIR)/Rules.mak
+++ /dev/null
-#############################################################
-#
-# mkcramfs to build to target cramfs filesystems
-#
-#############################################################
-CRAMFS_DIR=$(BUILD_DIR)/cramfs-1.1
-CRAMFS_SOURCE=cramfs-1.1.tar.gz
-CRAMFS_SITE=http://aleron.dl.sourceforge.net/sourceforge/cramfs
-CRAMFS_PATCH=$(SOURCE_DIR)/cramfs.patch
-
-$(DL_DIR)/$(CRAMFS_SOURCE):
- $(WGET) -P $(DL_DIR) $(CRAMFS_SITE)/$(CRAMFS_SOURCE)
-
-$(CRAMFS_DIR): $(DL_DIR)/$(CRAMFS_SOURCE) $(CRAMFS_PATCH)
- zcat $(DL_DIR)/$(CRAMFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- cat $(CRAMFS_PATCH) | patch -p1 -d $(CRAMFS_DIR)
-
-$(CRAMFS_DIR)/mkcramfs: $(CRAMFS_DIR)
- $(MAKE) CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" -C $(CRAMFS_DIR);
- touch -c $(CRAMFS_DIR)/mkcramfs
-
-cramfs: $(CRAMFS_DIR)/mkcramfs
-
-cramfs-source: $(DL_DIR)/$(CRAMFS_SOURCE)
-
-cramfs-clean:
- -$(MAKE) -C $(CRAMFS_DIR) clean
-
-cramfs-dirclean:
- rm -rf $(CRAMFS_DIR)
-
-#############################################################
-#
-# Build the cramfs root filesystem image
-#
-#############################################################
-
-cramfsroot: cramfs
- #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
- -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
- @rm -rf $(TARGET_DIR)/usr/man
- @rm -rf $(TARGET_DIR)/usr/info
- $(CRAMFS_DIR)/mkcramfs -q -D $(SOURCE_DIR)/device_table.txt $(TARGET_DIR) $(IMAGE)
-
-cramfsroot-source: cramfs-source
-
-cramfsroot-clean:
- -$(MAKE) -C $(CRAMFS_DIR) clean
-
-cramfsroot-dirclean:
- rm -rf $(CRAMFS_DIR)
-
# Any custom stuff you feel like doing....
#
#############################################################
-CUST_DIR:=$(SOURCE_DIR)/customize
-ROOT_DIR:=$(BUILD_DIR)/root
+CUST_DIR:=package/customize/source
customize:
- cp -af $(CUST_DIR)/* $(ROOT_DIR)/
+ -cp -af $(CUST_DIR)/* $(TARGET_DIR)/
$(DNSMASQ_DIR)/.source: $(DL_DIR)/$(DNSMASQ_SOURCE)
zcat $(DL_DIR)/$(DNSMASQ_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- $(SOURCE_DIR)/patch-kernel.sh $(DNSMASQ_DIR) $(SOURCE_DIR) \
+ toolchain/patch-kernel.sh $(DNSMASQ_DIR) package/dnsmasq/ \
$(DNSMASQ_VER)-\*.patch
touch $(DNSMASQ_DIR)/.source
--- /dev/null
+--- dnsmasq-1.18/config.h.dist 2004-03-01 22:25:12.000000000 -0600
++++ dnsmasq-1.18/config.h 2004-03-01 22:26:50.000000000 -0600
+@@ -126,7 +126,9 @@
+
+ /* Must preceed __linux__ since uClinux defines __linux__ too. */
+ #if defined(__uClinux__) || defined(__UCLIBC__)
++#ifndef __UCLIBC_HAS_IPV6__
+ #undef HAVE_LINUX_IPV6_PROC
++#endif
+ #define HAVE_GETOPT_LONG
+ #undef HAVE_ARC4RANDOM
+ #define HAVE_RANDOM
+diff -x CVS -urN dnsmasq-1.18/option.c dnsmasq.old/option.c
+--- dnsmasq-1.18/option.c 2003-11-05 08:22:18.000000000 -0600
++++ dnsmasq.old/option.c 2004-01-05 23:40:11.000000000 -0600
+@@ -578,8 +578,8 @@
+ #ifdef HAVE_IPV6
+ else if (tmp->source_addr.sa.sa_family == AF_INET6)
+ tmp->source_addr.in6.sin6_port = htons(*query_port);
+- }
+ #endif
++ }
+ }
+
+ if (*if_addrs)
--- /dev/null
+diff -ur dnsmasq-2.15.orig/src/config.h dnsmasq-2.15/src/config.h
+--- dnsmasq-2.15.orig/src/config.h 2004-10-08 11:41:34.757371880 -0400
++++ dnsmasq-2.15/src/config.h 2004-10-08 11:43:49.074952504 -0400
+@@ -78,6 +78,11 @@
+ /* We assume that systems which don't have IPv6
+ headers don't have ntop and pton either */
+
++#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)
++# undef NO_IPV6
++# define NO_IPV6
++#endif
++
+ #if defined(INET6_ADDRSTRLEN) && defined(IPV6_V6ONLY) && !defined(NO_IPV6)
+ # define HAVE_IPV6
+ # define ADDRSTRLEN INET6_ADDRSTRLEN
+@@ -194,7 +199,7 @@
+ /* platform dependent options. */
+
+ /* Must preceed __linux__ since uClinux defines __linux__ too. */
+-#if defined(__uClinux__) || defined(__UCLIBC__)
++#if defined(__uClinux__)
+ #undef HAVE_LINUX_IPV6_PROC
+ #define HAVE_GETOPT_LONG
+ #undef HAVE_ARC4RANDOM
+@@ -208,6 +213,24 @@
+ # define NO_FORK
+ #endif
+
++#elif defined(__linux__) && defined(__UCLIBC__)
++# define HAVE_LINUX_IPV6_PROC
++# if defined(__UCLIBC_HAS_GNU_GETOPT__) || \
++ ((__UCLIBC_MAJOR__==0) && (__UCLIBC_MINOR__==9) && (__UCLIBC_SUBLEVEL__<21))
++# define HAVE_GETOPT_LONG
++# else
++# undef HAVE_GETOPT_LONG
++# endif
++#undef HAVE_ARC4RANDOM
++#define HAVE_RANDOM
++#define HAVE_DEV_URANDOM
++#define HAVE_DEV_RANDOM
++#undef HAVE_SOCKADDR_SA_LEN
++#undef HAVE_PSELECT
++#if !defined(__ARCH_HAS_MMU__)
++# define NO_FORK
++#endif
++
+ /* libc5 - must precede __linux__ too */
+ /* Note to build a libc5 binary on a modern Debian system:
+ install the packages altgcc libc5 and libc5-altdev
--- /dev/null
+--- dropbear-0.42/S50dropbear
++++ dropbear-0.42/S50dropbear
+@@ -0,0 +1,56 @@
++#!/bin/sh
++#
++# Starts dropbear sshd.
++#
++
++# Make sure the dropbearkey progam exists
++[ -f /usr/bin/dropbearkey ] || exit 0
++
++# Check for the Dropbear RSA key
++if [ ! -f /etc/dropbear/dropbear_rsa_host_key ] ; then
++ echo Generating RSA Key...
++ mkdir -p /etc/dropbear
++ /usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
++fi
++
++# Check for the Dropbear DSS key
++if [ ! -f /etc/dropbear/dropbear_dss_host_key ] ; then
++ echo Generating DSS Key...
++ mkdir -p /etc/dropbear
++ /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
++fi
++
++umask 077
++
++start() {
++ echo -n "Starting dropbear sshd: "
++ start-stop-daemon --start --quiet --pidfile /var/run/dropbear.pid --exec /usr/sbin/dropbear
++ echo "OK"
++}
++stop() {
++ echo -n "Stopping sshd: "
++ start-stop-daemon --stop --quiet --pidfile /var/run/dropbear.pid
++ echo "OK"
++}
++restart() {
++ stop
++ start
++}
++
++case "$1" in
++ start)
++ start
++ ;;
++ stop)
++ stop
++ ;;
++ restart|reload)
++ restart
++ ;;
++ *)
++ echo $"Usage: $0 {start|stop|restart}"
++ exit 1
++esac
++
++exit $?
++
$(DROPBEAR_SSHD_DIR)/.unpacked: $(DL_DIR)/$(DROPBEAR_SSHD_SOURCE)
$(DROPBEAR_SSHD_CAT) $(DL_DIR)/$(DROPBEAR_SSHD_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- $(SOURCE_DIR)/patch-kernel.sh $(DROPBEAR_SSHD_DIR) $(SOURCE_DIR) dropbear-\*.patch
+ toolchain/patch-kernel.sh $(DROPBEAR_SSHD_DIR) package/dropbear_sshd/ dropbear-\*.patch
$(SED) 's,^/\* #define DROPBEAR_MULTI.*,#define DROPBEAR_MULTI,g' $(DROPBEAR_SSHD_DIR)/options.h
touch $(DROPBEAR_SSHD_DIR)/.unpacked
$(ED_DIR)/.unpacked: $(DL_DIR)/$(ED_SOURCE) $(DL_DIR)/$(ED_PATCH)
$(ED_CAT) $(DL_DIR)/$(ED_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- $(SOURCE_DIR)/patch-kernel.sh $(ED_DIR) $(DL_DIR) $(ED_PATCH)
+ toolchain/patch-kernel.sh $(ED_DIR) $(DL_DIR) $(ED_PATCH)
touch $(ED_DIR)/.unpacked
$(ED_DIR)/.configured: $(ED_DIR)/.unpacked
+++ /dev/null
-#############################################################
-#
-# genext2fs to build to target ext2 filesystems
-#
-#############################################################
-GENEXT2_DIR=$(BUILD_DIR)/genext2fs-1.3
-GENEXT2_SOURCE=genext2fs_1.3.orig.tar.gz
-GENEXT2_SITE=http://ftp.debian.org/debian/pool/main/g/genext2fs
-GENEXT2_PATCH=$(SOURCE_DIR)/genext2fs.patch
-
-$(DL_DIR)/$(GENEXT2_SOURCE):
- $(WGET) -P $(DL_DIR) $(GENEXT2_SITE)/$(GENEXT2_SOURCE)
-
-$(GENEXT2_DIR): $(DL_DIR)/$(GENEXT2_SOURCE) $(GENEXT2_PATCH)
- zcat $(DL_DIR)/$(GENEXT2_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- mv $(GENEXT2_DIR).orig $(GENEXT2_DIR)
- cat $(GENEXT2_PATCH) | patch -p1 -d $(GENEXT2_DIR)
-
-$(GENEXT2_DIR)/genext2fs: $(GENEXT2_DIR)
- $(MAKE) CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \
- -D_FILE_OFFSET_BITS=64" -C $(GENEXT2_DIR);
- touch -c $(GENEXT2_DIR)/genext2fs
-
-genext2fs: $(GENEXT2_DIR)/genext2fs
-
-
-
-#############################################################
-#
-# Build the ext2 root filesystem image
-#
-#############################################################
-
-# How much KB we want to add to the calculated size for slack space
-GENEXT2_REALSIZE=$(subst total,, $(shell LANG=C du $(TARGET_DIR) -s -c -k | grep total ))
-GENEXT2_ADDTOROOTSIZE=$(shell if [ $(GENEXT2_REALSIZE) -ge 20000 ] ; then echo 16384; else echo 16; fi)
-GENEXT2_SIZE=$(shell expr $(GENEXT2_REALSIZE) + $(GENEXT2_ADDTOROOTSIZE) + 200)
-# We currently add about 400 device nodes, so add that into the total
-GENEXT2_INODES=$(shell expr $(shell find $(TARGET_DIR) | wc -l) + 400)
-#GENEXT2_SIZE=100000
-
-ext2root: genext2fs
- #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
- -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
- $(GENEXT2_DIR)/genext2fs -i $(GENEXT2_INODES) -b $(GENEXT2_SIZE) \
- -d $(TARGET_DIR) -q -D $(SOURCE_DIR)/device_table.txt $(IMAGE)
-
-ext2root-source: $(DL_DIR)/$(GENEXT2_SOURCE)
-
-ext2root-clean:
- -$(MAKE) -C $(GENEXT2_DIR) clean
-
-ext2root-dirclean:
- rm -rf $(GENEXT2_DIR)
-
$(FILE_DIR)/.unpacked: $(DL_DIR)/$(FILE_SOURCE)
$(FILE_CAT) $(DL_DIR)/$(FILE_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- cat $(SOURCE_DIR)/file.patch | patch -p1 -d $(FILE_DIR)
+ toolchain/patch-kernel.sh $(FILE_DIR) package/file/ file\*.patch
touch $(FILE_DIR)/.unpacked
$(FILE_DIR)/.configured: $(FILE_DIR)/.unpacked
--- /dev/null
+--- file-4.10/magic/Makefile.in.orig 2004-07-24 14:38:55.000000000 -0600
++++ file-4.10/magic/Makefile.in 2004-07-28 12:16:23.000000000 -0600
+@@ -490,10 +490,10 @@
+ done >> $@
+
+ magic.mgc: magic
+- $(top_builddir)/src/file -C -m magic
++ /usr/bin/file -C -m magic
+
+ magic.mime.mgc: magic.mime
+- $(top_builddir)/src/file -C -m $(srcdir)/magic.mime
++ /usr/bin/file -C -m $(srcdir)/magic.mime
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+--- file-4.10/magic/Makefile.am.orig 2004-07-24 14:38:55.000000000 -0600
++++ file-4.10/magic/Makefile.am 2004-07-28 12:18:15.000000000 -0600
+@@ -16,10 +16,10 @@
+ done >> $@
+
+ magic.mgc: magic
+- $(top_builddir)/src/file -C -m magic
++ /usr/bin/file -C -m magic
+
+ magic.mime.mgc: magic.mime
+- $(top_builddir)/src/file -C -m $(srcdir)/magic.mime
++ /usr/bin/file -C -m $(srcdir)/magic.mime
+
+ magic_FRAGMENTS = \
+ Magdir/acorn \
$(FLEX_DIR)/.unpacked: $(DL_DIR)/$(FLEX_SOURCE) $(DL_DIR)/$(FLEX_PATCH)
$(FLEX_CAT) $(DL_DIR)/$(FLEX_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- #$(SOURCE_DIR)/patch-kernel.sh $(FLEX_DIR) $(DL_DIR) $(FLEX_PATCH)
+ #toolchain/patch-kernel.sh $(FLEX_DIR) $(DL_DIR) $(FLEX_PATCH)
touch $(FLEX_DIR)/.unpacked
$(FLEX_DIR)/.configured: $(FLEX_DIR)/.unpacked
HOTPLUG_SOURCE=diethotplug-0.4.tar.gz
HOTPLUG_SITE=http://aleron.dl.sourceforge.net/sourceforge/linux-hotplug
HOTPLUG_DIR=$(BUILD_DIR)/diethotplug-0.4
-HOTPLUG_PATCH=$(SOURCE_DIR)/hotplug.patch
$(DL_DIR)/$(HOTPLUG_SOURCE):
$(WGET) -P $(DL_DIR) $(HOTPLUG_SITE)/$(HOTPLUG_SOURCE)
-$(HOTPLUG_DIR): $(DL_DIR)/$(HOTPLUG_SOURCE) $(HOTPLUG_PATCH)
+$(HOTPLUG_DIR): $(DL_DIR)/$(HOTPLUG_SOURCE)
zcat $(DL_DIR)/$(HOTPLUG_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- cat $(HOTPLUG_PATCH) | patch -p1 -d $(HOTPLUG_DIR)
+ toolchain/patch-kernel.sh $(HOTPLUG_DIR) package/hotplug/ hotplug\*.patch
$(HOTPLUG_DIR)/hotplug: $(HOTPLUG_DIR)
$(MAKE) CROSS=$(TARGET_CROSS) DEBUG=false KLIBC=false \
--- /dev/null
+diff -urN diethotplug-0.4.orig/pci.c diethotplug-0.4/pci.c
+--- diethotplug-0.4.orig/pci.c Wed Jan 9 13:57:29 2002
++++ diethotplug-0.4/pci.c Wed Jan 30 22:35:24 2002
+@@ -68,8 +68,8 @@
+ }
+
+ /* check that the class matches */
+- class_temp = pci_module_map[i].class_mask & pci_class;
+- if (pci_module_map[i].class != class_temp) {
++ class_temp = (pci_module_map[i].class ^ pci_class) & pci_module_map[i].class_mask;
++ if (class_temp != 0) {
+ dbg ("class mask check failed %x != %x",
+ pci_module_map[i].class, class_temp);
+ continue;
+--- diethotplug-0.4/Makefile.orig Wed Jan 9 14:28:05 2002
++++ diethotplug-0.4/Makefile Mon Jul 8 07:29:00 2002
+@@ -135,13 +135,13 @@
+
+ # Rules on how to create the generated header files
+ usb_modules.h:
+- perl convert_usb.pl < /lib/modules/$(KERNEL_VERSION)/modules.usbmap > $@
++ perl convert_usb.pl < $(TARGET_DIR)/lib/modules/$(KERNEL_VERSION)/modules.usbmap > $@
+
+ pci_modules.h:
+- perl convert_pci.pl < /lib/modules/$(KERNEL_VERSION)/modules.pcimap > $@
++ perl convert_pci.pl < $(TARGET_DIR)/lib/modules/$(KERNEL_VERSION)/modules.pcimap > $@
+
+ ieee1394_modules.h:
+- perl convert_ieee1394.pl < /lib/modules/$(KERNEL_VERSION)/modules.ieee1394map > $@
++ perl convert_ieee1394.pl < $(TARGET_DIR)/lib/modules/$(KERNEL_VERSION)/modules.ieee1394map > $@
+
+ hotplug_version.h:
+ @echo \#define HOTPLUG_VERSION \"$(VERSION)\" > $@
$(IPTABLES_BUILD_DIR)/.configured: $(IPTABLES_BUILD_DIR)/.unpacked
# Allow patches. Needed for openwrt for instance.
- $(SOURCE_DIR)/patch-kernel.sh $(IPTABLES_BUILD_DIR) $(SOURCE_DIR) iptables-\*.patch
+ toolchain/patch-kernel.sh $(IPTABLES_BUILD_DIR) package/iptables/ iptables-\*.patch
#
$(SED) "s;\[ -f /usr/include/netinet/ip6.h \];grep -q '__UCLIBC_HAS_IPV6__ 1' \
$(BUILD_DIR)/uClibc/include/bits/uClibc_config.h;" $(IPTABLES_BUILD_DIR)/Makefile
+++ /dev/null
-#############################################################
-#
-# mtd provides us with mkfs.jffs2, to target JFFS2 filesystems
-#
-#############################################################
-
-MTD_DIR:=$(BUILD_DIR)/mtd-20011217
-MTD_SOURCE=mtd_20011217.orig.tar.gz
-MTD_SITE=http://ftp.debian.org/debian/pool/main/m/mtd
-MKFS_JFFS2=$(shell which mkfs.jffs2 2>/dev/null || echo $(MTD_DIR)/util/mkfs.jffs2)
-
-$(DL_DIR)/$(MTD_SOURCE):
- $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
-
-$(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
- zcat $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- touch $(MTD_DIR)/.unpacked
-
-$(MTD_DIR)/util/mkfs.jffs2: $(MTD_DIR)/.unpacked
- CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_DIR)/util
-
-mtd: $(MKFS_JFFS2)
-
-
-#############################################################
-#
-# Build the jffs2 root filesystem image
-#
-#############################################################
-
-jffs2root: mtd
- #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
- -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
- @rm -rf $(TARGET_DIR)/usr/man
- @rm -rf $(TARGET_DIR)/usr/info
- $(MKFS_JFFS2) --pad --little-endian --squash -e 0x20000 \
- -D $(SOURCE_DIR)/device_table.txt -d $(TARGET_DIR) \
- -o $(IMAGE)
-
-jffs2root-source: $(DL_DIR)/$(MTD_SOURCE)
-
-jffs2root-clean:
- -$(MAKE) -C $(MTD_DIR) clean
-
-jffs2root-dirclean:
- rm -rf $(MTD_DIR)
-
-
-
$(LIBFLOAT_CAT) $(DL_DIR)/$(LIBFLOAT_SOURCE) | tar -C $(BUILD_DIR) -xvf -
# Remove the binary files distributed with the the package.
make -C $(LIBFLOAT_DIR) clean
- $(SOURCE_DIR)/patch-kernel.sh $(LIBFLOAT_DIR) $(DL_DIR) $(LIBFLOAT_PATCH)
- $(SOURCE_DIR)/patch-kernel.sh $(LIBFLOAT_DIR) $(SOURCE_DIR) libfloat.patch
+ toolchain/patch-kernel.sh $(LIBFLOAT_DIR) $(DL_DIR) $(LIBFLOAT_PATCH)
+ toolchain/patch-kernel.sh $(LIBFLOAT_DIR) package/libfloat/ libfloat\*.patch
touch $(LIBFLOAT_DIR)/.unpacked
$(LIBFLOAT_DIR)/libfloat.so.1: $(LIBFLOAT_DIR)/.unpacked $(TARGET_CC)
--- /dev/null
+diff -urN libfloat-dist/Makefile libfloat/Makefile
+--- libfloat-dist/Makefile 2003-10-26 00:33:45.000000000 -0500
++++ libfloat/Makefile 2003-10-26 01:07:26.000000000 -0500
+@@ -1,7 +1,7 @@
+ # Makefile for the Linux soft-float library
+
+-CC=gcc -O2 -freg-struct-return -fomit-frame-pointer -D__LIBFLOAT__
+-#CC=gcc -g -O2 -freg-struct-return -D__LIBFLOAT__
++CFLAGS= -O2 -freg-struct-return -fomit-frame-pointer -D__LIBFLOAT__ -msoft-float
++LIBGCC=$(shell $(CC) -print-libgcc-file-name)
+ AR=ar
+
+ all: libfloat.a libfloat.so.1
+@@ -12,24 +11,24 @@
+
+ libfloat.so.1: softfloat.os fplib_glue.os
+ rm -f libfloat.so.1
+- gcc -shared -Wl,-soname,libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1
++ $(LD) -shared -soname=libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1 $(LIBGCC)
+
+ softfloat.o: softfloat/bits64/softfloat.c
+- $(CC) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
++ $(CC) $(CFLAGS) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
+
+ fplib_glue.o: fplib_glue.S
+- $(CC) -c -o fplib_glue.o fplib_glue.S
++ $(CC) $(CFLAGS) -c -o fplib_glue.o fplib_glue.S
+
+ softfloat.os: softfloat/bits64/softfloat.c
+- $(CC) -fpic -c -o softfloat.os -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
++ $(CC) $(CFLAGS) -fpic -c -o softfloat.os -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
+
+ fplib_glue.os: fplib_glue.S
+- $(CC) -fpic -c -o fplib_glue.os fplib_glue.S
++ $(CC) $(CFLAGS) -fpic -c -o fplib_glue.os fplib_glue.S
+
+ install: libfloat.a libfloat.so.1
+ cp -a libfloat.a $(DESTDIR)/usr/lib
+- cp -a libfloat.so.1 $(DESTDIR)/usr/lib
+- cd $(DESTDIR)/usr/lib; ln -s libfloat.so.1 libfloat.so
++ cp -a libfloat.so.1 $(DESTDIR)/lib
++ cd $(DESTDIR)/lib; ln -s libfloat.so.1 libfloat.so
+ #ldconfig
+
+ clean:
LIBGLIB12_CAT:=zcat
LIBGLIB12_DIR:=$(BUILD_DIR)/glib-1.2.10
LIBGLIB12_BINARY:=libglib.a
-LIBGLIB12_PATCH:=$(SOURCE_DIR)/libglib_configure_1.2.10.bz2
+LIBGLIB12_PATCH:=libglib_configure_1.2.10.bz2
$(DL_DIR)/$(LIBGLIB12_SOURCE):
$(LIBGLIB12_DIR)/.unpacked: $(DL_DIR)/$(LIBGLIB12_SOURCE)
$(LIBGLIB12_CAT) $(DL_DIR)/$(LIBGLIB12_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- bzcat $(LIBGLIB12_PATCH) | patch -p1 -d $(LIBGLIB12_DIR)
+ toolchain/patch-kernel.sh $(LIBGLIB12_DIR) package/libglib/ $(LIBGLIB12_PATCH)
touch $(LIBGLIB12_DIR)/.unpacked
$(LIBGLIB12_DIR)/.configured: $(LIBGLIB12_DIR)/.unpacked
--- /dev/null
+#
+# Automatically generated make config: don't edit
+#
+CONFIG_X86=y
+# CONFIG_SBUS is not set
+CONFIG_UID16=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_KMOD=y
+
+#
+# Processor type and features
+#
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+CONFIG_MELAN=y
+# CONFIG_MCRUSOE is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP2 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_XADD=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_X86_L1_CACHE_SHIFT=4
+CONFIG_X86_USE_STRING_486=y
+CONFIG_X86_ALIGNMENT_16=y
+CONFIG_X86_F00F_WORKS_OK=y
+# CONFIG_X86_MCE is not set
+# CONFIG_TOSHIBA is not set
+# CONFIG_I8K is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_MSR is not set
+# CONFIG_X86_CPUID is not set
+# CONFIG_EDD is not set
+CONFIG_NOHIGHMEM=y
+# CONFIG_HIGHMEM4G is not set
+# CONFIG_HIGHMEM64G is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_MATH_EMULATION=y
+CONFIG_MTRR=y
+# CONFIG_SMP is not set
+# CONFIG_X86_UP_APIC is not set
+# CONFIG_X86_UP_IOAPIC is not set
+# CONFIG_X86_TSC_DISABLE is not set
+
+#
+# General setup
+#
+CONFIG_NET=y
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_ISA=y
+CONFIG_PCI_NAMES=y
+CONFIG_EISA=y
+CONFIG_MCA=y
+CONFIG_HOTPLUG=y
+
+#
+# PCMCIA/CardBus support
+#
+CONFIG_PCMCIA=m
+CONFIG_CARDBUS=y
+CONFIG_TCIC=y
+CONFIG_I82092=y
+CONFIG_I82365=y
+
+#
+# PCI Hotplug Support
+#
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+CONFIG_KCORE_ELF=y
+# CONFIG_KCORE_AOUT is not set
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_OOM_KILLER is not set
+CONFIG_PM=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+CONFIG_APM_RTC_IS_GMT=y
+CONFIG_APM_ALLOW_INTS=y
+CONFIG_APM_REAL_MODE_POWER_OFF=y
+
+#
+# ACPI Support
+#
+# CONFIG_ACPI is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play configuration
+#
+# CONFIG_PNP is not set
+# CONFIG_ISAPNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD is not set
+# CONFIG_BLK_DEV_PS2 is not set
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+# CONFIG_BLK_CPQ_DA is not set
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_CISS_SCSI_TAPE is not set
+# CONFIG_CISS_MONITOR_THREAD is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_BLK_STATS is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID5 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_BLK_DEV_LVM is not set
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_NETLINK_DEV=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_FILTER=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_FWMARK=y
+CONFIG_IP_ROUTE_NAT=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_TOS=y
+# CONFIG_IP_ROUTE_VERBOSE is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+CONFIG_INET_ECN=y
+# CONFIG_SYN_COOKIES is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=y
+CONFIG_IP_NF_FTP=y
+# CONFIG_IP_NF_AMANDA is not set
+CONFIG_IP_NF_TFTP=y
+CONFIG_IP_NF_IRC=y
+CONFIG_IP_NF_QUEUE=y
+CONFIG_IP_NF_IPTABLES=y
+CONFIG_IP_NF_MATCH_LIMIT=y
+CONFIG_IP_NF_MATCH_MAC=y
+CONFIG_IP_NF_MATCH_PKTTYPE=y
+CONFIG_IP_NF_MATCH_MARK=y
+CONFIG_IP_NF_MATCH_MULTIPORT=y
+CONFIG_IP_NF_MATCH_TOS=y
+CONFIG_IP_NF_MATCH_RECENT=y
+CONFIG_IP_NF_MATCH_ECN=y
+CONFIG_IP_NF_MATCH_DSCP=y
+CONFIG_IP_NF_MATCH_AH_ESP=y
+CONFIG_IP_NF_MATCH_LENGTH=y
+CONFIG_IP_NF_MATCH_TTL=y
+CONFIG_IP_NF_MATCH_TCPMSS=y
+CONFIG_IP_NF_MATCH_HELPER=y
+CONFIG_IP_NF_MATCH_STATE=y
+CONFIG_IP_NF_MATCH_CONNTRACK=y
+CONFIG_IP_NF_MATCH_UNCLEAN=y
+CONFIG_IP_NF_MATCH_OWNER=y
+CONFIG_IP_NF_FILTER=y
+CONFIG_IP_NF_TARGET_REJECT=y
+CONFIG_IP_NF_TARGET_MIRROR=y
+CONFIG_IP_NF_NAT=y
+CONFIG_IP_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_REDIRECT=y
+CONFIG_IP_NF_NAT_LOCAL=y
+CONFIG_IP_NF_NAT_SNMP_BASIC=y
+CONFIG_IP_NF_NAT_IRC=y
+CONFIG_IP_NF_NAT_FTP=y
+CONFIG_IP_NF_NAT_TFTP=y
+CONFIG_IP_NF_MANGLE=y
+CONFIG_IP_NF_TARGET_TOS=y
+CONFIG_IP_NF_TARGET_ECN=y
+CONFIG_IP_NF_TARGET_DSCP=y
+CONFIG_IP_NF_TARGET_MARK=y
+CONFIG_IP_NF_TARGET_LOG=y
+CONFIG_IP_NF_TARGET_ULOG=y
+CONFIG_IP_NF_TARGET_TCPMSS=y
+CONFIG_IP_NF_ARPTABLES=y
+CONFIG_IP_NF_ARPFILTER=y
+CONFIG_IP_NF_ARP_MANGLE=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+# CONFIG_KHTTPD is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+CONFIG_IPV6_SCTP__=y
+# CONFIG_IP_SCTP is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_ATM is not set
+# CONFIG_VLAN_8021Q is not set
+
+#
+#
+#
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+
+#
+# Appletalk devices
+#
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DECNET is not set
+CONFIG_BRIDGE=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_LLC is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_NET_FASTROUTE is not set
+# CONFIG_NET_HW_FLOWCONTROL is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBQ=y
+CONFIG_NET_SCH_HTB=y
+CONFIG_NET_SCH_CSZ=y
+CONFIG_NET_SCH_HFSC=y
+CONFIG_NET_SCH_PRIO=y
+CONFIG_NET_SCH_RED=y
+CONFIG_NET_SCH_SFQ=y
+CONFIG_NET_SCH_TEQL=y
+CONFIG_NET_SCH_TBF=y
+CONFIG_NET_SCH_GRED=y
+CONFIG_NET_SCH_DELAY=y
+CONFIG_NET_SCH_DSMARK=y
+CONFIG_NET_SCH_INGRESS=y
+CONFIG_NET_QOS=y
+CONFIG_NET_ESTIMATOR=y
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_TCINDEX=y
+CONFIG_NET_CLS_ROUTE4=y
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=y
+CONFIG_NET_CLS_U32=y
+CONFIG_NET_CLS_RSVP=y
+CONFIG_NET_CLS_RSVP6=y
+CONFIG_NET_CLS_POLICE=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+# CONFIG_PHONE_IXJ is not set
+# CONFIG_PHONE_IXJ_PCMCIA is not set
+
+#
+# ATA/IDE/MFM/RLL support
+#
+CONFIG_IDE=y
+
+#
+# IDE, ATA and ATAPI Block devices
+#
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_HD_IDE is not set
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_IDEDISK=y
+CONFIG_IDEDISK_MULTI_MODE=y
+CONFIG_IDEDISK_STROKE=y
+CONFIG_BLK_DEV_IDECS=m
+# CONFIG_BLK_DEV_IDECD is not set
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+# CONFIG_BLK_DEV_CMD640 is not set
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+# CONFIG_BLK_DEV_ISAPNP is not set
+CONFIG_BLK_DEV_IDEPCI=y
+CONFIG_BLK_DEV_GENERIC=y
+CONFIG_IDEPCI_SHARE_IRQ=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+CONFIG_IDEDMA_PCI_AUTO=y
+# CONFIG_IDEDMA_ONLYDISK is not set
+CONFIG_BLK_DEV_IDEDMA=y
+CONFIG_IDEDMA_PCI_WIP=y
+# CONFIG_BLK_DEV_ADMA100 is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_WDC_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+# CONFIG_BLK_DEV_ATIIXP is not set
+# CONFIG_AMD74XX_OVERRIDE is not set
+# CONFIG_BLK_DEV_CMD64X is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_HPT34X_AUTODMA is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_PDC202XX_BURST is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_RZ1000 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SIS5513 is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_CHIPSETS is not set
+CONFIG_IDEDMA_AUTO=y
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_DMA_NONPCI is not set
+# CONFIG_BLK_DEV_ATARAID is not set
+# CONFIG_BLK_DEV_ATARAID_PDC is not set
+# CONFIG_BLK_DEV_ATARAID_HPT is not set
+# CONFIG_BLK_DEV_ATARAID_MEDLEY is not set
+# CONFIG_BLK_DEV_ATARAID_SII is not set
+
+#
+# SCSI support
+#
+# CONFIG_SCSI is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+# CONFIG_FUSION_BOOT is not set
+# CONFIG_FUSION_ISENSE is not set
+# CONFIG_FUSION_CTL is not set
+# CONFIG_FUSION_LAN is not set
+
+#
+# IEEE 1394 (FireWire) support (EXPERIMENTAL)
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+# CONFIG_I2O_PCI is not set
+# CONFIG_I2O_BLOCK is not set
+# CONFIG_I2O_LAN is not set
+# CONFIG_I2O_SCSI is not set
+# CONFIG_I2O_PROC is not set
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+CONFIG_DUMMY=m
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+CONFIG_TUN=y
+# CONFIG_ETHERTAP is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+# CONFIG_SUNLANCE is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_LANCE is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_SKMC is not set
+# CONFIG_NE2_MCA is not set
+# CONFIG_IBMLANA is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_AC3200 is not set
+# CONFIG_APRICOT is not set
+# CONFIG_B44 is not set
+# CONFIG_CS89x0 is not set
+# CONFIG_TULIP is not set
+# CONFIG_DE4X5 is not set
+# CONFIG_DGRS is not set
+# CONFIG_DM9102 is not set
+# CONFIG_EEPRO100 is not set
+# CONFIG_EEPRO100_PIO is not set
+# CONFIG_E100 is not set
+# CONFIG_LNE390 is not set
+# CONFIG_FEALNX is not set
+CONFIG_NATSEMI=y
+# CONFIG_NE2K_PCI is not set
+# CONFIG_FORCEDETH is not set
+# CONFIG_NE3210 is not set
+# CONFIG_ES3210 is not set
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_SUNDANCE_MMIO is not set
+# CONFIG_TLAN is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_RHINE_MMIO is not set
+# CONFIG_WINBOND_840 is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_MYRI_SBUS is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_STRIP is not set
+# CONFIG_WAVELAN is not set
+# CONFIG_ARLAN is not set
+# CONFIG_AIRONET4500 is not set
+# CONFIG_AIRONET4500_NONCS is not set
+# CONFIG_AIRONET4500_PROC is not set
+# CONFIG_AIRO is not set
+CONFIG_HERMES=m
+CONFIG_HOSTAP=m
+# CONFIG_PLX_HERMES is not set
+# CONFIG_TMD_HERMES is not set
+# CONFIG_PCI_HERMES is not set
+# CONFIG_HOSTAP_PLX is not set
+# CONFIG_HOSTAP_PCI is not set
+
+#
+# Wireless Pcmcia cards support
+#
+CONFIG_PCMCIA_HERMES=m
+CONFIG_HOSTAP_CS=m
+# CONFIG_AIRO_CS is not set
+# CONFIG_PCMCIA_ATMEL is not set
+CONFIG_NET_WIRELESS=y
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+# CONFIG_NET_FC is not set
+# CONFIG_RCPCI is not set
+# CONFIG_SHAPER is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+
+#
+# PCMCIA network device support
+#
+# CONFIG_NET_PCMCIA is not set
+
+#
+# Amateur Radio support
+#
+# CONFIG_HAMRADIO is not set
+
+#
+# IrDA (infrared) support
+#
+# CONFIG_IRDA is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Input core support
+#
+# CONFIG_INPUT is not set
+# CONFIG_INPUT_KEYBDEV is not set
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_UINPUT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_SERIAL=y
+CONFIG_SERIAL_CONSOLE=y
+# CONFIG_SERIAL_EXTENDED is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNIX98_PTY_COUNT=256
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+# CONFIG_MOUSE is not set
+
+#
+# Joysticks
+#
+# CONFIG_INPUT_GAMEPORT is not set
+
+#
+# Input core support is needed for gameports
+#
+
+#
+# Input core support is needed for joysticks
+#
+# CONFIG_QIC02_TAPE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMI_PANIC_EVENT is not set
+# CONFIG_IPMI_DEVICE_INTERFACE is not set
+# CONFIG_IPMI_KCS is not set
+# CONFIG_IPMI_WATCHDOG is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_SCx200 is not set
+# CONFIG_SCx200_GPIO is not set
+CONFIG_AMD_RNG=y
+# CONFIG_INTEL_RNG is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_AMD_PM768 is not set
+# CONFIG_NVRAM is not set
+CONFIG_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_SONYPI is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_FTAPE is not set
+# CONFIG_AGP is not set
+
+#
+# Direct Rendering Manager (XFree86 DRI support)
+#
+# CONFIG_DRM is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_PCMCIA_SERIAL_CS is not set
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_MWAVE is not set
+# CONFIG_OBMOUSE is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# File systems
+#
+# CONFIG_QUOTA is not set
+# CONFIG_QFMT_V2 is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_REISERFS_CHECK is not set
+# CONFIG_REISERFS_PROC_INFO is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_ADFS_FS_RW is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+CONFIG_EXT3_FS=y
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+# CONFIG_UMSDOS_FS is not set
+CONFIG_VFAT_FS=y
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_TMPFS=y
+CONFIG_RAMFS=y
+# CONFIG_ISO9660_FS is not set
+# CONFIG_JOLIET is not set
+# CONFIG_ZISOFS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_NTFS_FS is not set
+# CONFIG_NTFS_RW is not set
+# CONFIG_HPFS_FS is not set
+CONFIG_PROC_FS=y
+# CONFIG_DEVFS_FS is not set
+# CONFIG_DEVFS_MOUNT is not set
+# CONFIG_DEVFS_DEBUG is not set
+CONFIG_DEVPTS_FS=y
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX4FS_RW is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_EXT2_FS=y
+# CONFIG_SYSV_FS is not set
+# CONFIG_UDF_FS is not set
+# CONFIG_UDF_RW is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_XFS_QUOTA is not set
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_TRACE is not set
+# CONFIG_XFS_DEBUG is not set
+
+#
+# Network File Systems
+#
+# CONFIG_CODA_FS is not set
+# CONFIG_INTERMEZZO_FS is not set
+# CONFIG_NFS_FS is not set
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_ROOT_NFS is not set
+# CONFIG_NFSD is not set
+# CONFIG_NFSD_V3 is not set
+# CONFIG_NFSD_TCP is not set
+# CONFIG_SUNRPC is not set
+# CONFIG_LOCKD is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+# CONFIG_NCPFS_NFS_NS is not set
+# CONFIG_NCPFS_OS2_NS is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+# CONFIG_NCPFS_NLS is not set
+# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_ZISOFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_SMB_NLS is not set
+CONFIG_NLS=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Console drivers
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_VIDEO_SELECT is not set
+# CONFIG_MDA_CONSOLE is not set
+
+#
+# Frame-buffer support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+# CONFIG_USB is not set
+
+#
+# Support for USB gadgets
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# Bluetooth support
+#
+# CONFIG_BLUEZ is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=0
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_OPTIMIZE_FOR_SIZE=y
+CONFIG_CRC32=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+# CONFIG_FW_LOADER is not set
LINUX_DIR=$(BUILD_DIR)/linux-$(LINUX_VERSION)
LINUX_SOURCE=linux-$(DOWNLOAD_LINUX_VERSION).tar.bz2
LINUX_SITE=http://www.kernel.org/pub/linux/kernel/v2.4
-LINUX_KCONFIG=$(SOURCE_DIR)/linux.config
+LINUX_KCONFIG=package/linux/linux.config
LINUX_KERNEL=$(BUILD_DIR)/buildroot-kernel
# Used by pcmcia-cs and others
LINUX_SOURCE_DIR=$(LINUX_DIR)
# Rename the dir from the downloaded version to the AFTER patch version
mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX_VERSION) $(BUILD_DIR)/linux-$(LINUX_VERSION)
endif
- mkdir -p $(SOURCE_DIR)/kernel-patches
- $(SOURCE_DIR)/patch-kernel.sh $(LINUX_DIR) $(SOURCE_DIR)/kernel-patches
+ mkdir -p package/linux/kernel-patches
+ toolchain/patch-kernel.sh $(LINUX_DIR) package/linux/kernel-patches
-(cd $(TOOL_BUILD_DIR); ln -sf $(LINUX_DIR) linux)
touch $(LINUX_DIR)/.unpacked
LTP_TESTSUITE_SITE:=http://aleron.dl.sourceforge.net/sourceforge/ltp
LTP_TESTSUITE_CAT:=zcat
LTP_TESTSUITE_DIR:=$(BUILD_DIR)/ltp-full-20040506
-LTP_TESTSUITE_PATCH:=$(SOURCE_DIR)/ltp-testsuite.patch
$(DL_DIR)/$(LTP_TESTSUITE_SOURCE):
$(LTP_TESTSUITE_DIR)/.unpacked: $(DL_DIR)/$(LTP_TESTSUITE_SOURCE)
$(LTP_TESTSUITE_CAT) $(DL_DIR)/$(LTP_TESTSUITE_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- cat $(LTP_TESTSUITE_PATCH) | patch -p1 -d $(LTP_TESTSUITE_DIR)
+ toolchain/patch-kernel.sh $(LTP_TESTSUITE_DIR) package/ltp-testsuite/ ltp-testsuite-\*.patch
touch $(LTP_TESTSUITE_DIR)/.unpacked
$(LTP_TESTSUITE_DIR)/ltp-testsuite: $(LTP_TESTSUITE_DIR)/.unpacked
--- /dev/null
+diff -urN ltp-full-20040506.orig/testcases/kernel/syscalls/fmtmsg/Makefile ltp-full-20040506/testcases/kernel/syscalls/fmtmsg/Makefile
+--- ltp-full-20040506.orig/testcases/kernel/syscalls/fmtmsg/Makefile 2003-03-04 09:15:27.000000000 -0700
++++ ltp-full-20040506/testcases/kernel/syscalls/fmtmsg/Makefile 2004-05-12 14:03:56.000000000 -0600
+@@ -24,7 +24,7 @@
+ LOADLIBES+= -L../../../../lib -lltp
+
+ SRCS=$(wildcard *.c)
+-TARGETS=$(patsubst %.c,%,$(SRCS))
++TARGETS=#$(patsubst %.c,%,$(SRCS))
+
+ all: $(TARGETS)
+
+diff -urN ltp-full-20040506.orig/testcases/kernel/syscalls/profil/Makefile ltp-full-20040506/testcases/kernel/syscalls/profil/Makefile
+--- ltp-full-20040506.orig/testcases/kernel/syscalls/profil/Makefile 2003-03-04 09:16:26.000000000 -0700
++++ ltp-full-20040506/testcases/kernel/syscalls/profil/Makefile 2004-05-12 14:03:56.000000000 -0600
+@@ -23,7 +23,7 @@
+ LOADLIBES+= -L../../../../lib -lltp
+
+ SRCS=$(wildcard *.c)
+-TARGETS=$(patsubst %.c,%,$(SRCS))
++TARGETS=#$(patsubst %.c,%,$(SRCS))
+
+ all: $(TARGETS)
+
+diff -urN ltp-full-20040506.orig/testcases/kernel/syscalls/swapon/swapon02.c ltp-full-20040506/testcases/kernel/syscalls/swapon/swapon02.c
+--- ltp-full-20040506.orig/testcases/kernel/syscalls/swapon/swapon02.c 2004-04-23 12:13:20.000000000 -0600
++++ ltp-full-20040506/testcases/kernel/syscalls/swapon/swapon02.c 2004-05-12 23:02:50.000000000 -0600
+@@ -85,9 +85,7 @@
+ #include <sys/swap.h>
+ #include <asm/page.h>
+ #include <asm/atomic.h>
+-#ifdef OLDER_DISTRO_RELEASE
+-#include <linux/swap.h>
+-#endif
++#define MAX_SWAPFILES 32
+ #include <fcntl.h>
+ #include <pwd.h>
+ #include <string.h>
+@@ -96,10 +94,6 @@
+ #include "test.h"
+ #include "usctest.h"
+
+-#ifndef OLDER_DISTRO_RELEASE
+-#define MAX_SWAPFILES 32
+-#endif
+-
+ static void setup();
+ static void cleanup();
+ static int setup01();
--- /dev/null
+For some reason the lzo autoconf script uses a local macro that does
+a test for cross-compiles, and assumes that if the build target name
+and the host target name are the same that --host was not specified to
+the configure script. In the uClibc buildroot, this is not the case.
+
+--- lzo-1.08/aclocal.m4 2002-07-12 18:31:52.000000000 -0700
++++ lzo-1.08/aclocal.m4.new 2004-03-10 15:32:42.000000000 -0700
+@@ -205,12 +205,6 @@
+ [
+ AC_REQUIRE([AC_PROG_CC])
+
+-if test "X$cross_compiling" = Xyes; then
+- if test "X$build" = "X$host"; then
+- AC_MSG_ERROR([you are cross compiling - please use the \`--host=' option])
+- fi
+-fi
+-
+ ])
+
+
+--- lzo-1.08/configure-dist 2004-03-11 02:18:28.000000000 -0600
++++ lzo-1.08/configure 2004-03-11 02:19:16.000000000 -0600
+@@ -2282,13 +2282,13 @@
+
+
+
+-if test "X$cross_compiling" = Xyes; then
+- if test "X$build" = "X$host"; then
+- { { echo "$as_me:$LINENO: error: you are cross compiling - please use the \`--host=' option" >&5
+-echo "$as_me: error: you are cross compiling - please use the \`--host=' option" >&2;}
+- { (exit 1); exit 1; }; }
+- fi
+-fi
++#if test "X$cross_compiling" = Xyes; then
++# if test "X$build" = "X$host"; then
++# { { echo "$as_me:$LINENO: error: you are cross compiling - please use the \`--host=' option" >&5
++#echo "$as_me: error: you are cross compiling - please use the \`--host=' option" >&2;}
++# { (exit 1); exit 1; }; }
++# fi
++#fi
+
+
+
#LZO_SITE:=http://www.oberhumer.com/opensource/lzo/download
LZO_DIR:=$(BUILD_DIR)/lzo-1.08
LZO_CAT:=zcat
-LZO_PATCH:=$(SOURCE_DIR)/lzo-cross-compile.patch
$(DL_DIR)/$(LZO_SOURCE):
$(WGET) -P $(DL_DIR) $(LZO_SITE)/$(LZO_SOURCE)
$(LZO_DIR)/.unpacked: $(DL_DIR)/$(LZO_SOURCE)
$(LZO_CAT) $(DL_DIR)/$(LZO_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- cat $(LZO_PATCH) | patch -p1 -d $(LZO_DIR)
+ toolchain/patch-kernel.sh $(LZO_DIR) package/lzo/ lzo-\*.patch
touch $(LZO_DIR)/.unpacked
LZO_CONFIG_SHARED:=--disable-shared
--- /dev/null
+Patches from Kevin P. Fleming <kpfleming@backtobasicsmgmt.com>.
+
+--- mrouted-3.9-beta3.orig/main.c~ 2004-03-10 19:00:38.000000000 -0700
++++ mrouted-3.9-beta3.orig/main.c 2004-03-10 19:02:33.000000000 -0700
+@@ -1001,10 +1001,8 @@
+ thyme->tm_min, thyme->tm_sec, now.tv_usec / 1000, msg);
+ if (syserr == 0)
+ fprintf(stderr, "\n");
+- else if (syserr < sys_nerr)
+- fprintf(stderr, ": %s\n", sys_errlist[syserr]);
+ else
+- fprintf(stderr, ": errno %d\n", syserr);
++ fprintf(stderr, ": %s\n", strerror(syserr));
+ }
+
+ /*
+--- mrouted-3.9-beta3.orig/mrinfo.c~ 1998-02-28 20:05:20.000000000 -0700
++++ mrouted-3.9-beta3.orig/mrinfo.c 2004-03-10 19:01:49.000000000 -0700
+@@ -159,10 +159,8 @@
+ vfprintf(stderr, fmt, ap);
+ if (syserr == 0)
+ fprintf(stderr, "\n");
+- else if (syserr < sys_nerr)
+- fprintf(stderr, ": %s\n", sys_errlist[syserr]);
+ else
+- fprintf(stderr, ": errno %d\n", syserr);
++ fprintf(stderr, ": %s\n", strerror(syserr));
+ }
+
+ if (severity <= LOG_ERR)
+--- mrouted-3.9-beta3.orig/mapper.c~ 1998-01-05 18:57:47.000000000 -0700
++++ mrouted-3.9-beta3.orig/mapper.c 2004-03-10 19:02:04.000000000 -0700
+@@ -197,10 +197,8 @@
+ vfprintf(stderr, fmt, ap);
+ if (syserr == 0)
+ fprintf(stderr, "\n");
+- else if (syserr < sys_nerr)
+- fprintf(stderr, ": %s\n", sys_errlist[syserr]);
+ else
+- fprintf(stderr, ": errno %d\n", syserr);
++ fprintf(stderr, ": %s\n", strerror(syserr));
+ }
+
+ if (severity <= LOG_ERR)
MROUTED_SITE:=http://ftp.debian.org/debian/pool/non-free/m/mrouted
MROUTED_DIR:=$(BUILD_DIR)/mrouted-3.9-beta3.orig
MROUTED_CAT:=zcat
-#MROUTED_PATCH:=$(SOURCE_DIR)/mrouted_3.9-beta3-1.1.diff
MROUTED_PATCH:=mrouted_3.9-beta3-1.1.diff.gz
MROUTED_BINARY:=mrouted
MROUTED_TARGET_BINARY:=usr/sbin/mrouted
$(MROUTED_DIR)/.unpacked: mrouted-source
$(MROUTED_CAT) $(DL_DIR)/$(MROUTED_SOURCE) | tar -C $(BUILD_DIR) -xvf -
$(MROUTED_CAT) $(DL_DIR)/$(MROUTED_PATCH) | patch -p1 -d $(MROUTED_DIR)
- $(SOURCE_DIR)/patch-kernel.sh $(MROUTED_DIR) $(SOURCE_DIR) mrouted-\*.patch
+ toolchain/patch-kernel.sh $(MROUTED_DIR) package/mrouted/ mrouted-\*.patch
touch $(MROUTED_DIR)/.unpacked
$(MROUTED_DIR)/$(MROUTED_BINARY): $(MROUTED_DIR)/.unpacked
--- /dev/null
+--- ncurses-5.2/ncurses/Makefile.in.orig 2000-10-14 17:55:35.000000000 -0500
++++ ncurses-5.2/ncurses/Makefile.in 2004-08-09 11:34:13.000000000 -0500
+@@ -85,7 +85,7 @@
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+ HOSTCC = @BUILD_CC@
+-HOSTCCFLAGS = @CFLAGS@ $(CPPFLAGS)
++HOSTCCFLAGS = $(CPPFLAGS)
+ HOSTLDFLAGS = @LDFLAGS@ @LIBS@
+
+ CFLAGS_LIBTOOL = $(CCFLAGS)
#
#############################################################
# Copyright (C) 2002 by Ken Restivo <ken@246gt.com>
-# $Id: ncurses.mk,v 1.1 2004/10/09 01:24:04 andersen Exp $
+# $Id: ncurses.mk,v 1.2 2004/10/09 02:48:53 andersen Exp $
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as
#use the local tic and not whatever the build system was going to find.
$(SED) 's~\$$srcdir/shlib tic\$$suffix~/usr/bin/tic~' \
$(NCURSES_DIR)/misc/run_tic.in
- $(SOURCE_DIR)/patch-kernel.sh $(NCURSES_DIR) $(SOURCE_DIR) ncurses-\*.patch
+ toolchain/patch-kernel.sh $(NCURSES_DIR) package/ncurses/ ncurses-\*.patch
touch $(NCURSES_DIR)/.dist
$(NCURSES_DIR)/.configured: $(NCURSES_DIR)/.dist
NETKITTELNET_CAT:=zcat
NETKITTELNET_BINARY:=telnetd/telnetd
NETKITTELNET_TARGET_BINARY:=usr/sbin/telnetd
-NETKITTELNET_PATCH:=$(SOURCE_DIR)/netkittelnet.patch
$(DL_DIR)/$(NETKITTELNET_SOURCE):
$(WGET) -P $(DL_DIR) $(NETKITTELNET_SITE)/$(NETKITTELNET_SOURCE)
# Disable termcap support
$(SED) "s~\(.*termcap\.h.*\)~/* \1 */~;" $(NETKITTELNET_DIR)/telnetd/telnetd.c
# don't try to run cross compiled binaries while configuring things
- cat $(NETKITTELNET_PATCH) | patch -p1 -d $(NETKITTELNET_DIR)
+ toolchain/patch-kernel.sh $(NETKITTELNET_DIR) package/netkittelnet/ netkittelnet\*.patch
touch $(NETKITTELNET_DIR)/.unpacked
$(NETKITTELNET_DIR)/.configured: $(NETKITTELNET_DIR)/.unpacked
--- /dev/null
+--- netkit-telnet-0.17/configure Thu Apr 11 10:40:58 2002
++++ FIXEDnetkittelnet/configure Thu Apr 11 10:39:59 2002
+@@ -78,7 +78,6 @@
+ for TRY in egcs gcc g++ CC c++ cc; do
+ (
+ $TRY __conftest.c -o __conftest || exit 1;
+- ./__conftest || exit 1;
+ ) >/dev/null 2>&1 || continue;
+ CC=$TRY
+ break;
+@@ -94,7 +93,6 @@
+ echo -n 'Checking if C compiler works... '
+ if (
+ $CC __conftest.c -o __conftest || exit 1
+- ./__conftest || exit 1
+ ) >/dev/null 2>&1; then
+ echo 'yes'
+ else
+@@ -125,7 +123,6 @@
+ for TRY in egcs gcc g++ CC c++ cc; do
+ (
+ $TRY __conftest.cc -o __conftest || exit 1;
+- ./__conftest || exit 1;
+ ) >/dev/null 2>&1 || continue;
+ CXX=$TRY
+ break;
+@@ -141,7 +138,6 @@
+ echo -n 'Checking if C++ compiler works... '
+ if (
+ $CXX __conftest.cc -o __conftest || exit 1
+- ./__conftest || exit 1
+ ) >/dev/null 2>&1; then
+ echo 'yes'
+ else
+@@ -278,13 +274,11 @@
+ EOF
+ if (
+ $CXX $CXXFLAGS __conftest.cc -o __conftest || exit 1
+- ./__conftest || exit 1
+ ) >/dev/null 2>&1; then
+ echo 'yes'
+ else
+ if (
+ $CXX $CXXFLAGS -D__USE_BSD_SIGNAL __conftest.cc -o __conftest || exit 1
+- ./__conftest || exit 1
+ ) >/dev/null 2>&1; then
+ echo '-D__USE_BSD_SIGNAL'
+ CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL"
+@@ -292,6 +286,7 @@
+ else
+ echo 'no'
+ echo 'This package needs BSD signal semantics to run.'
++ echo "$CXX $CXXFLAGS -D__USE_BSD_SIGNAL __conftest.cc -o __conftest failed"
+ rm -f __conftest*
+ exit
+ fi
+@@ -330,31 +325,6 @@
+ echo 'no'
+ fi
+ fi
+-
+-if [ x$NCURSES != x ]; then
+- LIBTERMCAP=-lncurses
+-else
+- echo -n 'Checking for traditional termcap... '
+-cat <<EOF >__conftest.cc
+-#include <stdio.h>
+-#include <termcap.h>
+-int main(void) {
+- tgetent(NULL, NULL); return 0;
+-}
+-
+-EOF
+- if (
+- $CXX $CXXFLAGS __conftest.cc -ltermcap -o __conftest || exit 1
+- ) >/dev/null 2>&1; then
+- echo '-ltermcap'
+- LIBTERMCAP=-ltermcap
+- else
+- echo 'not found'
+- echo 'This package needs termcap to run.'
+- rm -f __conftest*
+- exit
+- fi
+-fi
+ rm -f __conftest*
+
+ ##################################################
+@@ -468,7 +438,6 @@
+ else
+ if (
+ $CXX $CXXFLAGS -D_GNU_SOURCE __conftest.cc -o __conftest || exit 1
+- ./__conftest || exit 1
+ ) >/dev/null 2>&1; then
+ echo '-D_GNU_SOURCE'
+ CFLAGS="$CFLAGS -D_GNU_SOURCE"
+@@ -501,20 +470,17 @@
+ EOF
+ if (
+ $CXX $CXXFLAGS __conftest.cc $LIBBSD -o __conftest || exit 1
+- ./__conftest || exit 1
+ ) >/dev/null 2>&1; then
+ echo 'ok'
+ else
+ if (
+ $CXX $CXXFLAGS __conftest.cc -lsnprintf $LIBBSD -o __conftest || exit 1
+- ./__conftest || exit 1
+ ) >/dev/null 2>&1; then
+ echo '-lsnprintf'
+ LIBS="$LIBS -lsnprintf"
+ else
+ if (
+ $CXX $CXXFLAGS __conftest.cc -ldb $LIBBSD -o __conftest || exit 1
+- ./__conftest || exit 1
+ ) >/dev/null 2>&1; then
+ echo '-ldb'
+ LIBS="$LIBS -ldb"
+diff -urN netkit-telnet-0.17/telnetd/state.c netkit-telnet-0.17-dm/telnetd/state.c
+--- netkit-telnet-0.17/telnetd/state.c 1999-12-12 11:41:44.000000000 -0800
++++ netkit-telnet-0.17-dm/telnetd/state.c 2003-07-23 19:20:38.000000000 -0700
+@@ -43,10 +43,10 @@
+
+ static int envvarok(char *varp);
+
+-static unsigned char doopt[] = { IAC, DO, '%', 'c', 0 };
+-static unsigned char dont[] = { IAC, DONT, '%', 'c', 0 };
+-unsigned char will[] = { IAC, WILL, '%', 'c', 0 };
+-unsigned char wont[] = { IAC, WONT, '%', 'c', 0 };
++//static unsigned char doopt[] = { IAC, DO, '%', 'c', 0 };
++//static unsigned char dont[] = { IAC, DONT, '%', 'c', 0 };
++//unsigned char will[] = { IAC, WILL, '%', 'c', 0 };
++//unsigned char wont[] = { IAC, WONT, '%', 'c', 0 };
+
+ /*
+ * Buffer for sub-options, and macros
+@@ -422,7 +422,7 @@
+ set_his_want_state_will(option);
+ do_dont_resp[option]++;
+ }
+- netoprintf((char *)doopt, option);
++ netoprintf( "%c%c%c", IAC, DO, option );
+
+ DIAG(TD_OPTIONS, printoption("td: send do", option));
+ }
+@@ -632,7 +632,7 @@
+ set_his_want_state_wont(option);
+ do_dont_resp[option]++;
+ }
+- netoprintf((char *) dont, option);
++ netoprintf ( "%c%c%c", IAC, DONT, option );
+
+ DIAG(TD_OPTIONS, printoption("td: send dont", option));
+ }
+@@ -769,7 +769,7 @@
+ set_my_want_state_will(option);
+ will_wont_resp[option]++;
+ }
+- netoprintf((char *) will, option);
++ netoprintf( "%c%c%c", IAC, WILL, option);
+
+ DIAG(TD_OPTIONS, printoption("td: send will", option));
+ }
+@@ -917,7 +917,7 @@
+ set_my_want_state_wont(option);
+ will_wont_resp[option]++;
+ }
+- netoprintf((char *)wont, option);
++ netoprintf( "%c%c%c", IAC, WONT, option);
+
+ DIAG(TD_OPTIONS, printoption("td: send wont", option));
+ }
NETSNMP_SOURCE:=net-snmp-5.1.tar.gz
NETSNMP_PATCH1:=net-snmp_5.1-5.diff.gz
NETSNMP_PATCH1_URL:=http://ftp.debian.org/debian/pool/main/n/net-snmp/
-NETSNMP_PATCH2:=$(SOURCE_DIR)/netsnmp.patch
$(DL_DIR)/$(NETSNMP_SOURCE):
$(WGET) -P $(DL_DIR) $(NETSNMP_URL)/$(NETSNMP_SOURCE)
$(NETSNMP_DIR)/.unpacked: $(DL_DIR)/$(NETSNMP_SOURCE) $(DL_DIR)/$(NETSNMP_PATCH1)
zcat $(DL_DIR)/$(NETSNMP_SOURCE) | tar -C $(BUILD_DIR) -xvf -
zcat $(DL_DIR)/$(NETSNMP_PATCH1) | patch -p1 -d $(NETSNMP_DIR)
- cat $(NETSNMP_PATCH2) | patch -p1 -d $(NETSNMP_DIR)
+ toolchain/patch-kernel.sh $(NETSNMP_DIR) package/netsnmp/ netsnmp\*.patch
touch $(NETSNMP_DIR)/.unpacked
# We set CAN_USE_SYSCTL to no and use /proc since the
--- /dev/null
+diff -urN net-snmp-5.1-dist/agent/mibgroup/host/hr_system.c net-snmp-5.1/agent/mibgroup/host/hr_system.c
+--- net-snmp-5.1-dist/agent/mibgroup/host/hr_system.c 2003-02-28 22:35:13.000000000 -0600
++++ net-snmp-5.1/agent/mibgroup/host/hr_system.c 2004-03-31 22:06:05.000000000 -0600
+@@ -286,7 +286,11 @@
+ current user */
+ if (kill(utmp_p->ut_pid, 0) == -1 && errno == ESRCH) {
+ utmp_p->ut_type = DEAD_PROCESS;
++#if HAVE_UTMPX_H
+ pututxline(utmp_p);
++#else
++ pututline(utmp_p);
++#endif
+ continue;
+ }
+ ++total;
+diff -urN net-snmp-5.1-dist/configure.in net-snmp-5.1/configure.in
+--- net-snmp-5.1-dist/configure.in 2004-03-31 21:59:14.000000000 -0600
++++ net-snmp-5.1/configure.in 2004-03-31 22:06:05.000000000 -0600
+@@ -1865,13 +1865,8 @@
+ if test $cross_compiling = yes; then
+ if test $with_endianness = "big"; then
+ AC_DEFINE(WORDS_BIGENDIAN)
+- elif test -z $with_endianness; then
+- AC_MSG_ERROR([You are cross-compiling, but you have not specified the target's endianness])
+ fi
+ else
+- if test $with_endianness; then
+- AC_MSG_ERROR([Endianness has been specified, but you are not cross-compiling.])
+- fi
+ AC_C_BIGENDIAN
+ fi
+
OPENSSH_SITE:=ftp://ftp.tux.org/bsd/openbsd/OpenSSH/portable/
OPENSSH_DIR:=$(BUILD_DIR)/openssh-3.8p1
OPENSSH_SOURCE:=openssh-3.8p1.tar.gz
-OPENSSH_PATCH:=$(SOURCE_DIR)/openssh.patch
$(DL_DIR)/$(OPENSSH_SOURCE):
$(WGET) -P $(DL_DIR) $(OPENSSH_SITE)/$(OPENSSH_SOURCE)
-$(OPENSSH_DIR)/.unpacked: $(DL_DIR)/$(OPENSSH_SOURCE) $(OPENSSH_PATCH)
+$(OPENSSH_DIR)/.unpacked: $(DL_DIR)/$(OPENSSH_SOURCE)
zcat $(DL_DIR)/$(OPENSSH_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- cat $(OPENSSH_PATCH) | patch -p1 -d $(OPENSSH_DIR)
+ toolchain/patch-kernel.sh $(OPENSSH_DIR) package/openssh/ openssh\*.patch
touch $(OPENSSH_DIR)/.unpacked
$(OPENSSH_DIR)/.configured: $(OPENSSH_DIR)/.unpacked
--- /dev/null
+--- openssh-3.6.1p1/Makefile.in.orig 2003-03-20 17:34:34.000000000 -0700
++++ openssh-3.6.1p1/Makefile.in 2003-04-25 17:09:00.000000000 -0600
+@@ -27,7 +27,7 @@
+ RAND_HELPER=$(libexecdir)/ssh-rand-helper
+ PRIVSEP_PATH=@PRIVSEP_PATH@
+ SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@
+-STRIP_OPT=@STRIP_OPT@
++STRIP_OPT=
+
+ PATHS= -DSSHDIR=\"$(sysconfdir)\" \
+ -D_PATH_SSH_PROGRAM=\"$(SSH_PROGRAM)\" \
+--- openssh-3.8p1/configure.ac.orig 2004-02-23 22:47:04.000000000 -0700
++++ openssh-3.8p1/configure.ac 2004-03-19 01:41:47.000000000 -0700
+@@ -481,6 +481,9 @@
+ [
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR([*** compiler cannot create working executables, check config.log ***])
++ ],
++ [AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
+ ]
+ )
+
+@@ -632,6 +635,9 @@
+ else
+ AC_MSG_WARN([zlib version may have security problems])
+ fi
++ ],
++ [AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
+ ]
+ )
+
+@@ -696,6 +702,9 @@
+ [
+ AC_MSG_RESULT(no)
+ AC_DEFINE(BROKEN_ONE_BYTE_DIRENT_D_NAME)
++ ],
++ [AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
+ ]
+ )
+
+@@ -727,6 +736,9 @@
+ [
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR([** Incomplete or missing s/key libraries.])
++ ],
++ [AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
+ ])
+ fi
+ ]
+@@ -840,7 +852,11 @@
+ ],
+ [AC_MSG_RESULT(yes)],
+ [AC_DEFINE(BROKEN_SETRESUID)
+- AC_MSG_RESULT(not implemented)]
++ AC_MSG_RESULT(not implemented)
++ ],
++ [AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
++ ]
+ )
+ ])
+
+@@ -854,7 +870,11 @@
+ ],
+ [AC_MSG_RESULT(yes)],
+ [AC_DEFINE(BROKEN_SETRESGID)
+- AC_MSG_RESULT(not implemented)]
++ AC_MSG_RESULT(not implemented)
++ ],
++ [AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
++ ]
+ )
+ ])
+
+@@ -890,6 +910,9 @@
+ AC_MSG_RESULT(no)
+ AC_DEFINE(BROKEN_SNPRINTF)
+ AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor])
++ ],
++ [AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
+ ]
+ )
+ fi
+@@ -963,7 +986,10 @@
+ [
+ AC_MSG_RESULT(no)
+ AC_DEFINE(SSHD_ACQUIRES_CTTY)
+- ]
++ ],
++ [AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
++ ]
+ )
+ fi
+
+@@ -1096,6 +1122,10 @@
+ [
+ AC_MSG_RESULT(not found)
+ AC_MSG_ERROR(OpenSSL version header not found.)
++ ],
++ [
++ ssl_header_ver="0x0090704fL (OpenSSL 0.9.7d 17 Mar 2004)"
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to $ssl_header_ver])
+ ]
+ )
+
+@@ -1129,6 +1159,10 @@
+ [
+ AC_MSG_RESULT(not found)
+ AC_MSG_ERROR(OpenSSL library not found.)
++ ],
++ [
++ ssl_header_ver="0x0090704fL (OpenSSL 0.9.7d 17 Mar 2004)"
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to $ssl_library_ver])
+ ]
+ )
+
+@@ -1148,7 +1182,11 @@
+ AC_MSG_ERROR([Your OpenSSL headers do not match your library.
+ Check config.log for details.
+ Also see contrib/findssl.sh for help identifying header/library mismatches.])
+- ]
++ ],
++ [
++ AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
++ ]
+ )
+
+ # Some systems want crypt() from libcrypt, *not* the version in OpenSSL,
+@@ -1183,6 +1221,11 @@
+ # Default to use of the rand helper if OpenSSL doesn't
+ # seed itself
+ USE_RAND_HELPER=yes
++ ],
++ [
++ OPENSSL_SEEDS_ITSELF=yes
++ AC_MSG_RESULT(yes)
++ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
+ ]
+ )
+
+@@ -1773,7 +1816,8 @@
+ #else
+ main() { exit(0); }
+ #endif
+- ], [ true ], [ AC_DEFINE(BROKEN_SNPRINTF) ]
++ ], [ true ], [ AC_DEFINE(BROKEN_SNPRINTF) ],
++ [ true ]
+ )
+ fi
+
+@@ -1893,6 +1937,7 @@
+ }
+ ],
+ [ ac_cv_have_accrights_in_msghdr="yes" ],
++ [ ac_cv_have_accrights_in_msghdr="no" ],
+ [ ac_cv_have_accrights_in_msghdr="no" ]
+ )
+ ])
+@@ -1917,7 +1962,8 @@
+ }
+ ],
+ [ ac_cv_have_control_in_msghdr="yes" ],
+- [ ac_cv_have_control_in_msghdr="no" ]
++ [ ac_cv_have_control_in_msghdr="no" ],
++ [ ac_cv_have_control_in_msghdr="yes" ]
+ )
+ ])
+ if test "x$ac_cv_have_control_in_msghdr" = "xyes" ; then
+@@ -2229,12 +2275,9 @@
+ )
+ fi
+ fi
+-AC_CHECK_FILE("/dev/ptc",
+- [
+- AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC)
+- have_dev_ptc=1
+- ]
+-)
++AC_MSG_CHECKING([for "/dev/ptc"])
++AC_MSG_RESULT(no)
++have_dev_ptc=0
+
+ # Options from here on. Some of these are preset by platform above
+ AC_ARG_WITH(mantype,
+@@ -2329,15 +2372,8 @@
+ fi
+
+ # check for /etc/default/login and use it if present.
+-AC_ARG_ENABLE(etc-default-login,
+- [ --disable-etc-default-login Disable using PATH from /etc/default/login [no]],,
+-[
+-AC_CHECK_FILE("/etc/default/login", [ external_path_file=/etc/default/login ])
+-
+-if test "x$external_path_file" = "x/etc/default/login"; then
+- AC_DEFINE(HAVE_ETC_DEFAULT_LOGIN)
+-fi
+-])
++AC_MSG_CHECKING([for "/etc/default/login"])
++AC_MSG_RESULT(no)
+
+ dnl BSD systems use /etc/login.conf so --with-default-path= has no effect
+ if test $ac_cv_func_login_getcapbool = "yes" -a \
+--- openssh-3.8p1.orig/sshd_config Fri Sep 27 05:21:58 2002
++++ openssh-3.8p1/sshd_config Mon Mar 17 14:55:00 2003
+@@ -89,5 +89,8 @@
+ #Banner /some/path
+ #VerifyReverseMapping no
+
++ClientAliveInterval 15
++ClientAliveCountMax 4
++
+ # override default of no subsystems
+-Subsystem sftp /usr/libexec/sftp-server
++Subsystem sftp /usr/sbin/sftp-server
+--- openssh-3.6.1p1/S50sshd Fri Sep 27 05:21:58 2002
++++ openssh-3.6.1p1/S50sshd Mon Mar 17 14:55:00 2003
+@@ -0,0 +1,64 @@
++#!/bin/sh
++#
++# sshd Starts sshd.
++#
++
++# Make sure the ssh-keygen progam exists
++[ -f /usr/bin/ssh-keygen ] || exit 0
++
++# Check for the SSH1 RSA key
++if [ ! -f /etc/ssh_host_key ] ; then
++ echo Generating RSA Key...
++ /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh_host_key -C '' -N ''
++fi
++
++# Check for the SSH2 RSA key
++if [ ! -f /etc/ssh_host_rsa_key ] ; then
++ echo Generating RSA Key...
++ /usr/bin/ssh-keygen -t rsa -f /etc/ssh_host_rsa_key -C '' -N ''
++fi
++
++# Check for the SSH2 DSA key
++if [ ! -f /etc/ssh_host_dsa_key ] ; then
++ echo Generating DSA Key...
++ echo THIS CAN TAKE A MINUTE OR TWO DEPENDING ON YOUR PROCESSOR!
++ echo
++ /usr/bin/ssh-keygen -t dsa -f /etc/ssh_host_dsa_key -C '' -N ''
++fi
++
++umask 077
++
++start() {
++ echo -n "Starting sshd: "
++ /usr/sbin/sshd
++ touch /var/lock/sshd
++ echo "OK"
++}
++stop() {
++ echo -n "Stopping sshd: "
++ killall sshd
++ rm -f /var/lock/sshd
++ echo "OK"
++}
++restart() {
++ stop
++ start
++}
++
++case "$1" in
++ start)
++ start
++ ;;
++ stop)
++ stop
++ ;;
++ restart|reload)
++ restart
++ ;;
++ *)
++ echo $"Usage: $0 {start|stop|restart}"
++ exit 1
++esac
++
++exit $?
++
OPENSSL_SITE:=http://www.openssl.org/source
OPENSSL_SOURCE:=openssl-0.9.7d.tar.gz
OPENSSL_DIR:=$(BUILD_DIR)/openssl-0.9.7d
-OPENSSL_PATCH=$(SOURCE_DIR)/openssl.patch
$(DL_DIR)/$(OPENSSL_SOURCE):
$(WGET) -P $(DL_DIR) $(OPENSSL_SITE)/$(OPENSSL_SOURCE)
-$(OPENSSL_DIR)/.unpacked: $(DL_DIR)/$(OPENSSL_SOURCE) $(OPENSSL_PATCH)
+$(OPENSSL_DIR)/.unpacked: $(DL_DIR)/$(OPENSSL_SOURCE)
gunzip -c $(DL_DIR)/$(OPENSSL_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- cat $(OPENSSL_PATCH) | patch -p1 -d $(OPENSSL_DIR)
+ toolchain/patch-kernel.sh $(OPENSSL_DIR) package/openssl/ openssl\*.patch
# sigh... we have to resort to this just to set a gcc flag.
$(SED) 's,/CFLAG=,/CFLAG= $(TARGET_SOFT_FLOAT) ,g' \
$(OPENSSL_DIR)/Configure
--- /dev/null
+--- openssl-0.9.7.orig/Configure
++++ openssl-0.9.7/Configure
+@@ -1,4 +1,4 @@
+-:
++#!/usr/bin/perl
+ eval 'exec perl -S $0 ${1+"$@"}'
+ if $running_under_some_shell;
+ ##
+@@ -373,6 +373,41 @@
+ # assembler versions -- currently defunct:
+ ##"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer:::(unknown):SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:${alpha_asm}",
+
++# Sane Linux configuration values, stolen from the Debian package....
++"linux-alpha","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-alpha-ev4","gcc:-DTERMIO -O3 -mcpu=ev4 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-alpha-ev5","gcc:-DTERMIO -O3 -mcpu=ev5 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-armeb","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-freebsd-alpha","gcc:-DTERMIOS -O -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-freebsd-i386", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::-pthread -D_REENTRANT -D_THREAD_SAFE -D_THREADSAFE:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-hppa","gcc:-DB_ENDIAN -DTERMIO -O2 -Wall::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-hurd-i386","gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-ia64","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++#"linux-i386","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC",
++"linux-i386","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-i386-i486","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i486 -mcpu=i486 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-i386-i586","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i586 -mcpu=i586 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-i386-i686/cmov","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i686 -mcpu=i686 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-m68k","gcc:-DB_ENDIAN -DTERMIO -O2 -Wall::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-mips", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-mipsel", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-netbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-netbsd-m68k", "gcc:-DB_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-netbsd-sparc", "gcc:-DB_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-openbsd-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-openbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-openbsd-mips","gcc:-O2 -DL_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-powerpc","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_UNROLL DES_RISC2 DES_PTR MD2_CHAR RC4_INDEX::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-s390","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sh3", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sh4", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sh3eb", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sh4eb", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sparc","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sparc-v8","gcc:-DB_ENDIAN -DTERMIO -O3 -mcpu=v8 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-sparc-v9","gcc:-DB_ENDIAN -DTERMIO -O3 -mcpu=v9 -Wa,-Av8plus -fomit-frame-pointer -Wall -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-cris", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ # The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
+ # bn86-elf.o file file since it is hand tweaked assembler.
+ "linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+@@ -416,6 +451,7 @@
+
+ # Linux on ARM
+ "linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-elf-armeb","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+
+ # SCO/Caldera targets.
+ #
+--- openssl-0.9.7.orig/crypto/md5/asm/md5-sparcv9.S
++++ openssl-0.9.7/crypto/md5/asm/md5-sparcv9.S
+@@ -72,14 +72,14 @@
+ #define Dval R8
+
+ #if defined(MD5_BLOCK_DATA_ORDER)
+-# if defined(OPENSSL_SYSNAME_ULTRASPARC)
++/*# if defined(OPENSSL_SYSNAME_ULTRASPARC)*/
+ # define LOAD lda
+ # define X(i) [%i1+i*4]%asi
+ # define md5_block md5_block_asm_data_order_aligned
+ # define ASI_PRIMARY_LITTLE 0x88
+-# else
++/*# else
+ # error "MD5_BLOCK_DATA_ORDER is supported only on UltraSPARC!"
+-# endif
++# endif*/
+ #else
+ # define LOAD ld
+ # define X(i) [%i1+i*4]
+--- openssl-0.9.7.orig/crypto/opensslconf.h
++++ openssl-0.9.7/crypto/opensslconf.h
+@@ -4,17 +4,38 @@
+ /* OpenSSL was configured with the following options: */
+ #ifndef OPENSSL_DOING_MAKEDEPEND
+
++#ifndef OPENSSL_NO_IDEA
++# define OPENSSL_NO_IDEA
++#endif
++#ifndef OPENSSL_NO_MDC2
++# define OPENSSL_NO_MDC2
++#endif
++#ifndef OPENSSL_NO_RC5
++# define OPENSSL_NO_RC5
++#endif
+ #ifndef OPENSSL_NO_KRB5
+ # define OPENSSL_NO_KRB5
+ #endif
+
+ #endif /* OPENSSL_DOING_MAKEDEPEND */
++#ifndef OPENSSL_THREADS
++# define OPENSSL_THREADS
++#endif
+
+ /* The OPENSSL_NO_* macros are also defined as NO_* if the application
+ asks for it. This is a transient feature that is provided for those
+ who haven't had the time to do the appropriate changes in their
+ applications. */
+ #ifdef OPENSSL_ALGORITHM_DEFINES
++# if defined(OPENSSL_NO_IDEA) && !defined(NO_IDEA)
++# define NO_IDEA
++# endif
++# if defined(OPENSSL_NO_MDC2) && !defined(NO_MDC2)
++# define NO_MDC2
++# endif
++# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
++# define NO_RC5
++# endif
+ # if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
+ # define NO_KRB5
+ # endif
+@@ -27,7 +48,7 @@
+
+ #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
+ #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
+-#define OPENSSLDIR "/usr/local/ssl"
++#define OPENSSLDIR "/usr/lib/ssl"
+ #endif
+ #endif
+
+@@ -79,7 +100,7 @@
+
+ #if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
+ #define CONFIG_HEADER_BN_H
+-#undef BN_LLONG
++#define BN_LLONG
+
+ /* Should we define BN_DIV2W here? */
+
+@@ -98,7 +119,7 @@
+ #define CONFIG_HEADER_RC4_LOCL_H
+ /* if this is defined data[i] is used instead of *data, this is a %20
+ * speedup on x86 */
+-#undef RC4_INDEX
++#define RC4_INDEX
+ #endif
+
+ #if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
+@@ -112,14 +133,14 @@
+ /* the following is tweaked from a config script, that is why it is a
+ * protected undef/define */
+ #ifndef DES_PTR
+-#undef DES_PTR
++#define DES_PTR
+ #endif
+
+ /* This helps C compiler generate the correct code for multiple functional
+ * units. It reduces register dependancies at the expense of 2 more
+ * registers */
+ #ifndef DES_RISC1
+-#undef DES_RISC1
++#define DES_RISC1
+ #endif
+
+ #ifndef DES_RISC2
+@@ -133,7 +154,7 @@
+ /* Unroll the inner loop, this sometimes helps, sometimes hinders.
+ * Very mucy CPU dependant */
+ #ifndef DES_UNROLL
+-#undef DES_UNROLL
++#define DES_UNROLL
+ #endif
+
+ /* These default values were supplied by
+--- openssl-0.9.7.orig/ssl/ssl_algs.c
++++ openssl-0.9.7/ssl/ssl_algs.c
+@@ -109,3 +109,8 @@
+ return(1);
+ }
+
++#undef SSLeay_add_ssl_algorithms
++int SSLeay_add_ssl_algorithms(void)
++ {
++ return SSL_library_init();
++ }
+--- openssl-0.9.7.orig/tools/c_rehash.in
++++ openssl-0.9.7/tools/c_rehash.in
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/perl
+
+
+ # Perl c_rehash script, scan all files in a directory
+--- openssl-0.9.7.orig/util/clean-depend.pl
++++ openssl-0.9.7/util/clean-depend.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl -w
++#!/usr/bin/perl
+ # Clean the dependency list in a makefile of standard includes...
+ # Written by Ben Laurie <ben@algroup.co.uk> 19 Jan 1999
+
+--- openssl-0.9.7.orig/util/extract-names.pl
++++ openssl-0.9.7/util/extract-names.pl
+@@ -1,4 +1,4 @@
+-#!/usr/bin/perl
++#!/usr/bin/perl
+
+ $/ = ""; # Eat a paragraph at once.
+ while(<STDIN>) {
+--- openssl-0.9.7.orig/util/mkdef.pl
++++ openssl-0.9.7/util/mkdef.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl -w
++#!/usr/bin/perl
+ #
+ # generate a .def file
+ #
+--- openssl-0.9.7.orig/util/mkerr.pl
++++ openssl-0.9.7/util/mkerr.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl -w
++#!/usr/bin/perl
+
+ my $config = "crypto/err/openssl.ec";
+ my $debug = 0;
+--- openssl-0.9.7.orig/util/mkstack.pl
++++ openssl-0.9.7/util/mkstack.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl -w
++#!/usr/bin/perl
+
+ # This is a utility that searches out "DECLARE_STACK_OF()"
+ # declarations in .h and .c files, and updates/creates/replaces
+--- openssl-0.9.7.orig/util/pod2man.pl
++++ openssl-0.9.7/util/pod2man.pl
+@@ -1,4 +1,4 @@
+-: #!/usr/bin/perl-5.005
++#!/usr/bin/perl
+ eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
+ if $running_under_some_shell;
+
+--- openssl-0.9.7.orig/util/selftest.pl
++++ openssl-0.9.7/util/selftest.pl
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl -w
++#!/usr/bin/perl
+ #
+ # Run the test suite and generate a report
+ #
--- /dev/null
+#!/bin/sh -e
+#
+# Original version by Robert Leslie
+# <rob@mars.org>, edited by iwj and cs
+# Modified for openvpn by Alberto Gonzalez Iniesta <agi@agi.as>
+# Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>
+
+test $DEBIAN_SCRIPT_DEBUG && set -v -x
+
+DAEMON=/usr/sbin/openvpn
+CONFIG_DIR=/etc/openvpn
+test -x $DAEMON || exit 0
+test -d $CONFIG_DIR || exit 0
+
+start_vpn () {
+ $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
+ --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->"
+ echo -n " $NAME"
+}
+stop_vpn () {
+ kill `cat $PIDFILE` || true
+ rm $PIDFILE
+}
+
+case "$1" in
+start)
+ echo -n "Starting openvpn:"
+
+ if test -z $2 ; then
+ for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
+ NAME=${CONFIG%%.conf}
+ start_vpn
+ done
+ else
+ if test -e $CONFIG_DIR/$2.conf ; then
+ NAME=$2
+ start_vpn
+ else
+ echo -n " No such VPN: $2"
+ fi
+ fi
+ echo "."
+
+ ;;
+stop)
+ echo -n "Stopping openvpn:"
+
+ if test -z $2 ; then
+ for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
+ NAME=`echo $PIDFILE | cut -c18-`
+ NAME=${NAME%%.pid}
+ stop_vpn
+ echo -n " $NAME"
+ done
+ else
+ if test -e /var/run/openvpn.$2.pid ; then
+ PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null`
+ NAME=`echo $PIDFILE | cut -c18-`
+ NAME=${NAME%%.pid}
+ stop_vpn
+ echo -n " $NAME"
+ else
+ echo -n " No such VPN: $2"
+ fi
+ fi
+ echo "."
+ ;;
+# We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'.
+reload|force-reload)
+ echo -n "Reloading openvpn:"
+ for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
+ NAME=`echo $PIDFILE | cut -c18-`
+ NAME=${NAME%%.pid}
+# If openvpn if running under a different user than root we'll need to restart
+ if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
+ stop_vpn
+ sleep 1
+ start_vpn
+ echo -n "(restarted)"
+ else
+ kill -HUP `cat $PIDFILE` || true
+# start-stop-daemon --stop --signal HUP --quiet --oknodo \
+# --exec $DAEMON --pidfile $PIDFILE
+ echo -n " $NAME"
+ fi
+ done
+ echo "."
+ ;;
+
+restart)
+ $0 stop $2
+ sleep 1
+ $0 start $2
+ ;;
+*)
+ echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# vim:set ai et sts=2 sw=2 tw=0:
OPENVPN_CAT:=zcat
OPENVPN_BINARY:=openvpn
OPENVPN_TARGET_BINARY:=usr/sbin/openvpn
-#OPENVPN_PATCH:=$(SOURCE_DIR)/openvpn.patch
$(DL_DIR)/$(OPENVPN_SOURCE):
$(WGET) -P $(DL_DIR) $(OPENVPN_SITE)/$(OPENVPN_SOURCE)
$(OPENVPN_DIR)/.unpacked: $(DL_DIR)/$(OPENVPN_SOURCE)
$(OPENVPN_CAT) $(DL_DIR)/$(OPENVPN_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- #cat $(OPENVPN_PATCH) | patch -p1 -d $(OPENVPN_DIR)
touch $(OPENVPN_DIR)/.unpacked
$(OPENVPN_DIR)/.configured: $(OPENVPN_DIR)/.unpacked
$(TARGET_DIR)/$(OPENVPN_TARGET_BINARY): $(OPENVPN_DIR)/$(OPENVPN_BINARY)
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(OPENVPN_DIR) install
mkdir -p $(TARGET_DIR)/etc/openvpn
- cp $(SOURCE_DIR)/openvpn $(TARGET_DIR)/etc/init.d/openvpn
+ cp package/openvpn/openvpn.init $(TARGET_DIR)/etc/init.d/openvpn
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
$(PCIUTILS_DIR)/.unpacked: $(DL_DIR)/$(PCIUTILS_SOURCE) $(DL_DIR)/$(PCIIDS_SOURCE)
$(PCIUTILS_CAT) $(DL_DIR)/$(PCIUTILS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
$(PCIIDS_CAT) $(DL_DIR)/$(PCIIDS_SOURCE) > $(PCIUTILS_DIR)/pci.id
- $(SOURCE_DIR)/patch-kernel.sh $(PCIUTILS_DIR) $(SOURCE_DIR) pciutils*.patch
+ toolchain/patch-kernel.sh $(PCIUTILS_DIR) package/pciutils pciutils*.patch
touch $(PCIUTILS_DIR)/.unpacked
$(PCIUTILS_DIR)/.compiled: $(PCIUTILS_DIR)/.unpacked
--- /dev/null
+diff -ur pciutils-2.1.11.orig/lib/configure pciutils-2.1.11/lib/configure
+--- pciutils-2.1.11.orig/lib/configure 2004-10-08 11:56:42.876316816 -0400
++++ pciutils-2.1.11/lib/configure 2004-10-08 11:57:04.965958680 -0400
+@@ -25,7 +25,6 @@
+ echo " $sys/$cpu $rel"
+
+ c=config.h
+-echo >$c "#define ARCH_`echo $cpu | tr 'a-z' 'A-Z'`"
+ echo >>$c "#define OS_`echo $sys | tr 'a-z' 'A-Z'`"
+
+ echo_n "Looking for access methods..."
+@@ -40,17 +39,6 @@
+ ok=1
+ ;;
+ esac
+- case $cpu in
+- i386) echo_n " i386-ports"
+- echo >>$c '#define HAVE_PM_INTEL_CONF'
+- ok=1
+- ;;
+- alpha|ia64) echo >>$c '#define HAVE_64BIT_ADDRESS'
+- ;;
+- sparc|sparc64) echo >>$c '#define HAVE_64BIT_ADDRESS'
+- echo >>$c '#define HAVE_LONG_ADDRESS'
+- ;;
+- esac
+ ;;
+ FreeBSD)
+ echo_n " fbsd-device"
PCMCIA_SOURCE:=pcmcia-cs-3.2.7.tar.gz
PCMCIA_SITE:=http://aleron.dl.sourceforge.net/sourceforge/pcmcia-cs
PCMCIA_DIR:=$(BUILD_DIR)/pcmcia-cs-3.2.7
-PCMCIA_PATCH:=$(SOURCE_DIR)/pcmcia.patch
PCMCIA_CAT:=zcat
$(DL_DIR)/$(PCMCIA_SOURCE):
touch $(PCMCIA_DIR)/.unpacked
$(PCMCIA_DIR)/.patched: $(PCMCIA_DIR)/.unpacked
- cat $(PCMCIA_PATCH) | patch -d $(PCMCIA_DIR) -p1
+ toolchain/patch-kernel.sh $(PCMCIA_DIR) package/pcmcia/ pcmcia\*.patch
touch $(PCMCIA_DIR)/.patched
$(PCMCIA_DIR)/.configured: $(PCMCIA_DIR)/.patched
--- /dev/null
+--- pcmcia-cs-3.1.34/etc/config.opts.orig Tue Jul 9 09:36:23 2002
++++ pcmcia-cs-3.1.34/etc/config.opts Tue Jul 9 09:37:47 2002
+@@ -5,7 +5,7 @@
+
+ # System resources available for PCMCIA devices
+
+-include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff
++include port 0x100-0x4ff, port 0xc00-0xcff
+ include memory 0xc0000-0xfffff
+ include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff
+
+diff -urN pcmcia-cs-3.2.3.orig/etc/shared pcmcia-cs-3.2.3/etc/shared
+--- pcmcia-cs-3.2.3.orig/etc/shared 2002-08-18 21:21:11.000000000 -0600
++++ pcmcia-cs-3.2.3/etc/shared 2003-02-14 05:05:07.000000000 -0700
+@@ -2,6 +2,8 @@
+ # shared 1.31 2002/08/19 03:21:11 (David Hinds)
+ #
+
++umask 022
++
+ usage ()
+ {
+ echo "usage: $0 [action] [device name]"
+--- /dev/null 2003-01-21 22:14:35.000000000 -0700
++++ pcmcia-cs-3.2.4/etc/pcmcia 2003-06-09 12:04:02.000000000 -0600
+@@ -0,0 +1,6 @@
++# Defaults for pcmcia (sourced by /etc/init.d/S30pcmcia)
++PCMCIA=yes
++PCIC=yenta_socket
++PCIC_OPTS=
++CORE_OPTS=
++CARDMGR_OPTS=
+--- pcmcia-cs-3.2.4/etc/rc.pcmcia.orig 2002-08-08 00:43:43.000000000 -0600
++++ pcmcia-cs-3.2.4/etc/rc.pcmcia 2003-06-09 15:17:28.000000000 -0600
+@@ -4,6 +4,8 @@
+ #
+ # This is designed to work in BSD as well as SysV init setups. See
+ # the HOWTO for customization instructions.
++# Modified to comply with Debian's standards by Brian Mays
++# <brian@debian.org>.
+
+ # Tags for Red Hat init configuration tools
+ #
+@@ -26,9 +28,9 @@
+ done
+
+ # Source PCMCIA configuration, if available
+-if [ -f /etc/pcmcia.conf ] ; then
++if [ -f /etc/default/pcmcia ] ; then
+ # Debian startup option file
+- . /etc/pcmcia.conf
++ . /etc/default/pcmcia
+ elif [ -f /etc/sysconfig/pcmcia ] ; then
+ # Red Hat startup option file
+ . /etc/sysconfig/pcmcia
+@@ -50,9 +52,22 @@
+ done
+ if [ "$PCMCIA" -a "$PCMCIA" != "yes" ] ; then exit 0 ; fi
+
++# Debian modification: Fix PCIC for stand-alone modules.
++# yenta_socket -> i82365 on these systems.
++# Existence of a standalone module implies that it is preferred.
++if [ -d /lib/modules/preferred ] ; then
++ PC=/lib/modules/preferred/pcmcia
++else
++ PC=/lib/modules/`uname -r`/pcmcia
++fi
++if [ "$PCIC" = yenta_socket -a -e $PC/i82365.o \
++ -a ! -L $PC/i82365.o ]; then
++ PCIC=i82365
++fi
++
+ usage()
+ {
+- echo "Usage: $0 {start|stop|status|restart|reload}"
++ echo "Usage: $0 {start|stop|status|restart|reload|force-reload}"
+ }
+
+ cleanup()
+@@ -84,7 +99,7 @@
+ SC=/var/lib/pcmcia/scheme
+ RUN=/var/lib/pcmcia
+ else
+- SC=/var/run/pcmcia-scheme
++ SC=/var/lib/misc/pcmcia-scheme
+ RUN=/var/run
+ fi
+ if [ -L $SC -o ! -O $SC ] ; then rm -f $SC ; fi
+@@ -154,7 +172,7 @@
+ ;;
+
+ status)
+- pid=`/sbin/pidof cardmgr`
++ pid=`/bin/pidof cardmgr`
+ if [ "$pid" != "" ] ; then
+ echo "cardmgr (pid $pid) is running..."
+ EXITCODE=0
+@@ -164,12 +182,18 @@
+ fi
+ ;;
+
+- restart|reload)
++ restart)
+ $0 stop
+ $0 start
+ EXITCODE=$?
+ ;;
+
++ reload|force-reload)
++ echo "Reloading $DESC configuration files."
++ kill -1 `cat /var/run/cardmgr.pid` 2>/dev/null
++ EXITCODE=0
++ ;;
++
+ *)
+ usage
+ ;;
+@@ -179,4 +203,4 @@
+ done
+
+ # Only exit if we're in our own subshell
+-case $0 in *rc.pcmcia) exit $EXITCODE ;; esac
++case $0 in *pcmcia) exit $EXITCODE ;; esac
--- /dev/null
+--- Python-2.3.4/Makefile.pre.in.orig 2003-11-18 14:54:00.000000000 -0500
++++ Python-2.3.4/Makefile.pre.in 2004-07-29 21:44:47.075924464 -0400
+@@ -159,6 +159,7 @@
+
+ PYTHON= python$(EXE)
+ BUILDPYTHON= python$(BUILDEXE)
++HOSTPYTHON= ./$(BUILDPYTHON)
+
+ # === Definitions added by makesetup ===
+
+@@ -186,6 +187,8 @@
+ # Parser
+ PGEN= Parser/pgen$(EXE)
+
++HOSTPGEN= $(PGEN)
++
+ POBJS= \
+ Parser/acceler.o \
+ Parser/grammar1.o \
+@@ -314,8 +317,8 @@
+ # Build the shared modules
+ sharedmods: $(BUILDPYTHON)
+ case $$MAKEFLAGS in \
+- *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
+- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
++ *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CROSS_COMPILE='yes' OPT='$(OPT)' DESTDIR='$(DESTDIR)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
++ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CROSS_COMPILE='yes' OPT='$(OPT)' DESTDIR='$(DESTDIR)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
+ esac
+
+ # buildno should really depend on something like LIBRARY_SRC
+@@ -432,7 +435,7 @@
+
+
+ $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
+- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
++ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+
+ $(PGEN): $(PGENOBJS)
+ $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
+@@ -705,19 +708,19 @@
+ done
+ $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
+ PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
++ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
+ -d $(LIBDEST) -f \
+ -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
+ PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
++ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
+ -d $(LIBDEST) -f \
+ -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
+ PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
++ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
+ -d $(LIBDEST)/site-packages -f \
+ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+ PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
++ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
+ -d $(LIBDEST)/site-packages -f \
+ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+
+@@ -812,7 +815,8 @@
+ # Install the dynamically loadable modules
+ # This goes into $(exec_prefix)
+ sharedinstall:
+- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
++ CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILE='$(CROSS_COMPILE)' \
++ $(HOSTPYTHON) -E $(srcdir)/setup.py install \
+ --prefix=$(prefix) \
+ --install-scripts=$(BINDIR) \
+ --install-platlib=$(DESTSHARED) \
+--- Python-2.3.4/setup.py.orig 2004-07-29 21:32:12.993562408 -0400
++++ Python-2.3.4/setup.py 2004-07-29 21:47:12.174866072 -0400
+@@ -213,6 +213,7 @@
+ try:
+ imp.load_dynamic(ext.name, ext_filename)
+ except ImportError, why:
++ if os.environ.get('CROSS_COMPILE') != "yes":
+ self.announce('*** WARNING: renaming "%s" since importing it'
+ ' failed: %s' % (ext.name, why), level=3)
+ assert not self.inplace
+@@ -233,6 +234,9 @@
+ os.remove(filename)
+ except AttributeError:
+ self.announce('unable to remove files (ignored)')
++ else:
++ self.announce('WARNING: "%s" failed importing, but we leave it because we are cross-compiling' %
++ ext.name)
+ except:
+ exc_type, why, tb = sys.exc_info()
+ self.announce('*** WARNING: importing extension "%s" '
+@@ -245,8 +245,9 @@
+
+ def detect_modules(self):
+ # Ensure that /usr/local is always used
+- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
+- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
++ add_dir_to_list(self.compiler.library_dirs, os.getenv('DESTDIR') + '/lib')
++ add_dir_to_list(self.compiler.library_dirs, os.getenv('DESTDIR') + '/usr/lib')
++ add_dir_to_list(self.compiler.include_dirs, os.getenv('DESTDIR') + '/usr/include')
+
+ # fink installs lots of goodies in /sw/... - make sure we
+ # check there
+@@ -254,11 +255,6 @@
+ add_dir_to_list(self.compiler.library_dirs, '/sw/lib')
+ add_dir_to_list(self.compiler.include_dirs, '/sw/include')
+
+- if os.path.normpath(sys.prefix) != '/usr':
+- add_dir_to_list(self.compiler.library_dirs,
+- sysconfig.get_config_var("LIBDIR"))
+- add_dir_to_list(self.compiler.include_dirs,
+- sysconfig.get_config_var("INCLUDEDIR"))
+
+ try:
+ have_unicode = unicode
touch $(PYTHON_DIR)/.unpacked
$(PYTHON_DIR)/.patched: $(PYTHON_DIR)/.unpacked
- $(SOURCE_DIR)/patch-kernel.sh $(PYTHON_DIR) $(SOURCE_DIR) python*.patch
+ toolchain/patch-kernel.sh $(PYTHON_DIR) package/python/ python*.patch
touch $(PYTHON_DIR)/.patched
$(PYTHON_DIR)/.hostpython: $(PYTHON_DIR)/.patched
# USA
RXVT_SOURCE:=rxvt-2.6.4.tar.bz2
-RXVT_PATCH:=$(SOURCE_DIR)/rxvt-2.6.4.patch
RXVT_SITE:=ftp://ftp.rxvt.org/pub/rxvt/
RXVT_CAT:=bzcat
RXVT_DIR:=$(BUILD_DIR)/rxvt-2.6.4
--x-includes=$(TINYX_DIR)/exports/include \
--x-libraries=$(TINYX_DIR)/exports/lib \
);
- cat $(RXVT_PATCH) | patch -d $(RXVT_DIR) -p1
+ toolchain/patch-kernel.sh $(RXVT_DIR) package/rxvt/ rxvt*.patch
touch $(RXVT_DIR)/.configured
$(RXVT_BINARY): $(RXVT_DIR)/.configured
SED_SOURCE:=sed-$(SED_VER).tar.gz
SED_SITE:=ftp://ftp.gnu.org/gnu/sed
SED_CAT:=zcat
-SED_DIR:=$(BUILD_DIR)/sed-$(SED_VER)
+SED_DIR1:=$(TOOL_BUILD_DIR)/sed-$(SED_VER)
+SED_DIR2:=$(BUILD_DIR)/sed-$(SED_VER)
SED_BINARY:=sed/sed
SED_TARGET_BINARY:=bin/sed
-ifeq ($(BR2_LARGEFILE),y)
+ifeq ($(strip $(BUILD_WITH_LARGEFILE)),true)
SED_CPPFLAGS=-D_FILE_OFFSET_BITS=64
endif
SED:=$(STAGING_DIR)/bin/sed -i -e
-
+HOST_SED_TARGET=$(shell package/sed/sedcheck.sh)
$(DL_DIR)/$(SED_SOURCE):
mkdir -p $(DL_DIR)
sed-source: $(DL_DIR)/$(SED_SOURCE)
+#############################################################
+#
+# build sed for use on the host system
+#
+#############################################################
+$(SED_DIR1)/.unpacked: $(DL_DIR)/$(SED_SOURCE)
+ mkdir -p $(TOOL_BUILD_DIR)
+ mkdir -p $(STAGING_DIR)/bin;
+ $(SED_CAT) $(DL_DIR)/$(SED_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
+ touch $(SED_DIR1)/.unpacked
+
+$(SED_DIR1)/.configured: $(SED_DIR1)/.unpacked
+ (cd $(SED_DIR1); rm -rf config.cache; \
+ ./configure \
+ --prefix=$(STAGING_DIR) \
+ --prefix=/usr \
+ );
+ touch $(SED_DIR1)/.configured
+
+$(SED_DIR1)/$(SED_BINARY): $(SED_DIR1)/.configured
+ $(MAKE) -C $(SED_DIR1)
+
+# This stuff is needed to work around GNU make deficiencies
+build-sed-host-binary: $(SED_DIR1)/$(SED_BINARY)
+ @if [ -L $(STAGING_DIR)/$(SED_TARGET_BINARY) ] ; then \
+ rm -f $(STAGING_DIR)/$(SED_TARGET_BINARY); fi;
+ @if [ ! -f $(STAGING_DIR)/$(SED_TARGET_BINARY) -o $(STAGING_DIR)/$(SED_TARGET_BINARY) \
+ -ot $(SED_DIR1)/$(SED_BINARY) ] ; then \
+ set -x; \
+ mkdir -p $(STAGING_DIR)/bin; \
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(SED_DIR1) install; \
+ mv $(STAGING_DIR)/usr/bin/sed $(STAGING_DIR)/bin/; \
+ rm -rf $(STAGING_DIR)/share/locale $(STAGING_DIR)/usr/info \
+ $(STAGING_DIR)/usr/man $(STAGING_DIR)/usr/share/doc; fi
+
+use-sed-host-binary:
+ @if [ -x /usr/bin/sed ]; then SED="/usr/bin/sed"; else \
+ if [ -x /bin/sed ]; then SED="/bin/sed"; fi; fi; \
+ mkdir -p $(STAGING_DIR)/bin; \
+ rm -f $(STAGING_DIR)/$(SED_TARGET_BINARY); \
+ ln -s $$SED $(STAGING_DIR)/$(SED_TARGET_BINARY)
+
+host-sed: $(HOST_SED_TARGET)
+
+host-sed-clean:
+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(SED_DIR1) uninstall
+ -$(MAKE) -C $(SED_DIR1) clean
+
+host-sed-dirclean:
+ rm -rf $(SED_DIR1)
+
+
#############################################################
#
# build sed for use on the target system
#
#############################################################
-$(SED_DIR)/.unpacked: $(DL_DIR)/$(SED_SOURCE)
+$(SED_DIR2)/.unpacked: $(DL_DIR)/$(SED_SOURCE)
$(SED_CAT) $(DL_DIR)/$(SED_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- touch $(SED_DIR)/.unpacked
+ touch $(SED_DIR2)/.unpacked
-$(SED_DIR)/.configured: $(SED_DIR)/.unpacked
- (cd $(SED_DIR); rm -rf config.cache; \
+$(SED_DIR2)/.configured: $(SED_DIR2)/.unpacked
+ (cd $(SED_DIR2); rm -rf config.cache; \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
CPPFLAGS="$(SED_CFLAGS)" \
--infodir=/usr/info \
$(DISABLE_NLS) \
);
- touch $(SED_DIR)/.configured
+ touch $(SED_DIR2)/.configured
-$(SED_DIR)/$(SED_BINARY): $(SED_DIR)/.configured
- $(MAKE) CC=$(TARGET_CC) -C $(SED_DIR)
+$(SED_DIR2)/$(SED_BINARY): $(SED_DIR2)/.configured
+ $(MAKE) CC=$(TARGET_CC) -C $(SED_DIR2)
# This stuff is needed to work around GNU make deficiencies
-sed-target_binary: $(SED_DIR)/$(SED_BINARY)
+sed-target_binary: $(SED_DIR2)/$(SED_BINARY)
@if [ -L $(TARGET_DIR)/$(SED_TARGET_BINARY) ] ; then \
rm -f $(TARGET_DIR)/$(SED_TARGET_BINARY); fi;
- @if [ ! -f $(SED_DIR)/$(SED_BINARY) -o $(TARGET_DIR)/$(SED_TARGET_BINARY) \
- -ot $(SED_DIR)/$(SED_BINARY) ] ; then \
+ @if [ ! -f $(SED_DIR2)/$(SED_BINARY) -o $(TARGET_DIR)/$(SED_TARGET_BINARY) \
+ -ot $(SED_DIR2)/$(SED_BINARY) ] ; then \
set -x; \
- $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(SED_DIR) install; \
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(SED_DIR2) install; \
mv $(TARGET_DIR)/usr/bin/sed $(TARGET_DIR)/bin/; \
rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc; fi
sed: uclibc sed-target_binary
sed-clean:
- $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(SED_DIR) uninstall
- -$(MAKE) -C $(SED_DIR) clean
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(SED_DIR2) uninstall
+ -$(MAKE) -C $(SED_DIR2) clean
sed-dirclean:
- rm -rf $(SED_DIR)
+ rm -rf $(SED_DIR2)
--- /dev/null
+#!/bin/sh
+
+if [ -x /usr/bin/sed ]; then
+ SED="/usr/bin/sed";
+else
+ if [ -x /bin/sed ]; then
+ SED="/bin/sed";
+ fi;
+fi;
+
+echo "HELLO" > .sedtest
+$SED -i -e "s/HELLO/GOODBYE/" .sedtest >/dev/null 2>&1
+
+if [ $? != 0 ] ; then
+ echo build-sed-host-binary
+else
+ echo use-sed-host-binary
+fi;
+rm -f .sedtest
+
+
+++ /dev/null
-#############################################################
-#
-# mksquashfs to build to target squashfs filesystems
-#
-#############################################################
-SQUASHFS_DIR=$(BUILD_DIR)/squashfs1.3r3
-SQUASHFS_SOURCE=squashfs1.3r3.tar.gz
-SQUASHFS_SITE=http://aleron.dl.sourceforge.net/sourceforge/squashfs
-
-$(DL_DIR)/$(SQUASHFS_SOURCE):
- $(WGET) -P $(DL_DIR) $(SQUASHFS_SITE)/$(SQUASHFS_SOURCE)
-
-$(SQUASHFS_DIR): $(DL_DIR)/$(SQUASHFS_SOURCE) #$(SQUASHFS_PATCH)
- zcat $(DL_DIR)/$(SQUASHFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- $(SOURCE_DIR)/patch-kernel.sh $(SQUASHFS_DIR) $(SOURCE_DIR) squashfs.patch
-
-$(SQUASHFS_DIR)/squashfs-tools/mksquashfs: $(SQUASHFS_DIR)
- $(MAKE) -C $(SQUASHFS_DIR)/squashfs-tools;
-
-squashfs: $(SQUASHFS_DIR)/squashfs-tools/mksquashfs
-
-squashfs-source: $(DL_DIR)/$(SQUASHFS_SOURCE)
-
-squashfs-clean:
- -$(MAKE) -C $(SQUASHFS_DIR)/squashfs-tools clean
-
-squashfs-dirclean:
- rm -rf $(SQUASHFS_DIR)
-
-#############################################################
-#
-# Build the squashfs root filesystem image
-#
-#############################################################
-
-squashfsroot: squashfs
- #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
- -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
- @rm -rf $(TARGET_DIR)/usr/man
- @rm -rf $(TARGET_DIR)/usr/info
- #$(SQUASHFS_DIR)/squashfs-tools/mksquashfs -q -D $(SOURCE_DIR)/device_table.txt $(TARGET_DIR) $(IMAGE)
- $(SQUASHFS_DIR)/squashfs-tools/mksquashfs $(TARGET_DIR) $(IMAGE) -noappend -root-owned
-
-squashfsroot-source: squashfs-source
-
-squashfsroot-clean:
- -$(MAKE) -C $(SQUASHFS_DIR) clean
-
-squashfsroot-dirclean:
- rm -rf $(SQUASHFS_DIR)
-
--- /dev/null
+diff -Nur --exclude=CVS xc-011010.src/include/extensions/lbxstr.h xc-011010/include/extensions/lbxstr.h
+--- xc-011010.src/include/extensions/lbxstr.h Tue Jul 31 20:44:35 2001
++++ xc-011010/include/extensions/lbxstr.h Sun Apr 21 12:35:05 2002
+@@ -25,7 +25,7 @@
+ #ifndef _LBXSTR_H_
+ #define _LBXSTR_H_
+
+-#include <X11/extensions/XLbx.h>
++#include "XLbx.h"
+
+ #define LBXNAME "LBX"
+
+diff -Nur --exclude=CVS xc-011010.src/programs/Xserver/hw/kdrive/fbdev/fbdev.h xc-011010/programs/Xserver/hw/kdrive/fbdev/fbdev.h
+--- xc-011010.src/programs/Xserver/hw/kdrive/fbdev/fbdev.h Sun Jun 3 17:52:45 2001
++++ xc-011010/programs/Xserver/hw/kdrive/fbdev/fbdev.h Sun Apr 21 12:36:25 2002
+@@ -29,6 +29,7 @@
+ #include <linux/fb.h>
+ #include <unistd.h>
+ #include <sys/mman.h>
++#include <sys/types.h>
+ #include "kdrive.h"
+ #include "layer.h"
+
+diff -Nur xc-011010.src2/lib/X11/Xlib.h xc-011010/lib/X11/Xlib.h
+--- xc-011010.src/programs/Xserver/hw/kdrive/linux/ts.c Tue Jul 10 22:58:19 2001
++++ xc-011010/programs/Xserver/hw/kdrive/linux/ts.c Tue Apr 23 20:16:23 2002
+@@ -33,65 +33,48 @@
+ #include "kdrive.h"
+ #include "Xpoll.h"
+ #include <sys/ioctl.h>
+-#include <linux/h3600_ts.h> /* touch screen events */
++
++typedef struct {
++ unsigned short pressure;
++ unsigned short x;
++ unsigned short y;
++ unsigned short pad;
++ struct timeval stamp;
++} TS_EVENT;
+
+ static long lastx = 0, lasty = 0;
+ int TsScreen;
+ extern int TsFbdev;
+
+-void
+-TsRead (int tsPort, void *closure)
+-{
+- TS_EVENT event;
+- long buf[3];
+- int n;
+- long pressure;
+- long x, y;
+- unsigned long flags;
+- unsigned long buttons;
+-
+- n = Ps2ReadBytes (tsPort, (char *) &event,
+- sizeof (event), sizeof (event));
+- if (n == sizeof (event))
+- {
+- if (event.pressure)
+- {
+- /*
+- * HACK ATTACK. (static global variables used !)
+- * Here we test for the touch screen driver actually being on the
+- * touch screen, if it is we send absolute coordinates. If not,
+- * then we send delta's so that we can track the entire vga screen.
+- */
+- if (TsScreen == TsFbdev) {
+- flags = KD_BUTTON_1;
+- x = event.x;
+- y = event.y;
+- } else {
+- flags = /* KD_BUTTON_1 |*/ KD_MOUSE_DELTA;
+- if ((lastx == 0) || (lasty == 0)) {
+- x = 0;
+- y = 0;
+- } else {
+- x = event.x - lastx;
+- y = event.y - lasty;
+- }
+- lastx = event.x;
+- lasty = event.y;
+- }
+- } else {
+- flags = KD_MOUSE_DELTA;
+- x = 0;
+- y = 0;
+- lastx = 0;
+- lasty = 0;
+- }
+- KdEnqueueMouseEvent (flags, x, y);
++void TsRead (int tsPort, void *closure) {
++ TS_EVENT event;
++ long buf[3];
++ int n;
++ long pressure;
++ long x, y;
++ unsigned long flags;
++ unsigned long buttons;
++
++ n = Ps2ReadBytes(tsPort, (char *) &event, sizeof (event), sizeof (event));
++ if (n >= sizeof (event)) {
++ if (event.pressure >= 100) {
++ flags = KD_BUTTON_1;
++ x = (960 - event.x) * 640 / (920);
++ y = (960 - event.y) * 480 / (920);
++ //ErrorF("flags %d x %d y %dn",flags,event.x,event.y);
++ }
++ else {
++ flags = KD_MOUSE_DELTA;
++ x = lastx;
++ y = lasty;
+ }
++ KdEnqueueMouseEvent(flags, x, y);
++ }
+ }
+
+ char *TsNames[] = {
+- "/dev/ts",
+- "/dev/h3600_ts" /* temporary name; note this code can try
++ "/dev/ucb1x00-ts",
++ "/dev/ts" /* temporary name; note this code can try
+ to open more than one device */
+ };
+
+@@ -99,9 +82,7 @@
+
+ int TsInputType;
+
+-int
+-TsInit (void)
+-{
++int TsInit (void) {
+ int i;
+ int TsPort;
+
+diff -Nur xc-011010.src/startx xc-011010/startx
+--- ../../buildroot-tux.Apr25-1/build/xc-011010.src/startx Thu Apr 25 05:20:35 2002
++++ xc-011010/startx Sun Apr 28 05:35:35 2002
+@@ -0,0 +1,11 @@
++#!/bin/sh
++killall Xfbdev
++sleep 1
++export DISPLAY=":0"
++/usr/X11R6/bin/Xfbdev -ac &
++sleep 4
++/usr/X11R6/bin/matchbox &
++sleep 1
++/usr/X11R6/bin/minisys &
++/usr/X11R6/bin/minitime &
++/usr/X11R6/bin/rxvt &
+diff -Nur xc-011010.src/lib/Xft/xftgram.y xc-011010/lib/Xft/xftgram.y
+--- ../../buildroot-tux.Apr25-1/build/xc-011010/lib/Xft/xftgram.y Thu Apr 25 05:20:35 2002
++++ xc-011010/lib/Xft/xftgram.y Sun Apr 28 05:35:35 2002
+@@ -165,6 +165,7 @@
+ matrix.yx = $4;
+ matrix.__REALLY_YY__ = $5;
+ }
++ ;
+ number : INTEGER
+ { $$ = (double) $1; }
+ | DOUBLE
+diff -Nur xc-011010.src/programs/twm/gram.y xc-011010/programs/twm/gram.y
+--- ../../buildroot-tux.Apr25-1/build/xc-011010/programs/twm/gram.y Thu Apr 25 05:20:35 2002
++++ xc-011010/programs/twm/gram.y Sun Apr 28 05:35:35 2002
+@@ -650,6 +650,7 @@
+ RemoveDQuote(ptr);
+ $$ = ptr;
+ }
++ ;
+ number : NUMBER { $$ = $1; }
+ ;
+
TINYX_DIR:=$(BUILD_DIR)/xc-011010
TINYX_LDIR:=$(TINYX_DIR)/lib
TINYX_PROGS:=$(TINYX_DIR)/programs
-TINYX_PATCH:=$(SOURCE_DIR)/tinyx-011010.patch
TINYX_SOURCE:=xc-011010.tar.bz2
TINYX_SITE:= http://intimate.handhelds.org/jacques/
TINYX_CF:=$(TINYX_DIR)/config/cf
#
$(TINYX_DIR)/.configure: $(DL_DIR)/$(TINYX_SOURCE) $(DL_DIR)/cross.def $(DL_DIR)/host.def
$(TINYX_CAT) $(DL_DIR)/$(TINYX_SOURCE) | tar -C $(BUILD_DIR) -xvf -
- cat $(TINYX_PATCH) | patch -d $(TINYX_DIR) -p1
+ toolchain/patch-kernel.sh $(TINYX_DIR) package/tinyx/ tinyx*.patch
cp $(DL_DIR)/host.def $(TINYX_CF)/host.def
cp $(DL_DIR)/cross.def $(TINYX_CF)/cross.def
$(SED) 's,arm-uclibc-,$(ARCH)-linux-uclibc-,g' $(TINYX_CF)/cross.def
$(UTIL-LINUX_DIR)/.unpacked: $(DL_DIR)/$(UTIL-LINUX_SOURCE) $(DL_DIR)/$(UTIL-LINUX_PATCH)
$(UTIL-LINUX_CAT) $(DL_DIR)/$(UTIL-LINUX_SOURCE) | tar -C $(BUILD_DIR) -xvf -
$(UTIL-LINUX_CAT) $(DL_DIR)/$(UTIL-LINUX_PATCH) | patch -p1 -d $(UTIL-LINUX_DIR)
- cat $(SOURCE_DIR)/util-linux.patch | patch -p1 -d $(UTIL-LINUX_DIR)
+ toolchain/patch-kernel.sh $(UTIL-LINUX_DIR) package/util-linux/ util-linux*.patch
touch $(UTIL-LINUX_DIR)/.unpacked
$(UTIL-LINUX_DIR)/.configured: $(UTIL-LINUX_DIR)/.unpacked
--- /dev/null
+--- util-linux-2.11z/mount/fstab.c.orig 2003-12-03 15:28:22.000000000 -0700
++++ util-linux-2.11z/mount/fstab.c 2003-12-03 15:28:41.000000000 -0700
+@@ -342,7 +342,7 @@
+ /* Ensure that the lock is released if we are interrupted. */
+ static void
+ handler (int sig) {
+- die (EX_USER, "%s", sys_siglist[sig]);
++ die (EX_USER, "%s", strsignal(sig));
+ }
+
+ static void
+--- /dev/null 2003-09-07 01:55:59.000000000 -0600
++++ util-linux-2.11z/mount/swapargs.h 2003-12-03 15:44:50.000000000 -0700
+@@ -0,0 +1,3 @@
++#define SWAPON_HAS_TWO_ARGS
++#include <asm/page.h>
++#include <sys/swap.h>
+--- util-linux-2.11z/mount/swap.configure.orig 2003-12-03 15:43:24.000000000 -0700
++++ util-linux-2.11z/mount/swap.configure 2003-12-03 15:45:33.000000000 -0700
+@@ -1,6 +1,8 @@
+ # Find out whether we can include <sys/swap.h>
+ # and whether libc thinks that swapon() has two arguments.
+
++exit 0
++
+ # Prepare test
+ CC=${CC-cc}
+ compile="$CC -o conftest conftest.c >/dev/null 2>&1"
VALGRIND_SITE:=http://developer.kde.org/~sewardj/
VALGRIND_DIR:=$(BUILD_DIR)/valgrind-2.1.1
VALGRIND_SOURCE:=valgrind-2.1.1.tar.bz2
-VALGRIND_PATCH:=$(SOURCE_DIR)/valgrind.patch
$(DL_DIR)/$(VALGRIND_SOURCE):
$(WGET) -P $(DL_DIR) $(VALGRIND_SITE)/$(VALGRIND_SOURCE)
touch $(VALGRIND_DIR)/.unpacked
$(VALGRIND_DIR)/.patched: $(VALGRIND_DIR)/.unpacked
- cat $(VALGRIND_PATCH) | patch -d $(VALGRIND_DIR) -p1
+ toolchain/patch-kernel.sh $(VALGRIND_DIR) package/valgrind/ valgrind*.patch
touch $(VALGRIND_DIR)/.patched
$(VALGRIND_DIR)/.configured: $(VALGRIND_DIR)/.patched
--- /dev/null
+--- valgrind-2.1.1.orig/coregrind/vg_syscalls.c 2004-02-24 17:07:10.000000000 -0700
++++ valgrind-2.1.1/coregrind/vg_syscalls.c 2004-04-16 18:13:11.000000000 -0600
+@@ -3231,6 +3245,93 @@
+ case CDROM_CLEAR_OPTIONS: /* 0x5321 */
+ break;
+
++ /* Stuff added by Erik Andersen for general device probing/handling */
++#define BLKSSZGET _IO(0x12,104)
++ case BLKSSZGET:
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(BLKSSZGET)", arg3,
++ sizeof(int));
++ break;
++#undef _IOR
++#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size))
++#define BLKGETSIZE64 _IOR(0x12,114,sizeof(uint64_t))
++ case BLKGETSIZE64:
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(BLKGETSIZE64)", arg3,
++ sizeof(uint64_t));
++ break;
++#define HDIO_GETGEO 0x0301 /* get device geometry */
++ case HDIO_GETGEO:
++ {
++ struct hd_geometry {
++ unsigned char heads;
++ unsigned char sectors;
++ unsigned short cylinders;
++ unsigned long start;
++ };
++
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(HDIO_GETGEO)", arg3,
++ sizeof(struct hd_geometry));
++ }
++ break;
++#define HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
++#define struct_hd_driveid_size 256 /* ATA6 specifies words 0-255 */
++ case HDIO_GET_IDENTITY:
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(HDIO_GET_IDENTITY)", arg3,
++ struct_hd_driveid_size);
++ break;
++#define SCSI_IOCTL_GET_IDLUN 0x5382
++ case SCSI_IOCTL_GET_IDLUN:
++ {
++ struct scsi_idlun
++ {
++ int mux4;
++ int host_unique_id;
++
++ };
++
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_GET_IDLUN)", arg3,
++ sizeof(struct scsi_idlun));
++ }
++ break;
++#define SCSI_IOCTL_SEND_COMMAND 1
++ case SCSI_IOCTL_SEND_COMMAND:
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_SEND_COMMAND)", arg3,
++ ((2 * sizeof(unsigned int)) + 6 + 512));
++ break;
++#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
++ case SCSI_IOCTL_GET_BUS_NUMBER:
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", arg3,
++ sizeof(int));
++ break;
++#define SCSI_IOCTL_PROBE_HOST 0x5385
++ case SCSI_IOCTL_PROBE_HOST:
++ {
++ int xxxx;
++ char *array = (char*)arg3;
++ xxxx = array[0] + (array[1]<<8) + (array[2]<<16) + (array[3]<<24);
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_PROBE_HOST)", arg3,
++ sizeof(int));
++ }
++ break;
++#define BLKFLSBUF _IO(0x12,97)
++ case BLKFLSBUF:
++ break;
++#define BLKRRPART _IO(0x12,95)
++ case BLKRRPART:
++ break;
++#define MTIOCTOP _IO(0x6d,0x1)
++ case MTIOCTOP:
++ {
++ struct mtop
++ {
++ short int mt_op; /* Operations defined below. */
++ int mt_count; /* How many of them. */
++ };
++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(MTIOCTOP)", arg3,
++ sizeof(struct mtop));
++ }
++ break;
++
++
+ /* We don't have any specific information on it, so
+ try to do something reasonable based on direction and
+ size bits. The encoding scheme is described in
+--- valgrind-2.1.1.orig/coregrind/vg_libpthread.c 2004-03-08 08:57:17.000000000 -0700
++++ valgrind-2.1.1/coregrind/vg_libpthread.c 2004-04-16 17:58:31.000000000 -0600
+@@ -3175,6 +3175,8 @@
+ pthread_mutex). So basically, this is completely broken on recent
+ glibcs. */
+
++#ifndef __UCLIBC__
++
+ #undef _IO_flockfile
+ void _IO_flockfile ( _IO_FILE * file )
+ {
+@@ -3192,6 +3194,7 @@
+ weak_alias(_IO_funlockfile, funlockfile);
+ #endif
+
++#endif
+
+ /* This doesn't seem to be needed to simulate libpthread.so's external
+ interface, but many people complain about its absence. */
VTUN_CAT:=zcat
VTUN_BINARY:=vtund
VTUN_TARGET_BINARY:=usr/sbin/vtund
-VTUN_PATCH:=$(SOURCE_DIR)/vtun.patch
$(DL_DIR)/$(VTUN_SOURCE):
$(WGET) -P $(DL_DIR) $(VTUN_SITE)/$(VTUN_SOURCE)
$(VTUN_DIR)/.unpacked: $(DL_DIR)/$(VTUN_SOURCE)
$(VTUN_CAT) $(DL_DIR)/$(VTUN_SOURCE) | tar -C $(BUILD_DIR) -xvf -
mv $(BUILD_DIR)/vtun $(VTUN_DIR)
- cat $(VTUN_PATCH) | patch -p1 -d $(VTUN_DIR)
+ toolchain/patch-kernel.sh $(VTUN_DIR) package/vtun/ vtun*.patch
touch $(VTUN_DIR)/.unpacked
$(VTUN_DIR)/.configured: $(VTUN_DIR)/.unpacked zlib lzo openssl
--- /dev/null
+diff -urN vtun/Makefile.in vtun-2.6/Makefile.in
+--- vtun/Makefile.in 2002-12-20 09:55:47.000000000 -0700
++++ vtun-2.6/Makefile.in 2003-06-05 12:38:31.000000000 -0600
+@@ -28,7 +28,7 @@
+ LEXFLAGS = -t
+
+ INSTALL = @INSTALL@
+-INSTALL_OWNER = -o root -g 0
++INSTALL_OWNER =
+
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+@@ -86,15 +86,15 @@
+
+ install_config:
+ $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR)
+- if [ ! -f $(ETC_DIR)/vtund.conf ]; then \
+- $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); \
+- fi
++ $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR);
++ $(INSTALL) -m 600 $(INSTALL_OWNER) scripts/vtund-start.conf $(DESTDIR)$(ETC_DIR);
+
+ install: vtund install_config install_man
+- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run
+ $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR)
+ $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR)
+ $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR)
+ $(INSTALL) -m 755 $(INSTALL_OWNER) vtund $(DESTDIR)$(SBIN_DIR)
++ $(INSTALL) -m 755 $(INSTALL_OWNER) scripts/vtund.rc.debian \
++ $(DESTDIR)$(ETC_DIR)/init.d/S90vtun
+
+ # DO NOT DELETE THIS LINE -- make depend depends on it.
+diff -urN vtun/scripts/vtund.rc.debian vtun-2.6/scripts/vtund.rc.debian
+--- vtun/scripts/vtund.rc.debian 2000-03-26 10:06:37.000000000 -0700
++++ vtun-2.6/scripts/vtund.rc.debian 2003-06-05 12:38:46.000000000 -0600
+@@ -1,92 +1,48 @@
+-#! /usr/bin/perl -w
++#! /bin/sh
++#
+
+-### vtund-start
+-###
+-### script to start vtund as either a server or a client, according to
+-### the config file /etc/vtund-start.conf
+-###
+-### Copyright 1999 Craig Sanders <cas@taz.net.au>
+-###
+-### Written for the Debian GNU/Linux distribution. This script is free
+-### software licensed under the terms of the GNU General Public License.
+-
+-$DAEMON="/usr/sbin/vtund" ;
+-
+-$do_what = shift ;
+-$args="start|stop|reload|force-reload|restart" ;
+-if ( $do_what !~ /^($args)$/i ) {
+- print "Usage: /etc/init.d/vtun {$args}\n" ;
+- exit 0 ;
+-}
+-
+-$SSD="/sbin/start-stop-daemon" ;
+-$SSDARGS="--verbose --exec $DAEMON" ;
+-
+-$sconf="/etc/vtund-start.conf" ;
+-open(SCONF,"<$sconf") || die "couldn't open $sconf: $!\n" ;
+-while (<SCONF>) {
+- chomp ;
+- s/#.*//;
+- s/^ +| +$//;
+- next if (/^$/) ;
+-
+- @line = split ;
+- $host = shift(@line) ;
+- $server = shift(@line) ;
+- $args = "" ;
+- foreach (@line) { $args .= " $_" } ;
+-
+- $host='' if ($host =~ /--server--/i ) ;
+-
+- if ( $do_what eq 'start' ) {
+- &start($host,$server,$args) ;
+- } elsif ( $do_what eq 'stop' ) {
+- &stop($host,$server,$args) ;
+- } elsif ( $do_what eq 'restart' ) {
+- &stop($pidfile) ;
+- &start($host,$server,$args) ;
+- } elsif ( $do_what =~ /^(reload|force-reload)$/ ) {
+- &reload($host,$server) ;
+- }
+-}
+-close (SCONF);
+-
+-
+-sub start {
+- my($host,$server,$args) = @_ ;
+- print " Starting vtun " ;
+- if ($host eq '') {
+- print "server\n" ;
+- system "$SSD --start $SSDARGS -- $args -s -P $server" ;
+- } else {
+- print "client $host to $server\n" ;
+- $pidfile="/var/run/vtun.$host.$server" ;
+- system "$SSD --start $SSDARGS --pidfile $pidfile -- $args $host $server" ;
+- }
+-} ;
+-
+-sub stop {
+- my($host,$server,$args) = @_ ;
+- print " Stopping vtun " ;
+- if ($host eq '') {
+- print "server\n" ;
+- system "$SSD --stop $SSDARGS" ;
+- } else {
+- print "client $host to $server\n" ;
+- $pidfile="/var/run/vtun.$host.$server" ;
+- system "$SSD --stop $SSDARGS --pidfile $pidfile" ;
+- }
+-} ;
+-
+-sub reload {
+- my($host,$server) = @_ ;
+- print " Reloading vtun " ;
+- if ($host eq '') {
+- print "server\n" ;
+- system "$SSD --stop $SSDARGS --signal 1" ;
+- } else {
+- print "client $host to $server\n" ;
+- $pidfile="/var/run/vtun.$host.$server" ;
+- system "$SSD --stop $SSDARGS --signal 1 --pidfile $pidfile" ;
+- }
+-}
++PATH=/bin:/usr/bin:/sbin:/usr/sbin
++DAEMON=/usr/sbin/vtund
++CONFFILE=/etc/vtund-start.conf
++PIDPREFIX=/var/run/vtund
++
++test -f $DAEMON || exit 0
++
++case "$1" in
++ start)
++ # find all the defined tunnels
++ egrep -v '^[:space:]*(#.*)?$' $CONFFILE | while true;
++ do
++ read i
++ # no more lines available? done, then.
++ if [ $? != 0 ] ; then break; fi
++ SARGS=`echo $i|sed -ne 's/--server--\s*/-s -P /p'`;
++ if [ -n "$SARGS" ];
++ then
++ echo "Starting vtund server."
++ start-stop-daemon -S -x $DAEMON -- $SARGS;
++ else
++ # split args into host and rest
++ HOST=`echo $i|cut -f 1 -d " "`;
++ TARGET=`echo $i|cut -f 2 -d " "`;
++ echo "Starting vtund client $HOST to $TARGET.";
++ start-stop-daemon -S -x $DAEMON -- $i;
++ fi
++ done
++ ;;
++ stop)
++ echo "Stopping vtund.";
++ start-stop-daemon -K -x vtund;
++ ;;
++
++ restart|reload|force-reload)
++ $0 stop
++ sleep 1;
++ $0 start
++ ;;
++ *)
++ echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2
++ exit 1
++ ;;
++esac
++exit 0
+--- vtun-2.6/configure.dist 2004-03-11 10:39:10.000000000 -0600
++++ vtun-2.6/configure 2004-03-11 10:45:52.000000000 -0600
+@@ -2112,7 +2112,7 @@
+ echo $ac_n "checking "for blowfish.h"""... $ac_c" 1>&6
+ echo "configure:2114: checking "for blowfish.h"" >&5
+ ac_hdr_found=no
+- for p in $BLOWFISH_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto; do
++ for p in $BLOWFISH_HDR_DIR $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto; do
+ if test -n "$p"; then
+ dir="$p"
+ else
+++ /dev/null
-ac_cv_func_setvbuf_reversed=no
+++ /dev/null
-# Boa v0.94 configuration file
-# File format has not changed from 0.93
-# File format has changed little from 0.92
-# version changes are noted in the comments
-#
-# The Boa configuration file is parsed with a lex/yacc or flex/bison
-# generated parser. If it reports an error, the line number will be
-# provided; it should be easy to spot. The syntax of each of these
-# rules is very simple, and they can occur in any order. Where possible
-# these directives mimic those of NCSA httpd 1.3; I saw no reason to
-# introduce gratuitous differences.
-
-# $Id: boa.conf,v 1.1 2001/12/22 00:56:12 andersen Exp $
-
-# The "ServerRoot" is not in this configuration file. It can be compiled
-# into the server (see defines.h) or specified on the command line with
-# the -c option, for example:
-#
-# boa -c /usr/local/boa
-
-
-# Port: The port Boa runs on. The default port for http servers is 80.
-# If it is less than 1024, the server must be started as root.
-
-Port 80
-
-# Listen: the Internet address to bind(2) to. If you leave it out,
-# it takes the behavior before 0.93.17.2, which is to bind to all
-# addresses (INADDR_ANY). You only get one "Listen" directive,
-# if you want service on multiple IP addresses, you have three choices:
-# 1. Run boa without a "Listen" directive
-# a. All addresses are treated the same; makes sense if the addresses
-# are localhost, ppp, and eth0.
-# b. Use the VirtualHost directive below to point requests to different
-# files. Should be good for a very large number of addresses (web
-# hosting clients).
-# 2. Run one copy of boa per IP address, each has its own configuration
-# with a "Listen" directive. No big deal up to a few tens of addresses.
-# Nice separation between clients.
-# The name you provide gets run through inet_aton(3), so you have to use dotted
-# quad notation. This configuration is too important to trust some DNS.
-
-#Listen 192.68.0.5
-
-# User: The name or UID the server should run as.
-# Group: The group name or GID the server should run as.
-
-User nobody
-Group nobody
-
-# ServerAdmin: The email address where server problems should be sent.
-# Note: this is not currently used, except as an environment variable
-# for CGIs.
-
-#ServerAdmin root@localhost
-
-# ErrorLog: The location of the error log file. If this does not start
-# with /, it is considered relative to the server root.
-# Set to /dev/null if you don't want errors logged.
-# If unset, defaults to /dev/stderr
-
-ErrorLog /var/log/boa/error_log
-# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
-# is somewhat experimental and might fail under heavy load.
-# "Usual libc implementations of printf will stall the whole
-# process if the receiving end of a pipe stops reading."
-#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log"
-
-# AccessLog: The location of the access log file. If this does not
-# start with /, it is considered relative to the server root.
-# Comment out or set to /dev/null (less effective) to disable
-# Access logging.
-
-AccessLog /var/log/boa/access_log
-# Please NOTE: Sending the logs to a pipe ('|'), as shown below,
-# is somewhat experimental and might fail under heavy load.
-# "Usual libc implementations of printf will stall the whole
-# process if the receiving end of a pipe stops reading."
-#AccessLog "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log"
-
-# UseLocaltime: Logical switch. Uncomment to use localtime
-# instead of UTC time
-#UseLocaltime
-
-# VerboseCGILogs: this is just a logical switch.
-# It simply notes the start and stop times of cgis in the error log
-# Comment out to disable.
-
-#VerboseCGILogs
-
-# ServerName: the name of this server that should be sent back to
-# clients if different than that returned by gethostname + gethostbyname
-
-#ServerName www.your.org.here
-
-# VirtualHost: a logical switch.
-# Comment out to disable.
-# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A'
-# become /var/www/IP-A.
-# Example: http://localhost/ becomes /var/www/127.0.0.1
-#
-# Not used until version 0.93.17.2. This "feature" also breaks commonlog
-# output rules, it prepends the interface number to each access_log line.
-# You are expected to fix that problem with a postprocessing script.
-
-#VirtualHost
-
-# DocumentRoot: The root directory of the HTML documents.
-# Comment out to disable server non user files.
-
-DocumentRoot /var/www
-
-# UserDir: The name of the directory which is appended onto a user's home
-# directory if a ~user request is recieved.
-
-UserDir public_html
-
-# DirectoryIndex: Name of the file to use as a pre-written HTML
-# directory index. Please MAKE AND USE THESE FILES. On the
-# fly creation of directory indexes can be _slow_.
-# Comment out to always use DirectoryMaker
-
-DirectoryIndex index.html
-
-# DirectoryMaker: Name of program used to create a directory listing.
-# Comment out to disable directory listings. If both this and
-# DirectoryIndex are commented out, accessing a directory will give
-# an error (though accessing files in the directory are still ok).
-
-DirectoryMaker /usr/lib/boa/boa_indexer
-
-# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker
-# has been commented out, the the on-the-fly indexing of Boa can be used
-# to generate indexes of directories. Be warned that the output is
-# extremely minimal and can cause delays when slow disks are used.
-# Note: The DirectoryCache must be writable by the same user/group that
-# Boa runs as.
-
-# DirectoryCache /var/spool/boa/dircache
-
-# KeepAliveMax: Number of KeepAlive requests to allow per connection
-# Comment out, or set to 0 to disable keepalive processing
-
-KeepAliveMax 1000
-
-# KeepAliveTimeout: seconds to wait before keepalive connection times out
-
-KeepAliveTimeout 10
-
-# MimeTypes: This is the file that is used to generate mime type pairs
-# and Content-Type fields for boa.
-# Set to /dev/null if you do not want to load a mime types file.
-# Do *not* comment out (better use AddType!)
-
-MimeTypes /etc/mime.types
-
-# DefaultType: MIME type used if the file extension is unknown, or there
-# is no file extension.
-
-DefaultType text/plain
-
-# AddType: adds types without editing mime.types
-# Example: AddType type extension [extension ...]
-
-# Uncomment the next line if you want .cgi files to execute from anywhere
-#AddType application/x-httpd-cgi cgi
-
-# Redirect, Alias, and ScriptAlias all have the same semantics -- they
-# match the beginning of a request and take appropriate action. Use
-# Redirect for other servers, Alias for the same server, and ScriptAlias
-# to enable directories for script execution.
-
-# Redirect allows you to tell clients about documents which used to exist in
-# your server's namespace, but do not anymore. This allows you to tell the
-# clients where to look for the relocated document.
-# Example: Redirect /bar http://elsewhere/feh/bar
-
-# Aliases: Aliases one path to another.
-# Example: Alias /path1/bar /path2/foo
-
-# Alias /doc /usr/doc
-
-# ScriptAlias: Maps a virtual path to a directory for serving scripts
-# Example: ScriptAlias /htbin/ /www/htbin/
-
-ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
-
+++ /dev/null
---- bridge-utils-0.9.6/libbridge/Makefile.in.dist 2004-03-01 20:55:52.000000000 -0600
-+++ bridge-utils-0.9.6/libbridge/Makefile.in 2004-03-01 20:56:23.000000000 -0600
-@@ -5,7 +5,7 @@
- RANLIB=@RANLIB@
-
- CC=@CC@
--CFLAGS = -Wall -g $(KERNEL_HEADERS)
-+CFLAGS = -Wall -g @CFLAGS@ $(KERNEL_HEADERS)
-
- prefix=@prefix@
- exec_prefix=@exec_prefix@
+++ /dev/null
---- cramfs-1.1.orig/cramfsck.c 2002-02-22 17:00:42.000000000 -0700
-+++ cramfs-1.1/cramfsck.c 2002-12-21 01:25:17.000000000 -0700
-@@ -51,10 +51,11 @@
- #include <utime.h>
- #include <sys/ioctl.h>
- #define _LINUX_STRING_H_
--#include <linux/fs.h>
--#include <linux/cramfs_fs.h>
-+#include "linux/cramfs_fs.h"
- #include <zlib.h>
-
-+#define BLKGETSIZE _IO(0x12,96) /* return device size /512 (long *arg) */
-+
- /* Exit codes used by fsck-type programs */
- #define FSCK_OK 0 /* No errors */
- #define FSCK_NONDESTRUCT 1 /* File system errors corrected */
-@@ -75,7 +76,7 @@
- static int opt_verbose = 0; /* 1 = verbose (-v), 2+ = very verbose (-vv) */
- #ifdef INCLUDE_FS_TESTS
- static int opt_extract = 0; /* extract cramfs (-x) */
--static char *extract_dir = "root"; /* extraction directory (-x) */
-+static char *extract_dir = "/"; /* extraction directory (-x) */
- static uid_t euid; /* effective UID */
-
- /* (cramfs_super + start) <= start_dir < end_dir <= start_data <= end_data */
-@@ -155,7 +156,7 @@
- }
-
- if (*length < sizeof(struct cramfs_super)) {
-- die(FSCK_UNCORRECTED, 0, "file length too short");
-+ die(FSCK_UNCORRECTED, 0, "filesystem smaller than a cramfs superblock!");
- }
-
- /* find superblock */
-@@ -190,7 +191,8 @@
- die(FSCK_UNCORRECTED, 0, "zero file count");
- }
- if (*length < super.size) {
-- die(FSCK_UNCORRECTED, 0, "file length too short");
-+ die(FSCK_UNCORRECTED, 0, "file length too short, %lu is smaller than %lu",
-+ *length, super.size);
- }
- else if (*length > super.size) {
- fprintf(stderr, "warning: file extends past end of filesystem\n");
-@@ -267,11 +269,11 @@
- #ifdef INCLUDE_FS_TESTS
- static void print_node(char type, struct cramfs_inode *i, char *name)
- {
-- char info[10];
-+ char info[11];
-
- if (S_ISCHR(i->mode) || (S_ISBLK(i->mode))) {
- /* major/minor numbers can be as high as 2^12 or 4096 */
-- snprintf(info, 10, "%4d,%4d", major(i->size), minor(i->size));
-+ snprintf(info, 11, "%4d,%4d", major(i->size), minor(i->size));
- }
- else {
- /* size be as high as 2^24 or 16777216 */
-@@ -445,8 +447,10 @@
- }
- /* TODO: Do we need to check end_dir for empty case? */
- memcpy(newpath, path, pathlen);
-- newpath[pathlen] = '/';
-- pathlen++;
-+ if (pathlen > 1) {
-+ newpath[pathlen] = '/';
-+ pathlen++;
-+ }
- if (opt_verbose) {
- print_node('d', i, path);
- }
---- cramfs-1.1.orig/device_table.txt 1969-12-31 17:00:00.000000000 -0700
-+++ cramfs-1.1/device_table.txt 2003-01-01 05:13:44.000000000 -0700
-@@ -0,0 +1,129 @@
-+# When building a target filesystem, it is desirable to not have to
-+# become root and then run 'mknod' a thousand times. Using a device
-+# table you can create device nodes and directories "on the fly".
-+#
-+# This is a sample device table file for use with mkcramfs. You can
-+# do all sorts of interesting things with a device table file. For
-+# example, if you want to adjust the permissions on a particular file
-+# you can just add an entry like:
-+# /sbin/foobar f 2755 0 0 - - - - -
-+# and (assuming the file /sbin/foobar exists) it will be made setuid
-+# root (regardless of what its permissions are on the host filesystem.
-+# Furthermore, you can use a single table entry to create a many device
-+# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
-+# I could just use the following two table entries:
-+# /dev/hda b 640 0 0 3 0 0 0 -
-+# /dev/hda b 640 0 0 3 1 1 1 15
-+#
-+# Device table entries take the form of:
-+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+# where name is the file name, type can be one of:
-+# f A regular file
-+# d Directory
-+# c Character special device file
-+# b Block special device file
-+# p Fifo (named pipe)
-+# uid is the user id for the target file, gid is the group id for the
-+# target file. The rest of the entries (major, minor, etc) apply only
-+# to device special files.
-+
-+# Have fun
-+# -Erik Andersen <andersen@codepoet.org>
-+#
-+
-+#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+/dev d 755 0 0 - - - - -
-+/dev/mem c 640 0 0 1 1 0 0 -
-+/dev/kmem c 640 0 0 1 2 0 0 -
-+/dev/null c 640 0 0 1 3 0 0 -
-+/dev/zero c 640 0 0 1 5 0 0 -
-+/dev/random c 640 0 0 1 8 0 0 -
-+/dev/urandom c 640 0 0 1 9 0 0 -
-+/dev/tty c 666 0 0 5 0 0 0 -
-+/dev/tty c 666 0 0 4 0 0 1 6
-+/dev/console c 640 0 0 5 1 0 0 -
-+/dev/ram b 640 0 0 1 1 0 0 -
-+/dev/ram b 640 0 0 1 0 0 1 4
-+/dev/loop b 640 0 0 7 0 0 1 2
-+/dev/ptmx c 666 0 0 5 2 0 0 -
-+#/dev/ttyS c 640 0 0 4 64 0 1 4
-+#/dev/psaux c 640 0 0 10 1 0 0 -
-+#/dev/rtc c 640 0 0 10 135 0 0 -
-+
-+# Adjust permissions on some normal files
-+#/etc/shadow f 600 0 0 - - - - -
-+#/bin/tinylogin f 4755 0 0 - - - - -
-+
-+# User-mode Linux stuff
-+/dev/ubda b 640 0 0 98 0 0 0 -
-+/dev/ubda b 640 0 0 98 1 1 1 15
-+
-+# IDE Devices
-+/dev/hda b 640 0 0 3 0 0 0 -
-+/dev/hda b 640 0 0 3 1 1 1 15
-+/dev/hdb b 640 0 0 3 64 0 0 -
-+/dev/hdb b 640 0 0 3 65 1 1 15
-+#/dev/hdc b 640 0 0 22 0 0 0 -
-+#/dev/hdc b 640 0 0 22 1 1 1 15
-+#/dev/hdd b 640 0 0 22 64 0 0 -
-+#/dev/hdd b 640 0 0 22 65 1 1 15
-+#/dev/hde b 640 0 0 33 0 0 0 -
-+#/dev/hde b 640 0 0 33 1 1 1 15
-+#/dev/hdf b 640 0 0 33 64 0 0 -
-+#/dev/hdf b 640 0 0 33 65 1 1 15
-+#/dev/hdg b 640 0 0 34 0 0 0 -
-+#/dev/hdg b 640 0 0 34 1 1 1 15
-+#/dev/hdh b 640 0 0 34 64 0 0 -
-+#/dev/hdh b 640 0 0 34 65 1 1 15
-+
-+# SCSI Devices
-+#/dev/sda b 640 0 0 8 0 0 0 -
-+#/dev/sda b 640 0 0 8 1 1 1 15
-+#/dev/sdb b 640 0 0 8 16 0 0 -
-+#/dev/sdb b 640 0 0 8 17 1 1 15
-+#/dev/sdc b 640 0 0 8 32 0 0 -
-+#/dev/sdc b 640 0 0 8 33 1 1 15
-+#/dev/sdd b 640 0 0 8 48 0 0 -
-+#/dev/sdd b 640 0 0 8 49 1 1 15
-+#/dev/sde b 640 0 0 8 64 0 0 -
-+#/dev/sde b 640 0 0 8 65 1 1 15
-+#/dev/sdf b 640 0 0 8 80 0 0 -
-+#/dev/sdf b 640 0 0 8 81 1 1 15
-+#/dev/sdg b 640 0 0 8 96 0 0 -
-+#/dev/sdg b 640 0 0 8 97 1 1 15
-+#/dev/sdh b 640 0 0 8 112 0 0 -
-+#/dev/sdh b 640 0 0 8 113 1 1 15
-+#/dev/sg c 640 0 0 21 0 0 1 15
-+#/dev/scd b 640 0 0 11 0 0 1 15
-+#/dev/st c 640 0 0 9 0 0 1 8
-+#/dev/nst c 640 0 0 9 128 0 1 8
-+#/dev/st c 640 0 0 9 32 1 1 4
-+#/dev/st c 640 0 0 9 64 1 1 4
-+#/dev/st c 640 0 0 9 96 1 1 4
-+
-+# Floppy disk devices
-+#/dev/fd b 640 0 0 2 0 0 1 2
-+#/dev/fd0d360 b 640 0 0 2 4 0 0 -
-+#/dev/fd1d360 b 640 0 0 2 5 0 0 -
-+#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
-+#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
-+#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
-+#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
-+#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
-+#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
-+
-+# All the proprietary cdrom devices in the world
-+#/dev/aztcd b 640 0 0 29 0 0 0 -
-+#/dev/bpcd b 640 0 0 41 0 0 0 -
-+#/dev/capi20 c 640 0 0 68 0 0 1 2
-+#/dev/cdu31a b 640 0 0 15 0 0 0 -
-+#/dev/cdu535 b 640 0 0 24 0 0 0 -
-+#/dev/cm206cd b 640 0 0 32 0 0 0 -
-+#/dev/sjcd b 640 0 0 18 0 0 0 -
-+#/dev/sonycd b 640 0 0 15 0 0 0 -
-+#/dev/gscd b 640 0 0 16 0 0 0 -
-+#/dev/sbpcd b 640 0 0 25 0 0 0 -
-+#/dev/sbpcd b 640 0 0 25 0 0 1 4
-+#/dev/mcd b 640 0 0 23 0 0 0 -
-+#/dev/optcd b 640 0 0 17 0 0 0 -
-+
---- cramfs-1.1.orig/mkcramfs.c 2002-02-20 01:03:32.000000000 -0700
-+++ cramfs-1.1/mkcramfs.c 2002-12-21 01:25:17.000000000 -0700
-@@ -1,3 +1,4 @@
-+/* vi: set sw=8 ts=8: */
- /*
- * mkcramfs - make a cramfs file system
- *
-@@ -16,12 +17,21 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ * Added device table support (code taken from mkfs.jffs2.c, credit to
-+ * Erik Andersen <andersen@codepoet.org>) as well as an option to squash
-+ * permissions. - Russ Dill <Russ.Dill@asu.edu> September 2002
-+ *
-+ * Reworked, cleaned up, and updated for cramfs-1.1, December 2002
-+ * - Erik Andersen <andersen@codepoet.org>
-+ *
- */
-
- /*
- * If you change the disk format of cramfs, please update fs/cramfs/README.
- */
-
-+#define _GNU_SOURCE
- #include <sys/types.h>
- #include <stdio.h>
- #include <sys/stat.h>
-@@ -33,8 +43,15 @@
- #include <errno.h>
- #include <string.h>
- #include <stdarg.h>
-+#include <libgen.h>
-+#include <ctype.h>
-+#include <assert.h>
-+#include <getopt.h>
- #include <linux/cramfs_fs.h>
- #include <zlib.h>
-+#ifdef DMALLOC
-+#include <dmalloc.h>
-+#endif
-
- /* Exit codes used by mkfs-type programs */
- #define MKFS_OK 0 /* No errors */
-@@ -71,11 +88,17 @@
- + (1 << CRAMFS_SIZE_WIDTH) - 1 /* filesize */ \
- + (1 << CRAMFS_SIZE_WIDTH) * 4 / PAGE_CACHE_SIZE /* block pointers */ )
-
-+
-+/* The kernel assumes PAGE_CACHE_SIZE as block size. */
-+#define PAGE_CACHE_SIZE (4096)
-+
-+
- static const char *progname = "mkcramfs";
- static unsigned int blksize = PAGE_CACHE_SIZE;
- static long total_blocks = 0, total_nodes = 1; /* pre-count the root node */
- static int image_length = 0;
-
-+
- /*
- * If opt_holes is set, then mkcramfs can create explicit holes in the
- * data, which saves 26 bytes per hole (which is a lot smaller a
-@@ -91,10 +114,12 @@
- static int opt_holes = 0;
- static int opt_pad = 0;
- static int opt_verbose = 0;
-+static int opt_squash = 0;
- static char *opt_image = NULL;
- static char *opt_name = NULL;
-
- static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
-+static const char *const memory_exhausted = "memory exhausted";
-
- /* In-core version of inode / directory entry. */
- struct entry {
-@@ -123,7 +148,7 @@
- {
- FILE *stream = status ? stderr : stdout;
-
-- fprintf(stream, "usage: %s [-h] [-e edition] [-i file] [-n name] dirname outfile\n"
-+ fprintf(stream, "usage: %s [-h] [-e edition] [-i file] [-n name] [-D file] dirname outfile\n"
- " -h print this help\n"
- " -E make all warnings errors (non-zero exit status)\n"
- " -e edition set edition number (part of fsid)\n"
-@@ -133,39 +158,157 @@
- " -s sort directory entries (old option, ignored)\n"
- " -v be more verbose\n"
- " -z make explicit holes (requires >= 2.3.39)\n"
-- " dirname root of the directory tree to be compressed\n"
-+ " -D Use the named FILE as a device table file\n"
-+ " -q squash permissions (make everything owned by root)\n"
-+ " dirname root of the filesystem to be compressed\n"
- " outfile output file\n", progname, PAD_SIZE);
-
- exit(status);
- }
-
--static void die(int status, int syserr, const char *fmt, ...)
-+static void verror_msg(const char *s, va_list p)
-+{
-+ fflush(stdout);
-+ fprintf(stderr, "mkcramfs: ");
-+ vfprintf(stderr, s, p);
-+}
-+
-+static void vperror_msg(const char *s, va_list p)
-+{
-+ int err = errno;
-+
-+ if (s == 0)
-+ s = "";
-+ verror_msg(s, p);
-+ if (*s)
-+ s = ": ";
-+ fprintf(stderr, "%s%s\n", s, strerror(err));
-+}
-+
-+static void perror_msg(const char *s, ...)
-+{
-+ va_list p;
-+
-+ va_start(p, s);
-+ vperror_msg(s, p);
-+ va_end(p);
-+}
-+
-+static void error_msg_and_die(const char *s, ...)
-+{
-+ va_list p;
-+
-+ va_start(p, s);
-+ verror_msg(s, p);
-+ va_end(p);
-+ putc('\n', stderr);
-+ exit(MKFS_ERROR);
-+}
-+
-+static void perror_msg_and_die(const char *s, ...)
-+{
-+ va_list p;
-+
-+ va_start(p, s);
-+ vperror_msg(s, p);
-+ va_end(p);
-+ exit(MKFS_ERROR);
-+}
-+#ifndef DMALLOC
-+extern char *xstrdup(const char *s)
-+{
-+ char *t;
-+
-+ if (s == NULL)
-+ return NULL;
-+ t = strdup(s);
-+ if (t == NULL)
-+ error_msg_and_die(memory_exhausted);
-+ return t;
-+}
-+
-+extern void *xmalloc(size_t size)
-+{
-+ void *ptr = malloc(size);
-+
-+ if (ptr == NULL && size != 0)
-+ error_msg_and_die(memory_exhausted);
-+ return ptr;
-+}
-+
-+extern void *xcalloc(size_t nmemb, size_t size)
-+{
-+ void *ptr = calloc(nmemb, size);
-+
-+ if (ptr == NULL && nmemb != 0 && size != 0)
-+ error_msg_and_die(memory_exhausted);
-+ return ptr;
-+}
-+
-+extern void *xrealloc(void *ptr, size_t size)
-+{
-+ ptr = realloc(ptr, size);
-+ if (ptr == NULL && size != 0)
-+ error_msg_and_die(memory_exhausted);
-+ return ptr;
-+}
-+#endif
-+
-+static FILE *xfopen(const char *path, const char *mode)
- {
-- va_list arg_ptr;
-- int save = errno;
-+ FILE *fp;
-+
-+ if ((fp = fopen(path, mode)) == NULL)
-+ perror_msg_and_die("%s", path);
-+ return fp;
-+}
-
-- fflush(0);
-- va_start(arg_ptr, fmt);
-- fprintf(stderr, "%s: ", progname);
-- vfprintf(stderr, fmt, arg_ptr);
-- if (syserr) {
-- fprintf(stderr, ": %s", strerror(save));
-+extern int xopen(const char *pathname, int flags, mode_t mode)
-+{
-+ int ret;
-+
-+ if (flags & O_CREAT)
-+ ret = open(pathname, flags, mode);
-+ else
-+ ret = open(pathname, flags);
-+ if (ret == -1) {
-+ perror_msg_and_die("%s", pathname);
- }
-- fprintf(stderr, "\n");
-- va_end(arg_ptr);
-- exit(status);
-+ return ret;
- }
-
-+extern char *xreadlink(const char *path)
-+{
-+ static const int GROWBY = 80; /* how large we will grow strings by */
-+
-+ char *buf = NULL;
-+ int bufsize = 0, readsize = 0;
-+
-+ do {
-+ buf = xrealloc(buf, bufsize += GROWBY);
-+ readsize = readlink(path, buf, bufsize); /* 1st try */
-+ if (readsize == -1) {
-+ perror_msg("%s:%s", progname, path);
-+ return NULL;
-+ }
-+ }
-+ while (bufsize < readsize + 1);
-+
-+ buf[readsize] = '\0';
-+
-+ return buf;
-+}
-+
- static void map_entry(struct entry *entry)
- {
- if (entry->path) {
- entry->fd = open(entry->path, O_RDONLY);
- if (entry->fd < 0) {
-- die(MKFS_ERROR, 1, "open failed: %s", entry->path);
-+ error_msg_and_die("open failed: %s", entry->path);
- }
- entry->uncompressed = mmap(NULL, entry->size, PROT_READ, MAP_PRIVATE, entry->fd, 0);
- if (entry->uncompressed == MAP_FAILED) {
-- die(MKFS_ERROR, 1, "mmap failed: %s", entry->path);
-+ error_msg_and_die("mmap failed: %s", entry->path);
- }
- }
- }
-@@ -174,8 +317,9 @@
- {
- if (entry->path) {
- if (munmap(entry->uncompressed, entry->size) < 0) {
-- die(MKFS_ERROR, 1, "munmap failed: %s", entry->path);
-+ error_msg_and_die("munmap failed: %s", entry->path);
- }
-+ entry->uncompressed=NULL;
- close(entry->fd);
- }
- }
-@@ -204,7 +348,8 @@
- find_identical_file(orig->next, newfile));
- }
-
--static void eliminate_doubles(struct entry *root, struct entry *orig) {
-+static void eliminate_doubles(struct entry *root, struct entry *orig)
-+{
- if (orig) {
- if (orig->size && (orig->path || orig->uncompressed))
- find_identical_file(root, orig);
-@@ -232,10 +377,7 @@
-
- /* Set up the path. */
- /* TODO: Reuse the parent's buffer to save memcpy'ing and duplication. */
-- path = malloc(len + 1 + MAX_INPUT_NAMELEN + 1);
-- if (!path) {
-- die(MKFS_ERROR, 1, "malloc failed");
-- }
-+ path = xmalloc(len + 1 + MAX_INPUT_NAMELEN + 1);
- memcpy(path, name, len);
- endpath = path + len;
- *endpath = '/';
-@@ -245,7 +387,7 @@
- dircount = scandir(name, &dirlist, 0, cramsort);
-
- if (dircount < 0) {
-- die(MKFS_ERROR, 1, "scandir failed: %s", name);
-+ error_msg_and_die("scandir failed: %s", name);
- }
-
- /* process directory */
-@@ -269,25 +411,20 @@
- }
- namelen = strlen(dirent->d_name);
- if (namelen > MAX_INPUT_NAMELEN) {
-- die(MKFS_ERROR, 0,
-- "very long (%u bytes) filename found: %s\n"
-- "please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile",
-+ error_msg_and_die(
-+ "Very long (%u bytes) filename `%s' found.\n"
-+ " Please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile. Exiting.\n",
- namelen, dirent->d_name);
- }
- memcpy(endpath, dirent->d_name, namelen + 1);
-
- if (lstat(path, &st) < 0) {
-+ perror(endpath);
- warn_skip = 1;
- continue;
- }
-- entry = calloc(1, sizeof(struct entry));
-- if (!entry) {
-- die(MKFS_ERROR, 1, "calloc failed");
-- }
-- entry->name = strdup(dirent->d_name);
-- if (!entry->name) {
-- die(MKFS_ERROR, 1, "strdup failed");
-- }
-+ entry = xcalloc(1, sizeof(struct entry));
-+ entry->name = xstrdup(dirent->d_name);
- /* truncate multi-byte UTF-8 filenames on character boundary */
- if (namelen > CRAMFS_MAXPATHLEN) {
- namelen = CRAMFS_MAXPATHLEN;
-@@ -297,24 +434,25 @@
- namelen--;
- /* are we reasonably certain it was UTF-8 ? */
- if (entry->name[namelen] < 0x80 || !namelen) {
-- die(MKFS_ERROR, 0, "cannot truncate filenames not encoded in UTF-8");
-+ error_msg_and_die("cannot truncate filenames not encoded in UTF-8");
- }
- }
- entry->name[namelen] = '\0';
- }
- entry->mode = st.st_mode;
- entry->size = st.st_size;
-- entry->uid = st.st_uid;
-+ entry->uid = opt_squash ? 0 : st.st_uid;
- if (entry->uid >= 1 << CRAMFS_UID_WIDTH)
- warn_uid = 1;
-- entry->gid = st.st_gid;
-- if (entry->gid >= 1 << CRAMFS_GID_WIDTH)
-+ entry->gid = opt_squash ? 0 : st.st_gid;
-+ if (entry->gid >= 1 << CRAMFS_GID_WIDTH) {
- /* TODO: We ought to replace with a default
- gid instead of truncating; otherwise there
- are security problems. Maybe mode should
- be &= ~070. Same goes for uid once Linux
- supports >16-bit uids. */
- warn_gid = 1;
-+ }
- size = sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
- *fslen_ub += size;
- if (S_ISDIR(st.st_mode)) {
-@@ -325,21 +463,15 @@
- warn_skip = 1;
- continue;
- }
-- entry->path = strdup(path);
-- if (!entry->path) {
-- die(MKFS_ERROR, 1, "strdup failed");
-- }
-+ entry->path = xstrdup(path);
- if ((entry->size >= 1 << CRAMFS_SIZE_WIDTH)) {
- warn_size = 1;
- entry->size = (1 << CRAMFS_SIZE_WIDTH) - 1;
- }
- }
- } else if (S_ISLNK(st.st_mode)) {
-- entry->uncompressed = malloc(entry->size);
-+ entry->uncompressed = xreadlink(path);
- if (!entry->uncompressed) {
-- die(MKFS_ERROR, 1, "malloc failed");
-- }
-- if (readlink(path, entry->uncompressed, entry->size) < 0) {
- warn_skip = 1;
- continue;
- }
-@@ -351,7 +483,7 @@
- if (entry->size & -(1<<CRAMFS_SIZE_WIDTH))
- warn_dev = 1;
- } else {
-- die(MKFS_ERROR, 0, "bogus file type: %s", entry->name);
-+ error_msg_and_die("bogus file type: %s", entry->name);
- }
-
- if (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode)) {
-@@ -378,7 +510,9 @@
- struct cramfs_super *super = (struct cramfs_super *) base;
- unsigned int offset = sizeof(struct cramfs_super) + image_length;
-
-- offset += opt_pad; /* 0 if no padding */
-+ if (opt_pad) {
-+ offset += opt_pad; /* 0 if no padding */
-+ }
-
- super->magic = CRAMFS_MAGIC;
- super->flags = CRAMFS_FLAG_FSID_VERSION_2 | CRAMFS_FLAG_SORTED_DIRS;
-@@ -414,10 +548,10 @@
- struct cramfs_inode *inode = (struct cramfs_inode *) (base + entry->dir_offset);
-
- if ((offset & 3) != 0) {
-- die(MKFS_ERROR, 0, "illegal offset of %lu bytes", offset);
-+ error_msg_and_die("illegal offset of %lu bytes", offset);
- }
- if (offset >= (1 << (2 + CRAMFS_OFFSET_WIDTH))) {
-- die(MKFS_ERROR, 0, "filesystem too big");
-+ error_msg_and_die("filesystem too big");
- }
- inode->offset = (offset >> 2);
- }
-@@ -429,7 +563,7 @@
- */
- static void print_node(struct entry *e)
- {
-- char info[10];
-+ char info[12];
- char type = '?';
-
- if (S_ISREG(e->mode)) type = 'f';
-@@ -442,11 +576,11 @@
-
- if (S_ISCHR(e->mode) || (S_ISBLK(e->mode))) {
- /* major/minor numbers can be as high as 2^12 or 4096 */
-- snprintf(info, 10, "%4d,%4d", major(e->size), minor(e->size));
-+ snprintf(info, 11, "%4d,%4d", major(e->size), minor(e->size));
- }
- else {
- /* size be as high as 2^24 or 16777216 */
-- snprintf(info, 10, "%9d", e->size);
-+ snprintf(info, 11, "%9d", e->size);
- }
-
- printf("%c %04o %s %5d:%-3d %s\n",
-@@ -462,17 +596,9 @@
- {
- int stack_entries = 0;
- int stack_size = 64;
-- struct entry **entry_stack;
--
-- entry_stack = malloc(stack_size * sizeof(struct entry *));
-- if (!entry_stack) {
-- die(MKFS_ERROR, 1, "malloc failed");
-- }
--
-- if (opt_verbose) {
-- printf("root:\n");
-- }
-+ struct entry **entry_stack = NULL;
-
-+ entry_stack = xmalloc(stack_size * sizeof(struct entry *));
- for (;;) {
- int dir_start = stack_entries;
- while (entry) {
-@@ -506,10 +632,7 @@
- if (entry->child) {
- if (stack_entries >= stack_size) {
- stack_size *= 2;
-- entry_stack = realloc(entry_stack, stack_size * sizeof(struct entry *));
-- if (!entry_stack) {
-- die(MKFS_ERROR, 1, "realloc failed");
-- }
-+ entry_stack = xrealloc(entry_stack, stack_size * sizeof(struct entry *));
- }
- entry_stack[stack_entries] = entry;
- stack_entries++;
-@@ -543,7 +666,7 @@
-
- set_data_offset(entry, base, offset);
- if (opt_verbose) {
-- printf("%s:\n", entry->name);
-+ printf("'%s':\n", entry->name);
- }
- entry = entry->child;
- }
-@@ -553,16 +676,21 @@
-
- static int is_zero(char const *begin, unsigned len)
- {
-- /* Returns non-zero iff the first LEN bytes from BEGIN are all NULs. */
-- return (len-- == 0 ||
-- (begin[0] == '\0' &&
-- (len-- == 0 ||
-- (begin[1] == '\0' &&
-- (len-- == 0 ||
-- (begin[2] == '\0' &&
-- (len-- == 0 ||
-- (begin[3] == '\0' &&
-- memcmp(begin, begin + 4, len) == 0))))))));
-+ if (opt_holes)
-+ /* Returns non-zero iff the first LEN bytes from BEGIN are
-+ all NULs. */
-+ return (len-- == 0 ||
-+ (begin[0] == '\0' &&
-+ (len-- == 0 ||
-+ (begin[1] == '\0' &&
-+ (len-- == 0 ||
-+ (begin[2] == '\0' &&
-+ (len-- == 0 ||
-+ (begin[3] == '\0' &&
-+ memcmp(begin, begin + 4, len) == 0))))))));
-+ else
-+ /* Never create holes. */
-+ return 0;
- }
-
- /*
-@@ -575,37 +703,34 @@
- * Note that size > 0, as a zero-sized file wouldn't ever
- * have gotten here in the first place.
- */
--static unsigned int do_compress(char *base, unsigned int offset, char const *name, char *uncompressed, unsigned int size)
-+static unsigned int do_compress(char *base, unsigned int offset, struct entry *entry)
- {
-+ unsigned int size = entry->size;
- unsigned long original_size = size;
- unsigned long original_offset = offset;
- unsigned long new_size;
- unsigned long blocks = (size - 1) / blksize + 1;
- unsigned long curr = offset + 4 * blocks;
- int change;
-+ char *uncompressed = entry->uncompressed;
-
-- total_blocks += blocks;
-+ total_blocks += blocks;
-
- do {
- unsigned long len = 2 * blksize;
- unsigned int input = size;
-- int err;
--
- if (input > blksize)
- input = blksize;
- size -= input;
-- if (!(opt_holes && is_zero (uncompressed, input))) {
-- err = compress2(base + curr, &len, uncompressed, input, Z_BEST_COMPRESSION);
-- if (err != Z_OK) {
-- die(MKFS_ERROR, 0, "compression error: %s", zError(err));
-- }
-+ if (!is_zero (uncompressed, input)) {
-+ compress(base + curr, &len, uncompressed, input);
- curr += len;
- }
- uncompressed += input;
-
- if (len > blksize*2) {
- /* (I don't think this can happen with zlib.) */
-- die(MKFS_ERROR, 0, "AIEEE: block \"compressed\" to > 2*blocklength (%ld)", len);
-+ error_msg_and_die("AIEEE: block \"compressed\" to > 2*blocklength (%ld)\n", len);
- }
-
- *(u32 *) (base + offset) = curr;
-@@ -618,10 +743,12 @@
- st_blocks * 512. But if you say that then perhaps
- administrative data should also be included in both. */
- change = new_size - original_size;
-- if (opt_verbose > 1) {
-- printf("%6.2f%% (%+d bytes)\t%s\n",
-- (change * 100) / (double) original_size, change, name);
-+#if 0
-+ if (opt_verbose) {
-+ printf("%6.2f%% (%+d bytes)\t%s\n",
-+ (change * 100) / (double) original_size, change, entry->name);
- }
-+#endif
-
- return curr;
- }
-@@ -644,7 +771,7 @@
- set_data_offset(entry, base, offset);
- entry->offset = offset;
- map_entry(entry);
-- offset = do_compress(base, offset, entry->name, entry->uncompressed, entry->size);
-+ offset = do_compress(base, offset, entry);
- unmap_entry(entry);
- }
- }
-@@ -660,13 +787,10 @@
- int fd;
- char *buf;
-
-- fd = open(file, O_RDONLY);
-- if (fd < 0) {
-- die(MKFS_ERROR, 1, "open failed: %s", file);
-- }
-+ fd = xopen(file, O_RDONLY, 0);
- buf = mmap(NULL, image_length, PROT_READ, MAP_PRIVATE, fd, 0);
- if (buf == MAP_FAILED) {
-- die(MKFS_ERROR, 1, "mmap failed");
-+ error_msg_and_die("mmap failed");
- }
- memcpy(base + offset, buf, image_length);
- munmap(buf, image_length);
-@@ -679,6 +803,328 @@
- return (offset + image_length);
- }
-
-+static struct entry *find_filesystem_entry(struct entry *dir, char *name, mode_t type)
-+{
-+ struct entry *e = dir;
-+
-+ if (S_ISDIR(dir->mode)) {
-+ e = dir->child;
-+ }
-+ while (e) {
-+ /* Only bother to do the expensive strcmp on matching file types */
-+ if (type == (e->mode & S_IFMT) && e->name) {
-+ if (S_ISDIR(e->mode)) {
-+ int len = strlen(e->name);
-+
-+ /* Check if we are a parent of the correct path */
-+ if (strncmp(e->name, name, len) == 0) {
-+ /* Is this an _exact_ match? */
-+ if (strcmp(name, e->name) == 0) {
-+ return (e);
-+ }
-+ /* Looks like we found a parent of the correct path */
-+ if (name[len] == '/') {
-+ if (e->child) {
-+ return (find_filesystem_entry (e, name + len + 1, type));
-+ } else {
-+ return NULL;
-+ }
-+ }
-+ }
-+ } else {
-+ if (strcmp(name, e->name) == 0) {
-+ return (e);
-+ }
-+ }
-+ }
-+ e = e->next;
-+ }
-+ return (NULL);
-+}
-+
-+void modify_entry(char *full_path, unsigned long uid, unsigned long gid,
-+ unsigned long mode, unsigned long rdev, struct entry *root, loff_t *fslen_ub)
-+{
-+ char *name, *path, *full;
-+ struct entry *curr, *parent, *entry, *prev;
-+
-+ full = xstrdup(full_path);
-+ path = xstrdup(dirname(full));
-+ name = full_path + strlen(path) + 1;
-+ free(full);
-+ if (strcmp(path, "/") == 0) {
-+ parent = root;
-+ name = full_path + 1;
-+ } else {
-+ if (!(parent = find_filesystem_entry(root, path+1, S_IFDIR)))
-+ error_msg_and_die("%s/%s: could not find parent\n", path, name);
-+ }
-+ if ((entry = find_filesystem_entry(parent, name, (mode & S_IFMT)))) {
-+ /* its there, just modify permissions */
-+ entry->mode = mode;
-+ entry->uid = uid;
-+ entry->gid = gid;
-+ } else { /* make a new entry */
-+
-+ /* code partially replicated from parse_directory() */
-+ size_t namelen;
-+ if (S_ISREG(mode)) {
-+ error_msg_and_die("%s: regular file from device_table file must exist on disk!", full_path);
-+ }
-+
-+ namelen = strlen(name);
-+ if (namelen > MAX_INPUT_NAMELEN) {
-+ error_msg_and_die(
-+ "Very long (%u bytes) filename `%s' found.\n"
-+ " Please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile. Exiting.\n",
-+ namelen, name);
-+ }
-+ entry = xcalloc(1, sizeof(struct entry));
-+ entry->name = xstrdup(name);
-+ /* truncate multi-byte UTF-8 filenames on character boundary */
-+ if (namelen > CRAMFS_MAXPATHLEN) {
-+ namelen = CRAMFS_MAXPATHLEN;
-+ warn_namelen = 1;
-+ /* the first lost byte must not be a trail byte */
-+ while ((entry->name[namelen] & 0xc0) == 0x80) {
-+ namelen--;
-+ /* are we reasonably certain it was UTF-8 ? */
-+ if (entry->name[namelen] < 0x80 || !namelen) {
-+ error_msg_and_die("cannot truncate filenames not encoded in UTF-8");
-+ }
-+ }
-+ entry->name[namelen] = '\0';
-+ }
-+ entry->mode = mode;
-+ entry->uid = uid;
-+ entry->gid = gid;
-+ entry->size = 0;
-+ if (S_ISBLK(mode) || S_ISCHR(mode)) {
-+ entry->size = rdev;
-+ if (entry->size & -(1<<CRAMFS_SIZE_WIDTH))
-+ warn_dev = 1;
-+ }
-+
-+ /* ok, now we have to backup and correct the size of all the entries above us */
-+ *fslen_ub += sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
-+ parent->size += sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
-+
-+ /* alright, time to link us in */
-+ curr = parent->child;
-+ prev = NULL;
-+ while (curr && strcmp(name, curr->name) > 0) {
-+ prev = curr;
-+ curr = curr->next;
-+ }
-+ if (!prev) parent->child = entry;
-+ else prev->next = entry;
-+ entry->next = curr;
-+ entry->child = NULL;
-+ }
-+ if (entry->uid >= 1 << CRAMFS_UID_WIDTH)
-+ warn_uid = 1;
-+ if (entry->gid >= 1 << CRAMFS_GID_WIDTH) {
-+ /* TODO: We ought to replace with a default
-+ gid instead of truncating; otherwise there
-+ are security problems. Maybe mode should
-+ be &= ~070. Same goes for uid once Linux
-+ supports >16-bit uids. */
-+ warn_gid = 1;
-+ }
-+ free(path);
-+}
-+
-+/* the GNU C library has a wonderful scanf("%as", string) which will
-+ allocate the string with the right size, good to avoid buffer overruns.
-+ the following macros use it if available or use a hacky workaround...
-+ */
-+
-+#ifdef __GNUC__
-+#define SCANF_PREFIX "a"
-+#define SCANF_STRING(s) (&s)
-+#define GETCWD_SIZE 0
-+#else
-+#define SCANF_PREFIX "511"
-+#define SCANF_STRING(s) (s = xmalloc(512))
-+#define GETCWD_SIZE -1
-+inline int snprintf(char *str, size_t n, const char *fmt, ...)
-+{
-+ int ret;
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ ret = vsprintf(str, fmt, ap);
-+ va_end(ap);
-+ return ret;
-+}
-+#endif
-+
-+/* device table entries take the form of:
-+ <path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+ /dev/mem c 640 0 0 1 1 0 0 -
-+
-+ type can be one of:
-+ f A regular file
-+ d Directory
-+ c Character special device file
-+ b Block special device file
-+ p Fifo (named pipe)
-+
-+ I don't bother with symlinks (permissions are irrelevant), hard
-+ links (special cases of regular files), or sockets (why bother).
-+
-+ Regular files must exist in the target root directory. If a char,
-+ block, fifo, or directory does not exist, it will be created.
-+*/
-+
-+static int interpret_table_entry(char *line, struct entry *root, loff_t *fslen_ub)
-+{
-+ char type, *name = NULL;
-+ unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
-+ unsigned long start = 0, increment = 1, count = 0;
-+
-+ if (sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu",
-+ SCANF_STRING(name), &type, &mode, &uid, &gid, &major, &minor,
-+ &start, &increment, &count) < 0)
-+ {
-+ return 1;
-+ }
-+
-+ if (!strcmp(name, "/")) {
-+ error_msg_and_die("Device table entries require absolute paths");
-+ }
-+
-+ switch (type) {
-+ case 'd':
-+ mode |= S_IFDIR;
-+ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
-+ break;
-+ case 'f':
-+ mode |= S_IFREG;
-+ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
-+ break;
-+ case 'p':
-+ mode |= S_IFIFO;
-+ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
-+ break;
-+ case 'c':
-+ case 'b':
-+ mode |= (type == 'c') ? S_IFCHR : S_IFBLK;
-+ if (count > 0) {
-+ char *buf;
-+ unsigned long i;
-+ dev_t rdev;
-+
-+ for (i = start; i < count; i++) {
-+ asprintf(&buf, "%s%lu", name, i);
-+ rdev = makedev(major, minor + (i * increment - start));
-+ modify_entry(buf, uid, gid, mode, rdev, root, fslen_ub);
-+ free(buf);
-+ }
-+ } else {
-+ dev_t rdev = makedev(major, minor);
-+ modify_entry(name, uid, gid, mode, rdev, root, fslen_ub);
-+ }
-+ break;
-+ default:
-+ error_msg_and_die("Unsupported file type");
-+ }
-+ free(name);
-+ return 0;
-+}
-+
-+static int parse_device_table(FILE *file, struct entry *root, loff_t *fslen_ub)
-+{
-+ char *line;
-+ int status = 0;
-+ size_t length = 0;
-+
-+ /* Turn off squash, since we must ensure that values
-+ * entered via the device table are not squashed */
-+ opt_squash = 0;
-+
-+ /* Looks ok so far. The general plan now is to read in one
-+ * line at a time, check for leading comment delimiters ('#'),
-+ * then try and parse the line as a device table. If we fail
-+ * to parse things, try and help the poor fool to fix their
-+ * device table with a useful error msg... */
-+ line = NULL;
-+ while (getline(&line, &length, file) != -1) {
-+ /* First trim off any whitespace */
-+ int len = strlen(line);
-+
-+ /* trim trailing whitespace */
-+ while (len > 0 && isspace(line[len - 1]))
-+ line[--len] = '\0';
-+ /* trim leading whitespace */
-+ memmove(line, &line[strspn(line, " \n\r\t\v")], len);
-+
-+ /* How long are we after trimming? */
-+ len = strlen(line);
-+
-+ /* If this is NOT a comment line, try to interpret it */
-+ if (len && *line != '#') {
-+ if (interpret_table_entry(line, root, fslen_ub))
-+ status = 1;
-+ }
-+
-+ free(line);
-+ line = NULL;
-+ }
-+ free(line);
-+ fclose(file);
-+
-+ return status;
-+}
-+
-+void traverse(struct entry *entry, int depth)
-+{
-+ struct entry *curr = entry;
-+ int i;
-+
-+ while (curr) {
-+ for (i = 0; i < depth; i++) putchar(' ');
-+ printf("%s: size=%d mode=%d same=%p\n",
-+ (curr->name)? (char*)curr->name : "/",
-+ curr->size, curr->mode, curr->same);
-+ if (curr->child) traverse(curr->child, depth + 4);
-+ curr = curr->next;
-+ }
-+}
-+
-+static void free_filesystem_entry(struct entry *dir)
-+{
-+ struct entry *e = dir, *last;
-+
-+ if (S_ISDIR(dir->mode)) {
-+ e = dir->child;
-+ }
-+ while (e) {
-+ if (e->name)
-+ free(e->name);
-+ if (e->path)
-+ free(e->path);
-+ if (e->uncompressed)
-+ free(e->uncompressed);
-+ last = e;
-+ if (e->child) {
-+ free_filesystem_entry(e);
-+ }
-+ e = e->next;
-+ free(last);
-+ }
-+}
-+
-+
-+/*
-+ * Usage:
-+ *
-+ * mkcramfs directory-name outfile
-+ *
-+ * where "directory-name" is simply the root of the directory
-+ * tree that we want to generate a compressed filesystem out
-+ * of.
-+ */
- int main(int argc, char **argv)
- {
- struct stat st; /* used twice... */
-@@ -692,6 +1138,7 @@
- u32 crc;
- int c; /* for getopt */
- char *ep; /* for strtoul */
-+ FILE *devtable = NULL;
-
- total_blocks = 0;
-
-@@ -699,7 +1146,7 @@
- progname = argv[0];
-
- /* command line options */
-- while ((c = getopt(argc, argv, "hEe:i:n:psvz")) != EOF) {
-+ while ((c = getopt(argc, argv, "hEe:i:n:psvzD:q")) != EOF) {
- switch (c) {
- case 'h':
- usage(MKFS_OK);
-@@ -715,7 +1162,7 @@
- case 'i':
- opt_image = optarg;
- if (lstat(opt_image, &st) < 0) {
-- die(MKFS_ERROR, 1, "lstat failed: %s", opt_image);
-+ error_msg_and_die("lstat failed: %s", opt_image);
- }
- image_length = st.st_size; /* may be padded later */
- fslen_ub += (image_length + 3); /* 3 is for padding */
-@@ -736,6 +1183,16 @@
- case 'z':
- opt_holes = 1;
- break;
-+ case 'q':
-+ opt_squash = 1;
-+ break;
-+ case 'D':
-+ devtable = xfopen(optarg, "r");
-+ if (fstat(fileno(devtable), &st) < 0)
-+ perror_msg_and_die(optarg);
-+ if (st.st_size < 10)
-+ error_msg_and_die("%s: not a proper device table file\n", optarg);
-+ break;
- }
- }
-
-@@ -745,25 +1202,23 @@
- outfile = argv[optind + 1];
-
- if (stat(dirname, &st) < 0) {
-- die(MKFS_USAGE, 1, "stat failed: %s", dirname);
-- }
-- fd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
-- if (fd < 0) {
-- die(MKFS_USAGE, 1, "open failed: %s", outfile);
-+ error_msg_and_die("stat failed: %s", dirname);
- }
-+ fd = xopen(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
-
-- root_entry = calloc(1, sizeof(struct entry));
-- if (!root_entry) {
-- die(MKFS_ERROR, 1, "calloc failed");
-- }
-+ root_entry = xcalloc(1, sizeof(struct entry));
- root_entry->mode = st.st_mode;
- root_entry->uid = st.st_uid;
- root_entry->gid = st.st_gid;
-
- root_entry->size = parse_directory(root_entry, dirname, &root_entry->child, &fslen_ub);
-
-+ if (devtable) {
-+ parse_device_table(devtable, root_entry, &fslen_ub);
-+ }
-+
- /* always allocate a multiple of blksize bytes because that's
-- what we're going to write later on */
-+ what we're going to write later on */
- fslen_ub = ((fslen_ub - 1) | (blksize - 1)) + 1;
-
- if (fslen_ub > MAXFSLEN) {
-@@ -790,7 +1245,7 @@
- rom_image = mmap(NULL, fslen_ub?fslen_ub:1, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-
- if (rom_image == MAP_FAILED) {
-- die(MKFS_ERROR, 1, "mmap failed");
-+ error_msg_and_die("mmap failed");
- }
-
- /* Skip the first opt_pad bytes for boot loader code */
-@@ -807,6 +1262,7 @@
- }
-
- offset = write_directory_structure(root_entry->child, rom_image, offset);
-+ if (opt_verbose)
- printf("Directory data: %d bytes\n", offset);
-
- offset = write_data(root_entry, rom_image, offset);
-@@ -814,30 +1270,38 @@
- /* We always write a multiple of blksize bytes, so that
- losetup works. */
- offset = ((offset - 1) | (blksize - 1)) + 1;
-+ if (opt_verbose)
- printf("Everything: %d kilobytes\n", offset >> 10);
-
- /* Write the superblock now that we can fill in all of the fields. */
- write_superblock(root_entry, rom_image+opt_pad, offset);
-+ if (opt_verbose)
- printf("Super block: %d bytes\n", sizeof(struct cramfs_super));
-
- /* Put the checksum in. */
- crc = crc32(0L, Z_NULL, 0);
- crc = crc32(crc, (rom_image+opt_pad), (offset-opt_pad));
- ((struct cramfs_super *) (rom_image+opt_pad))->fsid.crc = crc;
-+ if (opt_verbose)
- printf("CRC: %x\n", crc);
-
- /* Check to make sure we allocated enough space. */
- if (fslen_ub < offset) {
-- die(MKFS_ERROR, 0, "not enough space allocated for ROM image (%Ld allocated, %d used)", fslen_ub, offset);
-+ error_msg_and_die("not enough space allocated for ROM "
-+ "image (%Ld allocated, %d used)", fslen_ub, offset);
- }
-
- written = write(fd, rom_image, offset);
- if (written < 0) {
-- die(MKFS_ERROR, 1, "write failed");
-+ error_msg_and_die("write failed");
- }
- if (offset != written) {
-- die(MKFS_ERROR, 0, "ROM image write failed (wrote %d of %d bytes)", written, offset);
-+ error_msg_and_die("ROM image write failed (wrote %d of %d bytes)", written, offset);
- }
-+
-+ /* Free up memory */
-+ free_filesystem_entry(root_entry);
-+ free(root_entry);
-
- /* (These warnings used to come at the start, but they scroll off the
- screen too quickly.) */
+++ /dev/null
-# When building a target filesystem, it is desirable to not have to
-# become root and then run 'mknod' a thousand times. Using a device
-# table you can create device nodes and directories "on the fly".
-#
-# This is a sample device table file for use with genext2fs. You can
-# do all sorts of interesting things with a device table file. For
-# example, if you want to adjust the permissions on a particular file
-# you can just add an entry like:
-# /sbin/foobar f 2755 0 0 - - - - -
-# and (assuming the file /sbin/foobar exists) it will be made setuid
-# root (regardless of what its permissions are on the host filesystem.
-# Furthermore, you can use a single table entry to create a many device
-# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
-# I could just use the following two table entries:
-# /dev/hda b 640 0 0 3 0 0 0 -
-# /dev/hda b 640 0 0 3 1 1 1 15
-#
-# Device table entries take the form of:
-# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-# where name is the file name, type can be one of:
-# f A regular file
-# d Directory
-# c Character special device file
-# b Block special device file
-# p Fifo (named pipe)
-# uid is the user id for the target file, gid is the group id for the
-# target file. The rest of the entries (major, minor, etc) apply only
-# to device special files.
-
-# Have fun
-# -Erik Andersen <andersen@codepoet.org>
-#
-
-#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-/dev d 755 0 0 - - - - -
-/dev/pts d 755 0 0 - - - - -
-/tmp d 1777 0 0 - - - - -
-/etc d 755 0 0 - - - - -
-/home/default d 2755 1000 1000 - - - - -
-#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-/bin/busybox f 4755 0 0 - - - - -
-/etc/shadow f 600 0 0 - - - - -
-/etc/passwd f 644 0 0 - - - - -
-/etc/network/if-up.d d 755 0 0 - - - - -
-/etc/network/if-pre-up.d d 755 0 0 - - - - -
-/etc/network/if-down.d d 755 0 0 - - - - -
-/etc/network/if-post-down.d d 755 0 0 - - - - -
-/usr/share/udhcpc/default.script f 755 0 0 - - - - -
-# uncomment this to allow starting x as non-root
-#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - -
-# Normal system devices
-/dev/mem c 640 0 0 1 1 0 0 -
-/dev/kmem c 640 0 0 1 2 0 0 -
-/dev/null c 666 0 0 1 3 0 0 -
-/dev/zero c 666 0 0 1 5 0 0 -
-/dev/random c 666 0 0 1 8 0 0 -
-/dev/urandom c 666 0 0 1 9 0 0 -
-/dev/ram b 640 0 0 1 1 0 0 -
-/dev/ram b 640 0 0 1 0 0 1 4
-/dev/loop b 640 0 0 7 0 0 1 2
-/dev/rtc c 640 0 0 10 135 - - -
-/dev/console c 666 0 0 5 1 - - -
-/dev/tty c 666 0 0 5 0 - - -
-/dev/tty c 666 0 0 4 0 0 1 8
-/dev/ttyp c 666 0 0 3 0 0 1 10
-/dev/ptyp c 666 0 0 2 0 0 1 10
-/dev/ptmx c 666 0 0 5 2 - - -
-/dev/ttyP c 666 0 0 57 0 0 1 4
-/dev/ttyS c 666 0 0 4 64 0 1 4
-/dev/fb c 640 0 5 29 0 0 32 4
-#/dev/ttySA c 666 0 0 204 5 0 1 3
-/dev/psaux c 666 0 0 10 1 0 0 -
-#/dev/ppp c 666 0 0 108 0 - - -
-
-# MTD stuff
-/dev/mtd c 640 0 0 90 0 0 2 4
-/dev/mtdblock b 640 0 0 31 0 0 1 4
-
-#Tun/tap driver
-/dev/net d 755 0 0 - - - - -
-/dev/net/tun c 660 0 0 10 200 - - -
-
-# Audio stuff
-#/dev/audio c 666 0 29 14 4 - - -
-#/dev/audio1 c 666 0 29 14 20 - - -
-#/dev/dsp c 666 0 29 14 3 - - -
-#/dev/dsp1 c 666 0 29 14 19 - - -
-#/dev/sndstat c 666 0 29 14 6 - - -
-
-# User-mode Linux stuff
-/dev/ubda b 640 0 0 98 0 0 0 -
-/dev/ubda b 640 0 0 98 1 1 1 15
-
-# IDE Devices
-/dev/hda b 640 0 0 3 0 0 0 -
-/dev/hda b 640 0 0 3 1 1 1 15
-/dev/hdb b 640 0 0 3 64 0 0 -
-/dev/hdb b 640 0 0 3 65 1 1 15
-#/dev/hdc b 640 0 0 22 0 0 0 -
-#/dev/hdc b 640 0 0 22 1 1 1 15
-#/dev/hdd b 640 0 0 22 64 0 0 -
-#/dev/hdd b 640 0 0 22 65 1 1 15
-#/dev/hde b 640 0 0 33 0 0 0 -
-#/dev/hde b 640 0 0 33 1 1 1 15
-#/dev/hdf b 640 0 0 33 64 0 0 -
-#/dev/hdf b 640 0 0 33 65 1 1 15
-#/dev/hdg b 640 0 0 34 0 0 0 -
-#/dev/hdg b 640 0 0 34 1 1 1 15
-#/dev/hdh b 640 0 0 34 64 0 0 -
-#/dev/hdh b 640 0 0 34 65 1 1 15
-
-# SCSI Devices
-#/dev/sda b 640 0 0 8 0 0 0 -
-#/dev/sda b 640 0 0 8 1 1 1 15
-#/dev/sdb b 640 0 0 8 16 0 0 -
-#/dev/sdb b 640 0 0 8 17 1 1 15
-#/dev/sdc b 640 0 0 8 32 0 0 -
-#/dev/sdc b 640 0 0 8 33 1 1 15
-#/dev/sdd b 640 0 0 8 48 0 0 -
-#/dev/sdd b 640 0 0 8 49 1 1 15
-#/dev/sde b 640 0 0 8 64 0 0 -
-#/dev/sde b 640 0 0 8 65 1 1 15
-#/dev/sdf b 640 0 0 8 80 0 0 -
-#/dev/sdf b 640 0 0 8 81 1 1 15
-#/dev/sdg b 640 0 0 8 96 0 0 -
-#/dev/sdg b 640 0 0 8 97 1 1 15
-#/dev/sdh b 640 0 0 8 112 0 0 -
-#/dev/sdh b 640 0 0 8 113 1 1 15
-#/dev/sg c 640 0 0 21 0 0 1 15
-#/dev/scd b 640 0 0 11 0 0 1 15
-#/dev/st c 640 0 0 9 0 0 1 8
-#/dev/nst c 640 0 0 9 128 0 1 8
-#/dev/st c 640 0 0 9 32 1 1 4
-#/dev/st c 640 0 0 9 64 1 1 4
-#/dev/st c 640 0 0 9 96 1 1 4
-
-# Floppy disk devices
-#/dev/fd b 640 0 0 2 0 0 1 2
-#/dev/fd0d360 b 640 0 0 2 4 0 0 -
-#/dev/fd1d360 b 640 0 0 2 5 0 0 -
-#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
-#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
-#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
-#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
-#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
-#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
-
-# All the proprietary cdrom devices in the world
-#/dev/aztcd b 640 0 0 29 0 0 0 -
-#/dev/bpcd b 640 0 0 41 0 0 0 -
-#/dev/capi20 c 640 0 0 68 0 0 1 2
-#/dev/cdu31a b 640 0 0 15 0 0 0 -
-#/dev/cdu535 b 640 0 0 24 0 0 0 -
-#/dev/cm206cd b 640 0 0 32 0 0 0 -
-#/dev/sjcd b 640 0 0 18 0 0 0 -
-#/dev/sonycd b 640 0 0 15 0 0 0 -
-#/dev/gscd b 640 0 0 16 0 0 0 -
-#/dev/sbpcd b 640 0 0 25 0 0 0 -
-#/dev/sbpcd b 640 0 0 25 0 0 1 4
-#/dev/mcd b 640 0 0 23 0 0 0 -
-#/dev/optcd b 640 0 0 17 0 0 0 -
-
+++ /dev/null
---- dnsmasq-1.18/config.h.dist 2004-03-01 22:25:12.000000000 -0600
-+++ dnsmasq-1.18/config.h 2004-03-01 22:26:50.000000000 -0600
-@@ -126,7 +126,9 @@
-
- /* Must preceed __linux__ since uClinux defines __linux__ too. */
- #if defined(__uClinux__) || defined(__UCLIBC__)
-+#ifndef __UCLIBC_HAS_IPV6__
- #undef HAVE_LINUX_IPV6_PROC
-+#endif
- #define HAVE_GETOPT_LONG
- #undef HAVE_ARC4RANDOM
- #define HAVE_RANDOM
-diff -x CVS -urN dnsmasq-1.18/option.c dnsmasq.old/option.c
---- dnsmasq-1.18/option.c 2003-11-05 08:22:18.000000000 -0600
-+++ dnsmasq.old/option.c 2004-01-05 23:40:11.000000000 -0600
-@@ -578,8 +578,8 @@
- #ifdef HAVE_IPV6
- else if (tmp->source_addr.sa.sa_family == AF_INET6)
- tmp->source_addr.in6.sin6_port = htons(*query_port);
-- }
- #endif
-+ }
- }
-
- if (*if_addrs)
+++ /dev/null
-diff -ur dnsmasq-2.15.orig/src/config.h dnsmasq-2.15/src/config.h
---- dnsmasq-2.15.orig/src/config.h 2004-10-08 11:41:34.757371880 -0400
-+++ dnsmasq-2.15/src/config.h 2004-10-08 11:43:49.074952504 -0400
-@@ -78,6 +78,11 @@
- /* We assume that systems which don't have IPv6
- headers don't have ntop and pton either */
-
-+#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)
-+# undef NO_IPV6
-+# define NO_IPV6
-+#endif
-+
- #if defined(INET6_ADDRSTRLEN) && defined(IPV6_V6ONLY) && !defined(NO_IPV6)
- # define HAVE_IPV6
- # define ADDRSTRLEN INET6_ADDRSTRLEN
-@@ -194,7 +199,7 @@
- /* platform dependent options. */
-
- /* Must preceed __linux__ since uClinux defines __linux__ too. */
--#if defined(__uClinux__) || defined(__UCLIBC__)
-+#if defined(__uClinux__)
- #undef HAVE_LINUX_IPV6_PROC
- #define HAVE_GETOPT_LONG
- #undef HAVE_ARC4RANDOM
-@@ -208,6 +213,24 @@
- # define NO_FORK
- #endif
-
-+#elif defined(__linux__) && defined(__UCLIBC__)
-+# define HAVE_LINUX_IPV6_PROC
-+# if defined(__UCLIBC_HAS_GNU_GETOPT__) || \
-+ ((__UCLIBC_MAJOR__==0) && (__UCLIBC_MINOR__==9) && (__UCLIBC_SUBLEVEL__<21))
-+# define HAVE_GETOPT_LONG
-+# else
-+# undef HAVE_GETOPT_LONG
-+# endif
-+#undef HAVE_ARC4RANDOM
-+#define HAVE_RANDOM
-+#define HAVE_DEV_URANDOM
-+#define HAVE_DEV_RANDOM
-+#undef HAVE_SOCKADDR_SA_LEN
-+#undef HAVE_PSELECT
-+#if !defined(__ARCH_HAS_MMU__)
-+# define NO_FORK
-+#endif
-+
- /* libc5 - must precede __linux__ too */
- /* Note to build a libc5 binary on a modern Debian system:
- install the packages altgcc libc5 and libc5-altdev
+++ /dev/null
---- dropbear-0.42/S50dropbear
-+++ dropbear-0.42/S50dropbear
-@@ -0,0 +1,56 @@
-+#!/bin/sh
-+#
-+# Starts dropbear sshd.
-+#
-+
-+# Make sure the dropbearkey progam exists
-+[ -f /usr/bin/dropbearkey ] || exit 0
-+
-+# Check for the Dropbear RSA key
-+if [ ! -f /etc/dropbear/dropbear_rsa_host_key ] ; then
-+ echo Generating RSA Key...
-+ mkdir -p /etc/dropbear
-+ /usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
-+fi
-+
-+# Check for the Dropbear DSS key
-+if [ ! -f /etc/dropbear/dropbear_dss_host_key ] ; then
-+ echo Generating DSS Key...
-+ mkdir -p /etc/dropbear
-+ /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
-+fi
-+
-+umask 077
-+
-+start() {
-+ echo -n "Starting dropbear sshd: "
-+ start-stop-daemon --start --quiet --pidfile /var/run/dropbear.pid --exec /usr/sbin/dropbear
-+ echo "OK"
-+}
-+stop() {
-+ echo -n "Stopping sshd: "
-+ start-stop-daemon --stop --quiet --pidfile /var/run/dropbear.pid
-+ echo "OK"
-+}
-+restart() {
-+ stop
-+ start
-+}
-+
-+case "$1" in
-+ start)
-+ start
-+ ;;
-+ stop)
-+ stop
-+ ;;
-+ restart|reload)
-+ restart
-+ ;;
-+ *)
-+ echo $"Usage: $0 {start|stop|restart}"
-+ exit 1
-+esac
-+
-+exit $?
-+
+++ /dev/null
---- file-4.10/magic/Makefile.in.orig 2004-07-24 14:38:55.000000000 -0600
-+++ file-4.10/magic/Makefile.in 2004-07-28 12:16:23.000000000 -0600
-@@ -490,10 +490,10 @@
- done >> $@
-
- magic.mgc: magic
-- $(top_builddir)/src/file -C -m magic
-+ /usr/bin/file -C -m magic
-
- magic.mime.mgc: magic.mime
-- $(top_builddir)/src/file -C -m $(srcdir)/magic.mime
-+ /usr/bin/file -C -m $(srcdir)/magic.mime
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
- .NOEXPORT:
---- file-4.10/magic/Makefile.am.orig 2004-07-24 14:38:55.000000000 -0600
-+++ file-4.10/magic/Makefile.am 2004-07-28 12:18:15.000000000 -0600
-@@ -16,10 +16,10 @@
- done >> $@
-
- magic.mgc: magic
-- $(top_builddir)/src/file -C -m magic
-+ /usr/bin/file -C -m magic
-
- magic.mime.mgc: magic.mime
-- $(top_builddir)/src/file -C -m $(srcdir)/magic.mime
-+ /usr/bin/file -C -m $(srcdir)/magic.mime
-
- magic_FRAGMENTS = \
- Magdir/acorn \
+++ /dev/null
-diff -urN genext2fs-1.3.orig/Makefile genext2fs-1.3/Makefile
---- genext2fs-1.3.orig/Makefile 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/Makefile 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,46 @@
-+CC=gcc
-+CFLAGS=-Wall -O0 -g
-+
-+SRC=genext2fs.c
-+OBJS=$(patsubst %.c,%.o, $(SRC))
-+
-+all: genext2fs
-+INSTALL=install
-+
-+genext2fs: $(OBJS)
-+ $(CC) $(CFLAGS) -o $@ $(OBJS) -o $@
-+
-+$(OBJS): %.o : %.c
-+ $(CC) $(CFLAGS) -c $< -o $@
-+
-+$(OBJS): Makefile
-+
-+install:
-+ $(INSTALL) -d $(DESTDIR)/usr/bin/
-+ $(INSTALL) -m 755 genext2fs $(DESTDIR)/usr/bin/
-+ $(INSTALL) -d $(DESTDIR)/usr/share/man/man8/
-+ $(INSTALL) -m 644 genext2fs.8 $(DESTDIR)/usr/share/man/man8/
-+
-+clean:
-+ rm -rf *.o *.a core genext2fs
-+ rm -rf test ext2.img
-+
-+check: all
-+ mkdir -p test
-+ dd if=/dev/zero of=test/zero count=1
-+ ./genext2fs -b 4096 -d test ext2.img
-+
-+ md5=`md5sum ext2.img | cut -f 1 -d " "`; \
-+ if [ "$$md5" != "89471302d95f96a76fbb2cff98182cde" ] ; then \
-+ echo "test failed."; \
-+ else \
-+ echo "test succeeded."; \
-+ fi
-+
-+# test genext2fs by creating the image and comparing checksums
-+test: all
-+ sh ./test.sh
-+
-+# test genext2fs by actually mounting the created image.
-+test-mount: all
-+ sudo sh ./test-mount.sh
-diff -urN genext2fs-1.3.orig/debian/changelog genext2fs-1.3/debian/changelog
---- genext2fs-1.3.orig/debian/changelog 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/debian/changelog 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,17 @@
-+genext2fs (1.3-2) unstable; urgency=low
-+
-+ * apply fix from upstream cvs that appears to fix endian bug
-+ (closes: #122411)
-+ * mention filesystem size limit in manpage (closes: #122729)
-+ * mention that hard links are not supported in manpage
-+ (closes: #155464)
-+ * add sanity check at the end of the build
-+
-+ -- David Kimdon <dwhedon@debian.org> Fri, 8 Mar 2002 23:17:36 -0800
-+
-+genext2fs (1.3-1) unstable; urgency=low
-+
-+ * Initial Release. (closes: #105263)
-+
-+ -- David Kimdon <dwhedon@debian.org> Sat, 14 Jul 2001 13:24:49 -0700
-+
-diff -urN genext2fs-1.3.orig/debian/control genext2fs-1.3/debian/control
---- genext2fs-1.3.orig/debian/control 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/debian/control 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,19 @@
-+Source: genext2fs
-+Section: admin
-+Priority: optional
-+Maintainer: David Kimdon <dwhedon@debian.org>
-+Build-Depends: debhelper (>> 3.0.0)
-+Standards-Version: 3.5.2
-+
-+Package: genext2fs
-+Architecture: any
-+Depends: ${shlibs:Depends}
-+Description: ext2 filesystem generator for embedded systems
-+ `genext2fs' is meant to generate an ext2 filesystem
-+ as a normal (non-root) user. It doesn't require you to mount
-+ the image file to copy files on it. It doesn't even require
-+ you to be the superuser to make device nodes.
-+ .
-+ Warning ! `genext2fs' has been designed for embedded
-+ systems. As such, it will generate a filesystem for single-user
-+ usage: all files/directories/etc... will belong to UID/GID 0
-diff -urN genext2fs-1.3.orig/debian/copyright genext2fs-1.3/debian/copyright
---- genext2fs-1.3.orig/debian/copyright 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/debian/copyright 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,15 @@
-+This package was debianized by David Kimdon <dwhedon@debian.org> on
-+Sat, 14 Jul 2001 13:24:49 -0700.
-+
-+It was downloaded from http://freshmeat.net/projects/genext2fs/
-+Upstream Author(s): Xavier Bestel <xbestel@aplio.fr>
-+
-+Copyright (C) 2000 Xavier Bestel <xavier.bestel@free.fr>
-+
-+This program is free software; you can redistribute it and/or
-+modify it under the terms of the GNU General Public License
-+as published by the Free Software Foundation; version
-+2 of the License.
-+
-+On Debian systems, the complete text of the GNU General Public
-+License can be found in /usr/share/common-licenses/GPL file.
-diff -urN genext2fs-1.3.orig/debian/rules genext2fs-1.3/debian/rules
---- genext2fs-1.3.orig/debian/rules 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/debian/rules 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,70 @@
-+#!/usr/bin/make -f
-+# Sample debian/rules that uses debhelper.
-+# GNU copyright 1997 to 1999 by Joey Hess.
-+
-+# Uncomment this to turn on verbose mode.
-+#export DH_VERBOSE=1
-+
-+# This is the debhelper compatability version to use.
-+export DH_COMPAT=2
-+
-+configure: configure-stamp
-+configure-stamp:
-+ dh_testdir
-+ # Add here commands to configure the package.
-+ # ./configure --prefix=/usr --mandir=/usr/share/man/
-+
-+ touch configure-stamp
-+
-+build: configure-stamp build-stamp
-+build-stamp:
-+ dh_testdir
-+
-+ # Add here commands to compile the package.
-+ $(MAKE)
-+ $(MAKE) check
-+
-+ touch build-stamp
-+
-+clean:
-+ dh_testdir
-+ dh_testroot
-+ rm -f build-stamp configure-stamp
-+
-+ # Add here commands to clean up after the build process.
-+ -$(MAKE) clean
-+
-+ dh_clean
-+
-+install: build
-+ dh_testdir
-+ dh_testroot
-+ dh_clean -k
-+ dh_installdirs
-+
-+ # Add here commands to install the package into debian/genext2fs.
-+ $(MAKE) install DESTDIR=`pwd`/debian/genext2fs
-+
-+
-+# Build architecture-independent files here.
-+binary-indep: build install
-+# We have nothing to do by default.
-+
-+# Build architecture-dependent files here.
-+binary-arch: build install
-+ dh_testdir
-+ dh_testroot
-+ dh_installdocs
-+ dh_installchangelogs
-+ dh_link
-+ dh_strip
-+ dh_compress
-+ dh_fixperms
-+ dh_installdeb
-+ dh_shlibdeps
-+ dh_gencontrol
-+ dh_md5sums
-+ dh_builddeb
-+
-+binary: binary-indep binary-arch
-+.PHONY: build clean binary-indep binary-arch binary install configure
-diff -urN genext2fs-1.3.orig/dev.txt genext2fs-1.3/dev.txt
---- genext2fs-1.3.orig/dev.txt 2000-09-28 09:03:19.000000000 -0600
-+++ genext2fs-1.3/dev.txt 1969-12-31 17:00:00.000000000 -0700
-@@ -1,94 +0,0 @@
--drwx /dev
--crw- 10,190 /dev/lcd
--crw- 10,191 /dev/splc781
--crw- 4,0 /dev/console
--crw- 5,64 /dev/cua0
--crw- 5,65 /dev/cua1
--crw- 5,66 /dev/cua2
--crw- 5,70 /dev/cua6
--crw- 5,71 /dev/cua7
--crw- 5,72 /dev/cua8
--crw- 5,73 /dev/cua9
--crw- 29,0 /dev/fb0
--crw- 29,32 /dev/fb1
--crw- 1,2 /dev/kmem
--crw- 1,1 /dev/mem
--crw- 1,3 /dev/null
--crw- 2,2 /dev/ptyp2
--crw- 2,3 /dev/ptyp3
--crw- 2,5 /dev/ptyp5
--crw- 2,4 /dev/ptyp4
--crw- 10,178 /dev/triokb
--crw- 2,0 /dev/ptyp0
--crw- 2,6 /dev/ptyp6
--crw- 2,7 /dev/ptyp7
--crw- 2,8 /dev/ptyp8
--crw- 2,9 /dev/ptyp9
--crw- 2,10 /dev/ptypa
--crw- 2,11 /dev/ptypb
--crw- 2,12 /dev/ptypc
--crw- 2,13 /dev/ptypd
--crw- 2,14 /dev/ptype
--crw- 2,15 /dev/ptypf
--brw- 1,0 /dev/ram0
--brw- 1,1 /dev/ram1
--brw- 1,2 /dev/ram2
--brw- 1,3 /dev/ram3
--br-- 31,0 /dev/rom0
--brw- 31,1 /dev/rom1
--brw- 31,2 /dev/rom2
--brw- 31,3 /dev/rom3
--crw- 5,0 /dev/tty
--crw- 4,0 /dev/tty0
--crwx 4,1 /dev/tty1
--crwx 4,2 /dev/tty2
--crwx 4,3 /dev/tty3
--crwx 4,4 /dev/tty4
--crw- 4,5 /dev/tty5
--crwx 4,6 /dev/tty6
--crw- 4,7 /dev/tty7
--crw- 4,8 /dev/tty8
--crw- 4,9 /dev/tty9
--crw- 4,64 /dev/ttyS0
--crw- 4,65 /dev/ttyS1
--crw- 4,66 /dev/ttyS2
--crw- 4,67 /dev/ttyS3
--crw- 4,68 /dev/ttyS4
--crw- 4,69 /dev/ttyS5
--crw- 4,70 /dev/ttyS6
--crw- 4,71 /dev/ttyS7
--crw- 4,72 /dev/ttyS8
--crw- 4,73 /dev/ttyS9
--crw- 3,0 /dev/ttyp0
--crw- 3,1 /dev/ttyp1
--crw- 3,2 /dev/ttyp2
--crw- 3,3 /dev/ttyp3
--crw- 3,4 /dev/ttyp4
--crw- 3,5 /dev/ttyp5
--crw- 3,6 /dev/ttyp6
--crw- 3,7 /dev/ttyp7
--crw- 3,8 /dev/ttyp8
--crw- 3,9 /dev/ttyp9
--crw- 3,10 /dev/ttypa
--crw- 3,11 /dev/ttypb
--crw- 3,12 /dev/ttypc
--crw- 3,13 /dev/ttypd
--crw- 3,14 /dev/ttype
--crw- 3,15 /dev/ttypf
--crw- 1,5 /dev/zero
--crwx 10,111 /dev/dtedrv
--crwx 4,110 /dev/ttyM
--crw- 77,1 /dev/tssnd
--crw- 77,2 /dev/tstone
--crw- 2,1 /dev/ptyp1
--crwx 10,180 /dev/triohook
--crw- 90,0 /dev/mtd0
--brw- 44,0 /dev/ftl0
--crw- 10,175 /dev/tporta
--crw- 10,176 /dev/tportb
--crwx 10,100 /dev/softmodem
--crwx 10,101 /dev/softmodem_signals
--crwx 10,181 /dev/triovoice
--crw- 5,67 /dev/cua3
--crw- 5,68 /dev/cua4
--crw- 5,69 /dev/cua5
-diff -urN genext2fs-1.3.orig/device_table.txt genext2fs-1.3/device_table.txt
---- genext2fs-1.3.orig/device_table.txt 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/device_table.txt 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,129 @@
-+# When building a target filesystem, it is desirable to not have to
-+# become root and then run 'mknod' a thousand times. Using a device
-+# table you can create device nodes and directories "on the fly".
-+#
-+# This is a sample device table file for use with genext2fs. You can
-+# do all sorts of interesting things with a device table file. For
-+# example, if you want to adjust the permissions on a particular file
-+# you can just add an entry like:
-+# /sbin/foobar f 2755 0 0 - - - - -
-+# and (assuming the file /sbin/foobar exists) it will be made setuid
-+# root (regardless of what its permissions are on the host filesystem.
-+# Furthermore, you can use a single table entry to create a many device
-+# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
-+# I could just use the following two table entries:
-+# /dev/hda b 640 0 0 3 0 0 0 -
-+# /dev/hda b 640 0 0 3 1 1 1 15
-+#
-+# Device table entries take the form of:
-+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+# where name is the file name, type can be one of:
-+# f A regular file
-+# d Directory
-+# c Character special device file
-+# b Block special device file
-+# p Fifo (named pipe)
-+# uid is the user id for the target file, gid is the group id for the
-+# target file. The rest of the entries (major, minor, etc) apply only
-+# to device special files.
-+
-+# Have fun
-+# -Erik Andersen <andersen@codepoet.org>
-+#
-+
-+#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+/dev d 755 0 0 - - - - -
-+/dev/mem c 640 0 0 1 1 0 0 -
-+/dev/kmem c 640 0 0 1 2 0 0 -
-+/dev/null c 640 0 0 1 3 0 0 -
-+/dev/zero c 640 0 0 1 5 0 0 -
-+/dev/random c 640 0 0 1 8 0 0 -
-+/dev/urandom c 640 0 0 1 9 0 0 -
-+/dev/tty c 666 0 0 5 0 0 0 -
-+/dev/tty c 666 0 0 4 0 0 1 6
-+/dev/console c 640 0 0 5 1 0 0 -
-+/dev/ram b 640 0 0 1 1 0 0 -
-+/dev/ram b 640 0 0 1 0 0 1 4
-+/dev/loop b 640 0 0 7 0 0 1 2
-+/dev/ptmx c 666 0 0 5 2 0 0 -
-+#/dev/ttyS c 640 0 0 4 64 0 1 4
-+#/dev/psaux c 640 0 0 10 1 0 0 -
-+#/dev/rtc c 640 0 0 10 135 0 0 -
-+
-+# Adjust permissions on some normal files
-+#/etc/shadow f 600 0 0 - - - - -
-+#/bin/tinylogin f 4755 0 0 - - - - -
-+
-+# User-mode Linux stuff
-+/dev/ubda b 640 0 0 98 0 0 0 -
-+/dev/ubda b 640 0 0 98 1 1 1 15
-+
-+# IDE Devices
-+/dev/hda b 640 0 0 3 0 0 0 -
-+/dev/hda b 640 0 0 3 1 1 1 15
-+/dev/hdb b 640 0 0 3 64 0 0 -
-+/dev/hdb b 640 0 0 3 65 1 1 15
-+#/dev/hdc b 640 0 0 22 0 0 0 -
-+#/dev/hdc b 640 0 0 22 1 1 1 15
-+#/dev/hdd b 640 0 0 22 64 0 0 -
-+#/dev/hdd b 640 0 0 22 65 1 1 15
-+#/dev/hde b 640 0 0 33 0 0 0 -
-+#/dev/hde b 640 0 0 33 1 1 1 15
-+#/dev/hdf b 640 0 0 33 64 0 0 -
-+#/dev/hdf b 640 0 0 33 65 1 1 15
-+#/dev/hdg b 640 0 0 34 0 0 0 -
-+#/dev/hdg b 640 0 0 34 1 1 1 15
-+#/dev/hdh b 640 0 0 34 64 0 0 -
-+#/dev/hdh b 640 0 0 34 65 1 1 15
-+
-+# SCSI Devices
-+#/dev/sda b 640 0 0 8 0 0 0 -
-+#/dev/sda b 640 0 0 8 1 1 1 15
-+#/dev/sdb b 640 0 0 8 16 0 0 -
-+#/dev/sdb b 640 0 0 8 17 1 1 15
-+#/dev/sdc b 640 0 0 8 32 0 0 -
-+#/dev/sdc b 640 0 0 8 33 1 1 15
-+#/dev/sdd b 640 0 0 8 48 0 0 -
-+#/dev/sdd b 640 0 0 8 49 1 1 15
-+#/dev/sde b 640 0 0 8 64 0 0 -
-+#/dev/sde b 640 0 0 8 65 1 1 15
-+#/dev/sdf b 640 0 0 8 80 0 0 -
-+#/dev/sdf b 640 0 0 8 81 1 1 15
-+#/dev/sdg b 640 0 0 8 96 0 0 -
-+#/dev/sdg b 640 0 0 8 97 1 1 15
-+#/dev/sdh b 640 0 0 8 112 0 0 -
-+#/dev/sdh b 640 0 0 8 113 1 1 15
-+#/dev/sg c 640 0 0 21 0 0 1 15
-+#/dev/scd b 640 0 0 11 0 0 1 15
-+#/dev/st c 640 0 0 9 0 0 1 8
-+#/dev/nst c 640 0 0 9 128 0 1 8
-+#/dev/st c 640 0 0 9 32 1 1 4
-+#/dev/st c 640 0 0 9 64 1 1 4
-+#/dev/st c 640 0 0 9 96 1 1 4
-+
-+# Floppy disk devices
-+#/dev/fd b 640 0 0 2 0 0 1 2
-+#/dev/fd0d360 b 640 0 0 2 4 0 0 -
-+#/dev/fd1d360 b 640 0 0 2 5 0 0 -
-+#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
-+#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
-+#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
-+#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
-+#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
-+#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
-+
-+# All the proprietary cdrom devices in the world
-+#/dev/aztcd b 640 0 0 29 0 0 0 -
-+#/dev/bpcd b 640 0 0 41 0 0 0 -
-+#/dev/capi20 c 640 0 0 68 0 0 1 2
-+#/dev/cdu31a b 640 0 0 15 0 0 0 -
-+#/dev/cdu535 b 640 0 0 24 0 0 0 -
-+#/dev/cm206cd b 640 0 0 32 0 0 0 -
-+#/dev/sjcd b 640 0 0 18 0 0 0 -
-+#/dev/sonycd b 640 0 0 15 0 0 0 -
-+#/dev/gscd b 640 0 0 16 0 0 0 -
-+#/dev/sbpcd b 640 0 0 25 0 0 0 -
-+#/dev/sbpcd b 640 0 0 25 0 0 1 4
-+#/dev/mcd b 640 0 0 23 0 0 0 -
-+#/dev/optcd b 640 0 0 17 0 0 0 -
-+
-diff -urN genext2fs-1.3.orig/genext2fs.8 genext2fs-1.3/genext2fs.8
---- genext2fs-1.3.orig/genext2fs.8 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/genext2fs.8 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,125 @@
-+.\" Hey, EMACS: -*- nroff -*-
-+.\" First parameter, NAME, should be all caps
-+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-+.\" other parameters are allowed: see man(7), man(1)
-+.TH GENEXT2FS 8 "July 14, 2001"
-+.\" Please adjust this date whenever revising the manpage.
-+.\"
-+.\" Some roff macros, for reference:
-+.\" .nh disable hyphenation
-+.\" .hy enable hyphenation
-+.\" .ad l left justify
-+.\" .ad b justify to both left and right margins
-+.\" .nf disable filling
-+.\" .fi enable filling
-+.\" .br insert line break
-+.\" .sp <n> insert n+1 empty lines
-+.\" for manpage-specific macros, see man(7)
-+.SH NAME
-+genext2fs \- ext2 filesystem generator for embedded systems
-+.SH SYNOPSIS
-+.B genext2fs
-+.RI [ options ] " image"
-+.SH DESCRIPTION
-+\fBgenext2fs\fP generates an ext2 filesystem
-+as a normal (non-root) user. It doesn't require you to mount
-+the image file to copy files on it. It doesn't even require
-+you to be the superuser to make device nodes.
-+.SH OPTIONS
-+.TP
-+.BI -x \ image
-+Use this image as a starting point
-+.TP
-+.BI -d \ directory
-+Add this directory as source
-+.TP
-+.BI -f \ FILE
-+.TP
-+.BI -D \ FILE
-+Uses the named FILE as a device table file, to create device
-+nodes and directories "on the fly".
-+.TP
-+.BI -b \ blocks
-+Size in blocks
-+.TP
-+.BI -i \ inodes
-+Number of inodes
-+.TP
-+.BI -r \ reserved
-+Number of reserved blocks
-+.TP
-+.BI -g \ path
-+Generate a block map file for this path
-+.TP
-+.BI -e \ value
-+Fill unallocated blocks with value
-+.TP
-+.BI -z
-+Make files with holes
-+.TP
-+.BI -U
-+Squash owners making all files be owned by root
-+.TP
-+.BI -P
-+Squash permissions on all files
-+.TP
-+.BI -q
-+Squash permissions and owners (same as -P -U)
-+.TP
-+.BI -v
-+Print resulting filesystem structure
-+.TP
-+.BI -h
-+Display help
-+.TP
-+.SH EXAMPLES
-+
-+.EX
-+.B
-+ genext2fs -b 1440 -d src /dev/fd0
-+.EE
-+
-+All files in the
-+.I src
-+directory will be written to
-+.B /dev/fd0
-+as a new ext2 filesystem image. You can then mount the floppy as
-+usual.
-+
-+.EX
-+.B
-+ genext2fs -b 1024 -d src -D device_table.txt flashdisk.img
-+.EE
-+
-+This example builds a filesystem from all the files in
-+.I src
-+, then device nodes are created based on the content the device_table file
-+.I dev.txt.
-+An example device file follows:
-+
-+.EX
-+ #<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+ /dev d 755 0 0 - - - - -
-+ /dev/mem c 640 0 0 1 1 0 0 -
-+ /dev/tty c 666 0 0 5 0 0 0 -
-+ /dev/tty c 666 0 0 4 0 0 1 6
-+ /dev/loop b 640 0 0 7 0 0 1 2
-+ /dev/hda b 640 0 0 3 0 0 0 -
-+ /dev/hda b 640 0 0 3 1 1 1 16
-+.EE
-+
-+This device table creates the /dev directory, a character device
-+node /dev/mem (major 1, minor 1), it also creates /dev/tty,
-+/dev/tty[0-5], /dev/loop[0-1], /dev/hda, and /dev/hda0 to /dev/hda15
-+.SH BUGS
-+\fBgenext2fs\fP does not support hard links. Hard links present in the input
-+tree will be represented as separate files in the ext2 image.
-+
-+.SH SEE ALSO
-+.BR mkfs (8),
-+.BR genromfs (8),
-+.BR mkisofs (8).
-+.br
-+.SH AUTHOR
-+This manual page was written by David Kimdon <dwhedon@debian.org>,
-+for the Debian GNU/Linux system (but may be used by others).
-diff -urN genext2fs-1.3.orig/genext2fs.c genext2fs-1.3/genext2fs.c
---- genext2fs-1.3.orig/genext2fs.c 2001-06-18 02:11:32.000000000 -0600
-+++ genext2fs-1.3/genext2fs.c 2003-04-21 01:48:35.000000000 -0600
-@@ -1,3 +1,4 @@
-+/* vi: set sw=8 ts=8: */
- // genext2fs.c
- //
- // ext2 filesystem generator for embedded systems
-@@ -26,6 +27,22 @@
- // Bugfix: getcwd values for Solaris xavier.gueguen@col.bsf.alcatel.fr
- // Bugfix: ANSI scanf for non-GNU C xavier.gueguen@col.bsf.alcatel.fr
- // 28 Jun 2001 Bugfix: getcwd differs for Solaris/GNU mike@sowbug.com
-+// 23 Mar 2002 Bugfix: test for IFCHR or IFBLK was flawed
-+// 10 Oct 2002 Added comments,makefile targets, vsundar@ixiacom.com
-+// endianess swap assert check.
-+// Copyright (C) 2002 Ixia communications
-+// 12 Oct 2002 Added support for triple indirection vsundar@ixiacom.com
-+// Copyright (C) 2002 Ixia communications
-+// 14 Oct 2002 Added support for groups vsundar@ixiacom.com
-+// Copyright (C) 2002 Ixia communications
-+// 5 Jan 2003 Bugfixes: reserved inodes should be set vsundar@usc.edu
-+// only in the first group; directory names
-+// need to be null padded at the end; and
-+// number of blocks per group should be a
-+// multiple of 8. Updated md5 values.
-+// 6 Jan 2003 Erik Andersen <andersee@debian.org> added
-+// mkfs.jffs2 compatible device table support,
-+// along with -q, -P, -U
-
-
- // `genext2fs' is a mean to generate an ext2 filesystem
-@@ -33,10 +50,6 @@
- // the image file to copy files on it. It doesn't even require
- // you to be the superuser to make device nodes.
- //
--// Warning ! `genext2fs' has been designed for embedded
--// systems. As such, it will generate a filesystem for single-user
--// usage: all files/directories/etc... will belong to UID/GID 0
--//
- // Example usage:
- //
- // # genext2fs -b 1440 -d srcdir /dev/fd0
-@@ -45,21 +58,15 @@
- // a new ext2 filesystem image. You can then mount the floppy as
- // usual.
- //
--// # genext2fs -b 1024 -d builddir -f devices.txt flashdisk.img
-+// # genext2fs -b 1024 -d builddir -D device_table.txt flashdisk.img
- //
- // This one would build a filesystem from all the files in builddir,
--// then would read a devices list and make apropriate nodes. The
--// format for the device list is:
--//
--// drwx /dev
--// crw- 10,190 /dev/lcd
--// brw- 1,0 /dev/ram0
--//
--// This device list builds the /dev directory, a character device
--// node /dev/lcd (major 10, minor 190) and a block device node
--// /dev/ram0 (major 1, minor 0)
-+// then would read the device_table.txt file and make apropriate nodes.
-+// The format for the device table file is covered in detail in the sample
-+// device_table.txt file provided with the genext2fs source.
-
-
-+#define _GNU_SOURCE
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -67,6 +74,11 @@
- #include <stdarg.h>
- #include <unistd.h>
- #include <sys/stat.h>
-+#include <assert.h>
-+#include <time.h>
-+#include <ctype.h>
-+#include <errno.h>
-+#include <fcntl.h>
-
-
-
-@@ -76,10 +88,14 @@
- #define BLOCKSIZE 1024
- #define BLOCKS_PER_GROUP 8192
- #define BYTES_PER_INODE (8*BLOCKSIZE)
-+/* Percentage of blocks that are reserved.*/
- #define RESERVED_INODES 5/100
-
-
- // inode block size (why is it != BLOCKSIZE ?!?)
-+/* The field i_blocks in the ext2 inode stores the number of data blocks
-+ but in terms of 512 bytes. That is what INODE_BLOCKSIZE represents.
-+ INOBLK is the number of such blocks in an actual disk block */
-
- #define INODE_BLOCKSIZE 512
- #define INOBLK (BLOCKSIZE / INODE_BLOCKSIZE)
-@@ -147,6 +163,39 @@
-
- #define OP_HOLES 0x01 // make files with holes
-
-+/* Defines for accessing group details */
-+
-+// Number of groups in the filesystem
-+#define GRP_NBGROUPS(fs) ( ((fs)->sb.s_blocks_count-1)/(fs)->sb.s_blocks_per_group )
-+
-+// Get group block bitmap (bbm) given the group number
-+#define GRP_GET_GROUP_BBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_block_bitmap) )
-+
-+// Get group inode bitmap (ibm) given the group number
-+#define GRP_GET_GROUP_IBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_inode_bitmap) )
-+
-+// Given an inode number find the group it belongs to
-+#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb.s_inodes_per_group)
-+
-+//Given an inode number get the inode bitmap that covers it
-+#define GRP_GET_INODE_BITMAP(fs,nod) \
-+ ( GRP_GET_GROUP_IBM((fs),GRP_GROUP_OF_INODE((fs),(nod))) )
-+
-+//Given an inode number find its offset within the inode bitmap that covers it
-+#define GRP_IBM_OFFSET(fs,nod) \
-+ ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb.s_inodes_per_group )
-+
-+// Given a block number find the group it belongs to
-+#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb.s_blocks_per_group)
-+
-+//Given a block number get the block bitmap that covers it
-+#define GRP_GET_BLOCK_BITMAP(fs,blk) \
-+ ( GRP_GET_GROUP_BBM((fs),GRP_GROUP_OF_BLOCK((fs),(blk))) )
-+
-+//Given a block number find its offset within the block bitmap that covers it
-+#define GRP_BBM_OFFSET(fs,blk) \
-+ ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb.s_blocks_per_group )
-+
-
- // used types
-
-@@ -287,7 +336,6 @@
- {
- groupdescriptor_decl
- uint32 bg_reserved[3];
-- uint32 bg_pad_to_bk[(BLOCKSIZE-32)/sizeof(uint32)];
- } groupdescriptor;
-
- typedef struct
-@@ -304,6 +352,32 @@
-
- typedef uint8 block[BLOCKSIZE];
-
-+/* blockwalker fields:
-+ The blockwalker is used to access all the blocks of a file (including
-+ the indirection blocks) through repeated calls to walk_bw.
-+
-+ bpdir -> index into the inode->i_block[]. Indicates level of indirection.
-+ bnum -> total number of blocks so far accessed. including indirection
-+ blocks.
-+ bpind,bpdind,bptind -> index into indirection blocks.
-+
-+ bpind, bpdind, bptind do *NOT* index into single, double and triple
-+ indirect blocks resp. as you might expect from their names. Instead
-+ they are in order the 1st, 2nd & 3rd index to be used
-+
-+ As an example..
-+ To access data block number 70000:
-+ bpdir: 15 (we are doing triple indirection)
-+ bpind: 0 ( index into the triple indirection block)
-+ bpdind: 16 ( index into the double indirection block)
-+ bptind: 99 ( index into the single indirection block)
-+ 70000 = 12 + 256 + 256*256 + 16*256 + 100 (indexing starts from zero)
-+
-+ So,for double indirection bpind will index into the double indirection
-+ block and bpdind into the single indirection block. For single indirection
-+ only bpind will be used.
-+*/
-+
- typedef struct
- {
- uint32 bnum;
-@@ -313,15 +387,14 @@
- uint32 bptind;
- } blockwalker;
-
-+
-+/* Filesystem structure that support groups */
- #if BLOCKSIZE == 1024
- typedef struct
- {
- block zero; // The famous block 0
- superblock sb; // The superblock
-- groupdescriptor gd; // The group desciptor
-- block bbm; // The block bitmap
-- block ibm; // The inode bitmap
-- inode itab[0]; // The inode table
-+ groupdescriptor gd[0]; // The group descriptors
- } filesystem;
- #else
- #error UNHANDLED BLOCKSIZE
-@@ -389,25 +462,113 @@
- #undef udecl32
- #undef utdecl32
-
--char * argv0;
-+static char * app_name;
-+static int squash_uids = 0;
-+static int squash_perms = 0;
-+static const char *const memory_exhausted = "memory exhausted";
-
- // error (un)handling
--inline void errexit(const char *fmt, ...)
-+static void verror_msg(const char *s, va_list p)
- {
-- va_list ap;
-- fprintf(stderr, "%s: ", argv0);
-- va_start(ap, fmt);
-- vfprintf(stderr, fmt, ap);
-- va_end(ap);
-- fprintf(stderr, "\n");
-- exit(1);
-+ fflush(stdout);
-+ fprintf(stderr, "%s: ", app_name);
-+ vfprintf(stderr, s, p);
-+}
-+static void error_msg(const char *s, ...)
-+{
-+ va_list p;
-+ va_start(p, s);
-+ verror_msg(s, p);
-+ va_end(p);
-+ putc('\n', stderr);
-+}
-+
-+static void error_msg_and_die(const char *s, ...)
-+{
-+ va_list p;
-+ va_start(p, s);
-+ verror_msg(s, p);
-+ va_end(p);
-+ putc('\n', stderr);
-+ exit(EXIT_FAILURE);
-+}
-+
-+static void vperror_msg(const char *s, va_list p)
-+{
-+ int err = errno;
-+ if (s == 0)
-+ s = "";
-+ verror_msg(s, p);
-+ if (*s)
-+ s = ": ";
-+ fprintf(stderr, "%s%s\n", s, strerror(err));
-+}
-+
-+#if 0
-+static void perror_msg(const char *s, ...)
-+{
-+ va_list p;
-+ va_start(p, s);
-+ vperror_msg(s, p);
-+ va_end(p);
-+}
-+#endif
-+static void perror_msg_and_die(const char *s, ...)
-+{
-+ va_list p;
-+ va_start(p, s);
-+ vperror_msg(s, p);
-+ va_end(p);
-+ exit(EXIT_FAILURE);
- }
-
--inline void pexit(const char * fname)
-+static FILE *xfopen(const char *path, const char *mode)
- {
-- fprintf(stderr, "%s: ", argv0);
-- perror(fname);
-- exit(1);
-+ FILE *fp;
-+ if ((fp = fopen(path, mode)) == NULL)
-+ perror_msg_and_die("%s", path);
-+ return fp;
-+}
-+
-+static char *xstrdup(const char *s)
-+{
-+ char *t;
-+
-+ if (s == NULL)
-+ return NULL;
-+ t = strdup(s);
-+ if (t == NULL)
-+ error_msg_and_die(memory_exhausted);
-+ return t;
-+}
-+
-+extern void *xrealloc(void *ptr, size_t size)
-+{
-+ ptr = realloc(ptr, size);
-+ if (ptr == NULL && size != 0)
-+ error_msg_and_die(memory_exhausted);
-+ return ptr;
-+}
-+
-+static char *xreadlink(const char *path)
-+{
-+ static const int GROWBY = 80; /* how large we will grow strings by */
-+
-+ char *buf = NULL;
-+ int bufsize = 0, readsize = 0;
-+
-+ do {
-+ buf = xrealloc(buf, bufsize += GROWBY);
-+ readsize = readlink(path, buf, bufsize); /* 1st try */
-+ if (readsize == -1) {
-+ perror_msg_and_die("%s:%s", app_name, path);
-+ }
-+ }
-+ while (bufsize < readsize + 1);
-+
-+ buf[readsize] = '\0';
-+
-+ return buf;
- }
-
- // printf helper macro
-@@ -423,7 +584,7 @@
- {
- }
-
--// rounds a quantity up to a blocksize
-+/* Rounds qty upto a multiple of siz. siz should be a power of 2 */
- uint32 rndup(uint32 qty, uint32 siz)
- {
- return (qty + (siz - 1)) & ~(siz - 1);
-@@ -444,7 +605,13 @@
- // return a given inode from a filesystem
- inline inode * get_nod(filesystem *fs, uint32 nod)
- {
-- return &fs->itab[nod-1];
-+ int grp,offset;
-+ inode *itab;
-+
-+ offset = GRP_IBM_OFFSET(fs,nod);
-+ grp = GRP_GROUP_OF_INODE(fs,nod);
-+ itab = (inode *)get_blk(fs, fs->gd[grp].bg_inode_table);
-+ return itab+offset-1;
- }
-
- // allocate a given block/inode in the bitmap
-@@ -479,29 +646,57 @@
- }
-
- // allocate a block
--uint32 alloc_blk(filesystem *fs)
-+uint32 alloc_blk(filesystem *fs, uint32 nod)
- {
-- uint32 bk;
-- if(!(bk = allocate(fs->bbm, 0)))
-- errexit("couldn't allocate a block (no free space)");
-- if(!(fs->gd.bg_free_blocks_count--))
-- errexit("group descr. free blocks count == 0 (corrupted fs?)");
-+ uint32 bk=0;
-+ uint32 grp,nbgroups;
-+
-+ grp = nod/fs->sb.s_inodes_per_group;
-+ nbgroups = ( fs->sb.s_blocks_count - fs->sb.s_first_data_block + fs->sb.s_blocks_per_group -1 ) /
-+ fs->sb.s_blocks_per_group;
-+ if(!(bk = allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap), 0))) {
-+ for(grp=0;grp<nbgroups && !bk;grp++)
-+ bk=allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap),0);
-+ grp--;
-+ }
-+ if (!bk)
-+ error_msg_and_die("couldn't allocate a block (no free space)");
-+ if(!(fs->gd[grp].bg_free_blocks_count--))
-+ error_msg_and_die("group descr %d. free blocks count == 0 (corrupted fs?)",grp);
- if(!(fs->sb.s_free_blocks_count--))
-- errexit("superblock free blocks count == 0 (corrupted fs?)");
-- return bk;
-+ error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
-+ return fs->sb.s_blocks_per_group*grp + bk;
- }
-
- // allocate an inode
- uint32 alloc_nod(filesystem *fs)
- {
-- uint32 nod;
-- if(!(nod = allocate(fs->ibm, 0)))
-- errexit("couldn't allocate an inode (no free inode)");
-- if(!(fs->gd.bg_free_inodes_count--))
-- errexit("group descr. free blocks count == 0 (corrupted fs?)");
-+ uint32 nod=0,best_group=0;
-+ uint32 grp,nbgroups,avefreei;
-+
-+ nbgroups = ( fs->sb.s_blocks_count - fs->sb.s_first_data_block + fs->sb.s_blocks_per_group -1 ) /
-+ fs->sb.s_blocks_per_group;
-+
-+ /* Distribute inodes amongst all the blocks */
-+ /* For every block group with more than average number of free inodes */
-+ /* find the one with the most free blocks and allocate node there */
-+ /* Idea from find_group_dir in fs/ext2/ialloc.c in 2.4.19 kernel */
-+ /* We do it for all inodes. */
-+ avefreei = fs->sb.s_free_inodes_count / nbgroups;
-+ for(grp=0;grp<nbgroups && !nod;grp++) {
-+ if (fs->gd[grp].bg_free_inodes_count < avefreei)
-+ continue;
-+ if (!best_group ||
-+ fs->gd[grp].bg_free_blocks_count > fs->gd[best_group].bg_free_blocks_count)
-+ best_group = grp;
-+ }
-+ if (!(nod = allocate(get_blk(fs,fs->gd[best_group].bg_inode_bitmap),0)))
-+ error_msg_and_die("couldn't allocate an inode (no free inode)");
-+ if(!(fs->gd[best_group].bg_free_inodes_count--))
-+ error_msg_and_die("group descr. free blocks count == 0 (corrupted fs?)");
- if(!(fs->sb.s_free_inodes_count--))
-- errexit("superblock free blocks count == 0 (corrupted fs?)");
-- return nod;
-+ error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
-+ return fs->sb.s_inodes_per_group*best_group+nod;
- }
-
- // print a bitmap allocation
-@@ -546,14 +741,14 @@
- {
- bkref = &get_nod(fs, nod)->i_block[bw->bpdir = 0];
- if(extend) // allocate first block
-- *bkref = hole ? 0 : alloc_blk(fs);
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
- }
- // direct block
- else if(bw->bpdir < EXT2_NDIR_BLOCKS)
- {
- bkref = &get_nod(fs, nod)->i_block[++bw->bpdir];
- if(extend) // allocate block
-- *bkref = hole ? 0 : alloc_blk(fs);
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
- }
- // first block in indirect block
- else if(bw->bpdir == EXT2_NDIR_BLOCKS)
-@@ -562,11 +757,11 @@
- bw->bpdir = EXT2_IND_BLOCK;
- bw->bpind = 0;
- if(extend) // allocate indirect block
-- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs);
-+ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- bkref = &b[bw->bpind];
- if(extend) // allocate first block
-- *bkref = hole ? 0 : alloc_blk(fs);
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
- }
- // block in indirect block
- else if((bw->bpdir == EXT2_IND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1))
-@@ -575,7 +770,7 @@
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- bkref = &b[bw->bpind];
- if(extend) // allocate block
-- *bkref = hole ? 0 : alloc_blk(fs);
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
- }
- // first block in first indirect block in first double indirect block
- else if(bw->bpdir == EXT2_IND_BLOCK)
-@@ -585,14 +780,14 @@
- bw->bpind = 0;
- bw->bpdind = 0;
- if(extend) // allocate double indirect block
-- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs);
-+ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- if(extend) // allocate first indirect block
-- b[bw->bpind] = alloc_blk(fs);
-+ b[bw->bpind] = alloc_blk(fs,nod);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- bkref = &b[bw->bpdind];
- if(extend) // allocate first block
-- *bkref = hole ? 0 : alloc_blk(fs);
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
- }
- // block in indirect block in double indirect block
- else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpdind < BLOCKSIZE/4 - 1))
-@@ -602,7 +797,7 @@
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- bkref = &b[bw->bpdind];
- if(extend) // allocate block
-- *bkref = hole ? 0 : alloc_blk(fs);
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
- }
- // first block in indirect block in double indirect block
- else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1))
-@@ -612,20 +807,100 @@
- bw->bpind++;
- b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
- if(extend) // allocate indirect block
-- b[bw->bpind] = alloc_blk(fs);
-+ b[bw->bpind] = alloc_blk(fs,nod);
- b = (uint32*)get_blk(fs, b[bw->bpind]);
- bkref = &b[bw->bpdind];
- if(extend) // allocate first block
-- *bkref = hole ? 0 : alloc_blk(fs);
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
-+ }
-+
-+ /* Adding support for triple indirection */
-+ /* Just starting triple indirection. Allocate the indirection
-+ blocks and the first data block
-+ */
-+ else if (bw->bpdir == EXT2_DIND_BLOCK)
-+ {
-+ bw->bnum += 3;
-+ bw->bpdir = EXT2_TIND_BLOCK;
-+ bw->bpind = 0;
-+ bw->bpdind = 0;
-+ bw->bptind = 0;
-+ if(extend) // allocate triple indirect block
-+ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
-+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ if(extend) // allocate first double indirect block
-+ b[bw->bpind] = alloc_blk(fs,nod);
-+ b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ if(extend) // allocate first indirect block
-+ b[bw->bpdind] = alloc_blk(fs,nod);
-+ b = (uint32*)get_blk(fs, b[bw->bpdind]);
-+ bkref = &b[bw->bptind];
-+ if(extend) // allocate first data block
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
-+ }
-+ /* Still processing a single indirect block down the indirection
-+ chain.Allocate a data block for it
-+ */
-+ else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
-+ (bw->bptind < BLOCKSIZE/4 -1) )
-+ {
-+ bw->bptind++;
-+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ b = (uint32*)get_blk(fs, b[bw->bpdind]);
-+ bkref = &b[bw->bptind];
-+ if(extend) // allocate data block
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
-+ }
-+ /* Finished processing a single indirect block. But still in the
-+ same double indirect block. Allocate new single indirect block
-+ for it and a data block
-+ */
-+ else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
-+ (bw->bpdind < BLOCKSIZE/4 -1) )
-+ {
-+ bw->bnum++;
-+ bw->bptind = 0;
-+ bw->bpdind++;
-+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ if (extend) // allocate single indirect block
-+ b[bw->bpdind] = alloc_blk(fs,nod);
-+ b = (uint32*)get_blk(fs, b[bw->bpdind]);
-+ bkref = &b[bw->bptind];
-+ if(extend) // allocate first data block
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
-+ }
-+ /* Finished processing a double indirect block. Allocate the next
-+ double indirect block and the single,data blocks for it
-+ */
-+ else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
-+ (bw->bpind < BLOCKSIZE/4 - 1) )
-+ {
-+ bw->bnum += 2;
-+ bw->bpdind = 0;
-+ bw->bptind = 0;
-+ bw->bpind++;
-+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
-+ if(extend) // allocate double indirect block
-+ b[bw->bpind] = alloc_blk(fs,nod);
-+ b = (uint32*)get_blk(fs, b[bw->bpind]);
-+ if(extend) // allocate single indirect block
-+ b[bw->bpdind] = alloc_blk(fs,nod);
-+ b = (uint32*)get_blk(fs, b[bw->bpdind]);
-+ bkref = &b[bw->bptind];
-+ if(extend) // allocate first block
-+ *bkref = hole ? 0 : alloc_blk(fs,nod);
- }
-- // I don't do triple indirect - it's such a small filesystem ...
- else
-- errexit("file too big ! blocks list for inode %d extends past double indirect blocks!", nod);
-+ error_msg_and_die("file too big !");
-+ /* End change for walking triple indirection */
-+
- if(*bkref)
- {
- bw->bnum++;
-- if(!allocated(fs->bbm, *bkref))
-- errexit("[block %d of inode %d is unallocated !]", *bkref, nod);
-+ if(!allocated(GRP_GET_BLOCK_BITMAP(fs,*bkref), GRP_BBM_OFFSET(fs,*bkref)))
-+ error_msg_and_die("[block %d of inode %d is unallocated !]", *bkref, nod);
- }
- if(extend)
- get_nod(fs, nod)->i_blocks = bw->bnum * INOBLK;
-@@ -663,23 +938,40 @@
- }
-
- // link an entry (inode #) to a directory
--void add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name)
-+void add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name, uint32 mode, uid_t uid, gid_t gid, time_t ctime)
- {
- blockwalker bw;
- uint32 bk;
- uint8 *b;
- directory *d;
- int reclen, nlen;
-- if((get_nod(fs, dnod)->i_mode & FM_IFMT) != FM_IFDIR)
-- errexit("can't add '%s' to a non-directory", name);
-+ inode *node;
-+ inode *pnode;
-+
-+ /* Squash all permissions so files are owned by root
-+ * and file permissions have group/other perms removed */
-+ if (squash_uids) {
-+ uid = gid = 0;
-+ }
-+ if (squash_perms) {
-+ if (!S_ISLNK(mode)) {
-+ mode &= ~(S_IWGRP | S_IWOTH);
-+ mode &= ~(S_ISUID | S_ISGID);
-+ }
-+ }
-+
-+ pnode = get_nod(fs, dnod);
-+
-+ if(!S_ISDIR(pnode->i_mode))
-+ error_msg_and_die("can't add '%s' to a non-directory", name);
- if(!*name)
-- errexit("bad name '%s' (not meaningful)", name);
-+ error_msg_and_die("bad name '%s' (not meaningful)", name);
- if(strchr(name, '/'))
-- errexit("bad name '%s' (contains a slash)", name);
-+ error_msg_and_die("bad name '%s' (contains a slash)", name);
- nlen = strlen(name);
- reclen = sizeof(directory) + rndup(nlen, 4);
- if(reclen > BLOCKSIZE)
-- errexit("bad name '%s' (too long)", name);
-+ error_msg_and_die("bad name '%s' (too long)", name);
- init_bw(fs, dnod, &bw);
- while((bk = walk_bw(fs, dnod, &bw, 0, 0)) != WALK_END) // for all blocks in dir
- {
-@@ -691,9 +983,16 @@
- if((!d->d_inode) && (d->d_rec_len >= reclen))
- {
- d->d_inode = nod;
-- get_nod(fs, nod)->i_links_count++;
-+ node = get_nod(fs, nod);
-+ node->i_links_count++;
- d->d_name_len = nlen;
-- strncpy(d->d_name, name, nlen);
-+ strncpy(d->d_name, name, rndup(nlen,4));
-+ node->i_mode = mode;
-+ node->i_uid = uid;
-+ node->i_gid = gid;
-+ node->i_atime = ctime;
-+ node->i_ctime = ctime;
-+ node->i_mtime = ctime;
- return;
- }
- // if entry with enough room (last one?), shrink it & use it
-@@ -705,9 +1004,16 @@
- d = (directory*) (((int8*)d) + d->d_rec_len);
- d->d_rec_len = reclen;
- d->d_inode = nod;
-- get_nod(fs, nod)->i_links_count++;
-+ node = get_nod(fs, nod);
-+ node->i_links_count++;
- d->d_name_len = nlen;
-- strncpy(d->d_name, name, nlen);
-+ strncpy(d->d_name, name, rndup(nlen,4));
-+ node->i_mode = mode;
-+ node->i_uid = uid;
-+ node->i_gid = gid;
-+ node->i_atime = ctime;
-+ node->i_ctime = ctime;
-+ node->i_mtime = ctime;
- return;
- }
- }
-@@ -716,10 +1022,17 @@
- b = get_workblk();
- d = (directory*)b;
- d->d_inode = nod;
-- get_nod(fs, nod)->i_links_count++;
-+ node = get_nod(fs, nod);
-+ node->i_links_count++;
- d->d_rec_len = BLOCKSIZE;
- d->d_name_len = nlen;
-- strncpy(d->d_name, name, nlen);
-+ strncpy(d->d_name, name, rndup(nlen,4));
-+ node->i_mode = mode;
-+ node->i_uid = uid;
-+ node->i_gid = gid;
-+ node->i_atime = ctime;
-+ node->i_ctime = ctime;
-+ node->i_mtime = ctime;
- extend_blk(fs, dnod, b, 1);
- get_nod(fs, dnod)->i_size += BLOCKSIZE;
- free_workblk(b);
-@@ -747,7 +1060,7 @@
- // find the inode of a full path
- uint32 find_path(filesystem *fs, uint32 nod, const char * name)
- {
-- char *p, *n, *n2 = strdup(name);
-+ char *p, *n, *n2 = xstrdup(name);
- n = n2;
- while(*n == '/')
- {
-@@ -770,27 +1083,32 @@
- }
-
- // make a full-fledged directory (i.e. with "." & "..")
--uint32 mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode)
-+uint32 mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode,
-+ uid_t uid, gid_t gid, time_t ctime)
- {
- uint32 nod;
- if((nod = find_dir(fs, parent_nod, name)))
- return nod;
- nod = alloc_nod(fs);
-- get_nod(fs, nod)->i_mode = FM_IFDIR | mode;
-- add2dir(fs, parent_nod, nod, name);
-- add2dir(fs, nod, nod, ".");
-- add2dir(fs, nod, parent_nod, "..");
-- fs->gd.bg_used_dirs_count++;
-+ if (!(mode & FM_IFDIR))
-+ mode |= FM_IFDIR;
-+ add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
-+ add2dir(fs, nod, nod, ".", mode, uid, gid, ctime);
-+ add2dir(fs, nod, parent_nod, "..", mode, uid, gid, ctime);
-+ fs->gd[GRP_GROUP_OF_INODE(fs,nod)].bg_used_dirs_count++;
- return nod;
- }
-
- // make a symlink
--uint32 mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 * b)
-+uint32 mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size,
-+ uint8 * b, uid_t uid, gid_t gid, time_t ctime)
- {
-+ uint32 mode;
- uint32 nod = alloc_nod(fs);
-+ mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
- get_nod(fs, nod)->i_mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
- get_nod(fs, nod)->i_size = size;
-- add2dir(fs, parent_nod, nod, name);
-+ add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
- if(size <= 4 * (EXT2_TIND_BLOCK+1))
- {
- strncpy((char*)get_nod(fs, nod)->i_block, (char*)b, size);
-@@ -801,15 +1119,15 @@
- }
-
- // make a file from a FILE*
--uint32 mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f)
-+uint32 mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f, uid_t uid, gid_t gid, time_t ctime)
- {
- uint8 * b;
- uint32 nod = alloc_nod(fs);
-- get_nod(fs, nod)->i_mode = FM_IFREG | mode;
-+ mode |= FM_IFREG;
- get_nod(fs, nod)->i_size = size;
-- add2dir(fs, parent_nod, nod, name);
-+ add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
- if(!(b = (uint8*)malloc(rndup(size, BLOCKSIZE))))
-- errexit("not enough mem to read file '%s'", name);
-+ error_msg_and_die("not enough mem to read file '%s'", name);
- memset(b, 0,rndup(size, BLOCKSIZE));
- if(f)
- fread(b, size, 1, f);
-@@ -824,6 +1142,15 @@
- uint32 get_mode(struct stat *st)
- {
- uint32 mode = 0;
-+
-+ /* Squash file permissions as needed */
-+ if (squash_perms) {
-+ if (!S_ISLNK(mode)) {
-+ st->st_mode &= ~(S_IWGRP | S_IWOTH);
-+ st->st_mode &= ~(S_ISUID | S_ISGID);
-+ }
-+ }
-+
- if(st->st_mode & S_IRUSR)
- mode |= FM_IRUSR | FM_IRGRP | FM_IROTH;
- if(st->st_mode & S_IWUSR)
-@@ -833,30 +1160,17 @@
- return mode;
- }
-
--// retrieves a mode info from a string
--uint32 get_modestr(const char *p)
--{
-- uint32 mode = 0;
-- if(p[0] == 'r')
-- mode |= FM_IRUSR | FM_IRGRP | FM_IROTH;
-- if(p[1] == 'w')
-- mode |= FM_IWUSR | FM_IWGRP | FM_IWOTH;
-- if(p[2] == 'x' || p[2] == 's')
-- mode |= FM_IXUSR | FM_IXGRP | FM_IXOTH;
-- return mode;
--}
--
- // basename of a path - free me
- char * basename(const char * fullpath)
- {
- char * p = strrchr(fullpath, '/');
-- return strdup(p ? p + 1 : fullpath);
-+ return xstrdup(p ? p + 1 : fullpath);
- }
-
- // dirname of a path - free me
- char * dirname(const char * fullpath)
- {
-- char * p, * n = strdup(fullpath);
-+ char * p, * n = xstrdup(fullpath);
- if((p = strrchr(n, '/')))
- *(p+1) = 0;
- else
-@@ -864,66 +1178,6 @@
- return n;
- }
-
--// adds entries to the filesystem from a text file
--void add2fs_from_file(filesystem *fs, uint32 this_nod, FILE * fh)
--{
-- uint32 mode;
-- uint32 nod, nod2;
-- char cmod[11], *path, *name, *dir;
-- int major, minor;
-- while(fscanf(fh, "%10s", cmod))
-- {
-- if(feof(fh))
-- break;
-- mode = get_modestr(cmod + 1);
-- switch(*cmod)
-- {
-- case 'd':
-- fscanf(fh, "%" SCANF_PREFIX "s\n", SCANF_STRING(path));
-- break;
-- case 'c':
-- mode |= FM_IFCHR;
-- fscanf(fh, "%i, %i %" SCANF_PREFIX "s\n", &major, &minor, SCANF_STRING(path));
-- break;
-- case 'b':
-- mode |= FM_IFBLK;
-- fscanf(fh, "%i, %i %" SCANF_PREFIX "s\n", &major, &minor, SCANF_STRING(path));
-- break;
-- case '#':
-- while(fgetc(fh) != '\n');
-- continue;
-- default:
-- errexit("malformed text input file");
-- }
-- name = basename(path);
-- dir = dirname(path);
-- free(path);
-- if(!(nod = find_path(fs, this_nod, dir)))
-- errexit("can't find directory '%s' to create '%s''", dir, name);
-- free(dir);
-- if((!strcmp(name, ".")) || (!strcmp(name, "..")))
-- {
-- free(name);
-- continue;
-- }
-- switch(*cmod)
-- {
-- case 'd':
-- mkdir_fs(fs, nod, name, mode);
-- break;
-- case 'c':
-- case 'b':
-- nod2 = alloc_nod(fs);
-- get_nod(fs, nod2)->i_mode = mode;
-- ((uint8*)get_nod(fs, nod2)->i_block)[0] = minor;
-- ((uint8*)get_nod(fs, nod2)->i_block)[1] = major;
-- add2dir(fs, nod, nod2, name);
-- break;
-- }
-- free(name);
-- }
--}
--
- // adds a tree of entries to the filesystem from current dir
- void add2fs_from_dir(filesystem *fs, uint32 this_nod)
- {
-@@ -934,7 +1188,7 @@
- struct stat st;
- uint8 *b;
- if(!(dh = opendir(".")))
-- pexit(".");
-+ perror_msg_and_die(".");
- while((dent = readdir(dh)))
- {
- if((!strcmp(dent->d_name, ".")) || (!strcmp(dent->d_name, "..")))
-@@ -948,31 +1202,27 @@
- get_nod(fs, nod)->i_mode = (((st.st_mode & S_IFMT) == S_IFCHR) ? FM_IFCHR : FM_IFBLK) | get_mode(&st);
- ((uint8*)get_nod(fs, nod)->i_block)[0] = (st.st_rdev & 0xff);
- ((uint8*)get_nod(fs, nod)->i_block)[1] = (st.st_rdev >> 8);
-- add2dir(fs, this_nod, nod, dent->d_name);
-+ add2dir(fs, this_nod, nod, dent->d_name, st.st_mode, st.st_uid, st.st_gid, st.st_ctime);
- break;
- case S_IFLNK:
-- if(!(b = (uint8*)malloc(rndup(st.st_size, BLOCKSIZE))))
-- errexit("out of memory");
-- if(readlink(dent->d_name, (char*)b, st.st_size) < 0)
-- pexit(dent->d_name);
-- mklink_fs(fs, this_nod, dent->d_name, st.st_size, b);
-+ b = xreadlink(dent->d_name);
-+ mklink_fs(fs, this_nod, dent->d_name, st.st_size, b, st.st_uid, st.st_gid, st.st_ctime);
- free(b);
- break;
- case S_IFREG:
-- if(!(fh = fopen(dent->d_name, "r")))
-- pexit(dent->d_name);
-- mkfile_fs(fs, this_nod, dent->d_name, get_mode(&st), st.st_size, fh);
-+ fh = xfopen(dent->d_name, "r");
-+ mkfile_fs(fs, this_nod, dent->d_name, st.st_mode, st.st_size, fh, st.st_uid, st.st_gid, st.st_ctime);
- fclose(fh);
- break;
- case S_IFDIR:
-- nod = mkdir_fs(fs, this_nod, dent->d_name, get_mode(&st));
-+ nod = mkdir_fs(fs, this_nod, dent->d_name, st.st_mode, st.st_uid, st.st_gid, st.st_ctime);
- if(chdir(dent->d_name) < 0)
-- pexit(dent->d_name);
-+ perror_msg_and_die(dent->d_name);
- add2fs_from_dir(fs, nod);
- chdir("..");
- break;
- default:
-- fprintf(stderr, "ignoring entry %s", dent->d_name);
-+ error_msg("ignoring entry %s", dent->d_name);
- }
- }
- closedir(dh);
-@@ -981,9 +1231,11 @@
- // endianness swap of x-indirect blocks
- void swap_goodblocks(filesystem *fs, inode *nod)
- {
-- int i;
-+ int i,j,done=0;
-+ uint32 *b,*b2;
-+
- int nblk = nod->i_blocks / INOBLK;
-- if((nod->i_size && !nblk) || (nod->i_mode & (FM_IFBLK | FM_IFCHR)))
-+ if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
- for(i = 0; i <= EXT2_TIND_BLOCK; i++)
- nod->i_block[i] = swab32(nod->i_block[i]);
- if(nblk <= EXT2_IND_BLOCK)
-@@ -991,20 +1243,55 @@
- swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4)
- return;
-+ /* Currently this will fail b'cos the number of blocks as stored
-+ in i_blocks also includes the indirection blocks (see
-+ walk_bw). But this function assumes that i_blocks only
-+ stores the count of data blocks ( Actually according to
-+ "Understanding the Linux Kernel" (Table 17-3 p502 1st Ed)
-+ i_blocks IS supposed to store the count of data blocks). so
-+ with a file of size 268K nblk would be 269.The above check
-+ will be false even though double indirection hasn't been
-+ started.This is benign as 0 means block 0 which has been
-+ zeroed out and therefore points back to itself from any offset
-+ */
-+ assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
- for(i = 0; i < BLOCKSIZE/4; i++)
-+ /* Should this be...
-+ if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i )
-+ */
- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + i)
- swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
- swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
- return;
-- errexit("too big file on the filesystem");
-+ /* Adding support for triple indirection */
-+ b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
-+ for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
-+ b2 = (uint32*)get_blk(fs,b[i]);
-+ for(j=0; j<BLOCKSIZE/4;j++) {
-+ if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
-+ (BLOCKSIZE/4)*(BLOCKSIZE/4) +
-+ i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
-+ j*(BLOCKSIZE/4)) )
-+ swap_block(get_blk(fs,b2[j]));
-+ else {
-+ done = 1;
-+ break;
-+ }
-+ }
-+ swap_block((uint8 *)b2);
-+ }
-+ swap_block((uint8 *)b);
-+ return;
- }
-
- void swap_badblocks(filesystem *fs, inode *nod)
- {
-- int i;
-+ int i,j,done=0;
-+ uint32 *b,*b2;
-+
- int nblk = nod->i_blocks / INOBLK;
-- if((nod->i_size && !nblk) || (nod->i_mode & (FM_IFBLK | FM_IFCHR)))
-+ if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
- for(i = 0; i <= EXT2_TIND_BLOCK; i++)
- nod->i_block[i] = swab32(nod->i_block[i]);
- if(nblk <= EXT2_IND_BLOCK)
-@@ -1012,13 +1299,34 @@
- swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4)
- return;
-+ /* See comment in swap_goodblocks */
-+ assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
- swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
- for(i = 0; i < BLOCKSIZE/4; i++)
-+ /* See comment in swap_goodblocks */
- if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + i)
- swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
- if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
- return;
-- errexit("too big file on the filesystem");
-+ /* Adding support for triple indirection */
-+ b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
-+ swap_block((uint8 *)b);
-+ for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
-+ b2 = (uint32*)get_blk(fs,b[i]);
-+ swap_block((uint8 *)b2);
-+ for(j=0; j<BLOCKSIZE/4;j++) {
-+ if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
-+ (BLOCKSIZE/4)*(BLOCKSIZE/4) +
-+ i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
-+ j*(BLOCKSIZE/4)) )
-+ swap_block(get_blk(fs,b2[j]));
-+ else {
-+ done = 1;
-+ break;
-+ }
-+ }
-+ }
-+ return;
- }
-
- // endianness swap of the whole filesystem
-@@ -1045,7 +1353,8 @@
- swap_goodblocks(fs, nod);
- swap_nod(nod);
- }
-- swap_gd(&fs->gd);
-+ for(i=0;i<GRP_NBGROUPS(fs);i++)
-+ swap_gd(&(fs->gd[i]));
- swap_sb(&fs->sb);
- }
-
-@@ -1053,7 +1362,8 @@
- {
- int i;
- swap_sb(&fs->sb);
-- swap_gd(&fs->gd);
-+ for(i=0;i<GRP_NBGROUPS(fs);i++)
-+ swap_gd(&(fs->gd[i]));
- for(i = 1; i < fs->sb.s_inodes_count; i++)
- {
- inode *nod = get_nod(fs, i);
-@@ -1084,53 +1394,118 @@
- directory *d;
- uint8 * b;
- uint32 nod;
-+ uint32 nbgroups,nbinodes_per_group,overhead_per_group,free_blocks,
-+ free_blocks_per_group,nbblocks_per_group;
-+ uint32 gd,itbl,ibmpos,bbmpos,itblpos;
-+ int j;
-+ uint8 *bbm,*ibm;
-+ inode *itab0;
-
- if(nbblocks < 16) // totally arbitrary
-- errexit("too small filesystem");
-- if(nbblocks >BLOCKS_PER_GROUP) // I build only one group
-- errexit("too big filesystem");
-+ error_msg_and_die("too small filesystem");
-+
-+ /* nbblocks is the total number of blocks in the system. First
-+ * calculate how much overhead blocks - inode table blocks,bitmap
-+ * blocks,group descriptor blocks etc. - are needed assuming each
-+ * group has BLOCKS_PER_GROUP blocks.Then recalculate nbblocks with
-+ * this figure. Each group has the same number of blocks. So the fs
-+ * has a size atleast the given value but usually rounded off to a i
-+ * higher number.
-+ */
-+ nbgroups = rndup(nbblocks,BLOCKS_PER_GROUP)/ BLOCKS_PER_GROUP;
-+ nbinodes_per_group = nbinodes/nbgroups +1;
-+ nbinodes_per_group = rndup(nbinodes_per_group, BLOCKSIZE/sizeof(inode));
-+ if (nbinodes_per_group < 16)
-+ nbinodes_per_group = 16; //minimum number b'cos the first 10 are reserved
-+ overhead_per_group = 3 /*super block,ibm,bbm*/
-+ + /* No. of blocks that the inodes occupy */
-+ nbinodes_per_group *sizeof(inode)/BLOCKSIZE
-+ + /* No. of blocks that group descriptors occupy */
-+ rndup(nbgroups*sizeof(groupdescriptor),BLOCKSIZE)/BLOCKSIZE;
-+ free_blocks = nbblocks - overhead_per_group * nbgroups - 1 /*boot block */;
-+ free_blocks_per_group = free_blocks/nbgroups;
-+ if (free_blocks > free_blocks_per_group * nbgroups)
-+ free_blocks_per_group++;
-+ nbblocks_per_group = free_blocks_per_group + overhead_per_group;
-+ /* e2fsck complains if nbblocks_per_group is not a multiple of 8 */
-+ nbblocks_per_group = rndup(nbblocks_per_group,8);
-+ free_blocks_per_group = nbblocks_per_group - overhead_per_group;
-+ if (nbblocks_per_group > BLOCKS_PER_GROUP) {
-+ /* Can this happen ? */
-+ nbblocks_per_group = BLOCKS_PER_GROUP;
-+ free_blocks_per_group = nbblocks_per_group - overhead_per_group;
-+ }
-+ nbblocks = nbblocks_per_group * nbgroups + 1;
-+
-+
- if(!(fs = (filesystem*)calloc(nbblocks, BLOCKSIZE)))
-- errexit("not enough memory for filesystem");
-+ error_msg_and_die("not enough memory for filesystem");
-
- // create the superblock for an empty filesystem
-- fs->sb.s_inodes_count = rndup(nbinodes, BLOCKSIZE/sizeof(inode));
-+ fs->sb.s_inodes_count = nbinodes_per_group * nbgroups;
- fs->sb.s_blocks_count = nbblocks;
- fs->sb.s_r_blocks_count = nbresrvd;
-- fs->sb.s_free_blocks_count = nbblocks;
-+ fs->sb.s_free_blocks_count = free_blocks_per_group*nbgroups;
- fs->sb.s_free_inodes_count = fs->sb.s_inodes_count - EXT2_FIRST_INO + 1;
- fs->sb.s_first_data_block = (BLOCKSIZE == 1024);
- fs->sb.s_log_block_size = BLOCKSIZE >> 11;
- fs->sb.s_log_frag_size = BLOCKSIZE >> 11;
-- fs->sb.s_blocks_per_group = BLOCKS_PER_GROUP;
-- fs->sb.s_frags_per_group = BLOCKS_PER_GROUP;
-- fs->sb.s_inodes_per_group = fs->sb.s_inodes_count;
-+ fs->sb.s_blocks_per_group = nbblocks_per_group;
-+ fs->sb.s_frags_per_group = nbblocks_per_group;
-+ fs->sb.s_inodes_per_group = nbinodes_per_group;
- fs->sb.s_magic = EXT2_MAGIC_NUMBER;
-
- // set up groupdescriptors
-- fs->sb.s_free_blocks_count -= 5 + fs->sb.s_inodes_count * sizeof(inode) / BLOCKSIZE;
-- fs->gd.bg_free_blocks_count = fs->sb.s_free_blocks_count;
-- fs->gd.bg_free_inodes_count = fs->sb.s_free_inodes_count;
-- fs->gd.bg_used_dirs_count = 1;
-- fs->gd.bg_block_bitmap = 3;
-- fs->gd.bg_inode_bitmap = 4;
-- fs->gd.bg_inode_table = 5;
--
-- // mark non-filesystem blocks and inodes as allocated
-- for(i = fs->sb.s_blocks_count; i <= BLOCKSIZE * 8; i++)
-- allocate(fs->bbm, i);
-- for(i = fs->sb.s_inodes_count + 1; i <= BLOCKSIZE * 8; i++)
-- allocate(fs->ibm, i);
--
-- // mark system blocsk and inodes as allocated
-- for(i = 1; i <= 4 + fs->sb.s_inodes_count * sizeof(inode) / BLOCKSIZE; i++)
-- allocate(fs->bbm, i);
-- for(i = 1; i < EXT2_FIRST_INO; i++)
-- allocate(fs->ibm, i);
--
-- // make root inode and directory
-- fs->itab[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRWXG | FM_IRWXO;
-- fs->itab[EXT2_ROOT_INO-1].i_size = BLOCKSIZE;
-- fs->itab[EXT2_ROOT_INO-1].i_links_count = 2;
-+ gd = rndup(nbgroups*sizeof(groupdescriptor),BLOCKSIZE)/BLOCKSIZE;
-+ itbl = nbinodes_per_group*sizeof(inode)/BLOCKSIZE;
-+ for(i = 0,bbmpos=2+gd,ibmpos=3+gd,itblpos =4+gd;
-+ i<nbgroups;
-+ i++, bbmpos += nbblocks_per_group,ibmpos += nbblocks_per_group,
-+ itblpos += nbblocks_per_group) {
-+
-+ fs->gd[i].bg_free_blocks_count = free_blocks_per_group;
-+ fs->gd[i].bg_free_inodes_count = nbinodes_per_group;
-+ fs->gd[i].bg_used_dirs_count = 0;
-+ fs->gd[i].bg_block_bitmap = bbmpos;
-+ fs->gd[i].bg_inode_bitmap = ibmpos;
-+ fs->gd[i].bg_inode_table = itblpos;
-+ }
-+
-+ /* Mark non-filesystem blocks and inodes as allocated */
-+ /* Mark system blocks and inodes as allocated */
-+ for(i = 0; i<nbgroups;i++) {
-+
-+ /* Block bitmap */
-+ bbm = get_blk(fs,fs->gd[i].bg_block_bitmap);
-+ //non-filesystem blocks.
-+ for(j=fs->sb.s_blocks_per_group + 1; j <= BLOCKSIZE * 8; j++)
-+ allocate(bbm, j);
-+ //system blocks
-+ for(j = 1; j <= 3+gd+itbl; j++)
-+ allocate(bbm, j);
-+
-+ /* Inode bitmap */
-+ ibm = get_blk(fs,fs->gd[i].bg_inode_bitmap);
-+ //non-filesystem inodes
-+ for(j = fs->sb.s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++)
-+ allocate(ibm, j);
-+ }
-+
-+ /* We have groups now. Add the root filesystem in group 0 */
-+ /* Also allocate the system inodes in group 0 and update */
-+ /* directory count and inode count for group 0 */
-+
-+ ibm = get_blk(fs,fs->gd[0].bg_inode_bitmap);
-+ for(j = 1; j < EXT2_FIRST_INO; j++) {
-+ allocate(ibm, j);
-+ fs->gd[0].bg_free_inodes_count--;
-+ }
-+ fs->gd[0].bg_used_dirs_count = 1;
-+ itab0 = (inode *)get_blk(fs,fs->gd[0].bg_inode_table);
-+ itab0[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRWXG | FM_IRWXO;
-+ itab0[EXT2_ROOT_INO-1].i_size = BLOCKSIZE;
-+ itab0[EXT2_ROOT_INO-1].i_links_count = 2;
-+
- b = get_workblk();
- d = (directory*)b;
- d->d_inode = EXT2_ROOT_INO;
-@@ -1147,9 +1522,14 @@
- // make lost+found directory and reserve blocks
- if(fs->sb.s_r_blocks_count)
- {
-- nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU | FM_IRWXG | FM_IRWXO);
-+ nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH, 0, 0, time(NULL));
- memset(b, 0, BLOCKSIZE);
- ((directory*)b)->d_rec_len = BLOCKSIZE;
-+ /* We run into problems with e2fsck if directory lost+found grows
-+ * bigger than this. Need to find out why this happens - sundar
-+ */
-+ if (fs->sb.s_r_blocks_count > 2049 )
-+ fs->sb.s_r_blocks_count=2049;
- for(i = 1; i < fs->sb.s_r_blocks_count; i++)
- extend_blk(fs, nod, b, 1);
- get_nod(fs, nod)->i_size = fs->sb.s_r_blocks_count * BLOCKSIZE;
-@@ -1170,24 +1550,24 @@
- // loads a filesystem from disk
- filesystem * load_fs(FILE * fh, int swapit)
- {
-- size_t fssize;
-+ size_t fssize = 0;
- filesystem *fs;
- if((fseek(fh, 0, SEEK_END) < 0) || ((fssize = ftell(fh)) < 0))
-- pexit("input filesystem image");
-+ perror_msg_and_die("input filesystem image");
- rewind(fh);
- fssize = (fssize + BLOCKSIZE - 1) / BLOCKSIZE;
- if(fssize < 16) // totally arbitrary
-- errexit("too small filesystem");
-- if(fssize > BLOCKS_PER_GROUP) // I build only one group
-- errexit("too big filesystem");
-+ error_msg_and_die("too small filesystem");
-+/* if(fssize > BLOCKS_PER_GROUP) // I build only one group
-+ error_msg_and_die("too big filesystem"); */
- if(!(fs = (filesystem*)calloc(fssize, BLOCKSIZE)))
-- errexit("not enough memory for filesystem");
-+ error_msg_and_die("not enough memory for filesystem");
- if(fread(fs, BLOCKSIZE, fssize, fh) != fssize)
-- pexit("input filesystem image");
-+ perror_msg_and_die("input filesystem image");
- if(swapit)
- swap_badfs(fs);
- if(fs->sb.s_rev_level || (fs->sb.s_magic != EXT2_MAGIC_NUMBER))
-- errexit("not a suitable ext2 filesystem");
-+ error_msg_and_die("not a suitable ext2 filesystem");
- return fs;
- }
-
-@@ -1230,9 +1610,9 @@
- while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
- {
- if(fsize <= 0)
-- errexit("wrong size while saving inode %d", nod);
-+ error_msg_and_die("wrong size while saving inode %d", nod);
- if(fwrite(get_blk(fs, bk), (fsize > BLOCKSIZE) ? BLOCKSIZE : fsize, 1, f) != 1)
-- errexit("error while saving inode %d", nod);
-+ error_msg_and_die("error while saving inode %d", nod);
- fsize -= BLOCKSIZE;
- }
- }
-@@ -1250,7 +1630,7 @@
- {
- int i, j;
- if(fsize <= 0)
-- errexit("wrong size while saving inode %d", nod);
-+ error_msg_and_die("wrong size while saving inode %d", nod);
- b = get_blk(fs, bk);
- for(i = 0; i < 64; i++)
- {
-@@ -1406,7 +1786,7 @@
- s = (nod >= EXT2_FIRST_INO) ? "normal" : "unknown reserved";
- }
- printf("inode %d (%s, %d links): ", nod, s, get_nod(fs, nod)->i_links_count);
-- if(!allocated(fs->ibm, nod))
-+ if(!allocated(GRP_GET_INODE_BITMAP(fs,nod), GRP_IBM_OFFSET(fs,nod)))
- {
- printf("unallocated\n");
- return;
-@@ -1440,24 +1820,46 @@
- default:
- list_blocks(fs, nod);
- }
-+ printf("Done with inode %d\n",nod);
- }
-
- // describes various fields in a filesystem
- void print_fs(filesystem *fs)
- {
-- int i;
-- printf("%d blocks (%d free, %d reserved), first data block: %d\n", fs->sb.s_blocks_count, fs->sb.s_free_blocks_count, fs->sb.s_r_blocks_count, fs->sb.s_first_data_block);
-- printf("%d inodes (%d free)\n", fs->sb.s_inodes_count, fs->sb.s_free_inodes_count);
-- printf("block size = %d, frag size = %d\n", fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024, fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024);
-- printf("%d blocks per group, %d frags per group, %d inodes per group\n", fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group, fs->sb.s_inodes_per_group);
-- printf("block bitmap: block %d, inode bitmap: block %d, inode table: block %d\n", fs->gd.bg_block_bitmap, fs->gd.bg_inode_bitmap, fs->gd.bg_inode_table);
-- printf("block bitmap allocation:\n");
-- print_bm(fs->bbm, fs->sb.s_blocks_count);
-- printf("inode bitmap allocation:\n");
-- print_bm(fs->ibm, fs->sb.s_inodes_count);
-- for(i=1; i<=fs->sb.s_inodes_count; i++)
-- if(allocated(fs->ibm, i))
-- print_inode(fs, i);
-+ int i,j;
-+ uint8 *ibm;
-+
-+ printf("%d blocks (%d free, %d reserved), first data block: %d\n",
-+ fs->sb.s_blocks_count, fs->sb.s_free_blocks_count,
-+ fs->sb.s_r_blocks_count, fs->sb.s_first_data_block);
-+ printf("%d inodes (%d free)\n", fs->sb.s_inodes_count,
-+ fs->sb.s_free_inodes_count);
-+ printf("block size = %d, frag size = %d\n",
-+ fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024,
-+ fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024);
-+ printf("Number of groups: %d\n",GRP_NBGROUPS(fs));
-+ printf("%d blocks per group,%d frags per group,%d inodes per group\n",
-+ fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group,
-+ fs->sb.s_inodes_per_group);
-+ printf("Size of inode table: %d blocks\n",
-+ fs->sb.s_inodes_per_group * sizeof(inode)/BLOCKSIZE);
-+ for (i = 0; i < GRP_NBGROUPS(fs); i++) {
-+ printf("Group No: %d\n", i);
-+ printf("block bitmap: block %d,inode bitmap: block %d, inode table: block %d\n",
-+ fs->gd[i].bg_block_bitmap, fs->gd[i].bg_inode_bitmap,
-+ fs->gd[i].bg_inode_table);
-+ printf("Free blocks count: %d\n",fs->gd[i].bg_free_blocks_count);
-+ printf("Free inodes count: %d\n",fs->gd[i].bg_free_inodes_count);
-+ printf("Used dir count: %d\n",fs->gd[i].bg_used_dirs_count);
-+ printf("block bitmap allocation:\n");
-+ print_bm(GRP_GET_GROUP_BBM(fs, i),fs->sb.s_blocks_per_group);
-+ printf("inode bitmap allocation:\n");
-+ ibm = GRP_GET_GROUP_IBM(fs, i);
-+ print_bm(ibm, fs->sb.s_inodes_per_group);
-+ for (j = 1; j <= fs->sb.s_inodes_per_group; j++)
-+ if (allocated(ibm, j))
-+ print_inode(fs, i*fs->sb.s_inodes_per_group + j);
-+ }
- }
-
- void dump_fs(filesystem *fs, FILE * fh, int swapit)
-@@ -1467,31 +1869,234 @@
- if(swapit)
- swap_goodfs(fs);
- if(fwrite(fs, BLOCKSIZE, nbblocks, fh) < nbblocks)
-- pexit("output filesystem image");
-+ perror_msg_and_die("output filesystem image");
- if(swapit)
- swap_badfs(fs);
- }
-
-+/* device table entries take the form of:
-+ <path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
-+ /dev/mem c 640 0 0 1 1 0 0 -
-+
-+ type can be one of:
-+ f A regular file
-+ d Directory
-+ c Character special device file
-+ b Block special device file
-+ p Fifo (named pipe)
-+
-+ I don't bother with symlinks (permissions are irrelevant), hard
-+ links (special cases of regular files), or sockets (why bother).
-+
-+ Regular files must exist in the target root directory. If a char,
-+ block, fifo, or directory does not exist, it will be created.
-+*/
-+static int interpret_table_entry(filesystem *fs, char *line)
-+{
-+ char type, *name = NULL, *tmp, *dir, *bname;
-+ unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
-+ unsigned long start = 0, increment = 1, count = 0;
-+ inode *entry;
-+ uint32 nod, parent;
-+
-+ if (sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu",
-+ SCANF_STRING(name), &type, &mode, &uid, &gid, &major, &minor,
-+ &start, &increment, &count) < 0)
-+ {
-+ return 1;
-+ }
-+
-+ if (!strcmp(name, "/")) {
-+ error_msg_and_die("Device table entries require absolute paths");
-+ }
-+
-+ /* Check if this file already exists... */
-+ switch (type) {
-+ case 'd':
-+ mode |= S_IFDIR;
-+ break;
-+ case 'f':
-+ mode |= S_IFREG;
-+ break;
-+ case 'p':
-+ mode |= S_IFIFO;
-+ break;
-+ case 'c':
-+ mode |= S_IFCHR;
-+ break;
-+ case 'b':
-+ mode |= S_IFBLK;
-+ break;
-+ default:
-+ error_msg_and_die("Unsupported file type");
-+ }
-+ nod = 0;
-+ if (count==0)
-+ nod = find_path(fs, EXT2_ROOT_INO, name);
-+ if (nod) {
-+ /* Ok, we just need to fixup an existing entry
-+ * and we will be all done... */
-+ entry = get_nod(fs, nod);
-+ entry->i_uid = uid;
-+ entry->i_gid = gid;
-+ entry->i_mode = mode;
-+ if (major) {
-+ dev_t rdev = makedev(major, minor);
-+ ((uint8*)entry->i_block)[0] = (rdev & 0xff);
-+ ((uint8*)entry->i_block)[1] = (rdev >> 8);
-+ }
-+ } else {
-+ /* Try and find our parent now */
-+ tmp = xstrdup(name);
-+ dir = dirname(tmp);
-+ parent = find_path(fs, EXT2_ROOT_INO, dir);
-+ free(tmp);
-+ if (!parent) {
-+ error_msg ("skipping device_table entry '%s': no parent directory!", name);
-+ free(name);
-+ return 1;
-+ }
-+
-+ tmp = xstrdup(name);
-+ bname = xstrdup(basename(tmp));
-+ free(tmp);
-+ switch (type) {
-+ case 'd':
-+ mkdir_fs(fs, parent, bname, mode|FM_IFDIR, uid, gid, time(NULL));
-+ break;
-+ case 'f':
-+#if 0
-+ {
-+ // This is a bit odd.. This will try to include
-+ // the file of the same name from your _build_
-+ // system... Probably a very bad idea....
-+ struct stat st;
-+ FILE *fh = xfopen(name, "r");
-+ lstat(name, &st);
-+ mkfile_fs(fs, parent, bname, mode|FM_IFREG, st.st_size, fh, uid, gid, st.st_ctime);
-+ fclose(fh);
-+ }
-+#else
-+ error_msg("ignoring entry %s", name);
-+#endif
-+ break;
-+ case 'p':
-+ error_msg("ignoring entry %s", name);
-+ break;
-+ case 'c':
-+ case 'b':
-+ if (count > 0) {
-+ dev_t rdev;
-+ char *dname;
-+ unsigned long i;
-+ for (i = start; i < count; i++) {
-+ asprintf(&dname, "%s%lu", bname, i);
-+ nod = find_path(fs, EXT2_ROOT_INO, dname);
-+ if (nod) {
-+ /* We just need to fixup an existing entry */
-+ entry = get_nod(fs, nod);
-+ } else {
-+ nod = alloc_nod(fs);
-+ add2dir(fs, parent, nod, dname, mode, uid, gid, time(NULL));
-+ entry = get_nod(fs, nod);
-+ }
-+ entry->i_uid = uid;
-+ entry->i_gid = gid;
-+ entry->i_mode = mode;
-+ rdev = makedev(major, minor + (i * increment - start));
-+ ((uint8*)entry->i_block)[0] = (rdev & 0xff);
-+ ((uint8*)entry->i_block)[1] = (rdev >> 8);
-+ free(dname);
-+ }
-+ } else {
-+ dev_t rdev = makedev(major, minor);
-+ nod = alloc_nod(fs);
-+ add2dir(fs, parent, nod, bname, mode, uid, gid, time(NULL));
-+ entry = get_nod(fs, nod);
-+ ((uint8*)entry->i_block)[0] = (rdev & 0xff);
-+ ((uint8*)entry->i_block)[1] = (rdev >> 8);
-+ }
-+ break;
-+ default:
-+ error_msg_and_die("Unsupported file type");
-+ }
-+ free(bname);
-+ }
-+ free(name);
-+ return 0;
-+}
-+
-+static int parse_device_table(filesystem *root, FILE * file)
-+{
-+ char *line;
-+ int status = 0;
-+ size_t length = 0;
-+
-+ /* Turn off squash, since we must ensure that values
-+ * entered via the device table are not squashed */
-+ squash_uids = 0;
-+ squash_perms = 0;
-+
-+ /* Looks ok so far. The general plan now is to read in one
-+ * line at a time, check for leading comment delimiters ('#'),
-+ * then try and parse the line as a device table. If we fail
-+ * to parse things, try and help the poor fool to fix their
-+ * device table with a useful error msg... */
-+ line = NULL;
-+ while (getline(&line, &length, file) != -1) {
-+ /* First trim off any whitespace */
-+ int len = strlen(line);
-+
-+ /* trim trailing whitespace */
-+ while (len > 0 && isspace(line[len - 1]))
-+ line[--len] = '\0';
-+ /* trim leading whitespace */
-+ memmove(line, &line[strspn(line, " \n\r\t\v")], len);
-+
-+ /* How long are we after trimming? */
-+ len = strlen(line);
-+
-+ /* If this is NOT a comment line, try to interpret it */
-+ if (len && *line != '#') {
-+ if (interpret_table_entry(root, line))
-+ status = 1;
-+ }
-+
-+ free(line);
-+ line = NULL;
-+ }
-+ fclose(file);
-+
-+ return status;
-+}
-+
-+/*
-+Local Variables:
-+c-file-style: "linux"
-+c-basic-offset: 4
-+tab-width: 4
-+End:
-+*/
-+
- void showhelp(void)
- {
- fprintf(stderr, "Usage: %s [options] image\n"
- "Create an ext2 filesystem image from directories/files\n\n"
-- " -x image Use this image as a starting point\n"
-- " -d directory Add this directory as source\n"
-- " -f file Add nodes (e.g. devices) from this spec file\n"
-- " -b blocks Size in blocks\n"
-- " -i inodes Number of inodes\n"
-- " -r reserved Number of reserved blocks\n"
-- " -g path Generate a block map file for this path\n"
-- " -e value Fill unallocated blocks with value\n"
-- " -z Make files with holes\n"
-- " -v Print resulting filesystem structure\n"
-- " -h Show this help\n\n"
-- "Example of spec file:\n"
-- "drwx /dev\n"
-- "crw- 10,190 /dev/lcd\n"
-- "brw- 1,0 /dev/ram0\n\n"
-- "Report bugs to xavier.bestel@free.fr\n", argv0);
-+ " -x image Use this image as a starting point\n"
-+ " -d directory Add this directory as source\n"
-+ " -b blocks Size in blocks\n"
-+ " -i inodes Number of inodes\n"
-+ " -r reserved Number of reserved blocks\n"
-+ " -g path Generate a block map file for this path\n"
-+ " -e value Fill unallocated blocks with value\n"
-+ " -z Make files with holes\n"
-+ " -D,-f Use the named FILE as a device table file\n"
-+ " -q Squash permissions and owners making all files be owned by root\n"
-+ " -U Squash owners making all files be owned by root\n"
-+ " -P Squash permissions on all files\n"
-+ " -v Print resulting filesystem structure\n"
-+ " -h Show this help\n\n"
-+ "Report bugs to xavier.bestel@free.fr\n", app_name);
- }
-
- #define MAX_DOPT 128
-@@ -1521,21 +2126,17 @@
- filesystem *fs;
- int i;
- int c;
-+ struct stat sb;
-+ FILE *devtable = NULL;
-
-- argv0 = argv[0];
-- if(argc <= 1)
-- {
-- showhelp();
-- exit(1);
-- }
-- while((c = getopt(argc, argv, "x:f:d:b:i:r:g:e:zvh")) != EOF)
-+ app_name = argv[0];
-+ while((c = getopt(argc, argv, "x:d:b:i:r:g:e:zvhD:f:qUP")) != EOF)
- switch(c)
- {
- case 'x':
- fsin = optarg;
- break;
- case 'd':
-- case 'f':
- dopt[didx++] = optarg;
- break;
- case 'b':
-@@ -1556,6 +2157,24 @@
- case 'z':
- holes = 1;
- break;
-+ case 'f':
-+ case 'D':
-+ devtable = xfopen(optarg, "r");
-+ if (fstat(fileno(devtable), &sb) < 0)
-+ perror_msg_and_die(optarg);
-+ if (sb.st_size < 10)
-+ error_msg_and_die("%s: not a proper device table file", optarg);
-+ break;
-+ case 'q':
-+ squash_uids = 1;
-+ squash_perms = 1;
-+ break;
-+ case 'U':
-+ squash_uids = 1;
-+ break;
-+ case 'P':
-+ squash_perms = 1;
-+ break;
- case 'v':
- verbose = 1;
- break;
-@@ -1566,16 +2185,14 @@
- exit(1);
- }
- if(optind < (argc - 1))
-- errexit("too many arguments");
-+ error_msg_and_die("too many arguments");
- if(optind == (argc - 1))
- fsout = argv[optind];
- if(fsin)
- {
- if(strcmp(fsin, "-"))
- {
-- FILE * fh = fopen(fsin, "r");
-- if(!fh)
-- pexit(fsin);
-+ FILE * fh = xfopen(fsin, "r");
- fs = load_fs(fh, bigendian);
- fclose(fh);
- }
-@@ -1585,7 +2202,7 @@
- else
- {
- if(nbblocks == -1)
-- errexit("filesystem size unspecified");
-+ error_msg_and_die("filesystem size unspecified");
- if(nbinodes == -1)
- nbinodes = nbblocks * BLOCKSIZE / rndup(BYTES_PER_INODE, BLOCKSIZE);
- if(nbresrvd == -1)
-@@ -1595,35 +2212,30 @@
- for(i = 0; i < didx; i++)
- {
- struct stat st;
-- FILE *fh;
- char *pdir;
- stat(dopt[i], &st);
- switch(st.st_mode & S_IFMT)
- {
-- case S_IFREG:
-- if(!(fh = fopen(dopt[i], "r")))
-- pexit(dopt[i]);
-- add2fs_from_file(fs, EXT2_ROOT_INO, fh);
-- fclose(fh);
-- break;
- case S_IFDIR:
- if(!(pdir = getcwd(0, GETCWD_SIZE)))
-- pexit(dopt[i]);
-+ perror_msg_and_die(dopt[i]);
- if(chdir(dopt[i]) < 0)
-- pexit(dopt[i]);
-+ perror_msg_and_die(dopt[i]);
- add2fs_from_dir(fs, EXT2_ROOT_INO);
- if(chdir(pdir) < 0)
-- pexit(pdir);
-+ perror_msg_and_die(pdir);
- free(pdir);
- break;
- default:
-- errexit("%s in neither a file nor a directory", dopt[i]);
-+ error_msg_and_die("%s is neither a file nor a directory", dopt[i]);
- }
- }
- if(emptyval)
- for(i = 1; i < fs->sb.s_blocks_count; i++)
-- if(!allocated(fs->bbm, i))
-+ if(!allocated(GRP_GET_BLOCK_BITMAP(fs,i),GRP_BBM_OFFSET(fs,i)))
- memset(get_blk(fs, i), emptyval, BLOCKSIZE);
-+ if(devtable)
-+ parse_device_table(fs, devtable);
- if(verbose)
- print_fs(fs);
- for(i = 0; i < gidx; i++)
-@@ -1633,21 +2245,18 @@
- char *p;
- FILE *fh;
- if(!(nod = find_path(fs, EXT2_ROOT_INO, gopt[i])))
-- errexit("path %s not found in filesystem", gopt[i]);
-+ error_msg_and_die("path %s not found in filesystem", gopt[i]);
- while((p = strchr(gopt[i], '/')))
- *p = '_';
- snprintf(fname, MAX_FILENAME-1, "%s.blk", gopt[i]);
-- if(!(fh = fopen(fname, "w")))
-- pexit(fname);
-+ fh = xfopen(fname, "w");
- fprintf(fh, "%d:", get_nod(fs, nod)->i_size);
- flist_blocks(fs, nod, fh);
- fclose(fh);
- }
- if(strcmp(fsout, "-"))
- {
-- FILE * fh = fopen(fsout, "w");
-- if(!fh)
-- pexit(fsout);
-+ FILE * fh = xfopen(fsout, "w");
- dump_fs(fs, fh, bigendian);
- fclose(fh);
- }
-diff -urN genext2fs-1.3.orig/test-mount.sh genext2fs-1.3/test-mount.sh
---- genext2fs-1.3.orig/test-mount.sh 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/test-mount.sh 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,96 @@
-+#!/bin/sh
-+set -e
-+
-+cleanup () {
-+ set +e
-+ umount mnt 2>/dev/null
-+ rm -rf mnt ext2.img lsout fout test 2>/dev/null
-+}
-+
-+# dtest - Uses the -d directory option of genext2fs
-+# Creates an image with a file of given size and verifies it
-+# Usage: dtest file-size number-of-blocks
-+dtest () {
-+ size=$1; blocks=$2;fname=$size
-+ echo "Testing with file of size $size "
-+ mkdir -p test
-+ cd test
-+ dd if=/dev/zero of=file.$1 bs=1 count=$size
-+ cd ..
-+ ./genext2fs -b $blocks -d test ext2.img
-+ md5=`md5sum ext2.img | cut -f1 -d " "`
-+ if ! /sbin/e2fsck -fn ext2.img ; then
-+ echo "fsck failed"
-+ echo FAILED
-+ cleanup
-+ exit 1
-+ fi
-+ mkdir -p mnt
-+ if ! mount -t ext2 -o loop ext2.img mnt; then
-+ echo FAILED
-+ cleanup
-+ exit 1
-+ fi
-+ if (! [ -f mnt/file.$fname ]) || \
-+ [ $fname != "`ls -al mnt | grep file.$fname |awk '{print $5}'`" ] ; then
-+ echo FAILED
-+ cleanup
-+ exit 1
-+ fi
-+ echo PASSED "(md5 checksum for the image: $md5)"
-+ cleanup
-+}
-+
-+# ftest - Uses the -f spec-file option of genext2fs
-+# Creates an image with the devices mentioned in the given spec
-+# file and verifies it
-+# Usage: ftest spec-file number-of-blocks
-+ftest () {
-+ fname=$1; blocks=$2;
-+ echo "Testing with devices file $fname"
-+ ./genext2fs -b $blocks -f $fname ext2.img
-+ md5=`md5sum ext2.img | cut -f 1 -d " "`
-+ if ! /sbin/e2fsck -fn ext2.img ; then
-+ echo "fsck failed"
-+ echo FAILED
-+ cleanup
-+ exit 1
-+ fi
-+ mkdir -p mnt
-+ if ! mount -t ext2 -o loop ext2.img mnt; then
-+ echo FAILED
-+ cleanup
-+ exit 1
-+ fi
-+ if ! [ -d mnt/dev ] ; then
-+ echo FAILED
-+ cleanup
-+ exit 1
-+ fi
-+ cat dev.txt | grep ^[bc] | \
-+ awk '{print $1substr($1,2)substr($1,2),$2,$3}'| \
-+ sort -d -k3.6 > fout
-+ ls -al mnt/dev | grep ^[bc] | \
-+ awk '{ print $1,$5$6,"/dev/"$10}' | \
-+ sort -d -k3.6 > lsout
-+ if ! diff fout lsout ; then
-+ echo FAILED
-+ cleanup
-+ exit 1
-+ fi
-+ echo PASSED "(md5 checksum for the image: $md5)"
-+ cleanup
-+}
-+
-+dtest 0 4096
-+dtest 0 8193
-+dtest 0 8194
-+dtest 1 4096
-+dtest 12288 4096
-+dtest 274432 4096
-+dtest 8388608 9000
-+dtest 16777216 20000
-+
-+ftest dev.txt 4096
-+
-+exit 0
-diff -urN genext2fs-1.3.orig/test.sh genext2fs-1.3/test.sh
---- genext2fs-1.3.orig/test.sh 1969-12-31 17:00:00.000000000 -0700
-+++ genext2fs-1.3/test.sh 2003-04-21 01:41:42.000000000 -0600
-@@ -0,0 +1,53 @@
-+#!/bin/sh
-+set -e
-+
-+# dtest - Uses the -d directory option of genext2fs
-+# Creates an image with a file of given size and verifies it
-+# Usage: dtest file-size number-of-blocks correct-checksum
-+dtest () {
-+ size=$1; blocks=$2; checksum=$3
-+ echo "Testing with file of size $size "
-+ mkdir -p test
-+ cd test
-+ dd if=/dev/zero of=file.$1 bs=1 count=$size
-+ cd ..
-+ ./genext2fs -b $blocks -d test ext2.img
-+ md5=`md5sum ext2.img | cut -d" " -f1`
-+ rm -rf ext2.img test
-+ if [ $md5 == $checksum ] ; then
-+ echo PASSED
-+ else
-+ echo FAILED
-+ exit 1
-+ fi
-+}
-+
-+# ftest - Uses the -f spec-file option of genext2fs
-+# Creates an image with the devices mentioned in the given spec
-+# file and verifies it
-+# Usage: ftest spec-file number-of-blocks correct-checksum
-+ftest () {
-+ fname=$1; blocks=$2; checksum=$3
-+ echo "Testing with devices file $fname"
-+ ./genext2fs -b $blocks -f $fname ext2.img
-+ md5=`md5sum ext2.img | cut -d" " -f1`
-+ rm -rf ext2.img
-+ if [ $md5 == $checksum ] ; then
-+ echo PASSED
-+ else
-+ echo FAILED
-+ exit 1
-+ fi
-+}
-+
-+dtest 0 4096 491a43ab93c2e5c186c9f1f72d88e5c5
-+dtest 0 8193 6289224f0b7f151994479ba156c43505
-+dtest 0 8194 3272c43c25e8d0c3768935861a643a65
-+dtest 1 4096 5ee24486d33af88c63080b09d8cadfb5
-+dtest 12288 4096 494498364defdc27b2770d1f9c1e3387
-+dtest 274432 4096 65c4bd8d30bf563fa5434119a12abff1
-+dtest 8388608 9000 9a49b0461ee236b7fd7c452fb6a1f2dc
-+dtest 16777216 20000 91e16429c901b68d30f783263f0611b7
-+
-+ftest dev.txt 4096 921ee9343b0759e16ad8d979d7dd16ec
-+exit 0
+++ /dev/null
-diff -urN libfloat-dist/Makefile libfloat/Makefile
---- libfloat-dist/Makefile 2003-10-26 00:33:45.000000000 -0500
-+++ libfloat/Makefile 2003-10-26 01:07:26.000000000 -0500
-@@ -1,7 +1,7 @@
- # Makefile for the Linux soft-float library
-
--CC=gcc -O2 -freg-struct-return -fomit-frame-pointer -D__LIBFLOAT__
--#CC=gcc -g -O2 -freg-struct-return -D__LIBFLOAT__
-+CFLAGS= -O2 -freg-struct-return -fomit-frame-pointer -D__LIBFLOAT__ -msoft-float
-+LIBGCC=$(shell $(CC) -print-libgcc-file-name)
- AR=ar
-
- all: libfloat.a libfloat.so.1
-@@ -12,24 +11,24 @@
-
- libfloat.so.1: softfloat.os fplib_glue.os
- rm -f libfloat.so.1
-- gcc -shared -Wl,-soname,libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1
-+ $(LD) -shared -soname=libfloat.so.1 softfloat.os fplib_glue.os -o libfloat.so.1 $(LIBGCC)
-
- softfloat.o: softfloat/bits64/softfloat.c
-- $(CC) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
-+ $(CC) $(CFLAGS) -c -o softfloat.o -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
-
- fplib_glue.o: fplib_glue.S
-- $(CC) -c -o fplib_glue.o fplib_glue.S
-+ $(CC) $(CFLAGS) -c -o fplib_glue.o fplib_glue.S
-
- softfloat.os: softfloat/bits64/softfloat.c
-- $(CC) -fpic -c -o softfloat.os -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
-+ $(CC) $(CFLAGS) -fpic -c -o softfloat.os -Isoftfloat/bits64/ARM-gcc softfloat/bits64/softfloat.c
-
- fplib_glue.os: fplib_glue.S
-- $(CC) -fpic -c -o fplib_glue.os fplib_glue.S
-+ $(CC) $(CFLAGS) -fpic -c -o fplib_glue.os fplib_glue.S
-
- install: libfloat.a libfloat.so.1
- cp -a libfloat.a $(DESTDIR)/usr/lib
-- cp -a libfloat.so.1 $(DESTDIR)/usr/lib
-- cd $(DESTDIR)/usr/lib; ln -s libfloat.so.1 libfloat.so
-+ cp -a libfloat.so.1 $(DESTDIR)/lib
-+ cd $(DESTDIR)/lib; ln -s libfloat.so.1 libfloat.so
- #ldconfig
-
- clean:
+++ /dev/null
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/addrspace.h linux-libc-headers-2.6.8.0/include/asm-mips/addrspace.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/addrspace.h 2004-03-28 07:51:50.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/addrspace.h 2004-08-26 05:53:12.000000000 -0500
-@@ -10,7 +10,23 @@
- #ifndef _ASM_ADDRSPACE_H
- #define _ASM_ADDRSPACE_H
-
--#include <spaces.h>
-+/**********************************************************************/
-+/* Include the common bits for #include <spaces.h> */
-+#ifndef __mips64
-+
-+#define CAC_BASE 0x80000000
-+#define IO_BASE 0xa0000000
-+#define UNCAC_BASE 0xa0000000
-+#define MAP_BASE 0xc0000000
-+
-+/*
-+ * This handles the memory map.
-+ * We handle pages at KSEG0 for kernels with 32 bit address space.
-+ */
-+#define PAGE_OFFSET 0x80000000UL
-+
-+#endif /* ndef __mips64 */
-+/**********************************************************************/
-
- /*
- * Configure language
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/asmmacro.h linux-libc-headers-2.6.8.0/include/asm-mips/asmmacro.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/asmmacro.h 2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/asmmacro.h 2004-08-26 05:14:41.000000000 -0500
-@@ -9,10 +9,10 @@
- #define _ASM_ASMMACRO_H
-
-
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #include <asm/asmmacro-32.h>
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #include <asm/asmmacro-64.h>
- #endif
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/checksum.h linux-libc-headers-2.6.8.0/include/asm-mips/checksum.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/checksum.h 2004-06-23 16:52:45.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/checksum.h 2004-08-26 05:14:41.000000000 -0500
-@@ -125,7 +125,7 @@
- {
- __asm__(
- ".set\tnoat\t\t\t# csum_tcpudp_nofold\n\t"
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- "addu\t%0, %2\n\t"
- "sltu\t$1, %0, %2\n\t"
- "addu\t%0, $1\n\t"
-@@ -138,7 +138,7 @@
- "sltu\t$1, %0, %4\n\t"
- "addu\t%0, $1\n\t"
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- "daddu\t%0, %2\n\t"
- "daddu\t%0, %3\n\t"
- "daddu\t%0, %4\n\t"
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/compat.h linux-libc-headers-2.6.8.0/include/asm-mips/compat.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/compat.h 2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/compat.h 2004-08-26 05:23:05.000000000 -0500
-@@ -8,64 +8,64 @@
-
- #define COMPAT_USER_HZ 100
-
--typedef u32 compat_size_t;
--typedef s32 compat_ssize_t;
--typedef s32 compat_time_t;
--typedef s32 compat_clock_t;
--typedef s32 compat_suseconds_t;
--
--typedef s32 compat_pid_t;
--typedef s32 compat_uid_t;
--typedef s32 compat_gid_t;
--typedef u32 compat_mode_t;
--typedef u32 compat_ino_t;
--typedef u32 compat_dev_t;
--typedef s32 compat_off_t;
--typedef s64 compat_loff_t;
--typedef u32 compat_nlink_t;
--typedef s32 compat_ipc_pid_t;
--typedef s32 compat_daddr_t;
--typedef s32 compat_caddr_t;
-+typedef __u32 compat_size_t;
-+typedef __s32 compat_ssize_t;
-+typedef __s32 compat_time_t;
-+typedef __s32 compat_clock_t;
-+typedef __s32 compat_suseconds_t;
-+
-+typedef __s32 compat_pid_t;
-+typedef __s32 compat_uid_t;
-+typedef __s32 compat_gid_t;
-+typedef __u32 compat_mode_t;
-+typedef __u32 compat_ino_t;
-+typedef __u32 compat_dev_t;
-+typedef __s32 compat_off_t;
-+typedef __s64 compat_loff_t;
-+typedef __u32 compat_nlink_t;
-+typedef __s32 compat_ipc_pid_t;
-+typedef __s32 compat_daddr_t;
-+typedef __s32 compat_caddr_t;
- typedef struct {
-- s32 val[2];
-+ __s32 val[2];
- } compat_fsid_t;
-
--typedef s32 compat_int_t;
--typedef s32 compat_long_t;
--typedef u32 compat_uint_t;
--typedef u32 compat_ulong_t;
-+typedef __s32 compat_int_t;
-+typedef __s32 compat_long_t;
-+typedef __u32 compat_uint_t;
-+typedef __u32 compat_ulong_t;
-
- struct compat_timespec {
- compat_time_t tv_sec;
-- s32 tv_nsec;
-+ __s32 tv_nsec;
- };
-
- struct compat_timeval {
- compat_time_t tv_sec;
-- s32 tv_usec;
-+ __s32 tv_usec;
- };
-
- struct compat_stat {
- compat_dev_t st_dev;
-- s32 st_pad1[3];
-+ __s32 st_pad1[3];
- compat_ino_t st_ino;
- compat_mode_t st_mode;
- compat_nlink_t st_nlink;
- compat_uid_t st_uid;
- compat_gid_t st_gid;
- compat_dev_t st_rdev;
-- s32 st_pad2[2];
-+ __s32 st_pad2[2];
- compat_off_t st_size;
-- s32 st_pad3;
-+ __s32 st_pad3;
- compat_time_t st_atime;
-- s32 st_atime_nsec;
-+ __s32 st_atime_nsec;
- compat_time_t st_mtime;
-- s32 st_mtime_nsec;
-+ __s32 st_mtime_nsec;
- compat_time_t st_ctime;
-- s32 st_ctime_nsec;
-- s32 st_blksize;
-- s32 st_blocks;
-- s32 st_pad4[14];
-+ __s32 st_ctime_nsec;
-+ __s32 st_blksize;
-+ __s32 st_blocks;
-+ __s32 st_pad4[14];
- };
-
- struct compat_flock {
-@@ -73,10 +73,10 @@
- short l_whence;
- compat_off_t l_start;
- compat_off_t l_len;
-- s32 l_sysid;
-+ __s32 l_sysid;
- compat_pid_t l_pid;
- short __unused;
-- s32 pad[4];
-+ __s32 pad[4];
- };
-
- #define F_GETLK64 33
-@@ -107,12 +107,12 @@
-
- #define COMPAT_RLIM_INFINITY 0x7fffffffUL
-
--typedef u32 compat_old_sigset_t; /* at least 32 bits */
-+typedef __u32 compat_old_sigset_t; /* at least 32 bits */
-
- #define _COMPAT_NSIG 128 /* Don't ask !$@#% ... */
- #define _COMPAT_NSIG_BPW 32
-
--typedef u32 compat_sigset_word;
-+typedef __u32 compat_sigset_word;
-
- #define COMPAT_OFF_T_MAX 0x7fffffff
- #define COMPAT_LOFF_T_MAX 0x7fffffffffffffffL
-@@ -123,7 +123,7 @@
- * as pointers because the syscall entry code will have
- * appropriately comverted them already.
- */
--typedef u32 compat_uptr_t;
-+typedef __u32 compat_uptr_t;
-
- static inline void *compat_ptr(compat_uptr_t uptr)
- {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5074.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5074.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5074.h 2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5074.h 2004-08-26 13:21:48.000000000 -0500
-@@ -34,5 +34,5 @@
- extern void ddb5074_led_d2(int on);
- extern void ddb5074_led_d3(int on);
-
--extern void nile4_irq_setup(u32 base);
-+extern void nile4_irq_setup(__u32 base);
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5476.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5476.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5476.h 2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5476.h 2004-08-26 05:24:06.000000000 -0500
-@@ -145,13 +145,13 @@
- extern void nile4_enable_irq(int nile4_irq);
- extern void nile4_disable_irq(int nile4_irq);
- extern void nile4_disable_irq_all(void);
--extern u16 nile4_get_irq_stat(int cpu_irq);
-+extern __u16 nile4_get_irq_stat(int cpu_irq);
- extern void nile4_enable_irq_output(int cpu_irq);
- extern void nile4_disable_irq_output(int cpu_irq);
- extern void nile4_set_pci_irq_polarity(int pci_irq, int high);
- extern void nile4_set_pci_irq_level_or_edge(int pci_irq, int level);
- extern void nile4_clear_irq(int nile4_irq);
--extern void nile4_clear_irq_mask(u32 mask);
--extern u8 nile4_i8259_iack(void);
-+extern void nile4_clear_irq_mask(__u32 mask);
-+extern __u8 nile4_i8259_iack(void);
- extern void nile4_dump_irq_status(void); /* Debug */
- #endif /* !__ASSEMBLY__ */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5xxx.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5xxx.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5xxx.h 2004-01-17 17:03:47.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5xxx.h 2004-08-26 05:24:01.000000000 -0500
-@@ -177,46 +177,46 @@
- * interrupt load
- */
- #ifndef CONFIG_DDB5074
-- volatile u32 *p = (volatile u32 *)0xbfc00000;
-+ volatile __u32 *p = (volatile __u32 *)0xbfc00000;
- (void)(*p);
- #endif
- }
-
--static inline void ddb_out32(u32 offset, u32 val)
-+static inline void ddb_out32(__u32 offset, __u32 val)
- {
-- *(volatile u32 *)(DDB_BASE+offset) = val;
-+ *(volatile __u32 *)(DDB_BASE+offset) = val;
- ddb_sync();
- }
-
--static inline u32 ddb_in32(u32 offset)
-+static inline __u32 ddb_in32(__u32 offset)
- {
-- u32 val = *(volatile u32 *)(DDB_BASE+offset);
-+ __u32 val = *(volatile __u32 *)(DDB_BASE+offset);
- ddb_sync();
- return val;
- }
-
--static inline void ddb_out16(u32 offset, u16 val)
-+static inline void ddb_out16(__u32 offset, __u16 val)
- {
-- *(volatile u16 *)(DDB_BASE+offset) = val;
-+ *(volatile __u16 *)(DDB_BASE+offset) = val;
- ddb_sync();
- }
-
--static inline u16 ddb_in16(u32 offset)
-+static inline __u16 ddb_in16(__u32 offset)
- {
-- u16 val = *(volatile u16 *)(DDB_BASE+offset);
-+ __u16 val = *(volatile __u16 *)(DDB_BASE+offset);
- ddb_sync();
- return val;
- }
-
--static inline void ddb_out8(u32 offset, u8 val)
-+static inline void ddb_out8(__u32 offset, __u8 val)
- {
-- *(volatile u8 *)(DDB_BASE+offset) = val;
-+ *(volatile __u8 *)(DDB_BASE+offset) = val;
- ddb_sync();
- }
-
--static inline u8 ddb_in8(u32 offset)
-+static inline __u8 ddb_in8(__u32 offset)
- {
-- u8 val = *(volatile u8 *)(DDB_BASE+offset);
-+ __u8 val = *(volatile __u8 *)(DDB_BASE+offset);
- ddb_sync();
- return val;
- }
-@@ -226,10 +226,10 @@
- * Physical Device Address Registers
- */
-
--extern u32
--ddb_calc_pdar(u32 phys, u32 size, int width, int on_memory_bus, int pci_visible);
-+extern __u32
-+ddb_calc_pdar(__u32 phys, __u32 size, int width, int on_memory_bus, int pci_visible);
- extern void
--ddb_set_pdar(u32 pdar, u32 phys, u32 size, int width,
-+ddb_set_pdar(__u32 pdar, __u32 phys, __u32 size, int width,
- int on_memory_bus, int pci_visible);
-
- /*
-@@ -248,7 +248,7 @@
- #define DDB_PCI_ACCESS_32 0x10 /* for pci init0/1 regs */
-
-
--extern void ddb_set_pmr(u32 pmr, u32 type, u32 addr, u32 options);
-+extern void ddb_set_pmr(__u32 pmr, __u32 type, __u32 addr, __u32 options);
-
- /*
- * we need to reset pci bus when we start up and shutdown
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/ioasic.h linux-libc-headers-2.6.8.0/include/asm-mips/dec/ioasic.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/ioasic.h 2004-01-17 17:03:47.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/dec/ioasic.h 2004-08-26 05:25:44.000000000 -0500
-@@ -18,14 +18,14 @@
-
- extern spinlock_t ioasic_ssr_lock;
-
--extern volatile u32 *ioasic_base;
-+extern volatile __u32 *ioasic_base;
-
--static inline void ioasic_write(unsigned int reg, u32 v)
-+static inline void ioasic_write(unsigned int reg, __u32 v)
- {
- ioasic_base[reg / 4] = v;
- }
-
--static inline u32 ioasic_read(unsigned int reg)
-+static inline __u32 ioasic_read(unsigned int reg)
- {
- return ioasic_base[reg / 4];
- }
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/kn02.h linux-libc-headers-2.6.8.0/include/asm-mips/dec/kn02.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/kn02.h 2004-01-17 17:03:47.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/dec/kn02.h 2004-08-26 05:25:47.000000000 -0500
-@@ -97,7 +97,7 @@
-
-
- #ifndef __ASSEMBLY__
--extern u32 cached_kn02_csr;
-+extern __u32 cached_kn02_csr;
- extern spinlock_t kn02_lock;
- extern void init_kn02_irqs(int base);
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/elf.h linux-libc-headers-2.6.8.0/include/asm-mips/elf.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/elf.h 2004-03-28 07:51:51.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/elf.h 2004-08-26 05:17:25.000000000 -0500
-@@ -122,7 +122,7 @@
- typedef double elf_fpreg_t;
- typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
-
- /*
- * This is used to ensure we don't load something for the wrong architecture.
-@@ -150,9 +150,9 @@
- */
- #define ELF_CLASS ELFCLASS32
-
--#endif /* CONFIG_MIPS32 */
-+#endif /* ndef __mips64 */
-
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- /*
- * This is used to ensure we don't load something for the wrong architecture.
- */
-@@ -174,7 +174,7 @@
- */
- #define ELF_CLASS ELFCLASS64
-
--#endif /* CONFIG_MIPS64 */
-+#endif /* __mips64 */
-
- /*
- * These are used to set parameters in the core dumps.
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/ev96100.h linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/ev96100.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/ev96100.h 2004-03-28 07:51:53.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/ev96100.h 2004-08-26 05:23:12.000000000 -0500
-@@ -46,9 +46,9 @@
- * bytes when running bigendian.
- */
- #define __GT_READ(ofs) \
-- (*(volatile u32 *)(GT64120_BASE+(ofs)))
-+ (*(volatile __u32 *)(GT64120_BASE+(ofs)))
- #define __GT_WRITE(ofs, data) \
-- do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
-+ do { *(volatile __u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
- #define GT_READ(ofs) le32_to_cpu(__GT_READ(ofs))
- #define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/gt96100.h linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/gt96100.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/gt96100.h 2004-03-28 07:51:53.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/gt96100.h 2004-08-26 05:23:17.000000000 -0500
-@@ -27,9 +27,9 @@
- #define MIPS_GT96100_BASE (KSEG1ADDR(0x14000000))
-
- #define GT96100_WRITE(ofs, data) \
-- *(volatile u32 *)(MIPS_GT96100_BASE+ofs) = cpu_to_le32(data)
-+ *(volatile __u32 *)(MIPS_GT96100_BASE+ofs) = cpu_to_le32(data)
- #define GT96100_READ(ofs) \
-- le32_to_cpu(*(volatile u32 *)(MIPS_GT96100_BASE+ofs))
-+ le32_to_cpu(*(volatile __u32 *)(MIPS_GT96100_BASE+ofs))
-
- #define GT96100_ETH_IO_SIZE 0x4000
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/gt64120.h linux-libc-headers-2.6.8.0/include/asm-mips/gt64120.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/gt64120.h 2004-03-28 07:51:51.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/gt64120.h 2004-08-26 05:22:36.000000000 -0500
-@@ -420,9 +420,9 @@
- * bytes when running bigendian. We also provide non-swapping versions.
- */
- #define __GT_READ(ofs) \
-- (*(volatile u32 *)(GT64120_BASE+(ofs)))
-+ (*(volatile __u32 *)(GT64120_BASE+(ofs)))
- #define __GT_WRITE(ofs, data) \
-- do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
-+ do { *(volatile __u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
- #define GT_READ(ofs) le32_to_cpu(__GT_READ(ofs))
- #define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/io.h linux-libc-headers-2.6.8.0/include/asm-mips/io.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/io.h 2004-03-28 07:51:51.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/io.h 2004-08-26 05:24:16.000000000 -0500
-@@ -173,14 +173,14 @@
- unsigned long flags)
- {
- if (cpu_has_64bit_addresses) {
-- u64 base = UNCAC_BASE;
-+ __u64 base = UNCAC_BASE;
-
- /*
- * R10000 supports a 2 bit uncached attribute therefore
- * UNCAC_BASE may not equal IO_BASE.
- */
- if (flags == _CACHE_UNCACHED)
-- base = (u64) IO_BASE;
-+ base = (__u64) IO_BASE;
- return (void *) (unsigned long) (base + offset);
- }
-
-@@ -245,10 +245,10 @@
- #define __raw_readb(addr) (*(volatile unsigned char *)(addr))
- #define __raw_readw(addr) (*(volatile unsigned short *)(addr))
- #define __raw_readl(addr) (*(volatile unsigned int *)(addr))
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define ____raw_readq(addr) \
- ({ \
-- u64 __res; \
-+ __u64 __res; \
- \
- __asm__ __volatile__ ( \
- " .set mips3 # ____raw_readq \n" \
-@@ -263,7 +263,7 @@
- #define __raw_readq(addr) \
- ({ \
- unsigned long __flags; \
-- u64 __res; \
-+ __u64 __res; \
- \
- local_irq_save(__flags); \
- __res = ____raw_readq(addr); \
-@@ -271,7 +271,7 @@
- __res; \
- })
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #define ____raw_readq(addr) (*(volatile unsigned long *)(addr))
- #define __raw_readq(addr) ____raw_readq(addr)
- #endif
-@@ -288,10 +288,10 @@
- #define __raw_writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (b))
- #define __raw_writew(w,addr) ((*(volatile unsigned short *)(addr)) = (w))
- #define __raw_writel(l,addr) ((*(volatile unsigned int *)(addr)) = (l))
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define ____raw_writeq(val,addr) \
- ({ \
-- u64 __tmp; \
-+ __u64 __tmp; \
- \
- __asm__ __volatile__ ( \
- " .set mips3 \n" \
-@@ -313,7 +313,7 @@
- local_irq_restore(__flags); \
- })
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #define ____raw_writeq(q,addr) ((*(volatile unsigned long *)(addr)) = (q))
- #define __raw_writeq(q,addr) ____raw_writeq(q, addr)
- #endif
-@@ -400,28 +400,28 @@
- {
- port = __swizzle_addr_b(port);
-
-- *(volatile u8 *)(mips_io_port_base + port) = __ioswab8(val);
-+ *(volatile __u8 *)(mips_io_port_base + port) = __ioswab8(val);
- }
-
- static inline void __outw(unsigned short val, unsigned long port)
- {
- port = __swizzle_addr_w(port);
-
-- *(volatile u16 *)(mips_io_port_base + port) = __ioswab16(val);
-+ *(volatile __u16 *)(mips_io_port_base + port) = __ioswab16(val);
- }
-
- static inline void __outl(unsigned int val, unsigned long port)
- {
- port = __swizzle_addr_l(port);
-
-- *(volatile u32 *)(mips_io_port_base + port) = __ioswab32(val);
-+ *(volatile __u32 *)(mips_io_port_base + port) = __ioswab32(val);
- }
-
- static inline void __outb_p(unsigned char val, unsigned long port)
- {
- port = __swizzle_addr_b(port);
-
-- *(volatile u8 *)(mips_io_port_base + port) = __ioswab8(val);
-+ *(volatile __u8 *)(mips_io_port_base + port) = __ioswab8(val);
- SLOW_DOWN_IO;
- }
-
-@@ -429,7 +429,7 @@
- {
- port = __swizzle_addr_w(port);
-
-- *(volatile u16 *)(mips_io_port_base + port) = __ioswab16(val);
-+ *(volatile __u16 *)(mips_io_port_base + port) = __ioswab16(val);
- SLOW_DOWN_IO;
- }
-
-@@ -437,7 +437,7 @@
- {
- port = __swizzle_addr_l(port);
-
-- *(volatile u32 *)(mips_io_port_base + port) = __ioswab32(val);
-+ *(volatile __u32 *)(mips_io_port_base + port) = __ioswab32(val);
- SLOW_DOWN_IO;
- }
-
-@@ -452,30 +452,30 @@
- {
- port = __swizzle_addr_b(port);
-
-- return __ioswab8(*(volatile u8 *)(mips_io_port_base + port));
-+ return __ioswab8(*(volatile __u8 *)(mips_io_port_base + port));
- }
-
- static inline unsigned short __inw(unsigned long port)
- {
- port = __swizzle_addr_w(port);
-
-- return __ioswab16(*(volatile u16 *)(mips_io_port_base + port));
-+ return __ioswab16(*(volatile __u16 *)(mips_io_port_base + port));
- }
-
- static inline unsigned int __inl(unsigned long port)
- {
- port = __swizzle_addr_l(port);
-
-- return __ioswab32(*(volatile u32 *)(mips_io_port_base + port));
-+ return __ioswab32(*(volatile __u32 *)(mips_io_port_base + port));
- }
-
- static inline unsigned char __inb_p(unsigned long port)
- {
-- u8 __val;
-+ __u8 __val;
-
- port = __swizzle_addr_b(port);
-
-- __val = *(volatile u8 *)(mips_io_port_base + port);
-+ __val = *(volatile __u8 *)(mips_io_port_base + port);
- SLOW_DOWN_IO;
-
- return __ioswab8(__val);
-@@ -483,11 +483,11 @@
-
- static inline unsigned short __inw_p(unsigned long port)
- {
-- u16 __val;
-+ __u16 __val;
-
- port = __swizzle_addr_w(port);
-
-- __val = *(volatile u16 *)(mips_io_port_base + port);
-+ __val = *(volatile __u16 *)(mips_io_port_base + port);
- SLOW_DOWN_IO;
-
- return __ioswab16(__val);
-@@ -495,11 +495,11 @@
-
- static inline unsigned int __inl_p(unsigned long port)
- {
-- u32 __val;
-+ __u32 __val;
-
- port = __swizzle_addr_l(port);
-
-- __val = *(volatile u32 *)(mips_io_port_base + port);
-+ __val = *(volatile __u32 *)(mips_io_port_base + port);
- SLOW_DOWN_IO;
-
- return __ioswab32(__val);
-@@ -515,7 +515,7 @@
- static inline void __outsb(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
-- outb(*(u8 *)addr, port);
-+ outb(*(__u8 *)addr, port);
- addr++;
- }
- }
-@@ -523,7 +523,7 @@
- static inline void __insb(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
-- *(u8 *)addr = inb(port);
-+ *(__u8 *)addr = inb(port);
- addr++;
- }
- }
-@@ -531,7 +531,7 @@
- static inline void __outsw(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
-- outw(*(u16 *)addr, port);
-+ outw(*(__u16 *)addr, port);
- addr += 2;
- }
- }
-@@ -539,7 +539,7 @@
- static inline void __insw(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
-- *(u16 *)addr = inw(port);
-+ *(__u16 *)addr = inw(port);
- addr += 2;
- }
- }
-@@ -547,7 +547,7 @@
- static inline void __outsl(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
-- outl(*(u32 *)addr, port);
-+ outl(*(__u32 *)addr, port);
- addr += 4;
- }
- }
-@@ -555,7 +555,7 @@
- static inline void __insl(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
-- *(u32 *)addr = inl(port);
-+ *(__u32 *)addr = inl(port);
- addr += 4;
- }
- }
-@@ -617,7 +617,7 @@
- #define __CSR_32_ADJUST 0
- #endif
-
--#define csr_out32(v,a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
--#define csr_in32(a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
-+#define csr_out32(v,a) (*(volatile __u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
-+#define csr_in32(a) (*(volatile __u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
-
- #endif /* _ASM_IO_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ip32/mace.h linux-libc-headers-2.6.8.0/include/asm-mips/ip32/mace.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ip32/mace.h 2004-06-09 07:00:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ip32/mace.h 2004-08-26 05:14:41.000000000 -0500
-@@ -22,7 +22,7 @@
- #undef BIT
- #define BIT(x) (1ULL << (x))
-
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- typedef struct {
- volatile unsigned long long reg;
- } mace64_t;
-@@ -32,7 +32,7 @@
- volatile unsigned long reg;
- } mace32_t;
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- typedef struct {
- volatile unsigned long reg;
- } mace64_t;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/it8172/it8172.h linux-libc-headers-2.6.8.0/include/asm-mips/it8172/it8172.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/it8172/it8172.h 2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/it8172/it8172.h 2004-08-26 05:22:54.000000000 -0500
-@@ -336,13 +336,13 @@
- #define TIMER_TIDR 0x0E
-
-
--#define IT_WRITE(ofs, data) *(volatile u32 *)KSEG1ADDR((IT8172_BASE+ofs)) = data
--#define IT_READ(ofs, data) data = *(volatile u32 *)KSEG1ADDR((IT8172_BASE+ofs))
-+#define IT_WRITE(ofs, data) *(volatile __u32 *)KSEG1ADDR((IT8172_BASE+ofs)) = data
-+#define IT_READ(ofs, data) data = *(volatile __u32 *)KSEG1ADDR((IT8172_BASE+ofs))
-
--#define IT_IO_WRITE(ofs, data) *(volatile u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
--#define IT_IO_READ(ofs, data) data = *(volatile u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
-+#define IT_IO_WRITE(ofs, data) *(volatile __u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
-+#define IT_IO_READ(ofs, data) data = *(volatile __u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
-
--#define IT_IO_WRITE16(ofs, data) *(volatile u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
--#define IT_IO_READ16(ofs, data) data = *(volatile u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
-+#define IT_IO_WRITE16(ofs, data) *(volatile __u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
-+#define IT_IO_READ16(ofs, data) data = *(volatile __u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
-
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/head.h linux-libc-headers-2.6.8.0/include/asm-mips/lasat/head.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/head.h 2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/lasat/head.h 2004-08-26 05:23:42.000000000 -0500
-@@ -10,12 +10,12 @@
- #ifndef _LANGUAGE_ASSEMBLY
- #include <linux/types.h>
- struct bootloader_header {
-- u32 magic[2];
-- u32 version;
-- u32 image_start;
-- u32 image_size;
-- u32 kernel_start;
-- u32 kernel_entry;
-+ __u32 magic[2];
-+ __u32 version;
-+ __u32 image_start;
-+ __u32 image_size;
-+ __u32 kernel_start;
-+ __u32 kernel_entry;
- };
- #endif
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/lasat.h linux-libc-headers-2.6.8.0/include/asm-mips/lasat/lasat.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/lasat.h 2004-06-09 07:00:42.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/lasat/lasat.h 2004-08-26 05:23:50.000000000 -0500
-@@ -25,9 +25,9 @@
- #ifndef _LANGUAGE_ASSEMBLY
-
- extern struct lasat_misc {
-- volatile u32 *reset_reg;
-- volatile u32 *flash_wp_reg;
-- u32 flash_wp_bit;
-+ volatile __u32 *reset_reg;
-+ volatile __u32 *flash_wp_reg;
-+ __u32 flash_wp_bit;
- } *lasat_misc;
-
- enum lasat_mtdparts {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/m48t35.h linux-libc-headers-2.6.8.0/include/asm-mips/m48t35.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/m48t35.h 2004-01-17 17:03:44.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/m48t35.h 2004-08-26 05:23:39.000000000 -0500
-@@ -8,15 +8,15 @@
- extern spinlock_t rtc_lock;
-
- struct m48t35_rtc {
-- volatile u8 pad[0x7ff8]; /* starts at 0x7ff8 */
-- volatile u8 control;
-- volatile u8 sec;
-- volatile u8 min;
-- volatile u8 hour;
-- volatile u8 day;
-- volatile u8 date;
-- volatile u8 month;
-- volatile u8 year;
-+ volatile __u8 pad[0x7ff8]; /* starts at 0x7ff8 */
-+ volatile __u8 control;
-+ volatile __u8 sec;
-+ volatile __u8 min;
-+ volatile __u8 hour;
-+ volatile __u8 day;
-+ volatile __u8 date;
-+ volatile __u8 month;
-+ volatile __u8 year;
- };
-
- #define M48T35_RTC_SET 0x80
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/bonito64.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/bonito64.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/bonito64.h 2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/bonito64.h 2004-08-26 05:21:59.000000000 -0500
-@@ -34,7 +34,7 @@
- extern unsigned long _pcictrl_bonito;
- extern unsigned long _pcictrl_bonito_pcicfg;
-
--#define BONITO(x) *(volatile u32 *)(_pcictrl_bonito + (x))
-+#define BONITO(x) *(volatile __u32 *)(_pcictrl_bonito + (x))
-
- #endif /* __ASSEMBLY__ */
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/generic.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/generic.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/generic.h 2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/generic.h 2004-08-26 05:22:06.000000000 -0500
-@@ -74,7 +74,7 @@
- #define MIPS_REVISION_CORID_CORE_EMUL_BON 0x63
- #define MIPS_REVISION_CORID_CORE_EMUL_MSC 0x65
-
--#define MIPS_REVISION_CORID (((*(volatile u32 *)ioremap(MIPS_REVISION_REG, 4)) >> 10) & 0x3f)
-+#define MIPS_REVISION_CORID (((*(volatile __u32 *)ioremap(MIPS_REVISION_REG, 4)) >> 10) & 0x3f)
-
- extern unsigned int mips_revision_corid;
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/msc01_pci.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/msc01_pci.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/msc01_pci.h 2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/msc01_pci.h 2004-08-26 05:22:10.000000000 -0500
-@@ -212,8 +212,8 @@
-
- #define MSC01_PCI_REG_BASE _pcictrl_msc
-
--#define MSC_WRITE(reg, data) do { *(volatile u32 *)(reg) = data; } while (0)
--#define MSC_READ(reg, data) do { data = *(volatile u32 *)(reg); } while (0)
-+#define MSC_WRITE(reg, data) do { *(volatile __u32 *)(reg) = data; } while (0)
-+#define MSC_READ(reg, data) do { data = *(volatile __u32 *)(reg); } while (0)
-
- /*
- * Registers absolute addresses
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mipsregs.h linux-libc-headers-2.6.8.0/include/asm-mips/mipsregs.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mipsregs.h 2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mipsregs.h 2004-08-26 13:00:51.000000000 -0500
-@@ -14,7 +14,6 @@
- #define _ASM_MIPSREGS_H
-
- #include <linux/linkage.h>
--#include <asm/hazards.h>
-
- /*
- * The following macros are especially useful for __asm__
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mmu_context.h linux-libc-headers-2.6.8.0/include/asm-mips/mmu_context.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mmu_context.h 2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/mmu_context.h 2004-08-26 05:14:41.000000000 -0500
-@@ -27,12 +27,12 @@
- */
- #define TLBMISS_HANDLER_SETUP_PGD(pgd) \
- pgd_current[smp_processor_id()] = (unsigned long)(pgd)
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define TLBMISS_HANDLER_SETUP() \
- write_c0_context((unsigned long) smp_processor_id() << 23); \
- TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #define TLBMISS_HANDLER_SETUP() \
- write_c0_context((unsigned long) &pgd_current[smp_processor_id()] << 23); \
- TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/module.h linux-libc-headers-2.6.8.0/include/asm-mips/module.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/module.h 2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/module.h 2004-08-26 05:14:41.000000000 -0500
-@@ -21,7 +21,7 @@
- Elf64_Sxword r_addend; /* Addend. */
- } Elf64_Mips_Rela;
-
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
-
- #define Elf_Shdr Elf32_Shdr
- #define Elf_Sym Elf32_Sym
-@@ -29,7 +29,7 @@
-
- #endif
-
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
-
- #define Elf_Shdr Elf64_Shdr
- #define Elf_Sym Elf64_Sym
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/msgbuf.h linux-libc-headers-2.6.8.0/include/asm-mips/msgbuf.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/msgbuf.h 2004-01-17 17:03:44.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/msgbuf.h 2004-08-26 05:15:04.000000000 -0500
-@@ -14,25 +14,25 @@
-
- struct msqid64_ds {
- struct ipc64_perm msg_perm;
--#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
- unsigned long __unused1;
- #endif
- __kernel_time_t msg_stime; /* last msgsnd time */
--#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
- unsigned long __unused1;
- #endif
--#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
- unsigned long __unused2;
- #endif
- __kernel_time_t msg_rtime; /* last msgrcv time */
--#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
- unsigned long __unused2;
- #endif
--#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
- unsigned long __unused3;
- #endif
- __kernel_time_t msg_ctime; /* last change time */
--#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
-+#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
- unsigned long __unused3;
- #endif
- unsigned long msg_cbytes; /* current number of bytes on queue */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/nile4.h linux-libc-headers-2.6.8.0/include/asm-mips/nile4.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/nile4.h 2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/nile4.h 2004-08-26 05:22:46.000000000 -0500
-@@ -202,45 +202,45 @@
-
- static inline void nile4_sync(void)
- {
-- volatile u32 *p = (volatile u32 *)0xbfc00000;
-+ volatile __u32 *p = (volatile __u32 *)0xbfc00000;
- (void)(*p);
- }
-
--static inline void nile4_out32(u32 offset, u32 val)
-+static inline void nile4_out32(__u32 offset, __u32 val)
- {
-- *(volatile u32 *)(NILE4_BASE+offset) = val;
-+ *(volatile __u32 *)(NILE4_BASE+offset) = val;
- nile4_sync();
- }
-
--static inline u32 nile4_in32(u32 offset)
-+static inline __u32 nile4_in32(__u32 offset)
- {
-- u32 val = *(volatile u32 *)(NILE4_BASE+offset);
-+ __u32 val = *(volatile __u32 *)(NILE4_BASE+offset);
- nile4_sync();
- return val;
- }
-
--static inline void nile4_out16(u32 offset, u16 val)
-+static inline void nile4_out16(__u32 offset, __u16 val)
- {
-- *(volatile u16 *)(NILE4_BASE+offset) = val;
-+ *(volatile __u16 *)(NILE4_BASE+offset) = val;
- nile4_sync();
- }
-
--static inline u16 nile4_in16(u32 offset)
-+static inline __u16 nile4_in16(__u32 offset)
- {
-- u16 val = *(volatile u16 *)(NILE4_BASE+offset);
-+ __u16 val = *(volatile __u16 *)(NILE4_BASE+offset);
- nile4_sync();
- return val;
- }
-
--static inline void nile4_out8(u32 offset, u8 val)
-+static inline void nile4_out8(__u32 offset, __u8 val)
- {
-- *(volatile u8 *)(NILE4_BASE+offset) = val;
-+ *(volatile __u8 *)(NILE4_BASE+offset) = val;
- nile4_sync();
- }
-
--static inline u8 nile4_in8(u32 offset)
-+static inline __u8 nile4_in8(__u32 offset)
- {
-- u8 val = *(volatile u8 *)(NILE4_BASE+offset);
-+ __u8 val = *(volatile __u8 *)(NILE4_BASE+offset);
- nile4_sync();
- return val;
- }
-@@ -250,7 +250,7 @@
- * Physical Device Address Registers
- */
-
--extern void nile4_set_pdar(u32 pdar, u32 phys, u32 size, int width,
-+extern void nile4_set_pdar(__u32 pdar, __u32 phys, __u32 size, int width,
- int on_memory_bus, int visible);
-
-
-@@ -276,7 +276,7 @@
- #define NILE4_PCI_IACK_BASE NILE4_PCI_IO_BASE
-
-
--extern void nile4_set_pmr(u32 pmr, u32 type, u32 addr);
-+extern void nile4_set_pmr(__u32 pmr, __u32 type, __u32 addr);
-
-
- /*
-@@ -296,14 +296,14 @@
- extern void nile4_enable_irq(unsigned int nile4_irq);
- extern void nile4_disable_irq(unsigned int nile4_irq);
- extern void nile4_disable_irq_all(void);
--extern u16 nile4_get_irq_stat(int cpu_irq);
-+extern __u16 nile4_get_irq_stat(int cpu_irq);
- extern void nile4_enable_irq_output(int cpu_irq);
- extern void nile4_disable_irq_output(int cpu_irq);
- extern void nile4_set_pci_irq_polarity(int pci_irq, int high);
- extern void nile4_set_pci_irq_level_or_edge(int pci_irq, int level);
- extern void nile4_clear_irq(int nile4_irq);
--extern void nile4_clear_irq_mask(u32 mask);
--extern u8 nile4_i8259_iack(void);
-+extern void nile4_clear_irq_mask(__u32 mask);
-+extern __u8 nile4_i8259_iack(void);
- extern void nile4_dump_irq_status(void); /* Debug */
-
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/paccess.h linux-libc-headers-2.6.8.0/include/asm-mips/paccess.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/paccess.h 2004-01-17 17:03:44.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/paccess.h 2004-08-26 05:17:48.000000000 -0500
-@@ -14,11 +14,12 @@
- #define _ASM_PACCESS_H
-
- #include <linux/errno.h>
-+#include <linux/linkage.h>
-
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define __PA_ADDR ".word"
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- #define __PA_ADDR ".dword"
- #endif
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci/bridge.h linux-libc-headers-2.6.8.0/include/asm-mips/pci/bridge.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci/bridge.h 2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/pci/bridge.h 2004-08-26 05:25:40.000000000 -0500
-@@ -48,9 +48,9 @@
- * All accesses to bridge hardware registers must be done
- * using 32-bit loads and stores.
- */
--typedef u32 bridgereg_t;
-+typedef __u32 bridgereg_t;
-
--typedef u64 bridge_ate_t;
-+typedef __u64 bridge_ate_t;
-
- /* pointers to bridge ATEs
- * are always "pointer to volatile"
-@@ -199,37 +199,37 @@
-
- /* PCI Device Configuration Spaces 0x020000-0x027FFF */
- union { /* make all access sizes available. */
-- u8 c[0x1000 / 1];
-- u16 s[0x1000 / 2];
-- u32 l[0x1000 / 4];
-- u64 d[0x1000 / 8];
-+ __u8 c[0x1000 / 1];
-+ __u16 s[0x1000 / 2];
-+ __u32 l[0x1000 / 4];
-+ __u64 d[0x1000 / 8];
- union {
-- u8 c[0x100 / 1];
-- u16 s[0x100 / 2];
-- u32 l[0x100 / 4];
-- u64 d[0x100 / 8];
-+ __u8 c[0x100 / 1];
-+ __u16 s[0x100 / 2];
-+ __u32 l[0x100 / 4];
-+ __u64 d[0x100 / 8];
- } f[8];
- } b_type0_cfg_dev[8]; /* 0x020000 */
-
- /* PCI Type 1 Configuration Space 0x028000-0x028FFF */
- union { /* make all access sizes available. */
-- u8 c[0x1000 / 1];
-- u16 s[0x1000 / 2];
-- u32 l[0x1000 / 4];
-- u64 d[0x1000 / 8];
-+ __u8 c[0x1000 / 1];
-+ __u16 s[0x1000 / 2];
-+ __u32 l[0x1000 / 4];
-+ __u64 d[0x1000 / 8];
- } b_type1_cfg; /* 0x028000-0x029000 */
-
- char _pad_029000[0x007000]; /* 0x029000-0x030000 */
-
- /* PCI Interrupt Acknowledge Cycle 0x030000 */
- union {
-- u8 c[8 / 1];
-- u16 s[8 / 2];
-- u32 l[8 / 4];
-- u64 d[8 / 8];
-+ __u8 c[8 / 1];
-+ __u16 s[8 / 2];
-+ __u32 l[8 / 4];
-+ __u64 d[8 / 8];
- } b_pci_iack; /* 0x030000 */
-
-- u8 _pad_030007[0x04fff8]; /* 0x030008-0x07FFFF */
-+ __u8 _pad_030007[0x04fff8]; /* 0x030008-0x07FFFF */
-
- /* External Address Translation Entry RAM 0x080000-0x0FFFFF */
- bridge_ate_t b_ext_ate_ram[0x10000];
-@@ -239,10 +239,10 @@
-
- /* PCI/GIO Device Spaces 0x200000-0xBFFFFF */
- union { /* make all access sizes available. */
-- u8 c[0x100000 / 1];
-- u16 s[0x100000 / 2];
-- u32 l[0x100000 / 4];
-- u64 d[0x100000 / 8];
-+ __u8 c[0x100000 / 1];
-+ __u16 s[0x100000 / 2];
-+ __u32 l[0x100000 / 4];
-+ __u64 d[0x100000 / 8];
- } b_devio_raw[10]; /* 0x200000 */
-
- /* b_devio macro is a bit strange; it reflects the
-@@ -253,10 +253,10 @@
-
- /* External Flash Proms 1,0 0xC00000-0xFFFFFF */
- union { /* make all access sizes available. */
-- u8 c[0x400000 / 1]; /* read-only */
-- u16 s[0x400000 / 2]; /* read-write */
-- u32 l[0x400000 / 4]; /* read-only */
-- u64 d[0x400000 / 8]; /* read-only */
-+ __u8 c[0x400000 / 1]; /* read-only */
-+ __u16 s[0x400000 / 2]; /* read-write */
-+ __u32 l[0x400000 / 4]; /* read-only */
-+ __u64 d[0x400000 / 8]; /* read-only */
- } b_external_flash; /* 0xC00000 */
- } bridge_t;
-
-@@ -266,9 +266,9 @@
- */
- typedef struct bridge_err_cmdword_s {
- union {
-- u32 cmd_word;
-+ __u32 cmd_word;
- struct {
-- u32 didn:4, /* Destination ID */
-+ __u32 didn:4, /* Destination ID */
- sidn:4, /* Source ID */
- pactyp:4, /* Packet type */
- tnum:5, /* Trans Number */
-@@ -799,17 +799,17 @@
- #ifndef __ASSEMBLY__
- /* Address translation entry for mapped pci32 accesses */
- typedef union ate_u {
-- u64 ent;
-+ __u64 ent;
- struct ate_s {
-- u64 rmf:16;
-- u64 addr:36;
-- u64 targ:4;
-- u64 reserved:3;
-- u64 barrier:1;
-- u64 prefetch:1;
-- u64 precise:1;
-- u64 coherent:1;
-- u64 valid:1;
-+ __u64 rmf:16;
-+ __u64 addr:36;
-+ __u64 targ:4;
-+ __u64 reserved:3;
-+ __u64 barrier:1;
-+ __u64 prefetch:1;
-+ __u64 precise:1;
-+ __u64 coherent:1;
-+ __u64 valid:1;
- } field;
- } ate_t;
- #endif /* !__ASSEMBLY__ */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci_channel.h linux-libc-headers-2.6.8.0/include/asm-mips/pci_channel.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci_channel.h 2004-03-28 07:51:52.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/pci_channel.h 2004-08-26 05:21:47.000000000 -0500
-@@ -41,6 +41,6 @@
- /*
- * board supplied pci irq fixup routine
- */
--extern int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin);
-+extern int pcibios_map_irq(struct pci_dev *dev, __u8 slot, __u8 pin);
-
- #endif /* __ASM_PCI_CHANNEL_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pgalloc.h linux-libc-headers-2.6.8.0/include/asm-mips/pgalloc.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pgalloc.h 2004-06-09 07:00:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/pgalloc.h 2004-08-26 05:14:41.000000000 -0500
-@@ -85,7 +85,7 @@
-
- #define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte))
-
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- #define pgd_populate(mm, pmd, pte) BUG()
-
- /*
-@@ -97,7 +97,7 @@
- #define __pmd_free_tlb(tlb,x) do { } while (0)
- #endif
-
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
-
- #define pgd_populate(mm, pgd, pmd) set_pgd(pgd, __pgd(pmd))
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/prctl.h linux-libc-headers-2.6.8.0/include/asm-mips/prctl.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/prctl.h 2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/prctl.h 2004-08-26 05:21:43.000000000 -0500
-@@ -12,21 +12,21 @@
- #define PRDA ((struct prda *) PRDA_ADDRESS)
-
- struct prda_sys {
-- pid_t t_pid;
-- u32 t_hint;
-- u32 t_dlactseq;
-- u32 t_fpflags;
-- u32 t_prid; /* processor type, $prid CP0 register */
-- u32 t_dlendseq;
-- u64 t_unused1[5];
-- pid_t t_rpid;
-- s32 t_resched;
-- u32 t_unused[8];
-- u32 t_cpu; /* current/last cpu */
-+ pid_t t_pid;
-+ __u32 t_hint;
-+ __u32 t_dlactseq;
-+ __u32 t_fpflags;
-+ __u32 t_prid; /* processor type, $prid CP0 register */
-+ __u32 t_dlendseq;
-+ __u64 t_unused1[5];
-+ pid_t t_rpid;
-+ __s32 t_resched;
-+ __u32 t_unused[8];
-+ __u32 t_cpu; /* current/last cpu */
-
- /* FIXME: The signal information, not supported by Linux now */
-- u32 t_flags; /* if true, then the sigprocmask is in userspace */
-- u32 t_sigprocmask [1]; /* the sigprocmask */
-+ __u32 t_flags; /* if true, then the sigprocmask is in userspace */
-+ __u32 t_sigprocmask [1]; /* the sigprocmask */
- };
-
- struct prda {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/processor.h linux-libc-headers-2.6.8.0/include/asm-mips/processor.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/processor.h 2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/processor.h 2004-08-26 05:23:24.000000000 -0500
-@@ -102,7 +102,7 @@
- #define MCA_bus 0
- #define MCA_bus__is_a_macro /* for versions in ksyms.c */
-
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- /*
- * User space process size: 2GB. This is hardcoded into a few places,
- * so don't change it unless you know what you are doing.
-@@ -116,7 +116,7 @@
- #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
- #endif
-
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- /*
- * User space process size: 1TB. This is hardcoded into a few places,
- * so don't change it unless you know what you are doing. TASK_SIZE
-@@ -142,7 +142,7 @@
-
- #define NUM_FPU_REGS 32
-
--typedef u64 fpureg_t;
-+typedef __u64 fpureg_t;
-
- struct mips_fpu_hard_struct {
- fpureg_t fpr[NUM_FPU_REGS];
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ptrace.h linux-libc-headers-2.6.8.0/include/asm-mips/ptrace.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ptrace.h 2004-03-28 07:51:52.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/ptrace.h 2004-08-26 05:14:41.000000000 -0500
-@@ -27,7 +27,7 @@
- * system call/exception. As usual the registers k0/k1 aren't being saved.
- */
- struct pt_regs {
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- /* Pad bytes for argument save space on the stack. */
- unsigned long pad0[6];
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/serial.h linux-libc-headers-2.6.8.0/include/asm-mips/serial.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/serial.h 2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/serial.h 2004-08-26 13:21:37.000000000 -0500
-@@ -68,7 +68,7 @@
-
- #define _JAZZ_SERIAL_INIT(int, base) \
- { .baud_base = JAZZ_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS, \
-- .iomem_base = (u8 *) base, .iomem_reg_shift = 0, \
-+ .iomem_base = (__u8 *) base, .iomem_reg_shift = 0, \
- .io_type = SERIAL_IO_MEM }
- #define JAZZ_SERIAL_PORT_DEFNS \
- _JAZZ_SERIAL_INIT(JAZZ_SERIAL1_IRQ, JAZZ_SERIAL1_BASE), \
-@@ -243,7 +243,7 @@
- #define _JAGUAR_ATX_SERIAL_INIT(int, base) \
- { baud_base: JAGUAR_ATX_BASE_BAUD, irq: int, \
- flags: (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST), \
-- iomem_base: (u8 *) base, iomem_reg_shift: 2, \
-+ iomem_base: (__u8 *) base, iomem_reg_shift: 2, \
- io_type: SERIAL_IO_MEM }
- #define MOMENCO_JAGUAR_ATX_SERIAL_PORT_DEFNS \
- _JAGUAR_ATX_SERIAL_INIT(JAGUAR_ATX_SERIAL1_IRQ, JAGUAR_ATX_SERIAL1_BASE)
-@@ -260,7 +260,7 @@
-
- #define _OCELOT_SERIAL_INIT(int, base) \
- { .baud_base = OCELOT_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS, \
-- .iomem_base = (u8 *) base, .iomem_reg_shift = 2, \
-+ .iomem_base = (__u8 *) base, .iomem_reg_shift = 2, \
- .io_type = SERIAL_IO_MEM }
- #define MOMENCO_OCELOT_SERIAL_PORT_DEFNS \
- _OCELOT_SERIAL_INIT(OCELOT_SERIAL1_IRQ, OCELOT_SERIAL1_BASE)
-@@ -281,7 +281,7 @@
-
- #define _OCELOT_G_SERIAL_INIT(int, base) \
- { .baud_base = OCELOT_G_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,\
-- .iomem_base = (u8 *) base, .iomem_reg_shift = 2, \
-+ .iomem_base = (__u8 *) base, .iomem_reg_shift = 2, \
- .io_type = SERIAL_IO_MEM }
- #define MOMENCO_OCELOT_G_SERIAL_PORT_DEFNS \
- _OCELOT_G_SERIAL_INIT(OCELOT_G_SERIAL1_IRQ, OCELOT_G_SERIAL1_BASE)
-@@ -303,7 +303,7 @@
- { .baud_base = OCELOT_C_BASE_BAUD, \
- .irq = (int), \
- .flags = STD_COM_FLAGS, \
-- .iomem_base = (u8 *) base, \
-+ .iomem_base = (__u8 *) base, \
- .iomem_reg_shift = 2, \
- .io_type = SERIAL_IO_MEM \
- }
-@@ -318,10 +318,10 @@
- #include <asm/ddb5xxx/ddb5477.h>
- #define DDB5477_SERIAL_PORT_DEFNS \
- { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART0, \
-- .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04200, \
-+ .flags = STD_COM_FLAGS, .iomem_base = (__u8*)0xbfa04200, \
- .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM}, \
- { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART1, \
-- .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04240, \
-+ .flags = STD_COM_FLAGS, .iomem_base = (__u8*)0xbfa04240, \
- .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM},
- #else
- #define DDB5477_SERIAL_PORT_DEFNS
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/hpc3.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/hpc3.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/hpc3.h 2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/hpc3.h 2004-08-26 05:24:34.000000000 -0500
-@@ -17,8 +17,8 @@
-
- /* An HPC DMA descriptor. */
- struct hpc_dma_desc {
-- u32 pbuf; /* physical address of data buffer */
-- u32 cntinfo; /* counter and info bits */
-+ __u32 pbuf; /* physical address of data buffer */
-+ __u32 cntinfo; /* counter and info bits */
- #define HPCDMA_EOX 0x80000000 /* last desc in chain for tx */
- #define HPCDMA_EOR 0x80000000 /* last desc in chain for rx */
- #define HPCDMA_EOXP 0x40000000 /* end of packet for tx */
-@@ -30,15 +30,15 @@
- #define HPCDMA_OWN 0x00004000 /* Denotes ring buffer ownership on rx */
- #define HPCDMA_BCNT 0x00003fff /* size in bytes of this dma buffer */
-
-- u32 pnext; /* paddr of next hpc_dma_desc if any */
-+ __u32 pnext; /* paddr of next hpc_dma_desc if any */
- };
-
- /* The set of regs for each HPC3 PBUS DMA channel. */
- struct hpc3_pbus_dmacregs {
-- volatile u32 pbdma_bptr; /* pbus dma channel buffer ptr */
-- volatile u32 pbdma_dptr; /* pbus dma channel desc ptr */
-- u32 _unused0[0x1000/4 - 2]; /* padding */
-- volatile u32 pbdma_ctrl; /* pbus dma channel control register has
-+ volatile __u32 pbdma_bptr; /* pbus dma channel buffer ptr */
-+ volatile __u32 pbdma_dptr; /* pbus dma channel desc ptr */
-+ __u32 _unused0[0x1000/4 - 2]; /* padding */
-+ volatile __u32 pbdma_ctrl; /* pbus dma channel control register has
- * copletely different meaning for read
- * compared with write */
- /* read */
-@@ -55,20 +55,20 @@
- #define HPC3_PDMACTRL_FB 0x003f0000 /* Ptr to beginning of fifo */
- #define HPC3_PDMACTRL_FE 0x3f000000 /* Ptr to end of fifo */
-
-- u32 _unused1[0x1000/4 - 1]; /* padding */
-+ __u32 _unused1[0x1000/4 - 1]; /* padding */
- };
-
- /* The HPC3 SCSI registers, this does not include external ones. */
- struct hpc3_scsiregs {
-- volatile u32 cbptr; /* current dma buffer ptr, diagnostic use only */
-- volatile u32 ndptr; /* next dma descriptor ptr */
-- u32 _unused0[0x1000/4 - 2]; /* padding */
-- volatile u32 bcd; /* byte count info */
-+ volatile __u32 cbptr; /* current dma buffer ptr, diagnostic use only */
-+ volatile __u32 ndptr; /* next dma descriptor ptr */
-+ __u32 _unused0[0x1000/4 - 2]; /* padding */
-+ volatile __u32 bcd; /* byte count info */
- #define HPC3_SBCD_BCNTMSK 0x00003fff /* bytes to transfer from/to memory */
- #define HPC3_SBCD_XIE 0x00004000 /* Send IRQ when done with cur buf */
- #define HPC3_SBCD_EOX 0x00008000 /* Indicates this is last buf in chain */
-
-- volatile u32 ctrl; /* control register */
-+ volatile __u32 ctrl; /* control register */
- #define HPC3_SCTRL_IRQ 0x01 /* IRQ asserted, either dma done or parity */
- #define HPC3_SCTRL_ENDIAN 0x02 /* DMA endian mode, 0=big 1=little */
- #define HPC3_SCTRL_DIR 0x04 /* DMA direction, 1=dev2mem 0=mem2dev */
-@@ -78,9 +78,9 @@
- #define HPC3_SCTRL_CRESET 0x40 /* Resets dma channel and external controller */
- #define HPC3_SCTRL_PERR 0x80 /* Bad parity on HPC3 iface to scsi controller */
-
-- volatile u32 gfptr; /* current GIO fifo ptr */
-- volatile u32 dfptr; /* current device fifo ptr */
-- volatile u32 dconfig; /* DMA configuration register */
-+ volatile __u32 gfptr; /* current GIO fifo ptr */
-+ volatile __u32 dfptr; /* current device fifo ptr */
-+ volatile __u32 dconfig; /* DMA configuration register */
- #define HPC3_SDCFG_HCLK 0x00001 /* Enable DMA half clock mode */
- #define HPC3_SDCFG_D1 0x00006 /* Cycles to spend in D1 state */
- #define HPC3_SDCFG_D2 0x00038 /* Cycles to spend in D2 state */
-@@ -92,7 +92,7 @@
- #define HPC3_SDCFG_POLL 0x08000 /* hd_dreq polarity control */
- #define HPC3_SDCFG_ERLY 0x30000 /* hd_dreq behavior control bits */
-
-- volatile u32 pconfig; /* PIO configuration register */
-+ volatile __u32 pconfig; /* PIO configuration register */
- #define HPC3_SPCFG_P3 0x0003 /* Cycles to spend in P3 state */
- #define HPC3_SPCFG_P2W 0x001c /* Cycles to spend in P2 state for writes */
- #define HPC3_SPCFG_P2R 0x01e0 /* Cycles to spend in P2 state for reads */
-@@ -102,21 +102,21 @@
- #define HPC3_SPCFG_EPAR 0x4000 /* Enable parity checking for PIO */
- #define HPC3_SPCFG_FUJI 0x8000 /* Fujitsu scsi controller mode for faster dma/pio */
-
-- u32 _unused1[0x1000/4 - 6]; /* padding */
-+ __u32 _unused1[0x1000/4 - 6]; /* padding */
- };
-
- /* SEEQ ethernet HPC3 registers, only one seeq per HPC3. */
- struct hpc3_ethregs {
- /* Receiver registers. */
-- volatile u32 rx_cbptr; /* current dma buffer ptr, diagnostic use only */
-- volatile u32 rx_ndptr; /* next dma descriptor ptr */
-- u32 _unused0[0x1000/4 - 2]; /* padding */
-- volatile u32 rx_bcd; /* byte count info */
-+ volatile __u32 rx_cbptr; /* current dma buffer ptr, diagnostic use only */
-+ volatile __u32 rx_ndptr; /* next dma descriptor ptr */
-+ __u32 _unused0[0x1000/4 - 2]; /* padding */
-+ volatile __u32 rx_bcd; /* byte count info */
- #define HPC3_ERXBCD_BCNTMSK 0x00003fff /* bytes to be sent to memory */
- #define HPC3_ERXBCD_XIE 0x20000000 /* HPC3 interrupts cpu at end of this buf */
- #define HPC3_ERXBCD_EOX 0x80000000 /* flags this as end of descriptor chain */
-
-- volatile u32 rx_ctrl; /* control register */
-+ volatile __u32 rx_ctrl; /* control register */
- #define HPC3_ERXCTRL_STAT50 0x0000003f /* Receive status reg bits of Seeq8003 */
- #define HPC3_ERXCTRL_STAT6 0x00000040 /* Rdonly irq status */
- #define HPC3_ERXCTRL_STAT7 0x00000080 /* Rdonlt old/new status bit from Seeq */
-@@ -125,15 +125,15 @@
- #define HPC3_ERXCTRL_AMASK 0x00000400 /* Tells if ACTIVE inhibits PIO's to hpc3 */
- #define HPC3_ERXCTRL_RBO 0x00000800 /* Receive buffer overflow if set to 1 */
-
-- volatile u32 rx_gfptr; /* current GIO fifo ptr */
-- volatile u32 rx_dfptr; /* current device fifo ptr */
-- u32 _unused1; /* padding */
-- volatile u32 rx_reset; /* reset register */
-+ volatile __u32 rx_gfptr; /* current GIO fifo ptr */
-+ volatile __u32 rx_dfptr; /* current device fifo ptr */
-+ __u32 _unused1; /* padding */
-+ volatile __u32 rx_reset; /* reset register */
- #define HPC3_ERXRST_CRESET 0x1 /* Reset dma channel and external controller */
- #define HPC3_ERXRST_CLRIRQ 0x2 /* Clear channel interrupt */
- #define HPC3_ERXRST_LBACK 0x4 /* Enable diagnostic loopback mode of Seeq8003 */
-
-- volatile u32 rx_dconfig; /* DMA configuration register */
-+ volatile __u32 rx_dconfig; /* DMA configuration register */
- #define HPC3_ERXDCFG_D1 0x0000f /* Cycles to spend in D1 state for PIO */
- #define HPC3_ERXDCFG_D2 0x000f0 /* Cycles to spend in D2 state for PIO */
- #define HPC3_ERXDCFG_D3 0x00f00 /* Cycles to spend in D3 state for PIO */
-@@ -143,26 +143,26 @@
- #define HPC3_ERXDCFG_FIRQ 0x08000 /* Another bad packet timeout enable */
- #define HPC3_ERXDCFG_PTO 0x30000 /* Programmed timeout value for above two */
-
-- volatile u32 rx_pconfig; /* PIO configuration register */
-+ volatile __u32 rx_pconfig; /* PIO configuration register */
- #define HPC3_ERXPCFG_P1 0x000f /* Cycles to spend in P1 state for PIO */
- #define HPC3_ERXPCFG_P2 0x00f0 /* Cycles to spend in P2 state for PIO */
- #define HPC3_ERXPCFG_P3 0x0f00 /* Cycles to spend in P3 state for PIO */
- #define HPC3_ERXPCFG_TST 0x1000 /* Diagnistic ram test feature bit */
-
-- u32 _unused2[0x1000/4 - 8]; /* padding */
-+ __u32 _unused2[0x1000/4 - 8]; /* padding */
-
- /* Transmitter registers. */
-- volatile u32 tx_cbptr; /* current dma buffer ptr, diagnostic use only */
-- volatile u32 tx_ndptr; /* next dma descriptor ptr */
-- u32 _unused3[0x1000/4 - 2]; /* padding */
-- volatile u32 tx_bcd; /* byte count info */
-+ volatile __u32 tx_cbptr; /* current dma buffer ptr, diagnostic use only */
-+ volatile __u32 tx_ndptr; /* next dma descriptor ptr */
-+ __u32 _unused3[0x1000/4 - 2]; /* padding */
-+ volatile __u32 tx_bcd; /* byte count info */
- #define HPC3_ETXBCD_BCNTMSK 0x00003fff /* bytes to be read from memory */
- #define HPC3_ETXBCD_ESAMP 0x10000000 /* if set, too late to add descriptor */
- #define HPC3_ETXBCD_XIE 0x20000000 /* Interrupt cpu at end of cur desc */
- #define HPC3_ETXBCD_EOP 0x40000000 /* Last byte of cur buf is end of packet */
- #define HPC3_ETXBCD_EOX 0x80000000 /* This buf is the end of desc chain */
-
-- volatile u32 tx_ctrl; /* control register */
-+ volatile __u32 tx_ctrl; /* control register */
- #define HPC3_ETXCTRL_STAT30 0x0000000f /* Rdonly copy of seeq tx stat reg */
- #define HPC3_ETXCTRL_STAT4 0x00000010 /* Indicate late collision occurred */
- #define HPC3_ETXCTRL_STAT75 0x000000e0 /* Rdonly irq status from seeq */
-@@ -170,9 +170,9 @@
- #define HPC3_ETXCTRL_ACTIVE 0x00000200 /* DMA tx channel is active */
- #define HPC3_ETXCTRL_AMASK 0x00000400 /* Indicates ACTIVE inhibits PIO's */
-
-- volatile u32 tx_gfptr; /* current GIO fifo ptr */
-- volatile u32 tx_dfptr; /* current device fifo ptr */
-- u32 _unused4[0x1000/4 - 4]; /* padding */
-+ volatile __u32 tx_gfptr; /* current GIO fifo ptr */
-+ volatile __u32 tx_dfptr; /* current device fifo ptr */
-+ __u32 _unused4[0x1000/4 - 4]; /* padding */
- };
-
- struct hpc3_regs {
-@@ -188,7 +188,7 @@
- /* Here are where the hpc3 fifo's can be directly accessed
- * via PIO accesses. Under normal operation we never stick
- * our grubby paws in here so it's just padding. */
-- u32 _unused0[0x18000/4];
-+ __u32 _unused0[0x18000/4];
-
- /* HPC3 irq status regs. Due to a peculiar bug you need to
- * look at two different register addresses to get at all of
-@@ -197,42 +197,42 @@
- * reliably report bits 9:5 of the hpc3 irq status. I told
- * you it was a peculiar bug. ;-)
- */
-- volatile u32 istat0; /* Irq status, only bits <4:0> reliable. */
-+ volatile __u32 istat0; /* Irq status, only bits <4:0> reliable. */
- #define HPC3_ISTAT_PBIMASK 0x0ff /* irq bits for pbus devs 0 --> 7 */
- #define HPC3_ISTAT_SC0MASK 0x100 /* irq bit for scsi channel 0 */
- #define HPC3_ISTAT_SC1MASK 0x200 /* irq bit for scsi channel 1 */
-
-- volatile u32 gio_misc; /* GIO misc control bits. */
-+ volatile __u32 gio_misc; /* GIO misc control bits. */
- #define HPC3_GIOMISC_ERTIME 0x1 /* Enable external timer real time. */
- #define HPC3_GIOMISC_DENDIAN 0x2 /* dma descriptor endian, 1=lit 0=big */
-
-- volatile u32 eeprom; /* EEPROM data reg. */
-+ volatile __u32 eeprom; /* EEPROM data reg. */
- #define HPC3_EEPROM_EPROT 0x01 /* Protect register enable */
- #define HPC3_EEPROM_CSEL 0x02 /* Chip select */
- #define HPC3_EEPROM_ECLK 0x04 /* EEPROM clock */
- #define HPC3_EEPROM_DATO 0x08 /* Data out */
- #define HPC3_EEPROM_DATI 0x10 /* Data in */
-
-- volatile u32 istat1; /* Irq status, only bits <9:5> reliable. */
-- volatile u32 bestat; /* Bus error interrupt status reg. */
-+ volatile __u32 istat1; /* Irq status, only bits <9:5> reliable. */
-+ volatile __u32 bestat; /* Bus error interrupt status reg. */
- #define HPC3_BESTAT_BLMASK 0x000ff /* Bus lane where bad parity occurred */
- #define HPC3_BESTAT_CTYPE 0x00100 /* Bus cycle type, 0=PIO 1=DMA */
- #define HPC3_BESTAT_PIDSHIFT 9
- #define HPC3_BESTAT_PIDMASK 0x3f700 /* DMA channel parity identifier */
-
-- u32 _unused1[0x14000/4 - 5]; /* padding */
-+ __u32 _unused1[0x14000/4 - 5]; /* padding */
-
- /* Now direct PIO per-HPC3 peripheral access to external regs. */
-- volatile u32 scsi0_ext[256]; /* SCSI channel 0 external regs */
-- u32 _unused2[0x7c00/4];
-- volatile u32 scsi1_ext[256]; /* SCSI channel 1 external regs */
-- u32 _unused3[0x7c00/4];
-- volatile u32 eth_ext[320]; /* Ethernet external registers */
-- u32 _unused4[0x3b00/4];
-+ volatile __u32 scsi0_ext[256]; /* SCSI channel 0 external regs */
-+ __u32 _unused2[0x7c00/4];
-+ volatile __u32 scsi1_ext[256]; /* SCSI channel 1 external regs */
-+ __u32 _unused3[0x7c00/4];
-+ volatile __u32 eth_ext[320]; /* Ethernet external registers */
-+ __u32 _unused4[0x3b00/4];
-
- /* Per-peripheral device external registers and DMA/PIO control. */
-- volatile u32 pbus_extregs[16][256];
-- volatile u32 pbus_dmacfg[8][128];
-+ volatile __u32 pbus_extregs[16][256];
-+ volatile __u32 pbus_dmacfg[8][128];
- /* Cycles to spend in D3 for reads */
- #define HPC3_DMACFG_D3R_MASK 0x00000001
- #define HPC3_DMACFG_D3R_SHIFT 0
-@@ -262,7 +262,7 @@
- #define HPC3_DMACFG_BURST_SHIFT 22
- /* Use live pbus_dreq unsynchronized signal */
- #define HPC3_DMACFG_DRQLIVE 0x08000000
-- volatile u32 pbus_piocfg[16][64];
-+ volatile __u32 pbus_piocfg[16][64];
- /* Cycles to spend in P2 state for reads */
- #define HPC3_PIOCFG_P2R_MASK 0x00001
- #define HPC3_PIOCFG_P2R_SHIFT 0
-@@ -287,21 +287,21 @@
- #define HPC3_PIOCFG_EVENHI 0x80000
-
- /* PBUS PROM control regs. */
-- volatile u32 pbus_promwe; /* PROM write enable register */
-+ volatile __u32 pbus_promwe; /* PROM write enable register */
- #define HPC3_PROM_WENAB 0x1 /* Enable writes to the PROM */
-
-- u32 _unused5[0x0800/4 - 1];
-- volatile u32 pbus_promswap; /* Chip select swap reg */
-+ __u32 _unused5[0x0800/4 - 1];
-+ volatile __u32 pbus_promswap; /* Chip select swap reg */
- #define HPC3_PROM_SWAP 0x1 /* invert GIO addr bit to select prom0 or prom1 */
-
-- u32 _unused6[0x0800/4 - 1];
-- volatile u32 pbus_gout; /* PROM general purpose output reg */
-+ __u32 _unused6[0x0800/4 - 1];
-+ volatile __u32 pbus_gout; /* PROM general purpose output reg */
- #define HPC3_PROM_STAT 0x1 /* General purpose status bit in gout */
-
-- u32 _unused7[0x1000/4 - 1];
-- volatile u32 rtcregs[14]; /* Dallas clock registers */
-- u32 _unused8[50];
-- volatile u32 bbram[8192-50-14]; /* Battery backed ram */
-+ __u32 _unused7[0x1000/4 - 1];
-+ volatile __u32 rtcregs[14]; /* Dallas clock registers */
-+ __u32 _unused8[50];
-+ volatile __u32 bbram[8192-50-14]; /* Battery backed ram */
- };
-
- /*
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/ioc.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/ioc.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/ioc.h 2004-03-28 07:51:54.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/ioc.h 2004-08-26 05:24:48.000000000 -0500
-@@ -22,26 +22,26 @@
- */
-
- struct sgioc_uart_regs {
-- u8 _ctrl1[3];
-- volatile u8 ctrl1;
-- u8 _data1[3];
-- volatile u8 data1;
-- u8 _ctrl2[3];
-- volatile u8 ctrl2;
-- u8 _data2[3];
-- volatile u8 data2;
-+ __u8 _ctrl1[3];
-+ volatile __u8 ctrl1;
-+ __u8 _data1[3];
-+ volatile __u8 data1;
-+ __u8 _ctrl2[3];
-+ volatile __u8 ctrl2;
-+ __u8 _data2[3];
-+ volatile __u8 data2;
- };
-
- struct sgioc_keyb_regs {
-- u8 _data[3];
-- volatile u8 data;
-- u8 _command[3];
-- volatile u8 command;
-+ __u8 _data[3];
-+ volatile __u8 data;
-+ __u8 _command[3];
-+ volatile __u8 command;
- };
-
- struct sgint_regs {
-- u8 _istat0[3];
-- volatile u8 istat0; /* Interrupt status zero */
-+ __u8 _istat0[3];
-+ volatile __u8 istat0; /* Interrupt status zero */
- #define SGINT_ISTAT0_FFULL 0x01
- #define SGINT_ISTAT0_SCSI0 0x02
- #define SGINT_ISTAT0_SCSI1 0x04
-@@ -50,10 +50,10 @@
- #define SGINT_ISTAT0_PPORT 0x20
- #define SGINT_ISTAT0_HPC2 0x40
- #define SGINT_ISTAT0_LIO2 0x80
-- u8 _imask0[3];
-- volatile u8 imask0; /* Interrupt mask zero */
-- u8 _istat1[3];
-- volatile u8 istat1; /* Interrupt status one */
-+ __u8 _imask0[3];
-+ volatile __u8 imask0; /* Interrupt mask zero */
-+ __u8 _istat1[3];
-+ volatile __u8 istat1; /* Interrupt status one */
- #define SGINT_ISTAT1_ISDNI 0x01
- #define SGINT_ISTAT1_PWR 0x02
- #define SGINT_ISTAT1_ISDNH 0x04
-@@ -62,29 +62,29 @@
- #define SGINT_ISTAT1_AFAIL 0x20
- #define SGINT_ISTAT1_VIDEO 0x40
- #define SGINT_ISTAT1_GIO2 0x80
-- u8 _imask1[3];
-- volatile u8 imask1; /* Interrupt mask one */
-- u8 _vmeistat[3];
-- volatile u8 vmeistat; /* VME interrupt status */
-- u8 _cmeimask0[3];
-- volatile u8 cmeimask0; /* VME interrupt mask zero */
-- u8 _cmeimask1[3];
-- volatile u8 cmeimask1; /* VME interrupt mask one */
-- u8 _cmepol[3];
-- volatile u8 cmepol; /* VME polarity */
-- u8 _tclear[3];
-- volatile u8 tclear;
-- u8 _errstat[3];
-- volatile u8 errstat; /* Error status reg, reserved on INT2 */
-- u32 _unused0[2];
-- u8 _tcnt0[3];
-- volatile u8 tcnt0; /* counter 0 */
-- u8 _tcnt1[3];
-- volatile u8 tcnt1; /* counter 1 */
-- u8 _tcnt2[3];
-- volatile u8 tcnt2; /* counter 2 */
-- u8 _tcword[3];
-- volatile u8 tcword; /* control word */
-+ __u8 _imask1[3];
-+ volatile __u8 imask1; /* Interrupt mask one */
-+ __u8 _vmeistat[3];
-+ volatile __u8 vmeistat; /* VME interrupt status */
-+ __u8 _cmeimask0[3];
-+ volatile __u8 cmeimask0; /* VME interrupt mask zero */
-+ __u8 _cmeimask1[3];
-+ volatile __u8 cmeimask1; /* VME interrupt mask one */
-+ __u8 _cmepol[3];
-+ volatile __u8 cmepol; /* VME polarity */
-+ __u8 _tclear[3];
-+ volatile __u8 tclear;
-+ __u8 _errstat[3];
-+ volatile __u8 errstat; /* Error status reg, reserved on INT2 */
-+ __u32 _unused0[2];
-+ __u8 _tcnt0[3];
-+ volatile __u8 tcnt0; /* counter 0 */
-+ __u8 _tcnt1[3];
-+ volatile __u8 tcnt1; /* counter 1 */
-+ __u8 _tcnt2[3];
-+ volatile __u8 tcnt2; /* counter 2 */
-+ __u8 _tcword[3];
-+ volatile __u8 tcword; /* control word */
- #define SGINT_TCWORD_BCD 0x01 /* Use BCD mode for counters */
- #define SGINT_TCWORD_MMASK 0x0e /* Mode bitmask. */
- #define SGINT_TCWORD_MITC 0x00 /* IRQ on terminal count (doesn't work) */
-@@ -115,55 +115,55 @@
- #define SGINT_TCSAMP_COUNTER ((SGINT_TIMER_CLOCK / HZ) + 255)
-
- /* We need software copies of these because they are write only. */
--extern u8 sgi_ioc_reset, sgi_ioc_write;
-+extern __u8 sgi_ioc_reset, sgi_ioc_write;
-
- struct sgioc_regs {
- struct pi1_regs pport;
-- u32 _unused0[2];
-+ __u32 _unused0[2];
- struct sgioc_uart_regs serport;
- struct sgioc_keyb_regs kbdmouse;
-- u8 _gcsel[3];
-- volatile u8 gcsel;
-- u8 _genctrl[3];
-- volatile u8 genctrl;
-- u8 _panel[3];
-- volatile u8 panel;
-+ __u8 _gcsel[3];
-+ volatile __u8 gcsel;
-+ __u8 _genctrl[3];
-+ volatile __u8 genctrl;
-+ __u8 _panel[3];
-+ volatile __u8 panel;
- #define SGIOC_PANEL_POWERON 0x01
- #define SGIOC_PANEL_POWERINTR 0x02
- #define SGIOC_PANEL_VOLDNINTR 0x10
- #define SGIOC_PANEL_VOLDNHOLD 0x20
- #define SGIOC_PANEL_VOLUPINTR 0x40
- #define SGIOC_PANEL_VOLUPHOLD 0x80
-- u32 _unused1;
-- u8 _sysid[3];
-- volatile u8 sysid;
-+ __u32 _unused1;
-+ __u8 _sysid[3];
-+ volatile __u8 sysid;
- #define SGIOC_SYSID_FULLHOUSE 0x01
- #define SGIOC_SYSID_BOARDREV(x) ((x & 0xe0) > 5)
- #define SGIOC_SYSID_CHIPREV(x) ((x & 0x1e) > 1)
-- u32 _unused2;
-- u8 _read[3];
-- volatile u8 read;
-- u32 _unused3;
-- u8 _dmasel[3];
-- volatile u8 dmasel;
-+ __u32 _unused2;
-+ __u8 _read[3];
-+ volatile __u8 read;
-+ __u32 _unused3;
-+ __u8 _dmasel[3];
-+ volatile __u8 dmasel;
- #define SGIOC_DMASEL_SCLK10MHZ 0x00 /* use 10MHZ serial clock */
- #define SGIOC_DMASEL_ISDNB 0x01 /* enable isdn B */
- #define SGIOC_DMASEL_ISDNA 0x02 /* enable isdn A */
- #define SGIOC_DMASEL_PPORT 0x04 /* use parallel DMA */
- #define SGIOC_DMASEL_SCLK667MHZ 0x10 /* use 6.67MHZ serial clock */
- #define SGIOC_DMASEL_SCLKEXT 0x20 /* use external serial clock */
-- u32 _unused4;
-- u8 _reset[3];
-- volatile u8 reset;
-+ __u32 _unused4;
-+ __u8 _reset[3];
-+ volatile __u8 reset;
- #define SGIOC_RESET_PPORT 0x01 /* 0=parport reset, 1=nornal */
- #define SGIOC_RESET_KBDMOUSE 0x02 /* 0=kbdmouse reset, 1=normal */
- #define SGIOC_RESET_EISA 0x04 /* 0=eisa reset, 1=normal */
- #define SGIOC_RESET_ISDN 0x08 /* 0=isdn reset, 1=normal */
- #define SGIOC_RESET_LC0OFF 0x10 /* guiness: turn led off (red, else green) */
- #define SGIOC_RESET_LC1OFF 0x20 /* guiness: turn led off (green, else amber) */
-- u32 _unused5;
-- u8 _write[3];
-- volatile u8 write;
-+ __u32 _unused5;
-+ __u8 _write[3];
-+ volatile __u8 write;
- #define SGIOC_WRITE_NTHRESH 0x01 /* use 4.5db threshhold */
- #define SGIOC_WRITE_TPSPEED 0x02 /* use 100ohm TP speed */
- #define SGIOC_WRITE_EPSEL 0x04 /* force cable mode: 1=AUI 0=TP */
-@@ -172,10 +172,10 @@
- #define SGIOC_WRITE_U0AMODE 0x20 /* 1=PC 0=MAC UART mode */
- #define SGIOC_WRITE_MLO 0x40 /* 1=4.75V 0=+5V */
- #define SGIOC_WRITE_MHI 0x80 /* 1=5.25V 0=+5V */
-- u32 _unused6;
-+ __u32 _unused6;
- struct sgint_regs int3;
-- u32 _unused7[16];
-- volatile u32 extio; /* FullHouse only */
-+ __u32 _unused7[16];
-+ volatile __u32 extio; /* FullHouse only */
- #define EXTIO_S0_IRQ_3 0x8000 /* S0: vid.vsync */
- #define EXTIO_S0_IRQ_2 0x4000 /* S0: gfx.fifofull */
- #define EXTIO_S0_IRQ_1 0x2000 /* S0: gfx.int */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/mc.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/mc.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/mc.h 2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/mc.h 2004-08-26 05:25:28.000000000 -0500
-@@ -14,8 +14,8 @@
- #define _SGI_MC_H
-
- struct sgimc_regs {
-- u32 _unused0;
-- volatile u32 cpuctrl0; /* CPU control register 0, readwrite */
-+ __u32 _unused0;
-+ volatile __u32 cpuctrl0; /* CPU control register 0, readwrite */
- #define SGIMC_CCTRL0_REFS 0x0000000f /* REFS mask */
- #define SGIMC_CCTRL0_EREFRESH 0x00000010 /* Memory refresh enable */
- #define SGIMC_CCTRL0_EPERRGIO 0x00000020 /* GIO parity error enable */
-@@ -35,8 +35,8 @@
- #define SGIMC_CCTRL0_CMEMBADPAR 0x02000000 /* Generate bad perr from cpu to mem */
- #define SGIMC_CCTRL0_R4KNOCHKPARR 0x04000000 /* Don't chk parity on mem data reads */
- #define SGIMC_CCTRL0_GIOBTOB 0x08000000 /* Allow GIO back to back writes */
-- u32 _unused1;
-- volatile u32 cpuctrl1; /* CPU control register 1, readwrite */
-+ __u32 _unused1;
-+ volatile __u32 cpuctrl1; /* CPU control register 1, readwrite */
- #define SGIMC_CCTRL1_EGIOTIMEO 0x00000010 /* GIO bus timeout enable */
- #define SGIMC_CCTRL1_FIXEDEHPC 0x00001000 /* Fixed HPC endianness */
- #define SGIMC_CCTRL1_LITTLEHPC 0x00002000 /* Little endian HPC */
-@@ -45,33 +45,33 @@
- #define SGIMC_CCTRL1_FIXEDEEXP1 0x00010000 /* Fixed EXP1 endianness */
- #define SGIMC_CCTRL1_LITTLEEXP1 0x00020000 /* Little endian EXP1 */
-
-- u32 _unused2;
-- volatile u32 watchdogt; /* Watchdog reg rdonly, write clears */
-+ __u32 _unused2;
-+ volatile __u32 watchdogt; /* Watchdog reg rdonly, write clears */
-
-- u32 _unused3;
-- volatile u32 systemid; /* MC system ID register, readonly */
-+ __u32 _unused3;
-+ volatile __u32 systemid; /* MC system ID register, readonly */
- #define SGIMC_SYSID_MASKREV 0x0000000f /* Revision of MC controller */
- #define SGIMC_SYSID_EPRESENT 0x00000010 /* Indicates presence of EISA bus */
-
-- u32 _unused4[3];
-- volatile u32 divider; /* Divider reg for RPSS */
-+ __u32 _unused4[3];
-+ volatile __u32 divider; /* Divider reg for RPSS */
-
-- u32 _unused5;
-- volatile u32 eeprom; /* EEPROM byte reg for r4k */
-+ __u32 _unused5;
-+ volatile __u32 eeprom; /* EEPROM byte reg for r4k */
- #define SGIMC_EEPROM_PRE 0x00000001 /* eeprom chip PRE pin assertion */
- #define SGIMC_EEPROM_CSEL 0x00000002 /* Active high, eeprom chip select */
- #define SGIMC_EEPROM_SECLOCK 0x00000004 /* EEPROM serial clock */
- #define SGIMC_EEPROM_SDATAO 0x00000008 /* Serial EEPROM data-out */
- #define SGIMC_EEPROM_SDATAI 0x00000010 /* Serial EEPROM data-in */
-
-- u32 _unused6[3];
-- volatile u32 rcntpre; /* Preload refresh counter */
-+ __u32 _unused6[3];
-+ volatile __u32 rcntpre; /* Preload refresh counter */
-
-- u32 _unused7;
-- volatile u32 rcounter; /* Readonly refresh counter */
-+ __u32 _unused7;
-+ volatile __u32 rcounter; /* Readonly refresh counter */
-
-- u32 _unused8[13];
-- volatile u32 giopar; /* Parameter word for GIO64 */
-+ __u32 _unused8[13];
-+ volatile __u32 giopar; /* Parameter word for GIO64 */
- #define SGIMC_GIOPAR_HPC64 0x00000001 /* HPC talks to GIO using 64-bits */
- #define SGIMC_GIOPAR_GFX64 0x00000002 /* GFX talks to GIO using 64-bits */
- #define SGIMC_GIOPAR_EXP064 0x00000004 /* EXP(slot0) talks using 64-bits */
-@@ -89,36 +89,36 @@
- #define SGIMC_GIOPAR_PLINEEXP0 0x00004000 /* EXP(slot0) has pipeline attr */
- #define SGIMC_GIOPAR_PLINEEXP1 0x00008000 /* EXP(slot1) has pipeline attr */
-
-- u32 _unused9;
-- volatile u32 cputp; /* CPU bus arb time period */
-+ __u32 _unused9;
-+ volatile __u32 cputp; /* CPU bus arb time period */
-
-- u32 _unused10[3];
-- volatile u32 lbursttp; /* Time period for long bursts */
-+ __u32 _unused10[3];
-+ volatile __u32 lbursttp; /* Time period for long bursts */
-
- /* MC chip can drive up to 4 bank 4 SIMMs each. All SIMMs in bank must
- * be the same size. The size encoding for supported SIMMs is bellow */
-- u32 _unused11[9];
-- volatile u32 mconfig0; /* Memory config register zero */
-- u32 _unused12;
-- volatile u32 mconfig1; /* Memory config register one */
-+ __u32 _unused11[9];
-+ volatile __u32 mconfig0; /* Memory config register zero */
-+ __u32 _unused12;
-+ volatile __u32 mconfig1; /* Memory config register one */
- #define SGIMC_MCONFIG_BASEADDR 0x000000ff /* Base address of bank*/
- #define SGIMC_MCONFIG_RMASK 0x00001f00 /* Ram config bitmask */
- #define SGIMC_MCONFIG_BVALID 0x00002000 /* Bank is valid */
- #define SGIMC_MCONFIG_SBANKS 0x00004000 /* Number of subbanks */
-
-- u32 _unused13;
-- volatile u32 cmacc; /* Mem access config for CPU */
-- u32 _unused14;
-- volatile u32 gmacc; /* Mem access config for GIO */
-+ __u32 _unused13;
-+ volatile __u32 cmacc; /* Mem access config for CPU */
-+ __u32 _unused14;
-+ volatile __u32 gmacc; /* Mem access config for GIO */
-
- /* This define applies to both cmacc and gmacc registers above. */
- #define SGIMC_MACC_ALIASBIG 0x20000000 /* 512MB home for alias */
-
- /* Error address/status regs from GIO and CPU perspectives. */
-- u32 _unused15;
-- volatile u32 cerr; /* Error address reg for CPU */
-- u32 _unused16;
-- volatile u32 cstat; /* Status reg for CPU */
-+ __u32 _unused15;
-+ volatile __u32 cerr; /* Error address reg for CPU */
-+ __u32 _unused16;
-+ volatile __u32 cstat; /* Status reg for CPU */
- #define SGIMC_CSTAT_RD 0x00000100 /* read parity error */
- #define SGIMC_CSTAT_PAR 0x00000200 /* CPU parity error */
- #define SGIMC_CSTAT_ADDR 0x00000400 /* memory bus error bad addr */
-@@ -128,10 +128,10 @@
- #define SGIMC_CSTAT_PAR_MASK 0x00001f00 /* parity error mask */
- #define SGIMC_CSTAT_RD_PAR (SGIMC_CSTAT_RD | SGIMC_CSTAT_PAR)
-
-- u32 _unused17;
-- volatile u32 gerr; /* Error address reg for GIO */
-- u32 _unused18;
-- volatile u32 gstat; /* Status reg for GIO */
-+ __u32 _unused17;
-+ volatile __u32 gerr; /* Error address reg for GIO */
-+ __u32 _unused18;
-+ volatile __u32 gstat; /* Status reg for GIO */
- #define SGIMC_GSTAT_RD 0x00000100 /* read parity error */
- #define SGIMC_GSTAT_WR 0x00000200 /* write parity error */
- #define SGIMC_GSTAT_TIME 0x00000400 /* GIO bus timed out */
-@@ -142,76 +142,76 @@
- #define SGIMC_GSTAT_PIO_WR 0x00008000 /* write data parity on pio */
-
- /* Special hard bus locking registers. */
-- u32 _unused19;
-- volatile u32 syssembit; /* Uni-bit system semaphore */
-- u32 _unused20;
-- volatile u32 mlock; /* Global GIO memory access lock */
-- u32 _unused21;
-- volatile u32 elock; /* Locks EISA from GIO accesses */
-+ __u32 _unused19;
-+ volatile __u32 syssembit; /* Uni-bit system semaphore */
-+ __u32 _unused20;
-+ volatile __u32 mlock; /* Global GIO memory access lock */
-+ __u32 _unused21;
-+ volatile __u32 elock; /* Locks EISA from GIO accesses */
-
- /* GIO dma control registers. */
-- u32 _unused22[15];
-- volatile u32 gio_dma_trans; /* DMA mask to translation GIO addrs */
-- u32 _unused23;
-- volatile u32 gio_dma_sbits; /* DMA GIO addr substitution bits */
-- u32 _unused24;
-- volatile u32 dma_intr_cause; /* DMA IRQ cause indicator bits */
-- u32 _unused25;
-- volatile u32 dma_ctrl; /* Main DMA control reg */
-+ __u32 _unused22[15];
-+ volatile __u32 gio_dma_trans; /* DMA mask to translation GIO addrs */
-+ __u32 _unused23;
-+ volatile __u32 gio_dma_sbits; /* DMA GIO addr substitution bits */
-+ __u32 _unused24;
-+ volatile __u32 dma_intr_cause; /* DMA IRQ cause indicator bits */
-+ __u32 _unused25;
-+ volatile __u32 dma_ctrl; /* Main DMA control reg */
-
- /* DMA TLB entry 0 */
-- u32 _unused26[5];
-- volatile u32 dtlb_hi0;
-- u32 _unused27;
-- volatile u32 dtlb_lo0;
-+ __u32 _unused26[5];
-+ volatile __u32 dtlb_hi0;
-+ __u32 _unused27;
-+ volatile __u32 dtlb_lo0;
-
- /* DMA TLB entry 1 */
-- u32 _unused28;
-- volatile u32 dtlb_hi1;
-- u32 _unused29;
-- volatile u32 dtlb_lo1;
-+ __u32 _unused28;
-+ volatile __u32 dtlb_hi1;
-+ __u32 _unused29;
-+ volatile __u32 dtlb_lo1;
-
- /* DMA TLB entry 2 */
-- u32 _unused30;
-- volatile u32 dtlb_hi2;
-- u32 _unused31;
-- volatile u32 dtlb_lo2;
-+ __u32 _unused30;
-+ volatile __u32 dtlb_hi2;
-+ __u32 _unused31;
-+ volatile __u32 dtlb_lo2;
-
- /* DMA TLB entry 3 */
-- u32 _unused32;
-- volatile u32 dtlb_hi3;
-- u32 _unused33;
-- volatile u32 dtlb_lo3;
-+ __u32 _unused32;
-+ volatile __u32 dtlb_hi3;
-+ __u32 _unused33;
-+ volatile __u32 dtlb_lo3;
-
-- u32 _unused34[0x0392];
-+ __u32 _unused34[0x0392];
-
-- u32 _unused35;
-- volatile u32 rpsscounter; /* Chirps at 100ns */
-+ __u32 _unused35;
-+ volatile __u32 rpsscounter; /* Chirps at 100ns */
-
-- u32 _unused36[0x1000/4-2*4];
-+ __u32 _unused36[0x1000/4-2*4];
-
-- u32 _unused37;
-- volatile u32 maddronly; /* Address DMA goes at */
-- u32 _unused38;
-- volatile u32 maddrpdeflts; /* Same as above, plus set defaults */
-- u32 _unused39;
-- volatile u32 dmasz; /* DMA count */
-- u32 _unused40;
-- volatile u32 ssize; /* DMA stride size */
-- u32 _unused41;
-- volatile u32 gmaddronly; /* Set GIO DMA but don't start trans */
-- u32 _unused42;
-- volatile u32 dmaddnpgo; /* Set GIO DMA addr + start transfer */
-- u32 _unused43;
-- volatile u32 dmamode; /* DMA mode config bit settings */
-- u32 _unused44;
-- volatile u32 dmaccount; /* Zoom and byte count for DMA */
-- u32 _unused45;
-- volatile u32 dmastart; /* Pedal to the metal. */
-- u32 _unused46;
-- volatile u32 dmarunning; /* DMA op is in progress */
-- u32 _unused47;
-- volatile u32 maddrdefstart; /* Set dma addr, defaults, and kick it */
-+ __u32 _unused37;
-+ volatile __u32 maddronly; /* Address DMA goes at */
-+ __u32 _unused38;
-+ volatile __u32 maddrpdeflts; /* Same as above, plus set defaults */
-+ __u32 _unused39;
-+ volatile __u32 dmasz; /* DMA count */
-+ __u32 _unused40;
-+ volatile __u32 ssize; /* DMA stride size */
-+ __u32 _unused41;
-+ volatile __u32 gmaddronly; /* Set GIO DMA but don't start trans */
-+ __u32 _unused42;
-+ volatile __u32 dmaddnpgo; /* Set GIO DMA addr + start transfer */
-+ __u32 _unused43;
-+ volatile __u32 dmamode; /* DMA mode config bit settings */
-+ __u32 _unused44;
-+ volatile __u32 dmaccount; /* Zoom and byte count for DMA */
-+ __u32 _unused45;
-+ volatile __u32 dmastart; /* Pedal to the metal. */
-+ __u32 _unused46;
-+ volatile __u32 dmarunning; /* DMA op is in progress */
-+ __u32 _unused47;
-+ volatile __u32 maddrdefstart; /* Set dma addr, defaults, and kick it */
- };
-
- extern struct sgimc_regs *sgimc;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgiarcs.h linux-libc-headers-2.6.8.0/include/asm-mips/sgiarcs.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgiarcs.h 2004-03-28 07:51:52.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sgiarcs.h 2004-08-26 05:21:53.000000000 -0500
-@@ -164,11 +164,11 @@
- /* This prom has a bolixed design. */
- struct linux_bigint {
- #ifdef __MIPSEL__
-- u32 lo;
-- s32 hi;
-+ __u32 lo;
-+ __s32 hi;
- #else /* !(__MIPSEL__) */
-- s32 hi;
-- u32 lo;
-+ __s32 hi;
-+ __u32 lo;
- #endif
- };
-
-@@ -366,7 +366,7 @@
- * Macros for calling a 32-bit ARC implementation from 64-bit code
- */
-
--#if defined(CONFIG_MIPS64) && defined(CONFIG_ARC32)
-+#if defined(__mips64) && defined(CONFIG_ARC32)
-
- #define __arc_clobbers \
- "$2","$3" /* ... */, "$8","$9","$10","$11", \
-@@ -475,10 +475,10 @@
- __res; \
- })
-
--#endif /* defined(CONFIG_MIPS64) && defined(CONFIG_ARC32) */
-+#endif /* defined(__mips64) && defined(CONFIG_ARC32) */
-
--#if (defined(CONFIG_MIPS32) && defined(CONFIG_ARC32)) || \
-- (defined(CONFIG_MIPS64) && defined(CONFIG_ARC64))
-+#if (!defined(__mips64) && defined(CONFIG_ARC32)) || \
-+ (defined(__mips64) && defined(CONFIG_ARC64))
-
- #define ARC_CALL0(dest) \
- ({ long __res; \
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/siginfo.h linux-libc-headers-2.6.8.0/include/asm-mips/siginfo.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/siginfo.h 2004-06-09 07:00:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/siginfo.h 2004-08-26 05:14:41.000000000 -0500
-@@ -66,10 +66,10 @@
-
- /* SIGPOLL, SIGXFSZ (To do ...) */
- struct {
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- long _band; /* POLL_IN, POLL_OUT, POLL_MSG */
- #endif
- int _fd;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sim.h linux-libc-headers-2.6.8.0/include/asm-mips/sim.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sim.h 2004-03-28 07:51:52.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sim.h 2004-08-26 05:17:16.000000000 -0500
-@@ -18,7 +18,7 @@
- #define __str2(x) #x
- #define __str(x) __str2(x)
-
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
-
- #define save_static_function(symbol) \
- __asm__ ( \
-@@ -43,9 +43,9 @@
-
- #define nabi_no_regargs
-
--#endif /* CONFIG_MIPS32 */
-+#endif /* ndef __mips64 */
-
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
-
- #define save_static_function(symbol) \
- __asm__ ( \
-@@ -78,6 +78,6 @@
- unsigned long __dummy6, \
- unsigned long __dummy7,
-
--#endif /* CONFIG_MIPS64 */
-+#endif /* __mips64 */
-
- #endif /* _ASM_SIM_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/arch.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/arch.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/arch.h 2004-06-09 07:00:42.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/arch.h 2004-08-26 05:26:16.000000000 -0500
-@@ -17,8 +17,8 @@
- #include <asm/sn/sn0/arch.h>
- #endif
-
--typedef u64 hubreg_t;
--typedef u64 nic_t;
-+typedef __u64 hubreg_t;
-+typedef __u64 nic_t;
-
- #define cputonasid(cpu) (cpu_data[(cpu)].p_nasid)
- #define cputoslice(cpu) (cpu_data[(cpu)].p_slice)
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/gda.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/gda.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/gda.h 2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/gda.h 2004-08-26 05:26:30.000000000 -0500
-@@ -44,11 +44,11 @@
- #ifndef __ASSEMBLY__
-
- typedef struct gda {
-- u32 g_magic; /* GDA magic number */
-- u16 g_version; /* Version of this structure */
-- u16 g_masterid; /* The NASID:CPUNUM of the master cpu */
-- u32 g_promop; /* Passes requests from the kernel to prom */
-- u32 g_vds; /* Store the virtual dipswitches here */
-+ __u32 g_magic; /* GDA magic number */
-+ __u16 g_version; /* Version of this structure */
-+ __u16 g_masterid; /* The NASID:CPUNUM of the master cpu */
-+ __u32 g_promop; /* Passes requests from the kernel to prom */
-+ __u32 g_vds; /* Store the virtual dipswitches here */
- void **g_hooked_norm;/* ptr to pda loc for norm hndlr */
- void **g_hooked_utlb;/* ptr to pda loc for utlb hndlr */
- void **g_hooked_xtlb;/* ptr to pda loc for xtlb hndlr */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/ioc3.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/ioc3.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/ioc3.h 2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/ioc3.h 2004-08-26 05:26:06.000000000 -0500
-@@ -8,23 +8,23 @@
- /* SUPERIO uart register map */
- typedef volatile struct ioc3_uartregs {
- union {
-- volatile u8 rbr; /* read only, DLAB == 0 */
-- volatile u8 thr; /* write only, DLAB == 0 */
-- volatile u8 dll; /* DLAB == 1 */
-+ volatile __u8 rbr; /* read only, DLAB == 0 */
-+ volatile __u8 thr; /* write only, DLAB == 0 */
-+ volatile __u8 dll; /* DLAB == 1 */
- } u1;
- union {
-- volatile u8 ier; /* DLAB == 0 */
-- volatile u8 dlm; /* DLAB == 1 */
-+ volatile __u8 ier; /* DLAB == 0 */
-+ volatile __u8 dlm; /* DLAB == 1 */
- } u2;
- union {
-- volatile u8 iir; /* read only */
-- volatile u8 fcr; /* write only */
-+ volatile __u8 iir; /* read only */
-+ volatile __u8 fcr; /* write only */
- } u3;
-- volatile u8 iu_lcr;
-- volatile u8 iu_mcr;
-- volatile u8 iu_lsr;
-- volatile u8 iu_msr;
-- volatile u8 iu_scr;
-+ volatile __u8 iu_lcr;
-+ volatile __u8 iu_mcr;
-+ volatile __u8 iu_lsr;
-+ volatile __u8 iu_msr;
-+ volatile __u8 iu_scr;
- } ioc3_uregs_t;
-
- #define iu_rbr u1.rbr
-@@ -36,29 +36,29 @@
- #define iu_fcr u3.fcr
-
- struct ioc3_sioregs {
-- volatile u8 fill[0x141]; /* starts at 0x141 */
-+ volatile __u8 fill[0x141]; /* starts at 0x141 */
-
-- volatile u8 uartc;
-- volatile u8 kbdcg;
-+ volatile __u8 uartc;
-+ volatile __u8 kbdcg;
-
-- volatile u8 fill0[0x150 - 0x142 - 1];
-+ volatile __u8 fill0[0x150 - 0x142 - 1];
-
-- volatile u8 pp_data;
-- volatile u8 pp_dsr;
-- volatile u8 pp_dcr;
-+ volatile __u8 pp_data;
-+ volatile __u8 pp_dsr;
-+ volatile __u8 pp_dcr;
-
-- volatile u8 fill1[0x158 - 0x152 - 1];
-+ volatile __u8 fill1[0x158 - 0x152 - 1];
-
-- volatile u8 pp_fifa;
-- volatile u8 pp_cfgb;
-- volatile u8 pp_ecr;
-+ volatile __u8 pp_fifa;
-+ volatile __u8 pp_cfgb;
-+ volatile __u8 pp_ecr;
-
-- volatile u8 fill2[0x168 - 0x15a - 1];
-+ volatile __u8 fill2[0x168 - 0x15a - 1];
-
-- volatile u8 rtcad;
-- volatile u8 rtcdat;
-+ volatile __u8 rtcad;
-+ volatile __u8 rtcdat;
-
-- volatile u8 fill3[0x170 - 0x169 - 1];
-+ volatile __u8 fill3[0x170 - 0x169 - 1];
-
- struct ioc3_uartregs uartb; /* 0x20170 */
- struct ioc3_uartregs uarta; /* 0x20178 */
-@@ -66,103 +66,103 @@
-
- /* Register layout of IOC3 in configuration space. */
- struct ioc3 {
-- volatile u32 pad0[7]; /* 0x00000 */
-- volatile u32 sio_ir; /* 0x0001c */
-- volatile u32 sio_ies; /* 0x00020 */
-- volatile u32 sio_iec; /* 0x00024 */
-- volatile u32 sio_cr; /* 0x00028 */
-- volatile u32 int_out; /* 0x0002c */
-- volatile u32 mcr; /* 0x00030 */
-+ volatile __u32 pad0[7]; /* 0x00000 */
-+ volatile __u32 sio_ir; /* 0x0001c */
-+ volatile __u32 sio_ies; /* 0x00020 */
-+ volatile __u32 sio_iec; /* 0x00024 */
-+ volatile __u32 sio_cr; /* 0x00028 */
-+ volatile __u32 int_out; /* 0x0002c */
-+ volatile __u32 mcr; /* 0x00030 */
-
- /* General Purpose I/O registers */
-- volatile u32 gpcr_s; /* 0x00034 */
-- volatile u32 gpcr_c; /* 0x00038 */
-- volatile u32 gpdr; /* 0x0003c */
-- volatile u32 gppr_0; /* 0x00040 */
-- volatile u32 gppr_1; /* 0x00044 */
-- volatile u32 gppr_2; /* 0x00048 */
-- volatile u32 gppr_3; /* 0x0004c */
-- volatile u32 gppr_4; /* 0x00050 */
-- volatile u32 gppr_5; /* 0x00054 */
-- volatile u32 gppr_6; /* 0x00058 */
-- volatile u32 gppr_7; /* 0x0005c */
-- volatile u32 gppr_8; /* 0x00060 */
-- volatile u32 gppr_9; /* 0x00064 */
-- volatile u32 gppr_10; /* 0x00068 */
-- volatile u32 gppr_11; /* 0x0006c */
-- volatile u32 gppr_12; /* 0x00070 */
-- volatile u32 gppr_13; /* 0x00074 */
-- volatile u32 gppr_14; /* 0x00078 */
-- volatile u32 gppr_15; /* 0x0007c */
-+ volatile __u32 gpcr_s; /* 0x00034 */
-+ volatile __u32 gpcr_c; /* 0x00038 */
-+ volatile __u32 gpdr; /* 0x0003c */
-+ volatile __u32 gppr_0; /* 0x00040 */
-+ volatile __u32 gppr_1; /* 0x00044 */
-+ volatile __u32 gppr_2; /* 0x00048 */
-+ volatile __u32 gppr_3; /* 0x0004c */
-+ volatile __u32 gppr_4; /* 0x00050 */
-+ volatile __u32 gppr_5; /* 0x00054 */
-+ volatile __u32 gppr_6; /* 0x00058 */
-+ volatile __u32 gppr_7; /* 0x0005c */
-+ volatile __u32 gppr_8; /* 0x00060 */
-+ volatile __u32 gppr_9; /* 0x00064 */
-+ volatile __u32 gppr_10; /* 0x00068 */
-+ volatile __u32 gppr_11; /* 0x0006c */
-+ volatile __u32 gppr_12; /* 0x00070 */
-+ volatile __u32 gppr_13; /* 0x00074 */
-+ volatile __u32 gppr_14; /* 0x00078 */
-+ volatile __u32 gppr_15; /* 0x0007c */
-
- /* Parallel Port Registers */
-- volatile u32 ppbr_h_a; /* 0x00080 */
-- volatile u32 ppbr_l_a; /* 0x00084 */
-- volatile u32 ppcr_a; /* 0x00088 */
-- volatile u32 ppcr; /* 0x0008c */
-- volatile u32 ppbr_h_b; /* 0x00090 */
-- volatile u32 ppbr_l_b; /* 0x00094 */
-- volatile u32 ppcr_b; /* 0x00098 */
-+ volatile __u32 ppbr_h_a; /* 0x00080 */
-+ volatile __u32 ppbr_l_a; /* 0x00084 */
-+ volatile __u32 ppcr_a; /* 0x00088 */
-+ volatile __u32 ppcr; /* 0x0008c */
-+ volatile __u32 ppbr_h_b; /* 0x00090 */
-+ volatile __u32 ppbr_l_b; /* 0x00094 */
-+ volatile __u32 ppcr_b; /* 0x00098 */
-
- /* Keyboard and Mouse Registers */
-- volatile u32 km_csr; /* 0x0009c */
-- volatile u32 k_rd; /* 0x000a0 */
-- volatile u32 m_rd; /* 0x000a4 */
-- volatile u32 k_wd; /* 0x000a8 */
-- volatile u32 m_wd; /* 0x000ac */
-+ volatile __u32 km_csr; /* 0x0009c */
-+ volatile __u32 k_rd; /* 0x000a0 */
-+ volatile __u32 m_rd; /* 0x000a4 */
-+ volatile __u32 k_wd; /* 0x000a8 */
-+ volatile __u32 m_wd; /* 0x000ac */
-
- /* Serial Port Registers */
-- volatile u32 sbbr_h; /* 0x000b0 */
-- volatile u32 sbbr_l; /* 0x000b4 */
-- volatile u32 sscr_a; /* 0x000b8 */
-- volatile u32 stpir_a; /* 0x000bc */
-- volatile u32 stcir_a; /* 0x000c0 */
-- volatile u32 srpir_a; /* 0x000c4 */
-- volatile u32 srcir_a; /* 0x000c8 */
-- volatile u32 srtr_a; /* 0x000cc */
-- volatile u32 shadow_a; /* 0x000d0 */
-- volatile u32 sscr_b; /* 0x000d4 */
-- volatile u32 stpir_b; /* 0x000d8 */
-- volatile u32 stcir_b; /* 0x000dc */
-- volatile u32 srpir_b; /* 0x000e0 */
-- volatile u32 srcir_b; /* 0x000e4 */
-- volatile u32 srtr_b; /* 0x000e8 */
-- volatile u32 shadow_b; /* 0x000ec */
-+ volatile __u32 sbbr_h; /* 0x000b0 */
-+ volatile __u32 sbbr_l; /* 0x000b4 */
-+ volatile __u32 sscr_a; /* 0x000b8 */
-+ volatile __u32 stpir_a; /* 0x000bc */
-+ volatile __u32 stcir_a; /* 0x000c0 */
-+ volatile __u32 srpir_a; /* 0x000c4 */
-+ volatile __u32 srcir_a; /* 0x000c8 */
-+ volatile __u32 srtr_a; /* 0x000cc */
-+ volatile __u32 shadow_a; /* 0x000d0 */
-+ volatile __u32 sscr_b; /* 0x000d4 */
-+ volatile __u32 stpir_b; /* 0x000d8 */
-+ volatile __u32 stcir_b; /* 0x000dc */
-+ volatile __u32 srpir_b; /* 0x000e0 */
-+ volatile __u32 srcir_b; /* 0x000e4 */
-+ volatile __u32 srtr_b; /* 0x000e8 */
-+ volatile __u32 shadow_b; /* 0x000ec */
-
- /* Ethernet Registers */
-- volatile u32 emcr; /* 0x000f0 */
-- volatile u32 eisr; /* 0x000f4 */
-- volatile u32 eier; /* 0x000f8 */
-- volatile u32 ercsr; /* 0x000fc */
-- volatile u32 erbr_h; /* 0x00100 */
-- volatile u32 erbr_l; /* 0x00104 */
-- volatile u32 erbar; /* 0x00108 */
-- volatile u32 ercir; /* 0x0010c */
-- volatile u32 erpir; /* 0x00110 */
-- volatile u32 ertr; /* 0x00114 */
-- volatile u32 etcsr; /* 0x00118 */
-- volatile u32 ersr; /* 0x0011c */
-- volatile u32 etcdc; /* 0x00120 */
-- volatile u32 ebir; /* 0x00124 */
-- volatile u32 etbr_h; /* 0x00128 */
-- volatile u32 etbr_l; /* 0x0012c */
-- volatile u32 etcir; /* 0x00130 */
-- volatile u32 etpir; /* 0x00134 */
-- volatile u32 emar_h; /* 0x00138 */
-- volatile u32 emar_l; /* 0x0013c */
-- volatile u32 ehar_h; /* 0x00140 */
-- volatile u32 ehar_l; /* 0x00144 */
-- volatile u32 micr; /* 0x00148 */
-- volatile u32 midr_r; /* 0x0014c */
-- volatile u32 midr_w; /* 0x00150 */
-- volatile u32 pad1[(0x20000 - 0x00154) / 4];
-+ volatile __u32 emcr; /* 0x000f0 */
-+ volatile __u32 eisr; /* 0x000f4 */
-+ volatile __u32 eier; /* 0x000f8 */
-+ volatile __u32 ercsr; /* 0x000fc */
-+ volatile __u32 erbr_h; /* 0x00100 */
-+ volatile __u32 erbr_l; /* 0x00104 */
-+ volatile __u32 erbar; /* 0x00108 */
-+ volatile __u32 ercir; /* 0x0010c */
-+ volatile __u32 erpir; /* 0x00110 */
-+ volatile __u32 ertr; /* 0x00114 */
-+ volatile __u32 etcsr; /* 0x00118 */
-+ volatile __u32 ersr; /* 0x0011c */
-+ volatile __u32 etcdc; /* 0x00120 */
-+ volatile __u32 ebir; /* 0x00124 */
-+ volatile __u32 etbr_h; /* 0x00128 */
-+ volatile __u32 etbr_l; /* 0x0012c */
-+ volatile __u32 etcir; /* 0x00130 */
-+ volatile __u32 etpir; /* 0x00134 */
-+ volatile __u32 emar_h; /* 0x00138 */
-+ volatile __u32 emar_l; /* 0x0013c */
-+ volatile __u32 ehar_h; /* 0x00140 */
-+ volatile __u32 ehar_l; /* 0x00144 */
-+ volatile __u32 micr; /* 0x00148 */
-+ volatile __u32 midr_r; /* 0x0014c */
-+ volatile __u32 midr_w; /* 0x00150 */
-+ volatile __u32 pad1[(0x20000 - 0x00154) / 4];
-
- /* SuperIO Registers XXX */
- struct ioc3_sioregs sregs; /* 0x20000 */
-- volatile u32 pad2[(0x40000 - 0x20180) / 4];
-+ volatile __u32 pad2[(0x40000 - 0x20180) / 4];
-
- /* SSRAM Diagnostic Access */
-- volatile u32 ssram[(0x80000 - 0x40000) / 4];
-+ volatile __u32 ssram[(0x80000 - 0x40000) / 4];
-
- /* Bytebus device offsets
- 0x80000 - Access to the generic devices selected with DEV0
-@@ -179,8 +179,8 @@
- * Ethernet RX Buffer
- */
- struct ioc3_erxbuf {
-- u32 w0; /* first word (valid,bcnt,cksum) */
-- u32 err; /* second word various errors */
-+ __u32 w0; /* first word (valid,bcnt,cksum) */
-+ __u32 err; /* second word various errors */
- /* next comes n bytes of padding */
- /* then the received ethernet frame itself */
- };
-@@ -208,11 +208,11 @@
- */
- #define ETXD_DATALEN 104
- struct ioc3_etxd {
-- u32 cmd; /* command field */
-- u32 bufcnt; /* buffer counts field */
-- u64 p1; /* buffer pointer 1 */
-- u64 p2; /* buffer pointer 2 */
-- u8 data[ETXD_DATALEN]; /* opt. tx data */
-+ __u32 cmd; /* command field */
-+ __u32 bufcnt; /* buffer counts field */
-+ __u64 p1; /* buffer pointer 1 */
-+ __u64 p2; /* buffer pointer 2 */
-+ __u8 data[ETXD_DATALEN]; /* opt. tx data */
- };
-
- #define ETXD_BYTECNT_MASK 0x000007ff /* total byte count */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/klconfig.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/klconfig.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/klconfig.h 2004-03-28 07:51:55.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/klconfig.h 2004-08-26 05:26:13.000000000 -0500
-@@ -64,9 +64,9 @@
- #define KLCFGINFO_MAGIC 0xbeedbabe
-
- #ifdef FRUTEST
--typedef u64 klconf_off_t;
-+typedef __u64 klconf_off_t;
- #else
--typedef s32 klconf_off_t;
-+typedef __s32 klconf_off_t;
- #endif
-
- /*
-@@ -160,8 +160,8 @@
- /* Functions/macros needed to use this structure */
-
- typedef struct kl_config_hdr {
-- u64 ch_magic; /* set this to KLCFGINFO_MAGIC */
-- u32 ch_version; /* structure version number */
-+ __u64 ch_magic; /* set this to KLCFGINFO_MAGIC */
-+ __u32 ch_version; /* structure version number */
- klconf_off_t ch_malloc_hdr_off; /* offset of ch_malloc_hdr */
- klconf_off_t ch_cons_off; /* offset of ch_cons */
- klconf_off_t ch_board_info; /* the link list of boards */
-@@ -609,14 +609,14 @@
-
- /* Info holders for various hardware components */
-
--typedef u64 *pci_t;
--typedef u64 *vmeb_t;
--typedef u64 *vmed_t;
--typedef u64 *fddi_t;
--typedef u64 *scsi_t;
--typedef u64 *mio_t;
--typedef u64 *graphics_t;
--typedef u64 *router_t;
-+typedef __u64 *pci_t;
-+typedef __u64 *vmeb_t;
-+typedef __u64 *vmed_t;
-+typedef __u64 *fddi_t;
-+typedef __u64 *scsi_t;
-+typedef __u64 *mio_t;
-+typedef __u64 *graphics_t;
-+typedef __u64 *router_t;
-
- /*
- * The port info in ip27_cfg area translates to a lboart_t in the
-@@ -659,7 +659,7 @@
- klport_t hub_port; /* hub is connected to this */
- nic_t hub_box_nic; /* nic of containing box */
- klconf_off_t hub_mfg_nic; /* MFG NIC string */
-- u64 hub_speed; /* Speed of hub in HZ */
-+ __u64 hub_speed; /* Speed of hub in HZ */
- } klhub_t ;
-
- typedef struct klhub_uart_s { /* HUB */
-@@ -716,8 +716,8 @@
- #define MAX_PCI_SLOTS 8
-
- typedef struct klpci_device_s {
-- s32 pci_device_id; /* 32 bits of vendor/device ID. */
-- s32 pci_device_pad; /* 32 bits of padding. */
-+ __s32 pci_device_id; /* 32 bits of vendor/device ID. */
-+ __s32 pci_device_pad; /* 32 bits of padding. */
- } klpci_device_t;
-
- #define BRIDGE_STRUCT_VERSION 2
-@@ -767,7 +767,7 @@
- nic_t rou_box_nic ; /* nic of the containing module */
- klport_t rou_port[MAX_ROUTER_PORTS + 1] ; /* array index 1 to 6 */
- klconf_off_t rou_mfg_nic ; /* MFG NIC string */
-- u64 rou_vector; /* vector from master node */
-+ __u64 rou_vector; /* vector from master node */
- } klrou_t ;
-
- /*
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/kldir.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/kldir.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/kldir.h 2004-01-17 17:03:49.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/kldir.h 2004-08-26 05:26:25.000000000 -0500
-@@ -210,7 +210,7 @@
-
- #ifndef __ASSEMBLY__
- typedef struct kldir_ent_s {
-- u64 magic; /* Indicates validity of entry */
-+ __u64 magic; /* Indicates validity of entry */
- off_t offset; /* Offset from start of node space */
- #if defined(CONFIG_SGI_IO) /* FIXME */
- __psunsigned_t pointer; /* Pointer to area in some cases */
-@@ -218,7 +218,7 @@
- unsigned long pointer; /* Pointer to area in some cases */
- #endif
- size_t size; /* Size in bytes */
-- u64 count; /* Repeat count if array, 1 if not */
-+ __u64 count; /* Repeat count if array, 1 if not */
- size_t stride; /* Stride if array, 0 if not */
- char rsvd[16]; /* Pad entry to 0x40 bytes */
- /* NOTE: These 16 bytes are used in the Partition KLDIR
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/launch.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/launch.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/launch.h 2004-01-17 17:03:49.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/launch.h 2004-08-26 05:25:52.000000000 -0500
-@@ -62,14 +62,14 @@
- #ifndef __ASSEMBLY__
-
- typedef int launch_state_t;
--typedef void (*launch_proc_t)(u64 call_parm);
-+typedef void (*launch_proc_t)(__u64 call_parm);
-
- typedef struct launch_s {
-- volatile u64 magic; /* Magic number */
-- volatile u64 busy; /* Slave currently active */
-+ volatile __u64 magic; /* Magic number */
-+ volatile __u64 busy; /* Slave currently active */
- volatile launch_proc_t call_addr; /* Func. for slave to call */
-- volatile u64 call_addr_c; /* 1's complement of call_addr*/
-- volatile u64 call_parm; /* Single parm passed to call*/
-+ volatile __u64 call_addr_c; /* 1's complement of call_addr*/
-+ volatile __u64 call_parm; /* Single parm passed to call*/
- volatile void *stack_addr; /* Stack pointer for slave function */
- volatile void *gp_addr; /* Global pointer for slave func. */
- volatile char *bevutlb;/* Address of bev utlb ex handler */
-@@ -84,7 +84,7 @@
-
- #define LAUNCH_SLAVE (*(void (*)(int nasid, int cpu, \
- launch_proc_t call_addr, \
-- u64 call_parm, \
-+ __u64 call_parm, \
- void *stack_addr, \
- void *gp_addr)) \
- IP27PROM_LAUNCHSLAVE)
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubio.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubio.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubio.h 2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubio.h 2004-08-26 05:27:21.000000000 -0500
-@@ -172,9 +172,9 @@
- #ifndef __ASSEMBLY__
-
- typedef union hubii_wid_u {
-- u64 wid_reg_value;
-+ __u64 wid_reg_value;
- struct {
-- u64 wid_rsvd: 32, /* unused */
-+ __u64 wid_rsvd: 32, /* unused */
- wid_rev_num: 4, /* revision number */
- wid_part_num: 16, /* the widget type: hub=c101 */
- wid_mfg_num: 11, /* Manufacturer id (IBM) */
-@@ -184,9 +184,9 @@
-
-
- typedef union hubii_wcr_u {
-- u64 wcr_reg_value;
-+ __u64 wcr_reg_value;
- struct {
-- u64 wcr_rsvd: 41, /* unused */
-+ __u64 wcr_rsvd: 41, /* unused */
- wcr_e_thresh: 5, /* elasticity threshold */
- wcr_dir_con: 1, /* widget direct connect */
- wcr_f_bad_pkt: 1, /* Force bad llp pkt enable */
-@@ -200,9 +200,9 @@
- #define iwcr_dir_con wcr_fields_s.wcr_dir_con
-
- typedef union hubii_wstat_u {
-- u64 reg_value;
-+ __u64 reg_value;
- struct {
-- u64 rsvd1: 31,
-+ __u64 rsvd1: 31,
- crazy: 1, /* Crazy bit */
- rsvd2: 8,
- llp_tx_cnt: 8, /* LLP Xmit retry counter */
-@@ -217,9 +217,9 @@
-
-
- typedef union hubii_ilcsr_u {
-- u64 icsr_reg_value;
-+ __u64 icsr_reg_value;
- struct {
-- u64 icsr_rsvd: 22, /* unused */
-+ __u64 icsr_rsvd: 22, /* unused */
- icsr_max_burst: 10, /* max burst */
- icsr_rsvd4: 6, /* reserved */
- icsr_max_retry: 10, /* max retry */
-@@ -237,9 +237,9 @@
-
-
- typedef union hubii_iowa_u {
-- u64 iowa_reg_value;
-+ __u64 iowa_reg_value;
- struct {
-- u64 iowa_rsvd: 48, /* unused */
-+ __u64 iowa_rsvd: 48, /* unused */
- iowa_wxoac: 8, /* xtalk widget access bits */
- iowa_rsvd1: 7, /* xtalk widget access bits */
- iowa_w0oac: 1; /* xtalk widget access bits */
-@@ -247,9 +247,9 @@
- } hubii_iowa_t;
-
- typedef union hubii_iiwa_u {
-- u64 iiwa_reg_value;
-+ __u64 iiwa_reg_value;
- struct {
-- u64 iiwa_rsvd: 48, /* unused */
-+ __u64 iiwa_rsvd: 48, /* unused */
- iiwa_wxiac: 8, /* hub wid access bits */
- iiwa_rsvd1: 7, /* reserved */
- iiwa_w0iac: 1; /* hub wid0 access */
-@@ -257,9 +257,9 @@
- } hubii_iiwa_t;
-
- typedef union hubii_illr_u {
-- u64 illr_reg_value;
-+ __u64 illr_reg_value;
- struct {
-- u64 illr_rsvd: 32, /* unused */
-+ __u64 illr_rsvd: 32, /* unused */
- illr_cb_cnt: 16, /* checkbit error count */
- illr_sn_cnt: 16; /* sequence number count */
- } illr_fields_s;
-@@ -271,9 +271,9 @@
- /* io_perf_sel allows the caller to specify what tests will be
- performed */
- typedef union io_perf_sel {
-- u64 perf_sel_reg;
-+ __u64 perf_sel_reg;
- struct {
-- u64 perf_rsvd : 48,
-+ __u64 perf_rsvd : 48,
- perf_icct : 8,
- perf_ippr1 : 4,
- perf_ippr0 : 4;
-@@ -284,9 +284,9 @@
- hardware problems there is only one counter, not two. */
-
- typedef union io_perf_cnt {
-- u64 perf_cnt;
-+ __u64 perf_cnt;
- struct {
-- u64 perf_rsvd1 : 32,
-+ __u64 perf_rsvd1 : 32,
- perf_rsvd2 : 12,
- perf_cnt : 20;
- } perf_cnt_bits;
-@@ -442,9 +442,9 @@
- */
- #ifndef __ASSEMBLY__
- typedef union icrba_u {
-- u64 reg_value;
-+ __u64 reg_value;
- struct {
-- u64 resvd: 6,
-+ __u64 resvd: 6,
- stall_bte0: 1, /* Stall BTE 0 */
- stall_bte1: 1, /* Stall BTE 1 */
- error: 1, /* CRB has an error */
-@@ -464,10 +464,10 @@
- runtime selection of the format based on the REV_ID field of the
- NI_STATUS_REV_ID register. */
- typedef union h1_icrba_u {
-- u64 reg_value;
-+ __u64 reg_value;
-
- struct {
-- u64 resvd: 6,
-+ __u64 resvd: 6,
- unused: 1, /* Unused but RW!! */
- error: 1, /* CRB has an error */
- ecode: 4, /* Error Code */
-@@ -525,9 +525,9 @@
- */
- #ifndef __ASSEMBLY__
- typedef union icrbb_u {
-- u64 reg_value;
-+ __u64 reg_value;
- struct {
-- u64 rsvd1: 5,
-+ __u64 rsvd1: 5,
- btenum: 1, /* BTE to which entry belongs to */
- cohtrans: 1, /* Coherent transaction */
- xtsize: 2, /* Xtalk operation size
-@@ -567,9 +567,9 @@
- runtime selection of the format based on the REV_ID field of the
- NI_STATUS_REV_ID register. */
- typedef union h1_icrbb_u {
-- u64 reg_value;
-+ __u64 reg_value;
- struct {
-- u64 rsvd1: 5,
-+ __u64 rsvd1: 5,
- btenum: 1, /* BTE to which entry belongs to */
- cohtrans: 1, /* Coherent transaction */
- xtsize: 2, /* Xtalk operation size
-@@ -683,9 +683,9 @@
- #ifndef __ASSEMBLY__
-
- typedef union icrbc_s {
-- u64 reg_value;
-+ __u64 reg_value;
- struct {
-- u64 rsvd: 6,
-+ __u64 rsvd: 6,
- sleep: 1,
- pricnt: 4, /* Priority count sent with Read req */
- pripsc: 4, /* Priority Pre scalar */
-@@ -720,9 +720,9 @@
-
- #ifndef __ASSEMBLY__
- typedef union icrbd_s {
-- u64 reg_value;
-+ __u64 reg_value;
- struct {
-- u64 rsvd: 38,
-+ __u64 rsvd: 38,
- toutvld: 1, /* Timeout in progress for this CRB */
- ctxtvld: 1, /* Context field below is valid */
- rsvd2: 1,
-@@ -742,9 +742,9 @@
-
-
- typedef union hubii_ifdr_u {
-- u64 hi_ifdr_value;
-+ __u64 hi_ifdr_value;
- struct {
-- u64 ifdr_rsvd: 49,
-+ __u64 ifdr_rsvd: 49,
- ifdr_maxrp: 7,
- ifdr_rsvd1: 1,
- ifdr_maxrq: 7;
-@@ -801,9 +801,9 @@
- #ifndef __ASSEMBLY__
-
- typedef union iprte_a {
-- u64 entry;
-+ __u64 entry;
- struct {
-- u64 rsvd1 : 7, /* Reserved field */
-+ __u64 rsvd1 : 7, /* Reserved field */
- valid : 1, /* Maps to a timeout entry */
- rsvd2 : 1,
- srcnode : 9, /* Node which did this PIO */
-@@ -835,9 +835,9 @@
- */
-
- typedef union iprb_u {
-- u64 reg_value;
-+ __u64 reg_value;
- struct {
-- u64 rsvd1: 15,
-+ __u64 rsvd1: 15,
- error: 1, /* Widget rcvd wr resp pkt w/ error */
- ovflow: 5, /* Over flow count. perf measurement */
- fire_and_forget: 1, /* Launch Write without response */
-@@ -877,9 +877,9 @@
- */
- #ifndef __ASSEMBLY__
- typedef union icrbp_a {
-- u64 ip_reg; /* the entire register value */
-+ __u64 ip_reg; /* the entire register value */
- struct {
-- u64 error: 1, /* 63, error occurred */
-+ __u64 error: 1, /* 63, error occurred */
- ln_uce: 1, /* 62: uncorrectable memory */
- ln_ae: 1, /* 61: protection violation */
- ln_werr:1, /* 60: write access error */
-@@ -919,9 +919,9 @@
-
- #ifndef __ASSEMBLY__
- typedef union hubii_idsr {
-- u64 iin_reg;
-+ __u64 iin_reg;
- struct {
-- u64 rsvd1 : 35,
-+ __u64 rsvd1 : 35,
- isent : 1,
- rsvd2 : 3,
- ienable: 1,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubmd.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubmd.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubmd.h 2004-01-17 17:03:49.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubmd.h 2004-08-26 05:27:00.000000000 -0500
-@@ -541,7 +541,7 @@
- */
-
- struct dir_error_reg {
-- u64 uce_vld: 1, /* 63: valid directory uce */
-+ __u64 uce_vld: 1, /* 63: valid directory uce */
- ae_vld: 1, /* 62: valid dir prot ecc error */
- ce_vld: 1, /* 61: valid correctable ECC err*/
- rsvd1: 19, /* 60-42: reserved */
-@@ -555,13 +555,13 @@
- };
-
- typedef union md_dir_error {
-- u64 derr_reg; /* the entire register */
-+ __u64 derr_reg; /* the entire register */
- struct dir_error_reg derr_fmt; /* the register format */
- } md_dir_error_t;
-
-
- struct mem_error_reg {
-- u64 uce_vld: 1, /* 63: valid memory uce */
-+ __u64 uce_vld: 1, /* 63: valid memory uce */
- ce_vld: 1, /* 62: valid correctable ECC err*/
- rsvd1: 22, /* 61-40: reserved */
- bad_syn: 8, /* 39-32: bad mem ecc syndrome */
-@@ -573,13 +573,13 @@
-
-
- typedef union md_mem_error {
-- u64 merr_reg; /* the entire register */
-+ __u64 merr_reg; /* the entire register */
- struct mem_error_reg merr_fmt; /* format of the mem_error reg */
- } md_mem_error_t;
-
-
- struct proto_error_reg {
-- u64 valid: 1, /* 63: valid protocol error */
-+ __u64 valid: 1, /* 63: valid protocol error */
- rsvd1: 2, /* 62-61: reserved */
- initiator:11, /* 60-50: id of request initiator*/
- backoff: 2, /* 49-48: backoff control */
-@@ -594,7 +594,7 @@
- };
-
- typedef union md_proto_error {
-- u64 perr_reg; /* the entire register */
-+ __u64 perr_reg; /* the entire register */
- struct proto_error_reg perr_fmt; /* format of the register */
- } md_proto_error_t;
-
-@@ -642,7 +642,7 @@
-
-
- struct md_pdir_high_fmt {
-- u64 pd_hi_unused : 16,
-+ __u64 pd_hi_unused : 16,
- pd_hi_bvec : 38,
- pd_hi_unused1 : 3,
- pd_hi_ecc : 7;
-@@ -651,14 +651,14 @@
-
- typedef union md_pdir_high {
- /* The 48 bits of standard directory, upper word */
-- u64 pd_hi_val;
-+ __u64 pd_hi_val;
- struct md_pdir_high_fmt pd_hi_fmt;
- }md_pdir_high_t;
-
-
- struct md_pdir_low_shared_fmt {
- /* The meaning of lower directory, shared */
-- u64 pds_lo_unused : 16,
-+ __u64 pds_lo_unused : 16,
- pds_lo_bvec : 26,
- pds_lo_cnt : 6,
- pds_lo_state : 3,
-@@ -670,7 +670,7 @@
-
- struct md_pdir_low_exclusive_fmt {
- /* The meaning of lower directory, exclusive */
-- u64 pde_lo_unused : 31,
-+ __u64 pde_lo_unused : 31,
- pde_lo_ptr : 11,
- pde_lo_unused1 : 6,
- pde_lo_state : 3,
-@@ -683,7 +683,7 @@
-
- typedef union md_pdir_loent {
- /* The 48 bits of premium directory, lower word */
-- u64 pd_lo_val;
-+ __u64 pd_lo_val;
- struct md_pdir_low_exclusive_fmt pde_lo_fmt;
- struct md_pdir_low_shared_fmt pds_lo_fmt;
- }md_pdir_low_t;
-@@ -711,25 +711,25 @@
- } bddir_entry_t;
-
- typedef struct dir_mem_entry {
-- u64 prcpf[MAX_REGIONS];
-+ __u64 prcpf[MAX_REGIONS];
- bddir_entry_t directory_words[MD_PAGE_SIZE/CACHE_SLINE_SIZE];
- } dir_mem_entry_t;
-
-
-
- typedef union md_perf_sel {
-- u64 perf_sel_reg;
-+ __u64 perf_sel_reg;
- struct {
-- u64 perf_rsvd : 60,
-+ __u64 perf_rsvd : 60,
- perf_en : 1,
- perf_sel : 3;
- } perf_sel_bits;
- } md_perf_sel_t;
-
- typedef union md_perf_cnt {
-- u64 perf_cnt;
-+ __u64 perf_cnt;
- struct {
-- u64 perf_rsvd : 44,
-+ __u64 perf_rsvd : 44,
- perf_cnt : 20;
- } perf_cnt_bits;
- } md_perf_cnt_t;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubni.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubni.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubni.h 2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubni.h 2004-08-26 05:26:48.000000000 -0500
-@@ -229,9 +229,9 @@
- #ifndef __ASSEMBLY__
-
- typedef union hubni_port_error_u {
-- u64 nipe_reg_value;
-+ __u64 nipe_reg_value;
- struct {
-- u64 nipe_rsvd: 26, /* unused */
-+ __u64 nipe_rsvd: 26, /* unused */
- nipe_lnk_reset: 1, /* link reset */
- nipe_intl_err: 1, /* internal error */
- nipe_bad_msg: 1, /* bad message */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubpi.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubpi.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubpi.h 2003-12-15 12:47:02.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubpi.h 2004-08-26 05:26:36.000000000 -0500
-@@ -312,7 +312,7 @@
- */
-
- struct err_stack_format {
-- u64 sk_addr : 33, /* address */
-+ __u64 sk_addr : 33, /* address */
- sk_cmd : 8, /* message command */
- sk_crb_sts : 10, /* status from RRB or WRB */
- sk_rw_rb : 1, /* RRB == 0, WRB == 1 */
-@@ -323,12 +323,12 @@
- };
-
- typedef union pi_err_stack {
-- u64 pi_stk_word;
-+ __u64 pi_stk_word;
- struct err_stack_format pi_stk_fmt;
- } pi_err_stack_t;
-
- struct err_status0_format {
-- u64 s0_valid : 1, /* Valid */
-+ __u64 s0_valid : 1, /* Valid */
- s0_ovr_run : 1, /* Overrun, spooled to memory */
- s0_addr : 37, /* address */
- s0_cmd : 8, /* message command */
-@@ -338,12 +338,12 @@
- };
-
- typedef union pi_err_stat0 {
-- u64 pi_stat0_word;
-+ __u64 pi_stat0_word;
- struct err_status0_format pi_stat0_fmt;
- } pi_err_stat0_t;
-
- struct err_status1_format {
-- u64 s1_src : 11, /* message source */
-+ __u64 s1_src : 11, /* message source */
- s1_crb_sts : 10, /* status from RRB or WRB */
- s1_rw_rb : 1, /* RRB == 0, WRB == 1 */
- s1_crb_num : 3, /* WRB (0 to 7) or RRB (0 to 4) */
-@@ -353,11 +353,11 @@
- };
-
- typedef union pi_err_stat1 {
-- u64 pi_stat1_word;
-+ __u64 pi_stat1_word;
- struct err_status1_format pi_stat1_fmt;
- } pi_err_stat1_t;
-
--typedef u64 rtc_time_t;
-+typedef __u64 rtc_time_t;
-
- #endif /* !__ASSEMBLY__ */
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/stackframe.h linux-libc-headers-2.6.8.0/include/asm-mips/stackframe.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/stackframe.h 2004-08-18 13:15:41.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/stackframe.h 2004-08-26 05:14:41.000000000 -0500
-@@ -25,7 +25,7 @@
-
- .macro SAVE_TEMP
- mfhi v1
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- LONG_S $8, PT_R8(sp)
- LONG_S $9, PT_R9(sp)
- #endif
-@@ -55,7 +55,7 @@
-
- #ifdef CONFIG_SMP
- .macro get_saved_sp /* SMP variation */
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- mfc0 k0, CP0_CONTEXT
- lui k1, %hi(kernelsp)
- srl k0, k0, 23
-@@ -63,7 +63,7 @@
- addu k1, k0
- LONG_L k1, %lo(kernelsp)(k1)
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- MFC0 k1, CP0_CONTEXT
- dsra k1, 23
- lui k0, %hi(pgd_current)
-@@ -76,13 +76,13 @@
- .endm
-
- .macro set_saved_sp stackp temp temp2
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- mfc0 \temp, CP0_CONTEXT
- srl \temp, 23
- sll \temp, 2
- LONG_S \stackp, kernelsp(\temp)
- #endif
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- lw \temp, TI_CPU(gp)
- dsll \temp, 3
- lui \temp2, %hi(kernelsp)
-@@ -127,7 +127,7 @@
- LONG_S $6, PT_R6(sp)
- MFC0 v1, CP0_EPC
- LONG_S $7, PT_R7(sp)
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- LONG_S $8, PT_R8(sp)
- LONG_S $9, PT_R9(sp)
- #endif
-@@ -156,7 +156,7 @@
-
- .macro RESTORE_TEMP
- LONG_L $24, PT_LO(sp)
--#ifdef CONFIG_MIPS32
-+#ifndef __mips64
- LONG_L $8, PT_R8(sp)
- LONG_L $9, PT_R9(sp)
- #endif
-@@ -204,7 +204,7 @@
- LONG_L $31, PT_R31(sp)
- LONG_L $28, PT_R28(sp)
- LONG_L $25, PT_R25(sp)
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- LONG_L $8, PT_R8(sp)
- LONG_L $9, PT_R9(sp)
- #endif
-@@ -249,7 +249,7 @@
- LONG_L $31, PT_R31(sp)
- LONG_L $28, PT_R28(sp)
- LONG_L $25, PT_R25(sp)
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- LONG_L $8, PT_R8(sp)
- LONG_L $9, PT_R9(sp)
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/system.h linux-libc-headers-2.6.8.0/include/asm-mips/system.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/system.h 2004-08-18 13:15:42.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/system.h 2004-08-28 18:13:39.000000000 -0500
-@@ -15,10 +15,11 @@
- #include <asm/sgidefs.h>
-
- #include <linux/kernel.h>
-+#include <linux/linkage.h>
-
- #include <asm/addrspace.h>
- #include <asm/ptrace.h>
--#include <asm/hazards.h>
-+#include <asm/types.h>
-
- __asm__ (
- ".macro\tlocal_irq_enable\n\t"
-@@ -311,7 +312,7 @@
- return retval;
- }
-
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- static inline __u64 __xchg_u64(volatile __u64 * m, __u64 val)
- {
- __u64 retval;
-@@ -406,7 +407,7 @@
- return retval;
- }
-
--#ifdef CONFIG_MIPS64
-+#ifdef __mips64
- static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old,
- unsigned long new)
- {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/tx4927/tx4927_mips.h linux-libc-headers-2.6.8.0/include/asm-mips/tx4927/tx4927_mips.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/tx4927/tx4927_mips.h 2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/tx4927/tx4927_mips.h 2004-08-26 05:22:30.000000000 -0500
-@@ -36,15 +36,15 @@
- ".set\tmips0");
- }
-
--#define reg_rd08(r) ((u8 )(*((vu8 *)(r))))
--#define reg_rd16(r) ((u16)(*((vu16*)(r))))
--#define reg_rd32(r) ((u32)(*((vu32*)(r))))
--#define reg_rd64(r) ((u64)(*((vu64*)(r))))
-+#define reg_rd08(r) ((__u8 )(*((vu8 *)(r))))
-+#define reg_rd16(r) ((__u16)(*((vu16*)(r))))
-+#define reg_rd32(r) ((__u32)(*((vu32*)(r))))
-+#define reg_rd64(r) ((__u64)(*((vu64*)(r))))
-
--#define reg_wr08(r,v) ((*((vu8 *)(r)))=((u8 )(v)))
--#define reg_wr16(r,v) ((*((vu16*)(r)))=((u16)(v)))
--#define reg_wr32(r,v) ((*((vu32*)(r)))=((u32)(v)))
--#define reg_wr64(r,v) ((*((vu64*)(r)))=((u64)(v)))
-+#define reg_wr08(r,v) ((*((vu8 *)(r)))=((__u8 )(v)))
-+#define reg_wr16(r,v) ((*((vu16*)(r)))=((__u16)(v)))
-+#define reg_wr32(r,v) ((*((vu32*)(r)))=((__u32)(v)))
-+#define reg_wr64(r,v) ((*((vu64*)(r)))=((__u64)(v)))
-
- typedef volatile __signed char vs8;
- typedef volatile unsigned char vu8;
-@@ -55,10 +55,10 @@
- typedef volatile __signed int vs32;
- typedef volatile unsigned int vu32;
-
--typedef s8 s08;
-+typedef __s8 s08;
- typedef vs8 vs08;
-
--typedef u8 u08;
-+typedef __u8 u08;
- typedef vu8 vu08;
-
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/unaligned.h linux-libc-headers-2.6.8.0/include/asm-mips/unaligned.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/unaligned.h 2004-08-15 15:38:27.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/unaligned.h 2004-08-26 05:22:21.000000000 -0500
-@@ -17,7 +17,7 @@
- *
- * This macro should be used for accessing values larger in size than
- * single bytes at locations that are expected to be improperly aligned,
-- * e.g. retrieving a u16 value from a location not u16-aligned.
-+ * e.g. retrieving a __u16 value from a location not __u16-aligned.
- *
- * Note that unaligned accesses can be very expensive on some architectures.
- */
-@@ -31,7 +31,7 @@
- *
- * This macro should be used for placing values larger in size than
- * single bytes at locations that are expected to be improperly aligned,
-- * e.g. writing a u16 value to a location not u16-aligned.
-+ * e.g. writing a __u16 value to a location not __u16-aligned.
- *
- * Note that unaligned accesses can be very expensive on some architectures.
- */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/xtalk/xwidget.h linux-libc-headers-2.6.8.0/include/asm-mips/xtalk/xwidget.h
---- linux-libc-headers-2.6.8.0-dist/include/asm-mips/xtalk/xwidget.h 2003-12-15 12:47:03.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/asm-mips/xtalk/xwidget.h 2004-08-26 05:23:33.000000000 -0500
-@@ -92,7 +92,7 @@
- * defined here
- */
- #ifndef __ASSEMBLY__
--typedef u32 widgetreg_t;
-+typedef __u32 widgetreg_t;
-
- /* widget configuration registers */
- typedef volatile struct widget_cfg {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/acpi.h linux-libc-headers-2.6.8.0/include/linux/acpi.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/acpi.h 2004-08-18 13:16:01.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/acpi.h 2004-08-26 05:41:49.000000000 -0500
-@@ -51,49 +51,49 @@
-
- struct acpi_table_rsdp {
- char signature[8];
-- u8 checksum;
-+ __u8 checksum;
- char oem_id[6];
-- u8 revision;
-- u32 rsdt_address;
-+ __u8 revision;
-+ __u32 rsdt_address;
- } __attribute__ ((packed));
-
- struct acpi20_table_rsdp {
- char signature[8];
-- u8 checksum;
-+ __u8 checksum;
- char oem_id[6];
-- u8 revision;
-- u32 rsdt_address;
-- u32 length;
-- u64 xsdt_address;
-- u8 ext_checksum;
-- u8 reserved[3];
-+ __u8 revision;
-+ __u32 rsdt_address;
-+ __u32 length;
-+ __u64 xsdt_address;
-+ __u8 ext_checksum;
-+ __u8 reserved[3];
- } __attribute__ ((packed));
-
- typedef struct {
-- u8 type;
-- u8 length;
-+ __u8 type;
-+ __u8 length;
- } __attribute__ ((packed)) acpi_table_entry_header;
-
- /* Root System Description Table (RSDT) */
-
- struct acpi_table_rsdt {
- struct acpi_table_header header;
-- u32 entry[8];
-+ __u32 entry[8];
- } __attribute__ ((packed));
-
- /* Extended System Description Table (XSDT) */
-
- struct acpi_table_xsdt {
- struct acpi_table_header header;
-- u64 entry[1];
-+ __u64 entry[1];
- } __attribute__ ((packed));
-
- /* Fixed ACPI Description Table (FADT) */
-
- struct acpi_table_fadt {
- struct acpi_table_header header;
-- u32 facs_addr;
-- u32 dsdt_addr;
-+ __u32 facs_addr;
-+ __u32 dsdt_addr;
- /* ... */
- } __attribute__ ((packed));
-
-@@ -101,10 +101,10 @@
-
- struct acpi_table_madt {
- struct acpi_table_header header;
-- u32 lapic_address;
-+ __u32 lapic_address;
- struct {
-- u32 pcat_compat:1;
-- u32 reserved:31;
-+ __u32 pcat_compat:1;
-+ __u32 reserved:31;
- } flags;
- } __attribute__ ((packed));
-
-@@ -122,85 +122,85 @@
- };
-
- typedef struct {
-- u16 polarity:2;
-- u16 trigger:2;
-- u16 reserved:12;
-+ __u16 polarity:2;
-+ __u16 trigger:2;
-+ __u16 reserved:12;
- } __attribute__ ((packed)) acpi_interrupt_flags;
-
- struct acpi_table_lapic {
- acpi_table_entry_header header;
-- u8 acpi_id;
-- u8 id;
-+ __u8 acpi_id;
-+ __u8 id;
- struct {
-- u32 enabled:1;
-- u32 reserved:31;
-+ __u32 enabled:1;
-+ __u32 reserved:31;
- } flags;
- } __attribute__ ((packed));
-
- struct acpi_table_ioapic {
- acpi_table_entry_header header;
-- u8 id;
-- u8 reserved;
-- u32 address;
-- u32 global_irq_base;
-+ __u8 id;
-+ __u8 reserved;
-+ __u32 address;
-+ __u32 global_irq_base;
- } __attribute__ ((packed));
-
- struct acpi_table_int_src_ovr {
- acpi_table_entry_header header;
-- u8 bus;
-- u8 bus_irq;
-- u32 global_irq;
-+ __u8 bus;
-+ __u8 bus_irq;
-+ __u32 global_irq;
- acpi_interrupt_flags flags;
- } __attribute__ ((packed));
-
- struct acpi_table_nmi_src {
- acpi_table_entry_header header;
- acpi_interrupt_flags flags;
-- u32 global_irq;
-+ __u32 global_irq;
- } __attribute__ ((packed));
-
- struct acpi_table_lapic_nmi {
- acpi_table_entry_header header;
-- u8 acpi_id;
-+ __u8 acpi_id;
- acpi_interrupt_flags flags;
-- u8 lint;
-+ __u8 lint;
- } __attribute__ ((packed));
-
- struct acpi_table_lapic_addr_ovr {
- acpi_table_entry_header header;
-- u8 reserved[2];
-- u64 address;
-+ __u8 reserved[2];
-+ __u64 address;
- } __attribute__ ((packed));
-
- struct acpi_table_iosapic {
- acpi_table_entry_header header;
-- u8 id;
-- u8 reserved;
-- u32 global_irq_base;
-- u64 address;
-+ __u8 id;
-+ __u8 reserved;
-+ __u32 global_irq_base;
-+ __u64 address;
- } __attribute__ ((packed));
-
- struct acpi_table_lsapic {
- acpi_table_entry_header header;
-- u8 acpi_id;
-- u8 id;
-- u8 eid;
-- u8 reserved[3];
-+ __u8 acpi_id;
-+ __u8 id;
-+ __u8 eid;
-+ __u8 reserved[3];
- struct {
-- u32 enabled:1;
-- u32 reserved:31;
-+ __u32 enabled:1;
-+ __u32 reserved:31;
- } flags;
- } __attribute__ ((packed));
-
- struct acpi_table_plat_int_src {
- acpi_table_entry_header header;
- acpi_interrupt_flags flags;
-- u8 type; /* See acpi_interrupt_type */
-- u8 id;
-- u8 eid;
-- u8 iosapic_vector;
-- u32 global_irq;
-- u32 reserved;
-+ __u8 type; /* See acpi_interrupt_type */
-+ __u8 id;
-+ __u8 eid;
-+ __u8 iosapic_vector;
-+ __u32 global_irq;
-+ __u32 reserved;
- } __attribute__ ((packed));
-
- enum acpi_interrupt_id {
-@@ -213,21 +213,21 @@
- #define ACPI_SPACE_MEM 0
-
- struct acpi_gen_regaddr {
-- u8 space_id;
-- u8 bit_width;
-- u8 bit_offset;
-- u8 resv;
-- u32 addrl;
-- u32 addrh;
-+ __u8 space_id;
-+ __u8 bit_width;
-+ __u8 bit_offset;
-+ __u8 resv;
-+ __u32 addrl;
-+ __u32 addrh;
- } __attribute__ ((packed));
-
- struct acpi_table_hpet {
- struct acpi_table_header header;
-- u32 id;
-+ __u32 id;
- struct acpi_gen_regaddr addr;
-- u8 number;
-- u16 min_tick;
-- u8 page_protect;
-+ __u8 number;
-+ __u16 min_tick;
-+ __u8 page_protect;
- } __attribute__ ((packed));
-
- /*
-@@ -236,17 +236,17 @@
- */
- struct acpi_table_sbf
- {
-- u8 sbf_signature[4];
-- u32 sbf_len;
-- u8 sbf_revision;
-- u8 sbf_csum;
-- u8 sbf_oemid[6];
-- u8 sbf_oemtable[8];
-- u8 sbf_revdata[4];
-- u8 sbf_creator[4];
-- u8 sbf_crearev[4];
-- u8 sbf_cmos;
-- u8 sbf_spare[3];
-+ __u8 sbf_signature[4];
-+ __u32 sbf_len;
-+ __u8 sbf_revision;
-+ __u8 sbf_csum;
-+ __u8 sbf_oemid[6];
-+ __u8 sbf_oemtable[8];
-+ __u8 sbf_revdata[4];
-+ __u8 sbf_creator[4];
-+ __u8 sbf_crearev[4];
-+ __u8 sbf_cmos;
-+ __u8 sbf_spare[3];
- } __attribute__ ((packed));
-
- /*
-@@ -256,8 +256,8 @@
-
- struct acpi_table_srat {
- struct acpi_table_header header;
-- u32 table_revision;
-- u64 reserved;
-+ __u32 table_revision;
-+ __u64 reserved;
- } __attribute__ ((packed));
-
- enum acpi_srat_entry_id {
-@@ -268,31 +268,31 @@
-
- struct acpi_table_processor_affinity {
- acpi_table_entry_header header;
-- u8 proximity_domain;
-- u8 apic_id;
-+ __u8 proximity_domain;
-+ __u8 apic_id;
- struct {
-- u32 enabled:1;
-- u32 reserved:31;
-+ __u32 enabled:1;
-+ __u32 reserved:31;
- } flags;
-- u8 lsapic_eid;
-- u8 reserved[7];
-+ __u8 lsapic_eid;
-+ __u8 reserved[7];
- } __attribute__ ((packed));
-
- struct acpi_table_memory_affinity {
- acpi_table_entry_header header;
-- u8 proximity_domain;
-- u8 reserved1[5];
-- u32 base_addr_lo;
-- u32 base_addr_hi;
-- u32 length_lo;
-- u32 length_hi;
-- u32 memory_type; /* See acpi_address_range_id */
-+ __u8 proximity_domain;
-+ __u8 reserved1[5];
-+ __u32 base_addr_lo;
-+ __u32 base_addr_hi;
-+ __u32 length_lo;
-+ __u32 length_hi;
-+ __u32 memory_type; /* See acpi_address_range_id */
- struct {
-- u32 enabled:1;
-- u32 hot_pluggable:1;
-- u32 reserved:30;
-+ __u32 enabled:1;
-+ __u32 hot_pluggable:1;
-+ __u32 reserved:30;
- } flags;
-- u64 reserved2;
-+ __u64 reserved2;
- } __attribute__ ((packed));
-
- enum acpi_address_range_id {
-@@ -310,17 +310,17 @@
-
- struct acpi_table_slit {
- struct acpi_table_header header;
-- u64 localities;
-- u8 entry[1]; /* real size = localities^2 */
-+ __u64 localities;
-+ __u8 entry[1]; /* real size = localities^2 */
- } __attribute__ ((packed));
-
- /* Smart Battery Description Table (SBST) */
-
- struct acpi_table_sbst {
- struct acpi_table_header header;
-- u32 warning; /* Warn user */
-- u32 low; /* Critical sleep */
-- u32 critical; /* Critical shutdown */
-+ __u32 warning; /* Warn user */
-+ __u32 low; /* Critical sleep */
-+ __u32 critical; /* Critical shutdown */
- } __attribute__ ((packed));
-
- /* Embedded Controller Boot Resources Table (ECDT) */
-@@ -329,8 +329,8 @@
- struct acpi_table_header header;
- struct acpi_generic_address ec_control;
- struct acpi_generic_address ec_data;
-- u32 uid;
-- u8 gpe_bit;
-+ __u32 uid;
-+ __u8 gpe_bit;
- char ec_id[0];
- } __attribute__ ((packed));
-
-@@ -338,9 +338,9 @@
-
- struct acpi_table_mcfg {
- struct acpi_table_header header;
-- u8 reserved[8];
-- u32 base_address;
-- u32 base_reserved;
-+ __u8 reserved[8];
-+ __u32 base_address;
-+ __u32 base_reserved;
- } __attribute__ ((packed));
-
- /* Table Handlers */
-@@ -396,7 +396,7 @@
-
- extern int acpi_mp_config;
-
--extern u32 pci_mmcfg_base_addr;
-+extern __u32 pci_mmcfg_base_addr;
-
- extern int sbf_port ;
-
-@@ -411,20 +411,20 @@
-
- #endif /*!CONFIG_ACPI_BOOT*/
-
--unsigned int acpi_register_gsi (u32 gsi, int edge_level, int active_high_low);
--int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
-+unsigned int acpi_register_gsi (__u32 gsi, int edge_level, int active_high_low);
-+int acpi_gsi_to_irq (__u32 gsi, unsigned int *irq);
-
- #ifdef CONFIG_ACPI_PCI
-
- struct acpi_prt_entry {
- struct list_head node;
- struct acpi_pci_id id;
-- u8 pin;
-+ __u8 pin;
- struct {
- acpi_handle handle;
-- u32 index;
-+ __u32 index;
- } link;
-- u32 irq;
-+ __u32 irq;
- };
-
- struct acpi_prt_list {
-@@ -451,8 +451,8 @@
-
- #ifdef CONFIG_ACPI_EC
-
--int ec_read(u8 addr, u8 *val);
--int ec_write(u8 addr, u8 val);
-+int ec_read(__u8 addr, __u8 *val);
-+int ec_write(__u8 addr, __u8 val);
-
- #endif /*CONFIG_ACPI_EC*/
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_i.h linux-libc-headers-2.6.8.0/include/linux/affs_fs_i.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_i.h 2003-12-31 17:46:48.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/affs_fs_i.h 2004-08-26 05:41:49.000000000 -0500
-@@ -9,13 +9,13 @@
- //#define AFFS_CACHE_SIZE (4*4)
-
- #define AFFS_MAX_PREALLOC 32
--#define AFFS_LC_SIZE (AFFS_CACHE_SIZE/sizeof(u32)/2)
-+#define AFFS_LC_SIZE (AFFS_CACHE_SIZE/sizeof(__u32)/2)
- #define AFFS_AC_SIZE (AFFS_CACHE_SIZE/sizeof(struct affs_ext_key)/2)
- #define AFFS_AC_MASK (AFFS_AC_SIZE-1)
-
- struct affs_ext_key {
-- u32 ext; /* idx of the extended block */
-- u32 key; /* block number */
-+ __u32 ext; /* idx of the extended block */
-+ __u32 key; /* block number */
- };
-
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_sb.h linux-libc-headers-2.6.8.0/include/linux/affs_fs_sb.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_sb.h 2004-08-18 13:16:01.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/affs_fs_sb.h 2004-08-26 05:41:49.000000000 -0500
-@@ -9,8 +9,8 @@
- */
-
- struct affs_bm_info {
-- u32 bm_key; /* Disk block number */
-- u32 bm_free; /* Free blocks in here */
-+ __u32 bm_key; /* Disk block number */
-+ __u32 bm_free; /* Free blocks in here */
- };
-
- #define SF_INTL 0x0001 /* International filesystem. */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_hardblocks.h linux-libc-headers-2.6.8.0/include/linux/affs_hardblocks.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/affs_hardblocks.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/affs_hardblocks.h 2004-08-26 05:41:49.000000000 -0500
-@@ -4,59 +4,59 @@
- /* Just the needed definitions for the RDB of an Amiga HD. */
-
- struct RigidDiskBlock {
-- u32 rdb_ID;
-- u32 rdb_SummedLongs;
-- s32 rdb_ChkSum;
-- u32 rdb_HostID;
-- u32 rdb_BlockBytes;
-- u32 rdb_Flags;
-- u32 rdb_BadBlockList;
-- u32 rdb_PartitionList;
-- u32 rdb_FileSysHeaderList;
-- u32 rdb_DriveInit;
-- u32 rdb_Reserved1[6];
-- u32 rdb_Cylinders;
-- u32 rdb_Sectors;
-- u32 rdb_Heads;
-- u32 rdb_Interleave;
-- u32 rdb_Park;
-- u32 rdb_Reserved2[3];
-- u32 rdb_WritePreComp;
-- u32 rdb_ReducedWrite;
-- u32 rdb_StepRate;
-- u32 rdb_Reserved3[5];
-- u32 rdb_RDBBlocksLo;
-- u32 rdb_RDBBlocksHi;
-- u32 rdb_LoCylinder;
-- u32 rdb_HiCylinder;
-- u32 rdb_CylBlocks;
-- u32 rdb_AutoParkSeconds;
-- u32 rdb_HighRDSKBlock;
-- u32 rdb_Reserved4;
-+ __u32 rdb_ID;
-+ __u32 rdb_SummedLongs;
-+ __s32 rdb_ChkSum;
-+ __u32 rdb_HostID;
-+ __u32 rdb_BlockBytes;
-+ __u32 rdb_Flags;
-+ __u32 rdb_BadBlockList;
-+ __u32 rdb_PartitionList;
-+ __u32 rdb_FileSysHeaderList;
-+ __u32 rdb_DriveInit;
-+ __u32 rdb_Reserved1[6];
-+ __u32 rdb_Cylinders;
-+ __u32 rdb_Sectors;
-+ __u32 rdb_Heads;
-+ __u32 rdb_Interleave;
-+ __u32 rdb_Park;
-+ __u32 rdb_Reserved2[3];
-+ __u32 rdb_WritePreComp;
-+ __u32 rdb_ReducedWrite;
-+ __u32 rdb_StepRate;
-+ __u32 rdb_Reserved3[5];
-+ __u32 rdb_RDBBlocksLo;
-+ __u32 rdb_RDBBlocksHi;
-+ __u32 rdb_LoCylinder;
-+ __u32 rdb_HiCylinder;
-+ __u32 rdb_CylBlocks;
-+ __u32 rdb_AutoParkSeconds;
-+ __u32 rdb_HighRDSKBlock;
-+ __u32 rdb_Reserved4;
- char rdb_DiskVendor[8];
- char rdb_DiskProduct[16];
- char rdb_DiskRevision[4];
- char rdb_ControllerVendor[8];
- char rdb_ControllerProduct[16];
- char rdb_ControllerRevision[4];
-- u32 rdb_Reserved5[10];
-+ __u32 rdb_Reserved5[10];
- };
-
- #define IDNAME_RIGIDDISK 0x5244534B /* "RDSK" */
-
- struct PartitionBlock {
-- u32 pb_ID;
-- u32 pb_SummedLongs;
-- s32 pb_ChkSum;
-- u32 pb_HostID;
-- u32 pb_Next;
-- u32 pb_Flags;
-- u32 pb_Reserved1[2];
-- u32 pb_DevFlags;
-- u8 pb_DriveName[32];
-- u32 pb_Reserved2[15];
-- u32 pb_Environment[17];
-- u32 pb_EReserved[15];
-+ __u32 pb_ID;
-+ __u32 pb_SummedLongs;
-+ __s32 pb_ChkSum;
-+ __u32 pb_HostID;
-+ __u32 pb_Next;
-+ __u32 pb_Flags;
-+ __u32 pb_Reserved1[2];
-+ __u32 pb_DevFlags;
-+ __u8 pb_DriveName[32];
-+ __u32 pb_Reserved2[15];
-+ __u32 pb_Environment[17];
-+ __u32 pb_EReserved[15];
- };
-
- #define IDNAME_PARTITION 0x50415254 /* "PART" */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/amigaffs.h linux-libc-headers-2.6.8.0/include/linux/amigaffs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/amigaffs.h 2003-12-31 17:46:48.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/amigaffs.h 2004-08-26 05:41:49.000000000 -0500
-@@ -64,90 +64,90 @@
- #define AFFS_DATA(bh) (((struct affs_data_head *)(bh)->b_data)->data)
-
- struct affs_date {
-- u32 days;
-- u32 mins;
-- u32 ticks;
-+ __u32 days;
-+ __u32 mins;
-+ __u32 ticks;
- };
-
- struct affs_short_date {
-- u16 days;
-- u16 mins;
-- u16 ticks;
-+ __u16 days;
-+ __u16 mins;
-+ __u16 ticks;
- };
-
- struct affs_root_head {
-- u32 ptype;
-- u32 spare1;
-- u32 spare2;
-- u32 hash_size;
-- u32 spare3;
-- u32 checksum;
-- u32 hashtable[1];
-+ __u32 ptype;
-+ __u32 spare1;
-+ __u32 spare2;
-+ __u32 hash_size;
-+ __u32 spare3;
-+ __u32 checksum;
-+ __u32 hashtable[1];
- };
-
- struct affs_root_tail {
-- u32 bm_flag;
-- u32 bm_blk[AFFS_ROOT_BMAPS];
-- u32 bm_ext;
-+ __u32 bm_flag;
-+ __u32 bm_blk[AFFS_ROOT_BMAPS];
-+ __u32 bm_ext;
- struct affs_date root_change;
-- u8 disk_name[32];
-- u32 spare1;
-- u32 spare2;
-+ __u8 disk_name[32];
-+ __u32 spare1;
-+ __u32 spare2;
- struct affs_date disk_change;
- struct affs_date disk_create;
-- u32 spare3;
-- u32 spare4;
-- u32 dcache;
-- u32 stype;
-+ __u32 spare3;
-+ __u32 spare4;
-+ __u32 dcache;
-+ __u32 stype;
- };
-
- struct affs_head {
-- u32 ptype;
-- u32 key;
-- u32 block_count;
-- u32 spare1;
-- u32 first_data;
-- u32 checksum;
-- u32 table[1];
-+ __u32 ptype;
-+ __u32 key;
-+ __u32 block_count;
-+ __u32 spare1;
-+ __u32 first_data;
-+ __u32 checksum;
-+ __u32 table[1];
- };
-
- struct affs_tail {
-- u32 spare1;
-- u16 uid;
-- u16 gid;
-- u32 protect;
-- u32 size;
-- u8 comment[92];
-+ __u32 spare1;
-+ __u16 uid;
-+ __u16 gid;
-+ __u32 protect;
-+ __u32 size;
-+ __u8 comment[92];
- struct affs_date change;
-- u8 name[32];
-- u32 spare2;
-- u32 original;
-- u32 link_chain;
-- u32 spare[5];
-- u32 hash_chain;
-- u32 parent;
-- u32 extension;
-- u32 stype;
-+ __u8 name[32];
-+ __u32 spare2;
-+ __u32 original;
-+ __u32 link_chain;
-+ __u32 spare[5];
-+ __u32 hash_chain;
-+ __u32 parent;
-+ __u32 extension;
-+ __u32 stype;
- };
-
- struct slink_front
- {
-- u32 ptype;
-- u32 key;
-- u32 spare1[3];
-- u32 checksum;
-- u8 symname[1]; /* depends on block size */
-+ __u32 ptype;
-+ __u32 key;
-+ __u32 spare1[3];
-+ __u32 checksum;
-+ __u8 symname[1]; /* depends on block size */
- };
-
- struct affs_data_head
- {
-- u32 ptype;
-- u32 key;
-- u32 sequence;
-- u32 size;
-- u32 next;
-- u32 checksum;
-- u8 data[1]; /* depends on block size */
-+ __u32 ptype;
-+ __u32 key;
-+ __u32 sequence;
-+ __u32 size;
-+ __u32 next;
-+ __u32 checksum;
-+ __u8 data[1]; /* depends on block size */
- };
-
- /* Permission bits */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/ata.h linux-libc-headers-2.6.8.0/include/linux/ata.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/ata.h 2004-08-18 13:16:01.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/ata.h 2004-08-26 05:41:49.000000000 -0500
-@@ -34,7 +34,7 @@
- ATA_MAX_PRD = 256, /* we could make these 256/256 */
- ATA_SECT_SIZE = 512,
- ATA_SECT_SIZE_MASK = (ATA_SECT_SIZE - 1),
-- ATA_SECT_DWORDS = ATA_SECT_SIZE / sizeof(u32),
-+ ATA_SECT_DWORDS = ATA_SECT_SIZE / sizeof(__u32),
-
- ATA_ID_WORDS = 256,
- ATA_ID_PROD_OFS = 27,
-@@ -176,31 +176,31 @@
- /* core structures */
-
- struct ata_prd {
-- u32 addr;
-- u32 flags_len;
-+ __u32 addr;
-+ __u32 flags_len;
- } __attribute__((packed));
-
- struct ata_taskfile {
- unsigned long flags; /* ATA_TFLAG_xxx */
-- u8 protocol; /* ATA_PROT_xxx */
-+ __u8 protocol; /* ATA_PROT_xxx */
-
-- u8 ctl; /* control reg */
-+ __u8 ctl; /* control reg */
-
-- u8 hob_feature; /* additional data */
-- u8 hob_nsect; /* to support LBA48 */
-- u8 hob_lbal;
-- u8 hob_lbam;
-- u8 hob_lbah;
-+ __u8 hob_feature; /* additional data */
-+ __u8 hob_nsect; /* to support LBA48 */
-+ __u8 hob_lbal;
-+ __u8 hob_lbam;
-+ __u8 hob_lbah;
-
-- u8 feature;
-- u8 nsect;
-- u8 lbal;
-- u8 lbam;
-- u8 lbah;
-+ __u8 feature;
-+ __u8 nsect;
-+ __u8 lbal;
-+ __u8 lbam;
-+ __u8 lbah;
-
-- u8 device;
-+ __u8 device;
-
-- u8 command; /* IO operation */
-+ __u8 command; /* IO operation */
- };
-
- #define ata_id_is_ata(dev) (((dev)->id[0] & (1 << 15)) == 0)
-@@ -213,12 +213,12 @@
- #define ata_id_has_dma(dev) ((dev)->id[49] & (1 << 8))
- #define ata_id_removeable(dev) ((dev)->id[0] & (1 << 7))
- #define ata_id_u32(dev,n) \
-- (((u32) (dev)->id[(n) + 1] << 16) | ((u32) (dev)->id[(n)]))
-+ (((__u32) (dev)->id[(n) + 1] << 16) | ((__u32) (dev)->id[(n)]))
- #define ata_id_u64(dev,n) \
-- ( ((u64) dev->id[(n) + 3] << 48) | \
-- ((u64) dev->id[(n) + 2] << 32) | \
-- ((u64) dev->id[(n) + 1] << 16) | \
-- ((u64) dev->id[(n) + 0]) )
-+ ( ((__u64) dev->id[(n) + 3] << 48) | \
-+ ((__u64) dev->id[(n) + 2] << 32) | \
-+ ((__u64) dev->id[(n) + 1] << 16) | \
-+ ((__u64) dev->id[(n) + 0]) )
-
- static inline int is_atapi_taskfile(struct ata_taskfile *tf)
- {
-@@ -226,7 +226,7 @@
- (tf->protocol == ATA_PROT_ATAPI_DMA);
- }
-
--static inline int ata_ok(u8 status)
-+static inline int ata_ok(__u8 status)
- {
- return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR))
- == ATA_DRDY);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/bitops.h linux-libc-headers-2.6.8.0/include/linux/bitops.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/bitops.h 2004-06-09 07:00:49.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/bitops.h 2004-08-26 05:41:49.000000000 -0500
-@@ -114,7 +114,7 @@
- return generic_hweight32((unsigned int)(w >> 32)) +
- generic_hweight32((unsigned int)w);
- #else
-- u64 res;
-+ __u64 res;
- res = (w & 0x5555555555555555ul) + ((w >> 1) & 0x5555555555555555ul);
- res = (res & 0x3333333333333333ul) + ((res >> 2) & 0x3333333333333333ul);
- res = (res & 0x0F0F0F0F0F0F0F0Ful) + ((res >> 4) & 0x0F0F0F0F0F0F0F0Ful);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/compat.h linux-libc-headers-2.6.8.0/include/linux/compat.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/compat.h 2004-06-09 07:00:49.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/compat.h 2004-08-26 05:41:49.000000000 -0500
-@@ -78,9 +78,9 @@
- };
-
- struct compat_dirent {
-- u32 d_ino;
-+ __u32 d_ino;
- compat_off_t d_off;
-- u16 d_reclen;
-+ __u16 d_reclen;
- char d_name[256];
- };
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/console.h linux-libc-headers-2.6.8.0/include/linux/console.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/console.h 2004-08-18 13:16:02.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/console.h 2004-08-26 05:41:49.000000000 -0500
-@@ -49,9 +49,9 @@
- int (*con_scrolldelta)(struct vc_data *, int);
- int (*con_set_origin)(struct vc_data *);
- void (*con_save_screen)(struct vc_data *);
-- u8 (*con_build_attr)(struct vc_data *, u8, u8, u8, u8, u8);
-- void (*con_invert_region)(struct vc_data *, u16 *, int);
-- u16 *(*con_screen_pos)(struct vc_data *, int);
-+ __u8 (*con_build_attr)(struct vc_data *, __u8, __u8, __u8, __u8, __u8);
-+ void (*con_invert_region)(struct vc_data *, __u16 *, int);
-+ __u16 *(*con_screen_pos)(struct vc_data *, int);
- unsigned long (*con_getxy)(struct vc_data *, unsigned long, int *, int *);
- };
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cpufreq.h linux-libc-headers-2.6.8.0/include/linux/cpufreq.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/cpufreq.h 2004-06-23 16:52:53.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/cpufreq.h 2004-08-26 05:41:49.000000000 -0500
-@@ -103,7 +103,7 @@
- unsigned int cpu; /* cpu nr */
- unsigned int old;
- unsigned int new;
-- u8 flags; /* flags of cpufreq_driver, see below. */
-+ __u8 flags; /* flags of cpufreq_driver, see below. */
- };
-
-
-@@ -120,13 +120,13 @@
- {
- #if BITS_PER_LONG == 32
-
-- u64 result = ((u64) old) * ((u64) mult);
-+ __u64 result = ((__u64) old) * ((__u64) mult);
- do_div(result, div);
- return (unsigned long) result;
-
- #elif BITS_PER_LONG == 64
-
-- unsigned long result = old * ((u64) mult);
-+ unsigned long result = old * ((__u64) mult);
- result /= div;
- return result;
-
-@@ -178,7 +178,7 @@
- struct cpufreq_driver {
- struct module *owner;
- char name[CPUFREQ_NAME_LEN];
-- u8 flags;
-+ __u8 flags;
-
- /* needed by all drivers */
- int (*init) (struct cpufreq_policy *policy);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cramfs_fs.h linux-libc-headers-2.6.8.0/include/linux/cramfs_fs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/cramfs_fs.h 2004-01-05 12:42:27.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/cramfs_fs.h 2004-08-26 05:41:49.000000000 -0500
-@@ -2,9 +2,9 @@
- #define __CRAMFS_H
-
-
--typedef unsigned char u8;
--typedef unsigned short u16;
--typedef unsigned int u32;
-+typedef unsigned char __u8;
-+typedef unsigned short __u16;
-+typedef unsigned int __u32;
-
-
- #define CRAMFS_MAGIC 0x28cd3d45 /* some random number */
-@@ -31,9 +31,9 @@
- * Reasonably terse representation of the inode data.
- */
- struct cramfs_inode {
-- u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH;
-+ __u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH;
- /* SIZE for device files is i_rdev */
-- u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH;
-+ __u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH;
- /* NAMELEN is the length of the file name, divided by 4 and
- rounded up. (cramfs doesn't support hard links.) */
- /* OFFSET: For symlinks and non-empty regular files, this
-@@ -42,27 +42,27 @@
- see README). For non-empty directories it is the offset
- (divided by 4) of the inode of the first file in that
- directory. For anything else, offset is zero. */
-- u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH;
-+ __u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH;
- };
-
- struct cramfs_info {
-- u32 crc;
-- u32 edition;
-- u32 blocks;
-- u32 files;
-+ __u32 crc;
-+ __u32 edition;
-+ __u32 blocks;
-+ __u32 files;
- };
-
- /*
- * Superblock information at the beginning of the FS.
- */
- struct cramfs_super {
-- u32 magic; /* 0x28cd3d45 - random number */
-- u32 size; /* length in bytes */
-- u32 flags; /* feature flags */
-- u32 future; /* reserved for future use */
-- u8 signature[16]; /* "Compressed ROMFS" */
-+ __u32 magic; /* 0x28cd3d45 - random number */
-+ __u32 size; /* length in bytes */
-+ __u32 flags; /* feature flags */
-+ __u32 future; /* reserved for future use */
-+ __u8 signature[16]; /* "Compressed ROMFS" */
- struct cramfs_info fsid; /* unique filesystem info */
-- u8 name[16]; /* user-defined name */
-+ __u8 name[16]; /* user-defined name */
- struct cramfs_inode root; /* root inode data */
- };
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/crc32.h linux-libc-headers-2.6.8.0/include/linux/crc32.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/crc32.h 2003-12-15 12:46:57.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/crc32.h 2004-08-26 05:41:49.000000000 -0500
-@@ -7,9 +7,9 @@
-
- #include <linux/types.h>
-
--extern u32 crc32_le(u32 crc, unsigned char const *p, size_t len);
--extern u32 crc32_be(u32 crc, unsigned char const *p, size_t len);
--extern u32 bitreverse(u32 in);
-+extern __u32 crc32_le(__u32 crc, unsigned char const *p, size_t len);
-+extern __u32 crc32_be(__u32 crc, unsigned char const *p, size_t len);
-+extern __u32 bitreverse(__u32 in);
-
- #define crc32(seed, data, length) crc32_le(seed, (unsigned char const *)data, length)
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/crypto.h linux-libc-headers-2.6.8.0/include/linux/crypto.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/crypto.h 2004-04-19 16:13:51.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/crypto.h 2004-08-26 05:41:49.000000000 -0500
-@@ -63,28 +63,28 @@
- struct cipher_alg {
- unsigned int cia_min_keysize;
- unsigned int cia_max_keysize;
-- int (*cia_setkey)(void *ctx, const u8 *key,
-- unsigned int keylen, u32 *flags);
-- void (*cia_encrypt)(void *ctx, u8 *dst, const u8 *src);
-- void (*cia_decrypt)(void *ctx, u8 *dst, const u8 *src);
-+ int (*cia_setkey)(void *ctx, const __u8 *key,
-+ unsigned int keylen, __u32 *flags);
-+ void (*cia_encrypt)(void *ctx, __u8 *dst, const __u8 *src);
-+ void (*cia_decrypt)(void *ctx, __u8 *dst, const __u8 *src);
- };
-
- struct digest_alg {
- unsigned int dia_digestsize;
- void (*dia_init)(void *ctx);
-- void (*dia_update)(void *ctx, const u8 *data, unsigned int len);
-- void (*dia_final)(void *ctx, u8 *out);
-- int (*dia_setkey)(void *ctx, const u8 *key,
-- unsigned int keylen, u32 *flags);
-+ void (*dia_update)(void *ctx, const __u8 *data, unsigned int len);
-+ void (*dia_final)(void *ctx, __u8 *out);
-+ int (*dia_setkey)(void *ctx, const __u8 *key,
-+ unsigned int keylen, __u32 *flags);
- };
-
- struct compress_alg {
- int (*coa_init)(void *ctx);
- void (*coa_exit)(void *ctx);
-- int (*coa_compress)(void *ctx, const u8 *src, unsigned int slen,
-- u8 *dst, unsigned int *dlen);
-- int (*coa_decompress)(void *ctx, const u8 *src, unsigned int slen,
-- u8 *dst, unsigned int *dlen);
-+ int (*coa_compress)(void *ctx, const __u8 *src, unsigned int slen,
-+ __u8 *dst, unsigned int *dlen);
-+ int (*coa_decompress)(void *ctx, const __u8 *src, unsigned int slen,
-+ __u8 *dst, unsigned int *dlen);
- };
-
- #define cra_cipher cra_u.cipher
-@@ -93,7 +93,7 @@
-
- struct crypto_alg {
- struct list_head cra_list;
-- u32 cra_flags;
-+ __u32 cra_flags;
- unsigned int cra_blocksize;
- unsigned int cra_ctxsize;
- const char cra_name[CRYPTO_MAX_ALG_NAME];
-@@ -116,7 +116,7 @@
- /*
- * Algorithm query interface.
- */
--int crypto_alg_available(const char *name, u32 flags);
-+int crypto_alg_available(const char *name, __u32 flags);
-
- /*
- * Transforms: user-instantiated objects which encapsulate algorithms
-@@ -128,9 +128,9 @@
- struct cipher_tfm {
- void *cit_iv;
- unsigned int cit_ivsize;
-- u32 cit_mode;
-+ __u32 cit_mode;
- int (*cit_setkey)(struct crypto_tfm *tfm,
-- const u8 *key, unsigned int keylen);
-+ const __u8 *key, unsigned int keylen);
- int (*cit_encrypt)(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
-@@ -138,7 +138,7 @@
- int (*cit_encrypt_iv)(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
-- unsigned int nbytes, u8 *iv);
-+ unsigned int nbytes, __u8 *iv);
- int (*cit_decrypt)(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
-@@ -146,19 +146,19 @@
- int (*cit_decrypt_iv)(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
-- unsigned int nbytes, u8 *iv);
-- void (*cit_xor_block)(u8 *dst, const u8 *src);
-+ unsigned int nbytes, __u8 *iv);
-+ void (*cit_xor_block)(__u8 *dst, const __u8 *src);
- };
-
- struct digest_tfm {
- void (*dit_init)(struct crypto_tfm *tfm);
- void (*dit_update)(struct crypto_tfm *tfm,
- struct scatterlist *sg, unsigned int nsg);
-- void (*dit_final)(struct crypto_tfm *tfm, u8 *out);
-+ void (*dit_final)(struct crypto_tfm *tfm, __u8 *out);
- void (*dit_digest)(struct crypto_tfm *tfm, struct scatterlist *sg,
-- unsigned int nsg, u8 *out);
-+ unsigned int nsg, __u8 *out);
- int (*dit_setkey)(struct crypto_tfm *tfm,
-- const u8 *key, unsigned int keylen);
-+ const __u8 *key, unsigned int keylen);
- #ifdef CONFIG_CRYPTO_HMAC
- void *dit_hmac_block;
- #endif
-@@ -166,11 +166,11 @@
-
- struct compress_tfm {
- int (*cot_compress)(struct crypto_tfm *tfm,
-- const u8 *src, unsigned int slen,
-- u8 *dst, unsigned int *dlen);
-+ const __u8 *src, unsigned int slen,
-+ __u8 *dst, unsigned int *dlen);
- int (*cot_decompress)(struct crypto_tfm *tfm,
-- const u8 *src, unsigned int slen,
-- u8 *dst, unsigned int *dlen);
-+ const __u8 *src, unsigned int slen,
-+ __u8 *dst, unsigned int *dlen);
- };
-
- #define crt_cipher crt_u.cipher
-@@ -179,7 +179,7 @@
-
- struct crypto_tfm {
-
-- u32 crt_flags;
-+ __u32 crt_flags;
-
- union {
- struct cipher_tfm cipher;
-@@ -203,7 +203,7 @@
- * crypto_free_tfm() frees up the transform and any associated resources,
- * then drops the refcount on the associated algorithm.
- */
--struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, u32 tfm_flags);
-+struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, __u32 tfm_flags);
- void crypto_free_tfm(struct crypto_tfm *tfm);
-
- /*
-@@ -219,7 +219,7 @@
- return module_name(tfm->__crt_alg->cra_module);
- }
-
--static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
-+static inline __u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
- {
- return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK;
- }
-@@ -270,7 +270,7 @@
- tfm->crt_digest.dit_update(tfm, sg, nsg);
- }
-
--static inline void crypto_digest_final(struct crypto_tfm *tfm, u8 *out)
-+static inline void crypto_digest_final(struct crypto_tfm *tfm, __u8 *out)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
- tfm->crt_digest.dit_final(tfm, out);
-@@ -278,14 +278,14 @@
-
- static inline void crypto_digest_digest(struct crypto_tfm *tfm,
- struct scatterlist *sg,
-- unsigned int nsg, u8 *out)
-+ unsigned int nsg, __u8 *out)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
- tfm->crt_digest.dit_digest(tfm, sg, nsg, out);
- }
-
- static inline int crypto_digest_setkey(struct crypto_tfm *tfm,
-- const u8 *key, unsigned int keylen)
-+ const __u8 *key, unsigned int keylen)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
- if (tfm->crt_digest.dit_setkey == NULL)
-@@ -294,7 +294,7 @@
- }
-
- static inline int crypto_cipher_setkey(struct crypto_tfm *tfm,
-- const u8 *key, unsigned int keylen)
-+ const __u8 *key, unsigned int keylen)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- return tfm->crt_cipher.cit_setkey(tfm, key, keylen);
-@@ -312,7 +312,7 @@
- static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
-- unsigned int nbytes, u8 *iv)
-+ unsigned int nbytes, __u8 *iv)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);
-@@ -331,7 +331,7 @@
- static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm,
- struct scatterlist *dst,
- struct scatterlist *src,
-- unsigned int nbytes, u8 *iv)
-+ unsigned int nbytes, __u8 *iv)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);
-@@ -339,30 +339,30 @@
- }
-
- static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm,
-- const u8 *src, unsigned int len)
-+ const __u8 *src, unsigned int len)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- memcpy(tfm->crt_cipher.cit_iv, src, len);
- }
-
- static inline void crypto_cipher_get_iv(struct crypto_tfm *tfm,
-- u8 *dst, unsigned int len)
-+ __u8 *dst, unsigned int len)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
- memcpy(dst, tfm->crt_cipher.cit_iv, len);
- }
-
- static inline int crypto_comp_compress(struct crypto_tfm *tfm,
-- const u8 *src, unsigned int slen,
-- u8 *dst, unsigned int *dlen)
-+ const __u8 *src, unsigned int slen,
-+ __u8 *dst, unsigned int *dlen)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS);
- return tfm->crt_compress.cot_compress(tfm, src, slen, dst, dlen);
- }
-
- static inline int crypto_comp_decompress(struct crypto_tfm *tfm,
-- const u8 *src, unsigned int slen,
-- u8 *dst, unsigned int *dlen)
-+ const __u8 *src, unsigned int slen,
-+ __u8 *dst, unsigned int *dlen)
- {
- BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS);
- return tfm->crt_compress.cot_decompress(tfm, src, slen, dst, dlen);
-@@ -372,13 +372,13 @@
- * HMAC support.
- */
- #ifdef CONFIG_CRYPTO_HMAC
--void crypto_hmac_init(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen);
-+void crypto_hmac_init(struct crypto_tfm *tfm, __u8 *key, unsigned int *keylen);
- void crypto_hmac_update(struct crypto_tfm *tfm,
- struct scatterlist *sg, unsigned int nsg);
--void crypto_hmac_final(struct crypto_tfm *tfm, u8 *key,
-- unsigned int *keylen, u8 *out);
--void crypto_hmac(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen,
-- struct scatterlist *sg, unsigned int nsg, u8 *out);
-+void crypto_hmac_final(struct crypto_tfm *tfm, __u8 *key,
-+ unsigned int *keylen, __u8 *out);
-+void crypto_hmac(struct crypto_tfm *tfm, __u8 *key, unsigned int *keylen,
-+ struct scatterlist *sg, unsigned int nsg, __u8 *out);
- #endif /* CONFIG_CRYPTO_HMAC */
-
- #endif /* _LINUX_CRYPTO_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cycx_drv.h linux-libc-headers-2.6.8.0/include/linux/cycx_drv.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/cycx_drv.h 2003-12-15 12:46:57.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/cycx_drv.h 2004-08-26 05:41:49.000000000 -0500
-@@ -14,9 +14,9 @@
- * ============================================================================
- * 1999/10/23 acme cycxhw_t cleanup
- * 1999/01/03 acme more judicious use of data types...
--* uclong, ucchar, etc deleted, the u8, u16, u32
-+* uclong, ucchar, etc deleted, the __u8, __u16, __u32
- * types are the portable way to go.
--* 1999/01/03 acme judicious use of data types... u16, u32, etc
-+* 1999/01/03 acme judicious use of data types... __u16, __u32, etc
- * 1998/12/26 acme FIXED_BUFFERS, CONF_OFFSET,
- * removal of cy_read{bwl}
- * 1998/08/08 acme Initial version.
-@@ -46,18 +46,18 @@
- * @reserved - reserved for future use
- */
- struct cycx_hw {
-- u32 fwid;
-+ __u32 fwid;
- int irq;
- void *dpmbase;
-- u32 dpmsize;
-- u32 reserved[5];
-+ __u32 dpmsize;
-+ __u32 reserved[5];
- };
-
- /* Function Prototypes */
--extern int cycx_setup(struct cycx_hw *hw, void *sfm, u32 len);
-+extern int cycx_setup(struct cycx_hw *hw, void *sfm, __u32 len);
- extern int cycx_down(struct cycx_hw *hw);
--extern int cycx_peek(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
--extern int cycx_poke(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
-+extern int cycx_peek(struct cycx_hw *hw, __u32 addr, void *buf, __u32 len);
-+extern int cycx_poke(struct cycx_hw *hw, __u32 addr, void *buf, __u32 len);
- extern int cycx_exec(void *addr);
-
- extern void cycx_inten(struct cycx_hw *hw);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cycx_x25.h linux-libc-headers-2.6.8.0/include/linux/cycx_x25.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/cycx_x25.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/cycx_x25.h 2004-08-26 05:41:49.000000000 -0500
-@@ -38,10 +38,10 @@
- /* Data Structures */
- /* X.25 Command Block. */
- struct cycx_x25_cmd {
-- u16 command PACKED;
-- u16 link PACKED; /* values: 0 or 1 */
-- u16 len PACKED; /* values: 0 thru 0x205 (517) */
-- u32 buf PACKED;
-+ __u16 command PACKED;
-+ __u16 link PACKED; /* values: 0 or 1 */
-+ __u16 len PACKED; /* values: 0 thru 0x205 (517) */
-+ __u32 buf PACKED;
- };
-
- /* Defines for the 'command' field. */
-@@ -92,34 +92,34 @@
- * @flags - see dosx25.doc, in portuguese, for details
- */
- struct cycx_x25_config {
-- u8 link PACKED;
-- u8 speed PACKED;
-- u8 clock PACKED;
-- u8 n2 PACKED;
-- u8 n2win PACKED;
-- u8 n3win PACKED;
-- u8 nvc PACKED;
-- u8 pktlen PACKED;
-- u8 locaddr PACKED;
-- u8 remaddr PACKED;
-- u16 t1 PACKED;
-- u16 t2 PACKED;
-- u8 t21 PACKED;
-- u8 npvc PACKED;
-- u8 t23 PACKED;
-- u8 flags PACKED;
-+ __u8 link PACKED;
-+ __u8 speed PACKED;
-+ __u8 clock PACKED;
-+ __u8 n2 PACKED;
-+ __u8 n2win PACKED;
-+ __u8 n3win PACKED;
-+ __u8 nvc PACKED;
-+ __u8 pktlen PACKED;
-+ __u8 locaddr PACKED;
-+ __u8 remaddr PACKED;
-+ __u16 t1 PACKED;
-+ __u16 t2 PACKED;
-+ __u8 t21 PACKED;
-+ __u8 npvc PACKED;
-+ __u8 t23 PACKED;
-+ __u8 flags PACKED;
- };
-
- struct cycx_x25_stats {
-- u16 rx_crc_errors PACKED;
-- u16 rx_over_errors PACKED;
-- u16 n2_tx_frames PACKED;
-- u16 n2_rx_frames PACKED;
-- u16 tx_timeouts PACKED;
-- u16 rx_timeouts PACKED;
-- u16 n3_tx_packets PACKED;
-- u16 n3_rx_packets PACKED;
-- u16 tx_aborts PACKED;
-- u16 rx_aborts PACKED;
-+ __u16 rx_crc_errors PACKED;
-+ __u16 rx_over_errors PACKED;
-+ __u16 n2_tx_frames PACKED;
-+ __u16 n2_rx_frames PACKED;
-+ __u16 tx_timeouts PACKED;
-+ __u16 rx_timeouts PACKED;
-+ __u16 n3_tx_packets PACKED;
-+ __u16 n3_rx_packets PACKED;
-+ __u16 tx_aborts PACKED;
-+ __u16 rx_aborts PACKED;
- };
- #endif /* _CYCX_X25_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/device.h linux-libc-headers-2.6.8.0/include/linux/device.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/device.h 2004-08-18 13:16:02.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/device.h 2004-08-26 05:41:49.000000000 -0500
-@@ -57,7 +57,7 @@
- struct device * (*add) (struct device * parent, char * bus_id);
- int (*hotplug) (struct device *dev, char **envp,
- int num_envp, char *buffer, int buffer_size);
-- int (*suspend)(struct device * dev, u32 state);
-+ int (*suspend)(struct device * dev, __u32 state);
- int (*resume)(struct device * dev);
- };
-
-@@ -105,8 +105,8 @@
- int (*probe) (struct device * dev);
- int (*remove) (struct device * dev);
- void (*shutdown) (struct device * dev);
-- int (*suspend) (struct device * dev, u32 state, u32 level);
-- int (*resume) (struct device * dev, u32 level);
-+ int (*suspend) (struct device * dev, __u32 state, __u32 level);
-+ int (*resume) (struct device * dev, __u32 level);
- };
-
-
-@@ -262,17 +262,17 @@
- void *platform_data; /* Platform specific data (e.g. ACPI,
- BIOS data relevant to device) */
- struct dev_pm_info power;
-- u32 power_state; /* Current operating state. In
-+ __u32 power_state; /* Current operating state. In
- ACPI-speak, this is D0-D3, D0
- being fully functional, and D3
- being off. */
-
- unsigned char *saved_state; /* saved device state */
-- u32 detach_state; /* State to enter when device is
-+ __u32 detach_state; /* State to enter when device is
- detached from its driver. */
-
-- u64 *dma_mask; /* dma mask (if dma'able device) */
-- u64 coherent_dma_mask;/* Like dma_mask, but for
-+ __u64 *dma_mask; /* dma mask (if dma'able device) */
-+ __u64 coherent_dma_mask;/* Like dma_mask, but for
- alloc_coherent mappings as
- not all hardware supports
- 64 bit addresses for consistent
-@@ -360,9 +360,9 @@
-
- struct platform_device {
- char * name;
-- u32 id;
-+ __u32 id;
- struct device dev;
-- u32 num_resources;
-+ __u32 num_resources;
- struct resource * resource;
- };
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/divert.h linux-libc-headers-2.6.8.0/include/linux/divert.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/divert.h 2004-06-09 07:00:49.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/divert.h 2004-08-26 05:41:49.000000000 -0500
-@@ -27,10 +27,10 @@
- {
- int divert; /* are we active */
- unsigned int protos; /* protocols */
-- u16 tcp_dst[MAX_DIVERT_PORTS]; /* specific tcp dst ports to divert */
-- u16 tcp_src[MAX_DIVERT_PORTS]; /* specific tcp src ports to divert */
-- u16 udp_dst[MAX_DIVERT_PORTS]; /* specific udp dst ports to divert */
-- u16 udp_src[MAX_DIVERT_PORTS]; /* specific udp src ports to divert */
-+ __u16 tcp_dst[MAX_DIVERT_PORTS]; /* specific tcp dst ports to divert */
-+ __u16 tcp_src[MAX_DIVERT_PORTS]; /* specific tcp src ports to divert */
-+ __u16 udp_dst[MAX_DIVERT_PORTS]; /* specific udp dst ports to divert */
-+ __u16 udp_src[MAX_DIVERT_PORTS]; /* specific udp src ports to divert */
- };
-
- /*
-@@ -40,12 +40,12 @@
-
- typedef union _divert_cf_arg
- {
-- s16 int16;
-- u16 uint16;
-- s32 int32;
-- u32 uint32;
-- s64 int64;
-- u64 uint64;
-+ __s16 int16;
-+ __u16 uint16;
-+ __s32 int32;
-+ __u32 uint32;
-+ __s64 int64;
-+ __u64 uint64;
- void *ptr;
- } divert_cf_arg;
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/eeprom.h linux-libc-headers-2.6.8.0/include/linux/eeprom.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/eeprom.h 2003-12-19 07:05:15.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/eeprom.h 2004-08-26 13:26:38.000000000 -0500
-@@ -26,15 +26,15 @@
- unsigned ee_state;
-
- spinlock_t *lock;
-- u32 *cache;
-+ __u32 *cache;
- };
-
-
--u8 eeprom_readb(struct eeprom *ee, unsigned address);
--void eeprom_read(struct eeprom *ee, unsigned address, u8 *bytes,
-+__u8 eeprom_readb(struct eeprom *ee, unsigned address);
-+void eeprom_read(struct eeprom *ee, unsigned address, __u8 *bytes,
- unsigned count);
--void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data);
--void eeprom_write(struct eeprom *ee, unsigned address, u8 *bytes,
-+void eeprom_writeb(struct eeprom *ee, unsigned address, __u8 data);
-+void eeprom_write(struct eeprom *ee, unsigned address, __u8 *bytes,
- unsigned count);
-
- /* The EEPROM commands include the alway-set leading bit. */
-@@ -56,10 +56,10 @@
- }
-
- /* foo. put this in a .c file */
--static inline void eeprom_update(struct eeprom *ee, u32 mask, int pol)
-+static inline void eeprom_update(struct eeprom *ee, __u32 mask, int pol)
- {
- unsigned long flags;
-- u32 data;
-+ __u32 data;
-
- spin_lock_irqsave(ee->lock, flags);
- data = *ee->cache;
-@@ -106,17 +106,17 @@
- eeprom_update(ee, ee->eedi, pol);
- }
-
--u16 eeprom_readw(struct eeprom *ee, unsigned address)
-+__u16 eeprom_readw(struct eeprom *ee, unsigned address)
- {
- unsigned i;
-- u16 res = 0;
-+ __u16 res = 0;
-
- eeprom_clk_lo(ee);
- eeprom_update(ee, ee->eesel, 1 ^ !!(ee->polarity & EEPOL_EESEL));
- eeprom_send_addr(ee, address);
-
- for (i=0; i<16; i++) {
-- u32 data;
-+ __u32 data;
- eeprom_clk_hi(ee);
- res <<= 1;
- data = readl(ee->addr);
-@@ -130,6 +130,6 @@
- }
-
-
--void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data)
-+void eeprom_writeb(struct eeprom *ee, unsigned address, __u8 data)
- {
- }
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/efi.h linux-libc-headers-2.6.8.0/include/linux/efi.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/efi.h 2004-08-18 13:16:02.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/efi.h 2004-08-26 05:42:08.000000000 -0500
-@@ -30,12 +30,12 @@
- #define EFI_NOT_FOUND (14 | (1UL << (BITS_PER_LONG-1)))
-
- typedef unsigned long efi_status_t;
--typedef u8 efi_bool_t;
--typedef u16 efi_char16_t; /* UNICODE character */
-+typedef __u8 efi_bool_t;
-+typedef __u16 efi_char16_t; /* UNICODE character */
-
-
- typedef struct {
-- u8 b[16];
-+ __u8 b[16];
- } efi_guid_t;
-
- #define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
-@@ -49,11 +49,11 @@
- * Generic EFI table header
- */
- typedef struct {
-- u64 signature;
-- u32 revision;
-- u32 headersize;
-- u32 crc32;
-- u32 reserved;
-+ __u64 signature;
-+ __u32 revision;
-+ __u32 headersize;
-+ __u32 crc32;
-+ __u32 reserved;
- } efi_table_hdr_t;
-
- /*
-@@ -78,14 +78,14 @@
- #define EFI_MAX_MEMORY_TYPE 14
-
- /* Attribute values: */
--#define EFI_MEMORY_UC ((u64)0x0000000000000001ULL) /* uncached */
--#define EFI_MEMORY_WC ((u64)0x0000000000000002ULL) /* write-coalescing */
--#define EFI_MEMORY_WT ((u64)0x0000000000000004ULL) /* write-through */
--#define EFI_MEMORY_WB ((u64)0x0000000000000008ULL) /* write-back */
--#define EFI_MEMORY_WP ((u64)0x0000000000001000ULL) /* write-protect */
--#define EFI_MEMORY_RP ((u64)0x0000000000002000ULL) /* read-protect */
--#define EFI_MEMORY_XP ((u64)0x0000000000004000ULL) /* execute-protect */
--#define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */
-+#define EFI_MEMORY_UC ((__u64)0x0000000000000001ULL) /* uncached */
-+#define EFI_MEMORY_WC ((__u64)0x0000000000000002ULL) /* write-coalescing */
-+#define EFI_MEMORY_WT ((__u64)0x0000000000000004ULL) /* write-through */
-+#define EFI_MEMORY_WB ((__u64)0x0000000000000008ULL) /* write-back */
-+#define EFI_MEMORY_WP ((__u64)0x0000000000001000ULL) /* write-protect */
-+#define EFI_MEMORY_RP ((__u64)0x0000000000002000ULL) /* read-protect */
-+#define EFI_MEMORY_XP ((__u64)0x0000000000004000ULL) /* execute-protect */
-+#define EFI_MEMORY_RUNTIME ((__u64)0x8000000000000000ULL) /* range requires runtime mapping */
- #define EFI_MEMORY_DESCRIPTOR_VERSION 1
-
- #define EFI_PAGE_SHIFT 12
-@@ -96,14 +96,14 @@
- * the case in ia64. Need to have this fixed in the f/w.
- */
- typedef struct {
-- u32 type;
-- u32 pad;
-- u64 phys_addr;
-- u64 virt_addr;
-- u64 num_pages;
-- u64 attribute;
-+ __u32 type;
-+ __u32 pad;
-+ __u64 phys_addr;
-+ __u64 virt_addr;
-+ __u64 num_pages;
-+ __u64 attribute;
- #if defined (__i386__)
-- u64 pad1;
-+ __u64 pad1;
- #endif
- } efi_memory_desc_t;
-
-@@ -117,23 +117,23 @@
- #define EFI_UNSPECIFIED_TIMEZONE 0x07ff
-
- typedef struct {
-- u16 year;
-- u8 month;
-- u8 day;
-- u8 hour;
-- u8 minute;
-- u8 second;
-- u8 pad1;
-- u32 nanosecond;
-- s16 timezone;
-- u8 daylight;
-- u8 pad2;
-+ __u16 year;
-+ __u8 month;
-+ __u8 day;
-+ __u8 hour;
-+ __u8 minute;
-+ __u8 second;
-+ __u8 pad1;
-+ __u32 nanosecond;
-+ __s16 timezone;
-+ __u8 daylight;
-+ __u8 pad2;
- } efi_time_t;
-
- typedef struct {
-- u32 resolution;
-- u32 accuracy;
-- u8 sets_to_zero;
-+ __u32 resolution;
-+ __u32 accuracy;
-+ __u8 sets_to_zero;
- } efi_time_cap_t;
-
- /*
-@@ -146,7 +146,7 @@
- /*
- * EFI Runtime Services table
- */
--#define EFI_RUNTIME_SERVICES_SIGNATURE ((u64)0x5652453544e5552ULL)
-+#define EFI_RUNTIME_SERVICES_SIGNATURE ((__u64)0x5652453544e5552ULL)
- #define EFI_RUNTIME_SERVICES_REVISION 0x00010000
-
- typedef struct {
-@@ -169,19 +169,19 @@
- typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending,
- efi_time_t *tm);
- typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm);
--typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr,
-+typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, __u32 *attr,
- unsigned long *data_size, void *data);
- typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name,
- efi_guid_t *vendor);
- typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor,
- unsigned long attr, unsigned long data_size,
- void *data);
--typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
-+typedef efi_status_t efi_get_next_high_mono_count_t (__u32 *count);
- typedef void efi_reset_system_t (int reset_type, efi_status_t status,
- unsigned long data_size, efi_char16_t *data);
- typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_size,
- unsigned long descriptor_size,
-- u32 descriptor_version,
-+ __u32 descriptor_version,
- efi_memory_desc_t *virtual_map);
-
- /*
-@@ -219,13 +219,13 @@
- unsigned long table;
- } efi_config_table_t;
-
--#define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
-+#define EFI_SYSTEM_TABLE_SIGNATURE ((__u64)0x5453595320494249ULL)
- #define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00)
-
- typedef struct {
- efi_table_hdr_t hdr;
- unsigned long fw_vendor; /* physical addr of CHAR16 vendor string */
-- u32 fw_revision;
-+ __u32 fw_revision;
- unsigned long con_in_handle;
- unsigned long con_in;
- unsigned long con_out_handle;
-@@ -293,9 +293,9 @@
- extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg);
- extern void efi_gettimeofday (struct timespec *ts);
- extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */
--extern u64 efi_get_iobase (void);
--extern u32 efi_mem_type (unsigned long phys_addr);
--extern u64 efi_mem_attributes (unsigned long phys_addr);
-+extern __u64 efi_get_iobase (void);
-+extern __u32 efi_mem_type (unsigned long phys_addr);
-+extern __u64 efi_mem_attributes (unsigned long phys_addr);
- extern int __init efi_uart_console_only (void);
- extern void efi_initialize_iomem_resources(struct resource *code_resource,
- struct resource *data_resource);
-@@ -368,9 +368,9 @@
- #define EFI_DEV_END_ENTIRE 0xFF
-
- struct efi_generic_dev_path {
-- u8 type;
-- u8 sub_type;
-- u16 length;
-+ __u8 type;
-+ __u8 sub_type;
-+ __u16 length;
- } __attribute ((packed));
-
- #endif /* _LINUX_EFI_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/eisa.h linux-libc-headers-2.6.8.0/include/linux/eisa.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/eisa.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/eisa.h 2004-08-26 05:42:08.000000000 -0500
-@@ -43,7 +43,7 @@
- int state;
- unsigned long base_addr;
- struct resource res[EISA_MAX_RESOURCES];
-- u64 dma_mask;
-+ __u64 dma_mask;
- struct device dev; /* generic device */
- #ifdef CONFIG_EISA_NAMES
- char pretty_name[DEVICE_NAME_SIZE];
-@@ -91,7 +91,7 @@
- unsigned long bus_base_addr;
- int slots; /* Max slot number */
- int force_probe; /* Probe even when no slot 0 */
-- u64 dma_mask; /* from bridge device */
-+ __u64 dma_mask; /* from bridge device */
- int bus_nr; /* Set by eisa_root_register */
- struct resource eisa_root_res; /* ditto */
- };
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/ethtool.h linux-libc-headers-2.6.8.0/include/linux/ethtool.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/ethtool.h 2004-06-23 16:52:54.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/ethtool.h 2004-08-26 13:29:11.000000000 -0500
-@@ -15,24 +15,24 @@
-
- /* This should work for both 32 and 64 bit userland. */
- struct ethtool_cmd {
-- u32 cmd;
-- u32 supported; /* Features this interface supports */
-- u32 advertising; /* Features this interface advertises */
-- u16 speed; /* The forced speed, 10Mb, 100Mb, gigabit */
-- u8 duplex; /* Duplex, half or full */
-- u8 port; /* Which connector port */
-- u8 phy_address;
-- u8 transceiver; /* Which transceiver to use */
-- u8 autoneg; /* Enable or disable autonegotiation */
-- u32 maxtxpkt; /* Tx pkts before generating tx int */
-- u32 maxrxpkt; /* Rx pkts before generating rx int */
-- u32 reserved[4];
-+ __u32 cmd;
-+ __u32 supported; /* Features this interface supports */
-+ __u32 advertising; /* Features this interface advertises */
-+ __u16 speed; /* The forced speed, 10Mb, 100Mb, gigabit */
-+ __u8 duplex; /* Duplex, half or full */
-+ __u8 port; /* Which connector port */
-+ __u8 phy_address;
-+ __u8 transceiver; /* Which transceiver to use */
-+ __u8 autoneg; /* Enable or disable autonegotiation */
-+ __u32 maxtxpkt; /* Tx pkts before generating tx int */
-+ __u32 maxrxpkt; /* Rx pkts before generating rx int */
-+ __u32 reserved[4];
- };
-
- #define ETHTOOL_BUSINFO_LEN 32
- /* these strings are set to whatever the driver author decides... */
- struct ethtool_drvinfo {
-- u32 cmd;
-+ __u32 cmd;
- char driver[32]; /* driver short name, "tulip", "eepro100" */
- char version[32]; /* driver version string */
- char fw_version[32]; /* firmware version string, if applicable */
-@@ -40,53 +40,53 @@
- /* For PCI devices, use pci_name(pci_dev). */
- char reserved1[32];
- char reserved2[16];
-- u32 n_stats; /* number of u64's from ETHTOOL_GSTATS */
-- u32 testinfo_len;
-- u32 eedump_len; /* Size of data from ETHTOOL_GEEPROM (bytes) */
-- u32 regdump_len; /* Size of data from ETHTOOL_GREGS (bytes) */
-+ __u32 n_stats; /* number of __u64's from ETHTOOL_GSTATS */
-+ __u32 testinfo_len;
-+ __u32 eedump_len; /* Size of data from ETHTOOL_GEEPROM (bytes) */
-+ __u32 regdump_len; /* Size of data from ETHTOOL_GREGS (bytes) */
- };
-
- #define SOPASS_MAX 6
- /* wake-on-lan settings */
- struct ethtool_wolinfo {
-- u32 cmd;
-- u32 supported;
-- u32 wolopts;
-- u8 sopass[SOPASS_MAX]; /* SecureOn(tm) password */
-+ __u32 cmd;
-+ __u32 supported;
-+ __u32 wolopts;
-+ __u8 sopass[SOPASS_MAX]; /* SecureOn(tm) password */
- };
-
- /* for passing single values */
- struct ethtool_value {
-- u32 cmd;
-- u32 data;
-+ __u32 cmd;
-+ __u32 data;
- };
-
- /* for passing big chunks of data */
- struct ethtool_regs {
-- u32 cmd;
-- u32 version; /* driver-specific, indicates different chips/revs */
-- u32 len; /* bytes */
-- u8 data[0];
-+ __u32 cmd;
-+ __u32 version; /* driver-specific, indicates different chips/revs */
-+ __u32 len; /* bytes */
-+ __u8 data[0];
- };
-
- /* for passing EEPROM chunks */
- struct ethtool_eeprom {
-- u32 cmd;
-- u32 magic;
-- u32 offset; /* in bytes */
-- u32 len; /* in bytes */
-- u8 data[0];
-+ __u32 cmd;
-+ __u32 magic;
-+ __u32 offset; /* in bytes */
-+ __u32 len; /* in bytes */
-+ __u8 data[0];
- };
-
- /* for configuring coalescing parameters of chip */
- struct ethtool_coalesce {
-- u32 cmd; /* ETHTOOL_{G,S}COALESCE */
-+ __u32 cmd; /* ETHTOOL_{G,S}COALESCE */
-
- /* How many usecs to delay an RX interrupt after
- * a packet arrives. If 0, only rx_max_coalesced_frames
- * is used.
- */
-- u32 rx_coalesce_usecs;
-+ __u32 rx_coalesce_usecs;
-
- /* How many packets to delay an RX interrupt after
- * a packet arrives. If 0, only rx_coalesce_usecs is
-@@ -94,21 +94,21 @@
- * to zero as this would cause RX interrupts to never be
- * generated.
- */
-- u32 rx_max_coalesced_frames;
-+ __u32 rx_max_coalesced_frames;
-
- /* Same as above two parameters, except that these values
- * apply while an IRQ is being serviced by the host. Not
- * all cards support this feature and the values are ignored
- * in that case.
- */
-- u32 rx_coalesce_usecs_irq;
-- u32 rx_max_coalesced_frames_irq;
-+ __u32 rx_coalesce_usecs_irq;
-+ __u32 rx_max_coalesced_frames_irq;
-
- /* How many usecs to delay a TX interrupt after
- * a packet is sent. If 0, only tx_max_coalesced_frames
- * is used.
- */
-- u32 tx_coalesce_usecs;
-+ __u32 tx_coalesce_usecs;
-
- /* How many packets to delay a TX interrupt after
- * a packet is sent. If 0, only tx_coalesce_usecs is
-@@ -116,22 +116,22 @@
- * to zero as this would cause TX interrupts to never be
- * generated.
- */
-- u32 tx_max_coalesced_frames;
-+ __u32 tx_max_coalesced_frames;
-
- /* Same as above two parameters, except that these values
- * apply while an IRQ is being serviced by the host. Not
- * all cards support this feature and the values are ignored
- * in that case.
- */
-- u32 tx_coalesce_usecs_irq;
-- u32 tx_max_coalesced_frames_irq;
-+ __u32 tx_coalesce_usecs_irq;
-+ __u32 tx_max_coalesced_frames_irq;
-
- /* How many usecs to delay in-memory statistics
- * block updates. Some drivers do not have an in-memory
- * statistic block, and in such cases this value is ignored.
- * This value must not be zero.
- */
-- u32 stats_block_coalesce_usecs;
-+ __u32 stats_block_coalesce_usecs;
-
- /* Adaptive RX/TX coalescing is an algorithm implemented by
- * some drivers to improve latency under low packet rates and
-@@ -140,18 +140,18 @@
- * not implemented by the driver causes these values to be
- * silently ignored.
- */
-- u32 use_adaptive_rx_coalesce;
-- u32 use_adaptive_tx_coalesce;
-+ __u32 use_adaptive_rx_coalesce;
-+ __u32 use_adaptive_tx_coalesce;
-
- /* When the packet rate (measured in packets per second)
- * is below pkt_rate_low, the {rx,tx}_*_low parameters are
- * used.
- */
-- u32 pkt_rate_low;
-- u32 rx_coalesce_usecs_low;
-- u32 rx_max_coalesced_frames_low;
-- u32 tx_coalesce_usecs_low;
-- u32 tx_max_coalesced_frames_low;
-+ __u32 pkt_rate_low;
-+ __u32 rx_coalesce_usecs_low;
-+ __u32 rx_max_coalesced_frames_low;
-+ __u32 tx_coalesce_usecs_low;
-+ __u32 tx_max_coalesced_frames_low;
-
- /* When the packet rate is below pkt_rate_high but above
- * pkt_rate_low (both measured in packets per second) the
-@@ -162,43 +162,43 @@
- * is above pkt_rate_high, the {rx,tx}_*_high parameters are
- * used.
- */
-- u32 pkt_rate_high;
-- u32 rx_coalesce_usecs_high;
-- u32 rx_max_coalesced_frames_high;
-- u32 tx_coalesce_usecs_high;
-- u32 tx_max_coalesced_frames_high;
-+ __u32 pkt_rate_high;
-+ __u32 rx_coalesce_usecs_high;
-+ __u32 rx_max_coalesced_frames_high;
-+ __u32 tx_coalesce_usecs_high;
-+ __u32 tx_max_coalesced_frames_high;
-
- /* How often to do adaptive coalescing packet rate sampling,
- * measured in seconds. Must not be zero.
- */
-- u32 rate_sample_interval;
-+ __u32 rate_sample_interval;
- };
-
- /* for configuring RX/TX ring parameters */
- struct ethtool_ringparam {
-- u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */
-+ __u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */
-
- /* Read only attributes. These indicate the maximum number
- * of pending RX/TX ring entries the driver will allow the
- * user to set.
- */
-- u32 rx_max_pending;
-- u32 rx_mini_max_pending;
-- u32 rx_jumbo_max_pending;
-- u32 tx_max_pending;
-+ __u32 rx_max_pending;
-+ __u32 rx_mini_max_pending;
-+ __u32 rx_jumbo_max_pending;
-+ __u32 tx_max_pending;
-
- /* Values changeable by the user. The valid values are
- * in the range 1 to the "*_max_pending" counterpart above.
- */
-- u32 rx_pending;
-- u32 rx_mini_pending;
-- u32 rx_jumbo_pending;
-- u32 tx_pending;
-+ __u32 rx_pending;
-+ __u32 rx_mini_pending;
-+ __u32 rx_jumbo_pending;
-+ __u32 tx_pending;
- };
-
- /* for configuring link flow control parameters */
- struct ethtool_pauseparam {
-- u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */
-+ __u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */
-
- /* If the link is being auto-negotiated (via ethtool_cmd.autoneg
- * being true) the user may set 'autonet' here non-zero to have the
-@@ -210,9 +210,9 @@
- * then {rx,tx}_pause force the driver to use/not-use pause
- * flow control.
- */
-- u32 autoneg;
-- u32 rx_pause;
-- u32 tx_pause;
-+ __u32 autoneg;
-+ __u32 rx_pause;
-+ __u32 tx_pause;
- };
-
- #define ETH_GSTRING_LEN 32
-@@ -223,10 +223,10 @@
-
- /* for passing string sets for data tagging */
- struct ethtool_gstrings {
-- u32 cmd; /* ETHTOOL_GSTRINGS */
-- u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/
-- u32 len; /* number of strings in the string set */
-- u8 data[0];
-+ __u32 cmd; /* ETHTOOL_GSTRINGS */
-+ __u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/
-+ __u32 len; /* number of strings in the string set */
-+ __u8 data[0];
- };
-
- enum ethtool_test_flags {
-@@ -236,30 +236,30 @@
-
- /* for requesting NIC test and getting results*/
- struct ethtool_test {
-- u32 cmd; /* ETHTOOL_TEST */
-- u32 flags; /* ETH_TEST_FL_xxx */
-- u32 reserved;
-- u32 len; /* result length, in number of u64 elements */
-- u64 data[0];
-+ __u32 cmd; /* ETHTOOL_TEST */
-+ __u32 flags; /* ETH_TEST_FL_xxx */
-+ __u32 reserved;
-+ __u32 len; /* result length, in number of __u64 elements */
-+ __u64 data[0];
- };
-
- /* for dumping NIC-specific statistics */
- struct ethtool_stats {
-- u32 cmd; /* ETHTOOL_GSTATS */
-- u32 n_stats; /* number of u64's being returned */
-- u64 data[0];
-+ __u32 cmd; /* ETHTOOL_GSTATS */
-+ __u32 n_stats; /* number of __u64's being returned */
-+ __u64 data[0];
- };
-
- struct net_device;
-
- /* Some generic methods drivers may use in their ethtool_ops */
--u32 ethtool_op_get_link(struct net_device *dev);
--u32 ethtool_op_get_tx_csum(struct net_device *dev);
--int ethtool_op_set_tx_csum(struct net_device *dev, u32 data);
--u32 ethtool_op_get_sg(struct net_device *dev);
--int ethtool_op_set_sg(struct net_device *dev, u32 data);
--u32 ethtool_op_get_tso(struct net_device *dev);
--int ethtool_op_set_tso(struct net_device *dev, u32 data);
-+__u32 ethtool_op_get_link(struct net_device *dev);
-+__u32 ethtool_op_get_tx_csum(struct net_device *dev);
-+int ethtool_op_set_tx_csum(struct net_device *dev, __u32 data);
-+__u32 ethtool_op_get_sg(struct net_device *dev);
-+int ethtool_op_set_sg(struct net_device *dev, __u32 data);
-+__u32 ethtool_op_get_tso(struct net_device *dev);
-+int ethtool_op_set_tso(struct net_device *dev, __u32 data);
-
- /**
- * ðtool_ops - Alter and report network device settings
-@@ -324,33 +324,33 @@
- void (*get_regs)(struct net_device *, struct ethtool_regs *, void *);
- void (*get_wol)(struct net_device *, struct ethtool_wolinfo *);
- int (*set_wol)(struct net_device *, struct ethtool_wolinfo *);
-- u32 (*get_msglevel)(struct net_device *);
-- void (*set_msglevel)(struct net_device *, u32);
-+ __u32 (*get_msglevel)(struct net_device *);
-+ void (*set_msglevel)(struct net_device *, __u32);
- int (*nway_reset)(struct net_device *);
-- u32 (*get_link)(struct net_device *);
-+ __u32 (*get_link)(struct net_device *);
- int (*get_eeprom_len)(struct net_device *);
-- int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
-- int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
-+ int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, __u8 *);
-+ int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, __u8 *);
- int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *);
- int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *);
- void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *);
- int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *);
- void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam*);
- int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam*);
-- u32 (*get_rx_csum)(struct net_device *);
-- int (*set_rx_csum)(struct net_device *, u32);
-- u32 (*get_tx_csum)(struct net_device *);
-- int (*set_tx_csum)(struct net_device *, u32);
-- u32 (*get_sg)(struct net_device *);
-- int (*set_sg)(struct net_device *, u32);
-- u32 (*get_tso)(struct net_device *);
-- int (*set_tso)(struct net_device *, u32);
-+ __u32 (*get_rx_csum)(struct net_device *);
-+ int (*set_rx_csum)(struct net_device *, __u32);
-+ __u32 (*get_tx_csum)(struct net_device *);
-+ int (*set_tx_csum)(struct net_device *, __u32);
-+ __u32 (*get_sg)(struct net_device *);
-+ int (*set_sg)(struct net_device *, __u32);
-+ __u32 (*get_tso)(struct net_device *);
-+ int (*set_tso)(struct net_device *, __u32);
- int (*self_test_count)(struct net_device *);
-- void (*self_test)(struct net_device *, struct ethtool_test *, u64 *);
-- void (*get_strings)(struct net_device *, u32 stringset, u8 *);
-- int (*phys_id)(struct net_device *, u32);
-+ void (*self_test)(struct net_device *, struct ethtool_test *, __u64 *);
-+ void (*get_strings)(struct net_device *, __u32 stringset, __u8 *);
-+ int (*phys_id)(struct net_device *, __u32);
- int (*get_stats_count)(struct net_device *);
-- void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
-+ void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, __u64 *);
- int (*begin)(struct net_device *);
- void (*complete)(struct net_device *);
- };
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/firmware.h linux-libc-headers-2.6.8.0/include/linux/firmware.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/firmware.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/firmware.h 2004-08-26 05:42:08.000000000 -0500
-@@ -5,7 +5,7 @@
- #define FIRMWARE_NAME_MAX 30
- struct firmware {
- size_t size;
-- u8 *data;
-+ __u8 *data;
- };
- int request_firmware(const struct firmware **fw, const char *name,
- struct device *device);
-@@ -15,5 +15,5 @@
- void (*cont)(const struct firmware *fw, void *context));
-
- void release_firmware(const struct firmware *fw);
--void register_firmware(const char *name, const u8 *data, size_t size);
-+void register_firmware(const char *name, const __u8 *data, size_t size);
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/fs.h linux-libc-headers-2.6.8.0/include/linux/fs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/fs.h 2004-08-18 13:16:02.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/fs.h 2004-08-26 05:42:08.000000000 -0500
-@@ -198,7 +198,7 @@
- /* A jump here: 108-111 have been used for various private purposes. */
- #define BLKBSZGET _IOR(0x12,112,size_t)
- #define BLKBSZSET _IOW(0x12,113,size_t)
--#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (u64 *arg) */
-+#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (__u64 *arg) */
-
- #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
- #define FIBMAP _IO(0x00,1) /* bmap access */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/i2c.h linux-libc-headers-2.6.8.0/include/linux/i2c.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/i2c.h 2004-06-23 16:52:54.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/i2c.h 2004-08-26 05:42:08.000000000 -0500
-@@ -70,36 +70,36 @@
- and probably just as fast.
- Note that we use i2c_adapter here, because you do not need a specific
- smbus adapter to call this function. */
--extern s32 i2c_smbus_xfer (struct i2c_adapter * adapter, u16 addr,
-+extern __s32 i2c_smbus_xfer (struct i2c_adapter * adapter, __u16 addr,
- unsigned short flags,
-- char read_write, u8 command, int size,
-+ char read_write, __u8 command, int size,
- union i2c_smbus_data * data);
-
- /* Now follow the 'nice' access routines. These also document the calling
- conventions of smbus_access. */
-
--extern s32 i2c_smbus_write_quick(struct i2c_client * client, u8 value);
--extern s32 i2c_smbus_read_byte(struct i2c_client * client);
--extern s32 i2c_smbus_write_byte(struct i2c_client * client, u8 value);
--extern s32 i2c_smbus_read_byte_data(struct i2c_client * client, u8 command);
--extern s32 i2c_smbus_write_byte_data(struct i2c_client * client,
-- u8 command, u8 value);
--extern s32 i2c_smbus_read_word_data(struct i2c_client * client, u8 command);
--extern s32 i2c_smbus_write_word_data(struct i2c_client * client,
-- u8 command, u16 value);
--extern s32 i2c_smbus_process_call(struct i2c_client * client,
-- u8 command, u16 value);
-+extern __s32 i2c_smbus_write_quick(struct i2c_client * client, __u8 value);
-+extern __s32 i2c_smbus_read_byte(struct i2c_client * client);
-+extern __s32 i2c_smbus_write_byte(struct i2c_client * client, __u8 value);
-+extern __s32 i2c_smbus_read_byte_data(struct i2c_client * client, __u8 command);
-+extern __s32 i2c_smbus_write_byte_data(struct i2c_client * client,
-+ __u8 command, __u8 value);
-+extern __s32 i2c_smbus_read_word_data(struct i2c_client * client, __u8 command);
-+extern __s32 i2c_smbus_write_word_data(struct i2c_client * client,
-+ __u8 command, __u16 value);
-+extern __s32 i2c_smbus_process_call(struct i2c_client * client,
-+ __u8 command, __u16 value);
- /* Returns the number of read bytes */
--extern s32 i2c_smbus_read_block_data(struct i2c_client * client,
-- u8 command, u8 *values);
--extern s32 i2c_smbus_write_block_data(struct i2c_client * client,
-- u8 command, u8 length,
-- u8 *values);
--extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
-- u8 command, u8 *values);
--extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
-- u8 command, u8 length,
-- u8 *values);
-+extern __s32 i2c_smbus_read_block_data(struct i2c_client * client,
-+ __u8 command, __u8 *values);
-+extern __s32 i2c_smbus_write_block_data(struct i2c_client * client,
-+ __u8 command, __u8 length,
-+ __u8 *values);
-+extern __s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
-+ __u8 command, __u8 *values);
-+extern __s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
-+ __u8 command, __u8 length,
-+ __u8 *values);
-
-
- /*
-@@ -203,9 +203,9 @@
- using common I2C messages */
- int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg msgs[],
- int num);
-- int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr,
-+ int (*smbus_xfer) (struct i2c_adapter *adap, __u16 addr,
- unsigned short flags, char read_write,
-- u8 command, int size, union i2c_smbus_data * data);
-+ __u8 command, int size, union i2c_smbus_data * data);
-
- /* --- these optional/future use for some adapter types.*/
- int (*slave_send)(struct i2c_adapter *,char*,int);
-@@ -215,7 +215,7 @@
- int (*algo_control)(struct i2c_adapter *, unsigned int, unsigned long);
-
- /* To determine what the adapter supports */
-- u32 (*functionality) (struct i2c_adapter *);
-+ __u32 (*functionality) (struct i2c_adapter *);
- };
-
- /*
-@@ -381,10 +381,10 @@
-
-
- /* Return the functionality mask */
--extern u32 i2c_get_functionality (struct i2c_adapter *adap);
-+extern __u32 i2c_get_functionality (struct i2c_adapter *adap);
-
- /* Return 1 if adapter supports everything we need, 0 if not. */
--extern int i2c_check_functionality (struct i2c_adapter *adap, u32 func);
-+extern int i2c_check_functionality (struct i2c_adapter *adap, __u32 func);
-
- /*
- * I2C Message - used for pure i2c transaction, also from /dev interface
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/i2o-dev.h linux-libc-headers-2.6.8.0/include/linux/i2o-dev.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/i2o-dev.h 2004-06-23 16:52:54.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/i2o-dev.h 2004-08-26 05:42:08.000000000 -0500
-@@ -29,7 +29,7 @@
- * I2O Control IOCTLs and structures
- */
- #define I2O_MAGIC_NUMBER 'i'
--#define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,u8[MAX_I2O_CONTROLLERS])
-+#define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,__u8[MAX_I2O_CONTROLLERS])
- #define I2OHRTGET _IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct)
- #define I2OLCTGET _IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct)
- #define I2OPARMSET _IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget)
-@@ -37,7 +37,7 @@
- #define I2OSWDL _IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer)
- #define I2OSWUL _IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer)
- #define I2OSWDEL _IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer)
--#define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,u32)
-+#define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,__u32)
- #define I2OHTML _IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html)
- #define I2OEVTREG _IOW(I2O_MAGIC_NUMBER,10,struct i2o_evt_id)
- #define I2OEVTGET _IOR(I2O_MAGIC_NUMBER,11,struct i2o_evt_info)
-@@ -129,65 +129,65 @@
- #define I2O_BUS_CARDBUS 7
- #define I2O_BUS_UNKNOWN 0x80
-
--typedef unsigned char u8;
--typedef unsigned short u16;
--typedef unsigned int u32;
-+typedef unsigned char __u8;
-+typedef unsigned short __u16;
-+typedef unsigned int __u32;
-
- typedef struct _i2o_pci_bus
- {
-- u8 PciFunctionNumber;
-- u8 PciDeviceNumber;
-- u8 PciBusNumber;
-- u8 reserved;
-- u16 PciVendorID;
-- u16 PciDeviceID;
-+ __u8 PciFunctionNumber;
-+ __u8 PciDeviceNumber;
-+ __u8 PciBusNumber;
-+ __u8 reserved;
-+ __u16 PciVendorID;
-+ __u16 PciDeviceID;
- } i2o_pci_bus;
-
- typedef struct _i2o_local_bus
- {
-- u16 LbBaseIOPort;
-- u16 reserved;
-- u32 LbBaseMemoryAddress;
-+ __u16 LbBaseIOPort;
-+ __u16 reserved;
-+ __u32 LbBaseMemoryAddress;
- } i2o_local_bus;
-
- typedef struct _i2o_isa_bus
- {
-- u16 IsaBaseIOPort;
-- u8 CSN;
-- u8 reserved;
-- u32 IsaBaseMemoryAddress;
-+ __u16 IsaBaseIOPort;
-+ __u8 CSN;
-+ __u8 reserved;
-+ __u32 IsaBaseMemoryAddress;
- } i2o_isa_bus;
-
- typedef struct _i2o_eisa_bus_info
- {
-- u16 EisaBaseIOPort;
-- u8 reserved;
-- u8 EisaSlotNumber;
-- u32 EisaBaseMemoryAddress;
-+ __u16 EisaBaseIOPort;
-+ __u8 reserved;
-+ __u8 EisaSlotNumber;
-+ __u32 EisaBaseMemoryAddress;
- } i2o_eisa_bus;
-
- typedef struct _i2o_mca_bus
- {
-- u16 McaBaseIOPort;
-- u8 reserved;
-- u8 McaSlotNumber;
-- u32 McaBaseMemoryAddress;
-+ __u16 McaBaseIOPort;
-+ __u8 reserved;
-+ __u8 McaSlotNumber;
-+ __u32 McaBaseMemoryAddress;
- } i2o_mca_bus;
-
- typedef struct _i2o_other_bus
- {
-- u16 BaseIOPort;
-- u16 reserved;
-- u32 BaseMemoryAddress;
-+ __u16 BaseIOPort;
-+ __u16 reserved;
-+ __u32 BaseMemoryAddress;
- } i2o_other_bus;
-
- typedef struct _i2o_hrt_entry
- {
-- u32 adapter_id;
-- u32 parent_tid:12;
-- u32 state:4;
-- u32 bus_num:8;
-- u32 bus_type:8;
-+ __u32 adapter_id;
-+ __u32 parent_tid:12;
-+ __u32 state:4;
-+ __u32 bus_num:8;
-+ __u32 bus_type:8;
- union
- {
- i2o_pci_bus pci_bus;
-@@ -201,69 +201,69 @@
-
- typedef struct _i2o_hrt
- {
-- u16 num_entries;
-- u8 entry_len;
-- u8 hrt_version;
-- u32 change_ind;
-+ __u16 num_entries;
-+ __u8 entry_len;
-+ __u8 hrt_version;
-+ __u32 change_ind;
- i2o_hrt_entry hrt_entry[1];
- } i2o_hrt;
-
- typedef struct _i2o_lct_entry
- {
-- u32 entry_size:16;
-- u32 tid:12;
-- u32 reserved:4;
-- u32 change_ind;
-- u32 device_flags;
-- u32 class_id:12;
-- u32 version:4;
-- u32 vendor_id:16;
-- u32 sub_class;
-- u32 user_tid:12;
-- u32 parent_tid:12;
-- u32 bios_info:8;
-- u8 identity_tag[8];
-- u32 event_capabilities;
-+ __u32 entry_size:16;
-+ __u32 tid:12;
-+ __u32 reserved:4;
-+ __u32 change_ind;
-+ __u32 device_flags;
-+ __u32 class_id:12;
-+ __u32 version:4;
-+ __u32 vendor_id:16;
-+ __u32 sub_class;
-+ __u32 user_tid:12;
-+ __u32 parent_tid:12;
-+ __u32 bios_info:8;
-+ __u8 identity_tag[8];
-+ __u32 event_capabilities;
- } i2o_lct_entry;
-
- typedef struct _i2o_lct
- {
-- u32 table_size:16;
-- u32 boot_tid:12;
-- u32 lct_ver:4;
-- u32 iop_flags;
-- u32 change_ind;
-+ __u32 table_size:16;
-+ __u32 boot_tid:12;
-+ __u32 lct_ver:4;
-+ __u32 iop_flags;
-+ __u32 change_ind;
- i2o_lct_entry lct_entry[1];
- } i2o_lct;
-
- typedef struct _i2o_status_block
- {
-- u16 org_id;
-- u16 reserved;
-- u16 iop_id:12;
-- u16 reserved1:4;
-- u16 host_unit_id;
-- u16 segment_number:12;
-- u16 i2o_version:4;
-- u8 iop_state;
-- u8 msg_type;
-- u16 inbound_frame_size;
-- u8 init_code;
-- u8 reserved2;
-- u32 max_inbound_frames;
-- u32 cur_inbound_frames;
-- u32 max_outbound_frames;
-+ __u16 org_id;
-+ __u16 reserved;
-+ __u16 iop_id:12;
-+ __u16 reserved1:4;
-+ __u16 host_unit_id;
-+ __u16 segment_number:12;
-+ __u16 i2o_version:4;
-+ __u8 iop_state;
-+ __u8 msg_type;
-+ __u16 inbound_frame_size;
-+ __u8 init_code;
-+ __u8 reserved2;
-+ __u32 max_inbound_frames;
-+ __u32 cur_inbound_frames;
-+ __u32 max_outbound_frames;
- char product_id[24];
-- u32 expected_lct_size;
-- u32 iop_capabilities;
-- u32 desired_mem_size;
-- u32 current_mem_size;
-- u32 current_mem_base;
-- u32 desired_io_size;
-- u32 current_io_size;
-- u32 current_io_base;
-- u32 reserved3:24;
-- u32 cmd_status:8;
-+ __u32 expected_lct_size;
-+ __u32 iop_capabilities;
-+ __u32 desired_mem_size;
-+ __u32 current_mem_size;
-+ __u32 current_mem_base;
-+ __u32 desired_io_size;
-+ __u32 current_io_size;
-+ __u32 current_io_base;
-+ __u32 reserved3:24;
-+ __u32 cmd_status:8;
- } i2o_status_block;
-
- /* Event indicator mask flags */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/isdn/capilli.h linux-libc-headers-2.6.8.0/include/linux/isdn/capilli.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/isdn/capilli.h 2004-03-28 07:52:12.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/isdn/capilli.h 2004-08-26 13:26:47.000000000 -0500
-@@ -43,20 +43,20 @@
- char *driver_name; /* name of driver */
- int (*load_firmware)(struct capi_ctr *, capiloaddata *);
- void (*reset_ctr)(struct capi_ctr *);
-- void (*register_appl)(struct capi_ctr *, u16 appl,
-+ void (*register_appl)(struct capi_ctr *, __u16 appl,
- capi_register_params *);
-- void (*release_appl)(struct capi_ctr *, u16 appl);
-- u16 (*send_message)(struct capi_ctr *, struct sk_buff *skb);
-+ void (*release_appl)(struct capi_ctr *, __u16 appl);
-+ __u16 (*send_message)(struct capi_ctr *, struct sk_buff *skb);
-
- char *(*procinfo)(struct capi_ctr *);
- int (*ctr_read_proc)(char *page, char **start, off_t off,
- int count, int *eof, struct capi_ctr *card);
-
- /* filled in before calling ready callback */
-- u8 manu[CAPI_MANUFACTURER_LEN]; /* CAPI_GET_MANUFACTURER */
-+ __u8 manu[CAPI_MANUFACTURER_LEN]; /* CAPI_GET_MANUFACTURER */
- capi_version version; /* CAPI_GET_VERSION */
- capi_profile profile; /* CAPI_GET_PROFILE */
-- u8 serial[CAPI_SERIAL_LEN]; /* CAPI_GET_SERIAL */
-+ __u8 serial[CAPI_SERIAL_LEN]; /* CAPI_GET_SERIAL */
-
- /* management information for kcapi */
-
-@@ -81,7 +81,7 @@
- void capi_ctr_reseted(struct capi_ctr * card);
- void capi_ctr_suspend_output(struct capi_ctr * card);
- void capi_ctr_resume_output(struct capi_ctr * card);
--void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb);
-+void capi_ctr_handle_message(struct capi_ctr * card, __u16 appl, struct sk_buff *skb);
-
- // ---------------------------------------------------------------------------
- // needed for AVM capi drivers
-@@ -102,11 +102,11 @@
- // ---------------------------------------------------------------------------
- // library functions for use by hardware controller drivers
-
--void capilib_new_ncci(struct list_head *head, u16 applid, u32 ncci, u32 winsize);
--void capilib_free_ncci(struct list_head *head, u16 applid, u32 ncci);
--void capilib_release_appl(struct list_head *head, u16 applid);
-+void capilib_new_ncci(struct list_head *head, __u16 applid, __u32 ncci, __u32 winsize);
-+void capilib_free_ncci(struct list_head *head, __u16 applid, __u32 ncci);
-+void capilib_release_appl(struct list_head *head, __u16 applid);
- void capilib_release(struct list_head *head);
--void capilib_data_b3_conf(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
--u16 capilib_data_b3_req(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
-+void capilib_data_b3_conf(struct list_head *head, __u16 applid, __u32 ncci, __u16 msgid);
-+__u16 capilib_data_b3_req(struct list_head *head, __u16 applid, __u32 ncci, __u16 msgid);
-
- #endif /* __CAPILLI_H__ */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/jhash.h linux-libc-headers-2.6.8.0/include/linux/jhash.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/jhash.h 2004-03-28 07:52:09.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/jhash.h 2004-08-26 05:42:08.000000000 -0500
-@@ -41,19 +41,19 @@
- * of bytes. No alignment or length assumptions are made about
- * the input key.
- */
--static inline u32 jhash(const void *key, u32 length, u32 initval)
-+static inline __u32 jhash(const void *key, __u32 length, __u32 initval)
- {
-- u32 a, b, c, len;
-- const u8 *k = key;
-+ __u32 a, b, c, len;
-+ const __u8 *k = key;
-
- len = length;
- a = b = JHASH_GOLDEN_RATIO;
- c = initval;
-
- while (len >= 12) {
-- a += (k[0] +((u32)k[1]<<8) +((u32)k[2]<<16) +((u32)k[3]<<24));
-- b += (k[4] +((u32)k[5]<<8) +((u32)k[6]<<16) +((u32)k[7]<<24));
-- c += (k[8] +((u32)k[9]<<8) +((u32)k[10]<<16)+((u32)k[11]<<24));
-+ a += (k[0] +((__u32)k[1]<<8) +((__u32)k[2]<<16) +((__u32)k[3]<<24));
-+ b += (k[4] +((__u32)k[5]<<8) +((__u32)k[6]<<16) +((__u32)k[7]<<24));
-+ c += (k[8] +((__u32)k[9]<<8) +((__u32)k[10]<<16)+((__u32)k[11]<<24));
-
- __jhash_mix(a,b,c);
-
-@@ -63,16 +63,16 @@
-
- c += length;
- switch (len) {
-- case 11: c += ((u32)k[10]<<24);
-- case 10: c += ((u32)k[9]<<16);
-- case 9 : c += ((u32)k[8]<<8);
-- case 8 : b += ((u32)k[7]<<24);
-- case 7 : b += ((u32)k[6]<<16);
-- case 6 : b += ((u32)k[5]<<8);
-+ case 11: c += ((__u32)k[10]<<24);
-+ case 10: c += ((__u32)k[9]<<16);
-+ case 9 : c += ((__u32)k[8]<<8);
-+ case 8 : b += ((__u32)k[7]<<24);
-+ case 7 : b += ((__u32)k[6]<<16);
-+ case 6 : b += ((__u32)k[5]<<8);
- case 5 : b += k[4];
-- case 4 : a += ((u32)k[3]<<24);
-- case 3 : a += ((u32)k[2]<<16);
-- case 2 : a += ((u32)k[1]<<8);
-+ case 4 : a += ((__u32)k[3]<<24);
-+ case 3 : a += ((__u32)k[2]<<16);
-+ case 2 : a += ((__u32)k[1]<<8);
- case 1 : a += k[0];
- };
-
-@@ -81,12 +81,12 @@
- return c;
- }
-
--/* A special optimized version that handles 1 or more of u32s.
-- * The length parameter here is the number of u32s in the key.
-+/* A special optimized version that handles 1 or more of __u32s.
-+ * The length parameter here is the number of __u32s in the key.
- */
--static inline u32 jhash2(u32 *k, u32 length, u32 initval)
-+static inline __u32 jhash2(__u32 *k, __u32 length, __u32 initval)
- {
-- u32 a, b, c, len;
-+ __u32 a, b, c, len;
-
- a = b = JHASH_GOLDEN_RATIO;
- c = initval;
-@@ -119,7 +119,7 @@
- * NOTE: In partilar the "c += length; __jhash_mix(a,b,c);" normally
- * done at the end is not done here.
- */
--static inline u32 jhash_3words(u32 a, u32 b, u32 c, u32 initval)
-+static inline __u32 jhash_3words(__u32 a, __u32 b, __u32 c, __u32 initval)
- {
- a += JHASH_GOLDEN_RATIO;
- b += JHASH_GOLDEN_RATIO;
-@@ -130,12 +130,12 @@
- return c;
- }
-
--static inline u32 jhash_2words(u32 a, u32 b, u32 initval)
-+static inline __u32 jhash_2words(__u32 a, __u32 b, __u32 initval)
- {
- return jhash_3words(a, b, 0, initval);
- }
-
--static inline u32 jhash_1word(u32 a, u32 initval)
-+static inline __u32 jhash_1word(__u32 a, __u32 initval)
- {
- return jhash_3words(a, 0, 0, initval);
- }
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/jiffies.h linux-libc-headers-2.6.8.0/include/linux/jiffies.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/jiffies.h 2004-01-17 17:04:30.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/jiffies.h 2004-08-26 13:26:33.000000000 -0500
-@@ -12,15 +12,15 @@
- * without sampling the sequence number in xtime_lock.
- * get_jiffies_64() will do this for you as appropriate.
- */
--extern u64 jiffies_64;
-+extern __u64 jiffies_64;
- extern unsigned long volatile jiffies;
-
- #if (BITS_PER_LONG < 64)
--u64 get_jiffies_64(void);
-+__u64 get_jiffies_64(void);
- #else
--static inline u64 get_jiffies_64(void)
-+static inline __u64 get_jiffies_64(void)
- {
-- return (u64)jiffies;
-+ return (__u64)jiffies;
- }
- #endif
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/kernel_stat.h linux-libc-headers-2.6.8.0/include/linux/kernel_stat.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/kernel_stat.h 2004-04-19 16:13:51.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/kernel_stat.h 2004-08-26 05:42:08.000000000 -0500
-@@ -12,13 +12,13 @@
- */
-
- struct cpu_usage_stat {
-- u64 user;
-- u64 nice;
-- u64 system;
-- u64 softirq;
-- u64 irq;
-- u64 idle;
-- u64 iowait;
-+ __u64 user;
-+ __u64 nice;
-+ __u64 system;
-+ __u64 softirq;
-+ __u64 irq;
-+ __u64 idle;
-+ __u64 iowait;
- };
-
- struct kernel_stat {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/libata.h linux-libc-headers-2.6.8.0/include/linux/libata.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/libata.h 2004-08-18 13:16:03.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/libata.h 2004-08-26 05:42:08.000000000 -0500
-@@ -160,7 +160,7 @@
- struct ata_queued_cmd;
-
- /* typedefs */
--typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, u8 drv_stat);
-+typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, __u8 drv_stat);
-
- struct ata_ioports {
- unsigned long cmd_addr;
-@@ -246,18 +246,18 @@
- };
-
- struct ata_device {
-- u64 n_sectors; /* size of device, if ATA */
-+ __u64 n_sectors; /* size of device, if ATA */
- unsigned long flags; /* ATA_DFLAG_xxx */
- unsigned int class; /* ATA_DEV_xxx */
- unsigned int devno; /* 0 or 1 */
-- u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
-+ __u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
- unsigned int pio_mode;
- unsigned int udma_mode;
-
- /* cache info about current transfer mode */
-- u8 xfer_protocol; /* taskfile xfer protocol */
-- u8 read_cmd; /* opcode to use on read */
-- u8 write_cmd; /* opcode to use on write */
-+ __u8 xfer_protocol; /* taskfile xfer protocol */
-+ __u8 read_cmd; /* opcode to use on read */
-+ __u8 write_cmd; /* opcode to use on write */
- };
-
- struct ata_port {
-@@ -272,8 +272,8 @@
-
- struct ata_ioports ioaddr; /* ATA cmd/ctl/dma register blocks */
-
-- u8 ctl; /* cache of ATA control register */
-- u8 last_ctl; /* Cache last written value */
-+ __u8 ctl; /* cache of ATA control register */
-+ __u8 last_ctl; /* Cache last written value */
- unsigned int bus_state;
- unsigned int port_state;
- unsigned int pio_mask;
-@@ -312,7 +312,7 @@
- void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
-
- void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
-- u8 (*check_status)(struct ata_port *ap);
-+ __u8 (*check_status)(struct ata_port *ap);
-
- void (*phy_reset) (struct ata_port *ap);
- void (*post_set_mode) (struct ata_port *ap);
-@@ -328,9 +328,9 @@
- irqreturn_t (*irq_handler)(int, void *, struct pt_regs *);
- void (*irq_clear) (struct ata_port *);
-
-- u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
-+ __u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
- void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
-- u32 val);
-+ __u32 val);
-
- int (*port_start) (struct ata_port *ap);
- void (*port_stop) (struct ata_port *ap);
-@@ -374,10 +374,10 @@
- extern void ata_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf);
- extern void ata_tf_read_pio(struct ata_port *ap, struct ata_taskfile *tf);
- extern void ata_tf_read_mmio(struct ata_port *ap, struct ata_taskfile *tf);
--extern void ata_tf_to_fis(struct ata_taskfile *tf, u8 *fis, u8 pmp);
--extern void ata_tf_from_fis(u8 *fis, struct ata_taskfile *tf);
--extern u8 ata_check_status_pio(struct ata_port *ap);
--extern u8 ata_check_status_mmio(struct ata_port *ap);
-+extern void ata_tf_to_fis(struct ata_taskfile *tf, __u8 *fis, __u8 pmp);
-+extern void ata_tf_from_fis(__u8 *fis, struct ata_taskfile *tf);
-+extern __u8 ata_check_status_pio(struct ata_port *ap);
-+extern __u8 ata_check_status_mmio(struct ata_port *ap);
- extern void ata_exec_command_pio(struct ata_port *ap, struct ata_taskfile *tf);
- extern void ata_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf);
- extern int ata_port_start (struct ata_port *ap);
-@@ -397,7 +397,7 @@
- extern void ata_bmdma_start_pio (struct ata_queued_cmd *qc);
- extern void ata_bmdma_irq_clear(struct ata_port *ap);
- extern int pci_test_config_bits(struct pci_dev *pdev, struct pci_bits *bits);
--extern void ata_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat);
-+extern void ata_qc_complete(struct ata_queued_cmd *qc, __u8 drv_stat);
- extern void ata_eng_timeout(struct ata_port *ap);
- extern int ata_std_bios_param(struct scsi_device *sdev,
- struct block_device *bdev,
-@@ -416,7 +416,7 @@
- (dev->class == ATA_DEV_ATAPI));
- }
-
--static inline u8 ata_chk_err(struct ata_port *ap)
-+static inline __u8 ata_chk_err(struct ata_port *ap)
- {
- if (ap->flags & ATA_FLAG_MMIO) {
- return readb((void *) ap->ioaddr.error_addr);
-@@ -424,12 +424,12 @@
- return inb(ap->ioaddr.error_addr);
- }
-
--static inline u8 ata_chk_status(struct ata_port *ap)
-+static inline __u8 ata_chk_status(struct ata_port *ap)
- {
- return ap->ops->check_status(ap);
- }
-
--static inline u8 ata_altstatus(struct ata_port *ap)
-+static inline __u8 ata_altstatus(struct ata_port *ap)
- {
- if (ap->flags & ATA_FLAG_MMIO)
- return readb(ap->ioaddr.altstatus_addr);
-@@ -442,10 +442,10 @@
- ndelay(400);
- }
-
--static inline u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
-+static inline __u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
- unsigned int max)
- {
-- u8 status;
-+ __u8 status;
-
- do {
- udelay(10);
-@@ -456,9 +456,9 @@
- return status;
- }
-
--static inline u8 ata_wait_idle(struct ata_port *ap)
-+static inline __u8 ata_wait_idle(struct ata_port *ap)
- {
-- u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
-+ __u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
-
- if (status & (ATA_BUSY | ATA_DRQ)) {
- unsigned long l = ap->ioaddr.status_addr;
-@@ -495,10 +495,10 @@
- tf->device = ATA_DEVICE_OBS | ATA_DEV1;
- }
-
--static inline u8 ata_irq_on(struct ata_port *ap)
-+static inline __u8 ata_irq_on(struct ata_port *ap)
- {
- struct ata_ioports *ioaddr = &ap->ioaddr;
-- u8 tmp;
-+ __u8 tmp;
-
- ap->ctl &= ~ATA_NIEN;
- ap->last_ctl = ap->ctl;
-@@ -514,10 +514,10 @@
- return tmp;
- }
-
--static inline u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)
-+static inline __u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)
- {
- unsigned int bits = chk_drq ? ATA_BUSY | ATA_DRQ : ATA_BUSY;
-- u8 host_stat, post_stat, status;
-+ __u8 host_stat, post_stat, status;
-
- status = ata_busy_wait(ap, bits, 1000);
- if (status & bits)
-@@ -545,12 +545,12 @@
- return status;
- }
-
--static inline u32 scr_read(struct ata_port *ap, unsigned int reg)
-+static inline __u32 scr_read(struct ata_port *ap, unsigned int reg)
- {
- return ap->ops->scr_read(ap, reg);
- }
-
--static inline void scr_write(struct ata_port *ap, unsigned int reg, u32 val)
-+static inline void scr_write(struct ata_port *ap, unsigned int reg, __u32 val)
- {
- ap->ops->scr_write(ap, reg, val);
- }
-@@ -589,9 +589,9 @@
- }
- }
-
--static inline u8 ata_bmdma_status(struct ata_port *ap)
-+static inline __u8 ata_bmdma_status(struct ata_port *ap)
- {
-- u8 host_stat;
-+ __u8 host_stat;
- if (ap->flags & ATA_FLAG_MMIO) {
- void *mmio = (void *) ap->ioaddr.bmdma_addr;
- host_stat = readb(mmio + ATA_DMA_STATUS);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/bind.h linux-libc-headers-2.6.8.0/include/linux/lockd/bind.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/bind.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/bind.h 2004-08-26 05:42:08.000000000 -0500
-@@ -18,7 +18,7 @@
- * This is the set of functions for lockd->nfsd communication
- */
- struct nlmsvc_binding {
-- u32 (*fopen)(struct svc_rqst *,
-+ __u32 (*fopen)(struct svc_rqst *,
- struct nfs_fh *,
- struct file *);
- void (*fclose)(struct file *);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/nlm.h linux-libc-headers-2.6.8.0/include/linux/lockd/nlm.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/nlm.h 2004-01-17 17:04:34.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/nlm.h 2004-08-26 05:42:08.000000000 -0500
-@@ -11,8 +11,8 @@
-
-
- /* Maximum file offset in file_lock.fl_end */
--# define NLM_OFFSET_MAX ((s32) 0x7fffffff)
--# define NLM4_OFFSET_MAX ((s64) ((~(u64)0) >> 1))
-+# define NLM_OFFSET_MAX ((__s32) 0x7fffffff)
-+# define NLM4_OFFSET_MAX ((__s64) ((~(__u64)0) >> 1))
-
- /* Return states for NLM */
- enum {
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/share.h linux-libc-headers-2.6.8.0/include/linux/lockd/share.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/share.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/share.h 2004-08-26 13:26:43.000000000 -0500
-@@ -17,13 +17,13 @@
- struct nlm_host * s_host; /* client host */
- struct nlm_file * s_file; /* shared file */
- struct xdr_netobj s_owner; /* owner handle */
-- u32 s_access; /* access mode */
-- u32 s_mode; /* deny mode */
-+ __u32 s_access; /* access mode */
-+ __u32 s_mode; /* deny mode */
- };
-
--u32 nlmsvc_share_file(struct nlm_host *, struct nlm_file *,
-+__u32 nlmsvc_share_file(struct nlm_host *, struct nlm_file *,
- struct nlm_args *);
--u32 nlmsvc_unshare_file(struct nlm_host *, struct nlm_file *,
-+__u32 nlmsvc_unshare_file(struct nlm_host *, struct nlm_file *,
- struct nlm_args *);
- int nlmsvc_traverse_shares(struct nlm_host *, struct nlm_file *, int);
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/sm_inter.h linux-libc-headers-2.6.8.0/include/linux/lockd/sm_inter.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/sm_inter.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/sm_inter.h 2004-08-26 05:42:08.000000000 -0500
-@@ -24,23 +24,23 @@
- * Arguments for all calls to statd
- */
- struct nsm_args {
-- u32 addr; /* remote address */
-- u32 prog; /* RPC callback info */
-- u32 vers;
-- u32 proc;
-- u32 proto; /* protocol (udp/tcp) plus server/client flag */
-+ __u32 addr; /* remote address */
-+ __u32 prog; /* RPC callback info */
-+ __u32 vers;
-+ __u32 proc;
-+ __u32 proto; /* protocol (udp/tcp) plus server/client flag */
- };
-
- /*
- * Result returned by statd
- */
- struct nsm_res {
-- u32 status;
-- u32 state;
-+ __u32 status;
-+ __u32 state;
- };
-
- int nsm_monitor(struct nlm_host *);
- int nsm_unmonitor(struct nlm_host *);
--extern u32 nsm_local_state;
-+extern __u32 nsm_local_state;
-
- #endif /* LINUX_LOCKD_SM_INTER_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr.h linux-libc-headers-2.6.8.0/include/linux/lockd/xdr.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr.h 2004-01-05 12:42:33.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/xdr.h 2004-08-26 05:42:08.000000000 -0500
-@@ -48,12 +48,12 @@
- struct nlm_args {
- struct nlm_cookie cookie;
- struct nlm_lock lock;
-- u32 block;
-- u32 reclaim;
-- u32 state;
-- u32 monitor;
-- u32 fsm_access;
-- u32 fsm_mode;
-+ __u32 block;
-+ __u32 reclaim;
-+ __u32 state;
-+ __u32 monitor;
-+ __u32 fsm_access;
-+ __u32 fsm_mode;
- };
-
- typedef struct nlm_args nlm_args;
-@@ -63,7 +63,7 @@
- */
- struct nlm_res {
- struct nlm_cookie cookie;
-- u32 status;
-+ __u32 status;
- struct nlm_lock lock;
- };
-
-@@ -73,10 +73,10 @@
- struct nlm_reboot {
- char * mon;
- int len;
-- u32 state;
-- u32 addr;
-- u32 vers;
-- u32 proto;
-+ __u32 state;
-+ __u32 addr;
-+ __u32 vers;
-+ __u32 proto;
- };
-
- /*
-@@ -84,24 +84,24 @@
- */
- #define NLMSVC_XDRSIZE sizeof(struct nlm_args)
-
--int nlmsvc_decode_testargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlmsvc_encode_testres(struct svc_rqst *, u32 *, struct nlm_res *);
--int nlmsvc_decode_lockargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlmsvc_decode_cancargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlmsvc_decode_unlockargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlmsvc_encode_res(struct svc_rqst *, u32 *, struct nlm_res *);
--int nlmsvc_decode_res(struct svc_rqst *, u32 *, struct nlm_res *);
--int nlmsvc_encode_void(struct svc_rqst *, u32 *, void *);
--int nlmsvc_decode_void(struct svc_rqst *, u32 *, void *);
--int nlmsvc_decode_shareargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlmsvc_encode_shareres(struct svc_rqst *, u32 *, struct nlm_res *);
--int nlmsvc_decode_notify(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlmsvc_decode_reboot(struct svc_rqst *, u32 *, struct nlm_reboot *);
-+int nlmsvc_decode_testargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlmsvc_encode_testres(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int nlmsvc_decode_lockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlmsvc_decode_cancargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlmsvc_decode_unlockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlmsvc_encode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int nlmsvc_decode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int nlmsvc_encode_void(struct svc_rqst *, __u32 *, void *);
-+int nlmsvc_decode_void(struct svc_rqst *, __u32 *, void *);
-+int nlmsvc_decode_shareargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlmsvc_encode_shareres(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int nlmsvc_decode_notify(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlmsvc_decode_reboot(struct svc_rqst *, __u32 *, struct nlm_reboot *);
- /*
--int nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-+int nlmclt_encode_testargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int nlmclt_encode_lockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int nlmclt_encode_cancargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int nlmclt_encode_unlockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
- */
-
- #endif /* LOCKD_XDR_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr4.h linux-libc-headers-2.6.8.0/include/linux/lockd/xdr4.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr4.h 2004-01-05 12:42:33.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/lockd/xdr4.h 2004-08-26 05:42:08.000000000 -0500
-@@ -22,24 +22,24 @@
-
-
-
--int nlm4svc_decode_testargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlm4svc_encode_testres(struct svc_rqst *, u32 *, struct nlm_res *);
--int nlm4svc_decode_lockargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlm4svc_decode_cancargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlm4svc_decode_unlockargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlm4svc_encode_res(struct svc_rqst *, u32 *, struct nlm_res *);
--int nlm4svc_decode_res(struct svc_rqst *, u32 *, struct nlm_res *);
--int nlm4svc_encode_void(struct svc_rqst *, u32 *, void *);
--int nlm4svc_decode_void(struct svc_rqst *, u32 *, void *);
--int nlm4svc_decode_shareargs(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlm4svc_encode_shareres(struct svc_rqst *, u32 *, struct nlm_res *);
--int nlm4svc_decode_notify(struct svc_rqst *, u32 *, struct nlm_args *);
--int nlm4svc_decode_reboot(struct svc_rqst *, u32 *, struct nlm_reboot *);
-+int nlm4svc_decode_testargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlm4svc_encode_testres(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int nlm4svc_decode_lockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlm4svc_decode_cancargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlm4svc_decode_unlockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlm4svc_encode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int nlm4svc_decode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int nlm4svc_encode_void(struct svc_rqst *, __u32 *, void *);
-+int nlm4svc_decode_void(struct svc_rqst *, __u32 *, void *);
-+int nlm4svc_decode_shareargs(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlm4svc_encode_shareres(struct svc_rqst *, __u32 *, struct nlm_res *);
-+int nlm4svc_decode_notify(struct svc_rqst *, __u32 *, struct nlm_args *);
-+int nlm4svc_decode_reboot(struct svc_rqst *, __u32 *, struct nlm_reboot *);
- /*
--int nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
--int nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
-+int nlmclt_encode_testargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int nlmclt_encode_lockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int nlmclt_encode_cancargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
-+int nlmclt_encode_unlockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
- */
-
- #endif /* LOCKD_XDR4_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mca.h linux-libc-headers-2.6.8.0/include/linux/mca.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mca.h 2004-08-18 13:16:03.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/mca.h 2004-08-26 05:42:08.000000000 -0500
-@@ -50,7 +50,7 @@
- };
-
- struct mca_device {
-- u64 dma_mask;
-+ __u64 dma_mask;
- int pos_id;
- int slot;
-
-@@ -91,7 +91,7 @@
- };
-
- struct mca_bus {
-- u64 default_dma_mask;
-+ __u64 default_dma_mask;
- int number;
- struct mca_bus_accessor_functions f;
- struct device dev;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mii.h linux-libc-headers-2.6.8.0/include/linux/mii.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mii.h 2004-06-23 16:52:55.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/mii.h 2004-08-26 05:42:08.000000000 -0500
-@@ -138,10 +138,10 @@
-
- /* This structure is used in all SIOCxMIIxxx ioctl calls */
- struct mii_ioctl_data {
-- u16 phy_id;
-- u16 reg_num;
-- u16 val_in;
-- u16 val_out;
-+ __u16 phy_id;
-+ __u16 reg_num;
-+ __u16 val_in;
-+ __u16 val_out;
- };
-
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/map.h linux-libc-headers-2.6.8.0/include/linux/mtd/map.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/map.h 2004-08-18 13:16:06.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/mtd/map.h 2004-08-26 05:42:08.000000000 -0500
-@@ -36,20 +36,20 @@
- int buswidth; /* in octets */
-
- #ifdef CONFIG_MTD_COMPLEX_MAPPINGS
-- u8 (*read8)(struct map_info *, unsigned long);
-- u16 (*read16)(struct map_info *, unsigned long);
-- u32 (*read32)(struct map_info *, unsigned long);
-- u64 (*read64)(struct map_info *, unsigned long);
-+ __u8 (*read8)(struct map_info *, unsigned long);
-+ __u16 (*read16)(struct map_info *, unsigned long);
-+ __u32 (*read32)(struct map_info *, unsigned long);
-+ __u64 (*read64)(struct map_info *, unsigned long);
- /* If it returned a 'long' I'd call it readl.
- * It doesn't.
- * I won't.
- * dwmw2 */
-
- void (*copy_from)(struct map_info *, void *, unsigned long, ssize_t);
-- void (*write8)(struct map_info *, u8, unsigned long);
-- void (*write16)(struct map_info *, u16, unsigned long);
-- void (*write32)(struct map_info *, u32, unsigned long);
-- void (*write64)(struct map_info *, u64, unsigned long);
-+ void (*write8)(struct map_info *, __u8, unsigned long);
-+ void (*write16)(struct map_info *, __u16, unsigned long);
-+ void (*write32)(struct map_info *, __u32, unsigned long);
-+ void (*write64)(struct map_info *, __u64, unsigned long);
- void (*copy_to)(struct map_info *, unsigned long, const void *, ssize_t);
-
- /* We can perhaps put in 'point' and 'unpoint' methods, if we really
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/nand.h linux-libc-headers-2.6.8.0/include/linux/mtd/nand.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/nand.h 2004-08-18 13:16:06.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/mtd/nand.h 2004-08-26 05:42:08.000000000 -0500
-@@ -271,8 +271,8 @@
-
- u_char (*read_byte)(struct mtd_info *mtd);
- void (*write_byte)(struct mtd_info *mtd, u_char byte);
-- u16 (*read_word)(struct mtd_info *mtd);
-- void (*write_word)(struct mtd_info *mtd, u16 word);
-+ __u16 (*read_word)(struct mtd_info *mtd);
-+ void (*write_word)(struct mtd_info *mtd, __u16 word);
-
- void (*write_buf)(struct mtd_info *mtd, const u_char *buf, int len);
- void (*read_buf)(struct mtd_info *mtd, u_char *buf, int len);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/pmc551.h linux-libc-headers-2.6.8.0/include/linux/mtd/pmc551.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/pmc551.h 2004-03-28 07:52:13.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/mtd/pmc551.h 2004-08-26 05:42:08.000000000 -0500
-@@ -25,9 +25,9 @@
- struct mypriv {
- struct pci_dev *dev;
- u_char *start;
-- u32 base_map0;
-- u32 curr_map0;
-- u32 asize;
-+ __u32 base_map0;
-+ __u32 curr_map0;
-+ __u32 asize;
- struct mtd_info *nextpmc551;
- };
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nbd.h linux-libc-headers-2.6.8.0/include/linux/nbd.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nbd.h 2004-03-28 07:52:09.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/nbd.h 2004-08-26 05:42:08.000000000 -0500
-@@ -45,11 +45,11 @@
- * server. All data are in network byte order.
- */
- struct nbd_request {
-- u32 magic;
-- u32 type; /* == READ || == WRITE */
-+ __u32 magic;
-+ __u32 type; /* == READ || == WRITE */
- char handle[8];
-- u64 from;
-- u32 len;
-+ __u64 from;
-+ __u32 len;
- }
- #ifdef __GNUC__
- __attribute__ ((packed))
-@@ -61,8 +61,8 @@
- * it has completed an I/O request (or an error occurs).
- */
- struct nbd_reply {
-- u32 magic;
-- u32 error; /* 0 = ok, else error */
-+ __u32 magic;
-+ __u32 error; /* 0 = ok, else error */
- char handle[8]; /* handle you got from request */
- };
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_i.h linux-libc-headers-2.6.8.0/include/linux/nfs_fs_i.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_i.h 2004-01-17 17:04:31.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/nfs_fs_i.h 2004-08-26 05:42:08.000000000 -0500
-@@ -8,8 +8,8 @@
- * NFS lock info
- */
- struct nfs_lock_info {
-- u32 state;
-- u32 flags;
-+ __u32 state;
-+ __u32 flags;
- struct nlm_host *host;
- };
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_sb.h linux-libc-headers-2.6.8.0/include/linux/nfs_fs_sb.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_sb.h 2004-06-09 07:00:50.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfs_fs_sb.h 2004-08-26 05:42:08.000000000 -0500
-@@ -37,10 +37,10 @@
- struct list_head nfs4_siblings; /* List of other nfs_server structs
- * that share the same clientid
- */
-- u32 attr_bitmask[2];/* V4 bitmask representing the set
-+ __u32 attr_bitmask[2];/* V4 bitmask representing the set
- of attributes supported on this
- filesystem */
-- u32 acl_bitmask; /* V4 bitmask representing the ACEs
-+ __u32 acl_bitmask; /* V4 bitmask representing the ACEs
- that are supported on this
- filesystem */
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_xdr.h linux-libc-headers-2.6.8.0/include/linux/nfs_xdr.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_xdr.h 2004-06-09 07:00:50.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfs_xdr.h 2004-08-26 05:42:08.000000000 -0500
-@@ -90,9 +90,9 @@
- };
-
- struct nfs4_change_info {
-- u32 atomic;
-- u64 before;
-- u64 after;
-+ __u32 atomic;
-+ __u64 before;
-+ __u64 after;
- };
-
- /*
-@@ -112,7 +112,7 @@
- } u;
- const struct qstr * name;
- const struct nfs_server *server; /* Needed for ID mapping */
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs_openres {
-@@ -168,7 +168,7 @@
- * */
- struct nfs_lowner {
- __u64 clientid;
-- u32 id;
-+ __u32 id;
- };
-
- struct nfs_open_to_lock {
-@@ -328,7 +328,7 @@
- nfs4_stateid stateid;
- struct iattr * iap;
- const struct nfs_server * server; /* Needed for name mapping */
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs_setattrres {
-@@ -482,32 +482,32 @@
-
- #ifdef CONFIG_NFS_V4
-
--typedef u64 clientid4;
-+typedef __u64 clientid4;
-
- struct nfs4_accessargs {
- const struct nfs_fh * fh;
-- u32 access;
-+ __u32 access;
- };
-
- struct nfs4_accessres {
-- u32 supported;
-- u32 access;
-+ __u32 supported;
-+ __u32 access;
- };
-
- struct nfs4_create_arg {
-- u32 ftype;
-+ __u32 ftype;
- union {
- struct qstr * symlink; /* NF4LNK */
- struct {
-- u32 specdata1;
-- u32 specdata2;
-+ __u32 specdata1;
-+ __u32 specdata2;
- } device; /* NF4BLK, NF4CHR */
- } u;
- const struct qstr * name;
- const struct nfs_server * server;
- const struct iattr * attrs;
- const struct nfs_fh * dir_fh;
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs4_create_res {
-@@ -519,12 +519,12 @@
-
- struct nfs4_fsinfo_arg {
- const struct nfs_fh * fh;
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs4_getattr_arg {
- const struct nfs_fh * fh;
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs4_getattr_res {
-@@ -541,7 +541,7 @@
- struct nfs4_lookup_arg {
- const struct nfs_fh * dir_fh;
- const struct qstr * name;
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs4_lookup_res {
-@@ -551,19 +551,19 @@
- };
-
- struct nfs4_lookup_root_arg {
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs4_pathconf_arg {
- const struct nfs_fh * fh;
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs4_readdir_arg {
- const struct nfs_fh * fh;
-- u64 cookie;
-+ __u64 cookie;
- nfs4_verifier verifier;
-- u32 count;
-+ __u32 count;
- struct page ** pages; /* zero-copy data */
- unsigned int pgbase; /* zero-copy data */
- };
-@@ -575,7 +575,7 @@
-
- struct nfs4_readlink {
- const struct nfs_fh * fh;
-- u32 count; /* zero-copy data */
-+ __u32 count; /* zero-copy data */
- struct page ** pages; /* zero-copy data */
- };
-
-@@ -599,23 +599,23 @@
- struct nfs4_setclientid {
- nfs4_verifier sc_verifier; /* request */
- char * sc_name; /* request */
-- u32 sc_prog; /* request */
-+ __u32 sc_prog; /* request */
- char sc_netid[4]; /* request */
- char sc_uaddr[24]; /* request */
-- u32 sc_cb_ident; /* request */
-+ __u32 sc_cb_ident; /* request */
- struct nfs4_client * sc_state; /* response */
- };
-
- struct nfs4_statfs_arg {
- const struct nfs_fh * fh;
-- const u32 * bitmask;
-+ const __u32 * bitmask;
- };
-
- struct nfs4_server_caps_res {
-- u32 attr_bitmask[2];
-- u32 acl_bitmask;
-- u32 has_links;
-- u32 has_symlinks;
-+ __u32 attr_bitmask[2];
-+ __u32 acl_bitmask;
-+ __u32 has_links;
-+ __u32 has_symlinks;
- };
-
- #endif /* CONFIG_NFS_V4 */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/state.h linux-libc-headers-2.6.8.0/include/linux/nfsd/state.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/state.h 2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfsd/state.h 2004-08-26 05:42:08.000000000 -0500
-@@ -41,18 +41,18 @@
-
- #define NFS4_OPAQUE_LIMIT 1024
- typedef struct {
-- u32 cl_boot;
-- u32 cl_id;
-+ __u32 cl_boot;
-+ __u32 cl_id;
- } clientid_t;
-
- typedef struct {
-- u32 so_boot;
-- u32 so_stateownerid;
-- u32 so_fileid;
-+ __u32 so_boot;
-+ __u32 so_stateownerid;
-+ __u32 so_fileid;
- } stateid_opaque_t;
-
- typedef struct {
-- u32 si_generation;
-+ __u32 si_generation;
- stateid_opaque_t si_opaque;
- } stateid_t;
- #define si_boot si_opaque.so_boot
-@@ -68,14 +68,14 @@
- /* client delegation callback info */
- struct nfs4_callback {
- /* SETCLIENTID info */
-- u32 cb_parsed; /* addr parsed */
-- u32 cb_addr;
-+ __u32 cb_parsed; /* addr parsed */
-+ __u32 cb_addr;
- unsigned short cb_port;
-- u32 cb_prog;
-- u32 cb_ident;
-+ __u32 cb_prog;
-+ __u32 cb_ident;
- struct xdr_netobj cb_netid;
- /* RPC client info */
-- u32 cb_set; /* successful CB_NULL call */
-+ __u32 cb_set; /* successful CB_NULL call */
- struct rpc_program cb_program;
- struct rpc_stat cb_stat;
- struct rpc_clnt * cb_client;
-@@ -99,7 +99,7 @@
- struct xdr_netobj cl_name; /* id generated by client */
- nfs4_verifier cl_verifier; /* generated by client */
- time_t cl_time; /* time of last lease renewal */
-- u32 cl_addr; /* client ipaddress */
-+ __u32 cl_addr; /* client ipaddress */
- struct svc_cred cl_cred; /* setclientid principal */
- clientid_t cl_clientid; /* generated by server */
- nfs4_verifier cl_confirm; /* generated by server */
-@@ -116,7 +116,7 @@
- struct list_head cr_strhash; /* hash by cr_name */
- struct xdr_netobj cr_name; /* id generated by client */
- time_t cr_first_state; /* first state aquisition */
-- u32 cr_expired; /* boolean: lease expired? */
-+ __u32 cr_expired; /* boolean: lease expired? */
- };
-
- static inline void
-@@ -139,7 +139,7 @@
- * is cached.
- */
- struct nfs4_replay {
-- u32 rp_status;
-+ __u32 rp_status;
- unsigned int rp_buflen;
- char *rp_buf;
- unsigned intrp_allocated;
-@@ -175,9 +175,9 @@
- struct list_head so_close_lru; /* tail queue */
- time_t so_time; /* time of placement on so_close_lru */
- int so_is_open_owner; /* 1=openowner,0=lockowner */
-- u32 so_id;
-+ __u32 so_id;
- struct nfs4_client * so_client;
-- u32 so_seqid;
-+ __u32 so_seqid;
- struct xdr_netobj so_owner; /* open owner name */
- int so_confirmed; /* successful OPEN_CONFIRM? */
- struct nfs4_replay so_replay;
-@@ -192,7 +192,7 @@
- struct list_head fi_hash; /* hash by "struct inode *" */
- struct list_head fi_perfile; /* list: nfs4_stateid */
- struct inode *fi_inode;
-- u32 fi_id; /* used with stateowner->so_id
-+ __u32 fi_id; /* used with stateowner->so_id
- * for stateid_hashtbl hash */
- };
-
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr.h 2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr.h 2004-08-26 05:42:08.000000000 -0500
-@@ -83,7 +83,7 @@
- struct svc_fh fh;
- __u32 cookie;
- __u32 count;
-- u32 * buffer;
-+ __u32 * buffer;
- };
-
- struct nfsd_attrstat {
-@@ -107,9 +107,9 @@
- int count;
-
- struct readdir_cd common;
-- u32 * buffer;
-+ __u32 * buffer;
- int buflen;
-- u32 * offset;
-+ __u32 * offset;
- };
-
- struct nfsd_statfsres {
-@@ -134,39 +134,39 @@
- #define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)
-
-
--int nfssvc_decode_void(struct svc_rqst *, u32 *, void *);
--int nfssvc_decode_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
--int nfssvc_decode_sattrargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_void(struct svc_rqst *, __u32 *, void *);
-+int nfssvc_decode_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
-+int nfssvc_decode_sattrargs(struct svc_rqst *, __u32 *,
- struct nfsd_sattrargs *);
--int nfssvc_decode_diropargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_diropargs(struct svc_rqst *, __u32 *,
- struct nfsd_diropargs *);
--int nfssvc_decode_readargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_readargs(struct svc_rqst *, __u32 *,
- struct nfsd_readargs *);
--int nfssvc_decode_writeargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_writeargs(struct svc_rqst *, __u32 *,
- struct nfsd_writeargs *);
--int nfssvc_decode_createargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_createargs(struct svc_rqst *, __u32 *,
- struct nfsd_createargs *);
--int nfssvc_decode_renameargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_renameargs(struct svc_rqst *, __u32 *,
- struct nfsd_renameargs *);
--int nfssvc_decode_readlinkargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_readlinkargs(struct svc_rqst *, __u32 *,
- struct nfsd_readlinkargs *);
--int nfssvc_decode_linkargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_linkargs(struct svc_rqst *, __u32 *,
- struct nfsd_linkargs *);
--int nfssvc_decode_symlinkargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_symlinkargs(struct svc_rqst *, __u32 *,
- struct nfsd_symlinkargs *);
--int nfssvc_decode_readdirargs(struct svc_rqst *, u32 *,
-+int nfssvc_decode_readdirargs(struct svc_rqst *, __u32 *,
- struct nfsd_readdirargs *);
--int nfssvc_encode_void(struct svc_rqst *, u32 *, void *);
--int nfssvc_encode_attrstat(struct svc_rqst *, u32 *, struct nfsd_attrstat *);
--int nfssvc_encode_diropres(struct svc_rqst *, u32 *, struct nfsd_diropres *);
--int nfssvc_encode_readlinkres(struct svc_rqst *, u32 *, struct nfsd_readlinkres *);
--int nfssvc_encode_readres(struct svc_rqst *, u32 *, struct nfsd_readres *);
--int nfssvc_encode_statfsres(struct svc_rqst *, u32 *, struct nfsd_statfsres *);
--int nfssvc_encode_readdirres(struct svc_rqst *, u32 *, struct nfsd_readdirres *);
-+int nfssvc_encode_void(struct svc_rqst *, __u32 *, void *);
-+int nfssvc_encode_attrstat(struct svc_rqst *, __u32 *, struct nfsd_attrstat *);
-+int nfssvc_encode_diropres(struct svc_rqst *, __u32 *, struct nfsd_diropres *);
-+int nfssvc_encode_readlinkres(struct svc_rqst *, __u32 *, struct nfsd_readlinkres *);
-+int nfssvc_encode_readres(struct svc_rqst *, __u32 *, struct nfsd_readres *);
-+int nfssvc_encode_statfsres(struct svc_rqst *, __u32 *, struct nfsd_statfsres *);
-+int nfssvc_encode_readdirres(struct svc_rqst *, __u32 *, struct nfsd_readdirres *);
-
- int nfssvc_encode_entry(struct readdir_cd *, const char *name,
- int namlen, loff_t offset, ino_t ino, unsigned int);
-
--int nfssvc_release_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
-+int nfssvc_release_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
-
- #endif /* LINUX_NFSD_H */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr3.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr3.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr3.h 2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr3.h 2004-08-26 05:42:08.000000000 -0500
-@@ -101,7 +101,7 @@
- __u32 dircount;
- __u32 count;
- __u32 * verf;
-- u32 * buffer;
-+ __u32 * buffer;
- };
-
- struct nfsd3_commitargs {
-@@ -167,10 +167,10 @@
- __u32 verf[2];
-
- struct readdir_cd common;
-- u32 * buffer;
-+ __u32 * buffer;
- int buflen;
-- u32 * offset;
-- u32 * offset1;
-+ __u32 * offset;
-+ __u32 * offset1;
- struct svc_rqst * rqstp;
-
- };
-@@ -245,70 +245,70 @@
-
- #define NFS3_SVC_XDRSIZE sizeof(union nfsd3_xdrstore)
-
--int nfs3svc_decode_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
--int nfs3svc_decode_sattrargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
-+int nfs3svc_decode_sattrargs(struct svc_rqst *, __u32 *,
- struct nfsd3_sattrargs *);
--int nfs3svc_decode_diropargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_diropargs(struct svc_rqst *, __u32 *,
- struct nfsd3_diropargs *);
--int nfs3svc_decode_accessargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_accessargs(struct svc_rqst *, __u32 *,
- struct nfsd3_accessargs *);
--int nfs3svc_decode_readargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_readargs(struct svc_rqst *, __u32 *,
- struct nfsd3_readargs *);
--int nfs3svc_decode_writeargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_writeargs(struct svc_rqst *, __u32 *,
- struct nfsd3_writeargs *);
--int nfs3svc_decode_createargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_createargs(struct svc_rqst *, __u32 *,
- struct nfsd3_createargs *);
--int nfs3svc_decode_mkdirargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_mkdirargs(struct svc_rqst *, __u32 *,
- struct nfsd3_createargs *);
--int nfs3svc_decode_mknodargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_mknodargs(struct svc_rqst *, __u32 *,
- struct nfsd3_mknodargs *);
--int nfs3svc_decode_renameargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_renameargs(struct svc_rqst *, __u32 *,
- struct nfsd3_renameargs *);
--int nfs3svc_decode_readlinkargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_readlinkargs(struct svc_rqst *, __u32 *,
- struct nfsd3_readlinkargs *);
--int nfs3svc_decode_linkargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_linkargs(struct svc_rqst *, __u32 *,
- struct nfsd3_linkargs *);
--int nfs3svc_decode_symlinkargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_symlinkargs(struct svc_rqst *, __u32 *,
- struct nfsd3_symlinkargs *);
--int nfs3svc_decode_readdirargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_readdirargs(struct svc_rqst *, __u32 *,
- struct nfsd3_readdirargs *);
--int nfs3svc_decode_readdirplusargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_readdirplusargs(struct svc_rqst *, __u32 *,
- struct nfsd3_readdirargs *);
--int nfs3svc_decode_commitargs(struct svc_rqst *, u32 *,
-+int nfs3svc_decode_commitargs(struct svc_rqst *, __u32 *,
- struct nfsd3_commitargs *);
--int nfs3svc_encode_voidres(struct svc_rqst *, u32 *, void *);
--int nfs3svc_encode_attrstat(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_voidres(struct svc_rqst *, __u32 *, void *);
-+int nfs3svc_encode_attrstat(struct svc_rqst *, __u32 *,
- struct nfsd3_attrstat *);
--int nfs3svc_encode_wccstat(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_wccstat(struct svc_rqst *, __u32 *,
- struct nfsd3_attrstat *);
--int nfs3svc_encode_diropres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_diropres(struct svc_rqst *, __u32 *,
- struct nfsd3_diropres *);
--int nfs3svc_encode_accessres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_accessres(struct svc_rqst *, __u32 *,
- struct nfsd3_accessres *);
--int nfs3svc_encode_readlinkres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_readlinkres(struct svc_rqst *, __u32 *,
- struct nfsd3_readlinkres *);
--int nfs3svc_encode_readres(struct svc_rqst *, u32 *, struct nfsd3_readres *);
--int nfs3svc_encode_writeres(struct svc_rqst *, u32 *, struct nfsd3_writeres *);
--int nfs3svc_encode_createres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_readres(struct svc_rqst *, __u32 *, struct nfsd3_readres *);
-+int nfs3svc_encode_writeres(struct svc_rqst *, __u32 *, struct nfsd3_writeres *);
-+int nfs3svc_encode_createres(struct svc_rqst *, __u32 *,
- struct nfsd3_diropres *);
--int nfs3svc_encode_renameres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_renameres(struct svc_rqst *, __u32 *,
- struct nfsd3_renameres *);
--int nfs3svc_encode_linkres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_linkres(struct svc_rqst *, __u32 *,
- struct nfsd3_linkres *);
--int nfs3svc_encode_readdirres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_readdirres(struct svc_rqst *, __u32 *,
- struct nfsd3_readdirres *);
--int nfs3svc_encode_fsstatres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_fsstatres(struct svc_rqst *, __u32 *,
- struct nfsd3_fsstatres *);
--int nfs3svc_encode_fsinfores(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_fsinfores(struct svc_rqst *, __u32 *,
- struct nfsd3_fsinfores *);
--int nfs3svc_encode_pathconfres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_pathconfres(struct svc_rqst *, __u32 *,
- struct nfsd3_pathconfres *);
--int nfs3svc_encode_commitres(struct svc_rqst *, u32 *,
-+int nfs3svc_encode_commitres(struct svc_rqst *, __u32 *,
- struct nfsd3_commitres *);
-
--int nfs3svc_release_fhandle(struct svc_rqst *, u32 *,
-+int nfs3svc_release_fhandle(struct svc_rqst *, __u32 *,
- struct nfsd3_attrstat *);
--int nfs3svc_release_fhandle2(struct svc_rqst *, u32 *,
-+int nfs3svc_release_fhandle2(struct svc_rqst *, __u32 *,
- struct nfsd3_fhandle_pair *);
- int nfs3svc_encode_entry(struct readdir_cd *, const char *name,
- int namlen, loff_t offset, ino_t ino,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr4.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr4.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr4.h 2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr4.h 2004-08-26 05:42:08.000000000 -0500
-@@ -42,9 +42,9 @@
- #define NFSD4_MAX_TAGLEN 128
- #define XDR_LEN(n) (((n) + 3) & ~3)
-
--typedef u32 delegation_zero_t;
--typedef u32 delegation_boot_t;
--typedef u64 delegation_id_t;
-+typedef __u32 delegation_zero_t;
-+typedef __u32 delegation_boot_t;
-+typedef __u64 delegation_id_t;
-
- typedef struct {
- delegation_zero_t ds_zero;
-@@ -53,46 +53,46 @@
- } delegation_stateid_t;
-
- struct nfsd4_change_info {
-- u32 atomic;
-- u32 before_ctime_sec;
-- u32 before_ctime_nsec;
-- u32 after_ctime_sec;
-- u32 after_ctime_nsec;
-+ __u32 atomic;
-+ __u32 before_ctime_sec;
-+ __u32 before_ctime_nsec;
-+ __u32 after_ctime_sec;
-+ __u32 after_ctime_nsec;
- };
-
- struct nfsd4_access {
-- u32 ac_req_access; /* request */
-- u32 ac_supported; /* response */
-- u32 ac_resp_access; /* response */
-+ __u32 ac_req_access; /* request */
-+ __u32 ac_supported; /* response */
-+ __u32 ac_resp_access; /* response */
- };
-
- struct nfsd4_close {
-- u32 cl_seqid; /* request */
-+ __u32 cl_seqid; /* request */
- stateid_t cl_stateid; /* request+response */
- struct nfs4_stateowner * cl_stateowner; /* response */
- };
-
- struct nfsd4_commit {
-- u64 co_offset; /* request */
-- u32 co_count; /* request */
-+ __u64 co_offset; /* request */
-+ __u32 co_count; /* request */
- nfs4_verifier co_verf; /* response */
- };
-
- struct nfsd4_create {
-- u32 cr_namelen; /* request */
-+ __u32 cr_namelen; /* request */
- char * cr_name; /* request */
-- u32 cr_type; /* request */
-+ __u32 cr_type; /* request */
- union { /* request */
- struct {
-- u32 namelen;
-+ __u32 namelen;
- char *name;
- } link; /* NF4LNK */
- struct {
-- u32 specdata1;
-- u32 specdata2;
-+ __u32 specdata1;
-+ __u32 specdata2;
- } dev; /* NF4BLK, NF4CHR */
- } u;
-- u32 cr_bmval[2]; /* request */
-+ __u32 cr_bmval[2]; /* request */
- struct iattr cr_iattr; /* request */
- struct nfsd4_change_info cr_cinfo; /* response */
- };
-@@ -102,41 +102,41 @@
- #define cr_specdata2 u.dev.specdata2
-
- struct nfsd4_getattr {
-- u32 ga_bmval[2]; /* request */
-+ __u32 ga_bmval[2]; /* request */
- struct svc_fh *ga_fhp; /* response */
- };
-
- struct nfsd4_link {
-- u32 li_namelen; /* request */
-+ __u32 li_namelen; /* request */
- char * li_name; /* request */
- struct nfsd4_change_info li_cinfo; /* response */
- };
-
- struct nfsd4_lock_denied {
- struct nfs4_stateowner *ld_sop;
-- u64 ld_start;
-- u64 ld_length;
-- u32 ld_type;
-+ __u64 ld_start;
-+ __u64 ld_length;
-+ __u32 ld_type;
- };
-
- struct nfsd4_lock {
- /* request */
-- u32 lk_type;
-- u32 lk_reclaim; /* boolean */
-- u64 lk_offset;
-- u64 lk_length;
-- u32 lk_is_new;
-+ __u32 lk_type;
-+ __u32 lk_reclaim; /* boolean */
-+ __u64 lk_offset;
-+ __u64 lk_length;
-+ __u32 lk_is_new;
- union {
- struct {
-- u32 open_seqid;
-+ __u32 open_seqid;
- stateid_t open_stateid;
-- u32 lock_seqid;
-+ __u32 lock_seqid;
- clientid_t clientid;
- struct xdr_netobj owner;
- } new;
- struct {
- stateid_t lock_stateid;
-- u32 lock_seqid;
-+ __u32 lock_seqid;
- } old;
- } v;
-
-@@ -164,56 +164,56 @@
-
-
- struct nfsd4_lockt {
-- u32 lt_type;
-+ __u32 lt_type;
- clientid_t lt_clientid;
- struct xdr_netobj lt_owner;
-- u64 lt_offset;
-- u64 lt_length;
-+ __u64 lt_offset;
-+ __u64 lt_length;
- struct nfs4_stateowner * lt_stateowner;
- struct nfsd4_lock_denied lt_denied;
- };
-
-
- struct nfsd4_locku {
-- u32 lu_type;
-- u32 lu_seqid;
-+ __u32 lu_type;
-+ __u32 lu_seqid;
- stateid_t lu_stateid;
-- u64 lu_offset;
-- u64 lu_length;
-+ __u64 lu_offset;
-+ __u64 lu_length;
- struct nfs4_stateowner *lu_stateowner;
- };
-
-
- struct nfsd4_lookup {
-- u32 lo_len; /* request */
-+ __u32 lo_len; /* request */
- char * lo_name; /* request */
- };
-
- struct nfsd4_putfh {
-- u32 pf_fhlen; /* request */
-+ __u32 pf_fhlen; /* request */
- char *pf_fhval; /* request */
- };
-
- struct nfsd4_open {
-- u32 op_claim_type; /* request */
-+ __u32 op_claim_type; /* request */
- struct xdr_netobj op_fname; /* request - everything but CLAIM_PREV */
-- u32 op_delegate_type; /* request - CLAIM_PREV only */
-+ __u32 op_delegate_type; /* request - CLAIM_PREV only */
- delegation_stateid_t op_delegate_stateid; /* request - CLAIM_DELEGATE_CUR only */
-- u32 op_create; /* request */
-- u32 op_createmode; /* request */
-- u32 op_bmval[2]; /* request */
-+ __u32 op_create; /* request */
-+ __u32 op_createmode; /* request */
-+ __u32 op_bmval[2]; /* request */
- union { /* request */
- struct iattr iattr; /* UNCHECKED4,GUARDED4 */
- nfs4_verifier verf; /* EXCLUSIVE4 */
- } u;
- clientid_t op_clientid; /* request */
- struct xdr_netobj op_owner; /* request */
-- u32 op_seqid; /* request */
-- u32 op_share_access; /* request */
-- u32 op_share_deny; /* request */
-+ __u32 op_seqid; /* request */
-+ __u32 op_share_access; /* request */
-+ __u32 op_share_deny; /* request */
- stateid_t op_stateid; /* response */
- struct nfsd4_change_info op_cinfo; /* response */
-- u32 op_rflags; /* response */
-+ __u32 op_rflags; /* response */
- int op_truncate; /* used during processing */
- struct nfs4_stateowner *op_stateowner; /* used during processing */
-
-@@ -223,24 +223,24 @@
-
- struct nfsd4_open_confirm {
- stateid_t oc_req_stateid /* request */;
-- u32 oc_seqid /* request */;
-+ __u32 oc_seqid /* request */;
- stateid_t oc_resp_stateid /* response */;
- struct nfs4_stateowner * oc_stateowner; /* response */
- };
-
- struct nfsd4_open_downgrade {
- stateid_t od_stateid;
-- u32 od_seqid;
-- u32 od_share_access;
-- u32 od_share_deny;
-+ __u32 od_seqid;
-+ __u32 od_share_access;
-+ __u32 od_share_deny;
- struct nfs4_stateowner *od_stateowner;
- };
-
-
- struct nfsd4_read {
- stateid_t rd_stateid; /* request */
-- u64 rd_offset; /* request */
-- u32 rd_length; /* request */
-+ __u64 rd_offset; /* request */
-+ __u32 rd_length; /* request */
- struct kvec rd_iov[RPCSVC_MAXPAGES];
- int rd_vlen;
-
-@@ -249,18 +249,18 @@
- };
-
- struct nfsd4_readdir {
-- u64 rd_cookie; /* request */
-+ __u64 rd_cookie; /* request */
- nfs4_verifier rd_verf; /* request */
-- u32 rd_dircount; /* request */
-- u32 rd_maxcount; /* request */
-- u32 rd_bmval[2]; /* request */
-+ __u32 rd_dircount; /* request */
-+ __u32 rd_maxcount; /* request */
-+ __u32 rd_bmval[2]; /* request */
- struct svc_rqst *rd_rqstp; /* response */
- struct svc_fh * rd_fhp; /* response */
-
- struct readdir_cd common;
-- u32 * buffer;
-+ __u32 * buffer;
- int buflen;
-- u32 * offset;
-+ __u32 * offset;
- };
-
- struct nfsd4_release_lockowner {
-@@ -273,15 +273,15 @@
- };
-
- struct nfsd4_remove {
-- u32 rm_namelen; /* request */
-+ __u32 rm_namelen; /* request */
- char * rm_name; /* request */
- struct nfsd4_change_info rm_cinfo; /* response */
- };
-
- struct nfsd4_rename {
-- u32 rn_snamelen; /* request */
-+ __u32 rn_snamelen; /* request */
- char * rn_sname; /* request */
-- u32 rn_tnamelen; /* request */
-+ __u32 rn_tnamelen; /* request */
- char * rn_tname; /* request */
- struct nfsd4_change_info rn_sinfo; /* response */
- struct nfsd4_change_info rn_tinfo; /* response */
-@@ -289,20 +289,20 @@
-
- struct nfsd4_setattr {
- stateid_t sa_stateid; /* request */
-- u32 sa_bmval[2]; /* request */
-+ __u32 sa_bmval[2]; /* request */
- struct iattr sa_iattr; /* request */
- };
-
- struct nfsd4_setclientid {
- nfs4_verifier se_verf; /* request */
-- u32 se_namelen; /* request */
-+ __u32 se_namelen; /* request */
- char * se_name; /* request */
-- u32 se_callback_prog; /* request */
-- u32 se_callback_netid_len; /* request */
-+ __u32 se_callback_prog; /* request */
-+ __u32 se_callback_netid_len; /* request */
- char * se_callback_netid_val; /* request */
-- u32 se_callback_addr_len; /* request */
-+ __u32 se_callback_addr_len; /* request */
- char * se_callback_addr_val; /* request */
-- u32 se_callback_ident; /* request */
-+ __u32 se_callback_ident; /* request */
- clientid_t se_clientid; /* response */
- nfs4_verifier se_confirm; /* response */
- };
-@@ -314,21 +314,21 @@
-
- /* also used for NVERIFY */
- struct nfsd4_verify {
-- u32 ve_bmval[2]; /* request */
-- u32 ve_attrlen; /* request */
-+ __u32 ve_bmval[2]; /* request */
-+ __u32 ve_attrlen; /* request */
- char * ve_attrval; /* request */
- };
-
- struct nfsd4_write {
- stateid_t wr_stateid; /* request */
-- u64 wr_offset; /* request */
-- u32 wr_stable_how; /* request */
-- u32 wr_buflen; /* request */
-+ __u64 wr_offset; /* request */
-+ __u32 wr_stable_how; /* request */
-+ __u32 wr_buflen; /* request */
- struct kvec wr_vec[RPCSVC_MAXPAGES]; /* request */
- int wr_vlen;
-
-- u32 wr_bytes_written; /* response */
-- u32 wr_how_written; /* response */
-+ __u32 wr_bytes_written; /* response */
-+ __u32 wr_how_written; /* response */
- nfs4_verifier wr_verifier; /* response */
- };
-
-@@ -370,12 +370,12 @@
-
- struct nfsd4_compoundargs {
- /* scratch variables for XDR decode */
-- u32 * p;
-- u32 * end;
-+ __u32 * p;
-+ __u32 * end;
- struct page ** pagelist;
- int pagelen;
-- u32 tmp[8];
-- u32 * tmpp;
-+ __u32 tmp[8];
-+ __u32 * tmpp;
- struct tmpbuf {
- struct tmpbuf *next;
- void (*release)(const void *);
-@@ -384,25 +384,25 @@
-
- struct svc_rqst *rqstp;
-
-- u32 taglen;
-+ __u32 taglen;
- char * tag;
-- u32 minorversion;
-- u32 opcnt;
-+ __u32 minorversion;
-+ __u32 opcnt;
- struct nfsd4_op *ops;
- struct nfsd4_op iops[8];
- };
-
- struct nfsd4_compoundres {
- /* scratch variables for XDR encode */
-- u32 * p;
-- u32 * end;
-+ __u32 * p;
-+ __u32 * end;
- struct xdr_buf * xbuf;
- struct svc_rqst * rqstp;
-
-- u32 taglen;
-+ __u32 taglen;
- char * tag;
-- u32 opcnt;
-- u32 * tagp; /* where to encode tag and opcount */
-+ __u32 opcnt;
-+ __u32 * tagp; /* where to encode tag and opcount */
- };
-
- #define NFS4_SVC_XDRSIZE sizeof(struct nfsd4_compoundargs)
-@@ -418,16 +418,16 @@
- cinfo->after_ctime_nsec = fhp->fh_post_ctime.tv_nsec;
- }
-
--int nfs4svc_encode_voidres(struct svc_rqst *, u32 *, void *);
--int nfs4svc_decode_compoundargs(struct svc_rqst *, u32 *,
-+int nfs4svc_encode_voidres(struct svc_rqst *, __u32 *, void *);
-+int nfs4svc_decode_compoundargs(struct svc_rqst *, __u32 *,
- struct nfsd4_compoundargs *);
--int nfs4svc_encode_compoundres(struct svc_rqst *, u32 *,
-+int nfs4svc_encode_compoundres(struct svc_rqst *, __u32 *,
- struct nfsd4_compoundres *);
- void nfsd4_encode_operation(struct nfsd4_compoundres *, struct nfsd4_op *);
- void nfsd4_encode_replay(struct nfsd4_compoundres *resp, struct nfsd4_op *op);
- int nfsd4_encode_fattr(struct svc_fh *fhp, struct svc_export *exp,
-- struct dentry *dentry, u32 *buffer, int *countp,
-- u32 *bmval, struct svc_rqst *);
-+ struct dentry *dentry, __u32 *buffer, int *countp,
-+ __u32 *bmval, struct svc_rqst *);
- extern int nfsd4_setclientid(struct svc_rqst *rqstp,
- struct nfsd4_setclientid *setclid);
- extern int nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/pmu.h linux-libc-headers-2.6.8.0/include/linux/pmu.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/pmu.h 2004-01-17 17:04:31.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/pmu.h 2004-08-26 05:42:08.000000000 -0500
-@@ -120,15 +120,15 @@
-
- /* no param */
- #define PMU_IOC_SLEEP _IO('B', 0)
--/* out param: u32* backlight value: 0 to 15 */
-+/* out param: __u32* backlight value: 0 to 15 */
- #define PMU_IOC_GET_BACKLIGHT _IOR('B', 1, size_t)
--/* in param: u32 backlight value: 0 to 15 */
-+/* in param: __u32 backlight value: 0 to 15 */
- #define PMU_IOC_SET_BACKLIGHT _IOW('B', 2, size_t)
--/* out param: u32* PMU model */
-+/* out param: __u32* PMU model */
- #define PMU_IOC_GET_MODEL _IOR('B', 3, size_t)
--/* out param: u32* has_adb: 0 or 1 */
-+/* out param: __u32* has_adb: 0 or 1 */
- #define PMU_IOC_HAS_ADB _IOR('B', 4, size_t)
--/* out param: u32* can_sleep: 0 or 1 */
-+/* out param: __u32* can_sleep: 0 or 1 */
- #define PMU_IOC_CAN_SLEEP _IOR('B', 5, size_t)
- /* no param, but historically was _IOR('B', 6, 0), meaning 4 bytes */
- #define PMU_IOC_GRAB_BACKLIGHT _IOR('B', 6, size_t)
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/reiserfs_fs.h linux-libc-headers-2.6.8.0/include/linux/reiserfs_fs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/reiserfs_fs.h 2004-08-18 13:16:04.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/reiserfs_fs.h 2004-08-26 13:26:06.000000000 -0500
-@@ -1821,7 +1821,7 @@
- * to use for a new object underneat it. The locality is returned
- * in disk byte order (le).
- */
--u32 reiserfs_choose_packing(struct inode *dir);
-+__u32 reiserfs_choose_packing(struct inode *dir);
-
- int is_reusable (struct super_block * s, b_blocknr_t block, int bit_value);
- void reiserfs_free_block (struct reiserfs_transaction_handle *th, struct inode *, b_blocknr_t, int for_unformatted);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/scx200_gpio.h linux-libc-headers-2.6.8.0/include/linux/scx200_gpio.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/scx200_gpio.h 2004-01-17 17:04:32.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/scx200_gpio.h 2004-08-26 13:26:01.000000000 -0500
-@@ -1,5 +1,5 @@
-
--u32 scx200_gpio_configure(int index, u32 set, u32 clear);
-+__u32 scx200_gpio_configure(int index, __u32 set, __u32 clear);
- void scx200_gpio_dump(unsigned index);
-
- extern unsigned scx200_gpio_base;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sdladrv.h linux-libc-headers-2.6.8.0/include/linux/sdladrv.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sdladrv.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/sdladrv.h 2004-08-26 05:42:08.000000000 -0500
-@@ -55,8 +55,8 @@
- extern int sdla_inten (sdlahw_t* hw);
- extern int sdla_intde (sdlahw_t* hw);
- extern int sdla_intack (sdlahw_t* hw);
--extern void S514_intack (sdlahw_t* hw, u32 int_status);
--extern void read_S514_int_stat (sdlahw_t* hw, u32* int_status);
-+extern void S514_intack (sdlahw_t* hw, __u32 int_status);
-+extern void read_S514_int_stat (sdlahw_t* hw, __u32* int_status);
- extern int sdla_intr (sdlahw_t* hw);
- extern int sdla_mapmem (sdlahw_t* hw, unsigned long addr);
- extern int sdla_peek (sdlahw_t* hw, unsigned long addr, void* buf,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/selection.h linux-libc-headers-2.6.8.0/include/linux/selection.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/selection.h 2004-06-23 16:52:56.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/selection.h 2004-08-26 05:42:08.000000000 -0500
-@@ -32,14 +32,14 @@
- extern int default_blu[];
-
- extern unsigned short *screen_pos(int currcons, int w_offset, int viewed);
--extern u16 screen_glyph(int currcons, int offset);
-+extern __u16 screen_glyph(int currcons, int offset);
- extern void complement_pos(int currcons, int offset);
- extern void invert_screen(int currcons, int offset, int count, int shift);
-
- extern void getconsxy(int currcons, unsigned char *p);
- extern void putconsxy(int currcons, unsigned char *p);
-
--extern u16 vcs_scr_readw(int currcons, const u16 *org);
--extern void vcs_scr_writew(int currcons, u16 val, u16 *org);
-+extern __u16 vcs_scr_readw(int currcons, const __u16 *org);
-+extern void vcs_scr_writew(int currcons, __u16 val, __u16 *org);
-
- #endif
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/serialP.h linux-libc-headers-2.6.8.0/include/linux/serialP.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/serialP.h 2004-08-18 13:16:04.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/serialP.h 2004-08-26 05:42:08.000000000 -0500
-@@ -39,8 +39,8 @@
- int xmit_fifo_size;
- int custom_divisor;
- int count;
-- u8 *iomem_base;
-- u16 iomem_reg_shift;
-+ __u8 *iomem_base;
-+ __u16 iomem_reg_shift;
- unsigned short close_delay;
- unsigned short closing_wait; /* time to wait before closing */
- struct async_icount icount;
-@@ -75,8 +75,8 @@
- int blocked_open; /* # of blocked opens */
- struct circ_buf xmit;
- spinlock_t xmit_lock;
-- u8 *iomem_base;
-- u16 iomem_reg_shift;
-+ __u8 *iomem_base;
-+ __u16 iomem_reg_shift;
- int io_type;
- struct work_struct work;
- struct tasklet_struct tlet;
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/clnt.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/clnt.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/clnt.h 2004-02-29 10:36:05.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/clnt.h 2004-08-26 05:42:08.000000000 -0500
-@@ -36,7 +36,7 @@
- atomic_t cl_users; /* number of references */
- struct rpc_xprt * cl_xprt; /* transport */
- struct rpc_procinfo * cl_procinfo; /* procedure info */
-- u32 cl_maxproc; /* max procedure number */
-+ __u32 cl_maxproc; /* max procedure number */
-
- char * cl_server; /* server machine name */
- char * cl_protname; /* protocol name */
-@@ -75,7 +75,7 @@
- #define RPC_MAXVERSION 4
- struct rpc_program {
- char * name; /* protocol name */
-- u32 number; /* program number */
-+ __u32 number; /* program number */
- unsigned int nrvers; /* number of versions */
- struct rpc_version ** version; /* version array */
- struct rpc_stat * stats; /* statistics */
-@@ -83,7 +83,7 @@
- };
-
- struct rpc_version {
-- u32 number; /* version number */
-+ __u32 number; /* version number */
- unsigned int nrprocs; /* number of procs */
- struct rpc_procinfo * procs; /* procedure array */
- };
-@@ -92,7 +92,7 @@
- * Procedure information
- */
- struct rpc_procinfo {
-- u32 p_proc; /* RPC procedure number */
-+ __u32 p_proc; /* RPC procedure number */
- kxdrproc_t p_encode; /* XDR encode function */
- kxdrproc_t p_decode; /* XDR decode function */
- unsigned int p_bufsiz; /* req. buffer size */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_asn1.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_asn1.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_asn1.h 2004-06-23 16:52:58.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_asn1.h 2004-08-26 13:26:25.000000000 -0500
-@@ -64,14 +64,14 @@
- (((o1)->len == (o2)->len) && \
- (memcmp((o1)->data,(o2)->data,(int) (o1)->len) == 0))
-
--u32 g_verify_token_header(
-+__u32 g_verify_token_header(
- struct xdr_netobj *mech,
- int *body_size,
- unsigned char **buf_in,
- int tok_type,
- int toksize);
-
--u32 g_get_mech_oid(struct xdr_netobj *mech, struct xdr_netobj * in_buf);
-+__u32 g_get_mech_oid(struct xdr_netobj *mech, struct xdr_netobj * in_buf);
-
- int g_token_size(
- struct xdr_netobj *mech,
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_krb5.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_krb5.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_krb5.h 2004-06-23 16:52:58.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_krb5.h 2004-08-26 13:26:21.000000000 -0500
-@@ -46,8 +46,8 @@
- int sealalg;
- struct crypto_tfm *enc;
- struct crypto_tfm *seq;
-- s32 endtime;
-- u32 seq_send;
-+ __s32 endtime;
-+ __u32 seq_send;
- struct xdr_netobj mech_used;
- };
-
-@@ -112,35 +112,35 @@
- #define ENCTYPE_DES3_CBC_SHA1 0x0010
- #define ENCTYPE_UNKNOWN 0x01ff
-
--s32
--make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
-+__s32
-+make_checksum(__s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
- struct xdr_netobj *cksum);
-
--u32
-+__u32
- krb5_make_token(struct krb5_ctx *context_handle, int qop_req,
- struct xdr_buf *input_message_buffer,
- struct xdr_netobj *output_message_buffer, int toktype);
-
--u32
-+__u32
- krb5_read_token(struct krb5_ctx *context_handle,
- struct xdr_netobj *input_token_buffer,
- struct xdr_buf *message_buffer,
- int *qop_state, int toktype);
-
--u32
-+__u32
- krb5_encrypt(struct crypto_tfm * key,
- void *iv, void *in, void *out, int length);
-
--u32
-+__u32
- krb5_decrypt(struct crypto_tfm * key,
- void *iv, void *in, void *out, int length);
-
--s32
-+__s32
- krb5_make_seq_num(struct crypto_tfm * key,
- int direction,
-- s32 seqnum, unsigned char *cksum, unsigned char *buf);
-+ __s32 seqnum, unsigned char *cksum, unsigned char *buf);
-
--s32
-+__s32
- krb5_get_seq_num(struct crypto_tfm * key,
- unsigned char *cksum,
-- unsigned char *buf, int *direction, s32 * seqnum);
-+ unsigned char *buf, int *direction, __s32 * seqnum);
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/svc.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/svc.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/svc.h 2004-08-18 13:16:07.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/svc.h 2004-08-26 05:42:08.000000000 -0500
-@@ -75,20 +75,20 @@
- */
- #define RPCSVC_MAXPAGES ((RPCSVC_MAXPAYLOAD+PAGE_SIZE-1)/PAGE_SIZE + 2)
-
--static inline u32 svc_getu32(struct kvec *iov)
-+static inline __u32 svc_getu32(struct kvec *iov)
- {
-- u32 val, *vp;
-+ __u32 val, *vp;
- vp = iov->iov_base;
- val = *vp++;
- iov->iov_base = (void*)vp;
-- iov->iov_len -= sizeof(u32);
-+ iov->iov_len -= sizeof(__u32);
- return val;
- }
--static inline void svc_putu32(struct kvec *iov, u32 val)
-+static inline void svc_putu32(struct kvec *iov, __u32 val)
- {
-- u32 *vp = iov->iov_base + iov->iov_len;
-+ __u32 *vp = iov->iov_base + iov->iov_len;
- *vp = val;
-- iov->iov_len += sizeof(u32);
-+ iov->iov_len += sizeof(__u32);
- }
-
-
-@@ -119,11 +119,11 @@
- short rq_arghi; /* pages available in argument page list */
- short rq_resused; /* pages used for result */
-
-- u32 rq_xid; /* transmission id */
-- u32 rq_prog; /* program number */
-- u32 rq_vers; /* program version */
-- u32 rq_proc; /* procedure number */
-- u32 rq_prot; /* IP protocol */
-+ __u32 rq_xid; /* transmission id */
-+ __u32 rq_prog; /* program number */
-+ __u32 rq_vers; /* program version */
-+ __u32 rq_proc; /* procedure number */
-+ __u32 rq_prot; /* IP protocol */
- unsigned short
- rq_secure : 1; /* secure port */
-
-@@ -156,7 +156,7 @@
- * Check buffer bounds after decoding arguments
- */
- static inline int
--xdr_argsize_check(struct svc_rqst *rqstp, u32 *p)
-+xdr_argsize_check(struct svc_rqst *rqstp, __u32 *p)
- {
- char *cp = (char *)p;
- struct kvec *vec = &rqstp->rq_arg.head[0];
-@@ -164,7 +164,7 @@
- }
-
- static inline int
--xdr_ressize_check(struct svc_rqst *rqstp, u32 *p)
-+xdr_ressize_check(struct svc_rqst *rqstp, __u32 *p)
- {
- struct kvec *vec = &rqstp->rq_res.head[0];
- char *cp = (char*)p;
-@@ -220,19 +220,19 @@
- }
-
- struct svc_deferred_req {
-- u32 prot; /* protocol (UDP or TCP) */
-+ __u32 prot; /* protocol (UDP or TCP) */
- struct sockaddr_in addr;
- struct svc_sock *svsk; /* where reply must go */
- struct cache_deferred_req handle;
- int argslen;
-- u32 args[0];
-+ __u32 args[0];
- };
-
- /*
- * RPC program
- */
- struct svc_program {
-- u32 pg_prog; /* program number */
-+ __u32 pg_prog; /* program number */
- unsigned int pg_lovers; /* lowest version */
- unsigned int pg_hivers; /* lowest version */
- unsigned int pg_nvers; /* number of versions */
-@@ -246,16 +246,16 @@
- * RPC program version
- */
- struct svc_version {
-- u32 vs_vers; /* version number */
-- u32 vs_nproc; /* number of procedures */
-+ __u32 vs_vers; /* version number */
-+ __u32 vs_nproc; /* number of procedures */
- struct svc_procedure * vs_proc; /* per-procedure info */
-- u32 vs_xdrsize; /* xdrsize needed for this version */
-+ __u32 vs_xdrsize; /* xdrsize needed for this version */
-
- /* Override dispatch function (e.g. when caching replies).
- * A return value of 0 means drop the request.
- * vs_dispatch == NULL means use default dispatcher.
- */
-- int (*vs_dispatch)(struct svc_rqst *, u32 *);
-+ int (*vs_dispatch)(struct svc_rqst *, __u32 *);
- };
-
- /*
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/xprt.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/xprt.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/xprt.h 2004-06-23 16:52:58.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/xprt.h 2004-08-26 05:42:08.000000000 -0500
-@@ -93,7 +93,7 @@
- __u32 rq_xid; /* request XID */
- int rq_cong; /* has incremented xprt->cong */
- int rq_received; /* receive completed */
-- u32 rq_seqno; /* gss seq no. used on req. */
-+ __u32 rq_seqno; /* gss seq no. used on req. */
-
- struct list_head rq_list;
-
-@@ -106,13 +106,13 @@
- /*
- * For authentication (e.g. auth_des)
- */
-- u32 rq_creddata[2];
-+ __u32 rq_creddata[2];
-
- /*
- * Partial send handling
- */
-
-- u32 rq_bytes_sent; /* Bytes we have sent */
-+ __u32 rq_bytes_sent; /* Bytes we have sent */
-
- unsigned long rq_xtime; /* when transmitted */
- int rq_ntrans;
-@@ -160,7 +160,7 @@
- /*
- * State of TCP reply receive stuff
- */
-- u32 tcp_recm, /* Fragment header */
-+ __u32 tcp_recm, /* Fragment header */
- tcp_xid, /* Current XID */
- tcp_reclen, /* fragment length */
- tcp_offset; /* fragment offset */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/suspend.h linux-libc-headers-2.6.8.0/include/linux/suspend.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/suspend.h 2004-08-18 13:16:05.000000000 -0500
-+++ linux-libc-headers-2.6.8.0/include/linux/suspend.h 2004-08-26 05:42:08.000000000 -0500
-@@ -23,7 +23,7 @@
- #define SWAP_FILENAME_MAXLENGTH 32
-
- struct suspend_header {
-- u32 version_code;
-+ __u32 version_code;
- unsigned long num_physpages;
- char machine[8];
- char version[20];
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sysdev.h linux-libc-headers-2.6.8.0/include/linux/sysdev.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sysdev.h 2004-03-28 07:52:11.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/sysdev.h 2004-08-26 05:42:08.000000000 -0500
-@@ -31,7 +31,7 @@
-
- /* Default operations for these types of devices */
- int (*shutdown)(struct sys_device *);
-- int (*suspend)(struct sys_device *, u32 state);
-+ int (*suspend)(struct sys_device *, __u32 state);
- int (*resume)(struct sys_device *);
- struct kset kset;
- };
-@@ -50,7 +50,7 @@
- int (*add)(struct sys_device *);
- int (*remove)(struct sys_device *);
- int (*shutdown)(struct sys_device *);
-- int (*suspend)(struct sys_device *, u32 state);
-+ int (*suspend)(struct sys_device *, __u32 state);
- int (*resume)(struct sys_device *);
- };
-
-@@ -65,7 +65,7 @@
- */
-
- struct sys_device {
-- u32 id;
-+ __u32 id;
- struct sysdev_class * cls;
- struct kobject kobj;
- };
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sysv_fs.h linux-libc-headers-2.6.8.0/include/linux/sysv_fs.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/sysv_fs.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/sysv_fs.h 2004-08-26 05:42:08.000000000 -0500
-@@ -9,12 +9,12 @@
-
-
- /* inode numbers are 16 bit */
--typedef u16 sysv_ino_t;
-+typedef __u16 sysv_ino_t;
-
- /* Block numbers are 24 bit, sometimes stored in 32 bit.
- On Coherent FS, they are always stored in PDP-11 manner: the least
- significant 16 bits come last. */
--typedef u32 sysv_zone_t;
-+typedef __u32 sysv_zone_t;
-
- /* 0 is non-existent */
- #define SYSV_BADBL_INO 1 /* inode of bad blocks file */
-@@ -25,29 +25,29 @@
- #define XENIX_NICINOD 100 /* number of inode cache entries */
- #define XENIX_NICFREE 100 /* number of free block list chunk entries */
- struct xenix_super_block {
-- u16 s_isize; /* index of first data zone */
-- u32 s_fsize __packed2__; /* total number of zones of this fs */
-+ __u16 s_isize; /* index of first data zone */
-+ __u32 s_fsize __packed2__; /* total number of zones of this fs */
- /* the start of the free block list: */
-- u16 s_nfree; /* number of free blocks in s_free, <= XENIX_NICFREE */
-- u32 s_free[XENIX_NICFREE]; /* first free block list chunk */
-+ __u16 s_nfree; /* number of free blocks in s_free, <= XENIX_NICFREE */
-+ __u32 s_free[XENIX_NICFREE]; /* first free block list chunk */
- /* the cache of free inodes: */
-- u16 s_ninode; /* number of free inodes in s_inode, <= XENIX_NICINOD */
-+ __u16 s_ninode; /* number of free inodes in s_inode, <= XENIX_NICINOD */
- sysv_ino_t s_inode[XENIX_NICINOD]; /* some free inodes */
- /* locks, not used by Linux: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
-- u32 s_time __packed2__; /* time of last super block update */
-- u32 s_tfree __packed2__; /* total number of free zones */
-- u16 s_tinode; /* total number of free inodes */
-- s16 s_dinfo[4]; /* device information ?? */
-+ __u32 s_time __packed2__; /* time of last super block update */
-+ __u32 s_tfree __packed2__; /* total number of free zones */
-+ __u16 s_tinode; /* total number of free inodes */
-+ __s16 s_dinfo[4]; /* device information ?? */
- char s_fname[6]; /* file system volume name */
- char s_fpack[6]; /* file system pack name */
- char s_clean; /* set to 0x46 when filesystem is properly unmounted */
- char s_fill[371];
-- s32 s_magic; /* version of file system */
-- s32 s_type; /* type of file system: 1 for 512 byte blocks
-+ __s32 s_magic; /* version of file system */
-+ __s32 s_type; /* type of file system: 1 for 512 byte blocks
- 2 for 1024 byte blocks
- 3 for 2048 byte blocks */
-
-@@ -63,61 +63,61 @@
-
- /* SystemV4 super-block data on disk */
- struct sysv4_super_block {
-- u16 s_isize; /* index of first data zone */
-- u16 s_pad0;
-- u32 s_fsize; /* total number of zones of this fs */
-+ __u16 s_isize; /* index of first data zone */
-+ __u16 s_pad0;
-+ __u32 s_fsize; /* total number of zones of this fs */
- /* the start of the free block list: */
-- u16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
-- u16 s_pad1;
-- u32 s_free[SYSV_NICFREE]; /* first free block list chunk */
-+ __u16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
-+ __u16 s_pad1;
-+ __u32 s_free[SYSV_NICFREE]; /* first free block list chunk */
- /* the cache of free inodes: */
-- u16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
-- u16 s_pad2;
-+ __u16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
-+ __u16 s_pad2;
- sysv_ino_t s_inode[SYSV_NICINOD]; /* some free inodes */
- /* locks, not used by Linux: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
-- u32 s_time; /* time of last super block update */
-- s16 s_dinfo[4]; /* device information ?? */
-- u32 s_tfree; /* total number of free zones */
-- u16 s_tinode; /* total number of free inodes */
-- u16 s_pad3;
-+ __u32 s_time; /* time of last super block update */
-+ __s16 s_dinfo[4]; /* device information ?? */
-+ __u32 s_tfree; /* total number of free zones */
-+ __u16 s_tinode; /* total number of free inodes */
-+ __u16 s_pad3;
- char s_fname[6]; /* file system volume name */
- char s_fpack[6]; /* file system pack name */
-- s32 s_fill[12];
-- s32 s_state; /* file system state: 0x7c269d38-s_time means clean */
-- s32 s_magic; /* version of file system */
-- s32 s_type; /* type of file system: 1 for 512 byte blocks
-+ __s32 s_fill[12];
-+ __s32 s_state; /* file system state: 0x7c269d38-s_time means clean */
-+ __s32 s_magic; /* version of file system */
-+ __s32 s_type; /* type of file system: 1 for 512 byte blocks
- 2 for 1024 byte blocks */
- };
-
- /* SystemV2 super-block data on disk */
- struct sysv2_super_block {
-- u16 s_isize; /* index of first data zone */
-- u32 s_fsize __packed2__; /* total number of zones of this fs */
-+ __u16 s_isize; /* index of first data zone */
-+ __u32 s_fsize __packed2__; /* total number of zones of this fs */
- /* the start of the free block list: */
-- u16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
-- u32 s_free[SYSV_NICFREE]; /* first free block list chunk */
-+ __u16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
-+ __u32 s_free[SYSV_NICFREE]; /* first free block list chunk */
- /* the cache of free inodes: */
-- u16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
-+ __u16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
- sysv_ino_t s_inode[SYSV_NICINOD]; /* some free inodes */
- /* locks, not used by Linux: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
-- u32 s_time __packed2__; /* time of last super block update */
-- s16 s_dinfo[4]; /* device information ?? */
-- u32 s_tfree __packed2__; /* total number of free zones */
-- u16 s_tinode; /* total number of free inodes */
-+ __u32 s_time __packed2__; /* time of last super block update */
-+ __s16 s_dinfo[4]; /* device information ?? */
-+ __u32 s_tfree __packed2__; /* total number of free zones */
-+ __u16 s_tinode; /* total number of free inodes */
- char s_fname[6]; /* file system volume name */
- char s_fpack[6]; /* file system pack name */
-- s32 s_fill[14];
-- s32 s_state; /* file system state: 0xcb096f43 means clean */
-- s32 s_magic; /* version of file system */
-- s32 s_type; /* type of file system: 1 for 512 byte blocks
-+ __s32 s_fill[14];
-+ __s32 s_state; /* file system state: 0xcb096f43 means clean */
-+ __s32 s_magic; /* version of file system */
-+ __s32 s_type; /* type of file system: 1 for 512 byte blocks
- 2 for 1024 byte blocks */
- };
-
-@@ -125,25 +125,25 @@
- #define V7_NICINOD 100 /* number of inode cache entries */
- #define V7_NICFREE 50 /* number of free block list chunk entries */
- struct v7_super_block {
-- u16 s_isize; /* index of first data zone */
-- u32 s_fsize __packed2__; /* total number of zones of this fs */
-+ __u16 s_isize; /* index of first data zone */
-+ __u32 s_fsize __packed2__; /* total number of zones of this fs */
- /* the start of the free block list: */
-- u16 s_nfree; /* number of free blocks in s_free, <= V7_NICFREE */
-- u32 s_free[V7_NICFREE]; /* first free block list chunk */
-+ __u16 s_nfree; /* number of free blocks in s_free, <= V7_NICFREE */
-+ __u32 s_free[V7_NICFREE]; /* first free block list chunk */
- /* the cache of free inodes: */
-- u16 s_ninode; /* number of free inodes in s_inode, <= V7_NICINOD */
-+ __u16 s_ninode; /* number of free inodes in s_inode, <= V7_NICINOD */
- sysv_ino_t s_inode[V7_NICINOD]; /* some free inodes */
- /* locks, not used by Linux or V7: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
-- u32 s_time __packed2__; /* time of last super block update */
-+ __u32 s_time __packed2__; /* time of last super block update */
- /* the following fields are not maintained by V7: */
-- u32 s_tfree __packed2__; /* total number of free zones */
-- u16 s_tinode; /* total number of free inodes */
-- u16 s_m; /* interleave factor */
-- u16 s_n; /* interleave factor */
-+ __u32 s_tfree __packed2__; /* total number of free zones */
-+ __u16 s_tinode; /* total number of free inodes */
-+ __u16 s_m; /* interleave factor */
-+ __u16 s_n; /* interleave factor */
- char s_fname[6]; /* file system name */
- char s_fpack[6]; /* file system pack name */
- };
-@@ -152,41 +152,41 @@
- #define COH_NICINOD 100 /* number of inode cache entries */
- #define COH_NICFREE 64 /* number of free block list chunk entries */
- struct coh_super_block {
-- u16 s_isize; /* index of first data zone */
-- u32 s_fsize __packed2__; /* total number of zones of this fs */
-+ __u16 s_isize; /* index of first data zone */
-+ __u32 s_fsize __packed2__; /* total number of zones of this fs */
- /* the start of the free block list: */
-- u16 s_nfree; /* number of free blocks in s_free, <= COH_NICFREE */
-- u32 s_free[COH_NICFREE] __packed2__; /* first free block list chunk */
-+ __u16 s_nfree; /* number of free blocks in s_free, <= COH_NICFREE */
-+ __u32 s_free[COH_NICFREE] __packed2__; /* first free block list chunk */
- /* the cache of free inodes: */
-- u16 s_ninode; /* number of free inodes in s_inode, <= COH_NICINOD */
-+ __u16 s_ninode; /* number of free inodes in s_inode, <= COH_NICINOD */
- sysv_ino_t s_inode[COH_NICINOD]; /* some free inodes */
- /* locks, not used by Linux: */
- char s_flock; /* lock during free block list manipulation */
- char s_ilock; /* lock during inode cache manipulation */
- char s_fmod; /* super-block modified flag */
- char s_ronly; /* flag whether fs is mounted read-only */
-- u32 s_time __packed2__; /* time of last super block update */
-- u32 s_tfree __packed2__; /* total number of free zones */
-- u16 s_tinode; /* total number of free inodes */
-- u16 s_interleave_m; /* interleave factor */
-- u16 s_interleave_n;
-+ __u32 s_time __packed2__; /* time of last super block update */
-+ __u32 s_tfree __packed2__; /* total number of free zones */
-+ __u16 s_tinode; /* total number of free inodes */
-+ __u16 s_interleave_m; /* interleave factor */
-+ __u16 s_interleave_n;
- char s_fname[6]; /* file system volume name */
- char s_fpack[6]; /* file system pack name */
-- u32 s_unique; /* zero, not used */
-+ __u32 s_unique; /* zero, not used */
- };
-
- /* SystemV/Coherent inode data on disk */
- struct sysv_inode {
-- u16 i_mode;
-- u16 i_nlink;
-- u16 i_uid;
-- u16 i_gid;
-- u32 i_size;
-- u8 i_data[3*(10+1+1+1)];
-- u8 i_gen;
-- u32 i_atime; /* time of last access */
-- u32 i_mtime; /* time of last modification */
-- u32 i_ctime; /* time of creation */
-+ __u16 i_mode;
-+ __u16 i_nlink;
-+ __u16 i_uid;
-+ __u16 i_gid;
-+ __u32 i_size;
-+ __u8 i_data[3*(10+1+1+1)];
-+ __u8 i_gen;
-+ __u32 i_atime; /* time of last access */
-+ __u32 i_mtime; /* time of last modification */
-+ __u32 i_ctime; /* time of creation */
- };
-
- /* SystemV/Coherent directory entry on disk */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/tiocl.h linux-libc-headers-2.6.8.0/include/linux/tiocl.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/tiocl.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/tiocl.h 2004-08-26 05:42:08.000000000 -0500
-@@ -23,7 +23,7 @@
-
- #define TIOCL_SELLOADLUT 5
- /* set characters to be considered alphabetic when selecting */
-- /* u32[8] bit array, 4 bytes-aligned with type */
-+ /* __u32[8] bit array, 4 bytes-aligned with type */
-
- /* these two don't return a value: they write it back in the type */
- #define TIOCL_GETSHIFTSTATE 6 /* write shift state */
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/umem.h linux-libc-headers-2.6.8.0/include/linux/umem.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/umem.h 2003-12-15 12:46:58.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/umem.h 2004-08-26 05:42:08.000000000 -0500
-@@ -110,19 +110,19 @@
- #define DMA_WRITE_TO_HOST 1
-
- struct mm_dma_desc {
-- u64 pci_addr;
-- u64 local_addr;
-- u32 transfer_size;
-- u32 zero1;
-- u64 next_desc_addr;
-- u64 sem_addr;
-- u32 control_bits;
-- u32 zero2;
-+ __u64 pci_addr;
-+ __u64 local_addr;
-+ __u32 transfer_size;
-+ __u32 zero1;
-+ __u64 next_desc_addr;
-+ __u64 sem_addr;
-+ __u32 control_bits;
-+ __u32 zero2;
-
- dma_addr_t data_dma_handle;
-
- /* Copy of the bits */
-- u64 sem_control_bits;
-+ __u64 sem_control_bits;
- } __attribute__((aligned(8)));
-
- #define PCI_VENDOR_ID_MICRO_MEMORY 0x1332
-diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/vt_buffer.h linux-libc-headers-2.6.8.0/include/linux/vt_buffer.h
---- linux-libc-headers-2.6.8.0-dist/include/linux/vt_buffer.h 2004-01-17 17:04:33.000000000 -0600
-+++ linux-libc-headers-2.6.8.0/include/linux/vt_buffer.h 2004-08-26 05:42:08.000000000 -0500
-@@ -28,7 +28,7 @@
- #endif
-
- #ifndef VT_BUF_HAVE_MEMSETW
--static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
-+static inline void scr_memsetw(__u16 *s, __u16 c, unsigned int count)
- {
- count /= 2;
- while (count--)
-@@ -37,7 +37,7 @@
- #endif
-
- #ifndef VT_BUF_HAVE_MEMCPYW
--static inline void scr_memcpyw(u16 *d, const u16 *s, unsigned int count)
-+static inline void scr_memcpyw(__u16 *d, const __u16 *s, unsigned int count)
- {
- count /= 2;
- while (count--)
-@@ -46,7 +46,7 @@
- #endif
-
- #ifndef VT_BUF_HAVE_MEMMOVEW
--static inline void scr_memmovew(u16 *d, const u16 *s, unsigned int count)
-+static inline void scr_memmovew(__u16 *d, const __u16 *s, unsigned int count)
- {
- if (d < s)
- scr_memcpyw(d, s, count);
+++ /dev/null
-#
-# Automatically generated make config: don't edit
-#
-CONFIG_X86=y
-# CONFIG_SBUS is not set
-CONFIG_UID16=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-# CONFIG_MODVERSIONS is not set
-CONFIG_KMOD=y
-
-#
-# Processor type and features
-#
-# CONFIG_M386 is not set
-# CONFIG_M486 is not set
-# CONFIG_M586 is not set
-# CONFIG_M586TSC is not set
-# CONFIG_M586MMX is not set
-# CONFIG_M686 is not set
-# CONFIG_MPENTIUMIII is not set
-# CONFIG_MPENTIUM4 is not set
-# CONFIG_MK6 is not set
-# CONFIG_MK7 is not set
-# CONFIG_MK8 is not set
-CONFIG_MELAN=y
-# CONFIG_MCRUSOE is not set
-# CONFIG_MWINCHIPC6 is not set
-# CONFIG_MWINCHIP2 is not set
-# CONFIG_MWINCHIP3D is not set
-# CONFIG_MCYRIXIII is not set
-# CONFIG_MVIAC3_2 is not set
-CONFIG_X86_WP_WORKS_OK=y
-CONFIG_X86_INVLPG=y
-CONFIG_X86_CMPXCHG=y
-CONFIG_X86_XADD=y
-CONFIG_X86_BSWAP=y
-CONFIG_X86_POPAD_OK=y
-# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_X86_L1_CACHE_SHIFT=4
-CONFIG_X86_USE_STRING_486=y
-CONFIG_X86_ALIGNMENT_16=y
-CONFIG_X86_F00F_WORKS_OK=y
-# CONFIG_X86_MCE is not set
-# CONFIG_TOSHIBA is not set
-# CONFIG_I8K is not set
-# CONFIG_MICROCODE is not set
-# CONFIG_X86_MSR is not set
-# CONFIG_X86_CPUID is not set
-# CONFIG_EDD is not set
-CONFIG_NOHIGHMEM=y
-# CONFIG_HIGHMEM4G is not set
-# CONFIG_HIGHMEM64G is not set
-# CONFIG_HIGHMEM is not set
-CONFIG_MATH_EMULATION=y
-CONFIG_MTRR=y
-# CONFIG_SMP is not set
-# CONFIG_X86_UP_APIC is not set
-# CONFIG_X86_UP_IOAPIC is not set
-# CONFIG_X86_TSC_DISABLE is not set
-
-#
-# General setup
-#
-CONFIG_NET=y
-CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GODIRECT is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_ISA=y
-CONFIG_PCI_NAMES=y
-CONFIG_EISA=y
-CONFIG_MCA=y
-CONFIG_HOTPLUG=y
-
-#
-# PCMCIA/CardBus support
-#
-CONFIG_PCMCIA=m
-CONFIG_CARDBUS=y
-CONFIG_TCIC=y
-CONFIG_I82092=y
-CONFIG_I82365=y
-
-#
-# PCI Hotplug Support
-#
-CONFIG_HOTPLUG_PCI=y
-# CONFIG_HOTPLUG_PCI_COMPAQ is not set
-# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-CONFIG_SYSVIPC=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-CONFIG_KCORE_ELF=y
-# CONFIG_KCORE_AOUT is not set
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_OOM_KILLER is not set
-CONFIG_PM=y
-CONFIG_APM=y
-# CONFIG_APM_IGNORE_USER_SUSPEND is not set
-CONFIG_APM_DO_ENABLE=y
-# CONFIG_APM_CPU_IDLE is not set
-# CONFIG_APM_DISPLAY_BLANK is not set
-CONFIG_APM_RTC_IS_GMT=y
-CONFIG_APM_ALLOW_INTS=y
-CONFIG_APM_REAL_MODE_POWER_OFF=y
-
-#
-# ACPI Support
-#
-# CONFIG_ACPI is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-# CONFIG_MTD is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play configuration
-#
-# CONFIG_PNP is not set
-# CONFIG_ISAPNP is not set
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_PS2 is not set
-# CONFIG_BLK_DEV_XD is not set
-# CONFIG_PARIDE is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_CISS_SCSI_TAPE is not set
-# CONFIG_CISS_MONITOR_THREAD is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-CONFIG_BLK_DEV_LOOP=y
-# CONFIG_BLK_DEV_NBD is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_SIZE=8192
-CONFIG_BLK_DEV_INITRD=y
-# CONFIG_BLK_STATS is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-# CONFIG_BLK_DEV_MD is not set
-# CONFIG_MD_LINEAR is not set
-# CONFIG_MD_RAID0 is not set
-# CONFIG_MD_RAID1 is not set
-# CONFIG_MD_RAID5 is not set
-# CONFIG_MD_MULTIPATH is not set
-# CONFIG_BLK_DEV_LVM is not set
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_MMAP is not set
-CONFIG_NETLINK_DEV=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_FILTER=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_FWMARK=y
-CONFIG_IP_ROUTE_NAT=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_TOS=y
-# CONFIG_IP_ROUTE_VERBOSE is not set
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-CONFIG_INET_ECN=y
-# CONFIG_SYN_COOKIES is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_IP_NF_CONNTRACK=y
-CONFIG_IP_NF_FTP=y
-# CONFIG_IP_NF_AMANDA is not set
-CONFIG_IP_NF_TFTP=y
-CONFIG_IP_NF_IRC=y
-CONFIG_IP_NF_QUEUE=y
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_MATCH_LIMIT=y
-CONFIG_IP_NF_MATCH_MAC=y
-CONFIG_IP_NF_MATCH_PKTTYPE=y
-CONFIG_IP_NF_MATCH_MARK=y
-CONFIG_IP_NF_MATCH_MULTIPORT=y
-CONFIG_IP_NF_MATCH_TOS=y
-CONFIG_IP_NF_MATCH_RECENT=y
-CONFIG_IP_NF_MATCH_ECN=y
-CONFIG_IP_NF_MATCH_DSCP=y
-CONFIG_IP_NF_MATCH_AH_ESP=y
-CONFIG_IP_NF_MATCH_LENGTH=y
-CONFIG_IP_NF_MATCH_TTL=y
-CONFIG_IP_NF_MATCH_TCPMSS=y
-CONFIG_IP_NF_MATCH_HELPER=y
-CONFIG_IP_NF_MATCH_STATE=y
-CONFIG_IP_NF_MATCH_CONNTRACK=y
-CONFIG_IP_NF_MATCH_UNCLEAN=y
-CONFIG_IP_NF_MATCH_OWNER=y
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=y
-CONFIG_IP_NF_TARGET_MIRROR=y
-CONFIG_IP_NF_NAT=y
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=y
-CONFIG_IP_NF_TARGET_REDIRECT=y
-CONFIG_IP_NF_NAT_LOCAL=y
-CONFIG_IP_NF_NAT_SNMP_BASIC=y
-CONFIG_IP_NF_NAT_IRC=y
-CONFIG_IP_NF_NAT_FTP=y
-CONFIG_IP_NF_NAT_TFTP=y
-CONFIG_IP_NF_MANGLE=y
-CONFIG_IP_NF_TARGET_TOS=y
-CONFIG_IP_NF_TARGET_ECN=y
-CONFIG_IP_NF_TARGET_DSCP=y
-CONFIG_IP_NF_TARGET_MARK=y
-CONFIG_IP_NF_TARGET_LOG=y
-CONFIG_IP_NF_TARGET_ULOG=y
-CONFIG_IP_NF_TARGET_TCPMSS=y
-CONFIG_IP_NF_ARPTABLES=y
-CONFIG_IP_NF_ARPFILTER=y
-CONFIG_IP_NF_ARP_MANGLE=y
-
-#
-# IP: Virtual Server Configuration
-#
-# CONFIG_IP_VS is not set
-# CONFIG_IPV6 is not set
-# CONFIG_KHTTPD is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-CONFIG_IPV6_SCTP__=y
-# CONFIG_IP_SCTP is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-CONFIG_SCTP_HMAC_SHA1=y
-# CONFIG_SCTP_HMAC_MD5 is not set
-# CONFIG_ATM is not set
-# CONFIG_VLAN_8021Q is not set
-
-#
-#
-#
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-
-#
-# Appletalk devices
-#
-# CONFIG_DEV_APPLETALK is not set
-# CONFIG_DECNET is not set
-CONFIG_BRIDGE=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_LLC is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_FASTROUTE is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=y
-CONFIG_NET_SCH_HTB=y
-CONFIG_NET_SCH_CSZ=y
-CONFIG_NET_SCH_HFSC=y
-CONFIG_NET_SCH_PRIO=y
-CONFIG_NET_SCH_RED=y
-CONFIG_NET_SCH_SFQ=y
-CONFIG_NET_SCH_TEQL=y
-CONFIG_NET_SCH_TBF=y
-CONFIG_NET_SCH_GRED=y
-CONFIG_NET_SCH_DELAY=y
-CONFIG_NET_SCH_DSMARK=y
-CONFIG_NET_SCH_INGRESS=y
-CONFIG_NET_QOS=y
-CONFIG_NET_ESTIMATOR=y
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_TCINDEX=y
-CONFIG_NET_CLS_ROUTE4=y
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=y
-CONFIG_NET_CLS_U32=y
-CONFIG_NET_CLS_RSVP=y
-CONFIG_NET_CLS_RSVP6=y
-CONFIG_NET_CLS_POLICE=y
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-# CONFIG_PHONE_IXJ is not set
-# CONFIG_PHONE_IXJ_PCMCIA is not set
-
-#
-# ATA/IDE/MFM/RLL support
-#
-CONFIG_IDE=y
-
-#
-# IDE, ATA and ATAPI Block devices
-#
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-# CONFIG_BLK_DEV_HD_IDE is not set
-# CONFIG_BLK_DEV_HD is not set
-CONFIG_BLK_DEV_IDEDISK=y
-CONFIG_IDEDISK_MULTI_MODE=y
-CONFIG_IDEDISK_STROKE=y
-CONFIG_BLK_DEV_IDECS=m
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_BLK_DEV_IDESCSI is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-
-#
-# IDE chipset support/bugfixes
-#
-# CONFIG_BLK_DEV_CMD640 is not set
-# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-# CONFIG_BLK_DEV_ISAPNP is not set
-CONFIG_BLK_DEV_IDEPCI=y
-CONFIG_BLK_DEV_GENERIC=y
-CONFIG_IDEPCI_SHARE_IRQ=y
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-# CONFIG_BLK_DEV_OFFBOARD is not set
-# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-CONFIG_IDEDMA_PCI_AUTO=y
-# CONFIG_IDEDMA_ONLYDISK is not set
-CONFIG_BLK_DEV_IDEDMA=y
-CONFIG_IDEDMA_PCI_WIP=y
-# CONFIG_BLK_DEV_ADMA100 is not set
-# CONFIG_BLK_DEV_AEC62XX is not set
-# CONFIG_BLK_DEV_ALI15X3 is not set
-# CONFIG_WDC_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-# CONFIG_BLK_DEV_ATIIXP is not set
-# CONFIG_AMD74XX_OVERRIDE is not set
-# CONFIG_BLK_DEV_CMD64X is not set
-# CONFIG_BLK_DEV_TRIFLEX is not set
-# CONFIG_BLK_DEV_CY82C693 is not set
-# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_HPT34X is not set
-# CONFIG_HPT34X_AUTODMA is not set
-# CONFIG_BLK_DEV_HPT366 is not set
-# CONFIG_BLK_DEV_PIIX is not set
-# CONFIG_BLK_DEV_NS87415 is not set
-# CONFIG_BLK_DEV_OPTI621 is not set
-# CONFIG_BLK_DEV_PDC202XX_OLD is not set
-# CONFIG_PDC202XX_BURST is not set
-# CONFIG_BLK_DEV_PDC202XX_NEW is not set
-# CONFIG_BLK_DEV_RZ1000 is not set
-# CONFIG_BLK_DEV_SC1200 is not set
-# CONFIG_BLK_DEV_SVWKS is not set
-# CONFIG_BLK_DEV_SIIMAGE is not set
-# CONFIG_BLK_DEV_SIS5513 is not set
-# CONFIG_BLK_DEV_SLC90E66 is not set
-# CONFIG_BLK_DEV_TRM290 is not set
-# CONFIG_BLK_DEV_VIA82CXXX is not set
-# CONFIG_IDE_CHIPSETS is not set
-CONFIG_IDEDMA_AUTO=y
-# CONFIG_IDEDMA_IVB is not set
-# CONFIG_DMA_NONPCI is not set
-# CONFIG_BLK_DEV_ATARAID is not set
-# CONFIG_BLK_DEV_ATARAID_PDC is not set
-# CONFIG_BLK_DEV_ATARAID_HPT is not set
-# CONFIG_BLK_DEV_ATARAID_MEDLEY is not set
-# CONFIG_BLK_DEV_ATARAID_SII is not set
-
-#
-# SCSI support
-#
-# CONFIG_SCSI is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_BOOT is not set
-# CONFIG_FUSION_ISENSE is not set
-# CONFIG_FUSION_CTL is not set
-# CONFIG_FUSION_LAN is not set
-
-#
-# IEEE 1394 (FireWire) support (EXPERIMENTAL)
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-# CONFIG_I2O_PCI is not set
-# CONFIG_I2O_BLOCK is not set
-# CONFIG_I2O_LAN is not set
-# CONFIG_I2O_SCSI is not set
-# CONFIG_I2O_PROC is not set
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-CONFIG_DUMMY=m
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=y
-# CONFIG_ETHERTAP is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-# CONFIG_SUNLANCE is not set
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNBMAC is not set
-# CONFIG_SUNQE is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_LANCE is not set
-# CONFIG_NET_VENDOR_SMC is not set
-# CONFIG_NET_VENDOR_RACAL is not set
-# CONFIG_AT1700 is not set
-# CONFIG_DEPCA is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_ISA is not set
-# CONFIG_SKMC is not set
-# CONFIG_NE2_MCA is not set
-# CONFIG_IBMLANA is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_AC3200 is not set
-# CONFIG_APRICOT is not set
-# CONFIG_B44 is not set
-# CONFIG_CS89x0 is not set
-# CONFIG_TULIP is not set
-# CONFIG_DE4X5 is not set
-# CONFIG_DGRS is not set
-# CONFIG_DM9102 is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_EEPRO100_PIO is not set
-# CONFIG_E100 is not set
-# CONFIG_LNE390 is not set
-# CONFIG_FEALNX is not set
-CONFIG_NATSEMI=y
-# CONFIG_NE2K_PCI is not set
-# CONFIG_FORCEDETH is not set
-# CONFIG_NE3210 is not set
-# CONFIG_ES3210 is not set
-# CONFIG_8139CP is not set
-# CONFIG_8139TOO is not set
-# CONFIG_8139TOO_PIO is not set
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-# CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_OLD_RX_RESET is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_SUNDANCE_MMIO is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_VIA_RHINE_MMIO is not set
-# CONFIG_WINBOND_840 is not set
-# CONFIG_NET_POCKET is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_MYRI_SBUS is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-# CONFIG_STRIP is not set
-# CONFIG_WAVELAN is not set
-# CONFIG_ARLAN is not set
-# CONFIG_AIRONET4500 is not set
-# CONFIG_AIRONET4500_NONCS is not set
-# CONFIG_AIRONET4500_PROC is not set
-# CONFIG_AIRO is not set
-CONFIG_HERMES=m
-CONFIG_HOSTAP=m
-# CONFIG_PLX_HERMES is not set
-# CONFIG_TMD_HERMES is not set
-# CONFIG_PCI_HERMES is not set
-# CONFIG_HOSTAP_PLX is not set
-# CONFIG_HOSTAP_PCI is not set
-
-#
-# Wireless Pcmcia cards support
-#
-CONFIG_PCMCIA_HERMES=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_AIRO_CS is not set
-# CONFIG_PCMCIA_ATMEL is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-# CONFIG_NET_FC is not set
-# CONFIG_RCPCI is not set
-# CONFIG_SHAPER is not set
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-
-#
-# PCMCIA network device support
-#
-# CONFIG_NET_PCMCIA is not set
-
-#
-# Amateur Radio support
-#
-# CONFIG_HAMRADIO is not set
-
-#
-# IrDA (infrared) support
-#
-# CONFIG_IRDA is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Old CD-ROM drivers (not SCSI, not IDE)
-#
-# CONFIG_CD_NO_IDESCSI is not set
-
-#
-# Input core support
-#
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_UINPUT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_SERIAL=y
-CONFIG_SERIAL_CONSOLE=y
-# CONFIG_SERIAL_EXTENDED is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=256
-
-#
-# I2C support
-#
-# CONFIG_I2C is not set
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
-# CONFIG_MOUSE is not set
-
-#
-# Joysticks
-#
-# CONFIG_INPUT_GAMEPORT is not set
-
-#
-# Input core support is needed for gameports
-#
-
-#
-# Input core support is needed for joysticks
-#
-# CONFIG_QIC02_TAPE is not set
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_IPMI_PANIC_EVENT is not set
-# CONFIG_IPMI_DEVICE_INTERFACE is not set
-# CONFIG_IPMI_KCS is not set
-# CONFIG_IPMI_WATCHDOG is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_SCx200 is not set
-# CONFIG_SCx200_GPIO is not set
-CONFIG_AMD_RNG=y
-# CONFIG_INTEL_RNG is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_AMD_PM768 is not set
-# CONFIG_NVRAM is not set
-CONFIG_RTC=y
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_SONYPI is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_FTAPE is not set
-# CONFIG_AGP is not set
-
-#
-# Direct Rendering Manager (XFree86 DRI support)
-#
-# CONFIG_DRM is not set
-
-#
-# PCMCIA character devices
-#
-# CONFIG_PCMCIA_SERIAL_CS is not set
-# CONFIG_SYNCLINK_CS is not set
-# CONFIG_MWAVE is not set
-# CONFIG_OBMOUSE is not set
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# File systems
-#
-# CONFIG_QUOTA is not set
-# CONFIG_QFMT_V2 is not set
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_ADFS_FS is not set
-# CONFIG_ADFS_FS_RW is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BEFS_DEBUG is not set
-# CONFIG_BFS_FS is not set
-CONFIG_EXT3_FS=y
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-# CONFIG_UMSDOS_FS is not set
-CONFIG_VFAT_FS=y
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-# CONFIG_JFFS2_FS is not set
-# CONFIG_CRAMFS is not set
-CONFIG_TMPFS=y
-CONFIG_RAMFS=y
-# CONFIG_ISO9660_FS is not set
-# CONFIG_JOLIET is not set
-# CONFIG_ZISOFS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_NTFS_FS is not set
-# CONFIG_NTFS_RW is not set
-# CONFIG_HPFS_FS is not set
-CONFIG_PROC_FS=y
-# CONFIG_DEVFS_FS is not set
-# CONFIG_DEVFS_MOUNT is not set
-# CONFIG_DEVFS_DEBUG is not set
-CONFIG_DEVPTS_FS=y
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QNX4FS_RW is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_EXT2_FS=y
-# CONFIG_SYSV_FS is not set
-# CONFIG_UDF_FS is not set
-# CONFIG_UDF_RW is not set
-# CONFIG_UFS_FS is not set
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_XFS_QUOTA is not set
-# CONFIG_XFS_RT is not set
-# CONFIG_XFS_TRACE is not set
-# CONFIG_XFS_DEBUG is not set
-
-#
-# Network File Systems
-#
-# CONFIG_CODA_FS is not set
-# CONFIG_INTERMEZZO_FS is not set
-# CONFIG_NFS_FS is not set
-# CONFIG_NFS_V3 is not set
-# CONFIG_NFS_DIRECTIO is not set
-# CONFIG_ROOT_NFS is not set
-# CONFIG_NFSD is not set
-# CONFIG_NFSD_V3 is not set
-# CONFIG_NFSD_TCP is not set
-# CONFIG_SUNRPC is not set
-# CONFIG_LOCKD is not set
-# CONFIG_SMB_FS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_NCPFS_PACKET_SIGNING is not set
-# CONFIG_NCPFS_IOCTL_LOCKING is not set
-# CONFIG_NCPFS_STRONG is not set
-# CONFIG_NCPFS_NFS_NS is not set
-# CONFIG_NCPFS_OS2_NS is not set
-# CONFIG_NCPFS_SMALLDOS is not set
-# CONFIG_NCPFS_NLS is not set
-# CONFIG_NCPFS_EXTRAS is not set
-# CONFIG_ZISOFS_FS is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_SMB_NLS is not set
-CONFIG_NLS=y
-
-#
-# Native Language Support
-#
-CONFIG_NLS_DEFAULT="iso8859-1"
-# CONFIG_NLS_CODEPAGE_437 is not set
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ISO8859_1 is not set
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_UTF8 is not set
-
-#
-# Console drivers
-#
-# CONFIG_VGA_CONSOLE is not set
-# CONFIG_VIDEO_SELECT is not set
-# CONFIG_MDA_CONSOLE is not set
-
-#
-# Frame-buffer support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-# CONFIG_USB is not set
-
-#
-# Support for USB gadgets
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# Bluetooth support
-#
-# CONFIG_BLUEZ is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=0
-
-#
-# Cryptographic options
-#
-# CONFIG_CRYPTO is not set
-
-#
-# Library routines
-#
-CONFIG_OPTIMIZE_FOR_SIZE=y
-CONFIG_CRC32=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-# CONFIG_FW_LOADER is not set
+++ /dev/null
-diff -urN ltp-full-20040506.orig/testcases/kernel/syscalls/fmtmsg/Makefile ltp-full-20040506/testcases/kernel/syscalls/fmtmsg/Makefile
---- ltp-full-20040506.orig/testcases/kernel/syscalls/fmtmsg/Makefile 2003-03-04 09:15:27.000000000 -0700
-+++ ltp-full-20040506/testcases/kernel/syscalls/fmtmsg/Makefile 2004-05-12 14:03:56.000000000 -0600
-@@ -24,7 +24,7 @@
- LOADLIBES+= -L../../../../lib -lltp
-
- SRCS=$(wildcard *.c)
--TARGETS=$(patsubst %.c,%,$(SRCS))
-+TARGETS=#$(patsubst %.c,%,$(SRCS))
-
- all: $(TARGETS)
-
-diff -urN ltp-full-20040506.orig/testcases/kernel/syscalls/profil/Makefile ltp-full-20040506/testcases/kernel/syscalls/profil/Makefile
---- ltp-full-20040506.orig/testcases/kernel/syscalls/profil/Makefile 2003-03-04 09:16:26.000000000 -0700
-+++ ltp-full-20040506/testcases/kernel/syscalls/profil/Makefile 2004-05-12 14:03:56.000000000 -0600
-@@ -23,7 +23,7 @@
- LOADLIBES+= -L../../../../lib -lltp
-
- SRCS=$(wildcard *.c)
--TARGETS=$(patsubst %.c,%,$(SRCS))
-+TARGETS=#$(patsubst %.c,%,$(SRCS))
-
- all: $(TARGETS)
-
-diff -urN ltp-full-20040506.orig/testcases/kernel/syscalls/swapon/swapon02.c ltp-full-20040506/testcases/kernel/syscalls/swapon/swapon02.c
---- ltp-full-20040506.orig/testcases/kernel/syscalls/swapon/swapon02.c 2004-04-23 12:13:20.000000000 -0600
-+++ ltp-full-20040506/testcases/kernel/syscalls/swapon/swapon02.c 2004-05-12 23:02:50.000000000 -0600
-@@ -85,9 +85,7 @@
- #include <sys/swap.h>
- #include <asm/page.h>
- #include <asm/atomic.h>
--#ifdef OLDER_DISTRO_RELEASE
--#include <linux/swap.h>
--#endif
-+#define MAX_SWAPFILES 32
- #include <fcntl.h>
- #include <pwd.h>
- #include <string.h>
-@@ -96,10 +94,6 @@
- #include "test.h"
- #include "usctest.h"
-
--#ifndef OLDER_DISTRO_RELEASE
--#define MAX_SWAPFILES 32
--#endif
--
- static void setup();
- static void cleanup();
- static int setup01();
+++ /dev/null
-For some reason the lzo autoconf script uses a local macro that does
-a test for cross-compiles, and assumes that if the build target name
-and the host target name are the same that --host was not specified to
-the configure script. In the uClibc buildroot, this is not the case.
-
---- lzo-1.08/aclocal.m4 2002-07-12 18:31:52.000000000 -0700
-+++ lzo-1.08/aclocal.m4.new 2004-03-10 15:32:42.000000000 -0700
-@@ -205,12 +205,6 @@
- [
- AC_REQUIRE([AC_PROG_CC])
-
--if test "X$cross_compiling" = Xyes; then
-- if test "X$build" = "X$host"; then
-- AC_MSG_ERROR([you are cross compiling - please use the \`--host=' option])
-- fi
--fi
--
- ])
-
-
---- lzo-1.08/configure-dist 2004-03-11 02:18:28.000000000 -0600
-+++ lzo-1.08/configure 2004-03-11 02:19:16.000000000 -0600
-@@ -2282,13 +2282,13 @@
-
-
-
--if test "X$cross_compiling" = Xyes; then
-- if test "X$build" = "X$host"; then
-- { { echo "$as_me:$LINENO: error: you are cross compiling - please use the \`--host=' option" >&5
--echo "$as_me: error: you are cross compiling - please use the \`--host=' option" >&2;}
-- { (exit 1); exit 1; }; }
-- fi
--fi
-+#if test "X$cross_compiling" = Xyes; then
-+# if test "X$build" = "X$host"; then
-+# { { echo "$as_me:$LINENO: error: you are cross compiling - please use the \`--host=' option" >&5
-+#echo "$as_me: error: you are cross compiling - please use the \`--host=' option" >&2;}
-+# { (exit 1); exit 1; }; }
-+# fi
-+#fi
-
-
-
+++ /dev/null
-###############################################################################
-#
-# MIME-TYPES and the extensions that represent them
-#
-# This file is part of the "mime-support" package. Please send email (not a
-# bug report) to mime-support@packages.debian.org if you would like new types
-# and/or extensions to be added.
-#
-# Note: Compression schemes like "gzip", "bzip", and "compress" are not
-# actually "mime-types". They are "encodings" and hence must _not_ have
-# entries in this file to map their extensions. The "mime-type" of an
-# encoded file refers to the type of data that has been encoded, not the
-# type of the encoding.
-#
-###############################################################################
-
-
-application/activemessage
-application/andrew-inset
-application/applefile
-application/atomicmail
-application/cu-seeme csm cu
-application/dca-rft
-application/dec-dx
-application/dsptype tsp
-application/futuresplash spl
-application/ghostview
-application/mac-binhex40 hqx
-application/macwriteii
-application/msaccess mdb
-application/msword doc dot
-application/news-message-id
-application/news-transmission
-application/octet-stream bin
-application/oda oda
-application/pdf pdf
-application/pgp-signature pgp
-application/postscript ps ai eps
-application/remote-printing
-application/rtf rtf
-application/slate
-application/vnd.ms-excel xls xlb
-application/vnd.ms-powerpoint ppt pps pot
-application/vnd.wap.wmlc wmlc
-application/vnd.wap.wmlscriptc wmlsc
-application/wita
-application/wordperfect5.1 wp5
-application/zip zip
-application/x-123 wk
-application/x-bcpio bcpio
-application/x-chess-pgn pgn
-application/x-core
-application/x-cpio cpio
-application/x-csh
-application/x-debian-package deb
-application/x-director dcr dir dxr
-application/x-dms dms
-application/x-dvi dvi
-application/x-executable
-application/x-font pfa pfb gsf pcf pcf.Z
-application/x-gnumeric gnumeric
-application/x-gtar gtar tgz
-application/x-hdf hdf
-application/x-httpd-php phtml pht php
-application/x-httpd-php3 php3
-application/x-httpd-php3-source phps
-application/x-httpd-php3-preprocessed php3p
-application/x-httpd-php4 php4
-application/x-ica ica
-application/x-java class
-application/x-javascript js
-application/x-kdelnk
-application/x-kchart chrt
-application/x-killustrator kil
-application/x-kpresenter kpr kpt
-application/x-kspread ksp
-application/x-kword kwd kwt
-application/x-latex latex
-application/x-lha lha
-application/x-lzh lzh
-application/x-lzx lzx
-application/x-maker frm maker frame fm fb book fbdoc
-application/x-mif mif
-application/x-msdos-program com exe bat dll
-application/x-msi msi
-application/x-netcdf nc cdf
-application/x-ns-proxy-autoconfig pac
-application/x-object o
-application/x-ogg ogg
-application/x-oz-application oza
-application/x-perl pl pm
-application/x-redhat-package-manager rpm
-application/x-rx
-application/x-sh
-application/x-shar shar
-application/x-shellscript
-application/x-shockwave-flash swf swfl
-application/x-stuffit sit
-application/x-sv4cpio sv4cpio
-application/x-sv4crc sv4crc
-application/x-tar tar
-application/x-tcl
-application/x-tex
-application/x-tex-gf gf
-application/x-tex-pk pk PK
-application/x-texinfo texinfo texi
-application/x-trash ~ % bak old sik
-application/x-troff t tr roff
-application/x-troff-man man
-application/x-troff-me me
-application/x-troff-ms ms
-application/x-ustar ustar
-application/x-wais-source src
-application/x-wingz wz
-
-audio/basic au snd
-audio/midi mid midi
-audio/mpeg mpga mpega mp2 mp3
-audio/mpegurl m3u
-audio/prs.sid sid
-audio/x-aiff aif aiff aifc
-audio/x-gsm gsm
-audio/x-pn-realaudio ra rm ram
-audio/x-wav wav
-
-image/bitmap bmp
-image/gif gif
-image/ief ief
-image/jpeg jpeg jpg jpe
-image/pcx pcx
-image/png png
-image/tiff tiff tif
-image/vnd.wap.wbmp wbmp
-image/x-cmu-raster ras
-image/x-coreldraw cdr
-image/x-coreldrawpattern pat
-image/x-coreldrawtemplate cdt
-image/x-corelphotopaint cpt
-image/x-jng jng
-image/x-portable-anymap pnm
-image/x-portable-bitmap pbm
-image/x-portable-graymap pgm
-image/x-portable-pixmap ppm
-image/x-rgb rgb
-image/x-xbitmap xbm
-image/x-xpixmap xpm
-image/x-xwindowdump xwd
-
-inode/chardevice
-inode/blockdevice
-inode/directory-locked
-inode/directory
-inode/fifo
-inode/socket
-
-message/external-body
-message/news
-message/partial
-message/rfc822
-
-multipart/alternative
-multipart/appledouble
-multipart/digest
-multipart/mixed
-multipart/parallel
-
-text/comma-separated-values csv
-text/css css
-text/english
-text/html htm html xhtml
-text/mathml mml
-text/plain txt text diff
-text/richtext rtx
-text/tab-separated-values tsv
-text/vnd.wap.wml wml
-text/vnd.wap.wmlscript wmls
-text/xml xml
-text/x-c++hdr h++ hpp hxx hh
-text/x-c++src c++ cpp cxx cc
-text/x-chdr h
-text/x-crontab
-text/x-csh csh
-text/x-csrc c
-text/x-java java
-text/x-makefile
-text/x-moc moc
-text/x-pascal p pas
-text/x-setext etx
-text/x-sh sh
-text/x-tcl tcl tk
-text/x-tex tex ltx sty cls
-text/x-vcalendar vcs
-text/x-vcard vcf
-
-video/dl dl
-video/fli fli
-video/gl gl
-video/mpeg mpeg mpg mpe
-video/quicktime qt mov
-video/x-mng mng
-video/x-ms-asf asf asx
-video/x-msvideo avi
-video/x-sgi-movie movie
-
-x-world/x-vrml vrm vrml wrl
+++ /dev/null
-Patches from Kevin P. Fleming <kpfleming@backtobasicsmgmt.com>.
-
---- mrouted-3.9-beta3.orig/main.c~ 2004-03-10 19:00:38.000000000 -0700
-+++ mrouted-3.9-beta3.orig/main.c 2004-03-10 19:02:33.000000000 -0700
-@@ -1001,10 +1001,8 @@
- thyme->tm_min, thyme->tm_sec, now.tv_usec / 1000, msg);
- if (syserr == 0)
- fprintf(stderr, "\n");
-- else if (syserr < sys_nerr)
-- fprintf(stderr, ": %s\n", sys_errlist[syserr]);
- else
-- fprintf(stderr, ": errno %d\n", syserr);
-+ fprintf(stderr, ": %s\n", strerror(syserr));
- }
-
- /*
---- mrouted-3.9-beta3.orig/mrinfo.c~ 1998-02-28 20:05:20.000000000 -0700
-+++ mrouted-3.9-beta3.orig/mrinfo.c 2004-03-10 19:01:49.000000000 -0700
-@@ -159,10 +159,8 @@
- vfprintf(stderr, fmt, ap);
- if (syserr == 0)
- fprintf(stderr, "\n");
-- else if (syserr < sys_nerr)
-- fprintf(stderr, ": %s\n", sys_errlist[syserr]);
- else
-- fprintf(stderr, ": errno %d\n", syserr);
-+ fprintf(stderr, ": %s\n", strerror(syserr));
- }
-
- if (severity <= LOG_ERR)
---- mrouted-3.9-beta3.orig/mapper.c~ 1998-01-05 18:57:47.000000000 -0700
-+++ mrouted-3.9-beta3.orig/mapper.c 2004-03-10 19:02:04.000000000 -0700
-@@ -197,10 +197,8 @@
- vfprintf(stderr, fmt, ap);
- if (syserr == 0)
- fprintf(stderr, "\n");
-- else if (syserr < sys_nerr)
-- fprintf(stderr, ": %s\n", sys_errlist[syserr]);
- else
-- fprintf(stderr, ": errno %d\n", syserr);
-+ fprintf(stderr, ": %s\n", strerror(syserr));
- }
-
- if (severity <= LOG_ERR)
+++ /dev/null
---- ncurses-5.2/ncurses/Makefile.in.orig 2000-10-14 17:55:35.000000000 -0500
-+++ ncurses-5.2/ncurses/Makefile.in 2004-08-09 11:34:13.000000000 -0500
-@@ -85,7 +85,7 @@
- CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
- HOSTCC = @BUILD_CC@
--HOSTCCFLAGS = @CFLAGS@ $(CPPFLAGS)
-+HOSTCCFLAGS = $(CPPFLAGS)
- HOSTLDFLAGS = @LDFLAGS@ @LIBS@
-
- CFLAGS_LIBTOOL = $(CCFLAGS)
+++ /dev/null
---- netkit-telnet-0.17/configure Thu Apr 11 10:40:58 2002
-+++ FIXEDnetkittelnet/configure Thu Apr 11 10:39:59 2002
-@@ -78,7 +78,6 @@
- for TRY in egcs gcc g++ CC c++ cc; do
- (
- $TRY __conftest.c -o __conftest || exit 1;
-- ./__conftest || exit 1;
- ) >/dev/null 2>&1 || continue;
- CC=$TRY
- break;
-@@ -94,7 +93,6 @@
- echo -n 'Checking if C compiler works... '
- if (
- $CC __conftest.c -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'yes'
- else
-@@ -125,7 +123,6 @@
- for TRY in egcs gcc g++ CC c++ cc; do
- (
- $TRY __conftest.cc -o __conftest || exit 1;
-- ./__conftest || exit 1;
- ) >/dev/null 2>&1 || continue;
- CXX=$TRY
- break;
-@@ -141,7 +138,6 @@
- echo -n 'Checking if C++ compiler works... '
- if (
- $CXX __conftest.cc -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'yes'
- else
-@@ -278,13 +274,11 @@
- EOF
- if (
- $CXX $CXXFLAGS __conftest.cc -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'yes'
- else
- if (
- $CXX $CXXFLAGS -D__USE_BSD_SIGNAL __conftest.cc -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-D__USE_BSD_SIGNAL'
- CFLAGS="$CFLAGS -D__USE_BSD_SIGNAL"
-@@ -292,6 +286,7 @@
- else
- echo 'no'
- echo 'This package needs BSD signal semantics to run.'
-+ echo "$CXX $CXXFLAGS -D__USE_BSD_SIGNAL __conftest.cc -o __conftest failed"
- rm -f __conftest*
- exit
- fi
-@@ -330,31 +325,6 @@
- echo 'no'
- fi
- fi
--
--if [ x$NCURSES != x ]; then
-- LIBTERMCAP=-lncurses
--else
-- echo -n 'Checking for traditional termcap... '
--cat <<EOF >__conftest.cc
--#include <stdio.h>
--#include <termcap.h>
--int main(void) {
-- tgetent(NULL, NULL); return 0;
--}
--
--EOF
-- if (
-- $CXX $CXXFLAGS __conftest.cc -ltermcap -o __conftest || exit 1
-- ) >/dev/null 2>&1; then
-- echo '-ltermcap'
-- LIBTERMCAP=-ltermcap
-- else
-- echo 'not found'
-- echo 'This package needs termcap to run.'
-- rm -f __conftest*
-- exit
-- fi
--fi
- rm -f __conftest*
-
- ##################################################
-@@ -468,7 +438,6 @@
- else
- if (
- $CXX $CXXFLAGS -D_GNU_SOURCE __conftest.cc -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-D_GNU_SOURCE'
- CFLAGS="$CFLAGS -D_GNU_SOURCE"
-@@ -501,20 +470,17 @@
- EOF
- if (
- $CXX $CXXFLAGS __conftest.cc $LIBBSD -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo 'ok'
- else
- if (
- $CXX $CXXFLAGS __conftest.cc -lsnprintf $LIBBSD -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-lsnprintf'
- LIBS="$LIBS -lsnprintf"
- else
- if (
- $CXX $CXXFLAGS __conftest.cc -ldb $LIBBSD -o __conftest || exit 1
-- ./__conftest || exit 1
- ) >/dev/null 2>&1; then
- echo '-ldb'
- LIBS="$LIBS -ldb"
-diff -urN netkit-telnet-0.17/telnetd/state.c netkit-telnet-0.17-dm/telnetd/state.c
---- netkit-telnet-0.17/telnetd/state.c 1999-12-12 11:41:44.000000000 -0800
-+++ netkit-telnet-0.17-dm/telnetd/state.c 2003-07-23 19:20:38.000000000 -0700
-@@ -43,10 +43,10 @@
-
- static int envvarok(char *varp);
-
--static unsigned char doopt[] = { IAC, DO, '%', 'c', 0 };
--static unsigned char dont[] = { IAC, DONT, '%', 'c', 0 };
--unsigned char will[] = { IAC, WILL, '%', 'c', 0 };
--unsigned char wont[] = { IAC, WONT, '%', 'c', 0 };
-+//static unsigned char doopt[] = { IAC, DO, '%', 'c', 0 };
-+//static unsigned char dont[] = { IAC, DONT, '%', 'c', 0 };
-+//unsigned char will[] = { IAC, WILL, '%', 'c', 0 };
-+//unsigned char wont[] = { IAC, WONT, '%', 'c', 0 };
-
- /*
- * Buffer for sub-options, and macros
-@@ -422,7 +422,7 @@
- set_his_want_state_will(option);
- do_dont_resp[option]++;
- }
-- netoprintf((char *)doopt, option);
-+ netoprintf( "%c%c%c", IAC, DO, option );
-
- DIAG(TD_OPTIONS, printoption("td: send do", option));
- }
-@@ -632,7 +632,7 @@
- set_his_want_state_wont(option);
- do_dont_resp[option]++;
- }
-- netoprintf((char *) dont, option);
-+ netoprintf ( "%c%c%c", IAC, DONT, option );
-
- DIAG(TD_OPTIONS, printoption("td: send dont", option));
- }
-@@ -769,7 +769,7 @@
- set_my_want_state_will(option);
- will_wont_resp[option]++;
- }
-- netoprintf((char *) will, option);
-+ netoprintf( "%c%c%c", IAC, WILL, option);
-
- DIAG(TD_OPTIONS, printoption("td: send will", option));
- }
-@@ -917,7 +917,7 @@
- set_my_want_state_wont(option);
- will_wont_resp[option]++;
- }
-- netoprintf((char *)wont, option);
-+ netoprintf( "%c%c%c", IAC, WONT, option);
-
- DIAG(TD_OPTIONS, printoption("td: send wont", option));
- }
+++ /dev/null
-diff -urN net-snmp-5.1-dist/agent/mibgroup/host/hr_system.c net-snmp-5.1/agent/mibgroup/host/hr_system.c
---- net-snmp-5.1-dist/agent/mibgroup/host/hr_system.c 2003-02-28 22:35:13.000000000 -0600
-+++ net-snmp-5.1/agent/mibgroup/host/hr_system.c 2004-03-31 22:06:05.000000000 -0600
-@@ -286,7 +286,11 @@
- current user */
- if (kill(utmp_p->ut_pid, 0) == -1 && errno == ESRCH) {
- utmp_p->ut_type = DEAD_PROCESS;
-+#if HAVE_UTMPX_H
- pututxline(utmp_p);
-+#else
-+ pututline(utmp_p);
-+#endif
- continue;
- }
- ++total;
-diff -urN net-snmp-5.1-dist/configure.in net-snmp-5.1/configure.in
---- net-snmp-5.1-dist/configure.in 2004-03-31 21:59:14.000000000 -0600
-+++ net-snmp-5.1/configure.in 2004-03-31 22:06:05.000000000 -0600
-@@ -1865,13 +1865,8 @@
- if test $cross_compiling = yes; then
- if test $with_endianness = "big"; then
- AC_DEFINE(WORDS_BIGENDIAN)
-- elif test -z $with_endianness; then
-- AC_MSG_ERROR([You are cross-compiling, but you have not specified the target's endianness])
- fi
- else
-- if test $with_endianness; then
-- AC_MSG_ERROR([Endianness has been specified, but you are not cross-compiling.])
-- fi
- AC_C_BIGENDIAN
- fi
-
+++ /dev/null
---- openssh-3.6.1p1/Makefile.in.orig 2003-03-20 17:34:34.000000000 -0700
-+++ openssh-3.6.1p1/Makefile.in 2003-04-25 17:09:00.000000000 -0600
-@@ -27,7 +27,7 @@
- RAND_HELPER=$(libexecdir)/ssh-rand-helper
- PRIVSEP_PATH=@PRIVSEP_PATH@
- SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@
--STRIP_OPT=@STRIP_OPT@
-+STRIP_OPT=
-
- PATHS= -DSSHDIR=\"$(sysconfdir)\" \
- -D_PATH_SSH_PROGRAM=\"$(SSH_PROGRAM)\" \
---- openssh-3.8p1/configure.ac.orig 2004-02-23 22:47:04.000000000 -0700
-+++ openssh-3.8p1/configure.ac 2004-03-19 01:41:47.000000000 -0700
-@@ -481,6 +481,9 @@
- [
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([*** compiler cannot create working executables, check config.log ***])
-+ ],
-+ [AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
- ]
- )
-
-@@ -632,6 +635,9 @@
- else
- AC_MSG_WARN([zlib version may have security problems])
- fi
-+ ],
-+ [AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
- ]
- )
-
-@@ -696,6 +702,9 @@
- [
- AC_MSG_RESULT(no)
- AC_DEFINE(BROKEN_ONE_BYTE_DIRENT_D_NAME)
-+ ],
-+ [AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
- ]
- )
-
-@@ -727,6 +736,9 @@
- [
- AC_MSG_RESULT(no)
- AC_MSG_ERROR([** Incomplete or missing s/key libraries.])
-+ ],
-+ [AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
- ])
- fi
- ]
-@@ -840,7 +852,11 @@
- ],
- [AC_MSG_RESULT(yes)],
- [AC_DEFINE(BROKEN_SETRESUID)
-- AC_MSG_RESULT(not implemented)]
-+ AC_MSG_RESULT(not implemented)
-+ ],
-+ [AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
-+ ]
- )
- ])
-
-@@ -854,7 +870,11 @@
- ],
- [AC_MSG_RESULT(yes)],
- [AC_DEFINE(BROKEN_SETRESGID)
-- AC_MSG_RESULT(not implemented)]
-+ AC_MSG_RESULT(not implemented)
-+ ],
-+ [AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
-+ ]
- )
- ])
-
-@@ -890,6 +910,9 @@
- AC_MSG_RESULT(no)
- AC_DEFINE(BROKEN_SNPRINTF)
- AC_MSG_WARN([****** Your snprintf() function is broken, complain to your vendor])
-+ ],
-+ [AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
- ]
- )
- fi
-@@ -963,7 +986,10 @@
- [
- AC_MSG_RESULT(no)
- AC_DEFINE(SSHD_ACQUIRES_CTTY)
-- ]
-+ ],
-+ [AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
-+ ]
- )
- fi
-
-@@ -1096,6 +1122,10 @@
- [
- AC_MSG_RESULT(not found)
- AC_MSG_ERROR(OpenSSL version header not found.)
-+ ],
-+ [
-+ ssl_header_ver="0x0090704fL (OpenSSL 0.9.7d 17 Mar 2004)"
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to $ssl_header_ver])
- ]
- )
-
-@@ -1129,6 +1159,10 @@
- [
- AC_MSG_RESULT(not found)
- AC_MSG_ERROR(OpenSSL library not found.)
-+ ],
-+ [
-+ ssl_header_ver="0x0090704fL (OpenSSL 0.9.7d 17 Mar 2004)"
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to $ssl_library_ver])
- ]
- )
-
-@@ -1148,7 +1182,11 @@
- AC_MSG_ERROR([Your OpenSSL headers do not match your library.
- Check config.log for details.
- Also see contrib/findssl.sh for help identifying header/library mismatches.])
-- ]
-+ ],
-+ [
-+ AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
-+ ]
- )
-
- # Some systems want crypt() from libcrypt, *not* the version in OpenSSL,
-@@ -1183,6 +1221,11 @@
- # Default to use of the rand helper if OpenSSL doesn't
- # seed itself
- USE_RAND_HELPER=yes
-+ ],
-+ [
-+ OPENSSL_SEEDS_ITSELF=yes
-+ AC_MSG_RESULT(yes)
-+ AC_MSG_WARN([Cannot run test when crosscompiling, defaulted to yes.])
- ]
- )
-
-@@ -1773,7 +1816,8 @@
- #else
- main() { exit(0); }
- #endif
-- ], [ true ], [ AC_DEFINE(BROKEN_SNPRINTF) ]
-+ ], [ true ], [ AC_DEFINE(BROKEN_SNPRINTF) ],
-+ [ true ]
- )
- fi
-
-@@ -1893,6 +1937,7 @@
- }
- ],
- [ ac_cv_have_accrights_in_msghdr="yes" ],
-+ [ ac_cv_have_accrights_in_msghdr="no" ],
- [ ac_cv_have_accrights_in_msghdr="no" ]
- )
- ])
-@@ -1917,7 +1962,8 @@
- }
- ],
- [ ac_cv_have_control_in_msghdr="yes" ],
-- [ ac_cv_have_control_in_msghdr="no" ]
-+ [ ac_cv_have_control_in_msghdr="no" ],
-+ [ ac_cv_have_control_in_msghdr="yes" ]
- )
- ])
- if test "x$ac_cv_have_control_in_msghdr" = "xyes" ; then
-@@ -2229,12 +2275,9 @@
- )
- fi
- fi
--AC_CHECK_FILE("/dev/ptc",
-- [
-- AC_DEFINE_UNQUOTED(HAVE_DEV_PTS_AND_PTC)
-- have_dev_ptc=1
-- ]
--)
-+AC_MSG_CHECKING([for "/dev/ptc"])
-+AC_MSG_RESULT(no)
-+have_dev_ptc=0
-
- # Options from here on. Some of these are preset by platform above
- AC_ARG_WITH(mantype,
-@@ -2329,15 +2372,8 @@
- fi
-
- # check for /etc/default/login and use it if present.
--AC_ARG_ENABLE(etc-default-login,
-- [ --disable-etc-default-login Disable using PATH from /etc/default/login [no]],,
--[
--AC_CHECK_FILE("/etc/default/login", [ external_path_file=/etc/default/login ])
--
--if test "x$external_path_file" = "x/etc/default/login"; then
-- AC_DEFINE(HAVE_ETC_DEFAULT_LOGIN)
--fi
--])
-+AC_MSG_CHECKING([for "/etc/default/login"])
-+AC_MSG_RESULT(no)
-
- dnl BSD systems use /etc/login.conf so --with-default-path= has no effect
- if test $ac_cv_func_login_getcapbool = "yes" -a \
---- openssh-3.8p1.orig/sshd_config Fri Sep 27 05:21:58 2002
-+++ openssh-3.8p1/sshd_config Mon Mar 17 14:55:00 2003
-@@ -89,5 +89,8 @@
- #Banner /some/path
- #VerifyReverseMapping no
-
-+ClientAliveInterval 15
-+ClientAliveCountMax 4
-+
- # override default of no subsystems
--Subsystem sftp /usr/libexec/sftp-server
-+Subsystem sftp /usr/sbin/sftp-server
---- openssh-3.6.1p1/S50sshd Fri Sep 27 05:21:58 2002
-+++ openssh-3.6.1p1/S50sshd Mon Mar 17 14:55:00 2003
-@@ -0,0 +1,64 @@
-+#!/bin/sh
-+#
-+# sshd Starts sshd.
-+#
-+
-+# Make sure the ssh-keygen progam exists
-+[ -f /usr/bin/ssh-keygen ] || exit 0
-+
-+# Check for the SSH1 RSA key
-+if [ ! -f /etc/ssh_host_key ] ; then
-+ echo Generating RSA Key...
-+ /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh_host_key -C '' -N ''
-+fi
-+
-+# Check for the SSH2 RSA key
-+if [ ! -f /etc/ssh_host_rsa_key ] ; then
-+ echo Generating RSA Key...
-+ /usr/bin/ssh-keygen -t rsa -f /etc/ssh_host_rsa_key -C '' -N ''
-+fi
-+
-+# Check for the SSH2 DSA key
-+if [ ! -f /etc/ssh_host_dsa_key ] ; then
-+ echo Generating DSA Key...
-+ echo THIS CAN TAKE A MINUTE OR TWO DEPENDING ON YOUR PROCESSOR!
-+ echo
-+ /usr/bin/ssh-keygen -t dsa -f /etc/ssh_host_dsa_key -C '' -N ''
-+fi
-+
-+umask 077
-+
-+start() {
-+ echo -n "Starting sshd: "
-+ /usr/sbin/sshd
-+ touch /var/lock/sshd
-+ echo "OK"
-+}
-+stop() {
-+ echo -n "Stopping sshd: "
-+ killall sshd
-+ rm -f /var/lock/sshd
-+ echo "OK"
-+}
-+restart() {
-+ stop
-+ start
-+}
-+
-+case "$1" in
-+ start)
-+ start
-+ ;;
-+ stop)
-+ stop
-+ ;;
-+ restart|reload)
-+ restart
-+ ;;
-+ *)
-+ echo $"Usage: $0 {start|stop|restart}"
-+ exit 1
-+esac
-+
-+exit $?
-+
+++ /dev/null
---- openssl-0.9.7.orig/Configure
-+++ openssl-0.9.7/Configure
-@@ -1,4 +1,4 @@
--:
-+#!/usr/bin/perl
- eval 'exec perl -S $0 ${1+"$@"}'
- if $running_under_some_shell;
- ##
-@@ -373,6 +373,41 @@
- # assembler versions -- currently defunct:
- ##"OpenBSD-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer:::(unknown):SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2:${alpha_asm}",
-
-+# Sane Linux configuration values, stolen from the Debian package....
-+"linux-alpha","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-alpha-ev4","gcc:-DTERMIO -O3 -mcpu=ev4 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-alpha-ev5","gcc:-DTERMIO -O3 -mcpu=ev5 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-armeb","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_RISC1::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-freebsd-alpha","gcc:-DTERMIOS -O -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-freebsd-i386", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::-pthread -D_REENTRANT -D_THREAD_SAFE -D_THREADSAFE:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-hppa","gcc:-DB_ENDIAN -DTERMIO -O2 -Wall::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-hurd-i386","gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-ia64","gcc:-DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+#"linux-i386","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC",
-+"linux-i386","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-i386-i486","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i486 -mcpu=i486 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-i386-i586","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i586 -mcpu=i586 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-i386-i686/cmov","gcc:-DL_ENDIAN -DTERMIO -O3 -march=i686 -mcpu=i686 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-m68k","gcc:-DB_ENDIAN -DTERMIO -O2 -Wall::-D_REENTRANT::-ldl:BN_LLONG MD2_CHAR RC4_INDEX::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-mips", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-mipsel", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-netbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-netbsd-m68k", "gcc:-DB_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-netbsd-sparc", "gcc:-DB_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-openbsd-alpha","gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown):::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-openbsd-i386", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -m486::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-openbsd-mips","gcc:-O2 -DL_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC2 DES_PTR BF_PTR:::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-powerpc","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG DES_UNROLL DES_RISC2 DES_PTR MD2_CHAR RC4_INDEX::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-s390","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sh3", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sh4", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sh3eb", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sh4eb", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sparc","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sparc-v8","gcc:-DB_ENDIAN -DTERMIO -O3 -mcpu=v8 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-sparc-v9","gcc:-DB_ENDIAN -DTERMIO -O3 -mcpu=v9 -Wa,-Av8plus -fomit-frame-pointer -Wall -DULTRASPARC -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-cris", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- # The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
- # bn86-elf.o file file since it is hand tweaked assembler.
- "linux-elf", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-@@ -416,6 +451,7 @@
-
- # Linux on ARM
- "linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"linux-elf-armeb","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT:::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-
- # SCO/Caldera targets.
- #
---- openssl-0.9.7.orig/crypto/md5/asm/md5-sparcv9.S
-+++ openssl-0.9.7/crypto/md5/asm/md5-sparcv9.S
-@@ -72,14 +72,14 @@
- #define Dval R8
-
- #if defined(MD5_BLOCK_DATA_ORDER)
--# if defined(OPENSSL_SYSNAME_ULTRASPARC)
-+/*# if defined(OPENSSL_SYSNAME_ULTRASPARC)*/
- # define LOAD lda
- # define X(i) [%i1+i*4]%asi
- # define md5_block md5_block_asm_data_order_aligned
- # define ASI_PRIMARY_LITTLE 0x88
--# else
-+/*# else
- # error "MD5_BLOCK_DATA_ORDER is supported only on UltraSPARC!"
--# endif
-+# endif*/
- #else
- # define LOAD ld
- # define X(i) [%i1+i*4]
---- openssl-0.9.7.orig/crypto/opensslconf.h
-+++ openssl-0.9.7/crypto/opensslconf.h
-@@ -4,17 +4,38 @@
- /* OpenSSL was configured with the following options: */
- #ifndef OPENSSL_DOING_MAKEDEPEND
-
-+#ifndef OPENSSL_NO_IDEA
-+# define OPENSSL_NO_IDEA
-+#endif
-+#ifndef OPENSSL_NO_MDC2
-+# define OPENSSL_NO_MDC2
-+#endif
-+#ifndef OPENSSL_NO_RC5
-+# define OPENSSL_NO_RC5
-+#endif
- #ifndef OPENSSL_NO_KRB5
- # define OPENSSL_NO_KRB5
- #endif
-
- #endif /* OPENSSL_DOING_MAKEDEPEND */
-+#ifndef OPENSSL_THREADS
-+# define OPENSSL_THREADS
-+#endif
-
- /* The OPENSSL_NO_* macros are also defined as NO_* if the application
- asks for it. This is a transient feature that is provided for those
- who haven't had the time to do the appropriate changes in their
- applications. */
- #ifdef OPENSSL_ALGORITHM_DEFINES
-+# if defined(OPENSSL_NO_IDEA) && !defined(NO_IDEA)
-+# define NO_IDEA
-+# endif
-+# if defined(OPENSSL_NO_MDC2) && !defined(NO_MDC2)
-+# define NO_MDC2
-+# endif
-+# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
-+# define NO_RC5
-+# endif
- # if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
- # define NO_KRB5
- # endif
-@@ -27,7 +48,7 @@
-
- #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
- #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
--#define OPENSSLDIR "/usr/local/ssl"
-+#define OPENSSLDIR "/usr/lib/ssl"
- #endif
- #endif
-
-@@ -79,7 +100,7 @@
-
- #if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
- #define CONFIG_HEADER_BN_H
--#undef BN_LLONG
-+#define BN_LLONG
-
- /* Should we define BN_DIV2W here? */
-
-@@ -98,7 +119,7 @@
- #define CONFIG_HEADER_RC4_LOCL_H
- /* if this is defined data[i] is used instead of *data, this is a %20
- * speedup on x86 */
--#undef RC4_INDEX
-+#define RC4_INDEX
- #endif
-
- #if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
-@@ -112,14 +133,14 @@
- /* the following is tweaked from a config script, that is why it is a
- * protected undef/define */
- #ifndef DES_PTR
--#undef DES_PTR
-+#define DES_PTR
- #endif
-
- /* This helps C compiler generate the correct code for multiple functional
- * units. It reduces register dependancies at the expense of 2 more
- * registers */
- #ifndef DES_RISC1
--#undef DES_RISC1
-+#define DES_RISC1
- #endif
-
- #ifndef DES_RISC2
-@@ -133,7 +154,7 @@
- /* Unroll the inner loop, this sometimes helps, sometimes hinders.
- * Very mucy CPU dependant */
- #ifndef DES_UNROLL
--#undef DES_UNROLL
-+#define DES_UNROLL
- #endif
-
- /* These default values were supplied by
---- openssl-0.9.7.orig/ssl/ssl_algs.c
-+++ openssl-0.9.7/ssl/ssl_algs.c
-@@ -109,3 +109,8 @@
- return(1);
- }
-
-+#undef SSLeay_add_ssl_algorithms
-+int SSLeay_add_ssl_algorithms(void)
-+ {
-+ return SSL_library_init();
-+ }
---- openssl-0.9.7.orig/tools/c_rehash.in
-+++ openssl-0.9.7/tools/c_rehash.in
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl
-+#!/usr/bin/perl
-
-
- # Perl c_rehash script, scan all files in a directory
---- openssl-0.9.7.orig/util/clean-depend.pl
-+++ openssl-0.9.7/util/clean-depend.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
- # Clean the dependency list in a makefile of standard includes...
- # Written by Ben Laurie <ben@algroup.co.uk> 19 Jan 1999
-
---- openssl-0.9.7.orig/util/extract-names.pl
-+++ openssl-0.9.7/util/extract-names.pl
-@@ -1,4 +1,4 @@
--#!/usr/bin/perl
-+#!/usr/bin/perl
-
- $/ = ""; # Eat a paragraph at once.
- while(<STDIN>) {
---- openssl-0.9.7.orig/util/mkdef.pl
-+++ openssl-0.9.7/util/mkdef.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
- #
- # generate a .def file
- #
---- openssl-0.9.7.orig/util/mkerr.pl
-+++ openssl-0.9.7/util/mkerr.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
-
- my $config = "crypto/err/openssl.ec";
- my $debug = 0;
---- openssl-0.9.7.orig/util/mkstack.pl
-+++ openssl-0.9.7/util/mkstack.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
-
- # This is a utility that searches out "DECLARE_STACK_OF()"
- # declarations in .h and .c files, and updates/creates/replaces
---- openssl-0.9.7.orig/util/pod2man.pl
-+++ openssl-0.9.7/util/pod2man.pl
-@@ -1,4 +1,4 @@
--: #!/usr/bin/perl-5.005
-+#!/usr/bin/perl
- eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
- if $running_under_some_shell;
-
---- openssl-0.9.7.orig/util/selftest.pl
-+++ openssl-0.9.7/util/selftest.pl
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl
- #
- # Run the test suite and generate a report
- #
+++ /dev/null
-#!/bin/sh -e
-#
-# Original version by Robert Leslie
-# <rob@mars.org>, edited by iwj and cs
-# Modified for openvpn by Alberto Gonzalez Iniesta <agi@agi.as>
-# Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>
-
-test $DEBIAN_SCRIPT_DEBUG && set -v -x
-
-DAEMON=/usr/sbin/openvpn
-CONFIG_DIR=/etc/openvpn
-test -x $DAEMON || exit 0
-test -d $CONFIG_DIR || exit 0
-
-start_vpn () {
- $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
- --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->"
- echo -n " $NAME"
-}
-stop_vpn () {
- kill `cat $PIDFILE` || true
- rm $PIDFILE
-}
-
-case "$1" in
-start)
- echo -n "Starting openvpn:"
-
- if test -z $2 ; then
- for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
- NAME=${CONFIG%%.conf}
- start_vpn
- done
- else
- if test -e $CONFIG_DIR/$2.conf ; then
- NAME=$2
- start_vpn
- else
- echo -n " No such VPN: $2"
- fi
- fi
- echo "."
-
- ;;
-stop)
- echo -n "Stopping openvpn:"
-
- if test -z $2 ; then
- for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
- NAME=`echo $PIDFILE | cut -c18-`
- NAME=${NAME%%.pid}
- stop_vpn
- echo -n " $NAME"
- done
- else
- if test -e /var/run/openvpn.$2.pid ; then
- PIDFILE=`ls /var/run/openvpn.$2.pid 2> /dev/null`
- NAME=`echo $PIDFILE | cut -c18-`
- NAME=${NAME%%.pid}
- stop_vpn
- echo -n " $NAME"
- else
- echo -n " No such VPN: $2"
- fi
- fi
- echo "."
- ;;
-# We only 'reload' for running VPNs. New ones will only start with 'start' or 'restart'.
-reload|force-reload)
- echo -n "Reloading openvpn:"
- for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
- NAME=`echo $PIDFILE | cut -c18-`
- NAME=${NAME%%.pid}
-# If openvpn if running under a different user than root we'll need to restart
- if egrep '^( |\t)*user' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
- stop_vpn
- sleep 1
- start_vpn
- echo -n "(restarted)"
- else
- kill -HUP `cat $PIDFILE` || true
-# start-stop-daemon --stop --signal HUP --quiet --oknodo \
-# --exec $DAEMON --pidfile $PIDFILE
- echo -n " $NAME"
- fi
- done
- echo "."
- ;;
-
-restart)
- $0 stop $2
- sleep 1
- $0 start $2
- ;;
-*)
- echo "Usage: $0 {start|stop|reload|restart|force-reload}" >&2
- exit 1
- ;;
-esac
-
-exit 0
-
-# vim:set ai et sts=2 sw=2 tw=0:
+++ /dev/null
-#! /bin/sh
-# A little script I whipped up to make it easy to
-# patch source trees and have sane error handling
-# -Erik
-#
-# (c) 2002 Erik Andersen <andersen@codepoet.org>
-
-# Set directories from arguments, or use defaults.
-targetdir=${1-.}
-patchdir=${2-../kernel-patches}
-patchpattern=${3-*}
-
-if [ ! -d "${targetdir}" ] ; then
- echo "Aborting. '${targetdir}' is not a directory."
- exit 1
-fi
-if [ ! -d "${patchdir}" ] ; then
- echo "Aborting. '${patchdir}' is not a directory."
- exit 1
-fi
-
-for i in ${patchdir}/${patchpattern} ; do
- case "$i" in
- *.gz)
- type="gzip"; uncomp="gunzip -dc"; ;;
- *.bz)
- type="bzip"; uncomp="bunzip -dc"; ;;
- *.bz2)
- type="bzip2"; uncomp="bunzip2 -dc"; ;;
- *.zip)
- type="zip"; uncomp="unzip -d"; ;;
- *.Z)
- type="compress"; uncomp="uncompress -c"; ;;
- *)
- type="plaintext"; uncomp="cat"; ;;
- esac
- echo ""
- echo "Applying ${i} using ${type}: "
- ${uncomp} ${i} | patch -p1 -E -d ${targetdir}
- if [ $? != 0 ] ; then
- echo "Patch failed! Please fix $i!"
- exit 1
- fi
-done
-
-# Check for rejects...
-if [ "`find $targetdir/ '(' -name '*.rej' -o -name '.*.rej' ')' -print`" ] ; then
- echo "Aborting. Reject files found."
- exit 1
-fi
-
-# Remove backup files
-find $targetdir/ '(' -name '*.orig' -o -name '.*.orig' ')' -exec rm -f {} \;
+++ /dev/null
-diff -ur pciutils-2.1.11.orig/lib/configure pciutils-2.1.11/lib/configure
---- pciutils-2.1.11.orig/lib/configure 2004-10-08 11:56:42.876316816 -0400
-+++ pciutils-2.1.11/lib/configure 2004-10-08 11:57:04.965958680 -0400
-@@ -25,7 +25,6 @@
- echo " $sys/$cpu $rel"
-
- c=config.h
--echo >$c "#define ARCH_`echo $cpu | tr 'a-z' 'A-Z'`"
- echo >>$c "#define OS_`echo $sys | tr 'a-z' 'A-Z'`"
-
- echo_n "Looking for access methods..."
-@@ -40,17 +39,6 @@
- ok=1
- ;;
- esac
-- case $cpu in
-- i386) echo_n " i386-ports"
-- echo >>$c '#define HAVE_PM_INTEL_CONF'
-- ok=1
-- ;;
-- alpha|ia64) echo >>$c '#define HAVE_64BIT_ADDRESS'
-- ;;
-- sparc|sparc64) echo >>$c '#define HAVE_64BIT_ADDRESS'
-- echo >>$c '#define HAVE_LONG_ADDRESS'
-- ;;
-- esac
- ;;
- FreeBSD)
- echo_n " fbsd-device"
+++ /dev/null
---- pcmcia-cs-3.1.34/etc/config.opts.orig Tue Jul 9 09:36:23 2002
-+++ pcmcia-cs-3.1.34/etc/config.opts Tue Jul 9 09:37:47 2002
-@@ -5,7 +5,7 @@
-
- # System resources available for PCMCIA devices
-
--include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff
-+include port 0x100-0x4ff, port 0xc00-0xcff
- include memory 0xc0000-0xfffff
- include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff
-
-diff -urN pcmcia-cs-3.2.3.orig/etc/shared pcmcia-cs-3.2.3/etc/shared
---- pcmcia-cs-3.2.3.orig/etc/shared 2002-08-18 21:21:11.000000000 -0600
-+++ pcmcia-cs-3.2.3/etc/shared 2003-02-14 05:05:07.000000000 -0700
-@@ -2,6 +2,8 @@
- # shared 1.31 2002/08/19 03:21:11 (David Hinds)
- #
-
-+umask 022
-+
- usage ()
- {
- echo "usage: $0 [action] [device name]"
---- /dev/null 2003-01-21 22:14:35.000000000 -0700
-+++ pcmcia-cs-3.2.4/etc/pcmcia 2003-06-09 12:04:02.000000000 -0600
-@@ -0,0 +1,6 @@
-+# Defaults for pcmcia (sourced by /etc/init.d/S30pcmcia)
-+PCMCIA=yes
-+PCIC=yenta_socket
-+PCIC_OPTS=
-+CORE_OPTS=
-+CARDMGR_OPTS=
---- pcmcia-cs-3.2.4/etc/rc.pcmcia.orig 2002-08-08 00:43:43.000000000 -0600
-+++ pcmcia-cs-3.2.4/etc/rc.pcmcia 2003-06-09 15:17:28.000000000 -0600
-@@ -4,6 +4,8 @@
- #
- # This is designed to work in BSD as well as SysV init setups. See
- # the HOWTO for customization instructions.
-+# Modified to comply with Debian's standards by Brian Mays
-+# <brian@debian.org>.
-
- # Tags for Red Hat init configuration tools
- #
-@@ -26,9 +28,9 @@
- done
-
- # Source PCMCIA configuration, if available
--if [ -f /etc/pcmcia.conf ] ; then
-+if [ -f /etc/default/pcmcia ] ; then
- # Debian startup option file
-- . /etc/pcmcia.conf
-+ . /etc/default/pcmcia
- elif [ -f /etc/sysconfig/pcmcia ] ; then
- # Red Hat startup option file
- . /etc/sysconfig/pcmcia
-@@ -50,9 +52,22 @@
- done
- if [ "$PCMCIA" -a "$PCMCIA" != "yes" ] ; then exit 0 ; fi
-
-+# Debian modification: Fix PCIC for stand-alone modules.
-+# yenta_socket -> i82365 on these systems.
-+# Existence of a standalone module implies that it is preferred.
-+if [ -d /lib/modules/preferred ] ; then
-+ PC=/lib/modules/preferred/pcmcia
-+else
-+ PC=/lib/modules/`uname -r`/pcmcia
-+fi
-+if [ "$PCIC" = yenta_socket -a -e $PC/i82365.o \
-+ -a ! -L $PC/i82365.o ]; then
-+ PCIC=i82365
-+fi
-+
- usage()
- {
-- echo "Usage: $0 {start|stop|status|restart|reload}"
-+ echo "Usage: $0 {start|stop|status|restart|reload|force-reload}"
- }
-
- cleanup()
-@@ -84,7 +99,7 @@
- SC=/var/lib/pcmcia/scheme
- RUN=/var/lib/pcmcia
- else
-- SC=/var/run/pcmcia-scheme
-+ SC=/var/lib/misc/pcmcia-scheme
- RUN=/var/run
- fi
- if [ -L $SC -o ! -O $SC ] ; then rm -f $SC ; fi
-@@ -154,7 +172,7 @@
- ;;
-
- status)
-- pid=`/sbin/pidof cardmgr`
-+ pid=`/bin/pidof cardmgr`
- if [ "$pid" != "" ] ; then
- echo "cardmgr (pid $pid) is running..."
- EXITCODE=0
-@@ -164,12 +182,18 @@
- fi
- ;;
-
-- restart|reload)
-+ restart)
- $0 stop
- $0 start
- EXITCODE=$?
- ;;
-
-+ reload|force-reload)
-+ echo "Reloading $DESC configuration files."
-+ kill -1 `cat /var/run/cardmgr.pid` 2>/dev/null
-+ EXITCODE=0
-+ ;;
-+
- *)
- usage
- ;;
-@@ -179,4 +203,4 @@
- done
-
- # Only exit if we're in our own subshell
--case $0 in *rc.pcmcia) exit $EXITCODE ;; esac
-+case $0 in *pcmcia) exit $EXITCODE ;; esac
+++ /dev/null
-diff -urN cross.o/Makefile cross.x/Makefile
---- Makefile 2003-04-15 14:35:51.000000000 -0600
-+++ perl-5.8.0.uclibc/cross/Makefile 2003-06-27 16:38:23.000000000 -0600
-@@ -49,8 +49,8 @@
- @echo toolchain: $(CC), $(CXX), $(LD), $(STRIP), $(AR), $(RANLIB)
- @echo Optimizations: $(FULL_OPTIMIZATION)
-
-- $(TOPDIR)/generate_config_sh config.sh-$(SYS) > $(TOPDIR)/../config.sh
-- $(TOPDIR)/generate_config_sh config.sh-$(SYS) > $(TOPDIR)/../config.sh-arse
-+ $(TOPDIR)/generate_config_sh config.sh.uclibc > $(TOPDIR)/../config.sh
-+ $(TOPDIR)/generate_config_sh config.sh.uclibc > $(TOPDIR)/../config.sh-arse
- cd $(TOPDIR)/.. ; ./Configure -S ; make depend ; make ; make more
- cd $(TOPDIR)/.. ; mkdir -p fake_config_library ; cp lib/Config.pm fake_config_library
- cd $(TOPDIR)/.. ; $(MAKE) more2 "PERLRUN=/usr/bin/perl -I$(TOPDIR)/../fake_config_library -MConfig"
-diff -urN cross.o/config.sh.uclibc cross.x/config.sh.uclibc
---- /dev/null
-+++ perl-5.8.0.uclibc/cross/config.sh.uclibc 2003-06-27 16:53:28.000000000 -0600
-@@ -0,0 +1,978 @@
-+#!/bin/sh
-+#
-+# This file was produced by running the Configure script. It holds all the
-+# definitions figured out by Configure. Should you modify one of these values,
-+# do not forget to propagate your changes by running "Configure -der". You may
-+# instead choose to run each of the .SH files by yourself, or "Configure -S".
-+#
-+
-+# Package name : perl5
-+# Source directory : .
-+# Configuration time: Fri Jun 27 16:41:22 MDT 2003
-+# Configured by : root
-+# Target system : <whatever>
-+
-+Author=''
-+Date='$Date'
-+Header=''
-+Id='$Id'
-+Locker=''
-+Log='$Log'
-+Mcc='Mcc'
-+RCSfile='$RCSfile'
-+Revision='$Revision'
-+Source=''
-+State=''
-+_a='.a'
-+_exe=''
-+_o='.o'
-+afs='false'
-+afsroot='/afs'
-+alignbytes='4'
-+ansi2knr=''
-+aphostname='/bin/hostname'
-+api_revision='5'
-+api_subversion='0'
-+api_version='8'
-+api_versionstring='5.8.0'
-+ar='TARGET_CROSSar'
-+archlib='/usr/lib/perl/5.8.0/TARGET_ARCH-linux'
-+archlibexp='/usr/lib/perl/5.8.0/TARGET_ARCH-linux'
-+archname64=''
-+archname='TARGET_ARCH-linux'
-+archobjs=''
-+asctime_r_proto='0'
-+awk='awk'
-+baserev='5.0'
-+bash=''
-+bin='/usr/bin'
-+binexp='/usr/bin'
-+bison='bison'
-+byacc='byacc'
-+byteorder='1234'
-+c=''
-+castflags='0'
-+cat='cat'
-+cc='TARGET_CROSScc'
-+cccdlflags='-fpic'
-+ccdlflags='-rdynamic'
-+ccflags='-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-+ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-+ccname='gcc'
-+ccsymbols='__ARM_ARCH_4T__=1 __GNUC_MINOR__=3 __GNUC_PATCHLEVEL__=0'
-+ccversion=''
-+cf_by='root'
-+charsize='1'
-+chgrp=''
-+chmod='chmod'
-+chown=''
-+clocktype='clock_t'
-+comm='comm'
-+compress=''
-+contains='grep'
-+cp='cp'
-+cpio=''
-+cpp='cpp'
-+cpp_stuff='42'
-+cppccsymbols='__GNUC__=3'
-+cppflags='-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-+cpplast='-'
-+cppminus='-'
-+cpprun='TARGET_CROSScc -E'
-+cppstdin='TARGET_CROSScc -E'
-+cppsymbols='BIG_ENDIAN=4321 __BIG_ENDIAN=4321 __ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC_MINOR__=3 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 LITTLE_ENDIAN=1234 __LITTLE_ENDIAN=1234 _POSIX_C_SOURCE=199506 _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-+crypt_r_proto='0'
-+cryptlib=''
-+csh='csh'
-+ctermid_r_proto='0'
-+ctime_r_proto='0'
-+d_Gconvert='gcvt((x),(n),(b))'
-+d_PRIEUldbl='define'
-+d_PRIFUldbl='define'
-+d_PRIGUldbl='define'
-+d_PRIXU64='define'
-+d_PRId64='define'
-+d_PRIeldbl='define'
-+d_PRIfldbl='define'
-+d_PRIgldbl='define'
-+d_PRIi64='define'
-+d_PRIo64='define'
-+d_PRIu64='define'
-+d_PRIx64='define'
-+d_SCNfldbl='define'
-+d__fwalk='undef'
-+d_access='define'
-+d_accessx='undef'
-+d_alarm='define'
-+d_archlib='define'
-+d_asctime_r='undef'
-+d_atolf='undef'
-+d_atoll='define'
-+d_attribut='define'
-+d_bcmp='define'
-+d_bcopy='define'
-+d_bsd='undef'
-+d_bsdgetpgrp='undef'
-+d_bsdsetpgrp='undef'
-+d_bzero='define'
-+d_casti32='define'
-+d_castneg='define'
-+d_charvspr='define'
-+d_chown='define'
-+d_chroot='define'
-+d_chsize='undef'
-+d_class='undef'
-+d_closedir='define'
-+d_cmsghdr_s='define'
-+d_const='define'
-+d_crypt='define'
-+d_crypt_r='undef'
-+d_csh='undef'
-+d_ctermid_r='undef'
-+d_ctime_r='undef'
-+d_cuserid='undef'
-+d_dbl_dig='define'
-+d_dbminitproto='undef'
-+d_difftime='define'
-+d_dirfd='define'
-+d_dirnamlen='undef'
-+d_dlerror='define'
-+d_dlopen='define'
-+d_dlsymun='undef'
-+d_dosuid='undef'
-+d_drand48_r='undef'
-+d_drand48proto='define'
-+d_dup2='define'
-+d_eaccess='undef'
-+d_endgrent='define'
-+d_endgrent_r='undef'
-+d_endhent='define'
-+d_endhostent_r='undef'
-+d_endnent='define'
-+d_endnetent_r='undef'
-+d_endpent='define'
-+d_endprotoent_r='undef'
-+d_endpwent='define'
-+d_endpwent_r='undef'
-+d_endsent='define'
-+d_endservent_r='undef'
-+d_eofnblk='define'
-+d_eunice='undef'
-+d_fchdir='define'
-+d_fchmod='define'
-+d_fchown='define'
-+d_fcntl='define'
-+d_fcntl_can_lock='define'
-+d_fd_macros='define'
-+d_fd_set='define'
-+d_fds_bits='undef'
-+d_fgetpos='define'
-+d_finite='define'
-+d_finitel='undef'
-+d_flexfnam='define'
-+d_flock='define'
-+d_flockproto='define'
-+d_fork='define'
-+d_fp_class='undef'
-+d_fpathconf='define'
-+d_fpclass='undef'
-+d_fpclassify='define'
-+d_fpclassl='undef'
-+d_fpos64_t='undef'
-+d_frexpl='undef'
-+d_fs_data_s='undef'
-+d_fseeko='define'
-+d_fsetpos='define'
-+d_fstatfs='define'
-+d_fstatvfs='define'
-+d_fsync='define'
-+d_ftello='define'
-+d_ftime='undef'
-+d_getcwd='define'
-+d_getespwnam='undef'
-+d_getfsstat='undef'
-+d_getgrent='define'
-+d_getgrent_r='undef'
-+d_getgrgid_r='undef'
-+d_getgrnam_r='undef'
-+d_getgrps='define'
-+d_gethbyaddr='define'
-+d_gethbyname='define'
-+d_gethent='define'
-+d_gethname='define'
-+d_gethostbyaddr_r='undef'
-+d_gethostbyname_r='undef'
-+d_gethostent_r='undef'
-+d_gethostprotos='define'
-+d_getitimer='define'
-+d_getlogin='define'
-+d_getlogin_r='undef'
-+d_getmnt='undef'
-+d_getmntent='define'
-+d_getnbyaddr='define'
-+d_getnbyname='define'
-+d_getnent='define'
-+d_getnetbyaddr_r='undef'
-+d_getnetbyname_r='undef'
-+d_getnetent_r='undef'
-+d_getnetprotos='define'
-+d_getpagsz='define'
-+d_getpbyname='define'
-+d_getpbynumber='define'
-+d_getpent='define'
-+d_getpgid='define'
-+d_getpgrp2='undef'
-+d_getpgrp='define'
-+d_getppid='define'
-+d_getprior='define'
-+d_getprotobyname_r='undef'
-+d_getprotobynumber_r='undef'
-+d_getprotoent_r='undef'
-+d_getprotoprotos='define'
-+d_getprpwnam='undef'
-+d_getpwent='define'
-+d_getpwent_r='undef'
-+d_getpwnam_r='undef'
-+d_getpwuid_r='undef'
-+d_getsbyname='define'
-+d_getsbyport='define'
-+d_getsent='define'
-+d_getservbyname_r='undef'
-+d_getservbyport_r='undef'
-+d_getservent_r='undef'
-+d_getservprotos='define'
-+d_getspnam='define'
-+d_getspnam_r='undef'
-+d_gettimeod='define'
-+d_gmtime_r='undef'
-+d_gnulibc='undef'
-+d_grpasswd='define'
-+d_hasmntopt='define'
-+d_htonl='define'
-+d_index='undef'
-+d_inetaton='define'
-+d_int64_t='define'
-+d_isascii='define'
-+d_isfinite='undef'
-+d_isinf='define'
-+d_isnan='define'
-+d_isnanl='define'
-+d_killpg='define'
-+d_lchown='define'
-+d_ldbl_dig='define'
-+d_link='define'
-+d_localtime_r='undef'
-+d_locconv='define'
-+d_lockf='define'
-+d_longdbl='define'
-+d_longlong='define'
-+d_lseekproto='define'
-+d_lstat='define'
-+d_madvise='define'
-+d_mblen='define'
-+d_mbstowcs='define'
-+d_mbtowc='define'
-+d_memchr='define'
-+d_memcmp='define'
-+d_memcpy='define'
-+d_memmove='define'
-+d_memset='define'
-+d_mkdir='define'
-+d_mkdtemp='define'
-+d_mkfifo='define'
-+d_mkstemp='define'
-+d_mkstemps='undef'
-+d_mktime='define'
-+d_mmap='define'
-+d_modfl='undef'
-+d_modfl_pow32_bug='undef'
-+d_mprotect='define'
-+d_msg='define'
-+d_msg_ctrunc='define'
-+d_msg_dontroute='define'
-+d_msg_oob='define'
-+d_msg_peek='define'
-+d_msg_proxy='define'
-+d_msgctl='define'
-+d_msgget='define'
-+d_msghdr_s='define'
-+d_msgrcv='define'
-+d_msgsnd='define'
-+d_msync='define'
-+d_munmap='define'
-+d_mymalloc='undef'
-+d_nice='define'
-+d_nl_langinfo='define'
-+d_nv_preserves_uv='define'
-+d_off64_t='undef'
-+d_old_pthread_create_joinable='undef'
-+d_oldpthreads='undef'
-+d_oldsock='undef'
-+d_open3='define'
-+d_pathconf='define'
-+d_pause='define'
-+d_perl_otherlibdirs='undef'
-+d_phostname='undef'
-+d_pipe='define'
-+d_poll='define'
-+d_portable='define'
-+d_procselfexe='define'
-+d_pthread_atfork='undef'
-+d_pthread_yield='undef'
-+d_pwage='undef'
-+d_pwchange='undef'
-+d_pwclass='undef'
-+d_pwcomment='undef'
-+d_pwexpire='undef'
-+d_pwgecos='define'
-+d_pwpasswd='define'
-+d_pwquota='undef'
-+d_qgcvt='undef'
-+d_quad='define'
-+d_random_r='undef'
-+d_readdir64_r='undef'
-+d_readdir='define'
-+d_readdir_r='undef'
-+d_readlink='define'
-+d_readv='define'
-+d_recvmsg='define'
-+d_rename='define'
-+d_rewinddir='define'
-+d_rmdir='define'
-+d_safebcpy='undef'
-+d_safemcpy='undef'
-+d_sanemcmp='define'
-+d_sbrkproto='define'
-+d_sched_yield='define'
-+d_scm_rights='define'
-+d_seekdir='define'
-+d_select='define'
-+d_sem='define'
-+d_semctl='define'
-+d_semctl_semid_ds='define'
-+d_semctl_semun='define'
-+d_semget='define'
-+d_semop='define'
-+d_sendmsg='define'
-+d_setegid='define'
-+d_seteuid='define'
-+d_setgrent='define'
-+d_setgrent_r='undef'
-+d_setgrps='define'
-+d_sethent='define'
-+d_sethostent_r='undef'
-+d_setitimer='define'
-+d_setlinebuf='define'
-+d_setlocale='define'
-+d_setlocale_r='undef'
-+d_setnent='define'
-+d_setnetent_r='undef'
-+d_setpent='define'
-+d_setpgid='define'
-+d_setpgrp2='undef'
-+d_setpgrp='define'
-+d_setprior='define'
-+d_setproctitle='undef'
-+d_setprotoent_r='undef'
-+d_setpwent='define'
-+d_setpwent_r='undef'
-+d_setregid='define'
-+d_setresgid='define'
-+d_setresuid='define'
-+d_setreuid='define'
-+d_setrgid='undef'
-+d_setruid='undef'
-+d_setsent='define'
-+d_setservent_r='undef'
-+d_setsid='define'
-+d_setvbuf='define'
-+d_sfio='undef'
-+d_shm='define'
-+d_shmat='define'
-+d_shmatprototype='define'
-+d_shmctl='define'
-+d_shmdt='define'
-+d_shmget='define'
-+d_sigaction='define'
-+d_sigprocmask='define'
-+d_sigsetjmp='define'
-+d_sockatmark='undef'
-+d_sockatmarkproto='undef'
-+d_socket='define'
-+d_socklen_t='define'
-+d_sockpair='define'
-+d_socks5_init='undef'
-+d_sqrtl='undef'
-+d_srand48_r='undef'
-+d_srandom_r='undef'
-+d_sresgproto='undef'
-+d_sresuproto='undef'
-+d_statblks='define'
-+d_statfs_f_flags='undef'
-+d_statfs_s='define'
-+d_statvfs='define'
-+d_stdio_cnt_lval='undef'
-+d_stdio_ptr_lval='undef'
-+d_stdio_ptr_lval_nochange_cnt='undef'
-+d_stdio_ptr_lval_sets_cnt='undef'
-+d_stdio_stream_array='undef'
-+d_stdiobase='undef'
-+d_stdstdio='undef'
-+d_strchr='define'
-+d_strcoll='define'
-+d_strctcpy='define'
-+d_strerrm='strerror(e)'
-+d_strerror='define'
-+d_strerror_r='undef'
-+d_strftime='define'
-+d_strtod='define'
-+d_strtol='define'
-+d_strtold='define'
-+d_strtoll='define'
-+d_strtoq='define'
-+d_strtoul='define'
-+d_strtoull='define'
-+d_strtouq='define'
-+d_strxfrm='define'
-+d_suidsafe='undef'
-+d_symlink='define'
-+d_syscall='define'
-+d_syscallproto='define'
-+d_sysconf='define'
-+d_sysernlst=''
-+d_syserrlst='define'
-+d_system='define'
-+d_tcgetpgrp='define'
-+d_tcsetpgrp='define'
-+d_telldir='define'
-+d_telldirproto='define'
-+d_time='define'
-+d_times='define'
-+d_tm_tm_gmtoff='define'
-+d_tm_tm_zone='define'
-+d_tmpnam_r='undef'
-+d_truncate='define'
-+d_ttyname_r='undef'
-+d_tzname='define'
-+d_u32align='undef'
-+d_ualarm='undef'
-+d_umask='define'
-+d_uname='define'
-+d_union_semun='undef'
-+d_unordered='undef'
-+d_usleep='define'
-+d_usleepproto='define'
-+d_ustat='undef'
-+d_vendorarch='undef'
-+d_vendorbin='undef'
-+d_vendorlib='undef'
-+d_vfork='undef'
-+d_void_closedir='undef'
-+d_voidsig='define'
-+d_voidtty=''
-+d_volatile='define'
-+d_vprintf='define'
-+d_wait4='define'
-+d_waitpid='define'
-+d_wcstombs='define'
-+d_wctomb='define'
-+d_writev='define'
-+d_xenix='undef'
-+date='date'
-+db_hashtype='u_int32_t'
-+db_prefixtype='size_t'
-+db_version_major=''
-+db_version_minor=''
-+db_version_patch=''
-+defvoidused='15'
-+direntrytype='struct dirent'
-+dlext='so'
-+dlsrc='dl_dlopen.xs'
-+doublesize='8'
-+drand01='drand48()'
-+drand48_r_proto='0'
-+dynamic_ext='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared'
-+eagain='EAGAIN'
-+ebcdic='undef'
-+echo='echo'
-+egrep='egrep'
-+emacs=''
-+endgrent_r_proto='0'
-+endhostent_r_proto='0'
-+endnetent_r_proto='0'
-+endprotoent_r_proto='0'
-+endpwent_r_proto='0'
-+endservent_r_proto='0'
-+eunicefix=':'
-+exe_ext=''
-+expr='expr'
-+extensions='B ByteLoader Cwd Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared Errno'
-+extras=''
-+fflushNULL='define'
-+fflushall='undef'
-+find=''
-+firstmakefile='makefile'
-+flex=''
-+fpossize='16'
-+fpostype='fpos_t'
-+freetype='void'
-+from=':'
-+full_ar='/usr/bin/ar'
-+full_csh='csh'
-+full_sed='/bin/sed'
-+gccosandvers=''
-+gccversion='3.3'
-+getgrent_r_proto='0'
-+getgrgid_r_proto='0'
-+getgrnam_r_proto='0'
-+gethostbyaddr_r_proto='0'
-+gethostbyname_r_proto='0'
-+gethostent_r_proto='0'
-+getlogin_r_proto='0'
-+getnetbyaddr_r_proto='0'
-+getnetbyname_r_proto='0'
-+getnetent_r_proto='0'
-+getprotobyname_r_proto='0'
-+getprotobynumber_r_proto='0'
-+getprotoent_r_proto='0'
-+getpwent_r_proto='0'
-+getpwnam_r_proto='0'
-+getpwuid_r_proto='0'
-+getservbyname_r_proto='0'
-+getservbyport_r_proto='0'
-+getservent_r_proto='0'
-+getspnam_r_proto='0'
-+gidformat='"lu"'
-+gidsign='1'
-+gidsize='4'
-+gidtype='gid_t'
-+glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-+gmake='gmake'
-+gmtime_r_proto='0'
-+gnulibc_version=''
-+grep='grep'
-+groupcat='cat /etc/group'
-+groupstype='gid_t'
-+gzip='gzip'
-+h_fcntl='false'
-+h_sysfile='true'
-+hint='previous'
-+hostcat='cat /etc/hosts'
-+i16size='2'
-+i16type='short'
-+i32size='4'
-+i32type='long'
-+i64size='8'
-+i64type='long long'
-+i8size='1'
-+i8type='char'
-+i_arpainet='define'
-+i_bsdioctl=''
-+i_crypt='define'
-+i_db='undef'
-+i_dbm='undef'
-+i_dirent='define'
-+i_dld='undef'
-+i_dlfcn='define'
-+i_fcntl='undef'
-+i_float='define'
-+i_fp='undef'
-+i_fp_class='undef'
-+i_gdbm='undef'
-+i_grp='define'
-+i_ieeefp='undef'
-+i_inttypes='define'
-+i_langinfo='define'
-+i_libutil='undef'
-+i_limits='define'
-+i_locale='define'
-+i_machcthr='undef'
-+i_malloc='define'
-+i_math='define'
-+i_memory='undef'
-+i_mntent='define'
-+i_ndbm='undef'
-+i_netdb='define'
-+i_neterrno='undef'
-+i_netinettcp='define'
-+i_niin='define'
-+i_poll='define'
-+i_prot='undef'
-+i_pthread='define'
-+i_pwd='define'
-+i_rpcsvcdbm='undef'
-+i_sfio='undef'
-+i_sgtty='undef'
-+i_shadow='define'
-+i_socks='undef'
-+i_stdarg='define'
-+i_stddef='define'
-+i_stdlib='define'
-+i_string='define'
-+i_sunmath='undef'
-+i_sysaccess='undef'
-+i_sysdir='define'
-+i_sysfile='define'
-+i_sysfilio='undef'
-+i_sysin='undef'
-+i_sysioctl='define'
-+i_syslog='define'
-+i_sysmman='define'
-+i_sysmode='undef'
-+i_sysmount='define'
-+i_sysndir='undef'
-+i_sysparam='define'
-+i_sysresrc='define'
-+i_syssecrt='undef'
-+i_sysselct='define'
-+i_syssockio='undef'
-+i_sysstat='define'
-+i_sysstatfs='define'
-+i_sysstatvfs='define'
-+i_systime='define'
-+i_systimek='undef'
-+i_systimes='define'
-+i_systypes='define'
-+i_sysuio='define'
-+i_sysun='define'
-+i_sysutsname='define'
-+i_sysvfs='define'
-+i_syswait='define'
-+i_termio='undef'
-+i_termios='define'
-+i_time='define'
-+i_unistd='define'
-+i_ustat='undef'
-+i_utime='define'
-+i_values='define'
-+i_varargs='undef'
-+i_varhdr='stdarg.h'
-+i_vfork='undef'
-+ignore_versioned_solibs='y'
-+inc_version_list=' '
-+inc_version_list_init='0'
-+incpath=''
-+inews=''
-+installarchlib='./install_me_here/usr/lib/perl/5.8.0/TARGET_ARCH-linux'
-+installbin='./install_me_here/usr/bin'
-+installman1dir=''
-+installman3dir=''
-+installprefix='./install_me_here/usr/lib/perl/5.8.0'
-+installprefixexp='./install_me_here/usr/lib/perl/5.8.0'
-+installprivlib='./install_me_here/usr/lib/perl/5.8.0'
-+installscript='./install_me_here/usr/bin'
-+installsitearch='./install_me_here/usr/lib/perl/5.8.0/TARGET_ARCH-linux'
-+installsitebin='./install_me_here/usr/bin'
-+installsitelib='./install_me_here/usr/lib/perl/5.8.0'
-+installstyle='lib'
-+installusrbinperl='undef'
-+installvendorarch=''
-+installvendorbin=''
-+installvendorlib=''
-+intsize='4'
-+issymlink='/usr/bin/test -h'
-+ivdformat='"ld"'
-+ivsize='4'
-+ivtype='long'
-+known_extensions='B ByteLoader Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Encode Fcntl File/Glob Filter/Util/Call GDBM_File I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread Time/HiRes Unicode/Normalize XS/APItest XS/Typemap attrs re threads threads/shared'
-+ksh=''
-+ld='TARGET_CROSScc'
-+lddlflags='-shared'
-+ldflags=''
-+ldflags_uselargefiles=''
-+ldlibpthname='LD_LIBRARY_PATH'
-+less='less'
-+lib_ext='.a'
-+libc='/lib/libc.so.0'
-+libperl='libperl.a'
-+libpth='/lib /usr/lib'
-+libs='-ldl -lm -lpthread -lc -lcrypt'
-+libsdirs=''
-+libsfiles=''
-+libsfound=''
-+libspath=' /lib /usr/lib'
-+libswanted='sfio socket bind inet nm ndbm gdbm dbm db malloc dl dld ld sun m c cposix posix ndir dir crypt sec ucb BSD PW x util'
-+libswanted_uselargefiles=''
-+line=''
-+lint=''
-+lkflags=''
-+ln='ln'
-+lns='/bin/ln -s'
-+localtime_r_proto='0'
-+locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
-+loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
-+longdblsize='8'
-+longlongsize='8'
-+longsize='4'
-+lp=''
-+lpr=''
-+ls='ls'
-+lseeksize='8'
-+lseektype='off_t'
-+mail=''
-+mailx=''
-+make='make'
-+make_set_make='#'
-+mallocobj=''
-+mallocsrc=''
-+malloctype='void *'
-+man1dir=' '
-+man1direxp=''
-+man1ext='0'
-+man3dir=' '
-+man3direxp=''
-+man3ext='0'
-+mips_type=''
-+mkdir='mkdir'
-+mmaptype='void *'
-+modetype='mode_t'
-+more='more'
-+multiarch='undef'
-+mv=''
-+myarchname='TARGET_ARCH-linux'
-+n='-n'
-+need_va_copy='undef'
-+netdb_hlen_type='size_t'
-+netdb_host_type='const void *'
-+netdb_name_type='const char *'
-+netdb_net_type='in_addr_t'
-+nm='TARGET_CROSSnm'
-+nm_opt=''
-+nm_so_opt='--dynamic'
-+nonxs_ext='Errno'
-+nroff='nroff'
-+nvEUformat='"E"'
-+nvFUformat='"F"'
-+nvGUformat='"G"'
-+nv_preserves_uv_bits='32'
-+nveformat='"e"'
-+nvfformat='"f"'
-+nvgformat='"g"'
-+nvsize='8'
-+nvtype='double'
-+o_nonblock='O_NONBLOCK'
-+obj_ext='.o'
-+old_pthread_create_joinable=''
-+optimize='-O2'
-+orderlib='false'
-+osname='linux'
-+otherlibdirs=' '
-+package='perl5'
-+pager='/bin/more'
-+passcat='cat /etc/passwd'
-+patchlevel='8'
-+path_sep=':'
-+perl5=''
-+perl=''
-+perl_patchlevel=''
-+perllibs='-ldl -lm -lpthread -lc -lcrypt'
-+perlpath='/usr/bin/perl'
-+pg='pg'
-+phostname='hostname'
-+pidtype='pid_t'
-+plibpth=''
-+pm_apiversion='5.005'
-+pmake=''
-+pr=''
-+prefix='/usr/lib/perl/5.8.0'
-+prefixexp='/usr/lib/perl/5.8.0'
-+privlib='/usr/lib/perl/5.8.0'
-+privlibexp='/usr/lib/perl/5.8.0'
-+procselfexe='"/proc/self/exe"'
-+prototype='define'
-+ptrsize='4'
-+quadkind='3'
-+quadtype='long long'
-+randbits='48'
-+randfunc='drand48'
-+random_r_proto='0'
-+randseedtype='long'
-+ranlib='TARGET_CROSSranlib'
-+rd_nodata='-1'
-+readdir64_r_proto='0'
-+readdir_r_proto='0'
-+revision='5'
-+rm='rm'
-+rmail=''
-+run=''
-+runnm='true'
-+sPRIEUldbl='"E"'
-+sPRIFUldbl='"F"'
-+sPRIGUldbl='"G"'
-+sPRIXU64='"LX"'
-+sPRId64='"Ld"'
-+sPRIeldbl='"e"'
-+sPRIfldbl='"f"'
-+sPRIgldbl='"g"'
-+sPRIi64='"Li"'
-+sPRIo64='"Lo"'
-+sPRIu64='"Lu"'
-+sPRIx64='"Lx"'
-+sSCNfldbl='"f"'
-+sched_yield='sched_yield()'
-+scriptdir='/usr/bin'
-+scriptdirexp='/usr/bin'
-+sed='sed'
-+seedfunc='srand48'
-+selectminbits='32'
-+selecttype='fd_set *'
-+sendmail=''
-+setgrent_r_proto='0'
-+sethostent_r_proto='0'
-+setlocale_r_proto='0'
-+setnetent_r_proto='0'
-+setprotoent_r_proto='0'
-+setpwent_r_proto='0'
-+setservent_r_proto='0'
-+sh='/bin/sh'
-+shar=''
-+sharpbang='#!'
-+shmattype='void *'
-+shortsize='2'
-+shrpenv=''
-+shsharp='true'
-+sig_count='64'
-+sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-+sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-+sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-+sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-+sig_size='68'
-+signal_t='void'
-+sitearch='/usr/lib/perl/5.8.0/TARGET_ARCH-linux'
-+sitearchexp='/usr/lib/perl/5.8.0/TARGET_ARCH-linux'
-+sitebin='/usr/bin'
-+sitebinexp='/usr/bin'
-+sitelib='/usr/lib/perl/5.8.0'
-+sitelib_stem='/usr/lib/perl/5.8.0/lib/site_perl'
-+sitelibexp='/usr/lib/perl/5.8.0'
-+siteprefix='/usr/lib/perl/5.8.0'
-+siteprefixexp='/usr/lib/perl/5.8.0'
-+sizesize='4'
-+sizetype='size_t'
-+sleep=''
-+smail=''
-+so='so'
-+sockethdr=''
-+socketlib=''
-+socksizetype='socklen_t'
-+sort='sort'
-+spackage='Perl5'
-+spitshell='cat'
-+srand48_r_proto='0'
-+srandom_r_proto='0'
-+src='.'
-+ssizetype='ssize_t'
-+startperl='#!/usr/bin/perl'
-+startsh='#!/bin/sh'
-+static_ext=' '
-+stdchar='char'
-+stdio_base='((fp)->_base)'
-+stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-+stdio_cnt='((fp)->_cnt)'
-+stdio_filbuf=''
-+stdio_ptr='((fp)->_ptr)'
-+stdio_stream_array=''
-+strerror_r_proto='0'
-+strings='/usr/include/string.h'
-+submit=''
-+subversion='0'
-+sysman='/usr/man/man1'
-+tail=''
-+tar=''
-+targetarch=''
-+tbl=''
-+tee=''
-+test='test'
-+timeincl='/usr/include/sys/time.h /usr/include/time.h '
-+timetype='time_t'
-+tmpnam_r_proto='0'
-+to=':'
-+touch='touch'
-+tr='tr'
-+trnl='\n'
-+troff=''
-+ttyname_r_proto='0'
-+u16size='2'
-+u16type='unsigned short'
-+u32size='4'
-+u32type='unsigned long'
-+u64size='8'
-+u64type='unsigned long long'
-+u8size='1'
-+u8type='unsigned char'
-+uidformat='"lu"'
-+uidsign='1'
-+uidsize='4'
-+uidtype='uid_t'
-+uname='uname'
-+uniq='uniq'
-+uquadtype='unsigned long long'
-+use5005threads='undef'
-+use64bitall='undef'
-+use64bitint='undef'
-+usecrosscompile='undef'
-+usedl='define'
-+useithreads='undef'
-+uselargefiles='define'
-+uselongdouble='undef'
-+usemorebits='undef'
-+usemultiplicity='undef'
-+usemymalloc='n'
-+usenm='true'
-+useopcode='true'
-+useperlio='define'
-+useposix='true'
-+usereentrant='undef'
-+usesfio='false'
-+useshrplib='false'
-+usesocks='undef'
-+usethreads='undef'
-+usevendorprefix='undef'
-+usevfork='false'
-+usrinc='/usr/include'
-+uuname=''
-+uvXUformat='"lX"'
-+uvoformat='"lo"'
-+uvsize='4'
-+uvtype='unsigned long'
-+uvuformat='"lu"'
-+uvxformat='"lx"'
-+vendorarch=''
-+vendorarchexp=''
-+vendorbin=''
-+vendorbinexp=''
-+vendorlib=''
-+vendorlib_stem=''
-+vendorlibexp=''
-+vendorprefix=''
-+vendorprefixexp=''
-+version='5.8.0'
-+version_patchlevel_string='version 8 subversion 0'
-+versiononly='undef'
-+vi=''
-+voidflags='15'
-+xlibpth='/usr/lib/386 /lib/386'
-+xs_apiversion='5.8.0'
-+yacc='yacc'
-+yaccflags=''
-+zcat=''
-+zip='zip'
-+# Configure command line arguments.
-+config_arg0='./Configure'
-+config_args='-Dprefix=/usr/lib/perl/5.8.0 -Uinstallusrbinperl -des'
-+config_argc=3
-+config_arg1='-Dprefix=/usr/lib/perl/5.8.0'
-+config_arg2='-Uinstallusrbinperl'
-+config_arg3='-des'
-+PERL_REVISION=5
-+PERL_VERSION=8
-+PERL_SUBVERSION=0
-+PERL_API_REVISION=5
-+PERL_API_VERSION=8
-+PERL_API_SUBVERSION=0
-+PERL_PATCHLEVEL=
-+PERL_CONFIG_SH=true
-+# Variables propagated from previous config.sh file.
-+siteman1=''
-+siteman3=''
-+sitescript=''
+++ /dev/null
---- Python-2.3.4/Makefile.pre.in.orig 2003-11-18 14:54:00.000000000 -0500
-+++ Python-2.3.4/Makefile.pre.in 2004-07-29 21:44:47.075924464 -0400
-@@ -159,6 +159,7 @@
-
- PYTHON= python$(EXE)
- BUILDPYTHON= python$(BUILDEXE)
-+HOSTPYTHON= ./$(BUILDPYTHON)
-
- # === Definitions added by makesetup ===
-
-@@ -186,6 +187,8 @@
- # Parser
- PGEN= Parser/pgen$(EXE)
-
-+HOSTPGEN= $(PGEN)
-+
- POBJS= \
- Parser/acceler.o \
- Parser/grammar1.o \
-@@ -314,8 +317,8 @@
- # Build the shared modules
- sharedmods: $(BUILDPYTHON)
- case $$MAKEFLAGS in \
-- *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
-- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
-+ *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CROSS_COMPILE='yes' OPT='$(OPT)' DESTDIR='$(DESTDIR)' $(HOSTPYTHON) -E $(srcdir)/setup.py -q build;; \
-+ *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' CROSS_COMPILE='yes' OPT='$(OPT)' DESTDIR='$(DESTDIR)' $(HOSTPYTHON) -E $(srcdir)/setup.py build;; \
- esac
-
- # buildno should really depend on something like LIBRARY_SRC
-@@ -432,7 +435,7 @@
-
-
- $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
-- -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-+ -$(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-
- $(PGEN): $(PGENOBJS)
- $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
-@@ -705,19 +708,19 @@
- done
- $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-+ $(HOSTPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+ $(HOSTPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
-+ $(HOSTPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
-+ $(HOSTPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-
-@@ -812,7 +815,8 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall:
-- $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
-+ CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' CROSS_COMPILE='$(CROSS_COMPILE)' \
-+ $(HOSTPYTHON) -E $(srcdir)/setup.py install \
- --prefix=$(prefix) \
- --install-scripts=$(BINDIR) \
- --install-platlib=$(DESTSHARED) \
---- Python-2.3.4/setup.py.orig 2004-07-29 21:32:12.993562408 -0400
-+++ Python-2.3.4/setup.py 2004-07-29 21:47:12.174866072 -0400
-@@ -213,6 +213,7 @@
- try:
- imp.load_dynamic(ext.name, ext_filename)
- except ImportError, why:
-+ if os.environ.get('CROSS_COMPILE') != "yes":
- self.announce('*** WARNING: renaming "%s" since importing it'
- ' failed: %s' % (ext.name, why), level=3)
- assert not self.inplace
-@@ -233,6 +234,9 @@
- os.remove(filename)
- except AttributeError:
- self.announce('unable to remove files (ignored)')
-+ else:
-+ self.announce('WARNING: "%s" failed importing, but we leave it because we are cross-compiling' %
-+ ext.name)
- except:
- exc_type, why, tb = sys.exc_info()
- self.announce('*** WARNING: importing extension "%s" '
-@@ -245,8 +245,9 @@
-
- def detect_modules(self):
- # Ensure that /usr/local is always used
-- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
-- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
-+ add_dir_to_list(self.compiler.library_dirs, os.getenv('DESTDIR') + '/lib')
-+ add_dir_to_list(self.compiler.library_dirs, os.getenv('DESTDIR') + '/usr/lib')
-+ add_dir_to_list(self.compiler.include_dirs, os.getenv('DESTDIR') + '/usr/include')
-
- # fink installs lots of goodies in /sw/... - make sure we
- # check there
-@@ -254,11 +255,6 @@
- add_dir_to_list(self.compiler.library_dirs, '/sw/lib')
- add_dir_to_list(self.compiler.include_dirs, '/sw/include')
-
-- if os.path.normpath(sys.prefix) != '/usr':
-- add_dir_to_list(self.compiler.library_dirs,
-- sysconfig.get_config_var("LIBDIR"))
-- add_dir_to_list(self.compiler.include_dirs,
-- sysconfig.get_config_var("INCLUDEDIR"))
-
- try:
- have_unicode = unicode
+++ /dev/null
-#!/bin/sh
-
-if [ -x /usr/bin/sed ]; then
- SED="/usr/bin/sed";
-else
- if [ -x /bin/sed ]; then
- SED="/bin/sed";
- fi;
-fi;
-
-echo "HELLO" > .sedtest
-$SED -i -e "s/HELLO/GOODBYE/" .sedtest >/dev/null 2>&1
-
-if [ $? != 0 ] ; then
- echo build-sed-host-binary
-else
- echo use-sed-host-binary
-fi;
-rm -f .sedtest
-
-
+++ /dev/null
-This is a stupid little patch adding an option to change all uid/gid to
-root/root in the generated filesystem. We really need to teach mksquashfs
-about device tables though...
-
---- squashfs1.3r3/squashfs-tools/mksquashfs.c-dist 2004-03-29 20:35:37.000000000 -0600
-+++ squashfs1.3r3/squashfs-tools/mksquashfs.c 2004-03-29 22:28:51.000000000 -0600
-@@ -136,6 +136,8 @@
- stotal_bytes, stotal_inode_bytes, stotal_directory_bytes, sinode_count, sfile_count, ssym_count, sdev_count, sdir_count, sdup_files;
- int restore = 0;
-
-+unsigned int root_owned = 0;
-+
- /*flag whether destination file is a block device */
- int block_device = 0;
-
-@@ -421,6 +423,11 @@
- return SQUASHFS_INVALID;
- }
-
-+ if (root_owned) {
-+ buf.st_uid = 0;
-+ buf.st_gid = 0;
-+ }
-+
- base->mode = SQUASHFS_MODE(buf.st_mode);
- base->uid = get_uid(&file_type, (squashfs_uid) buf.st_uid);
- base->inode_type = file_type;
-@@ -1268,6 +1275,8 @@
- root_name = argv[i];
- } else if(strcmp(argv[i], "-version") == 0) {
- VERSION();
-+ } else if (strcmp(argv[i], "-root-owned") == 0) {
-+ root_owned = TRUE;
- } else {
- ERROR("%s: invalid option\n\n", argv[0]);
- printOptions:
+++ /dev/null
-# /etc/fstab: static file system information.
-#
-# <file system> <mount pt> <type> <options> <dump> <pass>
-/dev/root / ext2 rw,noauto 0 1
-proc /proc proc defaults 0 0
-devpts /dev/pts devpts defaults,gid=5,mode=620 0 0
-tmpfs /tmp tmpfs defaults 0 0
-
+++ /dev/null
-root:x:0:
-daemon:x:1:
-bin:x:2:
-sys:x:3:
-adm:x:4:
-tty:x:5:
-disk:x:6:
-utmp:x:43:
-staff:x:50:
-default:x:1000:
+++ /dev/null
-127.0.0.1 localhost
+++ /dev/null
-#! /bin/sh
-#
-# urandom This script saves the random seed between reboots.
-# It is called from the boot, halt and reboot scripts.
-#
-# Version: @(#)urandom 1.33 22-Jun-1998 miquels@cistron.nl
-#
-
-[ -c /dev/urandom ] || exit 0
-#. /etc/default/rcS
-
-case "$1" in
- start|"")
- if [ "$VERBOSE" != no ]
- then
- echo -n "Initializing random number generator... "
- fi
- # Load and then save 512 bytes,
- # which is the size of the entropy pool
- if [ -f /etc/random-seed ]
- then
- cat /etc/random-seed >/dev/urandom
- fi
- rm -f /etc/random-seed
- umask 077
- dd if=/dev/urandom of=/etc/random-seed count=1 \
- >/dev/null 2>&1 || echo "urandom start: failed."
- umask 022
- [ "$VERBOSE" != no ] && echo "done."
- ;;
- stop)
- # Carry a random seed from shut-down to start-up;
- # see documentation in linux/drivers/char/random.c
- [ "$VERBOSE" != no ] && echo -n "Saving random seed... "
- umask 077
- dd if=/dev/urandom of=/etc/random-seed count=1 \
- >/dev/null 2>&1 || echo "urandom stop: failed."
- [ "$VERBOSE" != no ] && echo "done."
- ;;
- *)
- echo "Usage: urandom {start|stop}" >&2
- exit 1
- ;;
-esac
+++ /dev/null
-#!/bin/sh
-#
-# Start the network....
-#
-
-start() {
- echo "Starting network..."
- /sbin/ifup -a
-}
-stop() {
- echo -n "Stopping network..."
- /sbin/ifdown -a
-}
-restart() {
- stop
- start
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart|reload)
- restart
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart}"
- exit 1
-esac
-
-exit $?
-
+++ /dev/null
-#!/bin/sh
-
-
-# Start all init scripts in /etc/init.d
-# executing them in numerical order.
-#
-for i in /etc/init.d/S??* ;do
-
- # Ignore dangling symlinks (if any).
- [ ! -f "$i" ] && continue
-
- case "$i" in
- *.sh)
- # Source shell script for speed.
- (
- trap - INT QUIT TSTP
- set start
- . $i
- )
- ;;
- *)
- # No sh extension, so fork subprocess.
- $i start
- ;;
- esac
-done
-
+++ /dev/null
-# /etc/inittab
-#
-# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
-#
-# Note: BusyBox init doesn't support runlevels. The runlevels field is
-# completely ignored by BusyBox init. If you want runlevels, use
-# sysvinit.
-#
-# Format for each entry: <id>:<runlevels>:<action>:<process>
-#
-# id == tty to run on, or empty for /dev/console
-# runlevels == ignored
-# action == one of sysinit, respawn, askfirst, wait, and once
-# process == program to run
-
-# Startup the system
-null::sysinit:/bin/mount -o remount,rw /
-null::sysinit:/bin/mount -t proc proc /proc
-null::sysinit:/bin/mount -a
-null::sysinit:/bin/hostname -F /etc/hostname
-null::sysinit:/sbin/ifconfig lo 127.0.0.1 up
-null::sysinit:/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
-# now run any rc scripts
-::sysinit:/etc/init.d/rcS
-
-# Set up a couple of getty's
-tty1::respawn:/sbin/getty 38400 tty1
-tty2::respawn:/sbin/getty 38400 tty2
-
-# Put a getty on the serial port
-#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
-
-# Logging junk
-null::sysinit:/bin/touch /var/log/messages
-null::respawn:/sbin/syslogd -n -m 0
-null::respawn:/sbin/klogd -n
-tty3::respawn:/usr/bin/tail -f /var/log/messages
-
-# Stuff to do for the 3-finger salute
-::ctrlaltdel:/sbin/reboot
-
-# Stuff to do before rebooting
-null::shutdown:/usr/bin/killall klogd
-null::shutdown:/usr/bin/killall syslogd
-null::shutdown:/bin/umount -a -r
-null::shutdown:/sbin/swapoff -a
-
+++ /dev/null
-# /etc/inputrc - global inputrc for libreadline
-# See readline(3readline) and `info readline' for more information.
-
-# Be 8 bit clean.
-set input-meta on
-set output-meta on
-set bell-style visible
-
-# To allow the use of 8bit-characters like the german umlauts, comment out
-# the line below. However this makes the meta key not work as a meta key,
-# which is annoying to those which don't need to type in 8-bit characters.
-
-# set convert-meta off
-
-"\e0d": backward-word
-"\e0c": forward-word
-"\e[h": beginning-of-line
-"\e[f": end-of-line
-"\e[1~": beginning-of-line
-"\e[4~": end-of-line
-#"\e[5~": beginning-of-history
-#"\e[6~": end-of-history
-"\e[3~": delete-char
-"\e[2~": quoted-insert
-
-# Common standard keypad and cursor
-# (codes courtsey Werner Fink, <werner@suse.de>)
-#"\e[1~": history-search-backward
-"\e[2~": yank
-"\e[3~": delete-char
-#"\e[4~": set-mark
-"\e[5~": history-search-backward
-"\e[6~": history-search-forward
-# Normal keypad and cursor of xterm
-"\e[F": end-of-line
-"\e[H": beginning-of-line
-# Application keypad and cursor of xterm
-"\eOA": previous-history
-"\eOC": forward-char
-"\eOB": next-history
-"\eOD": backward-char
-"\eOF": end-of-line
-"\eOH": beginning-of-line
-
+++ /dev/null
-
-
-Welcome to the Erik's uClibc development environment.
-
+++ /dev/null
-# Configure Loopback
-auto lo
-iface lo inet loopback
-
+++ /dev/null
-root:x:0:0:root:/root:/bin/sh
-daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-bin:x:2:2:bin:/bin:/bin/sh
-sys:x:3:3:sys:/dev:/bin/sh
-sync:x:4:100:sync:/bin:/bin/sync
-mail:x:8:8:mail:/var/spool/mail:/bin/sh
-proxy:x:13:13:proxy:/bin:/bin/sh
-www-data:x:33:33:www-data:/var/www:/bin/sh
-backup:x:34:34:backup:/var/backups:/bin/sh
-operator:x:37:37:Operator:/var:/bin/sh
-sshd:x:103:99:Operator:/var:/bin/sh
-nobody:x:99:99:nobody:/home:/bin/sh
-default:x:1000:1000:Default non-root user:/home/default:/bin/sh
+++ /dev/null
-# ~/.bashrc: executed by bash(1) for non-login interactive shells.
-
-export PATH=\
-/bin:\
-/sbin:\
-/usr/bin:\
-/usr/sbin:\
-/usr/bin/X11:\
-/usr/local/bin
-
-# If running interactively, then:
-if [ "$PS1" ]; then
-
- if [ "$BASH" ]; then
- export PS1="[\u@\h \W]\\$ "
- alias ll='/bin/ls --color=tty -laFh'
- alias ls='/bin/ls --color=tty -F'
- export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:';
- else
- if [ "`id -u`" -eq 0 ]; then
- export PS1='# '
- else
- export PS1='$ '
- fi
- fi
-
- export USER=`id -un`
- export LOGNAME=$USER
- export HOSTNAME=`/bin/hostname`
- export HISTSIZE=1000
- export HISTFILESIZE=1000
- export PAGER='/bin/more '
- export EDITOR='/bin/vi'
- export INPUTRC=/etc/inputrc
- export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
-
- ### Some aliases
- alias ps2='ps facux '
- alias ps1='ps faxo "%U %t %p %a" '
- alias af='ps af'
- alias cls='clear'
- alias df='df -h'
- alias indent='indent -bad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -npsl -nsc -nsob -nss -ts4 '
- #alias bc='bc -l'
- alias minicom='minicom -c on'
- alias calc='calc -Cd '
- alias bc='calc -Cd '
-fi;
+++ /dev/null
-# /etc/protocols:
-# $Id: protocols,v 1.3 2002/04/26 22:01:41 andersen Exp $
-#
-# Internet (IP) protocols
-#
-# from: @(#)protocols 5.1 (Berkeley) 4/17/89
-#
-# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
-
-ip 0 IP # internet protocol, pseudo protocol number
-icmp 1 ICMP # internet control message protocol
-igmp 2 IGMP # Internet Group Management
-ggp 3 GGP # gateway-gateway protocol
-ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
-st 5 ST # ST datagram mode
-tcp 6 TCP # transmission control protocol
-egp 8 EGP # exterior gateway protocol
-pup 12 PUP # PARC universal packet protocol
-udp 17 UDP # user datagram protocol
-hmp 20 HMP # host monitoring protocol
-xns-idp 22 XNS-IDP # Xerox NS IDP
-rdp 27 RDP # "reliable datagram" protocol
-iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
-xtp 36 XTP # Xpress Tranfer Protocol
-ddp 37 DDP # Datagram Delivery Protocol
-idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
-rspf 73 RSPF #Radio Shortest Path First.
-vmtp 81 VMTP # Versatile Message Transport
-ospf 89 OSPFIGP # Open Shortest Path First IGP
-ipip 94 IPIP # Yet Another IP encapsulation
-encap 98 ENCAP # Yet Another IP encapsulation
+++ /dev/null
-domain dev.null
-nameserver 127.0.0.1
+++ /dev/null
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-tty7
-tty8
-ttyS0
-ttyS1
-ttyS2
-ttyS3
+++ /dev/null
-# /etc/services:
-# $Id: services,v 1.4 2003/06/14 00:47:20 andersen Exp $
-#
-# Network services, Internet style
-#
-# Note that it is presently the policy of IANA to assign a single well-known
-# port number for both TCP and UDP; hence, most entries here have two entries
-# even if the protocol doesn't support UDP operations.
-# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
-# are included, only the more common ones.
-
-tcpmux 1/tcp # TCP port service multiplexer
-echo 7/tcp
-echo 7/udp
-discard 9/tcp sink null
-discard 9/udp sink null
-systat 11/tcp users
-daytime 13/tcp
-daytime 13/udp
-netstat 15/tcp
-qotd 17/tcp quote
-msp 18/tcp # message send protocol
-msp 18/udp # message send protocol
-chargen 19/tcp ttytst source
-chargen 19/udp ttytst source
-ftp-data 20/tcp
-ftp 21/tcp
-fsp 21/udp fspd
-ssh 22/tcp # SSH Remote Login Protocol
-ssh 22/udp # SSH Remote Login Protocol
-telnet 23/tcp
-# 24 - private
-smtp 25/tcp mail
-# 26 - unassigned
-time 37/tcp timserver
-time 37/udp timserver
-rlp 39/udp resource # resource location
-nameserver 42/tcp name # IEN 116
-whois 43/tcp nicname
-re-mail-ck 50/tcp # Remote Mail Checking Protocol
-re-mail-ck 50/udp # Remote Mail Checking Protocol
-domain 53/tcp nameserver # name-domain server
-domain 53/udp nameserver
-mtp 57/tcp # deprecated
-bootps 67/tcp # BOOTP server
-bootps 67/udp
-bootpc 68/tcp # BOOTP client
-bootpc 68/udp
-tftp 69/udp
-gopher 70/tcp # Internet Gopher
-gopher 70/udp
-rje 77/tcp netrjs
-finger 79/tcp
-www 80/tcp http # WorldWideWeb HTTP
-www 80/udp # HyperText Transfer Protocol
-link 87/tcp ttylink
-kerberos 88/tcp kerberos5 krb5 # Kerberos v5
-kerberos 88/udp kerberos5 krb5 # Kerberos v5
-supdup 95/tcp
-# 100 - reserved
-hostnames 101/tcp hostname # usually from sri-nic
-iso-tsap 102/tcp tsap # part of ISODE.
-csnet-ns 105/tcp cso-ns # also used by CSO name server
-csnet-ns 105/udp cso-ns
-# unfortunately the poppassd (Eudora) uses a port which has already
-# been assigned to a different service. We list the poppassd as an
-# alias here. This should work for programs asking for this service.
-# (due to a bug in inetd the 3com-tsmux line is disabled)
-#3com-tsmux 106/tcp poppassd
-#3com-tsmux 106/udp poppassd
-rtelnet 107/tcp # Remote Telnet
-rtelnet 107/udp
-pop-2 109/tcp postoffice # POP version 2
-pop-2 109/udp
-pop-3 110/tcp # POP version 3
-pop-3 110/udp
-sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP
-sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP
-auth 113/tcp authentication tap ident
-sftp 115/tcp
-uucp-path 117/tcp
-nntp 119/tcp readnews untp # USENET News Transfer Protocol
-ntp 123/tcp
-ntp 123/udp # Network Time Protocol
-netbios-ns 137/tcp # NETBIOS Name Service
-netbios-ns 137/udp
-netbios-dgm 138/tcp # NETBIOS Datagram Service
-netbios-dgm 138/udp
-netbios-ssn 139/tcp # NETBIOS session service
-netbios-ssn 139/udp
-imap2 143/tcp # Interim Mail Access Proto v2
-imap2 143/udp
-snmp 161/udp # Simple Net Mgmt Proto
-snmp-trap 162/udp snmptrap # Traps for SNMP
-cmip-man 163/tcp # ISO mgmt over IP (CMOT)
-cmip-man 163/udp
-cmip-agent 164/tcp
-cmip-agent 164/udp
-xdmcp 177/tcp # X Display Mgr. Control Proto
-xdmcp 177/udp
-nextstep 178/tcp NeXTStep NextStep # NeXTStep window
-nextstep 178/udp NeXTStep NextStep # server
-bgp 179/tcp # Border Gateway Proto.
-bgp 179/udp
-prospero 191/tcp # Cliff Neuman's Prospero
-prospero 191/udp
-irc 194/tcp # Internet Relay Chat
-irc 194/udp
-smux 199/tcp # SNMP Unix Multiplexer
-smux 199/udp
-at-rtmp 201/tcp # AppleTalk routing
-at-rtmp 201/udp
-at-nbp 202/tcp # AppleTalk name binding
-at-nbp 202/udp
-at-echo 204/tcp # AppleTalk echo
-at-echo 204/udp
-at-zis 206/tcp # AppleTalk zone information
-at-zis 206/udp
-qmtp 209/tcp # The Quick Mail Transfer Protocol
-qmtp 209/udp # The Quick Mail Transfer Protocol
-z3950 210/tcp wais # NISO Z39.50 database
-z3950 210/udp wais
-ipx 213/tcp # IPX
-ipx 213/udp
-imap3 220/tcp # Interactive Mail Access
-imap3 220/udp # Protocol v3
-ulistserv 372/tcp # UNIX Listserv
-ulistserv 372/udp
-https 443/tcp # MCom
-https 443/udp # MCom
-snpp 444/tcp # Simple Network Paging Protocol
-snpp 444/udp # Simple Network Paging Protocol
-saft 487/tcp # Simple Asynchronous File Transfer
-saft 487/udp # Simple Asynchronous File Transfer
-npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS
-npmp-local 610/udp dqs313_qmaster # npmp-local / DQS
-npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS
-npmp-gui 611/udp dqs313_execd # npmp-gui / DQS
-hmmp-ind 612/tcp dqs313_intercell# HMMP Indication / DQS
-hmmp-ind 612/udp dqs313_intercell# HMMP Indication / DQS
-#
-# UNIX specific services
-#
-exec 512/tcp
-biff 512/udp comsat
-login 513/tcp
-who 513/udp whod
-shell 514/tcp cmd # no passwords used
-syslog 514/udp
-printer 515/tcp spooler # line printer spooler
-talk 517/udp
-ntalk 518/udp
-route 520/udp router routed # RIP
-timed 525/udp timeserver
-tempo 526/tcp newdate
-courier 530/tcp rpc
-conference 531/tcp chat
-netnews 532/tcp readnews
-netwall 533/udp # -for emergency broadcasts
-uucp 540/tcp uucpd # uucp daemon
-afpovertcp 548/tcp # AFP over TCP
-afpovertcp 548/udp # AFP over TCP
-remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
-klogin 543/tcp # Kerberized `rlogin' (v5)
-kshell 544/tcp krcmd # Kerberized `rsh' (v5)
-kerberos-adm 749/tcp # Kerberos `kadmin' (v5)
-#
-webster 765/tcp # Network dictionary
-webster 765/udp
-#
-# From ``Assigned Numbers'':
-#
-#> The Registered Ports are not controlled by the IANA and on most systems
-#> can be used by ordinary user processes or programs executed by ordinary
-#> users.
-#
-#> Ports are used in the TCP [45,106] to name the ends of logical
-#> connections which carry long term conversations. For the purpose of
-#> providing services to unknown callers, a service contact port is
-#> defined. This list specifies the port used by the server process as its
-#> contact port. While the IANA can not control uses of these ports it
-#> does register or list uses of these ports as a convienence to the
-#> community.
-#
-nfsdstatus 1110/tcp
-nfsd-keepalive 1110/udp
-
-ingreslock 1524/tcp
-ingreslock 1524/udp
-prospero-np 1525/tcp # Prospero non-privileged
-prospero-np 1525/udp
-datametrics 1645/tcp old-radius # datametrics / old radius entry
-datametrics 1645/udp old-radius # datametrics / old radius entry
-sa-msg-port 1646/tcp old-radacct # sa-msg-port / old radacct entry
-sa-msg-port 1646/udp old-radacct # sa-msg-port / old radacct entry
-radius 1812/tcp # Radius
-radius 1812/udp # Radius
-radacct 1813/tcp # Radius Accounting
-radacct 1813/udp # Radius Accounting
-nfsd 2049/tcp nfs
-nfsd 2049/udp nfs
-cvspserver 2401/tcp # CVS client/server operations
-cvspserver 2401/udp # CVS client/server operations
-mysql 3306/tcp # MySQL
-mysql 3306/udp # MySQL
-rfe 5002/tcp # Radio Free Ethernet
-rfe 5002/udp # Actually uses UDP only
-cfengine 5308/tcp # CFengine
-cfengine 5308/udp # CFengine
-bbs 7000/tcp # BBS service
-#
-#
-# Kerberos (Project Athena/MIT) services
-# Note that these are for Kerberos v4, and are unofficial. Sites running
-# v4 should uncomment these and comment out the v5 entries above.
-#
-kerberos4 750/udp kerberos-iv kdc # Kerberos (server) udp
-kerberos4 750/tcp kerberos-iv kdc # Kerberos (server) tcp
-kerberos_master 751/udp # Kerberos authentication
-kerberos_master 751/tcp # Kerberos authentication
-passwd_server 752/udp # Kerberos passwd server
-krb_prop 754/tcp # Kerberos slave propagation
-krbupdate 760/tcp kreg # Kerberos registration
-kpasswd 761/tcp kpwd # Kerberos "passwd"
-kpop 1109/tcp # Pop with Kerberos
-knetd 2053/tcp # Kerberos de-multiplexor
-zephyr-srv 2102/udp # Zephyr server
-zephyr-clt 2103/udp # Zephyr serv-hm connection
-zephyr-hm 2104/udp # Zephyr hostmanager
-eklogin 2105/tcp # Kerberos encrypted rlogin
-#
-# Unofficial but necessary (for NetBSD) services
-#
-supfilesrv 871/tcp # SUP server
-supfiledbg 1127/tcp # SUP debugging
-#
-# Datagram Delivery Protocol services
-#
-rtmp 1/ddp # Routing Table Maintenance Protocol
-nbp 2/ddp # Name Binding Protocol
-echo 4/ddp # AppleTalk Echo Protocol
-zip 6/ddp # Zone Information Protocol
-#
-# Services added for the Debian GNU/Linux distribution
-poppassd 106/tcp # Eudora
-poppassd 106/udp # Eudora
-mailq 174/tcp # Mailer transport queue for Zmailer
-mailq 174/tcp # Mailer transport queue for Zmailer
-omirr 808/tcp omirrd # online mirror
-omirr 808/udp omirrd # online mirror
-rmtcfg 1236/tcp # Gracilis Packeten remote config server
-xtel 1313/tcp # french minitel
-coda_opcons 1355/udp # Coda opcons (Coda fs)
-coda_venus 1363/udp # Coda venus (Coda fs)
-coda_auth 1357/udp # Coda auth (Coda fs)
-coda_udpsrv 1359/udp # Coda udpsrv (Coda fs)
-coda_filesrv 1361/udp # Coda filesrv (Coda fs)
-codacon 1423/tcp venus.cmu # Coda Console (Coda fs)
-coda_aux1 1431/tcp # coda auxiliary service (Coda fs)
-coda_aux1 1431/udp # coda auxiliary service (Coda fs)
-coda_aux2 1433/tcp # coda auxiliary service (Coda fs)
-coda_aux2 1433/udp # coda auxiliary service (Coda fs)
-coda_aux3 1435/tcp # coda auxiliary service (Coda fs)
-coda_aux3 1435/udp # coda auxiliary service (Coda fs)
-cfinger 2003/tcp # GNU Finger
-afbackup 2988/tcp # Afbackup system
-afbackup 2988/udp # Afbackup system
-icp 3130/tcp # Internet Cache Protocol (Squid)
-icp 3130/udp # Internet Cache Protocol (Squid)
-postgres 5432/tcp # POSTGRES
-postgres 5432/udp # POSTGRES
-fax 4557/tcp # FAX transmission service (old)
-hylafax 4559/tcp # HylaFAX client-server protocol (new)
-noclog 5354/tcp # noclogd with TCP (nocol)
-noclog 5354/udp # noclogd with UDP (nocol)
-hostmon 5355/tcp # hostmon uses TCP (nocol)
-hostmon 5355/udp # hostmon uses TCP (nocol)
-ircd 6667/tcp # Internet Relay Chat
-ircd 6667/udp # Internet Relay Chat
-webcache 8080/tcp # WWW caching service
-webcache 8080/udp # WWW caching service
-tproxy 8081/tcp # Transparent Proxy
-tproxy 8081/udp # Transparent Proxy
-mandelspawn 9359/udp mandelbrot # network mandelbrot
-amanda 10080/udp # amanda backup services
-amandaidx 10082/tcp # amanda backup services
-amidxtape 10083/tcp # amanda backup services
-isdnlog 20011/tcp # isdn logging system
-isdnlog 20011/udp # isdn logging system
-vboxd 20012/tcp # voice box system
-vboxd 20012/udp # voice box system
-binkp 24554/tcp # Binkley
-binkp 24554/udp # Binkley
-asp 27374/tcp # Address Search Protocol
-asp 27374/udp # Address Search Protocol
-tfido 60177/tcp # Ifmail
-tfido 60177/udp # Ifmail
-fido 60179/tcp # Ifmail
-fido 60179/udp # Ifmail
-
-# Local services
-
+++ /dev/null
-root::10933:0:99999:7:::
-bin:*:10933:0:99999:7:::
-daemon:*:10933:0:99999:7:::
-adm:*:10933:0:99999:7:::
-lp:*:10933:0:99999:7:::
-sync:*:10933:0:99999:7:::
-shutdown:*:10933:0:99999:7:::
-halt:*:10933:0:99999:7:::
-uucp:*:10933:0:99999:7:::
-operator:*:10933:0:99999:7:::
-nobody:*:10933:0:99999:7:::
-default::10933:0:99999:7:::
+++ /dev/null
-# ~/.bash_logout: executed by bash(1) when login shell exits.
-
-# when leaving the console clear the screen to increase privacy
-
-case "`tty`" in
- /dev/tty[0-9]*) clear
-esac
+++ /dev/null
-# .bash_profile
-
-export PATH=\
-/bin:\
-/sbin:\
-/usr/bin:\
-/usr/sbin:\
-/usr/bin/X11:\
-/usr/local/bin
-
-umask 022
-
-if [ -f ~/.bashrc ]; then
- source ~/.bashrc
-fi
+++ /dev/null
-# ~/.bashrc: executed by bash(1) for non-login interactive shells.
-
-export PATH=\
-/bin:\
-/sbin:\
-/usr/bin:\
-/usr/sbin:\
-/usr/bin/X11:\
-/usr/local/bin
-
-# If running interactively, then:
-if [ "$PS1" ]; then
-
- if [ "$BASH" ]; then
- export PS1="[\u@\h \W]\\$ "
- else
- if [ "`id -u`" -eq 0 ]; then
- export PS1='# '
- else
- export PS1='$ '
- fi
- fi
-
- export USER=`id -un`
- export LOGNAME=$USER
- export HOSTNAME=`/bin/hostname`
- export HISTSIZE=1000
- export HISTFILESIZE=1000
- export PAGER='/bin/more '
- export EDITOR='/bin/vi'
- export INPUTRC=/etc/inputrc
- export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
- export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:';
-
- ### Some aliases
- alias ps2='ps facux '
- alias ps1='ps faxo "%U %t %p %a" '
- alias af='ps af'
- alias cls='clear'
- alias ll='/bin/ls --color=tty -laFh'
- alias ls='/bin/ls --color=tty -F'
- alias df='df -h'
- alias indent='indent -bad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -npsl -nsc -nsob -nss -ts4 '
- #alias bc='bc -l'
- alias minicom='minicom -c on'
- alias calc='calc -Cd '
- alias bc='calc -Cd '
-fi;
+++ /dev/null
-#!/bin/sh
-
-# udhcpc script edited by Tim Riker <Tim@Rikers.org>
-
-[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
-
-RESOLV_CONF="/etc/resolv.conf"
-[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
-[ -n "$subnet" ] && NETMASK="netmask $subnet"
-
-case "$1" in
- deconfig)
- /sbin/ifconfig $interface 0.0.0.0
- ;;
-
- renew|bound)
- /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
-
- if [ -n "$router" ] ; then
- echo "deleting routers"
- while route del default gw 0.0.0.0 dev $interface ; do
- :
- done
-
- for i in $router ; do
- route add default gw $i dev $interface
- done
- fi
-
- echo -n > $RESOLV_CONF
- [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
- for i in $dns ; do
- echo adding dns $i
- echo nameserver $i >> $RESOLV_CONF
- done
- ;;
-esac
-
-exit 0
+++ /dev/null
-diff -Nur --exclude=CVS xc-011010.src/include/extensions/lbxstr.h xc-011010/include/extensions/lbxstr.h
---- xc-011010.src/include/extensions/lbxstr.h Tue Jul 31 20:44:35 2001
-+++ xc-011010/include/extensions/lbxstr.h Sun Apr 21 12:35:05 2002
-@@ -25,7 +25,7 @@
- #ifndef _LBXSTR_H_
- #define _LBXSTR_H_
-
--#include <X11/extensions/XLbx.h>
-+#include "XLbx.h"
-
- #define LBXNAME "LBX"
-
-diff -Nur --exclude=CVS xc-011010.src/programs/Xserver/hw/kdrive/fbdev/fbdev.h xc-011010/programs/Xserver/hw/kdrive/fbdev/fbdev.h
---- xc-011010.src/programs/Xserver/hw/kdrive/fbdev/fbdev.h Sun Jun 3 17:52:45 2001
-+++ xc-011010/programs/Xserver/hw/kdrive/fbdev/fbdev.h Sun Apr 21 12:36:25 2002
-@@ -29,6 +29,7 @@
- #include <linux/fb.h>
- #include <unistd.h>
- #include <sys/mman.h>
-+#include <sys/types.h>
- #include "kdrive.h"
- #include "layer.h"
-
-diff -Nur xc-011010.src2/lib/X11/Xlib.h xc-011010/lib/X11/Xlib.h
---- xc-011010.src/programs/Xserver/hw/kdrive/linux/ts.c Tue Jul 10 22:58:19 2001
-+++ xc-011010/programs/Xserver/hw/kdrive/linux/ts.c Tue Apr 23 20:16:23 2002
-@@ -33,65 +33,48 @@
- #include "kdrive.h"
- #include "Xpoll.h"
- #include <sys/ioctl.h>
--#include <linux/h3600_ts.h> /* touch screen events */
-+
-+typedef struct {
-+ unsigned short pressure;
-+ unsigned short x;
-+ unsigned short y;
-+ unsigned short pad;
-+ struct timeval stamp;
-+} TS_EVENT;
-
- static long lastx = 0, lasty = 0;
- int TsScreen;
- extern int TsFbdev;
-
--void
--TsRead (int tsPort, void *closure)
--{
-- TS_EVENT event;
-- long buf[3];
-- int n;
-- long pressure;
-- long x, y;
-- unsigned long flags;
-- unsigned long buttons;
--
-- n = Ps2ReadBytes (tsPort, (char *) &event,
-- sizeof (event), sizeof (event));
-- if (n == sizeof (event))
-- {
-- if (event.pressure)
-- {
-- /*
-- * HACK ATTACK. (static global variables used !)
-- * Here we test for the touch screen driver actually being on the
-- * touch screen, if it is we send absolute coordinates. If not,
-- * then we send delta's so that we can track the entire vga screen.
-- */
-- if (TsScreen == TsFbdev) {
-- flags = KD_BUTTON_1;
-- x = event.x;
-- y = event.y;
-- } else {
-- flags = /* KD_BUTTON_1 |*/ KD_MOUSE_DELTA;
-- if ((lastx == 0) || (lasty == 0)) {
-- x = 0;
-- y = 0;
-- } else {
-- x = event.x - lastx;
-- y = event.y - lasty;
-- }
-- lastx = event.x;
-- lasty = event.y;
-- }
-- } else {
-- flags = KD_MOUSE_DELTA;
-- x = 0;
-- y = 0;
-- lastx = 0;
-- lasty = 0;
-- }
-- KdEnqueueMouseEvent (flags, x, y);
-+void TsRead (int tsPort, void *closure) {
-+ TS_EVENT event;
-+ long buf[3];
-+ int n;
-+ long pressure;
-+ long x, y;
-+ unsigned long flags;
-+ unsigned long buttons;
-+
-+ n = Ps2ReadBytes(tsPort, (char *) &event, sizeof (event), sizeof (event));
-+ if (n >= sizeof (event)) {
-+ if (event.pressure >= 100) {
-+ flags = KD_BUTTON_1;
-+ x = (960 - event.x) * 640 / (920);
-+ y = (960 - event.y) * 480 / (920);
-+ //ErrorF("flags %d x %d y %dn",flags,event.x,event.y);
-+ }
-+ else {
-+ flags = KD_MOUSE_DELTA;
-+ x = lastx;
-+ y = lasty;
- }
-+ KdEnqueueMouseEvent(flags, x, y);
-+ }
- }
-
- char *TsNames[] = {
-- "/dev/ts",
-- "/dev/h3600_ts" /* temporary name; note this code can try
-+ "/dev/ucb1x00-ts",
-+ "/dev/ts" /* temporary name; note this code can try
- to open more than one device */
- };
-
-@@ -99,9 +82,7 @@
-
- int TsInputType;
-
--int
--TsInit (void)
--{
-+int TsInit (void) {
- int i;
- int TsPort;
-
-diff -Nur xc-011010.src/startx xc-011010/startx
---- ../../buildroot-tux.Apr25-1/build/xc-011010.src/startx Thu Apr 25 05:20:35 2002
-+++ xc-011010/startx Sun Apr 28 05:35:35 2002
-@@ -0,0 +1,11 @@
-+#!/bin/sh
-+killall Xfbdev
-+sleep 1
-+export DISPLAY=":0"
-+/usr/X11R6/bin/Xfbdev -ac &
-+sleep 4
-+/usr/X11R6/bin/matchbox &
-+sleep 1
-+/usr/X11R6/bin/minisys &
-+/usr/X11R6/bin/minitime &
-+/usr/X11R6/bin/rxvt &
-diff -Nur xc-011010.src/lib/Xft/xftgram.y xc-011010/lib/Xft/xftgram.y
---- ../../buildroot-tux.Apr25-1/build/xc-011010/lib/Xft/xftgram.y Thu Apr 25 05:20:35 2002
-+++ xc-011010/lib/Xft/xftgram.y Sun Apr 28 05:35:35 2002
-@@ -165,6 +165,7 @@
- matrix.yx = $4;
- matrix.__REALLY_YY__ = $5;
- }
-+ ;
- number : INTEGER
- { $$ = (double) $1; }
- | DOUBLE
-diff -Nur xc-011010.src/programs/twm/gram.y xc-011010/programs/twm/gram.y
---- ../../buildroot-tux.Apr25-1/build/xc-011010/programs/twm/gram.y Thu Apr 25 05:20:35 2002
-+++ xc-011010/programs/twm/gram.y Sun Apr 28 05:35:35 2002
-@@ -650,6 +650,7 @@
- RemoveDQuote(ptr);
- $$ = ptr;
- }
-+ ;
- number : NUMBER { $$ = $1; }
- ;
-
+++ /dev/null
---- util-linux-2.11z/mount/fstab.c.orig 2003-12-03 15:28:22.000000000 -0700
-+++ util-linux-2.11z/mount/fstab.c 2003-12-03 15:28:41.000000000 -0700
-@@ -342,7 +342,7 @@
- /* Ensure that the lock is released if we are interrupted. */
- static void
- handler (int sig) {
-- die (EX_USER, "%s", sys_siglist[sig]);
-+ die (EX_USER, "%s", strsignal(sig));
- }
-
- static void
---- /dev/null 2003-09-07 01:55:59.000000000 -0600
-+++ util-linux-2.11z/mount/swapargs.h 2003-12-03 15:44:50.000000000 -0700
-@@ -0,0 +1,3 @@
-+#define SWAPON_HAS_TWO_ARGS
-+#include <asm/page.h>
-+#include <sys/swap.h>
---- util-linux-2.11z/mount/swap.configure.orig 2003-12-03 15:43:24.000000000 -0700
-+++ util-linux-2.11z/mount/swap.configure 2003-12-03 15:45:33.000000000 -0700
-@@ -1,6 +1,8 @@
- # Find out whether we can include <sys/swap.h>
- # and whether libc thinks that swapon() has two arguments.
-
-+exit 0
-+
- # Prepare test
- CC=${CC-cc}
- compile="$CC -o conftest conftest.c >/dev/null 2>&1"
+++ /dev/null
---- valgrind-2.1.1.orig/coregrind/vg_syscalls.c 2004-02-24 17:07:10.000000000 -0700
-+++ valgrind-2.1.1/coregrind/vg_syscalls.c 2004-04-16 18:13:11.000000000 -0600
-@@ -3231,6 +3245,93 @@
- case CDROM_CLEAR_OPTIONS: /* 0x5321 */
- break;
-
-+ /* Stuff added by Erik Andersen for general device probing/handling */
-+#define BLKSSZGET _IO(0x12,104)
-+ case BLKSSZGET:
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(BLKSSZGET)", arg3,
-+ sizeof(int));
-+ break;
-+#undef _IOR
-+#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size))
-+#define BLKGETSIZE64 _IOR(0x12,114,sizeof(uint64_t))
-+ case BLKGETSIZE64:
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(BLKGETSIZE64)", arg3,
-+ sizeof(uint64_t));
-+ break;
-+#define HDIO_GETGEO 0x0301 /* get device geometry */
-+ case HDIO_GETGEO:
-+ {
-+ struct hd_geometry {
-+ unsigned char heads;
-+ unsigned char sectors;
-+ unsigned short cylinders;
-+ unsigned long start;
-+ };
-+
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(HDIO_GETGEO)", arg3,
-+ sizeof(struct hd_geometry));
-+ }
-+ break;
-+#define HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
-+#define struct_hd_driveid_size 256 /* ATA6 specifies words 0-255 */
-+ case HDIO_GET_IDENTITY:
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(HDIO_GET_IDENTITY)", arg3,
-+ struct_hd_driveid_size);
-+ break;
-+#define SCSI_IOCTL_GET_IDLUN 0x5382
-+ case SCSI_IOCTL_GET_IDLUN:
-+ {
-+ struct scsi_idlun
-+ {
-+ int mux4;
-+ int host_unique_id;
-+
-+ };
-+
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_GET_IDLUN)", arg3,
-+ sizeof(struct scsi_idlun));
-+ }
-+ break;
-+#define SCSI_IOCTL_SEND_COMMAND 1
-+ case SCSI_IOCTL_SEND_COMMAND:
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_SEND_COMMAND)", arg3,
-+ ((2 * sizeof(unsigned int)) + 6 + 512));
-+ break;
-+#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
-+ case SCSI_IOCTL_GET_BUS_NUMBER:
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", arg3,
-+ sizeof(int));
-+ break;
-+#define SCSI_IOCTL_PROBE_HOST 0x5385
-+ case SCSI_IOCTL_PROBE_HOST:
-+ {
-+ int xxxx;
-+ char *array = (char*)arg3;
-+ xxxx = array[0] + (array[1]<<8) + (array[2]<<16) + (array[3]<<24);
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_PROBE_HOST)", arg3,
-+ sizeof(int));
-+ }
-+ break;
-+#define BLKFLSBUF _IO(0x12,97)
-+ case BLKFLSBUF:
-+ break;
-+#define BLKRRPART _IO(0x12,95)
-+ case BLKRRPART:
-+ break;
-+#define MTIOCTOP _IO(0x6d,0x1)
-+ case MTIOCTOP:
-+ {
-+ struct mtop
-+ {
-+ short int mt_op; /* Operations defined below. */
-+ int mt_count; /* How many of them. */
-+ };
-+ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(MTIOCTOP)", arg3,
-+ sizeof(struct mtop));
-+ }
-+ break;
-+
-+
- /* We don't have any specific information on it, so
- try to do something reasonable based on direction and
- size bits. The encoding scheme is described in
---- valgrind-2.1.1.orig/coregrind/vg_libpthread.c 2004-03-08 08:57:17.000000000 -0700
-+++ valgrind-2.1.1/coregrind/vg_libpthread.c 2004-04-16 17:58:31.000000000 -0600
-@@ -3175,6 +3175,8 @@
- pthread_mutex). So basically, this is completely broken on recent
- glibcs. */
-
-+#ifndef __UCLIBC__
-+
- #undef _IO_flockfile
- void _IO_flockfile ( _IO_FILE * file )
- {
-@@ -3192,6 +3194,7 @@
- weak_alias(_IO_funlockfile, funlockfile);
- #endif
-
-+#endif
-
- /* This doesn't seem to be needed to simulate libpthread.so's external
- interface, but many people complain about its absence. */
+++ /dev/null
-diff -urN vtun/Makefile.in vtun-2.6/Makefile.in
---- vtun/Makefile.in 2002-12-20 09:55:47.000000000 -0700
-+++ vtun-2.6/Makefile.in 2003-06-05 12:38:31.000000000 -0600
-@@ -28,7 +28,7 @@
- LEXFLAGS = -t
-
- INSTALL = @INSTALL@
--INSTALL_OWNER = -o root -g 0
-+INSTALL_OWNER =
-
- prefix = @prefix@
- exec_prefix = @exec_prefix@
-@@ -86,15 +86,15 @@
-
- install_config:
- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR)
-- if [ ! -f $(ETC_DIR)/vtund.conf ]; then \
-- $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR); \
-- fi
-+ $(INSTALL) -m 600 $(INSTALL_OWNER) vtund.conf $(DESTDIR)$(ETC_DIR);
-+ $(INSTALL) -m 600 $(INSTALL_OWNER) scripts/vtund-start.conf $(DESTDIR)$(ETC_DIR);
-
- install: vtund install_config install_man
-- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run
- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR)
- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR)
- $(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR)
- $(INSTALL) -m 755 $(INSTALL_OWNER) vtund $(DESTDIR)$(SBIN_DIR)
-+ $(INSTALL) -m 755 $(INSTALL_OWNER) scripts/vtund.rc.debian \
-+ $(DESTDIR)$(ETC_DIR)/init.d/S90vtun
-
- # DO NOT DELETE THIS LINE -- make depend depends on it.
-diff -urN vtun/scripts/vtund.rc.debian vtun-2.6/scripts/vtund.rc.debian
---- vtun/scripts/vtund.rc.debian 2000-03-26 10:06:37.000000000 -0700
-+++ vtun-2.6/scripts/vtund.rc.debian 2003-06-05 12:38:46.000000000 -0600
-@@ -1,92 +1,48 @@
--#! /usr/bin/perl -w
-+#! /bin/sh
-+#
-
--### vtund-start
--###
--### script to start vtund as either a server or a client, according to
--### the config file /etc/vtund-start.conf
--###
--### Copyright 1999 Craig Sanders <cas@taz.net.au>
--###
--### Written for the Debian GNU/Linux distribution. This script is free
--### software licensed under the terms of the GNU General Public License.
--
--$DAEMON="/usr/sbin/vtund" ;
--
--$do_what = shift ;
--$args="start|stop|reload|force-reload|restart" ;
--if ( $do_what !~ /^($args)$/i ) {
-- print "Usage: /etc/init.d/vtun {$args}\n" ;
-- exit 0 ;
--}
--
--$SSD="/sbin/start-stop-daemon" ;
--$SSDARGS="--verbose --exec $DAEMON" ;
--
--$sconf="/etc/vtund-start.conf" ;
--open(SCONF,"<$sconf") || die "couldn't open $sconf: $!\n" ;
--while (<SCONF>) {
-- chomp ;
-- s/#.*//;
-- s/^ +| +$//;
-- next if (/^$/) ;
--
-- @line = split ;
-- $host = shift(@line) ;
-- $server = shift(@line) ;
-- $args = "" ;
-- foreach (@line) { $args .= " $_" } ;
--
-- $host='' if ($host =~ /--server--/i ) ;
--
-- if ( $do_what eq 'start' ) {
-- &start($host,$server,$args) ;
-- } elsif ( $do_what eq 'stop' ) {
-- &stop($host,$server,$args) ;
-- } elsif ( $do_what eq 'restart' ) {
-- &stop($pidfile) ;
-- &start($host,$server,$args) ;
-- } elsif ( $do_what =~ /^(reload|force-reload)$/ ) {
-- &reload($host,$server) ;
-- }
--}
--close (SCONF);
--
--
--sub start {
-- my($host,$server,$args) = @_ ;
-- print " Starting vtun " ;
-- if ($host eq '') {
-- print "server\n" ;
-- system "$SSD --start $SSDARGS -- $args -s -P $server" ;
-- } else {
-- print "client $host to $server\n" ;
-- $pidfile="/var/run/vtun.$host.$server" ;
-- system "$SSD --start $SSDARGS --pidfile $pidfile -- $args $host $server" ;
-- }
--} ;
--
--sub stop {
-- my($host,$server,$args) = @_ ;
-- print " Stopping vtun " ;
-- if ($host eq '') {
-- print "server\n" ;
-- system "$SSD --stop $SSDARGS" ;
-- } else {
-- print "client $host to $server\n" ;
-- $pidfile="/var/run/vtun.$host.$server" ;
-- system "$SSD --stop $SSDARGS --pidfile $pidfile" ;
-- }
--} ;
--
--sub reload {
-- my($host,$server) = @_ ;
-- print " Reloading vtun " ;
-- if ($host eq '') {
-- print "server\n" ;
-- system "$SSD --stop $SSDARGS --signal 1" ;
-- } else {
-- print "client $host to $server\n" ;
-- $pidfile="/var/run/vtun.$host.$server" ;
-- system "$SSD --stop $SSDARGS --signal 1 --pidfile $pidfile" ;
-- }
--}
-+PATH=/bin:/usr/bin:/sbin:/usr/sbin
-+DAEMON=/usr/sbin/vtund
-+CONFFILE=/etc/vtund-start.conf
-+PIDPREFIX=/var/run/vtund
-+
-+test -f $DAEMON || exit 0
-+
-+case "$1" in
-+ start)
-+ # find all the defined tunnels
-+ egrep -v '^[:space:]*(#.*)?$' $CONFFILE | while true;
-+ do
-+ read i
-+ # no more lines available? done, then.
-+ if [ $? != 0 ] ; then break; fi
-+ SARGS=`echo $i|sed -ne 's/--server--\s*/-s -P /p'`;
-+ if [ -n "$SARGS" ];
-+ then
-+ echo "Starting vtund server."
-+ start-stop-daemon -S -x $DAEMON -- $SARGS;
-+ else
-+ # split args into host and rest
-+ HOST=`echo $i|cut -f 1 -d " "`;
-+ TARGET=`echo $i|cut -f 2 -d " "`;
-+ echo "Starting vtund client $HOST to $TARGET.";
-+ start-stop-daemon -S -x $DAEMON -- $i;
-+ fi
-+ done
-+ ;;
-+ stop)
-+ echo "Stopping vtund.";
-+ start-stop-daemon -K -x vtund;
-+ ;;
-+
-+ restart|reload|force-reload)
-+ $0 stop
-+ sleep 1;
-+ $0 start
-+ ;;
-+ *)
-+ echo "Usage: $0 {start|stop|restart|reload|force-reload}" >&2
-+ exit 1
-+ ;;
-+esac
-+exit 0
---- vtun-2.6/configure.dist 2004-03-11 10:39:10.000000000 -0600
-+++ vtun-2.6/configure 2004-03-11 10:45:52.000000000 -0600
-@@ -2112,7 +2112,7 @@
- echo $ac_n "checking "for blowfish.h"""... $ac_c" 1>&6
- echo "configure:2114: checking "for blowfish.h"" >&5
- ac_hdr_found=no
-- for p in $BLOWFISH_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto; do
-+ for p in $BLOWFISH_HDR_DIR $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include /usr/local/include /usr/local/ssl/include /usr/include/crypto; do
- if test -n "$p"; then
- dir="$p"
- else
+++ /dev/null
-#!/bin/sh
-exec /usr/bin/bison -y "$@"
--- /dev/null
+#
+
+menu "Target Options"
+
+source "target/cramfs/Config.in"
+
+endmenu
+
--- /dev/null
+config BR2_TARGET_ROOTFS_CRAMFS
+ bool "Build a cramfs root filesystem for the target device"
+ default n
+ help
+ Build a cramfs root filesystem
+
--- /dev/null
+ifeq ($(strip $(BR2_TARGET_ROOTFS_CRAMFS)),y)
+TARGETS+=cramfsroot
+endif
--- /dev/null
+#############################################################
+#
+# mkcramfs to build to target cramfs filesystems
+#
+#############################################################
+CRAMFS_DIR=$(BUILD_DIR)/cramfs-1.1
+CRAMFS_SOURCE=cramfs-1.1.tar.gz
+CRAMFS_SITE=http://aleron.dl.sourceforge.net/sourceforge/cramfs
+CRAMFS_PATCH=$(SOURCE_DIR)/cramfs.patch
+
+$(DL_DIR)/$(CRAMFS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(CRAMFS_SITE)/$(CRAMFS_SOURCE)
+
+$(CRAMFS_DIR): $(DL_DIR)/$(CRAMFS_SOURCE) $(CRAMFS_PATCH)
+ zcat $(DL_DIR)/$(CRAMFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+ cat $(CRAMFS_PATCH) | patch -p1 -d $(CRAMFS_DIR)
+
+$(CRAMFS_DIR)/mkcramfs: $(CRAMFS_DIR)
+ $(MAKE) CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" -C $(CRAMFS_DIR);
+ touch -c $(CRAMFS_DIR)/mkcramfs
+
+cramfs: $(CRAMFS_DIR)/mkcramfs
+
+cramfs-source: $(DL_DIR)/$(CRAMFS_SOURCE)
+
+cramfs-clean:
+ -$(MAKE) -C $(CRAMFS_DIR) clean
+
+cramfs-dirclean:
+ rm -rf $(CRAMFS_DIR)
+
+#############################################################
+#
+# Build the cramfs root filesystem image
+#
+#############################################################
+
+cramfsroot: cramfs
+ #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
+ -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
+ @rm -rf $(TARGET_DIR)/usr/man
+ @rm -rf $(TARGET_DIR)/usr/info
+ $(CRAMFS_DIR)/mkcramfs -q -D $(SOURCE_DIR)/device_table.txt $(TARGET_DIR) $(IMAGE)
+
+cramfsroot-source: cramfs-source
+
+cramfsroot-clean:
+ -$(MAKE) -C $(CRAMFS_DIR) clean
+
+cramfsroot-dirclean:
+ rm -rf $(CRAMFS_DIR)
+
--- /dev/null
+--- cramfs-1.1.orig/cramfsck.c 2002-02-22 17:00:42.000000000 -0700
++++ cramfs-1.1/cramfsck.c 2002-12-21 01:25:17.000000000 -0700
+@@ -51,10 +51,11 @@
+ #include <utime.h>
+ #include <sys/ioctl.h>
+ #define _LINUX_STRING_H_
+-#include <linux/fs.h>
+-#include <linux/cramfs_fs.h>
++#include "linux/cramfs_fs.h"
+ #include <zlib.h>
+
++#define BLKGETSIZE _IO(0x12,96) /* return device size /512 (long *arg) */
++
+ /* Exit codes used by fsck-type programs */
+ #define FSCK_OK 0 /* No errors */
+ #define FSCK_NONDESTRUCT 1 /* File system errors corrected */
+@@ -75,7 +76,7 @@
+ static int opt_verbose = 0; /* 1 = verbose (-v), 2+ = very verbose (-vv) */
+ #ifdef INCLUDE_FS_TESTS
+ static int opt_extract = 0; /* extract cramfs (-x) */
+-static char *extract_dir = "root"; /* extraction directory (-x) */
++static char *extract_dir = "/"; /* extraction directory (-x) */
+ static uid_t euid; /* effective UID */
+
+ /* (cramfs_super + start) <= start_dir < end_dir <= start_data <= end_data */
+@@ -155,7 +156,7 @@
+ }
+
+ if (*length < sizeof(struct cramfs_super)) {
+- die(FSCK_UNCORRECTED, 0, "file length too short");
++ die(FSCK_UNCORRECTED, 0, "filesystem smaller than a cramfs superblock!");
+ }
+
+ /* find superblock */
+@@ -190,7 +191,8 @@
+ die(FSCK_UNCORRECTED, 0, "zero file count");
+ }
+ if (*length < super.size) {
+- die(FSCK_UNCORRECTED, 0, "file length too short");
++ die(FSCK_UNCORRECTED, 0, "file length too short, %lu is smaller than %lu",
++ *length, super.size);
+ }
+ else if (*length > super.size) {
+ fprintf(stderr, "warning: file extends past end of filesystem\n");
+@@ -267,11 +269,11 @@
+ #ifdef INCLUDE_FS_TESTS
+ static void print_node(char type, struct cramfs_inode *i, char *name)
+ {
+- char info[10];
++ char info[11];
+
+ if (S_ISCHR(i->mode) || (S_ISBLK(i->mode))) {
+ /* major/minor numbers can be as high as 2^12 or 4096 */
+- snprintf(info, 10, "%4d,%4d", major(i->size), minor(i->size));
++ snprintf(info, 11, "%4d,%4d", major(i->size), minor(i->size));
+ }
+ else {
+ /* size be as high as 2^24 or 16777216 */
+@@ -445,8 +447,10 @@
+ }
+ /* TODO: Do we need to check end_dir for empty case? */
+ memcpy(newpath, path, pathlen);
+- newpath[pathlen] = '/';
+- pathlen++;
++ if (pathlen > 1) {
++ newpath[pathlen] = '/';
++ pathlen++;
++ }
+ if (opt_verbose) {
+ print_node('d', i, path);
+ }
+--- cramfs-1.1.orig/device_table.txt 1969-12-31 17:00:00.000000000 -0700
++++ cramfs-1.1/device_table.txt 2003-01-01 05:13:44.000000000 -0700
+@@ -0,0 +1,129 @@
++# When building a target filesystem, it is desirable to not have to
++# become root and then run 'mknod' a thousand times. Using a device
++# table you can create device nodes and directories "on the fly".
++#
++# This is a sample device table file for use with mkcramfs. You can
++# do all sorts of interesting things with a device table file. For
++# example, if you want to adjust the permissions on a particular file
++# you can just add an entry like:
++# /sbin/foobar f 2755 0 0 - - - - -
++# and (assuming the file /sbin/foobar exists) it will be made setuid
++# root (regardless of what its permissions are on the host filesystem.
++# Furthermore, you can use a single table entry to create a many device
++# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
++# I could just use the following two table entries:
++# /dev/hda b 640 0 0 3 0 0 0 -
++# /dev/hda b 640 0 0 3 1 1 1 15
++#
++# Device table entries take the form of:
++# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++# where name is the file name, type can be one of:
++# f A regular file
++# d Directory
++# c Character special device file
++# b Block special device file
++# p Fifo (named pipe)
++# uid is the user id for the target file, gid is the group id for the
++# target file. The rest of the entries (major, minor, etc) apply only
++# to device special files.
++
++# Have fun
++# -Erik Andersen <andersen@codepoet.org>
++#
++
++#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++/dev d 755 0 0 - - - - -
++/dev/mem c 640 0 0 1 1 0 0 -
++/dev/kmem c 640 0 0 1 2 0 0 -
++/dev/null c 640 0 0 1 3 0 0 -
++/dev/zero c 640 0 0 1 5 0 0 -
++/dev/random c 640 0 0 1 8 0 0 -
++/dev/urandom c 640 0 0 1 9 0 0 -
++/dev/tty c 666 0 0 5 0 0 0 -
++/dev/tty c 666 0 0 4 0 0 1 6
++/dev/console c 640 0 0 5 1 0 0 -
++/dev/ram b 640 0 0 1 1 0 0 -
++/dev/ram b 640 0 0 1 0 0 1 4
++/dev/loop b 640 0 0 7 0 0 1 2
++/dev/ptmx c 666 0 0 5 2 0 0 -
++#/dev/ttyS c 640 0 0 4 64 0 1 4
++#/dev/psaux c 640 0 0 10 1 0 0 -
++#/dev/rtc c 640 0 0 10 135 0 0 -
++
++# Adjust permissions on some normal files
++#/etc/shadow f 600 0 0 - - - - -
++#/bin/tinylogin f 4755 0 0 - - - - -
++
++# User-mode Linux stuff
++/dev/ubda b 640 0 0 98 0 0 0 -
++/dev/ubda b 640 0 0 98 1 1 1 15
++
++# IDE Devices
++/dev/hda b 640 0 0 3 0 0 0 -
++/dev/hda b 640 0 0 3 1 1 1 15
++/dev/hdb b 640 0 0 3 64 0 0 -
++/dev/hdb b 640 0 0 3 65 1 1 15
++#/dev/hdc b 640 0 0 22 0 0 0 -
++#/dev/hdc b 640 0 0 22 1 1 1 15
++#/dev/hdd b 640 0 0 22 64 0 0 -
++#/dev/hdd b 640 0 0 22 65 1 1 15
++#/dev/hde b 640 0 0 33 0 0 0 -
++#/dev/hde b 640 0 0 33 1 1 1 15
++#/dev/hdf b 640 0 0 33 64 0 0 -
++#/dev/hdf b 640 0 0 33 65 1 1 15
++#/dev/hdg b 640 0 0 34 0 0 0 -
++#/dev/hdg b 640 0 0 34 1 1 1 15
++#/dev/hdh b 640 0 0 34 64 0 0 -
++#/dev/hdh b 640 0 0 34 65 1 1 15
++
++# SCSI Devices
++#/dev/sda b 640 0 0 8 0 0 0 -
++#/dev/sda b 640 0 0 8 1 1 1 15
++#/dev/sdb b 640 0 0 8 16 0 0 -
++#/dev/sdb b 640 0 0 8 17 1 1 15
++#/dev/sdc b 640 0 0 8 32 0 0 -
++#/dev/sdc b 640 0 0 8 33 1 1 15
++#/dev/sdd b 640 0 0 8 48 0 0 -
++#/dev/sdd b 640 0 0 8 49 1 1 15
++#/dev/sde b 640 0 0 8 64 0 0 -
++#/dev/sde b 640 0 0 8 65 1 1 15
++#/dev/sdf b 640 0 0 8 80 0 0 -
++#/dev/sdf b 640 0 0 8 81 1 1 15
++#/dev/sdg b 640 0 0 8 96 0 0 -
++#/dev/sdg b 640 0 0 8 97 1 1 15
++#/dev/sdh b 640 0 0 8 112 0 0 -
++#/dev/sdh b 640 0 0 8 113 1 1 15
++#/dev/sg c 640 0 0 21 0 0 1 15
++#/dev/scd b 640 0 0 11 0 0 1 15
++#/dev/st c 640 0 0 9 0 0 1 8
++#/dev/nst c 640 0 0 9 128 0 1 8
++#/dev/st c 640 0 0 9 32 1 1 4
++#/dev/st c 640 0 0 9 64 1 1 4
++#/dev/st c 640 0 0 9 96 1 1 4
++
++# Floppy disk devices
++#/dev/fd b 640 0 0 2 0 0 1 2
++#/dev/fd0d360 b 640 0 0 2 4 0 0 -
++#/dev/fd1d360 b 640 0 0 2 5 0 0 -
++#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
++#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
++#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
++#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
++#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
++#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
++
++# All the proprietary cdrom devices in the world
++#/dev/aztcd b 640 0 0 29 0 0 0 -
++#/dev/bpcd b 640 0 0 41 0 0 0 -
++#/dev/capi20 c 640 0 0 68 0 0 1 2
++#/dev/cdu31a b 640 0 0 15 0 0 0 -
++#/dev/cdu535 b 640 0 0 24 0 0 0 -
++#/dev/cm206cd b 640 0 0 32 0 0 0 -
++#/dev/sjcd b 640 0 0 18 0 0 0 -
++#/dev/sonycd b 640 0 0 15 0 0 0 -
++#/dev/gscd b 640 0 0 16 0 0 0 -
++#/dev/sbpcd b 640 0 0 25 0 0 0 -
++#/dev/sbpcd b 640 0 0 25 0 0 1 4
++#/dev/mcd b 640 0 0 23 0 0 0 -
++#/dev/optcd b 640 0 0 17 0 0 0 -
++
+--- cramfs-1.1.orig/mkcramfs.c 2002-02-20 01:03:32.000000000 -0700
++++ cramfs-1.1/mkcramfs.c 2002-12-21 01:25:17.000000000 -0700
+@@ -1,3 +1,4 @@
++/* vi: set sw=8 ts=8: */
+ /*
+ * mkcramfs - make a cramfs file system
+ *
+@@ -16,12 +17,21 @@
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * Added device table support (code taken from mkfs.jffs2.c, credit to
++ * Erik Andersen <andersen@codepoet.org>) as well as an option to squash
++ * permissions. - Russ Dill <Russ.Dill@asu.edu> September 2002
++ *
++ * Reworked, cleaned up, and updated for cramfs-1.1, December 2002
++ * - Erik Andersen <andersen@codepoet.org>
++ *
+ */
+
+ /*
+ * If you change the disk format of cramfs, please update fs/cramfs/README.
+ */
+
++#define _GNU_SOURCE
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <sys/stat.h>
+@@ -33,8 +43,15 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <stdarg.h>
++#include <libgen.h>
++#include <ctype.h>
++#include <assert.h>
++#include <getopt.h>
+ #include <linux/cramfs_fs.h>
+ #include <zlib.h>
++#ifdef DMALLOC
++#include <dmalloc.h>
++#endif
+
+ /* Exit codes used by mkfs-type programs */
+ #define MKFS_OK 0 /* No errors */
+@@ -71,11 +88,17 @@
+ + (1 << CRAMFS_SIZE_WIDTH) - 1 /* filesize */ \
+ + (1 << CRAMFS_SIZE_WIDTH) * 4 / PAGE_CACHE_SIZE /* block pointers */ )
+
++
++/* The kernel assumes PAGE_CACHE_SIZE as block size. */
++#define PAGE_CACHE_SIZE (4096)
++
++
+ static const char *progname = "mkcramfs";
+ static unsigned int blksize = PAGE_CACHE_SIZE;
+ static long total_blocks = 0, total_nodes = 1; /* pre-count the root node */
+ static int image_length = 0;
+
++
+ /*
+ * If opt_holes is set, then mkcramfs can create explicit holes in the
+ * data, which saves 26 bytes per hole (which is a lot smaller a
+@@ -91,10 +114,12 @@
+ static int opt_holes = 0;
+ static int opt_pad = 0;
+ static int opt_verbose = 0;
++static int opt_squash = 0;
+ static char *opt_image = NULL;
+ static char *opt_name = NULL;
+
+ static int warn_dev, warn_gid, warn_namelen, warn_skip, warn_size, warn_uid;
++static const char *const memory_exhausted = "memory exhausted";
+
+ /* In-core version of inode / directory entry. */
+ struct entry {
+@@ -123,7 +148,7 @@
+ {
+ FILE *stream = status ? stderr : stdout;
+
+- fprintf(stream, "usage: %s [-h] [-e edition] [-i file] [-n name] dirname outfile\n"
++ fprintf(stream, "usage: %s [-h] [-e edition] [-i file] [-n name] [-D file] dirname outfile\n"
+ " -h print this help\n"
+ " -E make all warnings errors (non-zero exit status)\n"
+ " -e edition set edition number (part of fsid)\n"
+@@ -133,39 +158,157 @@
+ " -s sort directory entries (old option, ignored)\n"
+ " -v be more verbose\n"
+ " -z make explicit holes (requires >= 2.3.39)\n"
+- " dirname root of the directory tree to be compressed\n"
++ " -D Use the named FILE as a device table file\n"
++ " -q squash permissions (make everything owned by root)\n"
++ " dirname root of the filesystem to be compressed\n"
+ " outfile output file\n", progname, PAD_SIZE);
+
+ exit(status);
+ }
+
+-static void die(int status, int syserr, const char *fmt, ...)
++static void verror_msg(const char *s, va_list p)
++{
++ fflush(stdout);
++ fprintf(stderr, "mkcramfs: ");
++ vfprintf(stderr, s, p);
++}
++
++static void vperror_msg(const char *s, va_list p)
++{
++ int err = errno;
++
++ if (s == 0)
++ s = "";
++ verror_msg(s, p);
++ if (*s)
++ s = ": ";
++ fprintf(stderr, "%s%s\n", s, strerror(err));
++}
++
++static void perror_msg(const char *s, ...)
++{
++ va_list p;
++
++ va_start(p, s);
++ vperror_msg(s, p);
++ va_end(p);
++}
++
++static void error_msg_and_die(const char *s, ...)
++{
++ va_list p;
++
++ va_start(p, s);
++ verror_msg(s, p);
++ va_end(p);
++ putc('\n', stderr);
++ exit(MKFS_ERROR);
++}
++
++static void perror_msg_and_die(const char *s, ...)
++{
++ va_list p;
++
++ va_start(p, s);
++ vperror_msg(s, p);
++ va_end(p);
++ exit(MKFS_ERROR);
++}
++#ifndef DMALLOC
++extern char *xstrdup(const char *s)
++{
++ char *t;
++
++ if (s == NULL)
++ return NULL;
++ t = strdup(s);
++ if (t == NULL)
++ error_msg_and_die(memory_exhausted);
++ return t;
++}
++
++extern void *xmalloc(size_t size)
++{
++ void *ptr = malloc(size);
++
++ if (ptr == NULL && size != 0)
++ error_msg_and_die(memory_exhausted);
++ return ptr;
++}
++
++extern void *xcalloc(size_t nmemb, size_t size)
++{
++ void *ptr = calloc(nmemb, size);
++
++ if (ptr == NULL && nmemb != 0 && size != 0)
++ error_msg_and_die(memory_exhausted);
++ return ptr;
++}
++
++extern void *xrealloc(void *ptr, size_t size)
++{
++ ptr = realloc(ptr, size);
++ if (ptr == NULL && size != 0)
++ error_msg_and_die(memory_exhausted);
++ return ptr;
++}
++#endif
++
++static FILE *xfopen(const char *path, const char *mode)
+ {
+- va_list arg_ptr;
+- int save = errno;
++ FILE *fp;
++
++ if ((fp = fopen(path, mode)) == NULL)
++ perror_msg_and_die("%s", path);
++ return fp;
++}
+
+- fflush(0);
+- va_start(arg_ptr, fmt);
+- fprintf(stderr, "%s: ", progname);
+- vfprintf(stderr, fmt, arg_ptr);
+- if (syserr) {
+- fprintf(stderr, ": %s", strerror(save));
++extern int xopen(const char *pathname, int flags, mode_t mode)
++{
++ int ret;
++
++ if (flags & O_CREAT)
++ ret = open(pathname, flags, mode);
++ else
++ ret = open(pathname, flags);
++ if (ret == -1) {
++ perror_msg_and_die("%s", pathname);
+ }
+- fprintf(stderr, "\n");
+- va_end(arg_ptr);
+- exit(status);
++ return ret;
+ }
+
++extern char *xreadlink(const char *path)
++{
++ static const int GROWBY = 80; /* how large we will grow strings by */
++
++ char *buf = NULL;
++ int bufsize = 0, readsize = 0;
++
++ do {
++ buf = xrealloc(buf, bufsize += GROWBY);
++ readsize = readlink(path, buf, bufsize); /* 1st try */
++ if (readsize == -1) {
++ perror_msg("%s:%s", progname, path);
++ return NULL;
++ }
++ }
++ while (bufsize < readsize + 1);
++
++ buf[readsize] = '\0';
++
++ return buf;
++}
++
+ static void map_entry(struct entry *entry)
+ {
+ if (entry->path) {
+ entry->fd = open(entry->path, O_RDONLY);
+ if (entry->fd < 0) {
+- die(MKFS_ERROR, 1, "open failed: %s", entry->path);
++ error_msg_and_die("open failed: %s", entry->path);
+ }
+ entry->uncompressed = mmap(NULL, entry->size, PROT_READ, MAP_PRIVATE, entry->fd, 0);
+ if (entry->uncompressed == MAP_FAILED) {
+- die(MKFS_ERROR, 1, "mmap failed: %s", entry->path);
++ error_msg_and_die("mmap failed: %s", entry->path);
+ }
+ }
+ }
+@@ -174,8 +317,9 @@
+ {
+ if (entry->path) {
+ if (munmap(entry->uncompressed, entry->size) < 0) {
+- die(MKFS_ERROR, 1, "munmap failed: %s", entry->path);
++ error_msg_and_die("munmap failed: %s", entry->path);
+ }
++ entry->uncompressed=NULL;
+ close(entry->fd);
+ }
+ }
+@@ -204,7 +348,8 @@
+ find_identical_file(orig->next, newfile));
+ }
+
+-static void eliminate_doubles(struct entry *root, struct entry *orig) {
++static void eliminate_doubles(struct entry *root, struct entry *orig)
++{
+ if (orig) {
+ if (orig->size && (orig->path || orig->uncompressed))
+ find_identical_file(root, orig);
+@@ -232,10 +377,7 @@
+
+ /* Set up the path. */
+ /* TODO: Reuse the parent's buffer to save memcpy'ing and duplication. */
+- path = malloc(len + 1 + MAX_INPUT_NAMELEN + 1);
+- if (!path) {
+- die(MKFS_ERROR, 1, "malloc failed");
+- }
++ path = xmalloc(len + 1 + MAX_INPUT_NAMELEN + 1);
+ memcpy(path, name, len);
+ endpath = path + len;
+ *endpath = '/';
+@@ -245,7 +387,7 @@
+ dircount = scandir(name, &dirlist, 0, cramsort);
+
+ if (dircount < 0) {
+- die(MKFS_ERROR, 1, "scandir failed: %s", name);
++ error_msg_and_die("scandir failed: %s", name);
+ }
+
+ /* process directory */
+@@ -269,25 +411,20 @@
+ }
+ namelen = strlen(dirent->d_name);
+ if (namelen > MAX_INPUT_NAMELEN) {
+- die(MKFS_ERROR, 0,
+- "very long (%u bytes) filename found: %s\n"
+- "please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile",
++ error_msg_and_die(
++ "Very long (%u bytes) filename `%s' found.\n"
++ " Please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile. Exiting.\n",
+ namelen, dirent->d_name);
+ }
+ memcpy(endpath, dirent->d_name, namelen + 1);
+
+ if (lstat(path, &st) < 0) {
++ perror(endpath);
+ warn_skip = 1;
+ continue;
+ }
+- entry = calloc(1, sizeof(struct entry));
+- if (!entry) {
+- die(MKFS_ERROR, 1, "calloc failed");
+- }
+- entry->name = strdup(dirent->d_name);
+- if (!entry->name) {
+- die(MKFS_ERROR, 1, "strdup failed");
+- }
++ entry = xcalloc(1, sizeof(struct entry));
++ entry->name = xstrdup(dirent->d_name);
+ /* truncate multi-byte UTF-8 filenames on character boundary */
+ if (namelen > CRAMFS_MAXPATHLEN) {
+ namelen = CRAMFS_MAXPATHLEN;
+@@ -297,24 +434,25 @@
+ namelen--;
+ /* are we reasonably certain it was UTF-8 ? */
+ if (entry->name[namelen] < 0x80 || !namelen) {
+- die(MKFS_ERROR, 0, "cannot truncate filenames not encoded in UTF-8");
++ error_msg_and_die("cannot truncate filenames not encoded in UTF-8");
+ }
+ }
+ entry->name[namelen] = '\0';
+ }
+ entry->mode = st.st_mode;
+ entry->size = st.st_size;
+- entry->uid = st.st_uid;
++ entry->uid = opt_squash ? 0 : st.st_uid;
+ if (entry->uid >= 1 << CRAMFS_UID_WIDTH)
+ warn_uid = 1;
+- entry->gid = st.st_gid;
+- if (entry->gid >= 1 << CRAMFS_GID_WIDTH)
++ entry->gid = opt_squash ? 0 : st.st_gid;
++ if (entry->gid >= 1 << CRAMFS_GID_WIDTH) {
+ /* TODO: We ought to replace with a default
+ gid instead of truncating; otherwise there
+ are security problems. Maybe mode should
+ be &= ~070. Same goes for uid once Linux
+ supports >16-bit uids. */
+ warn_gid = 1;
++ }
+ size = sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
+ *fslen_ub += size;
+ if (S_ISDIR(st.st_mode)) {
+@@ -325,21 +463,15 @@
+ warn_skip = 1;
+ continue;
+ }
+- entry->path = strdup(path);
+- if (!entry->path) {
+- die(MKFS_ERROR, 1, "strdup failed");
+- }
++ entry->path = xstrdup(path);
+ if ((entry->size >= 1 << CRAMFS_SIZE_WIDTH)) {
+ warn_size = 1;
+ entry->size = (1 << CRAMFS_SIZE_WIDTH) - 1;
+ }
+ }
+ } else if (S_ISLNK(st.st_mode)) {
+- entry->uncompressed = malloc(entry->size);
++ entry->uncompressed = xreadlink(path);
+ if (!entry->uncompressed) {
+- die(MKFS_ERROR, 1, "malloc failed");
+- }
+- if (readlink(path, entry->uncompressed, entry->size) < 0) {
+ warn_skip = 1;
+ continue;
+ }
+@@ -351,7 +483,7 @@
+ if (entry->size & -(1<<CRAMFS_SIZE_WIDTH))
+ warn_dev = 1;
+ } else {
+- die(MKFS_ERROR, 0, "bogus file type: %s", entry->name);
++ error_msg_and_die("bogus file type: %s", entry->name);
+ }
+
+ if (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode)) {
+@@ -378,7 +510,9 @@
+ struct cramfs_super *super = (struct cramfs_super *) base;
+ unsigned int offset = sizeof(struct cramfs_super) + image_length;
+
+- offset += opt_pad; /* 0 if no padding */
++ if (opt_pad) {
++ offset += opt_pad; /* 0 if no padding */
++ }
+
+ super->magic = CRAMFS_MAGIC;
+ super->flags = CRAMFS_FLAG_FSID_VERSION_2 | CRAMFS_FLAG_SORTED_DIRS;
+@@ -414,10 +548,10 @@
+ struct cramfs_inode *inode = (struct cramfs_inode *) (base + entry->dir_offset);
+
+ if ((offset & 3) != 0) {
+- die(MKFS_ERROR, 0, "illegal offset of %lu bytes", offset);
++ error_msg_and_die("illegal offset of %lu bytes", offset);
+ }
+ if (offset >= (1 << (2 + CRAMFS_OFFSET_WIDTH))) {
+- die(MKFS_ERROR, 0, "filesystem too big");
++ error_msg_and_die("filesystem too big");
+ }
+ inode->offset = (offset >> 2);
+ }
+@@ -429,7 +563,7 @@
+ */
+ static void print_node(struct entry *e)
+ {
+- char info[10];
++ char info[12];
+ char type = '?';
+
+ if (S_ISREG(e->mode)) type = 'f';
+@@ -442,11 +576,11 @@
+
+ if (S_ISCHR(e->mode) || (S_ISBLK(e->mode))) {
+ /* major/minor numbers can be as high as 2^12 or 4096 */
+- snprintf(info, 10, "%4d,%4d", major(e->size), minor(e->size));
++ snprintf(info, 11, "%4d,%4d", major(e->size), minor(e->size));
+ }
+ else {
+ /* size be as high as 2^24 or 16777216 */
+- snprintf(info, 10, "%9d", e->size);
++ snprintf(info, 11, "%9d", e->size);
+ }
+
+ printf("%c %04o %s %5d:%-3d %s\n",
+@@ -462,17 +596,9 @@
+ {
+ int stack_entries = 0;
+ int stack_size = 64;
+- struct entry **entry_stack;
+-
+- entry_stack = malloc(stack_size * sizeof(struct entry *));
+- if (!entry_stack) {
+- die(MKFS_ERROR, 1, "malloc failed");
+- }
+-
+- if (opt_verbose) {
+- printf("root:\n");
+- }
++ struct entry **entry_stack = NULL;
+
++ entry_stack = xmalloc(stack_size * sizeof(struct entry *));
+ for (;;) {
+ int dir_start = stack_entries;
+ while (entry) {
+@@ -506,10 +632,7 @@
+ if (entry->child) {
+ if (stack_entries >= stack_size) {
+ stack_size *= 2;
+- entry_stack = realloc(entry_stack, stack_size * sizeof(struct entry *));
+- if (!entry_stack) {
+- die(MKFS_ERROR, 1, "realloc failed");
+- }
++ entry_stack = xrealloc(entry_stack, stack_size * sizeof(struct entry *));
+ }
+ entry_stack[stack_entries] = entry;
+ stack_entries++;
+@@ -543,7 +666,7 @@
+
+ set_data_offset(entry, base, offset);
+ if (opt_verbose) {
+- printf("%s:\n", entry->name);
++ printf("'%s':\n", entry->name);
+ }
+ entry = entry->child;
+ }
+@@ -553,16 +676,21 @@
+
+ static int is_zero(char const *begin, unsigned len)
+ {
+- /* Returns non-zero iff the first LEN bytes from BEGIN are all NULs. */
+- return (len-- == 0 ||
+- (begin[0] == '\0' &&
+- (len-- == 0 ||
+- (begin[1] == '\0' &&
+- (len-- == 0 ||
+- (begin[2] == '\0' &&
+- (len-- == 0 ||
+- (begin[3] == '\0' &&
+- memcmp(begin, begin + 4, len) == 0))))))));
++ if (opt_holes)
++ /* Returns non-zero iff the first LEN bytes from BEGIN are
++ all NULs. */
++ return (len-- == 0 ||
++ (begin[0] == '\0' &&
++ (len-- == 0 ||
++ (begin[1] == '\0' &&
++ (len-- == 0 ||
++ (begin[2] == '\0' &&
++ (len-- == 0 ||
++ (begin[3] == '\0' &&
++ memcmp(begin, begin + 4, len) == 0))))))));
++ else
++ /* Never create holes. */
++ return 0;
+ }
+
+ /*
+@@ -575,37 +703,34 @@
+ * Note that size > 0, as a zero-sized file wouldn't ever
+ * have gotten here in the first place.
+ */
+-static unsigned int do_compress(char *base, unsigned int offset, char const *name, char *uncompressed, unsigned int size)
++static unsigned int do_compress(char *base, unsigned int offset, struct entry *entry)
+ {
++ unsigned int size = entry->size;
+ unsigned long original_size = size;
+ unsigned long original_offset = offset;
+ unsigned long new_size;
+ unsigned long blocks = (size - 1) / blksize + 1;
+ unsigned long curr = offset + 4 * blocks;
+ int change;
++ char *uncompressed = entry->uncompressed;
+
+- total_blocks += blocks;
++ total_blocks += blocks;
+
+ do {
+ unsigned long len = 2 * blksize;
+ unsigned int input = size;
+- int err;
+-
+ if (input > blksize)
+ input = blksize;
+ size -= input;
+- if (!(opt_holes && is_zero (uncompressed, input))) {
+- err = compress2(base + curr, &len, uncompressed, input, Z_BEST_COMPRESSION);
+- if (err != Z_OK) {
+- die(MKFS_ERROR, 0, "compression error: %s", zError(err));
+- }
++ if (!is_zero (uncompressed, input)) {
++ compress(base + curr, &len, uncompressed, input);
+ curr += len;
+ }
+ uncompressed += input;
+
+ if (len > blksize*2) {
+ /* (I don't think this can happen with zlib.) */
+- die(MKFS_ERROR, 0, "AIEEE: block \"compressed\" to > 2*blocklength (%ld)", len);
++ error_msg_and_die("AIEEE: block \"compressed\" to > 2*blocklength (%ld)\n", len);
+ }
+
+ *(u32 *) (base + offset) = curr;
+@@ -618,10 +743,12 @@
+ st_blocks * 512. But if you say that then perhaps
+ administrative data should also be included in both. */
+ change = new_size - original_size;
+- if (opt_verbose > 1) {
+- printf("%6.2f%% (%+d bytes)\t%s\n",
+- (change * 100) / (double) original_size, change, name);
++#if 0
++ if (opt_verbose) {
++ printf("%6.2f%% (%+d bytes)\t%s\n",
++ (change * 100) / (double) original_size, change, entry->name);
+ }
++#endif
+
+ return curr;
+ }
+@@ -644,7 +771,7 @@
+ set_data_offset(entry, base, offset);
+ entry->offset = offset;
+ map_entry(entry);
+- offset = do_compress(base, offset, entry->name, entry->uncompressed, entry->size);
++ offset = do_compress(base, offset, entry);
+ unmap_entry(entry);
+ }
+ }
+@@ -660,13 +787,10 @@
+ int fd;
+ char *buf;
+
+- fd = open(file, O_RDONLY);
+- if (fd < 0) {
+- die(MKFS_ERROR, 1, "open failed: %s", file);
+- }
++ fd = xopen(file, O_RDONLY, 0);
+ buf = mmap(NULL, image_length, PROT_READ, MAP_PRIVATE, fd, 0);
+ if (buf == MAP_FAILED) {
+- die(MKFS_ERROR, 1, "mmap failed");
++ error_msg_and_die("mmap failed");
+ }
+ memcpy(base + offset, buf, image_length);
+ munmap(buf, image_length);
+@@ -679,6 +803,328 @@
+ return (offset + image_length);
+ }
+
++static struct entry *find_filesystem_entry(struct entry *dir, char *name, mode_t type)
++{
++ struct entry *e = dir;
++
++ if (S_ISDIR(dir->mode)) {
++ e = dir->child;
++ }
++ while (e) {
++ /* Only bother to do the expensive strcmp on matching file types */
++ if (type == (e->mode & S_IFMT) && e->name) {
++ if (S_ISDIR(e->mode)) {
++ int len = strlen(e->name);
++
++ /* Check if we are a parent of the correct path */
++ if (strncmp(e->name, name, len) == 0) {
++ /* Is this an _exact_ match? */
++ if (strcmp(name, e->name) == 0) {
++ return (e);
++ }
++ /* Looks like we found a parent of the correct path */
++ if (name[len] == '/') {
++ if (e->child) {
++ return (find_filesystem_entry (e, name + len + 1, type));
++ } else {
++ return NULL;
++ }
++ }
++ }
++ } else {
++ if (strcmp(name, e->name) == 0) {
++ return (e);
++ }
++ }
++ }
++ e = e->next;
++ }
++ return (NULL);
++}
++
++void modify_entry(char *full_path, unsigned long uid, unsigned long gid,
++ unsigned long mode, unsigned long rdev, struct entry *root, loff_t *fslen_ub)
++{
++ char *name, *path, *full;
++ struct entry *curr, *parent, *entry, *prev;
++
++ full = xstrdup(full_path);
++ path = xstrdup(dirname(full));
++ name = full_path + strlen(path) + 1;
++ free(full);
++ if (strcmp(path, "/") == 0) {
++ parent = root;
++ name = full_path + 1;
++ } else {
++ if (!(parent = find_filesystem_entry(root, path+1, S_IFDIR)))
++ error_msg_and_die("%s/%s: could not find parent\n", path, name);
++ }
++ if ((entry = find_filesystem_entry(parent, name, (mode & S_IFMT)))) {
++ /* its there, just modify permissions */
++ entry->mode = mode;
++ entry->uid = uid;
++ entry->gid = gid;
++ } else { /* make a new entry */
++
++ /* code partially replicated from parse_directory() */
++ size_t namelen;
++ if (S_ISREG(mode)) {
++ error_msg_and_die("%s: regular file from device_table file must exist on disk!", full_path);
++ }
++
++ namelen = strlen(name);
++ if (namelen > MAX_INPUT_NAMELEN) {
++ error_msg_and_die(
++ "Very long (%u bytes) filename `%s' found.\n"
++ " Please increase MAX_INPUT_NAMELEN in mkcramfs.c and recompile. Exiting.\n",
++ namelen, name);
++ }
++ entry = xcalloc(1, sizeof(struct entry));
++ entry->name = xstrdup(name);
++ /* truncate multi-byte UTF-8 filenames on character boundary */
++ if (namelen > CRAMFS_MAXPATHLEN) {
++ namelen = CRAMFS_MAXPATHLEN;
++ warn_namelen = 1;
++ /* the first lost byte must not be a trail byte */
++ while ((entry->name[namelen] & 0xc0) == 0x80) {
++ namelen--;
++ /* are we reasonably certain it was UTF-8 ? */
++ if (entry->name[namelen] < 0x80 || !namelen) {
++ error_msg_and_die("cannot truncate filenames not encoded in UTF-8");
++ }
++ }
++ entry->name[namelen] = '\0';
++ }
++ entry->mode = mode;
++ entry->uid = uid;
++ entry->gid = gid;
++ entry->size = 0;
++ if (S_ISBLK(mode) || S_ISCHR(mode)) {
++ entry->size = rdev;
++ if (entry->size & -(1<<CRAMFS_SIZE_WIDTH))
++ warn_dev = 1;
++ }
++
++ /* ok, now we have to backup and correct the size of all the entries above us */
++ *fslen_ub += sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
++ parent->size += sizeof(struct cramfs_inode) + ((namelen + 3) & ~3);
++
++ /* alright, time to link us in */
++ curr = parent->child;
++ prev = NULL;
++ while (curr && strcmp(name, curr->name) > 0) {
++ prev = curr;
++ curr = curr->next;
++ }
++ if (!prev) parent->child = entry;
++ else prev->next = entry;
++ entry->next = curr;
++ entry->child = NULL;
++ }
++ if (entry->uid >= 1 << CRAMFS_UID_WIDTH)
++ warn_uid = 1;
++ if (entry->gid >= 1 << CRAMFS_GID_WIDTH) {
++ /* TODO: We ought to replace with a default
++ gid instead of truncating; otherwise there
++ are security problems. Maybe mode should
++ be &= ~070. Same goes for uid once Linux
++ supports >16-bit uids. */
++ warn_gid = 1;
++ }
++ free(path);
++}
++
++/* the GNU C library has a wonderful scanf("%as", string) which will
++ allocate the string with the right size, good to avoid buffer overruns.
++ the following macros use it if available or use a hacky workaround...
++ */
++
++#ifdef __GNUC__
++#define SCANF_PREFIX "a"
++#define SCANF_STRING(s) (&s)
++#define GETCWD_SIZE 0
++#else
++#define SCANF_PREFIX "511"
++#define SCANF_STRING(s) (s = xmalloc(512))
++#define GETCWD_SIZE -1
++inline int snprintf(char *str, size_t n, const char *fmt, ...)
++{
++ int ret;
++ va_list ap;
++
++ va_start(ap, fmt);
++ ret = vsprintf(str, fmt, ap);
++ va_end(ap);
++ return ret;
++}
++#endif
++
++/* device table entries take the form of:
++ <path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++ /dev/mem c 640 0 0 1 1 0 0 -
++
++ type can be one of:
++ f A regular file
++ d Directory
++ c Character special device file
++ b Block special device file
++ p Fifo (named pipe)
++
++ I don't bother with symlinks (permissions are irrelevant), hard
++ links (special cases of regular files), or sockets (why bother).
++
++ Regular files must exist in the target root directory. If a char,
++ block, fifo, or directory does not exist, it will be created.
++*/
++
++static int interpret_table_entry(char *line, struct entry *root, loff_t *fslen_ub)
++{
++ char type, *name = NULL;
++ unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
++ unsigned long start = 0, increment = 1, count = 0;
++
++ if (sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu",
++ SCANF_STRING(name), &type, &mode, &uid, &gid, &major, &minor,
++ &start, &increment, &count) < 0)
++ {
++ return 1;
++ }
++
++ if (!strcmp(name, "/")) {
++ error_msg_and_die("Device table entries require absolute paths");
++ }
++
++ switch (type) {
++ case 'd':
++ mode |= S_IFDIR;
++ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
++ break;
++ case 'f':
++ mode |= S_IFREG;
++ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
++ break;
++ case 'p':
++ mode |= S_IFIFO;
++ modify_entry(name, uid, gid, mode, 0, root, fslen_ub);
++ break;
++ case 'c':
++ case 'b':
++ mode |= (type == 'c') ? S_IFCHR : S_IFBLK;
++ if (count > 0) {
++ char *buf;
++ unsigned long i;
++ dev_t rdev;
++
++ for (i = start; i < count; i++) {
++ asprintf(&buf, "%s%lu", name, i);
++ rdev = makedev(major, minor + (i * increment - start));
++ modify_entry(buf, uid, gid, mode, rdev, root, fslen_ub);
++ free(buf);
++ }
++ } else {
++ dev_t rdev = makedev(major, minor);
++ modify_entry(name, uid, gid, mode, rdev, root, fslen_ub);
++ }
++ break;
++ default:
++ error_msg_and_die("Unsupported file type");
++ }
++ free(name);
++ return 0;
++}
++
++static int parse_device_table(FILE *file, struct entry *root, loff_t *fslen_ub)
++{
++ char *line;
++ int status = 0;
++ size_t length = 0;
++
++ /* Turn off squash, since we must ensure that values
++ * entered via the device table are not squashed */
++ opt_squash = 0;
++
++ /* Looks ok so far. The general plan now is to read in one
++ * line at a time, check for leading comment delimiters ('#'),
++ * then try and parse the line as a device table. If we fail
++ * to parse things, try and help the poor fool to fix their
++ * device table with a useful error msg... */
++ line = NULL;
++ while (getline(&line, &length, file) != -1) {
++ /* First trim off any whitespace */
++ int len = strlen(line);
++
++ /* trim trailing whitespace */
++ while (len > 0 && isspace(line[len - 1]))
++ line[--len] = '\0';
++ /* trim leading whitespace */
++ memmove(line, &line[strspn(line, " \n\r\t\v")], len);
++
++ /* How long are we after trimming? */
++ len = strlen(line);
++
++ /* If this is NOT a comment line, try to interpret it */
++ if (len && *line != '#') {
++ if (interpret_table_entry(line, root, fslen_ub))
++ status = 1;
++ }
++
++ free(line);
++ line = NULL;
++ }
++ free(line);
++ fclose(file);
++
++ return status;
++}
++
++void traverse(struct entry *entry, int depth)
++{
++ struct entry *curr = entry;
++ int i;
++
++ while (curr) {
++ for (i = 0; i < depth; i++) putchar(' ');
++ printf("%s: size=%d mode=%d same=%p\n",
++ (curr->name)? (char*)curr->name : "/",
++ curr->size, curr->mode, curr->same);
++ if (curr->child) traverse(curr->child, depth + 4);
++ curr = curr->next;
++ }
++}
++
++static void free_filesystem_entry(struct entry *dir)
++{
++ struct entry *e = dir, *last;
++
++ if (S_ISDIR(dir->mode)) {
++ e = dir->child;
++ }
++ while (e) {
++ if (e->name)
++ free(e->name);
++ if (e->path)
++ free(e->path);
++ if (e->uncompressed)
++ free(e->uncompressed);
++ last = e;
++ if (e->child) {
++ free_filesystem_entry(e);
++ }
++ e = e->next;
++ free(last);
++ }
++}
++
++
++/*
++ * Usage:
++ *
++ * mkcramfs directory-name outfile
++ *
++ * where "directory-name" is simply the root of the directory
++ * tree that we want to generate a compressed filesystem out
++ * of.
++ */
+ int main(int argc, char **argv)
+ {
+ struct stat st; /* used twice... */
+@@ -692,6 +1138,7 @@
+ u32 crc;
+ int c; /* for getopt */
+ char *ep; /* for strtoul */
++ FILE *devtable = NULL;
+
+ total_blocks = 0;
+
+@@ -699,7 +1146,7 @@
+ progname = argv[0];
+
+ /* command line options */
+- while ((c = getopt(argc, argv, "hEe:i:n:psvz")) != EOF) {
++ while ((c = getopt(argc, argv, "hEe:i:n:psvzD:q")) != EOF) {
+ switch (c) {
+ case 'h':
+ usage(MKFS_OK);
+@@ -715,7 +1162,7 @@
+ case 'i':
+ opt_image = optarg;
+ if (lstat(opt_image, &st) < 0) {
+- die(MKFS_ERROR, 1, "lstat failed: %s", opt_image);
++ error_msg_and_die("lstat failed: %s", opt_image);
+ }
+ image_length = st.st_size; /* may be padded later */
+ fslen_ub += (image_length + 3); /* 3 is for padding */
+@@ -736,6 +1183,16 @@
+ case 'z':
+ opt_holes = 1;
+ break;
++ case 'q':
++ opt_squash = 1;
++ break;
++ case 'D':
++ devtable = xfopen(optarg, "r");
++ if (fstat(fileno(devtable), &st) < 0)
++ perror_msg_and_die(optarg);
++ if (st.st_size < 10)
++ error_msg_and_die("%s: not a proper device table file\n", optarg);
++ break;
+ }
+ }
+
+@@ -745,25 +1202,23 @@
+ outfile = argv[optind + 1];
+
+ if (stat(dirname, &st) < 0) {
+- die(MKFS_USAGE, 1, "stat failed: %s", dirname);
+- }
+- fd = open(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
+- if (fd < 0) {
+- die(MKFS_USAGE, 1, "open failed: %s", outfile);
++ error_msg_and_die("stat failed: %s", dirname);
+ }
++ fd = xopen(outfile, O_WRONLY | O_CREAT | O_TRUNC, 0666);
+
+- root_entry = calloc(1, sizeof(struct entry));
+- if (!root_entry) {
+- die(MKFS_ERROR, 1, "calloc failed");
+- }
++ root_entry = xcalloc(1, sizeof(struct entry));
+ root_entry->mode = st.st_mode;
+ root_entry->uid = st.st_uid;
+ root_entry->gid = st.st_gid;
+
+ root_entry->size = parse_directory(root_entry, dirname, &root_entry->child, &fslen_ub);
+
++ if (devtable) {
++ parse_device_table(devtable, root_entry, &fslen_ub);
++ }
++
+ /* always allocate a multiple of blksize bytes because that's
+- what we're going to write later on */
++ what we're going to write later on */
+ fslen_ub = ((fslen_ub - 1) | (blksize - 1)) + 1;
+
+ if (fslen_ub > MAXFSLEN) {
+@@ -790,7 +1245,7 @@
+ rom_image = mmap(NULL, fslen_ub?fslen_ub:1, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+
+ if (rom_image == MAP_FAILED) {
+- die(MKFS_ERROR, 1, "mmap failed");
++ error_msg_and_die("mmap failed");
+ }
+
+ /* Skip the first opt_pad bytes for boot loader code */
+@@ -807,6 +1262,7 @@
+ }
+
+ offset = write_directory_structure(root_entry->child, rom_image, offset);
++ if (opt_verbose)
+ printf("Directory data: %d bytes\n", offset);
+
+ offset = write_data(root_entry, rom_image, offset);
+@@ -814,30 +1270,38 @@
+ /* We always write a multiple of blksize bytes, so that
+ losetup works. */
+ offset = ((offset - 1) | (blksize - 1)) + 1;
++ if (opt_verbose)
+ printf("Everything: %d kilobytes\n", offset >> 10);
+
+ /* Write the superblock now that we can fill in all of the fields. */
+ write_superblock(root_entry, rom_image+opt_pad, offset);
++ if (opt_verbose)
+ printf("Super block: %d bytes\n", sizeof(struct cramfs_super));
+
+ /* Put the checksum in. */
+ crc = crc32(0L, Z_NULL, 0);
+ crc = crc32(crc, (rom_image+opt_pad), (offset-opt_pad));
+ ((struct cramfs_super *) (rom_image+opt_pad))->fsid.crc = crc;
++ if (opt_verbose)
+ printf("CRC: %x\n", crc);
+
+ /* Check to make sure we allocated enough space. */
+ if (fslen_ub < offset) {
+- die(MKFS_ERROR, 0, "not enough space allocated for ROM image (%Ld allocated, %d used)", fslen_ub, offset);
++ error_msg_and_die("not enough space allocated for ROM "
++ "image (%Ld allocated, %d used)", fslen_ub, offset);
+ }
+
+ written = write(fd, rom_image, offset);
+ if (written < 0) {
+- die(MKFS_ERROR, 1, "write failed");
++ error_msg_and_die("write failed");
+ }
+ if (offset != written) {
+- die(MKFS_ERROR, 0, "ROM image write failed (wrote %d of %d bytes)", written, offset);
++ error_msg_and_die("ROM image write failed (wrote %d of %d bytes)", written, offset);
+ }
++
++ /* Free up memory */
++ free_filesystem_entry(root_entry);
++ free(root_entry);
+
+ /* (These warnings used to come at the start, but they scroll off the
+ screen too quickly.) */
--- /dev/null
+# When building a target filesystem, it is desirable to not have to
+# become root and then run 'mknod' a thousand times. Using a device
+# table you can create device nodes and directories "on the fly".
+#
+# This is a sample device table file for use with genext2fs. You can
+# do all sorts of interesting things with a device table file. For
+# example, if you want to adjust the permissions on a particular file
+# you can just add an entry like:
+# /sbin/foobar f 2755 0 0 - - - - -
+# and (assuming the file /sbin/foobar exists) it will be made setuid
+# root (regardless of what its permissions are on the host filesystem.
+# Furthermore, you can use a single table entry to create a many device
+# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
+# I could just use the following two table entries:
+# /dev/hda b 640 0 0 3 0 0 0 -
+# /dev/hda b 640 0 0 3 1 1 1 15
+#
+# Device table entries take the form of:
+# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+# where name is the file name, type can be one of:
+# f A regular file
+# d Directory
+# c Character special device file
+# b Block special device file
+# p Fifo (named pipe)
+# uid is the user id for the target file, gid is the group id for the
+# target file. The rest of the entries (major, minor, etc) apply only
+# to device special files.
+
+# Have fun
+# -Erik Andersen <andersen@codepoet.org>
+#
+
+#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+/dev d 755 0 0 - - - - -
+/dev/pts d 755 0 0 - - - - -
+/tmp d 1777 0 0 - - - - -
+/etc d 755 0 0 - - - - -
+/home/default d 2755 1000 1000 - - - - -
+#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
+/bin/busybox f 4755 0 0 - - - - -
+/etc/shadow f 600 0 0 - - - - -
+/etc/passwd f 644 0 0 - - - - -
+/etc/network/if-up.d d 755 0 0 - - - - -
+/etc/network/if-pre-up.d d 755 0 0 - - - - -
+/etc/network/if-down.d d 755 0 0 - - - - -
+/etc/network/if-post-down.d d 755 0 0 - - - - -
+/usr/share/udhcpc/default.script f 755 0 0 - - - - -
+# uncomment this to allow starting x as non-root
+#/usr/X11R6/bin/Xfbdev f 4755 0 0 - - - - -
+# Normal system devices
+/dev/mem c 640 0 0 1 1 0 0 -
+/dev/kmem c 640 0 0 1 2 0 0 -
+/dev/null c 666 0 0 1 3 0 0 -
+/dev/zero c 666 0 0 1 5 0 0 -
+/dev/random c 666 0 0 1 8 0 0 -
+/dev/urandom c 666 0 0 1 9 0 0 -
+/dev/ram b 640 0 0 1 1 0 0 -
+/dev/ram b 640 0 0 1 0 0 1 4
+/dev/loop b 640 0 0 7 0 0 1 2
+/dev/rtc c 640 0 0 10 135 - - -
+/dev/console c 666 0 0 5 1 - - -
+/dev/tty c 666 0 0 5 0 - - -
+/dev/tty c 666 0 0 4 0 0 1 8
+/dev/ttyp c 666 0 0 3 0 0 1 10
+/dev/ptyp c 666 0 0 2 0 0 1 10
+/dev/ptmx c 666 0 0 5 2 - - -
+/dev/ttyP c 666 0 0 57 0 0 1 4
+/dev/ttyS c 666 0 0 4 64 0 1 4
+/dev/fb c 640 0 5 29 0 0 32 4
+#/dev/ttySA c 666 0 0 204 5 0 1 3
+/dev/psaux c 666 0 0 10 1 0 0 -
+#/dev/ppp c 666 0 0 108 0 - - -
+
+# MTD stuff
+/dev/mtd c 640 0 0 90 0 0 2 4
+/dev/mtdblock b 640 0 0 31 0 0 1 4
+
+#Tun/tap driver
+/dev/net d 755 0 0 - - - - -
+/dev/net/tun c 660 0 0 10 200 - - -
+
+# Audio stuff
+#/dev/audio c 666 0 29 14 4 - - -
+#/dev/audio1 c 666 0 29 14 20 - - -
+#/dev/dsp c 666 0 29 14 3 - - -
+#/dev/dsp1 c 666 0 29 14 19 - - -
+#/dev/sndstat c 666 0 29 14 6 - - -
+
+# User-mode Linux stuff
+/dev/ubda b 640 0 0 98 0 0 0 -
+/dev/ubda b 640 0 0 98 1 1 1 15
+
+# IDE Devices
+/dev/hda b 640 0 0 3 0 0 0 -
+/dev/hda b 640 0 0 3 1 1 1 15
+/dev/hdb b 640 0 0 3 64 0 0 -
+/dev/hdb b 640 0 0 3 65 1 1 15
+#/dev/hdc b 640 0 0 22 0 0 0 -
+#/dev/hdc b 640 0 0 22 1 1 1 15
+#/dev/hdd b 640 0 0 22 64 0 0 -
+#/dev/hdd b 640 0 0 22 65 1 1 15
+#/dev/hde b 640 0 0 33 0 0 0 -
+#/dev/hde b 640 0 0 33 1 1 1 15
+#/dev/hdf b 640 0 0 33 64 0 0 -
+#/dev/hdf b 640 0 0 33 65 1 1 15
+#/dev/hdg b 640 0 0 34 0 0 0 -
+#/dev/hdg b 640 0 0 34 1 1 1 15
+#/dev/hdh b 640 0 0 34 64 0 0 -
+#/dev/hdh b 640 0 0 34 65 1 1 15
+
+# SCSI Devices
+#/dev/sda b 640 0 0 8 0 0 0 -
+#/dev/sda b 640 0 0 8 1 1 1 15
+#/dev/sdb b 640 0 0 8 16 0 0 -
+#/dev/sdb b 640 0 0 8 17 1 1 15
+#/dev/sdc b 640 0 0 8 32 0 0 -
+#/dev/sdc b 640 0 0 8 33 1 1 15
+#/dev/sdd b 640 0 0 8 48 0 0 -
+#/dev/sdd b 640 0 0 8 49 1 1 15
+#/dev/sde b 640 0 0 8 64 0 0 -
+#/dev/sde b 640 0 0 8 65 1 1 15
+#/dev/sdf b 640 0 0 8 80 0 0 -
+#/dev/sdf b 640 0 0 8 81 1 1 15
+#/dev/sdg b 640 0 0 8 96 0 0 -
+#/dev/sdg b 640 0 0 8 97 1 1 15
+#/dev/sdh b 640 0 0 8 112 0 0 -
+#/dev/sdh b 640 0 0 8 113 1 1 15
+#/dev/sg c 640 0 0 21 0 0 1 15
+#/dev/scd b 640 0 0 11 0 0 1 15
+#/dev/st c 640 0 0 9 0 0 1 8
+#/dev/nst c 640 0 0 9 128 0 1 8
+#/dev/st c 640 0 0 9 32 1 1 4
+#/dev/st c 640 0 0 9 64 1 1 4
+#/dev/st c 640 0 0 9 96 1 1 4
+
+# Floppy disk devices
+#/dev/fd b 640 0 0 2 0 0 1 2
+#/dev/fd0d360 b 640 0 0 2 4 0 0 -
+#/dev/fd1d360 b 640 0 0 2 5 0 0 -
+#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
+#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
+#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
+#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
+#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
+#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
+
+# All the proprietary cdrom devices in the world
+#/dev/aztcd b 640 0 0 29 0 0 0 -
+#/dev/bpcd b 640 0 0 41 0 0 0 -
+#/dev/capi20 c 640 0 0 68 0 0 1 2
+#/dev/cdu31a b 640 0 0 15 0 0 0 -
+#/dev/cdu535 b 640 0 0 24 0 0 0 -
+#/dev/cm206cd b 640 0 0 32 0 0 0 -
+#/dev/sjcd b 640 0 0 18 0 0 0 -
+#/dev/sonycd b 640 0 0 15 0 0 0 -
+#/dev/gscd b 640 0 0 16 0 0 0 -
+#/dev/sbpcd b 640 0 0 25 0 0 0 -
+#/dev/sbpcd b 640 0 0 25 0 0 1 4
+#/dev/mcd b 640 0 0 23 0 0 0 -
+#/dev/optcd b 640 0 0 17 0 0 0 -
+
--- /dev/null
+# /etc/fstab: static file system information.
+#
+# <file system> <mount pt> <type> <options> <dump> <pass>
+/dev/root / ext2 rw,noauto 0 1
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts defaults,gid=5,mode=620 0 0
+tmpfs /tmp tmpfs defaults 0 0
+
--- /dev/null
+root:x:0:
+daemon:x:1:
+bin:x:2:
+sys:x:3:
+adm:x:4:
+tty:x:5:
+disk:x:6:
+utmp:x:43:
+staff:x:50:
+default:x:1000:
--- /dev/null
+127.0.0.1 localhost
--- /dev/null
+#! /bin/sh
+#
+# urandom This script saves the random seed between reboots.
+# It is called from the boot, halt and reboot scripts.
+#
+# Version: @(#)urandom 1.33 22-Jun-1998 miquels@cistron.nl
+#
+
+[ -c /dev/urandom ] || exit 0
+#. /etc/default/rcS
+
+case "$1" in
+ start|"")
+ if [ "$VERBOSE" != no ]
+ then
+ echo -n "Initializing random number generator... "
+ fi
+ # Load and then save 512 bytes,
+ # which is the size of the entropy pool
+ if [ -f /etc/random-seed ]
+ then
+ cat /etc/random-seed >/dev/urandom
+ fi
+ rm -f /etc/random-seed
+ umask 077
+ dd if=/dev/urandom of=/etc/random-seed count=1 \
+ >/dev/null 2>&1 || echo "urandom start: failed."
+ umask 022
+ [ "$VERBOSE" != no ] && echo "done."
+ ;;
+ stop)
+ # Carry a random seed from shut-down to start-up;
+ # see documentation in linux/drivers/char/random.c
+ [ "$VERBOSE" != no ] && echo -n "Saving random seed... "
+ umask 077
+ dd if=/dev/urandom of=/etc/random-seed count=1 \
+ >/dev/null 2>&1 || echo "urandom stop: failed."
+ [ "$VERBOSE" != no ] && echo "done."
+ ;;
+ *)
+ echo "Usage: urandom {start|stop}" >&2
+ exit 1
+ ;;
+esac
--- /dev/null
+#!/bin/sh
+#
+# Start the network....
+#
+
+start() {
+ echo "Starting network..."
+ /sbin/ifup -a
+}
+stop() {
+ echo -n "Stopping network..."
+ /sbin/ifdown -a
+}
+restart() {
+ stop
+ start
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|reload)
+ restart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart}"
+ exit 1
+esac
+
+exit $?
+
--- /dev/null
+#!/bin/sh
+
+
+# Start all init scripts in /etc/init.d
+# executing them in numerical order.
+#
+for i in /etc/init.d/S??* ;do
+
+ # Ignore dangling symlinks (if any).
+ [ ! -f "$i" ] && continue
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+done
+
--- /dev/null
+# /etc/inittab
+#
+# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
+#
+# Note: BusyBox init doesn't support runlevels. The runlevels field is
+# completely ignored by BusyBox init. If you want runlevels, use
+# sysvinit.
+#
+# Format for each entry: <id>:<runlevels>:<action>:<process>
+#
+# id == tty to run on, or empty for /dev/console
+# runlevels == ignored
+# action == one of sysinit, respawn, askfirst, wait, and once
+# process == program to run
+
+# Startup the system
+null::sysinit:/bin/mount -o remount,rw /
+null::sysinit:/bin/mount -t proc proc /proc
+null::sysinit:/bin/mount -a
+null::sysinit:/bin/hostname -F /etc/hostname
+null::sysinit:/sbin/ifconfig lo 127.0.0.1 up
+null::sysinit:/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
+# now run any rc scripts
+::sysinit:/etc/init.d/rcS
+
+# Set up a couple of getty's
+tty1::respawn:/sbin/getty 38400 tty1
+tty2::respawn:/sbin/getty 38400 tty2
+
+# Put a getty on the serial port
+#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
+
+# Logging junk
+null::sysinit:/bin/touch /var/log/messages
+null::respawn:/sbin/syslogd -n -m 0
+null::respawn:/sbin/klogd -n
+tty3::respawn:/usr/bin/tail -f /var/log/messages
+
+# Stuff to do for the 3-finger salute
+::ctrlaltdel:/sbin/reboot
+
+# Stuff to do before rebooting
+null::shutdown:/usr/bin/killall klogd
+null::shutdown:/usr/bin/killall syslogd
+null::shutdown:/bin/umount -a -r
+null::shutdown:/sbin/swapoff -a
+
--- /dev/null
+# /etc/inputrc - global inputrc for libreadline
+# See readline(3readline) and `info readline' for more information.
+
+# Be 8 bit clean.
+set input-meta on
+set output-meta on
+set bell-style visible
+
+# To allow the use of 8bit-characters like the german umlauts, comment out
+# the line below. However this makes the meta key not work as a meta key,
+# which is annoying to those which don't need to type in 8-bit characters.
+
+# set convert-meta off
+
+"\e0d": backward-word
+"\e0c": forward-word
+"\e[h": beginning-of-line
+"\e[f": end-of-line
+"\e[1~": beginning-of-line
+"\e[4~": end-of-line
+#"\e[5~": beginning-of-history
+#"\e[6~": end-of-history
+"\e[3~": delete-char
+"\e[2~": quoted-insert
+
+# Common standard keypad and cursor
+# (codes courtsey Werner Fink, <werner@suse.de>)
+#"\e[1~": history-search-backward
+"\e[2~": yank
+"\e[3~": delete-char
+#"\e[4~": set-mark
+"\e[5~": history-search-backward
+"\e[6~": history-search-forward
+# Normal keypad and cursor of xterm
+"\e[F": end-of-line
+"\e[H": beginning-of-line
+# Application keypad and cursor of xterm
+"\eOA": previous-history
+"\eOC": forward-char
+"\eOB": next-history
+"\eOD": backward-char
+"\eOF": end-of-line
+"\eOH": beginning-of-line
+
--- /dev/null
+
+
+Welcome to the Erik's uClibc development environment.
+
--- /dev/null
+# Configure Loopback
+auto lo
+iface lo inet loopback
+
--- /dev/null
+root:x:0:0:root:/root:/bin/sh
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:100:sync:/bin:/bin/sync
+mail:x:8:8:mail:/var/spool/mail:/bin/sh
+proxy:x:13:13:proxy:/bin:/bin/sh
+www-data:x:33:33:www-data:/var/www:/bin/sh
+backup:x:34:34:backup:/var/backups:/bin/sh
+operator:x:37:37:Operator:/var:/bin/sh
+sshd:x:103:99:Operator:/var:/bin/sh
+nobody:x:99:99:nobody:/home:/bin/sh
+default:x:1000:1000:Default non-root user:/home/default:/bin/sh
--- /dev/null
+# ~/.bashrc: executed by bash(1) for non-login interactive shells.
+
+export PATH=\
+/bin:\
+/sbin:\
+/usr/bin:\
+/usr/sbin:\
+/usr/bin/X11:\
+/usr/local/bin
+
+# If running interactively, then:
+if [ "$PS1" ]; then
+
+ if [ "$BASH" ]; then
+ export PS1="[\u@\h \W]\\$ "
+ alias ll='/bin/ls --color=tty -laFh'
+ alias ls='/bin/ls --color=tty -F'
+ export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:';
+ else
+ if [ "`id -u`" -eq 0 ]; then
+ export PS1='# '
+ else
+ export PS1='$ '
+ fi
+ fi
+
+ export USER=`id -un`
+ export LOGNAME=$USER
+ export HOSTNAME=`/bin/hostname`
+ export HISTSIZE=1000
+ export HISTFILESIZE=1000
+ export PAGER='/bin/more '
+ export EDITOR='/bin/vi'
+ export INPUTRC=/etc/inputrc
+ export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
+
+ ### Some aliases
+ alias ps2='ps facux '
+ alias ps1='ps faxo "%U %t %p %a" '
+ alias af='ps af'
+ alias cls='clear'
+ alias df='df -h'
+ alias indent='indent -bad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -npsl -nsc -nsob -nss -ts4 '
+ #alias bc='bc -l'
+ alias minicom='minicom -c on'
+ alias calc='calc -Cd '
+ alias bc='calc -Cd '
+fi;
--- /dev/null
+# /etc/protocols:
+# $Id: protocols,v 1.1 2004/10/09 02:49:18 andersen Exp $
+#
+# Internet (IP) protocols
+#
+# from: @(#)protocols 5.1 (Berkeley) 4/17/89
+#
+# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
+
+ip 0 IP # internet protocol, pseudo protocol number
+icmp 1 ICMP # internet control message protocol
+igmp 2 IGMP # Internet Group Management
+ggp 3 GGP # gateway-gateway protocol
+ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
+st 5 ST # ST datagram mode
+tcp 6 TCP # transmission control protocol
+egp 8 EGP # exterior gateway protocol
+pup 12 PUP # PARC universal packet protocol
+udp 17 UDP # user datagram protocol
+hmp 20 HMP # host monitoring protocol
+xns-idp 22 XNS-IDP # Xerox NS IDP
+rdp 27 RDP # "reliable datagram" protocol
+iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
+xtp 36 XTP # Xpress Tranfer Protocol
+ddp 37 DDP # Datagram Delivery Protocol
+idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
+rspf 73 RSPF #Radio Shortest Path First.
+vmtp 81 VMTP # Versatile Message Transport
+ospf 89 OSPFIGP # Open Shortest Path First IGP
+ipip 94 IPIP # Yet Another IP encapsulation
+encap 98 ENCAP # Yet Another IP encapsulation
--- /dev/null
+domain dev.null
+nameserver 127.0.0.1
--- /dev/null
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+tty7
+tty8
+ttyS0
+ttyS1
+ttyS2
+ttyS3
--- /dev/null
+# /etc/services:
+# $Id: services,v 1.1 2004/10/09 02:49:18 andersen Exp $
+#
+# Network services, Internet style
+#
+# Note that it is presently the policy of IANA to assign a single well-known
+# port number for both TCP and UDP; hence, most entries here have two entries
+# even if the protocol doesn't support UDP operations.
+# Updated from RFC 1700, ``Assigned Numbers'' (October 1994). Not all ports
+# are included, only the more common ones.
+
+tcpmux 1/tcp # TCP port service multiplexer
+echo 7/tcp
+echo 7/udp
+discard 9/tcp sink null
+discard 9/udp sink null
+systat 11/tcp users
+daytime 13/tcp
+daytime 13/udp
+netstat 15/tcp
+qotd 17/tcp quote
+msp 18/tcp # message send protocol
+msp 18/udp # message send protocol
+chargen 19/tcp ttytst source
+chargen 19/udp ttytst source
+ftp-data 20/tcp
+ftp 21/tcp
+fsp 21/udp fspd
+ssh 22/tcp # SSH Remote Login Protocol
+ssh 22/udp # SSH Remote Login Protocol
+telnet 23/tcp
+# 24 - private
+smtp 25/tcp mail
+# 26 - unassigned
+time 37/tcp timserver
+time 37/udp timserver
+rlp 39/udp resource # resource location
+nameserver 42/tcp name # IEN 116
+whois 43/tcp nicname
+re-mail-ck 50/tcp # Remote Mail Checking Protocol
+re-mail-ck 50/udp # Remote Mail Checking Protocol
+domain 53/tcp nameserver # name-domain server
+domain 53/udp nameserver
+mtp 57/tcp # deprecated
+bootps 67/tcp # BOOTP server
+bootps 67/udp
+bootpc 68/tcp # BOOTP client
+bootpc 68/udp
+tftp 69/udp
+gopher 70/tcp # Internet Gopher
+gopher 70/udp
+rje 77/tcp netrjs
+finger 79/tcp
+www 80/tcp http # WorldWideWeb HTTP
+www 80/udp # HyperText Transfer Protocol
+link 87/tcp ttylink
+kerberos 88/tcp kerberos5 krb5 # Kerberos v5
+kerberos 88/udp kerberos5 krb5 # Kerberos v5
+supdup 95/tcp
+# 100 - reserved
+hostnames 101/tcp hostname # usually from sri-nic
+iso-tsap 102/tcp tsap # part of ISODE.
+csnet-ns 105/tcp cso-ns # also used by CSO name server
+csnet-ns 105/udp cso-ns
+# unfortunately the poppassd (Eudora) uses a port which has already
+# been assigned to a different service. We list the poppassd as an
+# alias here. This should work for programs asking for this service.
+# (due to a bug in inetd the 3com-tsmux line is disabled)
+#3com-tsmux 106/tcp poppassd
+#3com-tsmux 106/udp poppassd
+rtelnet 107/tcp # Remote Telnet
+rtelnet 107/udp
+pop-2 109/tcp postoffice # POP version 2
+pop-2 109/udp
+pop-3 110/tcp # POP version 3
+pop-3 110/udp
+sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP
+sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP
+auth 113/tcp authentication tap ident
+sftp 115/tcp
+uucp-path 117/tcp
+nntp 119/tcp readnews untp # USENET News Transfer Protocol
+ntp 123/tcp
+ntp 123/udp # Network Time Protocol
+netbios-ns 137/tcp # NETBIOS Name Service
+netbios-ns 137/udp
+netbios-dgm 138/tcp # NETBIOS Datagram Service
+netbios-dgm 138/udp
+netbios-ssn 139/tcp # NETBIOS session service
+netbios-ssn 139/udp
+imap2 143/tcp # Interim Mail Access Proto v2
+imap2 143/udp
+snmp 161/udp # Simple Net Mgmt Proto
+snmp-trap 162/udp snmptrap # Traps for SNMP
+cmip-man 163/tcp # ISO mgmt over IP (CMOT)
+cmip-man 163/udp
+cmip-agent 164/tcp
+cmip-agent 164/udp
+xdmcp 177/tcp # X Display Mgr. Control Proto
+xdmcp 177/udp
+nextstep 178/tcp NeXTStep NextStep # NeXTStep window
+nextstep 178/udp NeXTStep NextStep # server
+bgp 179/tcp # Border Gateway Proto.
+bgp 179/udp
+prospero 191/tcp # Cliff Neuman's Prospero
+prospero 191/udp
+irc 194/tcp # Internet Relay Chat
+irc 194/udp
+smux 199/tcp # SNMP Unix Multiplexer
+smux 199/udp
+at-rtmp 201/tcp # AppleTalk routing
+at-rtmp 201/udp
+at-nbp 202/tcp # AppleTalk name binding
+at-nbp 202/udp
+at-echo 204/tcp # AppleTalk echo
+at-echo 204/udp
+at-zis 206/tcp # AppleTalk zone information
+at-zis 206/udp
+qmtp 209/tcp # The Quick Mail Transfer Protocol
+qmtp 209/udp # The Quick Mail Transfer Protocol
+z3950 210/tcp wais # NISO Z39.50 database
+z3950 210/udp wais
+ipx 213/tcp # IPX
+ipx 213/udp
+imap3 220/tcp # Interactive Mail Access
+imap3 220/udp # Protocol v3
+ulistserv 372/tcp # UNIX Listserv
+ulistserv 372/udp
+https 443/tcp # MCom
+https 443/udp # MCom
+snpp 444/tcp # Simple Network Paging Protocol
+snpp 444/udp # Simple Network Paging Protocol
+saft 487/tcp # Simple Asynchronous File Transfer
+saft 487/udp # Simple Asynchronous File Transfer
+npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS
+npmp-local 610/udp dqs313_qmaster # npmp-local / DQS
+npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS
+npmp-gui 611/udp dqs313_execd # npmp-gui / DQS
+hmmp-ind 612/tcp dqs313_intercell# HMMP Indication / DQS
+hmmp-ind 612/udp dqs313_intercell# HMMP Indication / DQS
+#
+# UNIX specific services
+#
+exec 512/tcp
+biff 512/udp comsat
+login 513/tcp
+who 513/udp whod
+shell 514/tcp cmd # no passwords used
+syslog 514/udp
+printer 515/tcp spooler # line printer spooler
+talk 517/udp
+ntalk 518/udp
+route 520/udp router routed # RIP
+timed 525/udp timeserver
+tempo 526/tcp newdate
+courier 530/tcp rpc
+conference 531/tcp chat
+netnews 532/tcp readnews
+netwall 533/udp # -for emergency broadcasts
+uucp 540/tcp uucpd # uucp daemon
+afpovertcp 548/tcp # AFP over TCP
+afpovertcp 548/udp # AFP over TCP
+remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
+klogin 543/tcp # Kerberized `rlogin' (v5)
+kshell 544/tcp krcmd # Kerberized `rsh' (v5)
+kerberos-adm 749/tcp # Kerberos `kadmin' (v5)
+#
+webster 765/tcp # Network dictionary
+webster 765/udp
+#
+# From ``Assigned Numbers'':
+#
+#> The Registered Ports are not controlled by the IANA and on most systems
+#> can be used by ordinary user processes or programs executed by ordinary
+#> users.
+#
+#> Ports are used in the TCP [45,106] to name the ends of logical
+#> connections which carry long term conversations. For the purpose of
+#> providing services to unknown callers, a service contact port is
+#> defined. This list specifies the port used by the server process as its
+#> contact port. While the IANA can not control uses of these ports it
+#> does register or list uses of these ports as a convienence to the
+#> community.
+#
+nfsdstatus 1110/tcp
+nfsd-keepalive 1110/udp
+
+ingreslock 1524/tcp
+ingreslock 1524/udp
+prospero-np 1525/tcp # Prospero non-privileged
+prospero-np 1525/udp
+datametrics 1645/tcp old-radius # datametrics / old radius entry
+datametrics 1645/udp old-radius # datametrics / old radius entry
+sa-msg-port 1646/tcp old-radacct # sa-msg-port / old radacct entry
+sa-msg-port 1646/udp old-radacct # sa-msg-port / old radacct entry
+radius 1812/tcp # Radius
+radius 1812/udp # Radius
+radacct 1813/tcp # Radius Accounting
+radacct 1813/udp # Radius Accounting
+nfsd 2049/tcp nfs
+nfsd 2049/udp nfs
+cvspserver 2401/tcp # CVS client/server operations
+cvspserver 2401/udp # CVS client/server operations
+mysql 3306/tcp # MySQL
+mysql 3306/udp # MySQL
+rfe 5002/tcp # Radio Free Ethernet
+rfe 5002/udp # Actually uses UDP only
+cfengine 5308/tcp # CFengine
+cfengine 5308/udp # CFengine
+bbs 7000/tcp # BBS service
+#
+#
+# Kerberos (Project Athena/MIT) services
+# Note that these are for Kerberos v4, and are unofficial. Sites running
+# v4 should uncomment these and comment out the v5 entries above.
+#
+kerberos4 750/udp kerberos-iv kdc # Kerberos (server) udp
+kerberos4 750/tcp kerberos-iv kdc # Kerberos (server) tcp
+kerberos_master 751/udp # Kerberos authentication
+kerberos_master 751/tcp # Kerberos authentication
+passwd_server 752/udp # Kerberos passwd server
+krb_prop 754/tcp # Kerberos slave propagation
+krbupdate 760/tcp kreg # Kerberos registration
+kpasswd 761/tcp kpwd # Kerberos "passwd"
+kpop 1109/tcp # Pop with Kerberos
+knetd 2053/tcp # Kerberos de-multiplexor
+zephyr-srv 2102/udp # Zephyr server
+zephyr-clt 2103/udp # Zephyr serv-hm connection
+zephyr-hm 2104/udp # Zephyr hostmanager
+eklogin 2105/tcp # Kerberos encrypted rlogin
+#
+# Unofficial but necessary (for NetBSD) services
+#
+supfilesrv 871/tcp # SUP server
+supfiledbg 1127/tcp # SUP debugging
+#
+# Datagram Delivery Protocol services
+#
+rtmp 1/ddp # Routing Table Maintenance Protocol
+nbp 2/ddp # Name Binding Protocol
+echo 4/ddp # AppleTalk Echo Protocol
+zip 6/ddp # Zone Information Protocol
+#
+# Services added for the Debian GNU/Linux distribution
+poppassd 106/tcp # Eudora
+poppassd 106/udp # Eudora
+mailq 174/tcp # Mailer transport queue for Zmailer
+mailq 174/tcp # Mailer transport queue for Zmailer
+omirr 808/tcp omirrd # online mirror
+omirr 808/udp omirrd # online mirror
+rmtcfg 1236/tcp # Gracilis Packeten remote config server
+xtel 1313/tcp # french minitel
+coda_opcons 1355/udp # Coda opcons (Coda fs)
+coda_venus 1363/udp # Coda venus (Coda fs)
+coda_auth 1357/udp # Coda auth (Coda fs)
+coda_udpsrv 1359/udp # Coda udpsrv (Coda fs)
+coda_filesrv 1361/udp # Coda filesrv (Coda fs)
+codacon 1423/tcp venus.cmu # Coda Console (Coda fs)
+coda_aux1 1431/tcp # coda auxiliary service (Coda fs)
+coda_aux1 1431/udp # coda auxiliary service (Coda fs)
+coda_aux2 1433/tcp # coda auxiliary service (Coda fs)
+coda_aux2 1433/udp # coda auxiliary service (Coda fs)
+coda_aux3 1435/tcp # coda auxiliary service (Coda fs)
+coda_aux3 1435/udp # coda auxiliary service (Coda fs)
+cfinger 2003/tcp # GNU Finger
+afbackup 2988/tcp # Afbackup system
+afbackup 2988/udp # Afbackup system
+icp 3130/tcp # Internet Cache Protocol (Squid)
+icp 3130/udp # Internet Cache Protocol (Squid)
+postgres 5432/tcp # POSTGRES
+postgres 5432/udp # POSTGRES
+fax 4557/tcp # FAX transmission service (old)
+hylafax 4559/tcp # HylaFAX client-server protocol (new)
+noclog 5354/tcp # noclogd with TCP (nocol)
+noclog 5354/udp # noclogd with UDP (nocol)
+hostmon 5355/tcp # hostmon uses TCP (nocol)
+hostmon 5355/udp # hostmon uses TCP (nocol)
+ircd 6667/tcp # Internet Relay Chat
+ircd 6667/udp # Internet Relay Chat
+webcache 8080/tcp # WWW caching service
+webcache 8080/udp # WWW caching service
+tproxy 8081/tcp # Transparent Proxy
+tproxy 8081/udp # Transparent Proxy
+mandelspawn 9359/udp mandelbrot # network mandelbrot
+amanda 10080/udp # amanda backup services
+amandaidx 10082/tcp # amanda backup services
+amidxtape 10083/tcp # amanda backup services
+isdnlog 20011/tcp # isdn logging system
+isdnlog 20011/udp # isdn logging system
+vboxd 20012/tcp # voice box system
+vboxd 20012/udp # voice box system
+binkp 24554/tcp # Binkley
+binkp 24554/udp # Binkley
+asp 27374/tcp # Address Search Protocol
+asp 27374/udp # Address Search Protocol
+tfido 60177/tcp # Ifmail
+tfido 60177/udp # Ifmail
+fido 60179/tcp # Ifmail
+fido 60179/udp # Ifmail
+
+# Local services
+
--- /dev/null
+root::10933:0:99999:7:::
+bin:*:10933:0:99999:7:::
+daemon:*:10933:0:99999:7:::
+adm:*:10933:0:99999:7:::
+lp:*:10933:0:99999:7:::
+sync:*:10933:0:99999:7:::
+shutdown:*:10933:0:99999:7:::
+halt:*:10933:0:99999:7:::
+uucp:*:10933:0:99999:7:::
+operator:*:10933:0:99999:7:::
+nobody:*:10933:0:99999:7:::
+default::10933:0:99999:7:::
--- /dev/null
+# ~/.bash_logout: executed by bash(1) when login shell exits.
+
+# when leaving the console clear the screen to increase privacy
+
+case "`tty`" in
+ /dev/tty[0-9]*) clear
+esac
--- /dev/null
+# .bash_profile
+
+export PATH=\
+/bin:\
+/sbin:\
+/usr/bin:\
+/usr/sbin:\
+/usr/bin/X11:\
+/usr/local/bin
+
+umask 022
+
+if [ -f ~/.bashrc ]; then
+ source ~/.bashrc
+fi
--- /dev/null
+# ~/.bashrc: executed by bash(1) for non-login interactive shells.
+
+export PATH=\
+/bin:\
+/sbin:\
+/usr/bin:\
+/usr/sbin:\
+/usr/bin/X11:\
+/usr/local/bin
+
+# If running interactively, then:
+if [ "$PS1" ]; then
+
+ if [ "$BASH" ]; then
+ export PS1="[\u@\h \W]\\$ "
+ else
+ if [ "`id -u`" -eq 0 ]; then
+ export PS1='# '
+ else
+ export PS1='$ '
+ fi
+ fi
+
+ export USER=`id -un`
+ export LOGNAME=$USER
+ export HOSTNAME=`/bin/hostname`
+ export HISTSIZE=1000
+ export HISTFILESIZE=1000
+ export PAGER='/bin/more '
+ export EDITOR='/bin/vi'
+ export INPUTRC=/etc/inputrc
+ export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
+ export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:';
+
+ ### Some aliases
+ alias ps2='ps facux '
+ alias ps1='ps faxo "%U %t %p %a" '
+ alias af='ps af'
+ alias cls='clear'
+ alias ll='/bin/ls --color=tty -laFh'
+ alias ls='/bin/ls --color=tty -F'
+ alias df='df -h'
+ alias indent='indent -bad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs -npsl -nsc -nsob -nss -ts4 '
+ #alias bc='bc -l'
+ alias minicom='minicom -c on'
+ alias calc='calc -Cd '
+ alias bc='calc -Cd '
+fi;
--- /dev/null
+#!/bin/sh
+
+# udhcpc script edited by Tim Riker <Tim@Rikers.org>
+
+[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
+
+RESOLV_CONF="/etc/resolv.conf"
+[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
+[ -n "$subnet" ] && NETMASK="netmask $subnet"
+
+case "$1" in
+ deconfig)
+ /sbin/ifconfig $interface 0.0.0.0
+ ;;
+
+ renew|bound)
+ /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
+
+ if [ -n "$router" ] ; then
+ echo "deleting routers"
+ while route del default gw 0.0.0.0 dev $interface ; do
+ :
+ done
+
+ for i in $router ; do
+ route add default gw $i dev $interface
+ done
+ fi
+
+ echo -n > $RESOLV_CONF
+ [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
+ for i in $dns ; do
+ echo adding dns $i
+ echo nameserver $i >> $RESOLV_CONF
+ done
+ ;;
+esac
+
+exit 0
--- /dev/null
+#############################################################
+#
+# genext2fs to build to target ext2 filesystems
+#
+#############################################################
+GENEXT2_DIR=$(BUILD_DIR)/genext2fs-1.3
+GENEXT2_SOURCE=genext2fs_1.3.orig.tar.gz
+GENEXT2_SITE=http://ftp.debian.org/debian/pool/main/g/genext2fs
+GENEXT2_PATCH=$(SOURCE_DIR)/genext2fs.patch
+
+$(DL_DIR)/$(GENEXT2_SOURCE):
+ $(WGET) -P $(DL_DIR) $(GENEXT2_SITE)/$(GENEXT2_SOURCE)
+
+$(GENEXT2_DIR): $(DL_DIR)/$(GENEXT2_SOURCE) $(GENEXT2_PATCH)
+ zcat $(DL_DIR)/$(GENEXT2_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+ mv $(GENEXT2_DIR).orig $(GENEXT2_DIR)
+ cat $(GENEXT2_PATCH) | patch -p1 -d $(GENEXT2_DIR)
+
+$(GENEXT2_DIR)/genext2fs: $(GENEXT2_DIR)
+ $(MAKE) CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \
+ -D_FILE_OFFSET_BITS=64" -C $(GENEXT2_DIR);
+ touch -c $(GENEXT2_DIR)/genext2fs
+
+genext2fs: $(GENEXT2_DIR)/genext2fs
+
+
+
+#############################################################
+#
+# Build the ext2 root filesystem image
+#
+#############################################################
+
+# How much KB we want to add to the calculated size for slack space
+GENEXT2_REALSIZE=$(subst total,, $(shell LANG=C du $(TARGET_DIR) -s -c -k | grep total ))
+GENEXT2_ADDTOROOTSIZE=$(shell if [ $(GENEXT2_REALSIZE) -ge 20000 ] ; then echo 16384; else echo 16; fi)
+GENEXT2_SIZE=$(shell expr $(GENEXT2_REALSIZE) + $(GENEXT2_ADDTOROOTSIZE) + 200)
+# We currently add about 400 device nodes, so add that into the total
+GENEXT2_INODES=$(shell expr $(shell find $(TARGET_DIR) | wc -l) + 400)
+#GENEXT2_SIZE=100000
+
+ext2root: genext2fs
+ #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
+ -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
+ $(GENEXT2_DIR)/genext2fs -i $(GENEXT2_INODES) -b $(GENEXT2_SIZE) \
+ -d $(TARGET_DIR) -q -D $(SOURCE_DIR)/device_table.txt $(IMAGE)
+
+ext2root-source: $(DL_DIR)/$(GENEXT2_SOURCE)
+
+ext2root-clean:
+ -$(MAKE) -C $(GENEXT2_DIR) clean
+
+ext2root-dirclean:
+ rm -rf $(GENEXT2_DIR)
+
--- /dev/null
+diff -urN genext2fs-1.3.orig/Makefile genext2fs-1.3/Makefile
+--- genext2fs-1.3.orig/Makefile 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/Makefile 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,46 @@
++CC=gcc
++CFLAGS=-Wall -O0 -g
++
++SRC=genext2fs.c
++OBJS=$(patsubst %.c,%.o, $(SRC))
++
++all: genext2fs
++INSTALL=install
++
++genext2fs: $(OBJS)
++ $(CC) $(CFLAGS) -o $@ $(OBJS) -o $@
++
++$(OBJS): %.o : %.c
++ $(CC) $(CFLAGS) -c $< -o $@
++
++$(OBJS): Makefile
++
++install:
++ $(INSTALL) -d $(DESTDIR)/usr/bin/
++ $(INSTALL) -m 755 genext2fs $(DESTDIR)/usr/bin/
++ $(INSTALL) -d $(DESTDIR)/usr/share/man/man8/
++ $(INSTALL) -m 644 genext2fs.8 $(DESTDIR)/usr/share/man/man8/
++
++clean:
++ rm -rf *.o *.a core genext2fs
++ rm -rf test ext2.img
++
++check: all
++ mkdir -p test
++ dd if=/dev/zero of=test/zero count=1
++ ./genext2fs -b 4096 -d test ext2.img
++
++ md5=`md5sum ext2.img | cut -f 1 -d " "`; \
++ if [ "$$md5" != "89471302d95f96a76fbb2cff98182cde" ] ; then \
++ echo "test failed."; \
++ else \
++ echo "test succeeded."; \
++ fi
++
++# test genext2fs by creating the image and comparing checksums
++test: all
++ sh ./test.sh
++
++# test genext2fs by actually mounting the created image.
++test-mount: all
++ sudo sh ./test-mount.sh
+diff -urN genext2fs-1.3.orig/debian/changelog genext2fs-1.3/debian/changelog
+--- genext2fs-1.3.orig/debian/changelog 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/debian/changelog 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,17 @@
++genext2fs (1.3-2) unstable; urgency=low
++
++ * apply fix from upstream cvs that appears to fix endian bug
++ (closes: #122411)
++ * mention filesystem size limit in manpage (closes: #122729)
++ * mention that hard links are not supported in manpage
++ (closes: #155464)
++ * add sanity check at the end of the build
++
++ -- David Kimdon <dwhedon@debian.org> Fri, 8 Mar 2002 23:17:36 -0800
++
++genext2fs (1.3-1) unstable; urgency=low
++
++ * Initial Release. (closes: #105263)
++
++ -- David Kimdon <dwhedon@debian.org> Sat, 14 Jul 2001 13:24:49 -0700
++
+diff -urN genext2fs-1.3.orig/debian/control genext2fs-1.3/debian/control
+--- genext2fs-1.3.orig/debian/control 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/debian/control 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,19 @@
++Source: genext2fs
++Section: admin
++Priority: optional
++Maintainer: David Kimdon <dwhedon@debian.org>
++Build-Depends: debhelper (>> 3.0.0)
++Standards-Version: 3.5.2
++
++Package: genext2fs
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: ext2 filesystem generator for embedded systems
++ `genext2fs' is meant to generate an ext2 filesystem
++ as a normal (non-root) user. It doesn't require you to mount
++ the image file to copy files on it. It doesn't even require
++ you to be the superuser to make device nodes.
++ .
++ Warning ! `genext2fs' has been designed for embedded
++ systems. As such, it will generate a filesystem for single-user
++ usage: all files/directories/etc... will belong to UID/GID 0
+diff -urN genext2fs-1.3.orig/debian/copyright genext2fs-1.3/debian/copyright
+--- genext2fs-1.3.orig/debian/copyright 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/debian/copyright 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,15 @@
++This package was debianized by David Kimdon <dwhedon@debian.org> on
++Sat, 14 Jul 2001 13:24:49 -0700.
++
++It was downloaded from http://freshmeat.net/projects/genext2fs/
++Upstream Author(s): Xavier Bestel <xbestel@aplio.fr>
++
++Copyright (C) 2000 Xavier Bestel <xavier.bestel@free.fr>
++
++This program is free software; you can redistribute it and/or
++modify it under the terms of the GNU General Public License
++as published by the Free Software Foundation; version
++2 of the License.
++
++On Debian systems, the complete text of the GNU General Public
++License can be found in /usr/share/common-licenses/GPL file.
+diff -urN genext2fs-1.3.orig/debian/rules genext2fs-1.3/debian/rules
+--- genext2fs-1.3.orig/debian/rules 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/debian/rules 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,70 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper.
++# GNU copyright 1997 to 1999 by Joey Hess.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# This is the debhelper compatability version to use.
++export DH_COMPAT=2
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++ # Add here commands to configure the package.
++ # ./configure --prefix=/usr --mandir=/usr/share/man/
++
++ touch configure-stamp
++
++build: configure-stamp build-stamp
++build-stamp:
++ dh_testdir
++
++ # Add here commands to compile the package.
++ $(MAKE)
++ $(MAKE) check
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp configure-stamp
++
++ # Add here commands to clean up after the build process.
++ -$(MAKE) clean
++
++ dh_clean
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ # Add here commands to install the package into debian/genext2fs.
++ $(MAKE) install DESTDIR=`pwd`/debian/genext2fs
++
++
++# Build architecture-independent files here.
++binary-indep: build install
++# We have nothing to do by default.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installdocs
++ dh_installchangelogs
++ dh_link
++ dh_strip
++ dh_compress
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install configure
+diff -urN genext2fs-1.3.orig/dev.txt genext2fs-1.3/dev.txt
+--- genext2fs-1.3.orig/dev.txt 2000-09-28 09:03:19.000000000 -0600
++++ genext2fs-1.3/dev.txt 1969-12-31 17:00:00.000000000 -0700
+@@ -1,94 +0,0 @@
+-drwx /dev
+-crw- 10,190 /dev/lcd
+-crw- 10,191 /dev/splc781
+-crw- 4,0 /dev/console
+-crw- 5,64 /dev/cua0
+-crw- 5,65 /dev/cua1
+-crw- 5,66 /dev/cua2
+-crw- 5,70 /dev/cua6
+-crw- 5,71 /dev/cua7
+-crw- 5,72 /dev/cua8
+-crw- 5,73 /dev/cua9
+-crw- 29,0 /dev/fb0
+-crw- 29,32 /dev/fb1
+-crw- 1,2 /dev/kmem
+-crw- 1,1 /dev/mem
+-crw- 1,3 /dev/null
+-crw- 2,2 /dev/ptyp2
+-crw- 2,3 /dev/ptyp3
+-crw- 2,5 /dev/ptyp5
+-crw- 2,4 /dev/ptyp4
+-crw- 10,178 /dev/triokb
+-crw- 2,0 /dev/ptyp0
+-crw- 2,6 /dev/ptyp6
+-crw- 2,7 /dev/ptyp7
+-crw- 2,8 /dev/ptyp8
+-crw- 2,9 /dev/ptyp9
+-crw- 2,10 /dev/ptypa
+-crw- 2,11 /dev/ptypb
+-crw- 2,12 /dev/ptypc
+-crw- 2,13 /dev/ptypd
+-crw- 2,14 /dev/ptype
+-crw- 2,15 /dev/ptypf
+-brw- 1,0 /dev/ram0
+-brw- 1,1 /dev/ram1
+-brw- 1,2 /dev/ram2
+-brw- 1,3 /dev/ram3
+-br-- 31,0 /dev/rom0
+-brw- 31,1 /dev/rom1
+-brw- 31,2 /dev/rom2
+-brw- 31,3 /dev/rom3
+-crw- 5,0 /dev/tty
+-crw- 4,0 /dev/tty0
+-crwx 4,1 /dev/tty1
+-crwx 4,2 /dev/tty2
+-crwx 4,3 /dev/tty3
+-crwx 4,4 /dev/tty4
+-crw- 4,5 /dev/tty5
+-crwx 4,6 /dev/tty6
+-crw- 4,7 /dev/tty7
+-crw- 4,8 /dev/tty8
+-crw- 4,9 /dev/tty9
+-crw- 4,64 /dev/ttyS0
+-crw- 4,65 /dev/ttyS1
+-crw- 4,66 /dev/ttyS2
+-crw- 4,67 /dev/ttyS3
+-crw- 4,68 /dev/ttyS4
+-crw- 4,69 /dev/ttyS5
+-crw- 4,70 /dev/ttyS6
+-crw- 4,71 /dev/ttyS7
+-crw- 4,72 /dev/ttyS8
+-crw- 4,73 /dev/ttyS9
+-crw- 3,0 /dev/ttyp0
+-crw- 3,1 /dev/ttyp1
+-crw- 3,2 /dev/ttyp2
+-crw- 3,3 /dev/ttyp3
+-crw- 3,4 /dev/ttyp4
+-crw- 3,5 /dev/ttyp5
+-crw- 3,6 /dev/ttyp6
+-crw- 3,7 /dev/ttyp7
+-crw- 3,8 /dev/ttyp8
+-crw- 3,9 /dev/ttyp9
+-crw- 3,10 /dev/ttypa
+-crw- 3,11 /dev/ttypb
+-crw- 3,12 /dev/ttypc
+-crw- 3,13 /dev/ttypd
+-crw- 3,14 /dev/ttype
+-crw- 3,15 /dev/ttypf
+-crw- 1,5 /dev/zero
+-crwx 10,111 /dev/dtedrv
+-crwx 4,110 /dev/ttyM
+-crw- 77,1 /dev/tssnd
+-crw- 77,2 /dev/tstone
+-crw- 2,1 /dev/ptyp1
+-crwx 10,180 /dev/triohook
+-crw- 90,0 /dev/mtd0
+-brw- 44,0 /dev/ftl0
+-crw- 10,175 /dev/tporta
+-crw- 10,176 /dev/tportb
+-crwx 10,100 /dev/softmodem
+-crwx 10,101 /dev/softmodem_signals
+-crwx 10,181 /dev/triovoice
+-crw- 5,67 /dev/cua3
+-crw- 5,68 /dev/cua4
+-crw- 5,69 /dev/cua5
+diff -urN genext2fs-1.3.orig/device_table.txt genext2fs-1.3/device_table.txt
+--- genext2fs-1.3.orig/device_table.txt 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/device_table.txt 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,129 @@
++# When building a target filesystem, it is desirable to not have to
++# become root and then run 'mknod' a thousand times. Using a device
++# table you can create device nodes and directories "on the fly".
++#
++# This is a sample device table file for use with genext2fs. You can
++# do all sorts of interesting things with a device table file. For
++# example, if you want to adjust the permissions on a particular file
++# you can just add an entry like:
++# /sbin/foobar f 2755 0 0 - - - - -
++# and (assuming the file /sbin/foobar exists) it will be made setuid
++# root (regardless of what its permissions are on the host filesystem.
++# Furthermore, you can use a single table entry to create a many device
++# minors. For example, if I wanted to create /dev/hda and /dev/hda[0-15]
++# I could just use the following two table entries:
++# /dev/hda b 640 0 0 3 0 0 0 -
++# /dev/hda b 640 0 0 3 1 1 1 15
++#
++# Device table entries take the form of:
++# <name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++# where name is the file name, type can be one of:
++# f A regular file
++# d Directory
++# c Character special device file
++# b Block special device file
++# p Fifo (named pipe)
++# uid is the user id for the target file, gid is the group id for the
++# target file. The rest of the entries (major, minor, etc) apply only
++# to device special files.
++
++# Have fun
++# -Erik Andersen <andersen@codepoet.org>
++#
++
++#<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++/dev d 755 0 0 - - - - -
++/dev/mem c 640 0 0 1 1 0 0 -
++/dev/kmem c 640 0 0 1 2 0 0 -
++/dev/null c 640 0 0 1 3 0 0 -
++/dev/zero c 640 0 0 1 5 0 0 -
++/dev/random c 640 0 0 1 8 0 0 -
++/dev/urandom c 640 0 0 1 9 0 0 -
++/dev/tty c 666 0 0 5 0 0 0 -
++/dev/tty c 666 0 0 4 0 0 1 6
++/dev/console c 640 0 0 5 1 0 0 -
++/dev/ram b 640 0 0 1 1 0 0 -
++/dev/ram b 640 0 0 1 0 0 1 4
++/dev/loop b 640 0 0 7 0 0 1 2
++/dev/ptmx c 666 0 0 5 2 0 0 -
++#/dev/ttyS c 640 0 0 4 64 0 1 4
++#/dev/psaux c 640 0 0 10 1 0 0 -
++#/dev/rtc c 640 0 0 10 135 0 0 -
++
++# Adjust permissions on some normal files
++#/etc/shadow f 600 0 0 - - - - -
++#/bin/tinylogin f 4755 0 0 - - - - -
++
++# User-mode Linux stuff
++/dev/ubda b 640 0 0 98 0 0 0 -
++/dev/ubda b 640 0 0 98 1 1 1 15
++
++# IDE Devices
++/dev/hda b 640 0 0 3 0 0 0 -
++/dev/hda b 640 0 0 3 1 1 1 15
++/dev/hdb b 640 0 0 3 64 0 0 -
++/dev/hdb b 640 0 0 3 65 1 1 15
++#/dev/hdc b 640 0 0 22 0 0 0 -
++#/dev/hdc b 640 0 0 22 1 1 1 15
++#/dev/hdd b 640 0 0 22 64 0 0 -
++#/dev/hdd b 640 0 0 22 65 1 1 15
++#/dev/hde b 640 0 0 33 0 0 0 -
++#/dev/hde b 640 0 0 33 1 1 1 15
++#/dev/hdf b 640 0 0 33 64 0 0 -
++#/dev/hdf b 640 0 0 33 65 1 1 15
++#/dev/hdg b 640 0 0 34 0 0 0 -
++#/dev/hdg b 640 0 0 34 1 1 1 15
++#/dev/hdh b 640 0 0 34 64 0 0 -
++#/dev/hdh b 640 0 0 34 65 1 1 15
++
++# SCSI Devices
++#/dev/sda b 640 0 0 8 0 0 0 -
++#/dev/sda b 640 0 0 8 1 1 1 15
++#/dev/sdb b 640 0 0 8 16 0 0 -
++#/dev/sdb b 640 0 0 8 17 1 1 15
++#/dev/sdc b 640 0 0 8 32 0 0 -
++#/dev/sdc b 640 0 0 8 33 1 1 15
++#/dev/sdd b 640 0 0 8 48 0 0 -
++#/dev/sdd b 640 0 0 8 49 1 1 15
++#/dev/sde b 640 0 0 8 64 0 0 -
++#/dev/sde b 640 0 0 8 65 1 1 15
++#/dev/sdf b 640 0 0 8 80 0 0 -
++#/dev/sdf b 640 0 0 8 81 1 1 15
++#/dev/sdg b 640 0 0 8 96 0 0 -
++#/dev/sdg b 640 0 0 8 97 1 1 15
++#/dev/sdh b 640 0 0 8 112 0 0 -
++#/dev/sdh b 640 0 0 8 113 1 1 15
++#/dev/sg c 640 0 0 21 0 0 1 15
++#/dev/scd b 640 0 0 11 0 0 1 15
++#/dev/st c 640 0 0 9 0 0 1 8
++#/dev/nst c 640 0 0 9 128 0 1 8
++#/dev/st c 640 0 0 9 32 1 1 4
++#/dev/st c 640 0 0 9 64 1 1 4
++#/dev/st c 640 0 0 9 96 1 1 4
++
++# Floppy disk devices
++#/dev/fd b 640 0 0 2 0 0 1 2
++#/dev/fd0d360 b 640 0 0 2 4 0 0 -
++#/dev/fd1d360 b 640 0 0 2 5 0 0 -
++#/dev/fd0h1200 b 640 0 0 2 8 0 0 -
++#/dev/fd1h1200 b 640 0 0 2 9 0 0 -
++#/dev/fd0u1440 b 640 0 0 2 28 0 0 -
++#/dev/fd1u1440 b 640 0 0 2 29 0 0 -
++#/dev/fd0u2880 b 640 0 0 2 32 0 0 -
++#/dev/fd1u2880 b 640 0 0 2 33 0 0 -
++
++# All the proprietary cdrom devices in the world
++#/dev/aztcd b 640 0 0 29 0 0 0 -
++#/dev/bpcd b 640 0 0 41 0 0 0 -
++#/dev/capi20 c 640 0 0 68 0 0 1 2
++#/dev/cdu31a b 640 0 0 15 0 0 0 -
++#/dev/cdu535 b 640 0 0 24 0 0 0 -
++#/dev/cm206cd b 640 0 0 32 0 0 0 -
++#/dev/sjcd b 640 0 0 18 0 0 0 -
++#/dev/sonycd b 640 0 0 15 0 0 0 -
++#/dev/gscd b 640 0 0 16 0 0 0 -
++#/dev/sbpcd b 640 0 0 25 0 0 0 -
++#/dev/sbpcd b 640 0 0 25 0 0 1 4
++#/dev/mcd b 640 0 0 23 0 0 0 -
++#/dev/optcd b 640 0 0 17 0 0 0 -
++
+diff -urN genext2fs-1.3.orig/genext2fs.8 genext2fs-1.3/genext2fs.8
+--- genext2fs-1.3.orig/genext2fs.8 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/genext2fs.8 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,125 @@
++.\" Hey, EMACS: -*- nroff -*-
++.\" First parameter, NAME, should be all caps
++.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
++.\" other parameters are allowed: see man(7), man(1)
++.TH GENEXT2FS 8 "July 14, 2001"
++.\" Please adjust this date whenever revising the manpage.
++.\"
++.\" Some roff macros, for reference:
++.\" .nh disable hyphenation
++.\" .hy enable hyphenation
++.\" .ad l left justify
++.\" .ad b justify to both left and right margins
++.\" .nf disable filling
++.\" .fi enable filling
++.\" .br insert line break
++.\" .sp <n> insert n+1 empty lines
++.\" for manpage-specific macros, see man(7)
++.SH NAME
++genext2fs \- ext2 filesystem generator for embedded systems
++.SH SYNOPSIS
++.B genext2fs
++.RI [ options ] " image"
++.SH DESCRIPTION
++\fBgenext2fs\fP generates an ext2 filesystem
++as a normal (non-root) user. It doesn't require you to mount
++the image file to copy files on it. It doesn't even require
++you to be the superuser to make device nodes.
++.SH OPTIONS
++.TP
++.BI -x \ image
++Use this image as a starting point
++.TP
++.BI -d \ directory
++Add this directory as source
++.TP
++.BI -f \ FILE
++.TP
++.BI -D \ FILE
++Uses the named FILE as a device table file, to create device
++nodes and directories "on the fly".
++.TP
++.BI -b \ blocks
++Size in blocks
++.TP
++.BI -i \ inodes
++Number of inodes
++.TP
++.BI -r \ reserved
++Number of reserved blocks
++.TP
++.BI -g \ path
++Generate a block map file for this path
++.TP
++.BI -e \ value
++Fill unallocated blocks with value
++.TP
++.BI -z
++Make files with holes
++.TP
++.BI -U
++Squash owners making all files be owned by root
++.TP
++.BI -P
++Squash permissions on all files
++.TP
++.BI -q
++Squash permissions and owners (same as -P -U)
++.TP
++.BI -v
++Print resulting filesystem structure
++.TP
++.BI -h
++Display help
++.TP
++.SH EXAMPLES
++
++.EX
++.B
++ genext2fs -b 1440 -d src /dev/fd0
++.EE
++
++All files in the
++.I src
++directory will be written to
++.B /dev/fd0
++as a new ext2 filesystem image. You can then mount the floppy as
++usual.
++
++.EX
++.B
++ genext2fs -b 1024 -d src -D device_table.txt flashdisk.img
++.EE
++
++This example builds a filesystem from all the files in
++.I src
++, then device nodes are created based on the content the device_table file
++.I dev.txt.
++An example device file follows:
++
++.EX
++ #<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++ /dev d 755 0 0 - - - - -
++ /dev/mem c 640 0 0 1 1 0 0 -
++ /dev/tty c 666 0 0 5 0 0 0 -
++ /dev/tty c 666 0 0 4 0 0 1 6
++ /dev/loop b 640 0 0 7 0 0 1 2
++ /dev/hda b 640 0 0 3 0 0 0 -
++ /dev/hda b 640 0 0 3 1 1 1 16
++.EE
++
++This device table creates the /dev directory, a character device
++node /dev/mem (major 1, minor 1), it also creates /dev/tty,
++/dev/tty[0-5], /dev/loop[0-1], /dev/hda, and /dev/hda0 to /dev/hda15
++.SH BUGS
++\fBgenext2fs\fP does not support hard links. Hard links present in the input
++tree will be represented as separate files in the ext2 image.
++
++.SH SEE ALSO
++.BR mkfs (8),
++.BR genromfs (8),
++.BR mkisofs (8).
++.br
++.SH AUTHOR
++This manual page was written by David Kimdon <dwhedon@debian.org>,
++for the Debian GNU/Linux system (but may be used by others).
+diff -urN genext2fs-1.3.orig/genext2fs.c genext2fs-1.3/genext2fs.c
+--- genext2fs-1.3.orig/genext2fs.c 2001-06-18 02:11:32.000000000 -0600
++++ genext2fs-1.3/genext2fs.c 2003-04-21 01:48:35.000000000 -0600
+@@ -1,3 +1,4 @@
++/* vi: set sw=8 ts=8: */
+ // genext2fs.c
+ //
+ // ext2 filesystem generator for embedded systems
+@@ -26,6 +27,22 @@
+ // Bugfix: getcwd values for Solaris xavier.gueguen@col.bsf.alcatel.fr
+ // Bugfix: ANSI scanf for non-GNU C xavier.gueguen@col.bsf.alcatel.fr
+ // 28 Jun 2001 Bugfix: getcwd differs for Solaris/GNU mike@sowbug.com
++// 23 Mar 2002 Bugfix: test for IFCHR or IFBLK was flawed
++// 10 Oct 2002 Added comments,makefile targets, vsundar@ixiacom.com
++// endianess swap assert check.
++// Copyright (C) 2002 Ixia communications
++// 12 Oct 2002 Added support for triple indirection vsundar@ixiacom.com
++// Copyright (C) 2002 Ixia communications
++// 14 Oct 2002 Added support for groups vsundar@ixiacom.com
++// Copyright (C) 2002 Ixia communications
++// 5 Jan 2003 Bugfixes: reserved inodes should be set vsundar@usc.edu
++// only in the first group; directory names
++// need to be null padded at the end; and
++// number of blocks per group should be a
++// multiple of 8. Updated md5 values.
++// 6 Jan 2003 Erik Andersen <andersee@debian.org> added
++// mkfs.jffs2 compatible device table support,
++// along with -q, -P, -U
+
+
+ // `genext2fs' is a mean to generate an ext2 filesystem
+@@ -33,10 +50,6 @@
+ // the image file to copy files on it. It doesn't even require
+ // you to be the superuser to make device nodes.
+ //
+-// Warning ! `genext2fs' has been designed for embedded
+-// systems. As such, it will generate a filesystem for single-user
+-// usage: all files/directories/etc... will belong to UID/GID 0
+-//
+ // Example usage:
+ //
+ // # genext2fs -b 1440 -d srcdir /dev/fd0
+@@ -45,21 +58,15 @@
+ // a new ext2 filesystem image. You can then mount the floppy as
+ // usual.
+ //
+-// # genext2fs -b 1024 -d builddir -f devices.txt flashdisk.img
++// # genext2fs -b 1024 -d builddir -D device_table.txt flashdisk.img
+ //
+ // This one would build a filesystem from all the files in builddir,
+-// then would read a devices list and make apropriate nodes. The
+-// format for the device list is:
+-//
+-// drwx /dev
+-// crw- 10,190 /dev/lcd
+-// brw- 1,0 /dev/ram0
+-//
+-// This device list builds the /dev directory, a character device
+-// node /dev/lcd (major 10, minor 190) and a block device node
+-// /dev/ram0 (major 1, minor 0)
++// then would read the device_table.txt file and make apropriate nodes.
++// The format for the device table file is covered in detail in the sample
++// device_table.txt file provided with the genext2fs source.
+
+
++#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -67,6 +74,11 @@
+ #include <stdarg.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <assert.h>
++#include <time.h>
++#include <ctype.h>
++#include <errno.h>
++#include <fcntl.h>
+
+
+
+@@ -76,10 +88,14 @@
+ #define BLOCKSIZE 1024
+ #define BLOCKS_PER_GROUP 8192
+ #define BYTES_PER_INODE (8*BLOCKSIZE)
++/* Percentage of blocks that are reserved.*/
+ #define RESERVED_INODES 5/100
+
+
+ // inode block size (why is it != BLOCKSIZE ?!?)
++/* The field i_blocks in the ext2 inode stores the number of data blocks
++ but in terms of 512 bytes. That is what INODE_BLOCKSIZE represents.
++ INOBLK is the number of such blocks in an actual disk block */
+
+ #define INODE_BLOCKSIZE 512
+ #define INOBLK (BLOCKSIZE / INODE_BLOCKSIZE)
+@@ -147,6 +163,39 @@
+
+ #define OP_HOLES 0x01 // make files with holes
+
++/* Defines for accessing group details */
++
++// Number of groups in the filesystem
++#define GRP_NBGROUPS(fs) ( ((fs)->sb.s_blocks_count-1)/(fs)->sb.s_blocks_per_group )
++
++// Get group block bitmap (bbm) given the group number
++#define GRP_GET_GROUP_BBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_block_bitmap) )
++
++// Get group inode bitmap (ibm) given the group number
++#define GRP_GET_GROUP_IBM(fs,grp) ( get_blk((fs),(fs)->gd[(grp)].bg_inode_bitmap) )
++
++// Given an inode number find the group it belongs to
++#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb.s_inodes_per_group)
++
++//Given an inode number get the inode bitmap that covers it
++#define GRP_GET_INODE_BITMAP(fs,nod) \
++ ( GRP_GET_GROUP_IBM((fs),GRP_GROUP_OF_INODE((fs),(nod))) )
++
++//Given an inode number find its offset within the inode bitmap that covers it
++#define GRP_IBM_OFFSET(fs,nod) \
++ ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb.s_inodes_per_group )
++
++// Given a block number find the group it belongs to
++#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb.s_blocks_per_group)
++
++//Given a block number get the block bitmap that covers it
++#define GRP_GET_BLOCK_BITMAP(fs,blk) \
++ ( GRP_GET_GROUP_BBM((fs),GRP_GROUP_OF_BLOCK((fs),(blk))) )
++
++//Given a block number find its offset within the block bitmap that covers it
++#define GRP_BBM_OFFSET(fs,blk) \
++ ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb.s_blocks_per_group )
++
+
+ // used types
+
+@@ -287,7 +336,6 @@
+ {
+ groupdescriptor_decl
+ uint32 bg_reserved[3];
+- uint32 bg_pad_to_bk[(BLOCKSIZE-32)/sizeof(uint32)];
+ } groupdescriptor;
+
+ typedef struct
+@@ -304,6 +352,32 @@
+
+ typedef uint8 block[BLOCKSIZE];
+
++/* blockwalker fields:
++ The blockwalker is used to access all the blocks of a file (including
++ the indirection blocks) through repeated calls to walk_bw.
++
++ bpdir -> index into the inode->i_block[]. Indicates level of indirection.
++ bnum -> total number of blocks so far accessed. including indirection
++ blocks.
++ bpind,bpdind,bptind -> index into indirection blocks.
++
++ bpind, bpdind, bptind do *NOT* index into single, double and triple
++ indirect blocks resp. as you might expect from their names. Instead
++ they are in order the 1st, 2nd & 3rd index to be used
++
++ As an example..
++ To access data block number 70000:
++ bpdir: 15 (we are doing triple indirection)
++ bpind: 0 ( index into the triple indirection block)
++ bpdind: 16 ( index into the double indirection block)
++ bptind: 99 ( index into the single indirection block)
++ 70000 = 12 + 256 + 256*256 + 16*256 + 100 (indexing starts from zero)
++
++ So,for double indirection bpind will index into the double indirection
++ block and bpdind into the single indirection block. For single indirection
++ only bpind will be used.
++*/
++
+ typedef struct
+ {
+ uint32 bnum;
+@@ -313,15 +387,14 @@
+ uint32 bptind;
+ } blockwalker;
+
++
++/* Filesystem structure that support groups */
+ #if BLOCKSIZE == 1024
+ typedef struct
+ {
+ block zero; // The famous block 0
+ superblock sb; // The superblock
+- groupdescriptor gd; // The group desciptor
+- block bbm; // The block bitmap
+- block ibm; // The inode bitmap
+- inode itab[0]; // The inode table
++ groupdescriptor gd[0]; // The group descriptors
+ } filesystem;
+ #else
+ #error UNHANDLED BLOCKSIZE
+@@ -389,25 +462,113 @@
+ #undef udecl32
+ #undef utdecl32
+
+-char * argv0;
++static char * app_name;
++static int squash_uids = 0;
++static int squash_perms = 0;
++static const char *const memory_exhausted = "memory exhausted";
+
+ // error (un)handling
+-inline void errexit(const char *fmt, ...)
++static void verror_msg(const char *s, va_list p)
+ {
+- va_list ap;
+- fprintf(stderr, "%s: ", argv0);
+- va_start(ap, fmt);
+- vfprintf(stderr, fmt, ap);
+- va_end(ap);
+- fprintf(stderr, "\n");
+- exit(1);
++ fflush(stdout);
++ fprintf(stderr, "%s: ", app_name);
++ vfprintf(stderr, s, p);
++}
++static void error_msg(const char *s, ...)
++{
++ va_list p;
++ va_start(p, s);
++ verror_msg(s, p);
++ va_end(p);
++ putc('\n', stderr);
++}
++
++static void error_msg_and_die(const char *s, ...)
++{
++ va_list p;
++ va_start(p, s);
++ verror_msg(s, p);
++ va_end(p);
++ putc('\n', stderr);
++ exit(EXIT_FAILURE);
++}
++
++static void vperror_msg(const char *s, va_list p)
++{
++ int err = errno;
++ if (s == 0)
++ s = "";
++ verror_msg(s, p);
++ if (*s)
++ s = ": ";
++ fprintf(stderr, "%s%s\n", s, strerror(err));
++}
++
++#if 0
++static void perror_msg(const char *s, ...)
++{
++ va_list p;
++ va_start(p, s);
++ vperror_msg(s, p);
++ va_end(p);
++}
++#endif
++static void perror_msg_and_die(const char *s, ...)
++{
++ va_list p;
++ va_start(p, s);
++ vperror_msg(s, p);
++ va_end(p);
++ exit(EXIT_FAILURE);
+ }
+
+-inline void pexit(const char * fname)
++static FILE *xfopen(const char *path, const char *mode)
+ {
+- fprintf(stderr, "%s: ", argv0);
+- perror(fname);
+- exit(1);
++ FILE *fp;
++ if ((fp = fopen(path, mode)) == NULL)
++ perror_msg_and_die("%s", path);
++ return fp;
++}
++
++static char *xstrdup(const char *s)
++{
++ char *t;
++
++ if (s == NULL)
++ return NULL;
++ t = strdup(s);
++ if (t == NULL)
++ error_msg_and_die(memory_exhausted);
++ return t;
++}
++
++extern void *xrealloc(void *ptr, size_t size)
++{
++ ptr = realloc(ptr, size);
++ if (ptr == NULL && size != 0)
++ error_msg_and_die(memory_exhausted);
++ return ptr;
++}
++
++static char *xreadlink(const char *path)
++{
++ static const int GROWBY = 80; /* how large we will grow strings by */
++
++ char *buf = NULL;
++ int bufsize = 0, readsize = 0;
++
++ do {
++ buf = xrealloc(buf, bufsize += GROWBY);
++ readsize = readlink(path, buf, bufsize); /* 1st try */
++ if (readsize == -1) {
++ perror_msg_and_die("%s:%s", app_name, path);
++ }
++ }
++ while (bufsize < readsize + 1);
++
++ buf[readsize] = '\0';
++
++ return buf;
+ }
+
+ // printf helper macro
+@@ -423,7 +584,7 @@
+ {
+ }
+
+-// rounds a quantity up to a blocksize
++/* Rounds qty upto a multiple of siz. siz should be a power of 2 */
+ uint32 rndup(uint32 qty, uint32 siz)
+ {
+ return (qty + (siz - 1)) & ~(siz - 1);
+@@ -444,7 +605,13 @@
+ // return a given inode from a filesystem
+ inline inode * get_nod(filesystem *fs, uint32 nod)
+ {
+- return &fs->itab[nod-1];
++ int grp,offset;
++ inode *itab;
++
++ offset = GRP_IBM_OFFSET(fs,nod);
++ grp = GRP_GROUP_OF_INODE(fs,nod);
++ itab = (inode *)get_blk(fs, fs->gd[grp].bg_inode_table);
++ return itab+offset-1;
+ }
+
+ // allocate a given block/inode in the bitmap
+@@ -479,29 +646,57 @@
+ }
+
+ // allocate a block
+-uint32 alloc_blk(filesystem *fs)
++uint32 alloc_blk(filesystem *fs, uint32 nod)
+ {
+- uint32 bk;
+- if(!(bk = allocate(fs->bbm, 0)))
+- errexit("couldn't allocate a block (no free space)");
+- if(!(fs->gd.bg_free_blocks_count--))
+- errexit("group descr. free blocks count == 0 (corrupted fs?)");
++ uint32 bk=0;
++ uint32 grp,nbgroups;
++
++ grp = nod/fs->sb.s_inodes_per_group;
++ nbgroups = ( fs->sb.s_blocks_count - fs->sb.s_first_data_block + fs->sb.s_blocks_per_group -1 ) /
++ fs->sb.s_blocks_per_group;
++ if(!(bk = allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap), 0))) {
++ for(grp=0;grp<nbgroups && !bk;grp++)
++ bk=allocate(get_blk(fs,fs->gd[grp].bg_block_bitmap),0);
++ grp--;
++ }
++ if (!bk)
++ error_msg_and_die("couldn't allocate a block (no free space)");
++ if(!(fs->gd[grp].bg_free_blocks_count--))
++ error_msg_and_die("group descr %d. free blocks count == 0 (corrupted fs?)",grp);
+ if(!(fs->sb.s_free_blocks_count--))
+- errexit("superblock free blocks count == 0 (corrupted fs?)");
+- return bk;
++ error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
++ return fs->sb.s_blocks_per_group*grp + bk;
+ }
+
+ // allocate an inode
+ uint32 alloc_nod(filesystem *fs)
+ {
+- uint32 nod;
+- if(!(nod = allocate(fs->ibm, 0)))
+- errexit("couldn't allocate an inode (no free inode)");
+- if(!(fs->gd.bg_free_inodes_count--))
+- errexit("group descr. free blocks count == 0 (corrupted fs?)");
++ uint32 nod=0,best_group=0;
++ uint32 grp,nbgroups,avefreei;
++
++ nbgroups = ( fs->sb.s_blocks_count - fs->sb.s_first_data_block + fs->sb.s_blocks_per_group -1 ) /
++ fs->sb.s_blocks_per_group;
++
++ /* Distribute inodes amongst all the blocks */
++ /* For every block group with more than average number of free inodes */
++ /* find the one with the most free blocks and allocate node there */
++ /* Idea from find_group_dir in fs/ext2/ialloc.c in 2.4.19 kernel */
++ /* We do it for all inodes. */
++ avefreei = fs->sb.s_free_inodes_count / nbgroups;
++ for(grp=0;grp<nbgroups && !nod;grp++) {
++ if (fs->gd[grp].bg_free_inodes_count < avefreei)
++ continue;
++ if (!best_group ||
++ fs->gd[grp].bg_free_blocks_count > fs->gd[best_group].bg_free_blocks_count)
++ best_group = grp;
++ }
++ if (!(nod = allocate(get_blk(fs,fs->gd[best_group].bg_inode_bitmap),0)))
++ error_msg_and_die("couldn't allocate an inode (no free inode)");
++ if(!(fs->gd[best_group].bg_free_inodes_count--))
++ error_msg_and_die("group descr. free blocks count == 0 (corrupted fs?)");
+ if(!(fs->sb.s_free_inodes_count--))
+- errexit("superblock free blocks count == 0 (corrupted fs?)");
+- return nod;
++ error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)");
++ return fs->sb.s_inodes_per_group*best_group+nod;
+ }
+
+ // print a bitmap allocation
+@@ -546,14 +741,14 @@
+ {
+ bkref = &get_nod(fs, nod)->i_block[bw->bpdir = 0];
+ if(extend) // allocate first block
+- *bkref = hole ? 0 : alloc_blk(fs);
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ }
+ // direct block
+ else if(bw->bpdir < EXT2_NDIR_BLOCKS)
+ {
+ bkref = &get_nod(fs, nod)->i_block[++bw->bpdir];
+ if(extend) // allocate block
+- *bkref = hole ? 0 : alloc_blk(fs);
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ }
+ // first block in indirect block
+ else if(bw->bpdir == EXT2_NDIR_BLOCKS)
+@@ -562,11 +757,11 @@
+ bw->bpdir = EXT2_IND_BLOCK;
+ bw->bpind = 0;
+ if(extend) // allocate indirect block
+- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs);
++ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+ bkref = &b[bw->bpind];
+ if(extend) // allocate first block
+- *bkref = hole ? 0 : alloc_blk(fs);
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ }
+ // block in indirect block
+ else if((bw->bpdir == EXT2_IND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1))
+@@ -575,7 +770,7 @@
+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+ bkref = &b[bw->bpind];
+ if(extend) // allocate block
+- *bkref = hole ? 0 : alloc_blk(fs);
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ }
+ // first block in first indirect block in first double indirect block
+ else if(bw->bpdir == EXT2_IND_BLOCK)
+@@ -585,14 +780,14 @@
+ bw->bpind = 0;
+ bw->bpdind = 0;
+ if(extend) // allocate double indirect block
+- get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs);
++ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+ if(extend) // allocate first indirect block
+- b[bw->bpind] = alloc_blk(fs);
++ b[bw->bpind] = alloc_blk(fs,nod);
+ b = (uint32*)get_blk(fs, b[bw->bpind]);
+ bkref = &b[bw->bpdind];
+ if(extend) // allocate first block
+- *bkref = hole ? 0 : alloc_blk(fs);
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ }
+ // block in indirect block in double indirect block
+ else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpdind < BLOCKSIZE/4 - 1))
+@@ -602,7 +797,7 @@
+ b = (uint32*)get_blk(fs, b[bw->bpind]);
+ bkref = &b[bw->bpdind];
+ if(extend) // allocate block
+- *bkref = hole ? 0 : alloc_blk(fs);
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ }
+ // first block in indirect block in double indirect block
+ else if((bw->bpdir == EXT2_DIND_BLOCK) && (bw->bpind < BLOCKSIZE/4 - 1))
+@@ -612,20 +807,100 @@
+ bw->bpind++;
+ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
+ if(extend) // allocate indirect block
+- b[bw->bpind] = alloc_blk(fs);
++ b[bw->bpind] = alloc_blk(fs,nod);
+ b = (uint32*)get_blk(fs, b[bw->bpind]);
+ bkref = &b[bw->bpdind];
+ if(extend) // allocate first block
+- *bkref = hole ? 0 : alloc_blk(fs);
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
++ }
++
++ /* Adding support for triple indirection */
++ /* Just starting triple indirection. Allocate the indirection
++ blocks and the first data block
++ */
++ else if (bw->bpdir == EXT2_DIND_BLOCK)
++ {
++ bw->bnum += 3;
++ bw->bpdir = EXT2_TIND_BLOCK;
++ bw->bpind = 0;
++ bw->bpdind = 0;
++ bw->bptind = 0;
++ if(extend) // allocate triple indirect block
++ get_nod(fs, nod)->i_block[bw->bpdir] = alloc_blk(fs,nod);
++ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ if(extend) // allocate first double indirect block
++ b[bw->bpind] = alloc_blk(fs,nod);
++ b = (uint32*)get_blk(fs, b[bw->bpind]);
++ if(extend) // allocate first indirect block
++ b[bw->bpdind] = alloc_blk(fs,nod);
++ b = (uint32*)get_blk(fs, b[bw->bpdind]);
++ bkref = &b[bw->bptind];
++ if(extend) // allocate first data block
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
++ }
++ /* Still processing a single indirect block down the indirection
++ chain.Allocate a data block for it
++ */
++ else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
++ (bw->bptind < BLOCKSIZE/4 -1) )
++ {
++ bw->bptind++;
++ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ b = (uint32*)get_blk(fs, b[bw->bpind]);
++ b = (uint32*)get_blk(fs, b[bw->bpdind]);
++ bkref = &b[bw->bptind];
++ if(extend) // allocate data block
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
++ }
++ /* Finished processing a single indirect block. But still in the
++ same double indirect block. Allocate new single indirect block
++ for it and a data block
++ */
++ else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
++ (bw->bpdind < BLOCKSIZE/4 -1) )
++ {
++ bw->bnum++;
++ bw->bptind = 0;
++ bw->bpdind++;
++ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ b = (uint32*)get_blk(fs, b[bw->bpind]);
++ if (extend) // allocate single indirect block
++ b[bw->bpdind] = alloc_blk(fs,nod);
++ b = (uint32*)get_blk(fs, b[bw->bpdind]);
++ bkref = &b[bw->bptind];
++ if(extend) // allocate first data block
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
++ }
++ /* Finished processing a double indirect block. Allocate the next
++ double indirect block and the single,data blocks for it
++ */
++ else if ( (bw->bpdir == EXT2_TIND_BLOCK) &&
++ (bw->bpind < BLOCKSIZE/4 - 1) )
++ {
++ bw->bnum += 2;
++ bw->bpdind = 0;
++ bw->bptind = 0;
++ bw->bpind++;
++ b = (uint32*)get_blk(fs, get_nod(fs, nod)->i_block[bw->bpdir]);
++ if(extend) // allocate double indirect block
++ b[bw->bpind] = alloc_blk(fs,nod);
++ b = (uint32*)get_blk(fs, b[bw->bpind]);
++ if(extend) // allocate single indirect block
++ b[bw->bpdind] = alloc_blk(fs,nod);
++ b = (uint32*)get_blk(fs, b[bw->bpdind]);
++ bkref = &b[bw->bptind];
++ if(extend) // allocate first block
++ *bkref = hole ? 0 : alloc_blk(fs,nod);
+ }
+- // I don't do triple indirect - it's such a small filesystem ...
+ else
+- errexit("file too big ! blocks list for inode %d extends past double indirect blocks!", nod);
++ error_msg_and_die("file too big !");
++ /* End change for walking triple indirection */
++
+ if(*bkref)
+ {
+ bw->bnum++;
+- if(!allocated(fs->bbm, *bkref))
+- errexit("[block %d of inode %d is unallocated !]", *bkref, nod);
++ if(!allocated(GRP_GET_BLOCK_BITMAP(fs,*bkref), GRP_BBM_OFFSET(fs,*bkref)))
++ error_msg_and_die("[block %d of inode %d is unallocated !]", *bkref, nod);
+ }
+ if(extend)
+ get_nod(fs, nod)->i_blocks = bw->bnum * INOBLK;
+@@ -663,23 +938,40 @@
+ }
+
+ // link an entry (inode #) to a directory
+-void add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name)
++void add2dir(filesystem *fs, uint32 dnod, uint32 nod, const char* name, uint32 mode, uid_t uid, gid_t gid, time_t ctime)
+ {
+ blockwalker bw;
+ uint32 bk;
+ uint8 *b;
+ directory *d;
+ int reclen, nlen;
+- if((get_nod(fs, dnod)->i_mode & FM_IFMT) != FM_IFDIR)
+- errexit("can't add '%s' to a non-directory", name);
++ inode *node;
++ inode *pnode;
++
++ /* Squash all permissions so files are owned by root
++ * and file permissions have group/other perms removed */
++ if (squash_uids) {
++ uid = gid = 0;
++ }
++ if (squash_perms) {
++ if (!S_ISLNK(mode)) {
++ mode &= ~(S_IWGRP | S_IWOTH);
++ mode &= ~(S_ISUID | S_ISGID);
++ }
++ }
++
++ pnode = get_nod(fs, dnod);
++
++ if(!S_ISDIR(pnode->i_mode))
++ error_msg_and_die("can't add '%s' to a non-directory", name);
+ if(!*name)
+- errexit("bad name '%s' (not meaningful)", name);
++ error_msg_and_die("bad name '%s' (not meaningful)", name);
+ if(strchr(name, '/'))
+- errexit("bad name '%s' (contains a slash)", name);
++ error_msg_and_die("bad name '%s' (contains a slash)", name);
+ nlen = strlen(name);
+ reclen = sizeof(directory) + rndup(nlen, 4);
+ if(reclen > BLOCKSIZE)
+- errexit("bad name '%s' (too long)", name);
++ error_msg_and_die("bad name '%s' (too long)", name);
+ init_bw(fs, dnod, &bw);
+ while((bk = walk_bw(fs, dnod, &bw, 0, 0)) != WALK_END) // for all blocks in dir
+ {
+@@ -691,9 +983,16 @@
+ if((!d->d_inode) && (d->d_rec_len >= reclen))
+ {
+ d->d_inode = nod;
+- get_nod(fs, nod)->i_links_count++;
++ node = get_nod(fs, nod);
++ node->i_links_count++;
+ d->d_name_len = nlen;
+- strncpy(d->d_name, name, nlen);
++ strncpy(d->d_name, name, rndup(nlen,4));
++ node->i_mode = mode;
++ node->i_uid = uid;
++ node->i_gid = gid;
++ node->i_atime = ctime;
++ node->i_ctime = ctime;
++ node->i_mtime = ctime;
+ return;
+ }
+ // if entry with enough room (last one?), shrink it & use it
+@@ -705,9 +1004,16 @@
+ d = (directory*) (((int8*)d) + d->d_rec_len);
+ d->d_rec_len = reclen;
+ d->d_inode = nod;
+- get_nod(fs, nod)->i_links_count++;
++ node = get_nod(fs, nod);
++ node->i_links_count++;
+ d->d_name_len = nlen;
+- strncpy(d->d_name, name, nlen);
++ strncpy(d->d_name, name, rndup(nlen,4));
++ node->i_mode = mode;
++ node->i_uid = uid;
++ node->i_gid = gid;
++ node->i_atime = ctime;
++ node->i_ctime = ctime;
++ node->i_mtime = ctime;
+ return;
+ }
+ }
+@@ -716,10 +1022,17 @@
+ b = get_workblk();
+ d = (directory*)b;
+ d->d_inode = nod;
+- get_nod(fs, nod)->i_links_count++;
++ node = get_nod(fs, nod);
++ node->i_links_count++;
+ d->d_rec_len = BLOCKSIZE;
+ d->d_name_len = nlen;
+- strncpy(d->d_name, name, nlen);
++ strncpy(d->d_name, name, rndup(nlen,4));
++ node->i_mode = mode;
++ node->i_uid = uid;
++ node->i_gid = gid;
++ node->i_atime = ctime;
++ node->i_ctime = ctime;
++ node->i_mtime = ctime;
+ extend_blk(fs, dnod, b, 1);
+ get_nod(fs, dnod)->i_size += BLOCKSIZE;
+ free_workblk(b);
+@@ -747,7 +1060,7 @@
+ // find the inode of a full path
+ uint32 find_path(filesystem *fs, uint32 nod, const char * name)
+ {
+- char *p, *n, *n2 = strdup(name);
++ char *p, *n, *n2 = xstrdup(name);
+ n = n2;
+ while(*n == '/')
+ {
+@@ -770,27 +1083,32 @@
+ }
+
+ // make a full-fledged directory (i.e. with "." & "..")
+-uint32 mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode)
++uint32 mkdir_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode,
++ uid_t uid, gid_t gid, time_t ctime)
+ {
+ uint32 nod;
+ if((nod = find_dir(fs, parent_nod, name)))
+ return nod;
+ nod = alloc_nod(fs);
+- get_nod(fs, nod)->i_mode = FM_IFDIR | mode;
+- add2dir(fs, parent_nod, nod, name);
+- add2dir(fs, nod, nod, ".");
+- add2dir(fs, nod, parent_nod, "..");
+- fs->gd.bg_used_dirs_count++;
++ if (!(mode & FM_IFDIR))
++ mode |= FM_IFDIR;
++ add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
++ add2dir(fs, nod, nod, ".", mode, uid, gid, ctime);
++ add2dir(fs, nod, parent_nod, "..", mode, uid, gid, ctime);
++ fs->gd[GRP_GROUP_OF_INODE(fs,nod)].bg_used_dirs_count++;
+ return nod;
+ }
+
+ // make a symlink
+-uint32 mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size, uint8 * b)
++uint32 mklink_fs(filesystem *fs, uint32 parent_nod, const char *name, size_t size,
++ uint8 * b, uid_t uid, gid_t gid, time_t ctime)
+ {
++ uint32 mode;
+ uint32 nod = alloc_nod(fs);
++ mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
+ get_nod(fs, nod)->i_mode = FM_IFLNK | FM_IRWXU | FM_IRWXG | FM_IRWXO;
+ get_nod(fs, nod)->i_size = size;
+- add2dir(fs, parent_nod, nod, name);
++ add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
+ if(size <= 4 * (EXT2_TIND_BLOCK+1))
+ {
+ strncpy((char*)get_nod(fs, nod)->i_block, (char*)b, size);
+@@ -801,15 +1119,15 @@
+ }
+
+ // make a file from a FILE*
+-uint32 mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f)
++uint32 mkfile_fs(filesystem *fs, uint32 parent_nod, const char *name, uint32 mode, size_t size, FILE *f, uid_t uid, gid_t gid, time_t ctime)
+ {
+ uint8 * b;
+ uint32 nod = alloc_nod(fs);
+- get_nod(fs, nod)->i_mode = FM_IFREG | mode;
++ mode |= FM_IFREG;
+ get_nod(fs, nod)->i_size = size;
+- add2dir(fs, parent_nod, nod, name);
++ add2dir(fs, parent_nod, nod, name, mode, uid, gid, ctime);
+ if(!(b = (uint8*)malloc(rndup(size, BLOCKSIZE))))
+- errexit("not enough mem to read file '%s'", name);
++ error_msg_and_die("not enough mem to read file '%s'", name);
+ memset(b, 0,rndup(size, BLOCKSIZE));
+ if(f)
+ fread(b, size, 1, f);
+@@ -824,6 +1142,15 @@
+ uint32 get_mode(struct stat *st)
+ {
+ uint32 mode = 0;
++
++ /* Squash file permissions as needed */
++ if (squash_perms) {
++ if (!S_ISLNK(mode)) {
++ st->st_mode &= ~(S_IWGRP | S_IWOTH);
++ st->st_mode &= ~(S_ISUID | S_ISGID);
++ }
++ }
++
+ if(st->st_mode & S_IRUSR)
+ mode |= FM_IRUSR | FM_IRGRP | FM_IROTH;
+ if(st->st_mode & S_IWUSR)
+@@ -833,30 +1160,17 @@
+ return mode;
+ }
+
+-// retrieves a mode info from a string
+-uint32 get_modestr(const char *p)
+-{
+- uint32 mode = 0;
+- if(p[0] == 'r')
+- mode |= FM_IRUSR | FM_IRGRP | FM_IROTH;
+- if(p[1] == 'w')
+- mode |= FM_IWUSR | FM_IWGRP | FM_IWOTH;
+- if(p[2] == 'x' || p[2] == 's')
+- mode |= FM_IXUSR | FM_IXGRP | FM_IXOTH;
+- return mode;
+-}
+-
+ // basename of a path - free me
+ char * basename(const char * fullpath)
+ {
+ char * p = strrchr(fullpath, '/');
+- return strdup(p ? p + 1 : fullpath);
++ return xstrdup(p ? p + 1 : fullpath);
+ }
+
+ // dirname of a path - free me
+ char * dirname(const char * fullpath)
+ {
+- char * p, * n = strdup(fullpath);
++ char * p, * n = xstrdup(fullpath);
+ if((p = strrchr(n, '/')))
+ *(p+1) = 0;
+ else
+@@ -864,66 +1178,6 @@
+ return n;
+ }
+
+-// adds entries to the filesystem from a text file
+-void add2fs_from_file(filesystem *fs, uint32 this_nod, FILE * fh)
+-{
+- uint32 mode;
+- uint32 nod, nod2;
+- char cmod[11], *path, *name, *dir;
+- int major, minor;
+- while(fscanf(fh, "%10s", cmod))
+- {
+- if(feof(fh))
+- break;
+- mode = get_modestr(cmod + 1);
+- switch(*cmod)
+- {
+- case 'd':
+- fscanf(fh, "%" SCANF_PREFIX "s\n", SCANF_STRING(path));
+- break;
+- case 'c':
+- mode |= FM_IFCHR;
+- fscanf(fh, "%i, %i %" SCANF_PREFIX "s\n", &major, &minor, SCANF_STRING(path));
+- break;
+- case 'b':
+- mode |= FM_IFBLK;
+- fscanf(fh, "%i, %i %" SCANF_PREFIX "s\n", &major, &minor, SCANF_STRING(path));
+- break;
+- case '#':
+- while(fgetc(fh) != '\n');
+- continue;
+- default:
+- errexit("malformed text input file");
+- }
+- name = basename(path);
+- dir = dirname(path);
+- free(path);
+- if(!(nod = find_path(fs, this_nod, dir)))
+- errexit("can't find directory '%s' to create '%s''", dir, name);
+- free(dir);
+- if((!strcmp(name, ".")) || (!strcmp(name, "..")))
+- {
+- free(name);
+- continue;
+- }
+- switch(*cmod)
+- {
+- case 'd':
+- mkdir_fs(fs, nod, name, mode);
+- break;
+- case 'c':
+- case 'b':
+- nod2 = alloc_nod(fs);
+- get_nod(fs, nod2)->i_mode = mode;
+- ((uint8*)get_nod(fs, nod2)->i_block)[0] = minor;
+- ((uint8*)get_nod(fs, nod2)->i_block)[1] = major;
+- add2dir(fs, nod, nod2, name);
+- break;
+- }
+- free(name);
+- }
+-}
+-
+ // adds a tree of entries to the filesystem from current dir
+ void add2fs_from_dir(filesystem *fs, uint32 this_nod)
+ {
+@@ -934,7 +1188,7 @@
+ struct stat st;
+ uint8 *b;
+ if(!(dh = opendir(".")))
+- pexit(".");
++ perror_msg_and_die(".");
+ while((dent = readdir(dh)))
+ {
+ if((!strcmp(dent->d_name, ".")) || (!strcmp(dent->d_name, "..")))
+@@ -948,31 +1202,27 @@
+ get_nod(fs, nod)->i_mode = (((st.st_mode & S_IFMT) == S_IFCHR) ? FM_IFCHR : FM_IFBLK) | get_mode(&st);
+ ((uint8*)get_nod(fs, nod)->i_block)[0] = (st.st_rdev & 0xff);
+ ((uint8*)get_nod(fs, nod)->i_block)[1] = (st.st_rdev >> 8);
+- add2dir(fs, this_nod, nod, dent->d_name);
++ add2dir(fs, this_nod, nod, dent->d_name, st.st_mode, st.st_uid, st.st_gid, st.st_ctime);
+ break;
+ case S_IFLNK:
+- if(!(b = (uint8*)malloc(rndup(st.st_size, BLOCKSIZE))))
+- errexit("out of memory");
+- if(readlink(dent->d_name, (char*)b, st.st_size) < 0)
+- pexit(dent->d_name);
+- mklink_fs(fs, this_nod, dent->d_name, st.st_size, b);
++ b = xreadlink(dent->d_name);
++ mklink_fs(fs, this_nod, dent->d_name, st.st_size, b, st.st_uid, st.st_gid, st.st_ctime);
+ free(b);
+ break;
+ case S_IFREG:
+- if(!(fh = fopen(dent->d_name, "r")))
+- pexit(dent->d_name);
+- mkfile_fs(fs, this_nod, dent->d_name, get_mode(&st), st.st_size, fh);
++ fh = xfopen(dent->d_name, "r");
++ mkfile_fs(fs, this_nod, dent->d_name, st.st_mode, st.st_size, fh, st.st_uid, st.st_gid, st.st_ctime);
+ fclose(fh);
+ break;
+ case S_IFDIR:
+- nod = mkdir_fs(fs, this_nod, dent->d_name, get_mode(&st));
++ nod = mkdir_fs(fs, this_nod, dent->d_name, st.st_mode, st.st_uid, st.st_gid, st.st_ctime);
+ if(chdir(dent->d_name) < 0)
+- pexit(dent->d_name);
++ perror_msg_and_die(dent->d_name);
+ add2fs_from_dir(fs, nod);
+ chdir("..");
+ break;
+ default:
+- fprintf(stderr, "ignoring entry %s", dent->d_name);
++ error_msg("ignoring entry %s", dent->d_name);
+ }
+ }
+ closedir(dh);
+@@ -981,9 +1231,11 @@
+ // endianness swap of x-indirect blocks
+ void swap_goodblocks(filesystem *fs, inode *nod)
+ {
+- int i;
++ int i,j,done=0;
++ uint32 *b,*b2;
++
+ int nblk = nod->i_blocks / INOBLK;
+- if((nod->i_size && !nblk) || (nod->i_mode & (FM_IFBLK | FM_IFCHR)))
++ if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
+ for(i = 0; i <= EXT2_TIND_BLOCK; i++)
+ nod->i_block[i] = swab32(nod->i_block[i]);
+ if(nblk <= EXT2_IND_BLOCK)
+@@ -991,20 +1243,55 @@
+ swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
+ if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4)
+ return;
++ /* Currently this will fail b'cos the number of blocks as stored
++ in i_blocks also includes the indirection blocks (see
++ walk_bw). But this function assumes that i_blocks only
++ stores the count of data blocks ( Actually according to
++ "Understanding the Linux Kernel" (Table 17-3 p502 1st Ed)
++ i_blocks IS supposed to store the count of data blocks). so
++ with a file of size 268K nblk would be 269.The above check
++ will be false even though double indirection hasn't been
++ started.This is benign as 0 means block 0 which has been
++ zeroed out and therefore points back to itself from any offset
++ */
++ assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
+ for(i = 0; i < BLOCKSIZE/4; i++)
++ /* Should this be...
++ if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + (BLOCKSIZE/4)*i )
++ */
+ if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + i)
+ swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
+ swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
+ if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
+ return;
+- errexit("too big file on the filesystem");
++ /* Adding support for triple indirection */
++ b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
++ for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
++ b2 = (uint32*)get_blk(fs,b[i]);
++ for(j=0; j<BLOCKSIZE/4;j++) {
++ if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
++ (BLOCKSIZE/4)*(BLOCKSIZE/4) +
++ i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
++ j*(BLOCKSIZE/4)) )
++ swap_block(get_blk(fs,b2[j]));
++ else {
++ done = 1;
++ break;
++ }
++ }
++ swap_block((uint8 *)b2);
++ }
++ swap_block((uint8 *)b);
++ return;
+ }
+
+ void swap_badblocks(filesystem *fs, inode *nod)
+ {
+- int i;
++ int i,j,done=0;
++ uint32 *b,*b2;
++
+ int nblk = nod->i_blocks / INOBLK;
+- if((nod->i_size && !nblk) || (nod->i_mode & (FM_IFBLK | FM_IFCHR)))
++ if((nod->i_size && !nblk) || ((nod->i_mode & FM_IFBLK) == FM_IFBLK) || ((nod->i_mode & FM_IFCHR) == FM_IFCHR))
+ for(i = 0; i <= EXT2_TIND_BLOCK; i++)
+ nod->i_block[i] = swab32(nod->i_block[i]);
+ if(nblk <= EXT2_IND_BLOCK)
+@@ -1012,13 +1299,34 @@
+ swap_block(get_blk(fs, nod->i_block[EXT2_IND_BLOCK]));
+ if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4)
+ return;
++ /* See comment in swap_goodblocks */
++ assert(nod->i_block[EXT2_DIND_BLOCK] != 0);
+ swap_block(get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]));
+ for(i = 0; i < BLOCKSIZE/4; i++)
++ /* See comment in swap_goodblocks */
+ if(nblk > EXT2_IND_BLOCK + BLOCKSIZE/4 + i)
+ swap_block(get_blk(fs, ((uint32*)get_blk(fs, nod->i_block[EXT2_DIND_BLOCK]))[i]));
+ if(nblk <= EXT2_IND_BLOCK + BLOCKSIZE/4 + BLOCKSIZE/4 * BLOCKSIZE/4)
+ return;
+- errexit("too big file on the filesystem");
++ /* Adding support for triple indirection */
++ b = (uint32*)get_blk(fs,nod->i_block[EXT2_TIND_BLOCK]);
++ swap_block((uint8 *)b);
++ for(i=0;i < BLOCKSIZE/4 && !done ; i++) {
++ b2 = (uint32*)get_blk(fs,b[i]);
++ swap_block((uint8 *)b2);
++ for(j=0; j<BLOCKSIZE/4;j++) {
++ if (nblk > ( EXT2_IND_BLOCK + BLOCKSIZE/4 +
++ (BLOCKSIZE/4)*(BLOCKSIZE/4) +
++ i*(BLOCKSIZE/4)*(BLOCKSIZE/4) +
++ j*(BLOCKSIZE/4)) )
++ swap_block(get_blk(fs,b2[j]));
++ else {
++ done = 1;
++ break;
++ }
++ }
++ }
++ return;
+ }
+
+ // endianness swap of the whole filesystem
+@@ -1045,7 +1353,8 @@
+ swap_goodblocks(fs, nod);
+ swap_nod(nod);
+ }
+- swap_gd(&fs->gd);
++ for(i=0;i<GRP_NBGROUPS(fs);i++)
++ swap_gd(&(fs->gd[i]));
+ swap_sb(&fs->sb);
+ }
+
+@@ -1053,7 +1362,8 @@
+ {
+ int i;
+ swap_sb(&fs->sb);
+- swap_gd(&fs->gd);
++ for(i=0;i<GRP_NBGROUPS(fs);i++)
++ swap_gd(&(fs->gd[i]));
+ for(i = 1; i < fs->sb.s_inodes_count; i++)
+ {
+ inode *nod = get_nod(fs, i);
+@@ -1084,53 +1394,118 @@
+ directory *d;
+ uint8 * b;
+ uint32 nod;
++ uint32 nbgroups,nbinodes_per_group,overhead_per_group,free_blocks,
++ free_blocks_per_group,nbblocks_per_group;
++ uint32 gd,itbl,ibmpos,bbmpos,itblpos;
++ int j;
++ uint8 *bbm,*ibm;
++ inode *itab0;
+
+ if(nbblocks < 16) // totally arbitrary
+- errexit("too small filesystem");
+- if(nbblocks >BLOCKS_PER_GROUP) // I build only one group
+- errexit("too big filesystem");
++ error_msg_and_die("too small filesystem");
++
++ /* nbblocks is the total number of blocks in the system. First
++ * calculate how much overhead blocks - inode table blocks,bitmap
++ * blocks,group descriptor blocks etc. - are needed assuming each
++ * group has BLOCKS_PER_GROUP blocks.Then recalculate nbblocks with
++ * this figure. Each group has the same number of blocks. So the fs
++ * has a size atleast the given value but usually rounded off to a i
++ * higher number.
++ */
++ nbgroups = rndup(nbblocks,BLOCKS_PER_GROUP)/ BLOCKS_PER_GROUP;
++ nbinodes_per_group = nbinodes/nbgroups +1;
++ nbinodes_per_group = rndup(nbinodes_per_group, BLOCKSIZE/sizeof(inode));
++ if (nbinodes_per_group < 16)
++ nbinodes_per_group = 16; //minimum number b'cos the first 10 are reserved
++ overhead_per_group = 3 /*super block,ibm,bbm*/
++ + /* No. of blocks that the inodes occupy */
++ nbinodes_per_group *sizeof(inode)/BLOCKSIZE
++ + /* No. of blocks that group descriptors occupy */
++ rndup(nbgroups*sizeof(groupdescriptor),BLOCKSIZE)/BLOCKSIZE;
++ free_blocks = nbblocks - overhead_per_group * nbgroups - 1 /*boot block */;
++ free_blocks_per_group = free_blocks/nbgroups;
++ if (free_blocks > free_blocks_per_group * nbgroups)
++ free_blocks_per_group++;
++ nbblocks_per_group = free_blocks_per_group + overhead_per_group;
++ /* e2fsck complains if nbblocks_per_group is not a multiple of 8 */
++ nbblocks_per_group = rndup(nbblocks_per_group,8);
++ free_blocks_per_group = nbblocks_per_group - overhead_per_group;
++ if (nbblocks_per_group > BLOCKS_PER_GROUP) {
++ /* Can this happen ? */
++ nbblocks_per_group = BLOCKS_PER_GROUP;
++ free_blocks_per_group = nbblocks_per_group - overhead_per_group;
++ }
++ nbblocks = nbblocks_per_group * nbgroups + 1;
++
++
+ if(!(fs = (filesystem*)calloc(nbblocks, BLOCKSIZE)))
+- errexit("not enough memory for filesystem");
++ error_msg_and_die("not enough memory for filesystem");
+
+ // create the superblock for an empty filesystem
+- fs->sb.s_inodes_count = rndup(nbinodes, BLOCKSIZE/sizeof(inode));
++ fs->sb.s_inodes_count = nbinodes_per_group * nbgroups;
+ fs->sb.s_blocks_count = nbblocks;
+ fs->sb.s_r_blocks_count = nbresrvd;
+- fs->sb.s_free_blocks_count = nbblocks;
++ fs->sb.s_free_blocks_count = free_blocks_per_group*nbgroups;
+ fs->sb.s_free_inodes_count = fs->sb.s_inodes_count - EXT2_FIRST_INO + 1;
+ fs->sb.s_first_data_block = (BLOCKSIZE == 1024);
+ fs->sb.s_log_block_size = BLOCKSIZE >> 11;
+ fs->sb.s_log_frag_size = BLOCKSIZE >> 11;
+- fs->sb.s_blocks_per_group = BLOCKS_PER_GROUP;
+- fs->sb.s_frags_per_group = BLOCKS_PER_GROUP;
+- fs->sb.s_inodes_per_group = fs->sb.s_inodes_count;
++ fs->sb.s_blocks_per_group = nbblocks_per_group;
++ fs->sb.s_frags_per_group = nbblocks_per_group;
++ fs->sb.s_inodes_per_group = nbinodes_per_group;
+ fs->sb.s_magic = EXT2_MAGIC_NUMBER;
+
+ // set up groupdescriptors
+- fs->sb.s_free_blocks_count -= 5 + fs->sb.s_inodes_count * sizeof(inode) / BLOCKSIZE;
+- fs->gd.bg_free_blocks_count = fs->sb.s_free_blocks_count;
+- fs->gd.bg_free_inodes_count = fs->sb.s_free_inodes_count;
+- fs->gd.bg_used_dirs_count = 1;
+- fs->gd.bg_block_bitmap = 3;
+- fs->gd.bg_inode_bitmap = 4;
+- fs->gd.bg_inode_table = 5;
+-
+- // mark non-filesystem blocks and inodes as allocated
+- for(i = fs->sb.s_blocks_count; i <= BLOCKSIZE * 8; i++)
+- allocate(fs->bbm, i);
+- for(i = fs->sb.s_inodes_count + 1; i <= BLOCKSIZE * 8; i++)
+- allocate(fs->ibm, i);
+-
+- // mark system blocsk and inodes as allocated
+- for(i = 1; i <= 4 + fs->sb.s_inodes_count * sizeof(inode) / BLOCKSIZE; i++)
+- allocate(fs->bbm, i);
+- for(i = 1; i < EXT2_FIRST_INO; i++)
+- allocate(fs->ibm, i);
+-
+- // make root inode and directory
+- fs->itab[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRWXG | FM_IRWXO;
+- fs->itab[EXT2_ROOT_INO-1].i_size = BLOCKSIZE;
+- fs->itab[EXT2_ROOT_INO-1].i_links_count = 2;
++ gd = rndup(nbgroups*sizeof(groupdescriptor),BLOCKSIZE)/BLOCKSIZE;
++ itbl = nbinodes_per_group*sizeof(inode)/BLOCKSIZE;
++ for(i = 0,bbmpos=2+gd,ibmpos=3+gd,itblpos =4+gd;
++ i<nbgroups;
++ i++, bbmpos += nbblocks_per_group,ibmpos += nbblocks_per_group,
++ itblpos += nbblocks_per_group) {
++
++ fs->gd[i].bg_free_blocks_count = free_blocks_per_group;
++ fs->gd[i].bg_free_inodes_count = nbinodes_per_group;
++ fs->gd[i].bg_used_dirs_count = 0;
++ fs->gd[i].bg_block_bitmap = bbmpos;
++ fs->gd[i].bg_inode_bitmap = ibmpos;
++ fs->gd[i].bg_inode_table = itblpos;
++ }
++
++ /* Mark non-filesystem blocks and inodes as allocated */
++ /* Mark system blocks and inodes as allocated */
++ for(i = 0; i<nbgroups;i++) {
++
++ /* Block bitmap */
++ bbm = get_blk(fs,fs->gd[i].bg_block_bitmap);
++ //non-filesystem blocks.
++ for(j=fs->sb.s_blocks_per_group + 1; j <= BLOCKSIZE * 8; j++)
++ allocate(bbm, j);
++ //system blocks
++ for(j = 1; j <= 3+gd+itbl; j++)
++ allocate(bbm, j);
++
++ /* Inode bitmap */
++ ibm = get_blk(fs,fs->gd[i].bg_inode_bitmap);
++ //non-filesystem inodes
++ for(j = fs->sb.s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++)
++ allocate(ibm, j);
++ }
++
++ /* We have groups now. Add the root filesystem in group 0 */
++ /* Also allocate the system inodes in group 0 and update */
++ /* directory count and inode count for group 0 */
++
++ ibm = get_blk(fs,fs->gd[0].bg_inode_bitmap);
++ for(j = 1; j < EXT2_FIRST_INO; j++) {
++ allocate(ibm, j);
++ fs->gd[0].bg_free_inodes_count--;
++ }
++ fs->gd[0].bg_used_dirs_count = 1;
++ itab0 = (inode *)get_blk(fs,fs->gd[0].bg_inode_table);
++ itab0[EXT2_ROOT_INO-1].i_mode = FM_IFDIR | FM_IRWXU | FM_IRWXG | FM_IRWXO;
++ itab0[EXT2_ROOT_INO-1].i_size = BLOCKSIZE;
++ itab0[EXT2_ROOT_INO-1].i_links_count = 2;
++
+ b = get_workblk();
+ d = (directory*)b;
+ d->d_inode = EXT2_ROOT_INO;
+@@ -1147,9 +1522,14 @@
+ // make lost+found directory and reserve blocks
+ if(fs->sb.s_r_blocks_count)
+ {
+- nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", FM_IRWXU | FM_IRWXG | FM_IRWXO);
++ nod = mkdir_fs(fs, EXT2_ROOT_INO, "lost+found", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH, 0, 0, time(NULL));
+ memset(b, 0, BLOCKSIZE);
+ ((directory*)b)->d_rec_len = BLOCKSIZE;
++ /* We run into problems with e2fsck if directory lost+found grows
++ * bigger than this. Need to find out why this happens - sundar
++ */
++ if (fs->sb.s_r_blocks_count > 2049 )
++ fs->sb.s_r_blocks_count=2049;
+ for(i = 1; i < fs->sb.s_r_blocks_count; i++)
+ extend_blk(fs, nod, b, 1);
+ get_nod(fs, nod)->i_size = fs->sb.s_r_blocks_count * BLOCKSIZE;
+@@ -1170,24 +1550,24 @@
+ // loads a filesystem from disk
+ filesystem * load_fs(FILE * fh, int swapit)
+ {
+- size_t fssize;
++ size_t fssize = 0;
+ filesystem *fs;
+ if((fseek(fh, 0, SEEK_END) < 0) || ((fssize = ftell(fh)) < 0))
+- pexit("input filesystem image");
++ perror_msg_and_die("input filesystem image");
+ rewind(fh);
+ fssize = (fssize + BLOCKSIZE - 1) / BLOCKSIZE;
+ if(fssize < 16) // totally arbitrary
+- errexit("too small filesystem");
+- if(fssize > BLOCKS_PER_GROUP) // I build only one group
+- errexit("too big filesystem");
++ error_msg_and_die("too small filesystem");
++/* if(fssize > BLOCKS_PER_GROUP) // I build only one group
++ error_msg_and_die("too big filesystem"); */
+ if(!(fs = (filesystem*)calloc(fssize, BLOCKSIZE)))
+- errexit("not enough memory for filesystem");
++ error_msg_and_die("not enough memory for filesystem");
+ if(fread(fs, BLOCKSIZE, fssize, fh) != fssize)
+- pexit("input filesystem image");
++ perror_msg_and_die("input filesystem image");
+ if(swapit)
+ swap_badfs(fs);
+ if(fs->sb.s_rev_level || (fs->sb.s_magic != EXT2_MAGIC_NUMBER))
+- errexit("not a suitable ext2 filesystem");
++ error_msg_and_die("not a suitable ext2 filesystem");
+ return fs;
+ }
+
+@@ -1230,9 +1610,9 @@
+ while((bk = walk_bw(fs, nod, &bw, 0, 0)) != WALK_END)
+ {
+ if(fsize <= 0)
+- errexit("wrong size while saving inode %d", nod);
++ error_msg_and_die("wrong size while saving inode %d", nod);
+ if(fwrite(get_blk(fs, bk), (fsize > BLOCKSIZE) ? BLOCKSIZE : fsize, 1, f) != 1)
+- errexit("error while saving inode %d", nod);
++ error_msg_and_die("error while saving inode %d", nod);
+ fsize -= BLOCKSIZE;
+ }
+ }
+@@ -1250,7 +1630,7 @@
+ {
+ int i, j;
+ if(fsize <= 0)
+- errexit("wrong size while saving inode %d", nod);
++ error_msg_and_die("wrong size while saving inode %d", nod);
+ b = get_blk(fs, bk);
+ for(i = 0; i < 64; i++)
+ {
+@@ -1406,7 +1786,7 @@
+ s = (nod >= EXT2_FIRST_INO) ? "normal" : "unknown reserved";
+ }
+ printf("inode %d (%s, %d links): ", nod, s, get_nod(fs, nod)->i_links_count);
+- if(!allocated(fs->ibm, nod))
++ if(!allocated(GRP_GET_INODE_BITMAP(fs,nod), GRP_IBM_OFFSET(fs,nod)))
+ {
+ printf("unallocated\n");
+ return;
+@@ -1440,24 +1820,46 @@
+ default:
+ list_blocks(fs, nod);
+ }
++ printf("Done with inode %d\n",nod);
+ }
+
+ // describes various fields in a filesystem
+ void print_fs(filesystem *fs)
+ {
+- int i;
+- printf("%d blocks (%d free, %d reserved), first data block: %d\n", fs->sb.s_blocks_count, fs->sb.s_free_blocks_count, fs->sb.s_r_blocks_count, fs->sb.s_first_data_block);
+- printf("%d inodes (%d free)\n", fs->sb.s_inodes_count, fs->sb.s_free_inodes_count);
+- printf("block size = %d, frag size = %d\n", fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024, fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024);
+- printf("%d blocks per group, %d frags per group, %d inodes per group\n", fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group, fs->sb.s_inodes_per_group);
+- printf("block bitmap: block %d, inode bitmap: block %d, inode table: block %d\n", fs->gd.bg_block_bitmap, fs->gd.bg_inode_bitmap, fs->gd.bg_inode_table);
+- printf("block bitmap allocation:\n");
+- print_bm(fs->bbm, fs->sb.s_blocks_count);
+- printf("inode bitmap allocation:\n");
+- print_bm(fs->ibm, fs->sb.s_inodes_count);
+- for(i=1; i<=fs->sb.s_inodes_count; i++)
+- if(allocated(fs->ibm, i))
+- print_inode(fs, i);
++ int i,j;
++ uint8 *ibm;
++
++ printf("%d blocks (%d free, %d reserved), first data block: %d\n",
++ fs->sb.s_blocks_count, fs->sb.s_free_blocks_count,
++ fs->sb.s_r_blocks_count, fs->sb.s_first_data_block);
++ printf("%d inodes (%d free)\n", fs->sb.s_inodes_count,
++ fs->sb.s_free_inodes_count);
++ printf("block size = %d, frag size = %d\n",
++ fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024,
++ fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024);
++ printf("Number of groups: %d\n",GRP_NBGROUPS(fs));
++ printf("%d blocks per group,%d frags per group,%d inodes per group\n",
++ fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group,
++ fs->sb.s_inodes_per_group);
++ printf("Size of inode table: %d blocks\n",
++ fs->sb.s_inodes_per_group * sizeof(inode)/BLOCKSIZE);
++ for (i = 0; i < GRP_NBGROUPS(fs); i++) {
++ printf("Group No: %d\n", i);
++ printf("block bitmap: block %d,inode bitmap: block %d, inode table: block %d\n",
++ fs->gd[i].bg_block_bitmap, fs->gd[i].bg_inode_bitmap,
++ fs->gd[i].bg_inode_table);
++ printf("Free blocks count: %d\n",fs->gd[i].bg_free_blocks_count);
++ printf("Free inodes count: %d\n",fs->gd[i].bg_free_inodes_count);
++ printf("Used dir count: %d\n",fs->gd[i].bg_used_dirs_count);
++ printf("block bitmap allocation:\n");
++ print_bm(GRP_GET_GROUP_BBM(fs, i),fs->sb.s_blocks_per_group);
++ printf("inode bitmap allocation:\n");
++ ibm = GRP_GET_GROUP_IBM(fs, i);
++ print_bm(ibm, fs->sb.s_inodes_per_group);
++ for (j = 1; j <= fs->sb.s_inodes_per_group; j++)
++ if (allocated(ibm, j))
++ print_inode(fs, i*fs->sb.s_inodes_per_group + j);
++ }
+ }
+
+ void dump_fs(filesystem *fs, FILE * fh, int swapit)
+@@ -1467,31 +1869,234 @@
+ if(swapit)
+ swap_goodfs(fs);
+ if(fwrite(fs, BLOCKSIZE, nbblocks, fh) < nbblocks)
+- pexit("output filesystem image");
++ perror_msg_and_die("output filesystem image");
+ if(swapit)
+ swap_badfs(fs);
+ }
+
++/* device table entries take the form of:
++ <path> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
++ /dev/mem c 640 0 0 1 1 0 0 -
++
++ type can be one of:
++ f A regular file
++ d Directory
++ c Character special device file
++ b Block special device file
++ p Fifo (named pipe)
++
++ I don't bother with symlinks (permissions are irrelevant), hard
++ links (special cases of regular files), or sockets (why bother).
++
++ Regular files must exist in the target root directory. If a char,
++ block, fifo, or directory does not exist, it will be created.
++*/
++static int interpret_table_entry(filesystem *fs, char *line)
++{
++ char type, *name = NULL, *tmp, *dir, *bname;
++ unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
++ unsigned long start = 0, increment = 1, count = 0;
++ inode *entry;
++ uint32 nod, parent;
++
++ if (sscanf (line, "%" SCANF_PREFIX "s %c %lo %lu %lu %lu %lu %lu %lu %lu",
++ SCANF_STRING(name), &type, &mode, &uid, &gid, &major, &minor,
++ &start, &increment, &count) < 0)
++ {
++ return 1;
++ }
++
++ if (!strcmp(name, "/")) {
++ error_msg_and_die("Device table entries require absolute paths");
++ }
++
++ /* Check if this file already exists... */
++ switch (type) {
++ case 'd':
++ mode |= S_IFDIR;
++ break;
++ case 'f':
++ mode |= S_IFREG;
++ break;
++ case 'p':
++ mode |= S_IFIFO;
++ break;
++ case 'c':
++ mode |= S_IFCHR;
++ break;
++ case 'b':
++ mode |= S_IFBLK;
++ break;
++ default:
++ error_msg_and_die("Unsupported file type");
++ }
++ nod = 0;
++ if (count==0)
++ nod = find_path(fs, EXT2_ROOT_INO, name);
++ if (nod) {
++ /* Ok, we just need to fixup an existing entry
++ * and we will be all done... */
++ entry = get_nod(fs, nod);
++ entry->i_uid = uid;
++ entry->i_gid = gid;
++ entry->i_mode = mode;
++ if (major) {
++ dev_t rdev = makedev(major, minor);
++ ((uint8*)entry->i_block)[0] = (rdev & 0xff);
++ ((uint8*)entry->i_block)[1] = (rdev >> 8);
++ }
++ } else {
++ /* Try and find our parent now */
++ tmp = xstrdup(name);
++ dir = dirname(tmp);
++ parent = find_path(fs, EXT2_ROOT_INO, dir);
++ free(tmp);
++ if (!parent) {
++ error_msg ("skipping device_table entry '%s': no parent directory!", name);
++ free(name);
++ return 1;
++ }
++
++ tmp = xstrdup(name);
++ bname = xstrdup(basename(tmp));
++ free(tmp);
++ switch (type) {
++ case 'd':
++ mkdir_fs(fs, parent, bname, mode|FM_IFDIR, uid, gid, time(NULL));
++ break;
++ case 'f':
++#if 0
++ {
++ // This is a bit odd.. This will try to include
++ // the file of the same name from your _build_
++ // system... Probably a very bad idea....
++ struct stat st;
++ FILE *fh = xfopen(name, "r");
++ lstat(name, &st);
++ mkfile_fs(fs, parent, bname, mode|FM_IFREG, st.st_size, fh, uid, gid, st.st_ctime);
++ fclose(fh);
++ }
++#else
++ error_msg("ignoring entry %s", name);
++#endif
++ break;
++ case 'p':
++ error_msg("ignoring entry %s", name);
++ break;
++ case 'c':
++ case 'b':
++ if (count > 0) {
++ dev_t rdev;
++ char *dname;
++ unsigned long i;
++ for (i = start; i < count; i++) {
++ asprintf(&dname, "%s%lu", bname, i);
++ nod = find_path(fs, EXT2_ROOT_INO, dname);
++ if (nod) {
++ /* We just need to fixup an existing entry */
++ entry = get_nod(fs, nod);
++ } else {
++ nod = alloc_nod(fs);
++ add2dir(fs, parent, nod, dname, mode, uid, gid, time(NULL));
++ entry = get_nod(fs, nod);
++ }
++ entry->i_uid = uid;
++ entry->i_gid = gid;
++ entry->i_mode = mode;
++ rdev = makedev(major, minor + (i * increment - start));
++ ((uint8*)entry->i_block)[0] = (rdev & 0xff);
++ ((uint8*)entry->i_block)[1] = (rdev >> 8);
++ free(dname);
++ }
++ } else {
++ dev_t rdev = makedev(major, minor);
++ nod = alloc_nod(fs);
++ add2dir(fs, parent, nod, bname, mode, uid, gid, time(NULL));
++ entry = get_nod(fs, nod);
++ ((uint8*)entry->i_block)[0] = (rdev & 0xff);
++ ((uint8*)entry->i_block)[1] = (rdev >> 8);
++ }
++ break;
++ default:
++ error_msg_and_die("Unsupported file type");
++ }
++ free(bname);
++ }
++ free(name);
++ return 0;
++}
++
++static int parse_device_table(filesystem *root, FILE * file)
++{
++ char *line;
++ int status = 0;
++ size_t length = 0;
++
++ /* Turn off squash, since we must ensure that values
++ * entered via the device table are not squashed */
++ squash_uids = 0;
++ squash_perms = 0;
++
++ /* Looks ok so far. The general plan now is to read in one
++ * line at a time, check for leading comment delimiters ('#'),
++ * then try and parse the line as a device table. If we fail
++ * to parse things, try and help the poor fool to fix their
++ * device table with a useful error msg... */
++ line = NULL;
++ while (getline(&line, &length, file) != -1) {
++ /* First trim off any whitespace */
++ int len = strlen(line);
++
++ /* trim trailing whitespace */
++ while (len > 0 && isspace(line[len - 1]))
++ line[--len] = '\0';
++ /* trim leading whitespace */
++ memmove(line, &line[strspn(line, " \n\r\t\v")], len);
++
++ /* How long are we after trimming? */
++ len = strlen(line);
++
++ /* If this is NOT a comment line, try to interpret it */
++ if (len && *line != '#') {
++ if (interpret_table_entry(root, line))
++ status = 1;
++ }
++
++ free(line);
++ line = NULL;
++ }
++ fclose(file);
++
++ return status;
++}
++
++/*
++Local Variables:
++c-file-style: "linux"
++c-basic-offset: 4
++tab-width: 4
++End:
++*/
++
+ void showhelp(void)
+ {
+ fprintf(stderr, "Usage: %s [options] image\n"
+ "Create an ext2 filesystem image from directories/files\n\n"
+- " -x image Use this image as a starting point\n"
+- " -d directory Add this directory as source\n"
+- " -f file Add nodes (e.g. devices) from this spec file\n"
+- " -b blocks Size in blocks\n"
+- " -i inodes Number of inodes\n"
+- " -r reserved Number of reserved blocks\n"
+- " -g path Generate a block map file for this path\n"
+- " -e value Fill unallocated blocks with value\n"
+- " -z Make files with holes\n"
+- " -v Print resulting filesystem structure\n"
+- " -h Show this help\n\n"
+- "Example of spec file:\n"
+- "drwx /dev\n"
+- "crw- 10,190 /dev/lcd\n"
+- "brw- 1,0 /dev/ram0\n\n"
+- "Report bugs to xavier.bestel@free.fr\n", argv0);
++ " -x image Use this image as a starting point\n"
++ " -d directory Add this directory as source\n"
++ " -b blocks Size in blocks\n"
++ " -i inodes Number of inodes\n"
++ " -r reserved Number of reserved blocks\n"
++ " -g path Generate a block map file for this path\n"
++ " -e value Fill unallocated blocks with value\n"
++ " -z Make files with holes\n"
++ " -D,-f Use the named FILE as a device table file\n"
++ " -q Squash permissions and owners making all files be owned by root\n"
++ " -U Squash owners making all files be owned by root\n"
++ " -P Squash permissions on all files\n"
++ " -v Print resulting filesystem structure\n"
++ " -h Show this help\n\n"
++ "Report bugs to xavier.bestel@free.fr\n", app_name);
+ }
+
+ #define MAX_DOPT 128
+@@ -1521,21 +2126,17 @@
+ filesystem *fs;
+ int i;
+ int c;
++ struct stat sb;
++ FILE *devtable = NULL;
+
+- argv0 = argv[0];
+- if(argc <= 1)
+- {
+- showhelp();
+- exit(1);
+- }
+- while((c = getopt(argc, argv, "x:f:d:b:i:r:g:e:zvh")) != EOF)
++ app_name = argv[0];
++ while((c = getopt(argc, argv, "x:d:b:i:r:g:e:zvhD:f:qUP")) != EOF)
+ switch(c)
+ {
+ case 'x':
+ fsin = optarg;
+ break;
+ case 'd':
+- case 'f':
+ dopt[didx++] = optarg;
+ break;
+ case 'b':
+@@ -1556,6 +2157,24 @@
+ case 'z':
+ holes = 1;
+ break;
++ case 'f':
++ case 'D':
++ devtable = xfopen(optarg, "r");
++ if (fstat(fileno(devtable), &sb) < 0)
++ perror_msg_and_die(optarg);
++ if (sb.st_size < 10)
++ error_msg_and_die("%s: not a proper device table file", optarg);
++ break;
++ case 'q':
++ squash_uids = 1;
++ squash_perms = 1;
++ break;
++ case 'U':
++ squash_uids = 1;
++ break;
++ case 'P':
++ squash_perms = 1;
++ break;
+ case 'v':
+ verbose = 1;
+ break;
+@@ -1566,16 +2185,14 @@
+ exit(1);
+ }
+ if(optind < (argc - 1))
+- errexit("too many arguments");
++ error_msg_and_die("too many arguments");
+ if(optind == (argc - 1))
+ fsout = argv[optind];
+ if(fsin)
+ {
+ if(strcmp(fsin, "-"))
+ {
+- FILE * fh = fopen(fsin, "r");
+- if(!fh)
+- pexit(fsin);
++ FILE * fh = xfopen(fsin, "r");
+ fs = load_fs(fh, bigendian);
+ fclose(fh);
+ }
+@@ -1585,7 +2202,7 @@
+ else
+ {
+ if(nbblocks == -1)
+- errexit("filesystem size unspecified");
++ error_msg_and_die("filesystem size unspecified");
+ if(nbinodes == -1)
+ nbinodes = nbblocks * BLOCKSIZE / rndup(BYTES_PER_INODE, BLOCKSIZE);
+ if(nbresrvd == -1)
+@@ -1595,35 +2212,30 @@
+ for(i = 0; i < didx; i++)
+ {
+ struct stat st;
+- FILE *fh;
+ char *pdir;
+ stat(dopt[i], &st);
+ switch(st.st_mode & S_IFMT)
+ {
+- case S_IFREG:
+- if(!(fh = fopen(dopt[i], "r")))
+- pexit(dopt[i]);
+- add2fs_from_file(fs, EXT2_ROOT_INO, fh);
+- fclose(fh);
+- break;
+ case S_IFDIR:
+ if(!(pdir = getcwd(0, GETCWD_SIZE)))
+- pexit(dopt[i]);
++ perror_msg_and_die(dopt[i]);
+ if(chdir(dopt[i]) < 0)
+- pexit(dopt[i]);
++ perror_msg_and_die(dopt[i]);
+ add2fs_from_dir(fs, EXT2_ROOT_INO);
+ if(chdir(pdir) < 0)
+- pexit(pdir);
++ perror_msg_and_die(pdir);
+ free(pdir);
+ break;
+ default:
+- errexit("%s in neither a file nor a directory", dopt[i]);
++ error_msg_and_die("%s is neither a file nor a directory", dopt[i]);
+ }
+ }
+ if(emptyval)
+ for(i = 1; i < fs->sb.s_blocks_count; i++)
+- if(!allocated(fs->bbm, i))
++ if(!allocated(GRP_GET_BLOCK_BITMAP(fs,i),GRP_BBM_OFFSET(fs,i)))
+ memset(get_blk(fs, i), emptyval, BLOCKSIZE);
++ if(devtable)
++ parse_device_table(fs, devtable);
+ if(verbose)
+ print_fs(fs);
+ for(i = 0; i < gidx; i++)
+@@ -1633,21 +2245,18 @@
+ char *p;
+ FILE *fh;
+ if(!(nod = find_path(fs, EXT2_ROOT_INO, gopt[i])))
+- errexit("path %s not found in filesystem", gopt[i]);
++ error_msg_and_die("path %s not found in filesystem", gopt[i]);
+ while((p = strchr(gopt[i], '/')))
+ *p = '_';
+ snprintf(fname, MAX_FILENAME-1, "%s.blk", gopt[i]);
+- if(!(fh = fopen(fname, "w")))
+- pexit(fname);
++ fh = xfopen(fname, "w");
+ fprintf(fh, "%d:", get_nod(fs, nod)->i_size);
+ flist_blocks(fs, nod, fh);
+ fclose(fh);
+ }
+ if(strcmp(fsout, "-"))
+ {
+- FILE * fh = fopen(fsout, "w");
+- if(!fh)
+- pexit(fsout);
++ FILE * fh = xfopen(fsout, "w");
+ dump_fs(fs, fh, bigendian);
+ fclose(fh);
+ }
+diff -urN genext2fs-1.3.orig/test-mount.sh genext2fs-1.3/test-mount.sh
+--- genext2fs-1.3.orig/test-mount.sh 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/test-mount.sh 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,96 @@
++#!/bin/sh
++set -e
++
++cleanup () {
++ set +e
++ umount mnt 2>/dev/null
++ rm -rf mnt ext2.img lsout fout test 2>/dev/null
++}
++
++# dtest - Uses the -d directory option of genext2fs
++# Creates an image with a file of given size and verifies it
++# Usage: dtest file-size number-of-blocks
++dtest () {
++ size=$1; blocks=$2;fname=$size
++ echo "Testing with file of size $size "
++ mkdir -p test
++ cd test
++ dd if=/dev/zero of=file.$1 bs=1 count=$size
++ cd ..
++ ./genext2fs -b $blocks -d test ext2.img
++ md5=`md5sum ext2.img | cut -f1 -d " "`
++ if ! /sbin/e2fsck -fn ext2.img ; then
++ echo "fsck failed"
++ echo FAILED
++ cleanup
++ exit 1
++ fi
++ mkdir -p mnt
++ if ! mount -t ext2 -o loop ext2.img mnt; then
++ echo FAILED
++ cleanup
++ exit 1
++ fi
++ if (! [ -f mnt/file.$fname ]) || \
++ [ $fname != "`ls -al mnt | grep file.$fname |awk '{print $5}'`" ] ; then
++ echo FAILED
++ cleanup
++ exit 1
++ fi
++ echo PASSED "(md5 checksum for the image: $md5)"
++ cleanup
++}
++
++# ftest - Uses the -f spec-file option of genext2fs
++# Creates an image with the devices mentioned in the given spec
++# file and verifies it
++# Usage: ftest spec-file number-of-blocks
++ftest () {
++ fname=$1; blocks=$2;
++ echo "Testing with devices file $fname"
++ ./genext2fs -b $blocks -f $fname ext2.img
++ md5=`md5sum ext2.img | cut -f 1 -d " "`
++ if ! /sbin/e2fsck -fn ext2.img ; then
++ echo "fsck failed"
++ echo FAILED
++ cleanup
++ exit 1
++ fi
++ mkdir -p mnt
++ if ! mount -t ext2 -o loop ext2.img mnt; then
++ echo FAILED
++ cleanup
++ exit 1
++ fi
++ if ! [ -d mnt/dev ] ; then
++ echo FAILED
++ cleanup
++ exit 1
++ fi
++ cat dev.txt | grep ^[bc] | \
++ awk '{print $1substr($1,2)substr($1,2),$2,$3}'| \
++ sort -d -k3.6 > fout
++ ls -al mnt/dev | grep ^[bc] | \
++ awk '{ print $1,$5$6,"/dev/"$10}' | \
++ sort -d -k3.6 > lsout
++ if ! diff fout lsout ; then
++ echo FAILED
++ cleanup
++ exit 1
++ fi
++ echo PASSED "(md5 checksum for the image: $md5)"
++ cleanup
++}
++
++dtest 0 4096
++dtest 0 8193
++dtest 0 8194
++dtest 1 4096
++dtest 12288 4096
++dtest 274432 4096
++dtest 8388608 9000
++dtest 16777216 20000
++
++ftest dev.txt 4096
++
++exit 0
+diff -urN genext2fs-1.3.orig/test.sh genext2fs-1.3/test.sh
+--- genext2fs-1.3.orig/test.sh 1969-12-31 17:00:00.000000000 -0700
++++ genext2fs-1.3/test.sh 2003-04-21 01:41:42.000000000 -0600
+@@ -0,0 +1,53 @@
++#!/bin/sh
++set -e
++
++# dtest - Uses the -d directory option of genext2fs
++# Creates an image with a file of given size and verifies it
++# Usage: dtest file-size number-of-blocks correct-checksum
++dtest () {
++ size=$1; blocks=$2; checksum=$3
++ echo "Testing with file of size $size "
++ mkdir -p test
++ cd test
++ dd if=/dev/zero of=file.$1 bs=1 count=$size
++ cd ..
++ ./genext2fs -b $blocks -d test ext2.img
++ md5=`md5sum ext2.img | cut -d" " -f1`
++ rm -rf ext2.img test
++ if [ $md5 == $checksum ] ; then
++ echo PASSED
++ else
++ echo FAILED
++ exit 1
++ fi
++}
++
++# ftest - Uses the -f spec-file option of genext2fs
++# Creates an image with the devices mentioned in the given spec
++# file and verifies it
++# Usage: ftest spec-file number-of-blocks correct-checksum
++ftest () {
++ fname=$1; blocks=$2; checksum=$3
++ echo "Testing with devices file $fname"
++ ./genext2fs -b $blocks -f $fname ext2.img
++ md5=`md5sum ext2.img | cut -d" " -f1`
++ rm -rf ext2.img
++ if [ $md5 == $checksum ] ; then
++ echo PASSED
++ else
++ echo FAILED
++ exit 1
++ fi
++}
++
++dtest 0 4096 491a43ab93c2e5c186c9f1f72d88e5c5
++dtest 0 8193 6289224f0b7f151994479ba156c43505
++dtest 0 8194 3272c43c25e8d0c3768935861a643a65
++dtest 1 4096 5ee24486d33af88c63080b09d8cadfb5
++dtest 12288 4096 494498364defdc27b2770d1f9c1e3387
++dtest 274432 4096 65c4bd8d30bf563fa5434119a12abff1
++dtest 8388608 9000 9a49b0461ee236b7fd7c452fb6a1f2dc
++dtest 16777216 20000 91e16429c901b68d30f783263f0611b7
++
++ftest dev.txt 4096 921ee9343b0759e16ad8d979d7dd16ec
++exit 0
--- /dev/null
+#############################################################
+#
+# mtd provides us with mkfs.jffs2, to target JFFS2 filesystems
+#
+#############################################################
+
+MTD_DIR:=$(BUILD_DIR)/mtd-20011217
+MTD_SOURCE=mtd_20011217.orig.tar.gz
+MTD_SITE=http://ftp.debian.org/debian/pool/main/m/mtd
+MKFS_JFFS2=$(shell which mkfs.jffs2 2>/dev/null || echo $(MTD_DIR)/util/mkfs.jffs2)
+
+$(DL_DIR)/$(MTD_SOURCE):
+ $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
+
+$(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
+ zcat $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+ touch $(MTD_DIR)/.unpacked
+
+$(MTD_DIR)/util/mkfs.jffs2: $(MTD_DIR)/.unpacked
+ CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_DIR)/util
+
+mtd: $(MKFS_JFFS2)
+
+
+#############################################################
+#
+# Build the jffs2 root filesystem image
+#
+#############################################################
+
+jffs2root: mtd
+ #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
+ -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
+ @rm -rf $(TARGET_DIR)/usr/man
+ @rm -rf $(TARGET_DIR)/usr/info
+ $(MKFS_JFFS2) --pad --little-endian --squash -e 0x20000 \
+ -D $(SOURCE_DIR)/device_table.txt -d $(TARGET_DIR) \
+ -o $(IMAGE)
+
+jffs2root-source: $(DL_DIR)/$(MTD_SOURCE)
+
+jffs2root-clean:
+ -$(MAKE) -C $(MTD_DIR) clean
+
+jffs2root-dirclean:
+ rm -rf $(MTD_DIR)
+
+
+
--- /dev/null
+This is a stupid little patch adding an option to change all uid/gid to
+root/root in the generated filesystem. We really need to teach mksquashfs
+about device tables though...
+
+--- squashfs1.3r3/squashfs-tools/mksquashfs.c-dist 2004-03-29 20:35:37.000000000 -0600
++++ squashfs1.3r3/squashfs-tools/mksquashfs.c 2004-03-29 22:28:51.000000000 -0600
+@@ -136,6 +136,8 @@
+ stotal_bytes, stotal_inode_bytes, stotal_directory_bytes, sinode_count, sfile_count, ssym_count, sdev_count, sdir_count, sdup_files;
+ int restore = 0;
+
++unsigned int root_owned = 0;
++
+ /*flag whether destination file is a block device */
+ int block_device = 0;
+
+@@ -421,6 +423,11 @@
+ return SQUASHFS_INVALID;
+ }
+
++ if (root_owned) {
++ buf.st_uid = 0;
++ buf.st_gid = 0;
++ }
++
+ base->mode = SQUASHFS_MODE(buf.st_mode);
+ base->uid = get_uid(&file_type, (squashfs_uid) buf.st_uid);
+ base->inode_type = file_type;
+@@ -1268,6 +1275,8 @@
+ root_name = argv[i];
+ } else if(strcmp(argv[i], "-version") == 0) {
+ VERSION();
++ } else if (strcmp(argv[i], "-root-owned") == 0) {
++ root_owned = TRUE;
+ } else {
+ ERROR("%s: invalid option\n\n", argv[0]);
+ printOptions:
--- /dev/null
+#############################################################
+#
+# mksquashfs to build to target squashfs filesystems
+#
+#############################################################
+SQUASHFS_DIR=$(BUILD_DIR)/squashfs1.3r3
+SQUASHFS_SOURCE=squashfs1.3r3.tar.gz
+SQUASHFS_SITE=http://aleron.dl.sourceforge.net/sourceforge/squashfs
+
+$(DL_DIR)/$(SQUASHFS_SOURCE):
+ $(WGET) -P $(DL_DIR) $(SQUASHFS_SITE)/$(SQUASHFS_SOURCE)
+
+$(SQUASHFS_DIR): $(DL_DIR)/$(SQUASHFS_SOURCE) #$(SQUASHFS_PATCH)
+ zcat $(DL_DIR)/$(SQUASHFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+ $(SOURCE_DIR)/patch-kernel.sh $(SQUASHFS_DIR) $(SOURCE_DIR) squashfs.patch
+
+$(SQUASHFS_DIR)/squashfs-tools/mksquashfs: $(SQUASHFS_DIR)
+ $(MAKE) -C $(SQUASHFS_DIR)/squashfs-tools;
+
+squashfs: $(SQUASHFS_DIR)/squashfs-tools/mksquashfs
+
+squashfs-source: $(DL_DIR)/$(SQUASHFS_SOURCE)
+
+squashfs-clean:
+ -$(MAKE) -C $(SQUASHFS_DIR)/squashfs-tools clean
+
+squashfs-dirclean:
+ rm -rf $(SQUASHFS_DIR)
+
+#############################################################
+#
+# Build the squashfs root filesystem image
+#
+#############################################################
+
+squashfsroot: squashfs
+ #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
+ -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
+ @rm -rf $(TARGET_DIR)/usr/man
+ @rm -rf $(TARGET_DIR)/usr/info
+ #$(SQUASHFS_DIR)/squashfs-tools/mksquashfs -q -D $(SOURCE_DIR)/device_table.txt $(TARGET_DIR) $(IMAGE)
+ $(SQUASHFS_DIR)/squashfs-tools/mksquashfs $(TARGET_DIR) $(IMAGE) -noappend -root-owned
+
+squashfsroot-source: squashfs-source
+
+squashfsroot-clean:
+ -$(MAKE) -C $(SQUASHFS_DIR) clean
+
+squashfsroot-dirclean:
+ rm -rf $(SQUASHFS_DIR)
+
$(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked
# Apply appropriate binutils patches.
- $(SOURCE_DIR)/patch-kernel.sh $(BINUTILS_DIR) toolchain/binutils/$(BINUTILS_VERSION) \*.patch
+ toolchain/patch-kernel.sh $(BINUTILS_DIR) toolchain/binutils/$(BINUTILS_VERSION) \*.patch
touch $(BINUTILS_DIR)/.patched
$(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched
$(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked
# Apply any files named gcc-*.patch from the source directory to gcc
- $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) \*.patch
+ toolchain/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) \*.patch
#
# We do not wish to build the libstdc++ library provided with gcc,
# since it doesn't seem to work at all with uClibc plus gcc 2.95...
$(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked
# Apply any files named gcc-*.patch from the source directory to gcc
- $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) \*.patch
+ toolchain/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) \*.patch
# Note: The soft float situation has improved considerably with gcc 3.4.x.
# We can dispense with the custom spec files, as well as libfloat for the arm case.
# However, we still need a patch for arm. There's a similar patch for gcc 3.3.x
# anyone (?) who might still be using gcc 2.95. mjn3
ifeq ($(SOFT_FLOAT),true)
ifeq ("$(strip $(ARCH))","arm")
- $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) arm-softfloat.patch.conditional
+ toolchain/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) arm-softfloat.patch.conditional
endif
ifeq ("$(strip $(ARCH))","armeb")
- $(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) arm-softfloat.patch.conditional
+ toolchain/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) arm-softfloat.patch.conditional
endif
# Not yet updated to 3.4.1.
#ifeq ("$(strip $(ARCH))","i386")
- #$(SOURCE_DIR)/patch-kernel.sh $(GCC_DIR) toolchain/gcc i386-gcc-soft-float.patch
+ #toolchain/patch-kernel.sh $(GCC_DIR) toolchain/gcc i386-gcc-soft-float.patch
#endif
endif
touch $(GCC_DIR)/.patched
$(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE)
$(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf -
- $(SOURCE_DIR)/patch-kernel.sh $(GDB_DIR) $(SOURCE_DIR)/gdb/$(GDB_VERSION) \*.patch
+ toolchain/patch-kernel.sh $(GDB_DIR) $(SOURCE_DIR)/gdb/$(GDB_VERSION) \*.patch
# Copy a config.sub from gcc. This is only necessary until
# gdb's config.sub supports <arch>-linux-uclibc tuples.
# Should probably integrate this into the patch.
touch $(LINUX_HEADERS_DIR)/.unpacked
$(LINUX_HEADERS_DIR)/.patched: $(LINUX_HEADERS_DIR)/.unpacked
- $(SOURCE_DIR)/patch-kernel.sh $(LINUX_HEADERS_DIR) toolchain/kernel-headers linux-libc-headers-$(LINUX_VERSION)-\*.patch
+ toolchain/patch-kernel.sh $(LINUX_HEADERS_DIR) toolchain/kernel-headers linux-libc-headers-$(LINUX_VERSION)-\*.patch
touch $(LINUX_HEADERS_DIR)/.patched
$(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_DIR)/.patched
--- /dev/null
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/addrspace.h linux-libc-headers-2.6.8.0/include/asm-mips/addrspace.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/addrspace.h 2004-03-28 07:51:50.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/addrspace.h 2004-08-26 05:53:12.000000000 -0500
+@@ -10,7 +10,23 @@
+ #ifndef _ASM_ADDRSPACE_H
+ #define _ASM_ADDRSPACE_H
+
+-#include <spaces.h>
++/**********************************************************************/
++/* Include the common bits for #include <spaces.h> */
++#ifndef __mips64
++
++#define CAC_BASE 0x80000000
++#define IO_BASE 0xa0000000
++#define UNCAC_BASE 0xa0000000
++#define MAP_BASE 0xc0000000
++
++/*
++ * This handles the memory map.
++ * We handle pages at KSEG0 for kernels with 32 bit address space.
++ */
++#define PAGE_OFFSET 0x80000000UL
++
++#endif /* ndef __mips64 */
++/**********************************************************************/
+
+ /*
+ * Configure language
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/asmmacro.h linux-libc-headers-2.6.8.0/include/asm-mips/asmmacro.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/asmmacro.h 2004-08-18 13:15:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/asmmacro.h 2004-08-26 05:14:41.000000000 -0500
+@@ -9,10 +9,10 @@
+ #define _ASM_ASMMACRO_H
+
+
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ #include <asm/asmmacro-32.h>
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ #include <asm/asmmacro-64.h>
+ #endif
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/checksum.h linux-libc-headers-2.6.8.0/include/asm-mips/checksum.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/checksum.h 2004-06-23 16:52:45.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/checksum.h 2004-08-26 05:14:41.000000000 -0500
+@@ -125,7 +125,7 @@
+ {
+ __asm__(
+ ".set\tnoat\t\t\t# csum_tcpudp_nofold\n\t"
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ "addu\t%0, %2\n\t"
+ "sltu\t$1, %0, %2\n\t"
+ "addu\t%0, $1\n\t"
+@@ -138,7 +138,7 @@
+ "sltu\t$1, %0, %4\n\t"
+ "addu\t%0, $1\n\t"
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ "daddu\t%0, %2\n\t"
+ "daddu\t%0, %3\n\t"
+ "daddu\t%0, %4\n\t"
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/compat.h linux-libc-headers-2.6.8.0/include/asm-mips/compat.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/compat.h 2003-12-15 12:47:02.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/compat.h 2004-08-26 05:23:05.000000000 -0500
+@@ -8,64 +8,64 @@
+
+ #define COMPAT_USER_HZ 100
+
+-typedef u32 compat_size_t;
+-typedef s32 compat_ssize_t;
+-typedef s32 compat_time_t;
+-typedef s32 compat_clock_t;
+-typedef s32 compat_suseconds_t;
+-
+-typedef s32 compat_pid_t;
+-typedef s32 compat_uid_t;
+-typedef s32 compat_gid_t;
+-typedef u32 compat_mode_t;
+-typedef u32 compat_ino_t;
+-typedef u32 compat_dev_t;
+-typedef s32 compat_off_t;
+-typedef s64 compat_loff_t;
+-typedef u32 compat_nlink_t;
+-typedef s32 compat_ipc_pid_t;
+-typedef s32 compat_daddr_t;
+-typedef s32 compat_caddr_t;
++typedef __u32 compat_size_t;
++typedef __s32 compat_ssize_t;
++typedef __s32 compat_time_t;
++typedef __s32 compat_clock_t;
++typedef __s32 compat_suseconds_t;
++
++typedef __s32 compat_pid_t;
++typedef __s32 compat_uid_t;
++typedef __s32 compat_gid_t;
++typedef __u32 compat_mode_t;
++typedef __u32 compat_ino_t;
++typedef __u32 compat_dev_t;
++typedef __s32 compat_off_t;
++typedef __s64 compat_loff_t;
++typedef __u32 compat_nlink_t;
++typedef __s32 compat_ipc_pid_t;
++typedef __s32 compat_daddr_t;
++typedef __s32 compat_caddr_t;
+ typedef struct {
+- s32 val[2];
++ __s32 val[2];
+ } compat_fsid_t;
+
+-typedef s32 compat_int_t;
+-typedef s32 compat_long_t;
+-typedef u32 compat_uint_t;
+-typedef u32 compat_ulong_t;
++typedef __s32 compat_int_t;
++typedef __s32 compat_long_t;
++typedef __u32 compat_uint_t;
++typedef __u32 compat_ulong_t;
+
+ struct compat_timespec {
+ compat_time_t tv_sec;
+- s32 tv_nsec;
++ __s32 tv_nsec;
+ };
+
+ struct compat_timeval {
+ compat_time_t tv_sec;
+- s32 tv_usec;
++ __s32 tv_usec;
+ };
+
+ struct compat_stat {
+ compat_dev_t st_dev;
+- s32 st_pad1[3];
++ __s32 st_pad1[3];
+ compat_ino_t st_ino;
+ compat_mode_t st_mode;
+ compat_nlink_t st_nlink;
+ compat_uid_t st_uid;
+ compat_gid_t st_gid;
+ compat_dev_t st_rdev;
+- s32 st_pad2[2];
++ __s32 st_pad2[2];
+ compat_off_t st_size;
+- s32 st_pad3;
++ __s32 st_pad3;
+ compat_time_t st_atime;
+- s32 st_atime_nsec;
++ __s32 st_atime_nsec;
+ compat_time_t st_mtime;
+- s32 st_mtime_nsec;
++ __s32 st_mtime_nsec;
+ compat_time_t st_ctime;
+- s32 st_ctime_nsec;
+- s32 st_blksize;
+- s32 st_blocks;
+- s32 st_pad4[14];
++ __s32 st_ctime_nsec;
++ __s32 st_blksize;
++ __s32 st_blocks;
++ __s32 st_pad4[14];
+ };
+
+ struct compat_flock {
+@@ -73,10 +73,10 @@
+ short l_whence;
+ compat_off_t l_start;
+ compat_off_t l_len;
+- s32 l_sysid;
++ __s32 l_sysid;
+ compat_pid_t l_pid;
+ short __unused;
+- s32 pad[4];
++ __s32 pad[4];
+ };
+
+ #define F_GETLK64 33
+@@ -107,12 +107,12 @@
+
+ #define COMPAT_RLIM_INFINITY 0x7fffffffUL
+
+-typedef u32 compat_old_sigset_t; /* at least 32 bits */
++typedef __u32 compat_old_sigset_t; /* at least 32 bits */
+
+ #define _COMPAT_NSIG 128 /* Don't ask !$@#% ... */
+ #define _COMPAT_NSIG_BPW 32
+
+-typedef u32 compat_sigset_word;
++typedef __u32 compat_sigset_word;
+
+ #define COMPAT_OFF_T_MAX 0x7fffffff
+ #define COMPAT_LOFF_T_MAX 0x7fffffffffffffffL
+@@ -123,7 +123,7 @@
+ * as pointers because the syscall entry code will have
+ * appropriately comverted them already.
+ */
+-typedef u32 compat_uptr_t;
++typedef __u32 compat_uptr_t;
+
+ static inline void *compat_ptr(compat_uptr_t uptr)
+ {
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5074.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5074.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5074.h 2003-12-15 12:47:03.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5074.h 2004-08-26 13:21:48.000000000 -0500
+@@ -34,5 +34,5 @@
+ extern void ddb5074_led_d2(int on);
+ extern void ddb5074_led_d3(int on);
+
+-extern void nile4_irq_setup(u32 base);
++extern void nile4_irq_setup(__u32 base);
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5476.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5476.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5476.h 2003-12-15 12:47:03.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5476.h 2004-08-26 05:24:06.000000000 -0500
+@@ -145,13 +145,13 @@
+ extern void nile4_enable_irq(int nile4_irq);
+ extern void nile4_disable_irq(int nile4_irq);
+ extern void nile4_disable_irq_all(void);
+-extern u16 nile4_get_irq_stat(int cpu_irq);
++extern __u16 nile4_get_irq_stat(int cpu_irq);
+ extern void nile4_enable_irq_output(int cpu_irq);
+ extern void nile4_disable_irq_output(int cpu_irq);
+ extern void nile4_set_pci_irq_polarity(int pci_irq, int high);
+ extern void nile4_set_pci_irq_level_or_edge(int pci_irq, int level);
+ extern void nile4_clear_irq(int nile4_irq);
+-extern void nile4_clear_irq_mask(u32 mask);
+-extern u8 nile4_i8259_iack(void);
++extern void nile4_clear_irq_mask(__u32 mask);
++extern __u8 nile4_i8259_iack(void);
+ extern void nile4_dump_irq_status(void); /* Debug */
+ #endif /* !__ASSEMBLY__ */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5xxx.h linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5xxx.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ddb5xxx/ddb5xxx.h 2004-01-17 17:03:47.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/ddb5xxx/ddb5xxx.h 2004-08-26 05:24:01.000000000 -0500
+@@ -177,46 +177,46 @@
+ * interrupt load
+ */
+ #ifndef CONFIG_DDB5074
+- volatile u32 *p = (volatile u32 *)0xbfc00000;
++ volatile __u32 *p = (volatile __u32 *)0xbfc00000;
+ (void)(*p);
+ #endif
+ }
+
+-static inline void ddb_out32(u32 offset, u32 val)
++static inline void ddb_out32(__u32 offset, __u32 val)
+ {
+- *(volatile u32 *)(DDB_BASE+offset) = val;
++ *(volatile __u32 *)(DDB_BASE+offset) = val;
+ ddb_sync();
+ }
+
+-static inline u32 ddb_in32(u32 offset)
++static inline __u32 ddb_in32(__u32 offset)
+ {
+- u32 val = *(volatile u32 *)(DDB_BASE+offset);
++ __u32 val = *(volatile __u32 *)(DDB_BASE+offset);
+ ddb_sync();
+ return val;
+ }
+
+-static inline void ddb_out16(u32 offset, u16 val)
++static inline void ddb_out16(__u32 offset, __u16 val)
+ {
+- *(volatile u16 *)(DDB_BASE+offset) = val;
++ *(volatile __u16 *)(DDB_BASE+offset) = val;
+ ddb_sync();
+ }
+
+-static inline u16 ddb_in16(u32 offset)
++static inline __u16 ddb_in16(__u32 offset)
+ {
+- u16 val = *(volatile u16 *)(DDB_BASE+offset);
++ __u16 val = *(volatile __u16 *)(DDB_BASE+offset);
+ ddb_sync();
+ return val;
+ }
+
+-static inline void ddb_out8(u32 offset, u8 val)
++static inline void ddb_out8(__u32 offset, __u8 val)
+ {
+- *(volatile u8 *)(DDB_BASE+offset) = val;
++ *(volatile __u8 *)(DDB_BASE+offset) = val;
+ ddb_sync();
+ }
+
+-static inline u8 ddb_in8(u32 offset)
++static inline __u8 ddb_in8(__u32 offset)
+ {
+- u8 val = *(volatile u8 *)(DDB_BASE+offset);
++ __u8 val = *(volatile __u8 *)(DDB_BASE+offset);
+ ddb_sync();
+ return val;
+ }
+@@ -226,10 +226,10 @@
+ * Physical Device Address Registers
+ */
+
+-extern u32
+-ddb_calc_pdar(u32 phys, u32 size, int width, int on_memory_bus, int pci_visible);
++extern __u32
++ddb_calc_pdar(__u32 phys, __u32 size, int width, int on_memory_bus, int pci_visible);
+ extern void
+-ddb_set_pdar(u32 pdar, u32 phys, u32 size, int width,
++ddb_set_pdar(__u32 pdar, __u32 phys, __u32 size, int width,
+ int on_memory_bus, int pci_visible);
+
+ /*
+@@ -248,7 +248,7 @@
+ #define DDB_PCI_ACCESS_32 0x10 /* for pci init0/1 regs */
+
+
+-extern void ddb_set_pmr(u32 pmr, u32 type, u32 addr, u32 options);
++extern void ddb_set_pmr(__u32 pmr, __u32 type, __u32 addr, __u32 options);
+
+ /*
+ * we need to reset pci bus when we start up and shutdown
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/ioasic.h linux-libc-headers-2.6.8.0/include/asm-mips/dec/ioasic.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/ioasic.h 2004-01-17 17:03:47.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/dec/ioasic.h 2004-08-26 05:25:44.000000000 -0500
+@@ -18,14 +18,14 @@
+
+ extern spinlock_t ioasic_ssr_lock;
+
+-extern volatile u32 *ioasic_base;
++extern volatile __u32 *ioasic_base;
+
+-static inline void ioasic_write(unsigned int reg, u32 v)
++static inline void ioasic_write(unsigned int reg, __u32 v)
+ {
+ ioasic_base[reg / 4] = v;
+ }
+
+-static inline u32 ioasic_read(unsigned int reg)
++static inline __u32 ioasic_read(unsigned int reg)
+ {
+ return ioasic_base[reg / 4];
+ }
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/kn02.h linux-libc-headers-2.6.8.0/include/asm-mips/dec/kn02.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/dec/kn02.h 2004-01-17 17:03:47.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/dec/kn02.h 2004-08-26 05:25:47.000000000 -0500
+@@ -97,7 +97,7 @@
+
+
+ #ifndef __ASSEMBLY__
+-extern u32 cached_kn02_csr;
++extern __u32 cached_kn02_csr;
+ extern spinlock_t kn02_lock;
+ extern void init_kn02_irqs(int base);
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/elf.h linux-libc-headers-2.6.8.0/include/asm-mips/elf.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/elf.h 2004-03-28 07:51:51.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/elf.h 2004-08-26 05:17:25.000000000 -0500
+@@ -122,7 +122,7 @@
+ typedef double elf_fpreg_t;
+ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+
+ /*
+ * This is used to ensure we don't load something for the wrong architecture.
+@@ -150,9 +150,9 @@
+ */
+ #define ELF_CLASS ELFCLASS32
+
+-#endif /* CONFIG_MIPS32 */
++#endif /* ndef __mips64 */
+
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ /*
+ * This is used to ensure we don't load something for the wrong architecture.
+ */
+@@ -174,7 +174,7 @@
+ */
+ #define ELF_CLASS ELFCLASS64
+
+-#endif /* CONFIG_MIPS64 */
++#endif /* __mips64 */
+
+ /*
+ * These are used to set parameters in the core dumps.
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/ev96100.h linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/ev96100.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/ev96100.h 2004-03-28 07:51:53.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/ev96100.h 2004-08-26 05:23:12.000000000 -0500
+@@ -46,9 +46,9 @@
+ * bytes when running bigendian.
+ */
+ #define __GT_READ(ofs) \
+- (*(volatile u32 *)(GT64120_BASE+(ofs)))
++ (*(volatile __u32 *)(GT64120_BASE+(ofs)))
+ #define __GT_WRITE(ofs, data) \
+- do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
++ do { *(volatile __u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
+ #define GT_READ(ofs) le32_to_cpu(__GT_READ(ofs))
+ #define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/gt96100.h linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/gt96100.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/galileo-boards/gt96100.h 2004-03-28 07:51:53.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/galileo-boards/gt96100.h 2004-08-26 05:23:17.000000000 -0500
+@@ -27,9 +27,9 @@
+ #define MIPS_GT96100_BASE (KSEG1ADDR(0x14000000))
+
+ #define GT96100_WRITE(ofs, data) \
+- *(volatile u32 *)(MIPS_GT96100_BASE+ofs) = cpu_to_le32(data)
++ *(volatile __u32 *)(MIPS_GT96100_BASE+ofs) = cpu_to_le32(data)
+ #define GT96100_READ(ofs) \
+- le32_to_cpu(*(volatile u32 *)(MIPS_GT96100_BASE+ofs))
++ le32_to_cpu(*(volatile __u32 *)(MIPS_GT96100_BASE+ofs))
+
+ #define GT96100_ETH_IO_SIZE 0x4000
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/gt64120.h linux-libc-headers-2.6.8.0/include/asm-mips/gt64120.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/gt64120.h 2004-03-28 07:51:51.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/gt64120.h 2004-08-26 05:22:36.000000000 -0500
+@@ -420,9 +420,9 @@
+ * bytes when running bigendian. We also provide non-swapping versions.
+ */
+ #define __GT_READ(ofs) \
+- (*(volatile u32 *)(GT64120_BASE+(ofs)))
++ (*(volatile __u32 *)(GT64120_BASE+(ofs)))
+ #define __GT_WRITE(ofs, data) \
+- do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
++ do { *(volatile __u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
+ #define GT_READ(ofs) le32_to_cpu(__GT_READ(ofs))
+ #define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/io.h linux-libc-headers-2.6.8.0/include/asm-mips/io.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/io.h 2004-03-28 07:51:51.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/io.h 2004-08-26 05:24:16.000000000 -0500
+@@ -173,14 +173,14 @@
+ unsigned long flags)
+ {
+ if (cpu_has_64bit_addresses) {
+- u64 base = UNCAC_BASE;
++ __u64 base = UNCAC_BASE;
+
+ /*
+ * R10000 supports a 2 bit uncached attribute therefore
+ * UNCAC_BASE may not equal IO_BASE.
+ */
+ if (flags == _CACHE_UNCACHED)
+- base = (u64) IO_BASE;
++ base = (__u64) IO_BASE;
+ return (void *) (unsigned long) (base + offset);
+ }
+
+@@ -245,10 +245,10 @@
+ #define __raw_readb(addr) (*(volatile unsigned char *)(addr))
+ #define __raw_readw(addr) (*(volatile unsigned short *)(addr))
+ #define __raw_readl(addr) (*(volatile unsigned int *)(addr))
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ #define ____raw_readq(addr) \
+ ({ \
+- u64 __res; \
++ __u64 __res; \
+ \
+ __asm__ __volatile__ ( \
+ " .set mips3 # ____raw_readq \n" \
+@@ -263,7 +263,7 @@
+ #define __raw_readq(addr) \
+ ({ \
+ unsigned long __flags; \
+- u64 __res; \
++ __u64 __res; \
+ \
+ local_irq_save(__flags); \
+ __res = ____raw_readq(addr); \
+@@ -271,7 +271,7 @@
+ __res; \
+ })
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ #define ____raw_readq(addr) (*(volatile unsigned long *)(addr))
+ #define __raw_readq(addr) ____raw_readq(addr)
+ #endif
+@@ -288,10 +288,10 @@
+ #define __raw_writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (b))
+ #define __raw_writew(w,addr) ((*(volatile unsigned short *)(addr)) = (w))
+ #define __raw_writel(l,addr) ((*(volatile unsigned int *)(addr)) = (l))
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ #define ____raw_writeq(val,addr) \
+ ({ \
+- u64 __tmp; \
++ __u64 __tmp; \
+ \
+ __asm__ __volatile__ ( \
+ " .set mips3 \n" \
+@@ -313,7 +313,7 @@
+ local_irq_restore(__flags); \
+ })
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ #define ____raw_writeq(q,addr) ((*(volatile unsigned long *)(addr)) = (q))
+ #define __raw_writeq(q,addr) ____raw_writeq(q, addr)
+ #endif
+@@ -400,28 +400,28 @@
+ {
+ port = __swizzle_addr_b(port);
+
+- *(volatile u8 *)(mips_io_port_base + port) = __ioswab8(val);
++ *(volatile __u8 *)(mips_io_port_base + port) = __ioswab8(val);
+ }
+
+ static inline void __outw(unsigned short val, unsigned long port)
+ {
+ port = __swizzle_addr_w(port);
+
+- *(volatile u16 *)(mips_io_port_base + port) = __ioswab16(val);
++ *(volatile __u16 *)(mips_io_port_base + port) = __ioswab16(val);
+ }
+
+ static inline void __outl(unsigned int val, unsigned long port)
+ {
+ port = __swizzle_addr_l(port);
+
+- *(volatile u32 *)(mips_io_port_base + port) = __ioswab32(val);
++ *(volatile __u32 *)(mips_io_port_base + port) = __ioswab32(val);
+ }
+
+ static inline void __outb_p(unsigned char val, unsigned long port)
+ {
+ port = __swizzle_addr_b(port);
+
+- *(volatile u8 *)(mips_io_port_base + port) = __ioswab8(val);
++ *(volatile __u8 *)(mips_io_port_base + port) = __ioswab8(val);
+ SLOW_DOWN_IO;
+ }
+
+@@ -429,7 +429,7 @@
+ {
+ port = __swizzle_addr_w(port);
+
+- *(volatile u16 *)(mips_io_port_base + port) = __ioswab16(val);
++ *(volatile __u16 *)(mips_io_port_base + port) = __ioswab16(val);
+ SLOW_DOWN_IO;
+ }
+
+@@ -437,7 +437,7 @@
+ {
+ port = __swizzle_addr_l(port);
+
+- *(volatile u32 *)(mips_io_port_base + port) = __ioswab32(val);
++ *(volatile __u32 *)(mips_io_port_base + port) = __ioswab32(val);
+ SLOW_DOWN_IO;
+ }
+
+@@ -452,30 +452,30 @@
+ {
+ port = __swizzle_addr_b(port);
+
+- return __ioswab8(*(volatile u8 *)(mips_io_port_base + port));
++ return __ioswab8(*(volatile __u8 *)(mips_io_port_base + port));
+ }
+
+ static inline unsigned short __inw(unsigned long port)
+ {
+ port = __swizzle_addr_w(port);
+
+- return __ioswab16(*(volatile u16 *)(mips_io_port_base + port));
++ return __ioswab16(*(volatile __u16 *)(mips_io_port_base + port));
+ }
+
+ static inline unsigned int __inl(unsigned long port)
+ {
+ port = __swizzle_addr_l(port);
+
+- return __ioswab32(*(volatile u32 *)(mips_io_port_base + port));
++ return __ioswab32(*(volatile __u32 *)(mips_io_port_base + port));
+ }
+
+ static inline unsigned char __inb_p(unsigned long port)
+ {
+- u8 __val;
++ __u8 __val;
+
+ port = __swizzle_addr_b(port);
+
+- __val = *(volatile u8 *)(mips_io_port_base + port);
++ __val = *(volatile __u8 *)(mips_io_port_base + port);
+ SLOW_DOWN_IO;
+
+ return __ioswab8(__val);
+@@ -483,11 +483,11 @@
+
+ static inline unsigned short __inw_p(unsigned long port)
+ {
+- u16 __val;
++ __u16 __val;
+
+ port = __swizzle_addr_w(port);
+
+- __val = *(volatile u16 *)(mips_io_port_base + port);
++ __val = *(volatile __u16 *)(mips_io_port_base + port);
+ SLOW_DOWN_IO;
+
+ return __ioswab16(__val);
+@@ -495,11 +495,11 @@
+
+ static inline unsigned int __inl_p(unsigned long port)
+ {
+- u32 __val;
++ __u32 __val;
+
+ port = __swizzle_addr_l(port);
+
+- __val = *(volatile u32 *)(mips_io_port_base + port);
++ __val = *(volatile __u32 *)(mips_io_port_base + port);
+ SLOW_DOWN_IO;
+
+ return __ioswab32(__val);
+@@ -515,7 +515,7 @@
+ static inline void __outsb(unsigned long port, void *addr, unsigned int count)
+ {
+ while (count--) {
+- outb(*(u8 *)addr, port);
++ outb(*(__u8 *)addr, port);
+ addr++;
+ }
+ }
+@@ -523,7 +523,7 @@
+ static inline void __insb(unsigned long port, void *addr, unsigned int count)
+ {
+ while (count--) {
+- *(u8 *)addr = inb(port);
++ *(__u8 *)addr = inb(port);
+ addr++;
+ }
+ }
+@@ -531,7 +531,7 @@
+ static inline void __outsw(unsigned long port, void *addr, unsigned int count)
+ {
+ while (count--) {
+- outw(*(u16 *)addr, port);
++ outw(*(__u16 *)addr, port);
+ addr += 2;
+ }
+ }
+@@ -539,7 +539,7 @@
+ static inline void __insw(unsigned long port, void *addr, unsigned int count)
+ {
+ while (count--) {
+- *(u16 *)addr = inw(port);
++ *(__u16 *)addr = inw(port);
+ addr += 2;
+ }
+ }
+@@ -547,7 +547,7 @@
+ static inline void __outsl(unsigned long port, void *addr, unsigned int count)
+ {
+ while (count--) {
+- outl(*(u32 *)addr, port);
++ outl(*(__u32 *)addr, port);
+ addr += 4;
+ }
+ }
+@@ -555,7 +555,7 @@
+ static inline void __insl(unsigned long port, void *addr, unsigned int count)
+ {
+ while (count--) {
+- *(u32 *)addr = inl(port);
++ *(__u32 *)addr = inl(port);
+ addr += 4;
+ }
+ }
+@@ -617,7 +617,7 @@
+ #define __CSR_32_ADJUST 0
+ #endif
+
+-#define csr_out32(v,a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
+-#define csr_in32(a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
++#define csr_out32(v,a) (*(volatile __u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
++#define csr_in32(a) (*(volatile __u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
+
+ #endif /* _ASM_IO_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ip32/mace.h linux-libc-headers-2.6.8.0/include/asm-mips/ip32/mace.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ip32/mace.h 2004-06-09 07:00:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/ip32/mace.h 2004-08-26 05:14:41.000000000 -0500
+@@ -22,7 +22,7 @@
+ #undef BIT
+ #define BIT(x) (1ULL << (x))
+
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ typedef struct {
+ volatile unsigned long long reg;
+ } mace64_t;
+@@ -32,7 +32,7 @@
+ volatile unsigned long reg;
+ } mace32_t;
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ typedef struct {
+ volatile unsigned long reg;
+ } mace64_t;
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/it8172/it8172.h linux-libc-headers-2.6.8.0/include/asm-mips/it8172/it8172.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/it8172/it8172.h 2003-12-15 12:47:03.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/it8172/it8172.h 2004-08-26 05:22:54.000000000 -0500
+@@ -336,13 +336,13 @@
+ #define TIMER_TIDR 0x0E
+
+
+-#define IT_WRITE(ofs, data) *(volatile u32 *)KSEG1ADDR((IT8172_BASE+ofs)) = data
+-#define IT_READ(ofs, data) data = *(volatile u32 *)KSEG1ADDR((IT8172_BASE+ofs))
++#define IT_WRITE(ofs, data) *(volatile __u32 *)KSEG1ADDR((IT8172_BASE+ofs)) = data
++#define IT_READ(ofs, data) data = *(volatile __u32 *)KSEG1ADDR((IT8172_BASE+ofs))
+
+-#define IT_IO_WRITE(ofs, data) *(volatile u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
+-#define IT_IO_READ(ofs, data) data = *(volatile u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
++#define IT_IO_WRITE(ofs, data) *(volatile __u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
++#define IT_IO_READ(ofs, data) data = *(volatile __u32 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
+
+-#define IT_IO_WRITE16(ofs, data) *(volatile u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
+-#define IT_IO_READ16(ofs, data) data = *(volatile u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
++#define IT_IO_WRITE16(ofs, data) *(volatile __u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs)) = data
++#define IT_IO_READ16(ofs, data) data = *(volatile __u16 *)KSEG1ADDR((IT8172_PCI_IO_BASE+ofs))
+
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/head.h linux-libc-headers-2.6.8.0/include/asm-mips/lasat/head.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/head.h 2003-12-15 12:47:03.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/lasat/head.h 2004-08-26 05:23:42.000000000 -0500
+@@ -10,12 +10,12 @@
+ #ifndef _LANGUAGE_ASSEMBLY
+ #include <linux/types.h>
+ struct bootloader_header {
+- u32 magic[2];
+- u32 version;
+- u32 image_start;
+- u32 image_size;
+- u32 kernel_start;
+- u32 kernel_entry;
++ __u32 magic[2];
++ __u32 version;
++ __u32 image_start;
++ __u32 image_size;
++ __u32 kernel_start;
++ __u32 kernel_entry;
+ };
+ #endif
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/lasat.h linux-libc-headers-2.6.8.0/include/asm-mips/lasat/lasat.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/lasat/lasat.h 2004-06-09 07:00:42.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/lasat/lasat.h 2004-08-26 05:23:50.000000000 -0500
+@@ -25,9 +25,9 @@
+ #ifndef _LANGUAGE_ASSEMBLY
+
+ extern struct lasat_misc {
+- volatile u32 *reset_reg;
+- volatile u32 *flash_wp_reg;
+- u32 flash_wp_bit;
++ volatile __u32 *reset_reg;
++ volatile __u32 *flash_wp_reg;
++ __u32 flash_wp_bit;
+ } *lasat_misc;
+
+ enum lasat_mtdparts {
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/m48t35.h linux-libc-headers-2.6.8.0/include/asm-mips/m48t35.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/m48t35.h 2004-01-17 17:03:44.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/m48t35.h 2004-08-26 05:23:39.000000000 -0500
+@@ -8,15 +8,15 @@
+ extern spinlock_t rtc_lock;
+
+ struct m48t35_rtc {
+- volatile u8 pad[0x7ff8]; /* starts at 0x7ff8 */
+- volatile u8 control;
+- volatile u8 sec;
+- volatile u8 min;
+- volatile u8 hour;
+- volatile u8 day;
+- volatile u8 date;
+- volatile u8 month;
+- volatile u8 year;
++ volatile __u8 pad[0x7ff8]; /* starts at 0x7ff8 */
++ volatile __u8 control;
++ volatile __u8 sec;
++ volatile __u8 min;
++ volatile __u8 hour;
++ volatile __u8 day;
++ volatile __u8 date;
++ volatile __u8 month;
++ volatile __u8 year;
+ };
+
+ #define M48T35_RTC_SET 0x80
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/bonito64.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/bonito64.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/bonito64.h 2004-03-28 07:51:54.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/bonito64.h 2004-08-26 05:21:59.000000000 -0500
+@@ -34,7 +34,7 @@
+ extern unsigned long _pcictrl_bonito;
+ extern unsigned long _pcictrl_bonito_pcicfg;
+
+-#define BONITO(x) *(volatile u32 *)(_pcictrl_bonito + (x))
++#define BONITO(x) *(volatile __u32 *)(_pcictrl_bonito + (x))
+
+ #endif /* __ASSEMBLY__ */
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/generic.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/generic.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/generic.h 2004-03-28 07:51:54.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/generic.h 2004-08-26 05:22:06.000000000 -0500
+@@ -74,7 +74,7 @@
+ #define MIPS_REVISION_CORID_CORE_EMUL_BON 0x63
+ #define MIPS_REVISION_CORID_CORE_EMUL_MSC 0x65
+
+-#define MIPS_REVISION_CORID (((*(volatile u32 *)ioremap(MIPS_REVISION_REG, 4)) >> 10) & 0x3f)
++#define MIPS_REVISION_CORID (((*(volatile __u32 *)ioremap(MIPS_REVISION_REG, 4)) >> 10) & 0x3f)
+
+ extern unsigned int mips_revision_corid;
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/msc01_pci.h linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/msc01_pci.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mips-boards/msc01_pci.h 2004-03-28 07:51:54.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/mips-boards/msc01_pci.h 2004-08-26 05:22:10.000000000 -0500
+@@ -212,8 +212,8 @@
+
+ #define MSC01_PCI_REG_BASE _pcictrl_msc
+
+-#define MSC_WRITE(reg, data) do { *(volatile u32 *)(reg) = data; } while (0)
+-#define MSC_READ(reg, data) do { data = *(volatile u32 *)(reg); } while (0)
++#define MSC_WRITE(reg, data) do { *(volatile __u32 *)(reg) = data; } while (0)
++#define MSC_READ(reg, data) do { data = *(volatile __u32 *)(reg); } while (0)
+
+ /*
+ * Registers absolute addresses
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mipsregs.h linux-libc-headers-2.6.8.0/include/asm-mips/mipsregs.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mipsregs.h 2004-08-18 13:15:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/mipsregs.h 2004-08-26 13:00:51.000000000 -0500
+@@ -14,7 +14,6 @@
+ #define _ASM_MIPSREGS_H
+
+ #include <linux/linkage.h>
+-#include <asm/hazards.h>
+
+ /*
+ * The following macros are especially useful for __asm__
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/mmu_context.h linux-libc-headers-2.6.8.0/include/asm-mips/mmu_context.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/mmu_context.h 2004-08-18 13:15:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/mmu_context.h 2004-08-26 05:14:41.000000000 -0500
+@@ -27,12 +27,12 @@
+ */
+ #define TLBMISS_HANDLER_SETUP_PGD(pgd) \
+ pgd_current[smp_processor_id()] = (unsigned long)(pgd)
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ #define TLBMISS_HANDLER_SETUP() \
+ write_c0_context((unsigned long) smp_processor_id() << 23); \
+ TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ #define TLBMISS_HANDLER_SETUP() \
+ write_c0_context((unsigned long) &pgd_current[smp_processor_id()] << 23); \
+ TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/module.h linux-libc-headers-2.6.8.0/include/asm-mips/module.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/module.h 2004-08-18 13:15:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/module.h 2004-08-26 05:14:41.000000000 -0500
+@@ -21,7 +21,7 @@
+ Elf64_Sxword r_addend; /* Addend. */
+ } Elf64_Mips_Rela;
+
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+
+ #define Elf_Shdr Elf32_Shdr
+ #define Elf_Sym Elf32_Sym
+@@ -29,7 +29,7 @@
+
+ #endif
+
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+
+ #define Elf_Shdr Elf64_Shdr
+ #define Elf_Sym Elf64_Sym
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/msgbuf.h linux-libc-headers-2.6.8.0/include/asm-mips/msgbuf.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/msgbuf.h 2004-01-17 17:03:44.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/msgbuf.h 2004-08-26 05:15:04.000000000 -0500
+@@ -14,25 +14,25 @@
+
+ struct msqid64_ds {
+ struct ipc64_perm msg_perm;
+-#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
++#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
+ unsigned long __unused1;
+ #endif
+ __kernel_time_t msg_stime; /* last msgsnd time */
+-#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
++#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
+ unsigned long __unused1;
+ #endif
+-#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
++#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
+ unsigned long __unused2;
+ #endif
+ __kernel_time_t msg_rtime; /* last msgrcv time */
+-#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
++#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
+ unsigned long __unused2;
+ #endif
+-#if defined(CONFIG_MIPS32) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
++#if !defined(__mips64) && !defined(CONFIG_CPU_LITTLE_ENDIAN)
+ unsigned long __unused3;
+ #endif
+ __kernel_time_t msg_ctime; /* last change time */
+-#if defined(CONFIG_MIPS32) && defined(CONFIG_CPU_LITTLE_ENDIAN)
++#if !defined(__mips64) && defined(CONFIG_CPU_LITTLE_ENDIAN)
+ unsigned long __unused3;
+ #endif
+ unsigned long msg_cbytes; /* current number of bytes on queue */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/nile4.h linux-libc-headers-2.6.8.0/include/asm-mips/nile4.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/nile4.h 2003-12-15 12:47:02.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/nile4.h 2004-08-26 05:22:46.000000000 -0500
+@@ -202,45 +202,45 @@
+
+ static inline void nile4_sync(void)
+ {
+- volatile u32 *p = (volatile u32 *)0xbfc00000;
++ volatile __u32 *p = (volatile __u32 *)0xbfc00000;
+ (void)(*p);
+ }
+
+-static inline void nile4_out32(u32 offset, u32 val)
++static inline void nile4_out32(__u32 offset, __u32 val)
+ {
+- *(volatile u32 *)(NILE4_BASE+offset) = val;
++ *(volatile __u32 *)(NILE4_BASE+offset) = val;
+ nile4_sync();
+ }
+
+-static inline u32 nile4_in32(u32 offset)
++static inline __u32 nile4_in32(__u32 offset)
+ {
+- u32 val = *(volatile u32 *)(NILE4_BASE+offset);
++ __u32 val = *(volatile __u32 *)(NILE4_BASE+offset);
+ nile4_sync();
+ return val;
+ }
+
+-static inline void nile4_out16(u32 offset, u16 val)
++static inline void nile4_out16(__u32 offset, __u16 val)
+ {
+- *(volatile u16 *)(NILE4_BASE+offset) = val;
++ *(volatile __u16 *)(NILE4_BASE+offset) = val;
+ nile4_sync();
+ }
+
+-static inline u16 nile4_in16(u32 offset)
++static inline __u16 nile4_in16(__u32 offset)
+ {
+- u16 val = *(volatile u16 *)(NILE4_BASE+offset);
++ __u16 val = *(volatile __u16 *)(NILE4_BASE+offset);
+ nile4_sync();
+ return val;
+ }
+
+-static inline void nile4_out8(u32 offset, u8 val)
++static inline void nile4_out8(__u32 offset, __u8 val)
+ {
+- *(volatile u8 *)(NILE4_BASE+offset) = val;
++ *(volatile __u8 *)(NILE4_BASE+offset) = val;
+ nile4_sync();
+ }
+
+-static inline u8 nile4_in8(u32 offset)
++static inline __u8 nile4_in8(__u32 offset)
+ {
+- u8 val = *(volatile u8 *)(NILE4_BASE+offset);
++ __u8 val = *(volatile __u8 *)(NILE4_BASE+offset);
+ nile4_sync();
+ return val;
+ }
+@@ -250,7 +250,7 @@
+ * Physical Device Address Registers
+ */
+
+-extern void nile4_set_pdar(u32 pdar, u32 phys, u32 size, int width,
++extern void nile4_set_pdar(__u32 pdar, __u32 phys, __u32 size, int width,
+ int on_memory_bus, int visible);
+
+
+@@ -276,7 +276,7 @@
+ #define NILE4_PCI_IACK_BASE NILE4_PCI_IO_BASE
+
+
+-extern void nile4_set_pmr(u32 pmr, u32 type, u32 addr);
++extern void nile4_set_pmr(__u32 pmr, __u32 type, __u32 addr);
+
+
+ /*
+@@ -296,14 +296,14 @@
+ extern void nile4_enable_irq(unsigned int nile4_irq);
+ extern void nile4_disable_irq(unsigned int nile4_irq);
+ extern void nile4_disable_irq_all(void);
+-extern u16 nile4_get_irq_stat(int cpu_irq);
++extern __u16 nile4_get_irq_stat(int cpu_irq);
+ extern void nile4_enable_irq_output(int cpu_irq);
+ extern void nile4_disable_irq_output(int cpu_irq);
+ extern void nile4_set_pci_irq_polarity(int pci_irq, int high);
+ extern void nile4_set_pci_irq_level_or_edge(int pci_irq, int level);
+ extern void nile4_clear_irq(int nile4_irq);
+-extern void nile4_clear_irq_mask(u32 mask);
+-extern u8 nile4_i8259_iack(void);
++extern void nile4_clear_irq_mask(__u32 mask);
++extern __u8 nile4_i8259_iack(void);
+ extern void nile4_dump_irq_status(void); /* Debug */
+
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/paccess.h linux-libc-headers-2.6.8.0/include/asm-mips/paccess.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/paccess.h 2004-01-17 17:03:44.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/paccess.h 2004-08-26 05:17:48.000000000 -0500
+@@ -14,11 +14,12 @@
+ #define _ASM_PACCESS_H
+
+ #include <linux/errno.h>
++#include <linux/linkage.h>
+
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ #define __PA_ADDR ".word"
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ #define __PA_ADDR ".dword"
+ #endif
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci/bridge.h linux-libc-headers-2.6.8.0/include/asm-mips/pci/bridge.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci/bridge.h 2004-03-28 07:51:54.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/pci/bridge.h 2004-08-26 05:25:40.000000000 -0500
+@@ -48,9 +48,9 @@
+ * All accesses to bridge hardware registers must be done
+ * using 32-bit loads and stores.
+ */
+-typedef u32 bridgereg_t;
++typedef __u32 bridgereg_t;
+
+-typedef u64 bridge_ate_t;
++typedef __u64 bridge_ate_t;
+
+ /* pointers to bridge ATEs
+ * are always "pointer to volatile"
+@@ -199,37 +199,37 @@
+
+ /* PCI Device Configuration Spaces 0x020000-0x027FFF */
+ union { /* make all access sizes available. */
+- u8 c[0x1000 / 1];
+- u16 s[0x1000 / 2];
+- u32 l[0x1000 / 4];
+- u64 d[0x1000 / 8];
++ __u8 c[0x1000 / 1];
++ __u16 s[0x1000 / 2];
++ __u32 l[0x1000 / 4];
++ __u64 d[0x1000 / 8];
+ union {
+- u8 c[0x100 / 1];
+- u16 s[0x100 / 2];
+- u32 l[0x100 / 4];
+- u64 d[0x100 / 8];
++ __u8 c[0x100 / 1];
++ __u16 s[0x100 / 2];
++ __u32 l[0x100 / 4];
++ __u64 d[0x100 / 8];
+ } f[8];
+ } b_type0_cfg_dev[8]; /* 0x020000 */
+
+ /* PCI Type 1 Configuration Space 0x028000-0x028FFF */
+ union { /* make all access sizes available. */
+- u8 c[0x1000 / 1];
+- u16 s[0x1000 / 2];
+- u32 l[0x1000 / 4];
+- u64 d[0x1000 / 8];
++ __u8 c[0x1000 / 1];
++ __u16 s[0x1000 / 2];
++ __u32 l[0x1000 / 4];
++ __u64 d[0x1000 / 8];
+ } b_type1_cfg; /* 0x028000-0x029000 */
+
+ char _pad_029000[0x007000]; /* 0x029000-0x030000 */
+
+ /* PCI Interrupt Acknowledge Cycle 0x030000 */
+ union {
+- u8 c[8 / 1];
+- u16 s[8 / 2];
+- u32 l[8 / 4];
+- u64 d[8 / 8];
++ __u8 c[8 / 1];
++ __u16 s[8 / 2];
++ __u32 l[8 / 4];
++ __u64 d[8 / 8];
+ } b_pci_iack; /* 0x030000 */
+
+- u8 _pad_030007[0x04fff8]; /* 0x030008-0x07FFFF */
++ __u8 _pad_030007[0x04fff8]; /* 0x030008-0x07FFFF */
+
+ /* External Address Translation Entry RAM 0x080000-0x0FFFFF */
+ bridge_ate_t b_ext_ate_ram[0x10000];
+@@ -239,10 +239,10 @@
+
+ /* PCI/GIO Device Spaces 0x200000-0xBFFFFF */
+ union { /* make all access sizes available. */
+- u8 c[0x100000 / 1];
+- u16 s[0x100000 / 2];
+- u32 l[0x100000 / 4];
+- u64 d[0x100000 / 8];
++ __u8 c[0x100000 / 1];
++ __u16 s[0x100000 / 2];
++ __u32 l[0x100000 / 4];
++ __u64 d[0x100000 / 8];
+ } b_devio_raw[10]; /* 0x200000 */
+
+ /* b_devio macro is a bit strange; it reflects the
+@@ -253,10 +253,10 @@
+
+ /* External Flash Proms 1,0 0xC00000-0xFFFFFF */
+ union { /* make all access sizes available. */
+- u8 c[0x400000 / 1]; /* read-only */
+- u16 s[0x400000 / 2]; /* read-write */
+- u32 l[0x400000 / 4]; /* read-only */
+- u64 d[0x400000 / 8]; /* read-only */
++ __u8 c[0x400000 / 1]; /* read-only */
++ __u16 s[0x400000 / 2]; /* read-write */
++ __u32 l[0x400000 / 4]; /* read-only */
++ __u64 d[0x400000 / 8]; /* read-only */
+ } b_external_flash; /* 0xC00000 */
+ } bridge_t;
+
+@@ -266,9 +266,9 @@
+ */
+ typedef struct bridge_err_cmdword_s {
+ union {
+- u32 cmd_word;
++ __u32 cmd_word;
+ struct {
+- u32 didn:4, /* Destination ID */
++ __u32 didn:4, /* Destination ID */
+ sidn:4, /* Source ID */
+ pactyp:4, /* Packet type */
+ tnum:5, /* Trans Number */
+@@ -799,17 +799,17 @@
+ #ifndef __ASSEMBLY__
+ /* Address translation entry for mapped pci32 accesses */
+ typedef union ate_u {
+- u64 ent;
++ __u64 ent;
+ struct ate_s {
+- u64 rmf:16;
+- u64 addr:36;
+- u64 targ:4;
+- u64 reserved:3;
+- u64 barrier:1;
+- u64 prefetch:1;
+- u64 precise:1;
+- u64 coherent:1;
+- u64 valid:1;
++ __u64 rmf:16;
++ __u64 addr:36;
++ __u64 targ:4;
++ __u64 reserved:3;
++ __u64 barrier:1;
++ __u64 prefetch:1;
++ __u64 precise:1;
++ __u64 coherent:1;
++ __u64 valid:1;
+ } field;
+ } ate_t;
+ #endif /* !__ASSEMBLY__ */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci_channel.h linux-libc-headers-2.6.8.0/include/asm-mips/pci_channel.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pci_channel.h 2004-03-28 07:51:52.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/pci_channel.h 2004-08-26 05:21:47.000000000 -0500
+@@ -41,6 +41,6 @@
+ /*
+ * board supplied pci irq fixup routine
+ */
+-extern int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin);
++extern int pcibios_map_irq(struct pci_dev *dev, __u8 slot, __u8 pin);
+
+ #endif /* __ASM_PCI_CHANNEL_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/pgalloc.h linux-libc-headers-2.6.8.0/include/asm-mips/pgalloc.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/pgalloc.h 2004-06-09 07:00:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/pgalloc.h 2004-08-26 05:14:41.000000000 -0500
+@@ -85,7 +85,7 @@
+
+ #define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte))
+
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ #define pgd_populate(mm, pmd, pte) BUG()
+
+ /*
+@@ -97,7 +97,7 @@
+ #define __pmd_free_tlb(tlb,x) do { } while (0)
+ #endif
+
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+
+ #define pgd_populate(mm, pgd, pmd) set_pgd(pgd, __pgd(pmd))
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/prctl.h linux-libc-headers-2.6.8.0/include/asm-mips/prctl.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/prctl.h 2003-12-15 12:47:02.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/prctl.h 2004-08-26 05:21:43.000000000 -0500
+@@ -12,21 +12,21 @@
+ #define PRDA ((struct prda *) PRDA_ADDRESS)
+
+ struct prda_sys {
+- pid_t t_pid;
+- u32 t_hint;
+- u32 t_dlactseq;
+- u32 t_fpflags;
+- u32 t_prid; /* processor type, $prid CP0 register */
+- u32 t_dlendseq;
+- u64 t_unused1[5];
+- pid_t t_rpid;
+- s32 t_resched;
+- u32 t_unused[8];
+- u32 t_cpu; /* current/last cpu */
++ pid_t t_pid;
++ __u32 t_hint;
++ __u32 t_dlactseq;
++ __u32 t_fpflags;
++ __u32 t_prid; /* processor type, $prid CP0 register */
++ __u32 t_dlendseq;
++ __u64 t_unused1[5];
++ pid_t t_rpid;
++ __s32 t_resched;
++ __u32 t_unused[8];
++ __u32 t_cpu; /* current/last cpu */
+
+ /* FIXME: The signal information, not supported by Linux now */
+- u32 t_flags; /* if true, then the sigprocmask is in userspace */
+- u32 t_sigprocmask [1]; /* the sigprocmask */
++ __u32 t_flags; /* if true, then the sigprocmask is in userspace */
++ __u32 t_sigprocmask [1]; /* the sigprocmask */
+ };
+
+ struct prda {
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/processor.h linux-libc-headers-2.6.8.0/include/asm-mips/processor.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/processor.h 2004-08-18 13:15:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/processor.h 2004-08-26 05:23:24.000000000 -0500
+@@ -102,7 +102,7 @@
+ #define MCA_bus 0
+ #define MCA_bus__is_a_macro /* for versions in ksyms.c */
+
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ /*
+ * User space process size: 2GB. This is hardcoded into a few places,
+ * so don't change it unless you know what you are doing.
+@@ -116,7 +116,7 @@
+ #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
+ #endif
+
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ /*
+ * User space process size: 1TB. This is hardcoded into a few places,
+ * so don't change it unless you know what you are doing. TASK_SIZE
+@@ -142,7 +142,7 @@
+
+ #define NUM_FPU_REGS 32
+
+-typedef u64 fpureg_t;
++typedef __u64 fpureg_t;
+
+ struct mips_fpu_hard_struct {
+ fpureg_t fpr[NUM_FPU_REGS];
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/ptrace.h linux-libc-headers-2.6.8.0/include/asm-mips/ptrace.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/ptrace.h 2004-03-28 07:51:52.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/ptrace.h 2004-08-26 05:14:41.000000000 -0500
+@@ -27,7 +27,7 @@
+ * system call/exception. As usual the registers k0/k1 aren't being saved.
+ */
+ struct pt_regs {
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ /* Pad bytes for argument save space on the stack. */
+ unsigned long pad0[6];
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/serial.h linux-libc-headers-2.6.8.0/include/asm-mips/serial.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/serial.h 2004-08-18 13:15:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/serial.h 2004-08-26 13:21:37.000000000 -0500
+@@ -68,7 +68,7 @@
+
+ #define _JAZZ_SERIAL_INIT(int, base) \
+ { .baud_base = JAZZ_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS, \
+- .iomem_base = (u8 *) base, .iomem_reg_shift = 0, \
++ .iomem_base = (__u8 *) base, .iomem_reg_shift = 0, \
+ .io_type = SERIAL_IO_MEM }
+ #define JAZZ_SERIAL_PORT_DEFNS \
+ _JAZZ_SERIAL_INIT(JAZZ_SERIAL1_IRQ, JAZZ_SERIAL1_BASE), \
+@@ -243,7 +243,7 @@
+ #define _JAGUAR_ATX_SERIAL_INIT(int, base) \
+ { baud_base: JAGUAR_ATX_BASE_BAUD, irq: int, \
+ flags: (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST), \
+- iomem_base: (u8 *) base, iomem_reg_shift: 2, \
++ iomem_base: (__u8 *) base, iomem_reg_shift: 2, \
+ io_type: SERIAL_IO_MEM }
+ #define MOMENCO_JAGUAR_ATX_SERIAL_PORT_DEFNS \
+ _JAGUAR_ATX_SERIAL_INIT(JAGUAR_ATX_SERIAL1_IRQ, JAGUAR_ATX_SERIAL1_BASE)
+@@ -260,7 +260,7 @@
+
+ #define _OCELOT_SERIAL_INIT(int, base) \
+ { .baud_base = OCELOT_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS, \
+- .iomem_base = (u8 *) base, .iomem_reg_shift = 2, \
++ .iomem_base = (__u8 *) base, .iomem_reg_shift = 2, \
+ .io_type = SERIAL_IO_MEM }
+ #define MOMENCO_OCELOT_SERIAL_PORT_DEFNS \
+ _OCELOT_SERIAL_INIT(OCELOT_SERIAL1_IRQ, OCELOT_SERIAL1_BASE)
+@@ -281,7 +281,7 @@
+
+ #define _OCELOT_G_SERIAL_INIT(int, base) \
+ { .baud_base = OCELOT_G_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,\
+- .iomem_base = (u8 *) base, .iomem_reg_shift = 2, \
++ .iomem_base = (__u8 *) base, .iomem_reg_shift = 2, \
+ .io_type = SERIAL_IO_MEM }
+ #define MOMENCO_OCELOT_G_SERIAL_PORT_DEFNS \
+ _OCELOT_G_SERIAL_INIT(OCELOT_G_SERIAL1_IRQ, OCELOT_G_SERIAL1_BASE)
+@@ -303,7 +303,7 @@
+ { .baud_base = OCELOT_C_BASE_BAUD, \
+ .irq = (int), \
+ .flags = STD_COM_FLAGS, \
+- .iomem_base = (u8 *) base, \
++ .iomem_base = (__u8 *) base, \
+ .iomem_reg_shift = 2, \
+ .io_type = SERIAL_IO_MEM \
+ }
+@@ -318,10 +318,10 @@
+ #include <asm/ddb5xxx/ddb5477.h>
+ #define DDB5477_SERIAL_PORT_DEFNS \
+ { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART0, \
+- .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04200, \
++ .flags = STD_COM_FLAGS, .iomem_base = (__u8*)0xbfa04200, \
+ .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM}, \
+ { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART1, \
+- .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04240, \
++ .flags = STD_COM_FLAGS, .iomem_base = (__u8*)0xbfa04240, \
+ .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM},
+ #else
+ #define DDB5477_SERIAL_PORT_DEFNS
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/hpc3.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/hpc3.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/hpc3.h 2003-12-15 12:47:03.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/hpc3.h 2004-08-26 05:24:34.000000000 -0500
+@@ -17,8 +17,8 @@
+
+ /* An HPC DMA descriptor. */
+ struct hpc_dma_desc {
+- u32 pbuf; /* physical address of data buffer */
+- u32 cntinfo; /* counter and info bits */
++ __u32 pbuf; /* physical address of data buffer */
++ __u32 cntinfo; /* counter and info bits */
+ #define HPCDMA_EOX 0x80000000 /* last desc in chain for tx */
+ #define HPCDMA_EOR 0x80000000 /* last desc in chain for rx */
+ #define HPCDMA_EOXP 0x40000000 /* end of packet for tx */
+@@ -30,15 +30,15 @@
+ #define HPCDMA_OWN 0x00004000 /* Denotes ring buffer ownership on rx */
+ #define HPCDMA_BCNT 0x00003fff /* size in bytes of this dma buffer */
+
+- u32 pnext; /* paddr of next hpc_dma_desc if any */
++ __u32 pnext; /* paddr of next hpc_dma_desc if any */
+ };
+
+ /* The set of regs for each HPC3 PBUS DMA channel. */
+ struct hpc3_pbus_dmacregs {
+- volatile u32 pbdma_bptr; /* pbus dma channel buffer ptr */
+- volatile u32 pbdma_dptr; /* pbus dma channel desc ptr */
+- u32 _unused0[0x1000/4 - 2]; /* padding */
+- volatile u32 pbdma_ctrl; /* pbus dma channel control register has
++ volatile __u32 pbdma_bptr; /* pbus dma channel buffer ptr */
++ volatile __u32 pbdma_dptr; /* pbus dma channel desc ptr */
++ __u32 _unused0[0x1000/4 - 2]; /* padding */
++ volatile __u32 pbdma_ctrl; /* pbus dma channel control register has
+ * copletely different meaning for read
+ * compared with write */
+ /* read */
+@@ -55,20 +55,20 @@
+ #define HPC3_PDMACTRL_FB 0x003f0000 /* Ptr to beginning of fifo */
+ #define HPC3_PDMACTRL_FE 0x3f000000 /* Ptr to end of fifo */
+
+- u32 _unused1[0x1000/4 - 1]; /* padding */
++ __u32 _unused1[0x1000/4 - 1]; /* padding */
+ };
+
+ /* The HPC3 SCSI registers, this does not include external ones. */
+ struct hpc3_scsiregs {
+- volatile u32 cbptr; /* current dma buffer ptr, diagnostic use only */
+- volatile u32 ndptr; /* next dma descriptor ptr */
+- u32 _unused0[0x1000/4 - 2]; /* padding */
+- volatile u32 bcd; /* byte count info */
++ volatile __u32 cbptr; /* current dma buffer ptr, diagnostic use only */
++ volatile __u32 ndptr; /* next dma descriptor ptr */
++ __u32 _unused0[0x1000/4 - 2]; /* padding */
++ volatile __u32 bcd; /* byte count info */
+ #define HPC3_SBCD_BCNTMSK 0x00003fff /* bytes to transfer from/to memory */
+ #define HPC3_SBCD_XIE 0x00004000 /* Send IRQ when done with cur buf */
+ #define HPC3_SBCD_EOX 0x00008000 /* Indicates this is last buf in chain */
+
+- volatile u32 ctrl; /* control register */
++ volatile __u32 ctrl; /* control register */
+ #define HPC3_SCTRL_IRQ 0x01 /* IRQ asserted, either dma done or parity */
+ #define HPC3_SCTRL_ENDIAN 0x02 /* DMA endian mode, 0=big 1=little */
+ #define HPC3_SCTRL_DIR 0x04 /* DMA direction, 1=dev2mem 0=mem2dev */
+@@ -78,9 +78,9 @@
+ #define HPC3_SCTRL_CRESET 0x40 /* Resets dma channel and external controller */
+ #define HPC3_SCTRL_PERR 0x80 /* Bad parity on HPC3 iface to scsi controller */
+
+- volatile u32 gfptr; /* current GIO fifo ptr */
+- volatile u32 dfptr; /* current device fifo ptr */
+- volatile u32 dconfig; /* DMA configuration register */
++ volatile __u32 gfptr; /* current GIO fifo ptr */
++ volatile __u32 dfptr; /* current device fifo ptr */
++ volatile __u32 dconfig; /* DMA configuration register */
+ #define HPC3_SDCFG_HCLK 0x00001 /* Enable DMA half clock mode */
+ #define HPC3_SDCFG_D1 0x00006 /* Cycles to spend in D1 state */
+ #define HPC3_SDCFG_D2 0x00038 /* Cycles to spend in D2 state */
+@@ -92,7 +92,7 @@
+ #define HPC3_SDCFG_POLL 0x08000 /* hd_dreq polarity control */
+ #define HPC3_SDCFG_ERLY 0x30000 /* hd_dreq behavior control bits */
+
+- volatile u32 pconfig; /* PIO configuration register */
++ volatile __u32 pconfig; /* PIO configuration register */
+ #define HPC3_SPCFG_P3 0x0003 /* Cycles to spend in P3 state */
+ #define HPC3_SPCFG_P2W 0x001c /* Cycles to spend in P2 state for writes */
+ #define HPC3_SPCFG_P2R 0x01e0 /* Cycles to spend in P2 state for reads */
+@@ -102,21 +102,21 @@
+ #define HPC3_SPCFG_EPAR 0x4000 /* Enable parity checking for PIO */
+ #define HPC3_SPCFG_FUJI 0x8000 /* Fujitsu scsi controller mode for faster dma/pio */
+
+- u32 _unused1[0x1000/4 - 6]; /* padding */
++ __u32 _unused1[0x1000/4 - 6]; /* padding */
+ };
+
+ /* SEEQ ethernet HPC3 registers, only one seeq per HPC3. */
+ struct hpc3_ethregs {
+ /* Receiver registers. */
+- volatile u32 rx_cbptr; /* current dma buffer ptr, diagnostic use only */
+- volatile u32 rx_ndptr; /* next dma descriptor ptr */
+- u32 _unused0[0x1000/4 - 2]; /* padding */
+- volatile u32 rx_bcd; /* byte count info */
++ volatile __u32 rx_cbptr; /* current dma buffer ptr, diagnostic use only */
++ volatile __u32 rx_ndptr; /* next dma descriptor ptr */
++ __u32 _unused0[0x1000/4 - 2]; /* padding */
++ volatile __u32 rx_bcd; /* byte count info */
+ #define HPC3_ERXBCD_BCNTMSK 0x00003fff /* bytes to be sent to memory */
+ #define HPC3_ERXBCD_XIE 0x20000000 /* HPC3 interrupts cpu at end of this buf */
+ #define HPC3_ERXBCD_EOX 0x80000000 /* flags this as end of descriptor chain */
+
+- volatile u32 rx_ctrl; /* control register */
++ volatile __u32 rx_ctrl; /* control register */
+ #define HPC3_ERXCTRL_STAT50 0x0000003f /* Receive status reg bits of Seeq8003 */
+ #define HPC3_ERXCTRL_STAT6 0x00000040 /* Rdonly irq status */
+ #define HPC3_ERXCTRL_STAT7 0x00000080 /* Rdonlt old/new status bit from Seeq */
+@@ -125,15 +125,15 @@
+ #define HPC3_ERXCTRL_AMASK 0x00000400 /* Tells if ACTIVE inhibits PIO's to hpc3 */
+ #define HPC3_ERXCTRL_RBO 0x00000800 /* Receive buffer overflow if set to 1 */
+
+- volatile u32 rx_gfptr; /* current GIO fifo ptr */
+- volatile u32 rx_dfptr; /* current device fifo ptr */
+- u32 _unused1; /* padding */
+- volatile u32 rx_reset; /* reset register */
++ volatile __u32 rx_gfptr; /* current GIO fifo ptr */
++ volatile __u32 rx_dfptr; /* current device fifo ptr */
++ __u32 _unused1; /* padding */
++ volatile __u32 rx_reset; /* reset register */
+ #define HPC3_ERXRST_CRESET 0x1 /* Reset dma channel and external controller */
+ #define HPC3_ERXRST_CLRIRQ 0x2 /* Clear channel interrupt */
+ #define HPC3_ERXRST_LBACK 0x4 /* Enable diagnostic loopback mode of Seeq8003 */
+
+- volatile u32 rx_dconfig; /* DMA configuration register */
++ volatile __u32 rx_dconfig; /* DMA configuration register */
+ #define HPC3_ERXDCFG_D1 0x0000f /* Cycles to spend in D1 state for PIO */
+ #define HPC3_ERXDCFG_D2 0x000f0 /* Cycles to spend in D2 state for PIO */
+ #define HPC3_ERXDCFG_D3 0x00f00 /* Cycles to spend in D3 state for PIO */
+@@ -143,26 +143,26 @@
+ #define HPC3_ERXDCFG_FIRQ 0x08000 /* Another bad packet timeout enable */
+ #define HPC3_ERXDCFG_PTO 0x30000 /* Programmed timeout value for above two */
+
+- volatile u32 rx_pconfig; /* PIO configuration register */
++ volatile __u32 rx_pconfig; /* PIO configuration register */
+ #define HPC3_ERXPCFG_P1 0x000f /* Cycles to spend in P1 state for PIO */
+ #define HPC3_ERXPCFG_P2 0x00f0 /* Cycles to spend in P2 state for PIO */
+ #define HPC3_ERXPCFG_P3 0x0f00 /* Cycles to spend in P3 state for PIO */
+ #define HPC3_ERXPCFG_TST 0x1000 /* Diagnistic ram test feature bit */
+
+- u32 _unused2[0x1000/4 - 8]; /* padding */
++ __u32 _unused2[0x1000/4 - 8]; /* padding */
+
+ /* Transmitter registers. */
+- volatile u32 tx_cbptr; /* current dma buffer ptr, diagnostic use only */
+- volatile u32 tx_ndptr; /* next dma descriptor ptr */
+- u32 _unused3[0x1000/4 - 2]; /* padding */
+- volatile u32 tx_bcd; /* byte count info */
++ volatile __u32 tx_cbptr; /* current dma buffer ptr, diagnostic use only */
++ volatile __u32 tx_ndptr; /* next dma descriptor ptr */
++ __u32 _unused3[0x1000/4 - 2]; /* padding */
++ volatile __u32 tx_bcd; /* byte count info */
+ #define HPC3_ETXBCD_BCNTMSK 0x00003fff /* bytes to be read from memory */
+ #define HPC3_ETXBCD_ESAMP 0x10000000 /* if set, too late to add descriptor */
+ #define HPC3_ETXBCD_XIE 0x20000000 /* Interrupt cpu at end of cur desc */
+ #define HPC3_ETXBCD_EOP 0x40000000 /* Last byte of cur buf is end of packet */
+ #define HPC3_ETXBCD_EOX 0x80000000 /* This buf is the end of desc chain */
+
+- volatile u32 tx_ctrl; /* control register */
++ volatile __u32 tx_ctrl; /* control register */
+ #define HPC3_ETXCTRL_STAT30 0x0000000f /* Rdonly copy of seeq tx stat reg */
+ #define HPC3_ETXCTRL_STAT4 0x00000010 /* Indicate late collision occurred */
+ #define HPC3_ETXCTRL_STAT75 0x000000e0 /* Rdonly irq status from seeq */
+@@ -170,9 +170,9 @@
+ #define HPC3_ETXCTRL_ACTIVE 0x00000200 /* DMA tx channel is active */
+ #define HPC3_ETXCTRL_AMASK 0x00000400 /* Indicates ACTIVE inhibits PIO's */
+
+- volatile u32 tx_gfptr; /* current GIO fifo ptr */
+- volatile u32 tx_dfptr; /* current device fifo ptr */
+- u32 _unused4[0x1000/4 - 4]; /* padding */
++ volatile __u32 tx_gfptr; /* current GIO fifo ptr */
++ volatile __u32 tx_dfptr; /* current device fifo ptr */
++ __u32 _unused4[0x1000/4 - 4]; /* padding */
+ };
+
+ struct hpc3_regs {
+@@ -188,7 +188,7 @@
+ /* Here are where the hpc3 fifo's can be directly accessed
+ * via PIO accesses. Under normal operation we never stick
+ * our grubby paws in here so it's just padding. */
+- u32 _unused0[0x18000/4];
++ __u32 _unused0[0x18000/4];
+
+ /* HPC3 irq status regs. Due to a peculiar bug you need to
+ * look at two different register addresses to get at all of
+@@ -197,42 +197,42 @@
+ * reliably report bits 9:5 of the hpc3 irq status. I told
+ * you it was a peculiar bug. ;-)
+ */
+- volatile u32 istat0; /* Irq status, only bits <4:0> reliable. */
++ volatile __u32 istat0; /* Irq status, only bits <4:0> reliable. */
+ #define HPC3_ISTAT_PBIMASK 0x0ff /* irq bits for pbus devs 0 --> 7 */
+ #define HPC3_ISTAT_SC0MASK 0x100 /* irq bit for scsi channel 0 */
+ #define HPC3_ISTAT_SC1MASK 0x200 /* irq bit for scsi channel 1 */
+
+- volatile u32 gio_misc; /* GIO misc control bits. */
++ volatile __u32 gio_misc; /* GIO misc control bits. */
+ #define HPC3_GIOMISC_ERTIME 0x1 /* Enable external timer real time. */
+ #define HPC3_GIOMISC_DENDIAN 0x2 /* dma descriptor endian, 1=lit 0=big */
+
+- volatile u32 eeprom; /* EEPROM data reg. */
++ volatile __u32 eeprom; /* EEPROM data reg. */
+ #define HPC3_EEPROM_EPROT 0x01 /* Protect register enable */
+ #define HPC3_EEPROM_CSEL 0x02 /* Chip select */
+ #define HPC3_EEPROM_ECLK 0x04 /* EEPROM clock */
+ #define HPC3_EEPROM_DATO 0x08 /* Data out */
+ #define HPC3_EEPROM_DATI 0x10 /* Data in */
+
+- volatile u32 istat1; /* Irq status, only bits <9:5> reliable. */
+- volatile u32 bestat; /* Bus error interrupt status reg. */
++ volatile __u32 istat1; /* Irq status, only bits <9:5> reliable. */
++ volatile __u32 bestat; /* Bus error interrupt status reg. */
+ #define HPC3_BESTAT_BLMASK 0x000ff /* Bus lane where bad parity occurred */
+ #define HPC3_BESTAT_CTYPE 0x00100 /* Bus cycle type, 0=PIO 1=DMA */
+ #define HPC3_BESTAT_PIDSHIFT 9
+ #define HPC3_BESTAT_PIDMASK 0x3f700 /* DMA channel parity identifier */
+
+- u32 _unused1[0x14000/4 - 5]; /* padding */
++ __u32 _unused1[0x14000/4 - 5]; /* padding */
+
+ /* Now direct PIO per-HPC3 peripheral access to external regs. */
+- volatile u32 scsi0_ext[256]; /* SCSI channel 0 external regs */
+- u32 _unused2[0x7c00/4];
+- volatile u32 scsi1_ext[256]; /* SCSI channel 1 external regs */
+- u32 _unused3[0x7c00/4];
+- volatile u32 eth_ext[320]; /* Ethernet external registers */
+- u32 _unused4[0x3b00/4];
++ volatile __u32 scsi0_ext[256]; /* SCSI channel 0 external regs */
++ __u32 _unused2[0x7c00/4];
++ volatile __u32 scsi1_ext[256]; /* SCSI channel 1 external regs */
++ __u32 _unused3[0x7c00/4];
++ volatile __u32 eth_ext[320]; /* Ethernet external registers */
++ __u32 _unused4[0x3b00/4];
+
+ /* Per-peripheral device external registers and DMA/PIO control. */
+- volatile u32 pbus_extregs[16][256];
+- volatile u32 pbus_dmacfg[8][128];
++ volatile __u32 pbus_extregs[16][256];
++ volatile __u32 pbus_dmacfg[8][128];
+ /* Cycles to spend in D3 for reads */
+ #define HPC3_DMACFG_D3R_MASK 0x00000001
+ #define HPC3_DMACFG_D3R_SHIFT 0
+@@ -262,7 +262,7 @@
+ #define HPC3_DMACFG_BURST_SHIFT 22
+ /* Use live pbus_dreq unsynchronized signal */
+ #define HPC3_DMACFG_DRQLIVE 0x08000000
+- volatile u32 pbus_piocfg[16][64];
++ volatile __u32 pbus_piocfg[16][64];
+ /* Cycles to spend in P2 state for reads */
+ #define HPC3_PIOCFG_P2R_MASK 0x00001
+ #define HPC3_PIOCFG_P2R_SHIFT 0
+@@ -287,21 +287,21 @@
+ #define HPC3_PIOCFG_EVENHI 0x80000
+
+ /* PBUS PROM control regs. */
+- volatile u32 pbus_promwe; /* PROM write enable register */
++ volatile __u32 pbus_promwe; /* PROM write enable register */
+ #define HPC3_PROM_WENAB 0x1 /* Enable writes to the PROM */
+
+- u32 _unused5[0x0800/4 - 1];
+- volatile u32 pbus_promswap; /* Chip select swap reg */
++ __u32 _unused5[0x0800/4 - 1];
++ volatile __u32 pbus_promswap; /* Chip select swap reg */
+ #define HPC3_PROM_SWAP 0x1 /* invert GIO addr bit to select prom0 or prom1 */
+
+- u32 _unused6[0x0800/4 - 1];
+- volatile u32 pbus_gout; /* PROM general purpose output reg */
++ __u32 _unused6[0x0800/4 - 1];
++ volatile __u32 pbus_gout; /* PROM general purpose output reg */
+ #define HPC3_PROM_STAT 0x1 /* General purpose status bit in gout */
+
+- u32 _unused7[0x1000/4 - 1];
+- volatile u32 rtcregs[14]; /* Dallas clock registers */
+- u32 _unused8[50];
+- volatile u32 bbram[8192-50-14]; /* Battery backed ram */
++ __u32 _unused7[0x1000/4 - 1];
++ volatile __u32 rtcregs[14]; /* Dallas clock registers */
++ __u32 _unused8[50];
++ volatile __u32 bbram[8192-50-14]; /* Battery backed ram */
+ };
+
+ /*
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/ioc.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/ioc.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/ioc.h 2004-03-28 07:51:54.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/ioc.h 2004-08-26 05:24:48.000000000 -0500
+@@ -22,26 +22,26 @@
+ */
+
+ struct sgioc_uart_regs {
+- u8 _ctrl1[3];
+- volatile u8 ctrl1;
+- u8 _data1[3];
+- volatile u8 data1;
+- u8 _ctrl2[3];
+- volatile u8 ctrl2;
+- u8 _data2[3];
+- volatile u8 data2;
++ __u8 _ctrl1[3];
++ volatile __u8 ctrl1;
++ __u8 _data1[3];
++ volatile __u8 data1;
++ __u8 _ctrl2[3];
++ volatile __u8 ctrl2;
++ __u8 _data2[3];
++ volatile __u8 data2;
+ };
+
+ struct sgioc_keyb_regs {
+- u8 _data[3];
+- volatile u8 data;
+- u8 _command[3];
+- volatile u8 command;
++ __u8 _data[3];
++ volatile __u8 data;
++ __u8 _command[3];
++ volatile __u8 command;
+ };
+
+ struct sgint_regs {
+- u8 _istat0[3];
+- volatile u8 istat0; /* Interrupt status zero */
++ __u8 _istat0[3];
++ volatile __u8 istat0; /* Interrupt status zero */
+ #define SGINT_ISTAT0_FFULL 0x01
+ #define SGINT_ISTAT0_SCSI0 0x02
+ #define SGINT_ISTAT0_SCSI1 0x04
+@@ -50,10 +50,10 @@
+ #define SGINT_ISTAT0_PPORT 0x20
+ #define SGINT_ISTAT0_HPC2 0x40
+ #define SGINT_ISTAT0_LIO2 0x80
+- u8 _imask0[3];
+- volatile u8 imask0; /* Interrupt mask zero */
+- u8 _istat1[3];
+- volatile u8 istat1; /* Interrupt status one */
++ __u8 _imask0[3];
++ volatile __u8 imask0; /* Interrupt mask zero */
++ __u8 _istat1[3];
++ volatile __u8 istat1; /* Interrupt status one */
+ #define SGINT_ISTAT1_ISDNI 0x01
+ #define SGINT_ISTAT1_PWR 0x02
+ #define SGINT_ISTAT1_ISDNH 0x04
+@@ -62,29 +62,29 @@
+ #define SGINT_ISTAT1_AFAIL 0x20
+ #define SGINT_ISTAT1_VIDEO 0x40
+ #define SGINT_ISTAT1_GIO2 0x80
+- u8 _imask1[3];
+- volatile u8 imask1; /* Interrupt mask one */
+- u8 _vmeistat[3];
+- volatile u8 vmeistat; /* VME interrupt status */
+- u8 _cmeimask0[3];
+- volatile u8 cmeimask0; /* VME interrupt mask zero */
+- u8 _cmeimask1[3];
+- volatile u8 cmeimask1; /* VME interrupt mask one */
+- u8 _cmepol[3];
+- volatile u8 cmepol; /* VME polarity */
+- u8 _tclear[3];
+- volatile u8 tclear;
+- u8 _errstat[3];
+- volatile u8 errstat; /* Error status reg, reserved on INT2 */
+- u32 _unused0[2];
+- u8 _tcnt0[3];
+- volatile u8 tcnt0; /* counter 0 */
+- u8 _tcnt1[3];
+- volatile u8 tcnt1; /* counter 1 */
+- u8 _tcnt2[3];
+- volatile u8 tcnt2; /* counter 2 */
+- u8 _tcword[3];
+- volatile u8 tcword; /* control word */
++ __u8 _imask1[3];
++ volatile __u8 imask1; /* Interrupt mask one */
++ __u8 _vmeistat[3];
++ volatile __u8 vmeistat; /* VME interrupt status */
++ __u8 _cmeimask0[3];
++ volatile __u8 cmeimask0; /* VME interrupt mask zero */
++ __u8 _cmeimask1[3];
++ volatile __u8 cmeimask1; /* VME interrupt mask one */
++ __u8 _cmepol[3];
++ volatile __u8 cmepol; /* VME polarity */
++ __u8 _tclear[3];
++ volatile __u8 tclear;
++ __u8 _errstat[3];
++ volatile __u8 errstat; /* Error status reg, reserved on INT2 */
++ __u32 _unused0[2];
++ __u8 _tcnt0[3];
++ volatile __u8 tcnt0; /* counter 0 */
++ __u8 _tcnt1[3];
++ volatile __u8 tcnt1; /* counter 1 */
++ __u8 _tcnt2[3];
++ volatile __u8 tcnt2; /* counter 2 */
++ __u8 _tcword[3];
++ volatile __u8 tcword; /* control word */
+ #define SGINT_TCWORD_BCD 0x01 /* Use BCD mode for counters */
+ #define SGINT_TCWORD_MMASK 0x0e /* Mode bitmask. */
+ #define SGINT_TCWORD_MITC 0x00 /* IRQ on terminal count (doesn't work) */
+@@ -115,55 +115,55 @@
+ #define SGINT_TCSAMP_COUNTER ((SGINT_TIMER_CLOCK / HZ) + 255)
+
+ /* We need software copies of these because they are write only. */
+-extern u8 sgi_ioc_reset, sgi_ioc_write;
++extern __u8 sgi_ioc_reset, sgi_ioc_write;
+
+ struct sgioc_regs {
+ struct pi1_regs pport;
+- u32 _unused0[2];
++ __u32 _unused0[2];
+ struct sgioc_uart_regs serport;
+ struct sgioc_keyb_regs kbdmouse;
+- u8 _gcsel[3];
+- volatile u8 gcsel;
+- u8 _genctrl[3];
+- volatile u8 genctrl;
+- u8 _panel[3];
+- volatile u8 panel;
++ __u8 _gcsel[3];
++ volatile __u8 gcsel;
++ __u8 _genctrl[3];
++ volatile __u8 genctrl;
++ __u8 _panel[3];
++ volatile __u8 panel;
+ #define SGIOC_PANEL_POWERON 0x01
+ #define SGIOC_PANEL_POWERINTR 0x02
+ #define SGIOC_PANEL_VOLDNINTR 0x10
+ #define SGIOC_PANEL_VOLDNHOLD 0x20
+ #define SGIOC_PANEL_VOLUPINTR 0x40
+ #define SGIOC_PANEL_VOLUPHOLD 0x80
+- u32 _unused1;
+- u8 _sysid[3];
+- volatile u8 sysid;
++ __u32 _unused1;
++ __u8 _sysid[3];
++ volatile __u8 sysid;
+ #define SGIOC_SYSID_FULLHOUSE 0x01
+ #define SGIOC_SYSID_BOARDREV(x) ((x & 0xe0) > 5)
+ #define SGIOC_SYSID_CHIPREV(x) ((x & 0x1e) > 1)
+- u32 _unused2;
+- u8 _read[3];
+- volatile u8 read;
+- u32 _unused3;
+- u8 _dmasel[3];
+- volatile u8 dmasel;
++ __u32 _unused2;
++ __u8 _read[3];
++ volatile __u8 read;
++ __u32 _unused3;
++ __u8 _dmasel[3];
++ volatile __u8 dmasel;
+ #define SGIOC_DMASEL_SCLK10MHZ 0x00 /* use 10MHZ serial clock */
+ #define SGIOC_DMASEL_ISDNB 0x01 /* enable isdn B */
+ #define SGIOC_DMASEL_ISDNA 0x02 /* enable isdn A */
+ #define SGIOC_DMASEL_PPORT 0x04 /* use parallel DMA */
+ #define SGIOC_DMASEL_SCLK667MHZ 0x10 /* use 6.67MHZ serial clock */
+ #define SGIOC_DMASEL_SCLKEXT 0x20 /* use external serial clock */
+- u32 _unused4;
+- u8 _reset[3];
+- volatile u8 reset;
++ __u32 _unused4;
++ __u8 _reset[3];
++ volatile __u8 reset;
+ #define SGIOC_RESET_PPORT 0x01 /* 0=parport reset, 1=nornal */
+ #define SGIOC_RESET_KBDMOUSE 0x02 /* 0=kbdmouse reset, 1=normal */
+ #define SGIOC_RESET_EISA 0x04 /* 0=eisa reset, 1=normal */
+ #define SGIOC_RESET_ISDN 0x08 /* 0=isdn reset, 1=normal */
+ #define SGIOC_RESET_LC0OFF 0x10 /* guiness: turn led off (red, else green) */
+ #define SGIOC_RESET_LC1OFF 0x20 /* guiness: turn led off (green, else amber) */
+- u32 _unused5;
+- u8 _write[3];
+- volatile u8 write;
++ __u32 _unused5;
++ __u8 _write[3];
++ volatile __u8 write;
+ #define SGIOC_WRITE_NTHRESH 0x01 /* use 4.5db threshhold */
+ #define SGIOC_WRITE_TPSPEED 0x02 /* use 100ohm TP speed */
+ #define SGIOC_WRITE_EPSEL 0x04 /* force cable mode: 1=AUI 0=TP */
+@@ -172,10 +172,10 @@
+ #define SGIOC_WRITE_U0AMODE 0x20 /* 1=PC 0=MAC UART mode */
+ #define SGIOC_WRITE_MLO 0x40 /* 1=4.75V 0=+5V */
+ #define SGIOC_WRITE_MHI 0x80 /* 1=5.25V 0=+5V */
+- u32 _unused6;
++ __u32 _unused6;
+ struct sgint_regs int3;
+- u32 _unused7[16];
+- volatile u32 extio; /* FullHouse only */
++ __u32 _unused7[16];
++ volatile __u32 extio; /* FullHouse only */
+ #define EXTIO_S0_IRQ_3 0x8000 /* S0: vid.vsync */
+ #define EXTIO_S0_IRQ_2 0x4000 /* S0: gfx.fifofull */
+ #define EXTIO_S0_IRQ_1 0x2000 /* S0: gfx.int */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/mc.h linux-libc-headers-2.6.8.0/include/asm-mips/sgi/mc.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgi/mc.h 2003-12-15 12:47:03.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sgi/mc.h 2004-08-26 05:25:28.000000000 -0500
+@@ -14,8 +14,8 @@
+ #define _SGI_MC_H
+
+ struct sgimc_regs {
+- u32 _unused0;
+- volatile u32 cpuctrl0; /* CPU control register 0, readwrite */
++ __u32 _unused0;
++ volatile __u32 cpuctrl0; /* CPU control register 0, readwrite */
+ #define SGIMC_CCTRL0_REFS 0x0000000f /* REFS mask */
+ #define SGIMC_CCTRL0_EREFRESH 0x00000010 /* Memory refresh enable */
+ #define SGIMC_CCTRL0_EPERRGIO 0x00000020 /* GIO parity error enable */
+@@ -35,8 +35,8 @@
+ #define SGIMC_CCTRL0_CMEMBADPAR 0x02000000 /* Generate bad perr from cpu to mem */
+ #define SGIMC_CCTRL0_R4KNOCHKPARR 0x04000000 /* Don't chk parity on mem data reads */
+ #define SGIMC_CCTRL0_GIOBTOB 0x08000000 /* Allow GIO back to back writes */
+- u32 _unused1;
+- volatile u32 cpuctrl1; /* CPU control register 1, readwrite */
++ __u32 _unused1;
++ volatile __u32 cpuctrl1; /* CPU control register 1, readwrite */
+ #define SGIMC_CCTRL1_EGIOTIMEO 0x00000010 /* GIO bus timeout enable */
+ #define SGIMC_CCTRL1_FIXEDEHPC 0x00001000 /* Fixed HPC endianness */
+ #define SGIMC_CCTRL1_LITTLEHPC 0x00002000 /* Little endian HPC */
+@@ -45,33 +45,33 @@
+ #define SGIMC_CCTRL1_FIXEDEEXP1 0x00010000 /* Fixed EXP1 endianness */
+ #define SGIMC_CCTRL1_LITTLEEXP1 0x00020000 /* Little endian EXP1 */
+
+- u32 _unused2;
+- volatile u32 watchdogt; /* Watchdog reg rdonly, write clears */
++ __u32 _unused2;
++ volatile __u32 watchdogt; /* Watchdog reg rdonly, write clears */
+
+- u32 _unused3;
+- volatile u32 systemid; /* MC system ID register, readonly */
++ __u32 _unused3;
++ volatile __u32 systemid; /* MC system ID register, readonly */
+ #define SGIMC_SYSID_MASKREV 0x0000000f /* Revision of MC controller */
+ #define SGIMC_SYSID_EPRESENT 0x00000010 /* Indicates presence of EISA bus */
+
+- u32 _unused4[3];
+- volatile u32 divider; /* Divider reg for RPSS */
++ __u32 _unused4[3];
++ volatile __u32 divider; /* Divider reg for RPSS */
+
+- u32 _unused5;
+- volatile u32 eeprom; /* EEPROM byte reg for r4k */
++ __u32 _unused5;
++ volatile __u32 eeprom; /* EEPROM byte reg for r4k */
+ #define SGIMC_EEPROM_PRE 0x00000001 /* eeprom chip PRE pin assertion */
+ #define SGIMC_EEPROM_CSEL 0x00000002 /* Active high, eeprom chip select */
+ #define SGIMC_EEPROM_SECLOCK 0x00000004 /* EEPROM serial clock */
+ #define SGIMC_EEPROM_SDATAO 0x00000008 /* Serial EEPROM data-out */
+ #define SGIMC_EEPROM_SDATAI 0x00000010 /* Serial EEPROM data-in */
+
+- u32 _unused6[3];
+- volatile u32 rcntpre; /* Preload refresh counter */
++ __u32 _unused6[3];
++ volatile __u32 rcntpre; /* Preload refresh counter */
+
+- u32 _unused7;
+- volatile u32 rcounter; /* Readonly refresh counter */
++ __u32 _unused7;
++ volatile __u32 rcounter; /* Readonly refresh counter */
+
+- u32 _unused8[13];
+- volatile u32 giopar; /* Parameter word for GIO64 */
++ __u32 _unused8[13];
++ volatile __u32 giopar; /* Parameter word for GIO64 */
+ #define SGIMC_GIOPAR_HPC64 0x00000001 /* HPC talks to GIO using 64-bits */
+ #define SGIMC_GIOPAR_GFX64 0x00000002 /* GFX talks to GIO using 64-bits */
+ #define SGIMC_GIOPAR_EXP064 0x00000004 /* EXP(slot0) talks using 64-bits */
+@@ -89,36 +89,36 @@
+ #define SGIMC_GIOPAR_PLINEEXP0 0x00004000 /* EXP(slot0) has pipeline attr */
+ #define SGIMC_GIOPAR_PLINEEXP1 0x00008000 /* EXP(slot1) has pipeline attr */
+
+- u32 _unused9;
+- volatile u32 cputp; /* CPU bus arb time period */
++ __u32 _unused9;
++ volatile __u32 cputp; /* CPU bus arb time period */
+
+- u32 _unused10[3];
+- volatile u32 lbursttp; /* Time period for long bursts */
++ __u32 _unused10[3];
++ volatile __u32 lbursttp; /* Time period for long bursts */
+
+ /* MC chip can drive up to 4 bank 4 SIMMs each. All SIMMs in bank must
+ * be the same size. The size encoding for supported SIMMs is bellow */
+- u32 _unused11[9];
+- volatile u32 mconfig0; /* Memory config register zero */
+- u32 _unused12;
+- volatile u32 mconfig1; /* Memory config register one */
++ __u32 _unused11[9];
++ volatile __u32 mconfig0; /* Memory config register zero */
++ __u32 _unused12;
++ volatile __u32 mconfig1; /* Memory config register one */
+ #define SGIMC_MCONFIG_BASEADDR 0x000000ff /* Base address of bank*/
+ #define SGIMC_MCONFIG_RMASK 0x00001f00 /* Ram config bitmask */
+ #define SGIMC_MCONFIG_BVALID 0x00002000 /* Bank is valid */
+ #define SGIMC_MCONFIG_SBANKS 0x00004000 /* Number of subbanks */
+
+- u32 _unused13;
+- volatile u32 cmacc; /* Mem access config for CPU */
+- u32 _unused14;
+- volatile u32 gmacc; /* Mem access config for GIO */
++ __u32 _unused13;
++ volatile __u32 cmacc; /* Mem access config for CPU */
++ __u32 _unused14;
++ volatile __u32 gmacc; /* Mem access config for GIO */
+
+ /* This define applies to both cmacc and gmacc registers above. */
+ #define SGIMC_MACC_ALIASBIG 0x20000000 /* 512MB home for alias */
+
+ /* Error address/status regs from GIO and CPU perspectives. */
+- u32 _unused15;
+- volatile u32 cerr; /* Error address reg for CPU */
+- u32 _unused16;
+- volatile u32 cstat; /* Status reg for CPU */
++ __u32 _unused15;
++ volatile __u32 cerr; /* Error address reg for CPU */
++ __u32 _unused16;
++ volatile __u32 cstat; /* Status reg for CPU */
+ #define SGIMC_CSTAT_RD 0x00000100 /* read parity error */
+ #define SGIMC_CSTAT_PAR 0x00000200 /* CPU parity error */
+ #define SGIMC_CSTAT_ADDR 0x00000400 /* memory bus error bad addr */
+@@ -128,10 +128,10 @@
+ #define SGIMC_CSTAT_PAR_MASK 0x00001f00 /* parity error mask */
+ #define SGIMC_CSTAT_RD_PAR (SGIMC_CSTAT_RD | SGIMC_CSTAT_PAR)
+
+- u32 _unused17;
+- volatile u32 gerr; /* Error address reg for GIO */
+- u32 _unused18;
+- volatile u32 gstat; /* Status reg for GIO */
++ __u32 _unused17;
++ volatile __u32 gerr; /* Error address reg for GIO */
++ __u32 _unused18;
++ volatile __u32 gstat; /* Status reg for GIO */
+ #define SGIMC_GSTAT_RD 0x00000100 /* read parity error */
+ #define SGIMC_GSTAT_WR 0x00000200 /* write parity error */
+ #define SGIMC_GSTAT_TIME 0x00000400 /* GIO bus timed out */
+@@ -142,76 +142,76 @@
+ #define SGIMC_GSTAT_PIO_WR 0x00008000 /* write data parity on pio */
+
+ /* Special hard bus locking registers. */
+- u32 _unused19;
+- volatile u32 syssembit; /* Uni-bit system semaphore */
+- u32 _unused20;
+- volatile u32 mlock; /* Global GIO memory access lock */
+- u32 _unused21;
+- volatile u32 elock; /* Locks EISA from GIO accesses */
++ __u32 _unused19;
++ volatile __u32 syssembit; /* Uni-bit system semaphore */
++ __u32 _unused20;
++ volatile __u32 mlock; /* Global GIO memory access lock */
++ __u32 _unused21;
++ volatile __u32 elock; /* Locks EISA from GIO accesses */
+
+ /* GIO dma control registers. */
+- u32 _unused22[15];
+- volatile u32 gio_dma_trans; /* DMA mask to translation GIO addrs */
+- u32 _unused23;
+- volatile u32 gio_dma_sbits; /* DMA GIO addr substitution bits */
+- u32 _unused24;
+- volatile u32 dma_intr_cause; /* DMA IRQ cause indicator bits */
+- u32 _unused25;
+- volatile u32 dma_ctrl; /* Main DMA control reg */
++ __u32 _unused22[15];
++ volatile __u32 gio_dma_trans; /* DMA mask to translation GIO addrs */
++ __u32 _unused23;
++ volatile __u32 gio_dma_sbits; /* DMA GIO addr substitution bits */
++ __u32 _unused24;
++ volatile __u32 dma_intr_cause; /* DMA IRQ cause indicator bits */
++ __u32 _unused25;
++ volatile __u32 dma_ctrl; /* Main DMA control reg */
+
+ /* DMA TLB entry 0 */
+- u32 _unused26[5];
+- volatile u32 dtlb_hi0;
+- u32 _unused27;
+- volatile u32 dtlb_lo0;
++ __u32 _unused26[5];
++ volatile __u32 dtlb_hi0;
++ __u32 _unused27;
++ volatile __u32 dtlb_lo0;
+
+ /* DMA TLB entry 1 */
+- u32 _unused28;
+- volatile u32 dtlb_hi1;
+- u32 _unused29;
+- volatile u32 dtlb_lo1;
++ __u32 _unused28;
++ volatile __u32 dtlb_hi1;
++ __u32 _unused29;
++ volatile __u32 dtlb_lo1;
+
+ /* DMA TLB entry 2 */
+- u32 _unused30;
+- volatile u32 dtlb_hi2;
+- u32 _unused31;
+- volatile u32 dtlb_lo2;
++ __u32 _unused30;
++ volatile __u32 dtlb_hi2;
++ __u32 _unused31;
++ volatile __u32 dtlb_lo2;
+
+ /* DMA TLB entry 3 */
+- u32 _unused32;
+- volatile u32 dtlb_hi3;
+- u32 _unused33;
+- volatile u32 dtlb_lo3;
++ __u32 _unused32;
++ volatile __u32 dtlb_hi3;
++ __u32 _unused33;
++ volatile __u32 dtlb_lo3;
+
+- u32 _unused34[0x0392];
++ __u32 _unused34[0x0392];
+
+- u32 _unused35;
+- volatile u32 rpsscounter; /* Chirps at 100ns */
++ __u32 _unused35;
++ volatile __u32 rpsscounter; /* Chirps at 100ns */
+
+- u32 _unused36[0x1000/4-2*4];
++ __u32 _unused36[0x1000/4-2*4];
+
+- u32 _unused37;
+- volatile u32 maddronly; /* Address DMA goes at */
+- u32 _unused38;
+- volatile u32 maddrpdeflts; /* Same as above, plus set defaults */
+- u32 _unused39;
+- volatile u32 dmasz; /* DMA count */
+- u32 _unused40;
+- volatile u32 ssize; /* DMA stride size */
+- u32 _unused41;
+- volatile u32 gmaddronly; /* Set GIO DMA but don't start trans */
+- u32 _unused42;
+- volatile u32 dmaddnpgo; /* Set GIO DMA addr + start transfer */
+- u32 _unused43;
+- volatile u32 dmamode; /* DMA mode config bit settings */
+- u32 _unused44;
+- volatile u32 dmaccount; /* Zoom and byte count for DMA */
+- u32 _unused45;
+- volatile u32 dmastart; /* Pedal to the metal. */
+- u32 _unused46;
+- volatile u32 dmarunning; /* DMA op is in progress */
+- u32 _unused47;
+- volatile u32 maddrdefstart; /* Set dma addr, defaults, and kick it */
++ __u32 _unused37;
++ volatile __u32 maddronly; /* Address DMA goes at */
++ __u32 _unused38;
++ volatile __u32 maddrpdeflts; /* Same as above, plus set defaults */
++ __u32 _unused39;
++ volatile __u32 dmasz; /* DMA count */
++ __u32 _unused40;
++ volatile __u32 ssize; /* DMA stride size */
++ __u32 _unused41;
++ volatile __u32 gmaddronly; /* Set GIO DMA but don't start trans */
++ __u32 _unused42;
++ volatile __u32 dmaddnpgo; /* Set GIO DMA addr + start transfer */
++ __u32 _unused43;
++ volatile __u32 dmamode; /* DMA mode config bit settings */
++ __u32 _unused44;
++ volatile __u32 dmaccount; /* Zoom and byte count for DMA */
++ __u32 _unused45;
++ volatile __u32 dmastart; /* Pedal to the metal. */
++ __u32 _unused46;
++ volatile __u32 dmarunning; /* DMA op is in progress */
++ __u32 _unused47;
++ volatile __u32 maddrdefstart; /* Set dma addr, defaults, and kick it */
+ };
+
+ extern struct sgimc_regs *sgimc;
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgiarcs.h linux-libc-headers-2.6.8.0/include/asm-mips/sgiarcs.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sgiarcs.h 2004-03-28 07:51:52.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sgiarcs.h 2004-08-26 05:21:53.000000000 -0500
+@@ -164,11 +164,11 @@
+ /* This prom has a bolixed design. */
+ struct linux_bigint {
+ #ifdef __MIPSEL__
+- u32 lo;
+- s32 hi;
++ __u32 lo;
++ __s32 hi;
+ #else /* !(__MIPSEL__) */
+- s32 hi;
+- u32 lo;
++ __s32 hi;
++ __u32 lo;
+ #endif
+ };
+
+@@ -366,7 +366,7 @@
+ * Macros for calling a 32-bit ARC implementation from 64-bit code
+ */
+
+-#if defined(CONFIG_MIPS64) && defined(CONFIG_ARC32)
++#if defined(__mips64) && defined(CONFIG_ARC32)
+
+ #define __arc_clobbers \
+ "$2","$3" /* ... */, "$8","$9","$10","$11", \
+@@ -475,10 +475,10 @@
+ __res; \
+ })
+
+-#endif /* defined(CONFIG_MIPS64) && defined(CONFIG_ARC32) */
++#endif /* defined(__mips64) && defined(CONFIG_ARC32) */
+
+-#if (defined(CONFIG_MIPS32) && defined(CONFIG_ARC32)) || \
+- (defined(CONFIG_MIPS64) && defined(CONFIG_ARC64))
++#if (!defined(__mips64) && defined(CONFIG_ARC32)) || \
++ (defined(__mips64) && defined(CONFIG_ARC64))
+
+ #define ARC_CALL0(dest) \
+ ({ long __res; \
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/siginfo.h linux-libc-headers-2.6.8.0/include/asm-mips/siginfo.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/siginfo.h 2004-06-09 07:00:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/siginfo.h 2004-08-26 05:14:41.000000000 -0500
+@@ -66,10 +66,10 @@
+
+ /* SIGPOLL, SIGXFSZ (To do ...) */
+ struct {
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ long _band; /* POLL_IN, POLL_OUT, POLL_MSG */
+ #endif
+ int _fd;
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sim.h linux-libc-headers-2.6.8.0/include/asm-mips/sim.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sim.h 2004-03-28 07:51:52.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sim.h 2004-08-26 05:17:16.000000000 -0500
+@@ -18,7 +18,7 @@
+ #define __str2(x) #x
+ #define __str(x) __str2(x)
+
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+
+ #define save_static_function(symbol) \
+ __asm__ ( \
+@@ -43,9 +43,9 @@
+
+ #define nabi_no_regargs
+
+-#endif /* CONFIG_MIPS32 */
++#endif /* ndef __mips64 */
+
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+
+ #define save_static_function(symbol) \
+ __asm__ ( \
+@@ -78,6 +78,6 @@
+ unsigned long __dummy6, \
+ unsigned long __dummy7,
+
+-#endif /* CONFIG_MIPS64 */
++#endif /* __mips64 */
+
+ #endif /* _ASM_SIM_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/arch.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/arch.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/arch.h 2004-06-09 07:00:42.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/arch.h 2004-08-26 05:26:16.000000000 -0500
+@@ -17,8 +17,8 @@
+ #include <asm/sn/sn0/arch.h>
+ #endif
+
+-typedef u64 hubreg_t;
+-typedef u64 nic_t;
++typedef __u64 hubreg_t;
++typedef __u64 nic_t;
+
+ #define cputonasid(cpu) (cpu_data[(cpu)].p_nasid)
+ #define cputoslice(cpu) (cpu_data[(cpu)].p_slice)
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/gda.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/gda.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/gda.h 2003-12-15 12:47:02.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/gda.h 2004-08-26 05:26:30.000000000 -0500
+@@ -44,11 +44,11 @@
+ #ifndef __ASSEMBLY__
+
+ typedef struct gda {
+- u32 g_magic; /* GDA magic number */
+- u16 g_version; /* Version of this structure */
+- u16 g_masterid; /* The NASID:CPUNUM of the master cpu */
+- u32 g_promop; /* Passes requests from the kernel to prom */
+- u32 g_vds; /* Store the virtual dipswitches here */
++ __u32 g_magic; /* GDA magic number */
++ __u16 g_version; /* Version of this structure */
++ __u16 g_masterid; /* The NASID:CPUNUM of the master cpu */
++ __u32 g_promop; /* Passes requests from the kernel to prom */
++ __u32 g_vds; /* Store the virtual dipswitches here */
+ void **g_hooked_norm;/* ptr to pda loc for norm hndlr */
+ void **g_hooked_utlb;/* ptr to pda loc for utlb hndlr */
+ void **g_hooked_xtlb;/* ptr to pda loc for xtlb hndlr */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/ioc3.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/ioc3.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/ioc3.h 2003-12-15 12:47:02.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/ioc3.h 2004-08-26 05:26:06.000000000 -0500
+@@ -8,23 +8,23 @@
+ /* SUPERIO uart register map */
+ typedef volatile struct ioc3_uartregs {
+ union {
+- volatile u8 rbr; /* read only, DLAB == 0 */
+- volatile u8 thr; /* write only, DLAB == 0 */
+- volatile u8 dll; /* DLAB == 1 */
++ volatile __u8 rbr; /* read only, DLAB == 0 */
++ volatile __u8 thr; /* write only, DLAB == 0 */
++ volatile __u8 dll; /* DLAB == 1 */
+ } u1;
+ union {
+- volatile u8 ier; /* DLAB == 0 */
+- volatile u8 dlm; /* DLAB == 1 */
++ volatile __u8 ier; /* DLAB == 0 */
++ volatile __u8 dlm; /* DLAB == 1 */
+ } u2;
+ union {
+- volatile u8 iir; /* read only */
+- volatile u8 fcr; /* write only */
++ volatile __u8 iir; /* read only */
++ volatile __u8 fcr; /* write only */
+ } u3;
+- volatile u8 iu_lcr;
+- volatile u8 iu_mcr;
+- volatile u8 iu_lsr;
+- volatile u8 iu_msr;
+- volatile u8 iu_scr;
++ volatile __u8 iu_lcr;
++ volatile __u8 iu_mcr;
++ volatile __u8 iu_lsr;
++ volatile __u8 iu_msr;
++ volatile __u8 iu_scr;
+ } ioc3_uregs_t;
+
+ #define iu_rbr u1.rbr
+@@ -36,29 +36,29 @@
+ #define iu_fcr u3.fcr
+
+ struct ioc3_sioregs {
+- volatile u8 fill[0x141]; /* starts at 0x141 */
++ volatile __u8 fill[0x141]; /* starts at 0x141 */
+
+- volatile u8 uartc;
+- volatile u8 kbdcg;
++ volatile __u8 uartc;
++ volatile __u8 kbdcg;
+
+- volatile u8 fill0[0x150 - 0x142 - 1];
++ volatile __u8 fill0[0x150 - 0x142 - 1];
+
+- volatile u8 pp_data;
+- volatile u8 pp_dsr;
+- volatile u8 pp_dcr;
++ volatile __u8 pp_data;
++ volatile __u8 pp_dsr;
++ volatile __u8 pp_dcr;
+
+- volatile u8 fill1[0x158 - 0x152 - 1];
++ volatile __u8 fill1[0x158 - 0x152 - 1];
+
+- volatile u8 pp_fifa;
+- volatile u8 pp_cfgb;
+- volatile u8 pp_ecr;
++ volatile __u8 pp_fifa;
++ volatile __u8 pp_cfgb;
++ volatile __u8 pp_ecr;
+
+- volatile u8 fill2[0x168 - 0x15a - 1];
++ volatile __u8 fill2[0x168 - 0x15a - 1];
+
+- volatile u8 rtcad;
+- volatile u8 rtcdat;
++ volatile __u8 rtcad;
++ volatile __u8 rtcdat;
+
+- volatile u8 fill3[0x170 - 0x169 - 1];
++ volatile __u8 fill3[0x170 - 0x169 - 1];
+
+ struct ioc3_uartregs uartb; /* 0x20170 */
+ struct ioc3_uartregs uarta; /* 0x20178 */
+@@ -66,103 +66,103 @@
+
+ /* Register layout of IOC3 in configuration space. */
+ struct ioc3 {
+- volatile u32 pad0[7]; /* 0x00000 */
+- volatile u32 sio_ir; /* 0x0001c */
+- volatile u32 sio_ies; /* 0x00020 */
+- volatile u32 sio_iec; /* 0x00024 */
+- volatile u32 sio_cr; /* 0x00028 */
+- volatile u32 int_out; /* 0x0002c */
+- volatile u32 mcr; /* 0x00030 */
++ volatile __u32 pad0[7]; /* 0x00000 */
++ volatile __u32 sio_ir; /* 0x0001c */
++ volatile __u32 sio_ies; /* 0x00020 */
++ volatile __u32 sio_iec; /* 0x00024 */
++ volatile __u32 sio_cr; /* 0x00028 */
++ volatile __u32 int_out; /* 0x0002c */
++ volatile __u32 mcr; /* 0x00030 */
+
+ /* General Purpose I/O registers */
+- volatile u32 gpcr_s; /* 0x00034 */
+- volatile u32 gpcr_c; /* 0x00038 */
+- volatile u32 gpdr; /* 0x0003c */
+- volatile u32 gppr_0; /* 0x00040 */
+- volatile u32 gppr_1; /* 0x00044 */
+- volatile u32 gppr_2; /* 0x00048 */
+- volatile u32 gppr_3; /* 0x0004c */
+- volatile u32 gppr_4; /* 0x00050 */
+- volatile u32 gppr_5; /* 0x00054 */
+- volatile u32 gppr_6; /* 0x00058 */
+- volatile u32 gppr_7; /* 0x0005c */
+- volatile u32 gppr_8; /* 0x00060 */
+- volatile u32 gppr_9; /* 0x00064 */
+- volatile u32 gppr_10; /* 0x00068 */
+- volatile u32 gppr_11; /* 0x0006c */
+- volatile u32 gppr_12; /* 0x00070 */
+- volatile u32 gppr_13; /* 0x00074 */
+- volatile u32 gppr_14; /* 0x00078 */
+- volatile u32 gppr_15; /* 0x0007c */
++ volatile __u32 gpcr_s; /* 0x00034 */
++ volatile __u32 gpcr_c; /* 0x00038 */
++ volatile __u32 gpdr; /* 0x0003c */
++ volatile __u32 gppr_0; /* 0x00040 */
++ volatile __u32 gppr_1; /* 0x00044 */
++ volatile __u32 gppr_2; /* 0x00048 */
++ volatile __u32 gppr_3; /* 0x0004c */
++ volatile __u32 gppr_4; /* 0x00050 */
++ volatile __u32 gppr_5; /* 0x00054 */
++ volatile __u32 gppr_6; /* 0x00058 */
++ volatile __u32 gppr_7; /* 0x0005c */
++ volatile __u32 gppr_8; /* 0x00060 */
++ volatile __u32 gppr_9; /* 0x00064 */
++ volatile __u32 gppr_10; /* 0x00068 */
++ volatile __u32 gppr_11; /* 0x0006c */
++ volatile __u32 gppr_12; /* 0x00070 */
++ volatile __u32 gppr_13; /* 0x00074 */
++ volatile __u32 gppr_14; /* 0x00078 */
++ volatile __u32 gppr_15; /* 0x0007c */
+
+ /* Parallel Port Registers */
+- volatile u32 ppbr_h_a; /* 0x00080 */
+- volatile u32 ppbr_l_a; /* 0x00084 */
+- volatile u32 ppcr_a; /* 0x00088 */
+- volatile u32 ppcr; /* 0x0008c */
+- volatile u32 ppbr_h_b; /* 0x00090 */
+- volatile u32 ppbr_l_b; /* 0x00094 */
+- volatile u32 ppcr_b; /* 0x00098 */
++ volatile __u32 ppbr_h_a; /* 0x00080 */
++ volatile __u32 ppbr_l_a; /* 0x00084 */
++ volatile __u32 ppcr_a; /* 0x00088 */
++ volatile __u32 ppcr; /* 0x0008c */
++ volatile __u32 ppbr_h_b; /* 0x00090 */
++ volatile __u32 ppbr_l_b; /* 0x00094 */
++ volatile __u32 ppcr_b; /* 0x00098 */
+
+ /* Keyboard and Mouse Registers */
+- volatile u32 km_csr; /* 0x0009c */
+- volatile u32 k_rd; /* 0x000a0 */
+- volatile u32 m_rd; /* 0x000a4 */
+- volatile u32 k_wd; /* 0x000a8 */
+- volatile u32 m_wd; /* 0x000ac */
++ volatile __u32 km_csr; /* 0x0009c */
++ volatile __u32 k_rd; /* 0x000a0 */
++ volatile __u32 m_rd; /* 0x000a4 */
++ volatile __u32 k_wd; /* 0x000a8 */
++ volatile __u32 m_wd; /* 0x000ac */
+
+ /* Serial Port Registers */
+- volatile u32 sbbr_h; /* 0x000b0 */
+- volatile u32 sbbr_l; /* 0x000b4 */
+- volatile u32 sscr_a; /* 0x000b8 */
+- volatile u32 stpir_a; /* 0x000bc */
+- volatile u32 stcir_a; /* 0x000c0 */
+- volatile u32 srpir_a; /* 0x000c4 */
+- volatile u32 srcir_a; /* 0x000c8 */
+- volatile u32 srtr_a; /* 0x000cc */
+- volatile u32 shadow_a; /* 0x000d0 */
+- volatile u32 sscr_b; /* 0x000d4 */
+- volatile u32 stpir_b; /* 0x000d8 */
+- volatile u32 stcir_b; /* 0x000dc */
+- volatile u32 srpir_b; /* 0x000e0 */
+- volatile u32 srcir_b; /* 0x000e4 */
+- volatile u32 srtr_b; /* 0x000e8 */
+- volatile u32 shadow_b; /* 0x000ec */
++ volatile __u32 sbbr_h; /* 0x000b0 */
++ volatile __u32 sbbr_l; /* 0x000b4 */
++ volatile __u32 sscr_a; /* 0x000b8 */
++ volatile __u32 stpir_a; /* 0x000bc */
++ volatile __u32 stcir_a; /* 0x000c0 */
++ volatile __u32 srpir_a; /* 0x000c4 */
++ volatile __u32 srcir_a; /* 0x000c8 */
++ volatile __u32 srtr_a; /* 0x000cc */
++ volatile __u32 shadow_a; /* 0x000d0 */
++ volatile __u32 sscr_b; /* 0x000d4 */
++ volatile __u32 stpir_b; /* 0x000d8 */
++ volatile __u32 stcir_b; /* 0x000dc */
++ volatile __u32 srpir_b; /* 0x000e0 */
++ volatile __u32 srcir_b; /* 0x000e4 */
++ volatile __u32 srtr_b; /* 0x000e8 */
++ volatile __u32 shadow_b; /* 0x000ec */
+
+ /* Ethernet Registers */
+- volatile u32 emcr; /* 0x000f0 */
+- volatile u32 eisr; /* 0x000f4 */
+- volatile u32 eier; /* 0x000f8 */
+- volatile u32 ercsr; /* 0x000fc */
+- volatile u32 erbr_h; /* 0x00100 */
+- volatile u32 erbr_l; /* 0x00104 */
+- volatile u32 erbar; /* 0x00108 */
+- volatile u32 ercir; /* 0x0010c */
+- volatile u32 erpir; /* 0x00110 */
+- volatile u32 ertr; /* 0x00114 */
+- volatile u32 etcsr; /* 0x00118 */
+- volatile u32 ersr; /* 0x0011c */
+- volatile u32 etcdc; /* 0x00120 */
+- volatile u32 ebir; /* 0x00124 */
+- volatile u32 etbr_h; /* 0x00128 */
+- volatile u32 etbr_l; /* 0x0012c */
+- volatile u32 etcir; /* 0x00130 */
+- volatile u32 etpir; /* 0x00134 */
+- volatile u32 emar_h; /* 0x00138 */
+- volatile u32 emar_l; /* 0x0013c */
+- volatile u32 ehar_h; /* 0x00140 */
+- volatile u32 ehar_l; /* 0x00144 */
+- volatile u32 micr; /* 0x00148 */
+- volatile u32 midr_r; /* 0x0014c */
+- volatile u32 midr_w; /* 0x00150 */
+- volatile u32 pad1[(0x20000 - 0x00154) / 4];
++ volatile __u32 emcr; /* 0x000f0 */
++ volatile __u32 eisr; /* 0x000f4 */
++ volatile __u32 eier; /* 0x000f8 */
++ volatile __u32 ercsr; /* 0x000fc */
++ volatile __u32 erbr_h; /* 0x00100 */
++ volatile __u32 erbr_l; /* 0x00104 */
++ volatile __u32 erbar; /* 0x00108 */
++ volatile __u32 ercir; /* 0x0010c */
++ volatile __u32 erpir; /* 0x00110 */
++ volatile __u32 ertr; /* 0x00114 */
++ volatile __u32 etcsr; /* 0x00118 */
++ volatile __u32 ersr; /* 0x0011c */
++ volatile __u32 etcdc; /* 0x00120 */
++ volatile __u32 ebir; /* 0x00124 */
++ volatile __u32 etbr_h; /* 0x00128 */
++ volatile __u32 etbr_l; /* 0x0012c */
++ volatile __u32 etcir; /* 0x00130 */
++ volatile __u32 etpir; /* 0x00134 */
++ volatile __u32 emar_h; /* 0x00138 */
++ volatile __u32 emar_l; /* 0x0013c */
++ volatile __u32 ehar_h; /* 0x00140 */
++ volatile __u32 ehar_l; /* 0x00144 */
++ volatile __u32 micr; /* 0x00148 */
++ volatile __u32 midr_r; /* 0x0014c */
++ volatile __u32 midr_w; /* 0x00150 */
++ volatile __u32 pad1[(0x20000 - 0x00154) / 4];
+
+ /* SuperIO Registers XXX */
+ struct ioc3_sioregs sregs; /* 0x20000 */
+- volatile u32 pad2[(0x40000 - 0x20180) / 4];
++ volatile __u32 pad2[(0x40000 - 0x20180) / 4];
+
+ /* SSRAM Diagnostic Access */
+- volatile u32 ssram[(0x80000 - 0x40000) / 4];
++ volatile __u32 ssram[(0x80000 - 0x40000) / 4];
+
+ /* Bytebus device offsets
+ 0x80000 - Access to the generic devices selected with DEV0
+@@ -179,8 +179,8 @@
+ * Ethernet RX Buffer
+ */
+ struct ioc3_erxbuf {
+- u32 w0; /* first word (valid,bcnt,cksum) */
+- u32 err; /* second word various errors */
++ __u32 w0; /* first word (valid,bcnt,cksum) */
++ __u32 err; /* second word various errors */
+ /* next comes n bytes of padding */
+ /* then the received ethernet frame itself */
+ };
+@@ -208,11 +208,11 @@
+ */
+ #define ETXD_DATALEN 104
+ struct ioc3_etxd {
+- u32 cmd; /* command field */
+- u32 bufcnt; /* buffer counts field */
+- u64 p1; /* buffer pointer 1 */
+- u64 p2; /* buffer pointer 2 */
+- u8 data[ETXD_DATALEN]; /* opt. tx data */
++ __u32 cmd; /* command field */
++ __u32 bufcnt; /* buffer counts field */
++ __u64 p1; /* buffer pointer 1 */
++ __u64 p2; /* buffer pointer 2 */
++ __u8 data[ETXD_DATALEN]; /* opt. tx data */
+ };
+
+ #define ETXD_BYTECNT_MASK 0x000007ff /* total byte count */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/klconfig.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/klconfig.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/klconfig.h 2004-03-28 07:51:55.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/klconfig.h 2004-08-26 05:26:13.000000000 -0500
+@@ -64,9 +64,9 @@
+ #define KLCFGINFO_MAGIC 0xbeedbabe
+
+ #ifdef FRUTEST
+-typedef u64 klconf_off_t;
++typedef __u64 klconf_off_t;
+ #else
+-typedef s32 klconf_off_t;
++typedef __s32 klconf_off_t;
+ #endif
+
+ /*
+@@ -160,8 +160,8 @@
+ /* Functions/macros needed to use this structure */
+
+ typedef struct kl_config_hdr {
+- u64 ch_magic; /* set this to KLCFGINFO_MAGIC */
+- u32 ch_version; /* structure version number */
++ __u64 ch_magic; /* set this to KLCFGINFO_MAGIC */
++ __u32 ch_version; /* structure version number */
+ klconf_off_t ch_malloc_hdr_off; /* offset of ch_malloc_hdr */
+ klconf_off_t ch_cons_off; /* offset of ch_cons */
+ klconf_off_t ch_board_info; /* the link list of boards */
+@@ -609,14 +609,14 @@
+
+ /* Info holders for various hardware components */
+
+-typedef u64 *pci_t;
+-typedef u64 *vmeb_t;
+-typedef u64 *vmed_t;
+-typedef u64 *fddi_t;
+-typedef u64 *scsi_t;
+-typedef u64 *mio_t;
+-typedef u64 *graphics_t;
+-typedef u64 *router_t;
++typedef __u64 *pci_t;
++typedef __u64 *vmeb_t;
++typedef __u64 *vmed_t;
++typedef __u64 *fddi_t;
++typedef __u64 *scsi_t;
++typedef __u64 *mio_t;
++typedef __u64 *graphics_t;
++typedef __u64 *router_t;
+
+ /*
+ * The port info in ip27_cfg area translates to a lboart_t in the
+@@ -659,7 +659,7 @@
+ klport_t hub_port; /* hub is connected to this */
+ nic_t hub_box_nic; /* nic of containing box */
+ klconf_off_t hub_mfg_nic; /* MFG NIC string */
+- u64 hub_speed; /* Speed of hub in HZ */
++ __u64 hub_speed; /* Speed of hub in HZ */
+ } klhub_t ;
+
+ typedef struct klhub_uart_s { /* HUB */
+@@ -716,8 +716,8 @@
+ #define MAX_PCI_SLOTS 8
+
+ typedef struct klpci_device_s {
+- s32 pci_device_id; /* 32 bits of vendor/device ID. */
+- s32 pci_device_pad; /* 32 bits of padding. */
++ __s32 pci_device_id; /* 32 bits of vendor/device ID. */
++ __s32 pci_device_pad; /* 32 bits of padding. */
+ } klpci_device_t;
+
+ #define BRIDGE_STRUCT_VERSION 2
+@@ -767,7 +767,7 @@
+ nic_t rou_box_nic ; /* nic of the containing module */
+ klport_t rou_port[MAX_ROUTER_PORTS + 1] ; /* array index 1 to 6 */
+ klconf_off_t rou_mfg_nic ; /* MFG NIC string */
+- u64 rou_vector; /* vector from master node */
++ __u64 rou_vector; /* vector from master node */
+ } klrou_t ;
+
+ /*
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/kldir.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/kldir.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/kldir.h 2004-01-17 17:03:49.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/kldir.h 2004-08-26 05:26:25.000000000 -0500
+@@ -210,7 +210,7 @@
+
+ #ifndef __ASSEMBLY__
+ typedef struct kldir_ent_s {
+- u64 magic; /* Indicates validity of entry */
++ __u64 magic; /* Indicates validity of entry */
+ off_t offset; /* Offset from start of node space */
+ #if defined(CONFIG_SGI_IO) /* FIXME */
+ __psunsigned_t pointer; /* Pointer to area in some cases */
+@@ -218,7 +218,7 @@
+ unsigned long pointer; /* Pointer to area in some cases */
+ #endif
+ size_t size; /* Size in bytes */
+- u64 count; /* Repeat count if array, 1 if not */
++ __u64 count; /* Repeat count if array, 1 if not */
+ size_t stride; /* Stride if array, 0 if not */
+ char rsvd[16]; /* Pad entry to 0x40 bytes */
+ /* NOTE: These 16 bytes are used in the Partition KLDIR
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/launch.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/launch.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/launch.h 2004-01-17 17:03:49.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/launch.h 2004-08-26 05:25:52.000000000 -0500
+@@ -62,14 +62,14 @@
+ #ifndef __ASSEMBLY__
+
+ typedef int launch_state_t;
+-typedef void (*launch_proc_t)(u64 call_parm);
++typedef void (*launch_proc_t)(__u64 call_parm);
+
+ typedef struct launch_s {
+- volatile u64 magic; /* Magic number */
+- volatile u64 busy; /* Slave currently active */
++ volatile __u64 magic; /* Magic number */
++ volatile __u64 busy; /* Slave currently active */
+ volatile launch_proc_t call_addr; /* Func. for slave to call */
+- volatile u64 call_addr_c; /* 1's complement of call_addr*/
+- volatile u64 call_parm; /* Single parm passed to call*/
++ volatile __u64 call_addr_c; /* 1's complement of call_addr*/
++ volatile __u64 call_parm; /* Single parm passed to call*/
+ volatile void *stack_addr; /* Stack pointer for slave function */
+ volatile void *gp_addr; /* Global pointer for slave func. */
+ volatile char *bevutlb;/* Address of bev utlb ex handler */
+@@ -84,7 +84,7 @@
+
+ #define LAUNCH_SLAVE (*(void (*)(int nasid, int cpu, \
+ launch_proc_t call_addr, \
+- u64 call_parm, \
++ __u64 call_parm, \
+ void *stack_addr, \
+ void *gp_addr)) \
+ IP27PROM_LAUNCHSLAVE)
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubio.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubio.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubio.h 2003-12-15 12:47:02.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubio.h 2004-08-26 05:27:21.000000000 -0500
+@@ -172,9 +172,9 @@
+ #ifndef __ASSEMBLY__
+
+ typedef union hubii_wid_u {
+- u64 wid_reg_value;
++ __u64 wid_reg_value;
+ struct {
+- u64 wid_rsvd: 32, /* unused */
++ __u64 wid_rsvd: 32, /* unused */
+ wid_rev_num: 4, /* revision number */
+ wid_part_num: 16, /* the widget type: hub=c101 */
+ wid_mfg_num: 11, /* Manufacturer id (IBM) */
+@@ -184,9 +184,9 @@
+
+
+ typedef union hubii_wcr_u {
+- u64 wcr_reg_value;
++ __u64 wcr_reg_value;
+ struct {
+- u64 wcr_rsvd: 41, /* unused */
++ __u64 wcr_rsvd: 41, /* unused */
+ wcr_e_thresh: 5, /* elasticity threshold */
+ wcr_dir_con: 1, /* widget direct connect */
+ wcr_f_bad_pkt: 1, /* Force bad llp pkt enable */
+@@ -200,9 +200,9 @@
+ #define iwcr_dir_con wcr_fields_s.wcr_dir_con
+
+ typedef union hubii_wstat_u {
+- u64 reg_value;
++ __u64 reg_value;
+ struct {
+- u64 rsvd1: 31,
++ __u64 rsvd1: 31,
+ crazy: 1, /* Crazy bit */
+ rsvd2: 8,
+ llp_tx_cnt: 8, /* LLP Xmit retry counter */
+@@ -217,9 +217,9 @@
+
+
+ typedef union hubii_ilcsr_u {
+- u64 icsr_reg_value;
++ __u64 icsr_reg_value;
+ struct {
+- u64 icsr_rsvd: 22, /* unused */
++ __u64 icsr_rsvd: 22, /* unused */
+ icsr_max_burst: 10, /* max burst */
+ icsr_rsvd4: 6, /* reserved */
+ icsr_max_retry: 10, /* max retry */
+@@ -237,9 +237,9 @@
+
+
+ typedef union hubii_iowa_u {
+- u64 iowa_reg_value;
++ __u64 iowa_reg_value;
+ struct {
+- u64 iowa_rsvd: 48, /* unused */
++ __u64 iowa_rsvd: 48, /* unused */
+ iowa_wxoac: 8, /* xtalk widget access bits */
+ iowa_rsvd1: 7, /* xtalk widget access bits */
+ iowa_w0oac: 1; /* xtalk widget access bits */
+@@ -247,9 +247,9 @@
+ } hubii_iowa_t;
+
+ typedef union hubii_iiwa_u {
+- u64 iiwa_reg_value;
++ __u64 iiwa_reg_value;
+ struct {
+- u64 iiwa_rsvd: 48, /* unused */
++ __u64 iiwa_rsvd: 48, /* unused */
+ iiwa_wxiac: 8, /* hub wid access bits */
+ iiwa_rsvd1: 7, /* reserved */
+ iiwa_w0iac: 1; /* hub wid0 access */
+@@ -257,9 +257,9 @@
+ } hubii_iiwa_t;
+
+ typedef union hubii_illr_u {
+- u64 illr_reg_value;
++ __u64 illr_reg_value;
+ struct {
+- u64 illr_rsvd: 32, /* unused */
++ __u64 illr_rsvd: 32, /* unused */
+ illr_cb_cnt: 16, /* checkbit error count */
+ illr_sn_cnt: 16; /* sequence number count */
+ } illr_fields_s;
+@@ -271,9 +271,9 @@
+ /* io_perf_sel allows the caller to specify what tests will be
+ performed */
+ typedef union io_perf_sel {
+- u64 perf_sel_reg;
++ __u64 perf_sel_reg;
+ struct {
+- u64 perf_rsvd : 48,
++ __u64 perf_rsvd : 48,
+ perf_icct : 8,
+ perf_ippr1 : 4,
+ perf_ippr0 : 4;
+@@ -284,9 +284,9 @@
+ hardware problems there is only one counter, not two. */
+
+ typedef union io_perf_cnt {
+- u64 perf_cnt;
++ __u64 perf_cnt;
+ struct {
+- u64 perf_rsvd1 : 32,
++ __u64 perf_rsvd1 : 32,
+ perf_rsvd2 : 12,
+ perf_cnt : 20;
+ } perf_cnt_bits;
+@@ -442,9 +442,9 @@
+ */
+ #ifndef __ASSEMBLY__
+ typedef union icrba_u {
+- u64 reg_value;
++ __u64 reg_value;
+ struct {
+- u64 resvd: 6,
++ __u64 resvd: 6,
+ stall_bte0: 1, /* Stall BTE 0 */
+ stall_bte1: 1, /* Stall BTE 1 */
+ error: 1, /* CRB has an error */
+@@ -464,10 +464,10 @@
+ runtime selection of the format based on the REV_ID field of the
+ NI_STATUS_REV_ID register. */
+ typedef union h1_icrba_u {
+- u64 reg_value;
++ __u64 reg_value;
+
+ struct {
+- u64 resvd: 6,
++ __u64 resvd: 6,
+ unused: 1, /* Unused but RW!! */
+ error: 1, /* CRB has an error */
+ ecode: 4, /* Error Code */
+@@ -525,9 +525,9 @@
+ */
+ #ifndef __ASSEMBLY__
+ typedef union icrbb_u {
+- u64 reg_value;
++ __u64 reg_value;
+ struct {
+- u64 rsvd1: 5,
++ __u64 rsvd1: 5,
+ btenum: 1, /* BTE to which entry belongs to */
+ cohtrans: 1, /* Coherent transaction */
+ xtsize: 2, /* Xtalk operation size
+@@ -567,9 +567,9 @@
+ runtime selection of the format based on the REV_ID field of the
+ NI_STATUS_REV_ID register. */
+ typedef union h1_icrbb_u {
+- u64 reg_value;
++ __u64 reg_value;
+ struct {
+- u64 rsvd1: 5,
++ __u64 rsvd1: 5,
+ btenum: 1, /* BTE to which entry belongs to */
+ cohtrans: 1, /* Coherent transaction */
+ xtsize: 2, /* Xtalk operation size
+@@ -683,9 +683,9 @@
+ #ifndef __ASSEMBLY__
+
+ typedef union icrbc_s {
+- u64 reg_value;
++ __u64 reg_value;
+ struct {
+- u64 rsvd: 6,
++ __u64 rsvd: 6,
+ sleep: 1,
+ pricnt: 4, /* Priority count sent with Read req */
+ pripsc: 4, /* Priority Pre scalar */
+@@ -720,9 +720,9 @@
+
+ #ifndef __ASSEMBLY__
+ typedef union icrbd_s {
+- u64 reg_value;
++ __u64 reg_value;
+ struct {
+- u64 rsvd: 38,
++ __u64 rsvd: 38,
+ toutvld: 1, /* Timeout in progress for this CRB */
+ ctxtvld: 1, /* Context field below is valid */
+ rsvd2: 1,
+@@ -742,9 +742,9 @@
+
+
+ typedef union hubii_ifdr_u {
+- u64 hi_ifdr_value;
++ __u64 hi_ifdr_value;
+ struct {
+- u64 ifdr_rsvd: 49,
++ __u64 ifdr_rsvd: 49,
+ ifdr_maxrp: 7,
+ ifdr_rsvd1: 1,
+ ifdr_maxrq: 7;
+@@ -801,9 +801,9 @@
+ #ifndef __ASSEMBLY__
+
+ typedef union iprte_a {
+- u64 entry;
++ __u64 entry;
+ struct {
+- u64 rsvd1 : 7, /* Reserved field */
++ __u64 rsvd1 : 7, /* Reserved field */
+ valid : 1, /* Maps to a timeout entry */
+ rsvd2 : 1,
+ srcnode : 9, /* Node which did this PIO */
+@@ -835,9 +835,9 @@
+ */
+
+ typedef union iprb_u {
+- u64 reg_value;
++ __u64 reg_value;
+ struct {
+- u64 rsvd1: 15,
++ __u64 rsvd1: 15,
+ error: 1, /* Widget rcvd wr resp pkt w/ error */
+ ovflow: 5, /* Over flow count. perf measurement */
+ fire_and_forget: 1, /* Launch Write without response */
+@@ -877,9 +877,9 @@
+ */
+ #ifndef __ASSEMBLY__
+ typedef union icrbp_a {
+- u64 ip_reg; /* the entire register value */
++ __u64 ip_reg; /* the entire register value */
+ struct {
+- u64 error: 1, /* 63, error occurred */
++ __u64 error: 1, /* 63, error occurred */
+ ln_uce: 1, /* 62: uncorrectable memory */
+ ln_ae: 1, /* 61: protection violation */
+ ln_werr:1, /* 60: write access error */
+@@ -919,9 +919,9 @@
+
+ #ifndef __ASSEMBLY__
+ typedef union hubii_idsr {
+- u64 iin_reg;
++ __u64 iin_reg;
+ struct {
+- u64 rsvd1 : 35,
++ __u64 rsvd1 : 35,
+ isent : 1,
+ rsvd2 : 3,
+ ienable: 1,
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubmd.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubmd.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubmd.h 2004-01-17 17:03:49.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubmd.h 2004-08-26 05:27:00.000000000 -0500
+@@ -541,7 +541,7 @@
+ */
+
+ struct dir_error_reg {
+- u64 uce_vld: 1, /* 63: valid directory uce */
++ __u64 uce_vld: 1, /* 63: valid directory uce */
+ ae_vld: 1, /* 62: valid dir prot ecc error */
+ ce_vld: 1, /* 61: valid correctable ECC err*/
+ rsvd1: 19, /* 60-42: reserved */
+@@ -555,13 +555,13 @@
+ };
+
+ typedef union md_dir_error {
+- u64 derr_reg; /* the entire register */
++ __u64 derr_reg; /* the entire register */
+ struct dir_error_reg derr_fmt; /* the register format */
+ } md_dir_error_t;
+
+
+ struct mem_error_reg {
+- u64 uce_vld: 1, /* 63: valid memory uce */
++ __u64 uce_vld: 1, /* 63: valid memory uce */
+ ce_vld: 1, /* 62: valid correctable ECC err*/
+ rsvd1: 22, /* 61-40: reserved */
+ bad_syn: 8, /* 39-32: bad mem ecc syndrome */
+@@ -573,13 +573,13 @@
+
+
+ typedef union md_mem_error {
+- u64 merr_reg; /* the entire register */
++ __u64 merr_reg; /* the entire register */
+ struct mem_error_reg merr_fmt; /* format of the mem_error reg */
+ } md_mem_error_t;
+
+
+ struct proto_error_reg {
+- u64 valid: 1, /* 63: valid protocol error */
++ __u64 valid: 1, /* 63: valid protocol error */
+ rsvd1: 2, /* 62-61: reserved */
+ initiator:11, /* 60-50: id of request initiator*/
+ backoff: 2, /* 49-48: backoff control */
+@@ -594,7 +594,7 @@
+ };
+
+ typedef union md_proto_error {
+- u64 perr_reg; /* the entire register */
++ __u64 perr_reg; /* the entire register */
+ struct proto_error_reg perr_fmt; /* format of the register */
+ } md_proto_error_t;
+
+@@ -642,7 +642,7 @@
+
+
+ struct md_pdir_high_fmt {
+- u64 pd_hi_unused : 16,
++ __u64 pd_hi_unused : 16,
+ pd_hi_bvec : 38,
+ pd_hi_unused1 : 3,
+ pd_hi_ecc : 7;
+@@ -651,14 +651,14 @@
+
+ typedef union md_pdir_high {
+ /* The 48 bits of standard directory, upper word */
+- u64 pd_hi_val;
++ __u64 pd_hi_val;
+ struct md_pdir_high_fmt pd_hi_fmt;
+ }md_pdir_high_t;
+
+
+ struct md_pdir_low_shared_fmt {
+ /* The meaning of lower directory, shared */
+- u64 pds_lo_unused : 16,
++ __u64 pds_lo_unused : 16,
+ pds_lo_bvec : 26,
+ pds_lo_cnt : 6,
+ pds_lo_state : 3,
+@@ -670,7 +670,7 @@
+
+ struct md_pdir_low_exclusive_fmt {
+ /* The meaning of lower directory, exclusive */
+- u64 pde_lo_unused : 31,
++ __u64 pde_lo_unused : 31,
+ pde_lo_ptr : 11,
+ pde_lo_unused1 : 6,
+ pde_lo_state : 3,
+@@ -683,7 +683,7 @@
+
+ typedef union md_pdir_loent {
+ /* The 48 bits of premium directory, lower word */
+- u64 pd_lo_val;
++ __u64 pd_lo_val;
+ struct md_pdir_low_exclusive_fmt pde_lo_fmt;
+ struct md_pdir_low_shared_fmt pds_lo_fmt;
+ }md_pdir_low_t;
+@@ -711,25 +711,25 @@
+ } bddir_entry_t;
+
+ typedef struct dir_mem_entry {
+- u64 prcpf[MAX_REGIONS];
++ __u64 prcpf[MAX_REGIONS];
+ bddir_entry_t directory_words[MD_PAGE_SIZE/CACHE_SLINE_SIZE];
+ } dir_mem_entry_t;
+
+
+
+ typedef union md_perf_sel {
+- u64 perf_sel_reg;
++ __u64 perf_sel_reg;
+ struct {
+- u64 perf_rsvd : 60,
++ __u64 perf_rsvd : 60,
+ perf_en : 1,
+ perf_sel : 3;
+ } perf_sel_bits;
+ } md_perf_sel_t;
+
+ typedef union md_perf_cnt {
+- u64 perf_cnt;
++ __u64 perf_cnt;
+ struct {
+- u64 perf_rsvd : 44,
++ __u64 perf_rsvd : 44,
+ perf_cnt : 20;
+ } perf_cnt_bits;
+ } md_perf_cnt_t;
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubni.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubni.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubni.h 2003-12-15 12:47:02.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubni.h 2004-08-26 05:26:48.000000000 -0500
+@@ -229,9 +229,9 @@
+ #ifndef __ASSEMBLY__
+
+ typedef union hubni_port_error_u {
+- u64 nipe_reg_value;
++ __u64 nipe_reg_value;
+ struct {
+- u64 nipe_rsvd: 26, /* unused */
++ __u64 nipe_rsvd: 26, /* unused */
+ nipe_lnk_reset: 1, /* link reset */
+ nipe_intl_err: 1, /* internal error */
+ nipe_bad_msg: 1, /* bad message */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubpi.h linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubpi.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/sn/sn0/hubpi.h 2003-12-15 12:47:02.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/sn/sn0/hubpi.h 2004-08-26 05:26:36.000000000 -0500
+@@ -312,7 +312,7 @@
+ */
+
+ struct err_stack_format {
+- u64 sk_addr : 33, /* address */
++ __u64 sk_addr : 33, /* address */
+ sk_cmd : 8, /* message command */
+ sk_crb_sts : 10, /* status from RRB or WRB */
+ sk_rw_rb : 1, /* RRB == 0, WRB == 1 */
+@@ -323,12 +323,12 @@
+ };
+
+ typedef union pi_err_stack {
+- u64 pi_stk_word;
++ __u64 pi_stk_word;
+ struct err_stack_format pi_stk_fmt;
+ } pi_err_stack_t;
+
+ struct err_status0_format {
+- u64 s0_valid : 1, /* Valid */
++ __u64 s0_valid : 1, /* Valid */
+ s0_ovr_run : 1, /* Overrun, spooled to memory */
+ s0_addr : 37, /* address */
+ s0_cmd : 8, /* message command */
+@@ -338,12 +338,12 @@
+ };
+
+ typedef union pi_err_stat0 {
+- u64 pi_stat0_word;
++ __u64 pi_stat0_word;
+ struct err_status0_format pi_stat0_fmt;
+ } pi_err_stat0_t;
+
+ struct err_status1_format {
+- u64 s1_src : 11, /* message source */
++ __u64 s1_src : 11, /* message source */
+ s1_crb_sts : 10, /* status from RRB or WRB */
+ s1_rw_rb : 1, /* RRB == 0, WRB == 1 */
+ s1_crb_num : 3, /* WRB (0 to 7) or RRB (0 to 4) */
+@@ -353,11 +353,11 @@
+ };
+
+ typedef union pi_err_stat1 {
+- u64 pi_stat1_word;
++ __u64 pi_stat1_word;
+ struct err_status1_format pi_stat1_fmt;
+ } pi_err_stat1_t;
+
+-typedef u64 rtc_time_t;
++typedef __u64 rtc_time_t;
+
+ #endif /* !__ASSEMBLY__ */
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/stackframe.h linux-libc-headers-2.6.8.0/include/asm-mips/stackframe.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/stackframe.h 2004-08-18 13:15:41.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/stackframe.h 2004-08-26 05:14:41.000000000 -0500
+@@ -25,7 +25,7 @@
+
+ .macro SAVE_TEMP
+ mfhi v1
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ LONG_S $8, PT_R8(sp)
+ LONG_S $9, PT_R9(sp)
+ #endif
+@@ -55,7 +55,7 @@
+
+ #ifdef CONFIG_SMP
+ .macro get_saved_sp /* SMP variation */
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ mfc0 k0, CP0_CONTEXT
+ lui k1, %hi(kernelsp)
+ srl k0, k0, 23
+@@ -63,7 +63,7 @@
+ addu k1, k0
+ LONG_L k1, %lo(kernelsp)(k1)
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ MFC0 k1, CP0_CONTEXT
+ dsra k1, 23
+ lui k0, %hi(pgd_current)
+@@ -76,13 +76,13 @@
+ .endm
+
+ .macro set_saved_sp stackp temp temp2
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ mfc0 \temp, CP0_CONTEXT
+ srl \temp, 23
+ sll \temp, 2
+ LONG_S \stackp, kernelsp(\temp)
+ #endif
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ lw \temp, TI_CPU(gp)
+ dsll \temp, 3
+ lui \temp2, %hi(kernelsp)
+@@ -127,7 +127,7 @@
+ LONG_S $6, PT_R6(sp)
+ MFC0 v1, CP0_EPC
+ LONG_S $7, PT_R7(sp)
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ LONG_S $8, PT_R8(sp)
+ LONG_S $9, PT_R9(sp)
+ #endif
+@@ -156,7 +156,7 @@
+
+ .macro RESTORE_TEMP
+ LONG_L $24, PT_LO(sp)
+-#ifdef CONFIG_MIPS32
++#ifndef __mips64
+ LONG_L $8, PT_R8(sp)
+ LONG_L $9, PT_R9(sp)
+ #endif
+@@ -204,7 +204,7 @@
+ LONG_L $31, PT_R31(sp)
+ LONG_L $28, PT_R28(sp)
+ LONG_L $25, PT_R25(sp)
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ LONG_L $8, PT_R8(sp)
+ LONG_L $9, PT_R9(sp)
+ #endif
+@@ -249,7 +249,7 @@
+ LONG_L $31, PT_R31(sp)
+ LONG_L $28, PT_R28(sp)
+ LONG_L $25, PT_R25(sp)
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ LONG_L $8, PT_R8(sp)
+ LONG_L $9, PT_R9(sp)
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/system.h linux-libc-headers-2.6.8.0/include/asm-mips/system.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/system.h 2004-08-18 13:15:42.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/system.h 2004-08-28 18:13:39.000000000 -0500
+@@ -15,10 +15,11 @@
+ #include <asm/sgidefs.h>
+
+ #include <linux/kernel.h>
++#include <linux/linkage.h>
+
+ #include <asm/addrspace.h>
+ #include <asm/ptrace.h>
+-#include <asm/hazards.h>
++#include <asm/types.h>
+
+ __asm__ (
+ ".macro\tlocal_irq_enable\n\t"
+@@ -311,7 +312,7 @@
+ return retval;
+ }
+
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ static inline __u64 __xchg_u64(volatile __u64 * m, __u64 val)
+ {
+ __u64 retval;
+@@ -406,7 +407,7 @@
+ return retval;
+ }
+
+-#ifdef CONFIG_MIPS64
++#ifdef __mips64
+ static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old,
+ unsigned long new)
+ {
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/tx4927/tx4927_mips.h linux-libc-headers-2.6.8.0/include/asm-mips/tx4927/tx4927_mips.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/tx4927/tx4927_mips.h 2003-12-15 12:47:03.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/tx4927/tx4927_mips.h 2004-08-26 05:22:30.000000000 -0500
+@@ -36,15 +36,15 @@
+ ".set\tmips0");
+ }
+
+-#define reg_rd08(r) ((u8 )(*((vu8 *)(r))))
+-#define reg_rd16(r) ((u16)(*((vu16*)(r))))
+-#define reg_rd32(r) ((u32)(*((vu32*)(r))))
+-#define reg_rd64(r) ((u64)(*((vu64*)(r))))
++#define reg_rd08(r) ((__u8 )(*((vu8 *)(r))))
++#define reg_rd16(r) ((__u16)(*((vu16*)(r))))
++#define reg_rd32(r) ((__u32)(*((vu32*)(r))))
++#define reg_rd64(r) ((__u64)(*((vu64*)(r))))
+
+-#define reg_wr08(r,v) ((*((vu8 *)(r)))=((u8 )(v)))
+-#define reg_wr16(r,v) ((*((vu16*)(r)))=((u16)(v)))
+-#define reg_wr32(r,v) ((*((vu32*)(r)))=((u32)(v)))
+-#define reg_wr64(r,v) ((*((vu64*)(r)))=((u64)(v)))
++#define reg_wr08(r,v) ((*((vu8 *)(r)))=((__u8 )(v)))
++#define reg_wr16(r,v) ((*((vu16*)(r)))=((__u16)(v)))
++#define reg_wr32(r,v) ((*((vu32*)(r)))=((__u32)(v)))
++#define reg_wr64(r,v) ((*((vu64*)(r)))=((__u64)(v)))
+
+ typedef volatile __signed char vs8;
+ typedef volatile unsigned char vu8;
+@@ -55,10 +55,10 @@
+ typedef volatile __signed int vs32;
+ typedef volatile unsigned int vu32;
+
+-typedef s8 s08;
++typedef __s8 s08;
+ typedef vs8 vs08;
+
+-typedef u8 u08;
++typedef __u8 u08;
+ typedef vu8 vu08;
+
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/unaligned.h linux-libc-headers-2.6.8.0/include/asm-mips/unaligned.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/unaligned.h 2004-08-15 15:38:27.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/asm-mips/unaligned.h 2004-08-26 05:22:21.000000000 -0500
+@@ -17,7 +17,7 @@
+ *
+ * This macro should be used for accessing values larger in size than
+ * single bytes at locations that are expected to be improperly aligned,
+- * e.g. retrieving a u16 value from a location not u16-aligned.
++ * e.g. retrieving a __u16 value from a location not __u16-aligned.
+ *
+ * Note that unaligned accesses can be very expensive on some architectures.
+ */
+@@ -31,7 +31,7 @@
+ *
+ * This macro should be used for placing values larger in size than
+ * single bytes at locations that are expected to be improperly aligned,
+- * e.g. writing a u16 value to a location not u16-aligned.
++ * e.g. writing a __u16 value to a location not __u16-aligned.
+ *
+ * Note that unaligned accesses can be very expensive on some architectures.
+ */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/asm-mips/xtalk/xwidget.h linux-libc-headers-2.6.8.0/include/asm-mips/xtalk/xwidget.h
+--- linux-libc-headers-2.6.8.0-dist/include/asm-mips/xtalk/xwidget.h 2003-12-15 12:47:03.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/asm-mips/xtalk/xwidget.h 2004-08-26 05:23:33.000000000 -0500
+@@ -92,7 +92,7 @@
+ * defined here
+ */
+ #ifndef __ASSEMBLY__
+-typedef u32 widgetreg_t;
++typedef __u32 widgetreg_t;
+
+ /* widget configuration registers */
+ typedef volatile struct widget_cfg {
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/acpi.h linux-libc-headers-2.6.8.0/include/linux/acpi.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/acpi.h 2004-08-18 13:16:01.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/acpi.h 2004-08-26 05:41:49.000000000 -0500
+@@ -51,49 +51,49 @@
+
+ struct acpi_table_rsdp {
+ char signature[8];
+- u8 checksum;
++ __u8 checksum;
+ char oem_id[6];
+- u8 revision;
+- u32 rsdt_address;
++ __u8 revision;
++ __u32 rsdt_address;
+ } __attribute__ ((packed));
+
+ struct acpi20_table_rsdp {
+ char signature[8];
+- u8 checksum;
++ __u8 checksum;
+ char oem_id[6];
+- u8 revision;
+- u32 rsdt_address;
+- u32 length;
+- u64 xsdt_address;
+- u8 ext_checksum;
+- u8 reserved[3];
++ __u8 revision;
++ __u32 rsdt_address;
++ __u32 length;
++ __u64 xsdt_address;
++ __u8 ext_checksum;
++ __u8 reserved[3];
+ } __attribute__ ((packed));
+
+ typedef struct {
+- u8 type;
+- u8 length;
++ __u8 type;
++ __u8 length;
+ } __attribute__ ((packed)) acpi_table_entry_header;
+
+ /* Root System Description Table (RSDT) */
+
+ struct acpi_table_rsdt {
+ struct acpi_table_header header;
+- u32 entry[8];
++ __u32 entry[8];
+ } __attribute__ ((packed));
+
+ /* Extended System Description Table (XSDT) */
+
+ struct acpi_table_xsdt {
+ struct acpi_table_header header;
+- u64 entry[1];
++ __u64 entry[1];
+ } __attribute__ ((packed));
+
+ /* Fixed ACPI Description Table (FADT) */
+
+ struct acpi_table_fadt {
+ struct acpi_table_header header;
+- u32 facs_addr;
+- u32 dsdt_addr;
++ __u32 facs_addr;
++ __u32 dsdt_addr;
+ /* ... */
+ } __attribute__ ((packed));
+
+@@ -101,10 +101,10 @@
+
+ struct acpi_table_madt {
+ struct acpi_table_header header;
+- u32 lapic_address;
++ __u32 lapic_address;
+ struct {
+- u32 pcat_compat:1;
+- u32 reserved:31;
++ __u32 pcat_compat:1;
++ __u32 reserved:31;
+ } flags;
+ } __attribute__ ((packed));
+
+@@ -122,85 +122,85 @@
+ };
+
+ typedef struct {
+- u16 polarity:2;
+- u16 trigger:2;
+- u16 reserved:12;
++ __u16 polarity:2;
++ __u16 trigger:2;
++ __u16 reserved:12;
+ } __attribute__ ((packed)) acpi_interrupt_flags;
+
+ struct acpi_table_lapic {
+ acpi_table_entry_header header;
+- u8 acpi_id;
+- u8 id;
++ __u8 acpi_id;
++ __u8 id;
+ struct {
+- u32 enabled:1;
+- u32 reserved:31;
++ __u32 enabled:1;
++ __u32 reserved:31;
+ } flags;
+ } __attribute__ ((packed));
+
+ struct acpi_table_ioapic {
+ acpi_table_entry_header header;
+- u8 id;
+- u8 reserved;
+- u32 address;
+- u32 global_irq_base;
++ __u8 id;
++ __u8 reserved;
++ __u32 address;
++ __u32 global_irq_base;
+ } __attribute__ ((packed));
+
+ struct acpi_table_int_src_ovr {
+ acpi_table_entry_header header;
+- u8 bus;
+- u8 bus_irq;
+- u32 global_irq;
++ __u8 bus;
++ __u8 bus_irq;
++ __u32 global_irq;
+ acpi_interrupt_flags flags;
+ } __attribute__ ((packed));
+
+ struct acpi_table_nmi_src {
+ acpi_table_entry_header header;
+ acpi_interrupt_flags flags;
+- u32 global_irq;
++ __u32 global_irq;
+ } __attribute__ ((packed));
+
+ struct acpi_table_lapic_nmi {
+ acpi_table_entry_header header;
+- u8 acpi_id;
++ __u8 acpi_id;
+ acpi_interrupt_flags flags;
+- u8 lint;
++ __u8 lint;
+ } __attribute__ ((packed));
+
+ struct acpi_table_lapic_addr_ovr {
+ acpi_table_entry_header header;
+- u8 reserved[2];
+- u64 address;
++ __u8 reserved[2];
++ __u64 address;
+ } __attribute__ ((packed));
+
+ struct acpi_table_iosapic {
+ acpi_table_entry_header header;
+- u8 id;
+- u8 reserved;
+- u32 global_irq_base;
+- u64 address;
++ __u8 id;
++ __u8 reserved;
++ __u32 global_irq_base;
++ __u64 address;
+ } __attribute__ ((packed));
+
+ struct acpi_table_lsapic {
+ acpi_table_entry_header header;
+- u8 acpi_id;
+- u8 id;
+- u8 eid;
+- u8 reserved[3];
++ __u8 acpi_id;
++ __u8 id;
++ __u8 eid;
++ __u8 reserved[3];
+ struct {
+- u32 enabled:1;
+- u32 reserved:31;
++ __u32 enabled:1;
++ __u32 reserved:31;
+ } flags;
+ } __attribute__ ((packed));
+
+ struct acpi_table_plat_int_src {
+ acpi_table_entry_header header;
+ acpi_interrupt_flags flags;
+- u8 type; /* See acpi_interrupt_type */
+- u8 id;
+- u8 eid;
+- u8 iosapic_vector;
+- u32 global_irq;
+- u32 reserved;
++ __u8 type; /* See acpi_interrupt_type */
++ __u8 id;
++ __u8 eid;
++ __u8 iosapic_vector;
++ __u32 global_irq;
++ __u32 reserved;
+ } __attribute__ ((packed));
+
+ enum acpi_interrupt_id {
+@@ -213,21 +213,21 @@
+ #define ACPI_SPACE_MEM 0
+
+ struct acpi_gen_regaddr {
+- u8 space_id;
+- u8 bit_width;
+- u8 bit_offset;
+- u8 resv;
+- u32 addrl;
+- u32 addrh;
++ __u8 space_id;
++ __u8 bit_width;
++ __u8 bit_offset;
++ __u8 resv;
++ __u32 addrl;
++ __u32 addrh;
+ } __attribute__ ((packed));
+
+ struct acpi_table_hpet {
+ struct acpi_table_header header;
+- u32 id;
++ __u32 id;
+ struct acpi_gen_regaddr addr;
+- u8 number;
+- u16 min_tick;
+- u8 page_protect;
++ __u8 number;
++ __u16 min_tick;
++ __u8 page_protect;
+ } __attribute__ ((packed));
+
+ /*
+@@ -236,17 +236,17 @@
+ */
+ struct acpi_table_sbf
+ {
+- u8 sbf_signature[4];
+- u32 sbf_len;
+- u8 sbf_revision;
+- u8 sbf_csum;
+- u8 sbf_oemid[6];
+- u8 sbf_oemtable[8];
+- u8 sbf_revdata[4];
+- u8 sbf_creator[4];
+- u8 sbf_crearev[4];
+- u8 sbf_cmos;
+- u8 sbf_spare[3];
++ __u8 sbf_signature[4];
++ __u32 sbf_len;
++ __u8 sbf_revision;
++ __u8 sbf_csum;
++ __u8 sbf_oemid[6];
++ __u8 sbf_oemtable[8];
++ __u8 sbf_revdata[4];
++ __u8 sbf_creator[4];
++ __u8 sbf_crearev[4];
++ __u8 sbf_cmos;
++ __u8 sbf_spare[3];
+ } __attribute__ ((packed));
+
+ /*
+@@ -256,8 +256,8 @@
+
+ struct acpi_table_srat {
+ struct acpi_table_header header;
+- u32 table_revision;
+- u64 reserved;
++ __u32 table_revision;
++ __u64 reserved;
+ } __attribute__ ((packed));
+
+ enum acpi_srat_entry_id {
+@@ -268,31 +268,31 @@
+
+ struct acpi_table_processor_affinity {
+ acpi_table_entry_header header;
+- u8 proximity_domain;
+- u8 apic_id;
++ __u8 proximity_domain;
++ __u8 apic_id;
+ struct {
+- u32 enabled:1;
+- u32 reserved:31;
++ __u32 enabled:1;
++ __u32 reserved:31;
+ } flags;
+- u8 lsapic_eid;
+- u8 reserved[7];
++ __u8 lsapic_eid;
++ __u8 reserved[7];
+ } __attribute__ ((packed));
+
+ struct acpi_table_memory_affinity {
+ acpi_table_entry_header header;
+- u8 proximity_domain;
+- u8 reserved1[5];
+- u32 base_addr_lo;
+- u32 base_addr_hi;
+- u32 length_lo;
+- u32 length_hi;
+- u32 memory_type; /* See acpi_address_range_id */
++ __u8 proximity_domain;
++ __u8 reserved1[5];
++ __u32 base_addr_lo;
++ __u32 base_addr_hi;
++ __u32 length_lo;
++ __u32 length_hi;
++ __u32 memory_type; /* See acpi_address_range_id */
+ struct {
+- u32 enabled:1;
+- u32 hot_pluggable:1;
+- u32 reserved:30;
++ __u32 enabled:1;
++ __u32 hot_pluggable:1;
++ __u32 reserved:30;
+ } flags;
+- u64 reserved2;
++ __u64 reserved2;
+ } __attribute__ ((packed));
+
+ enum acpi_address_range_id {
+@@ -310,17 +310,17 @@
+
+ struct acpi_table_slit {
+ struct acpi_table_header header;
+- u64 localities;
+- u8 entry[1]; /* real size = localities^2 */
++ __u64 localities;
++ __u8 entry[1]; /* real size = localities^2 */
+ } __attribute__ ((packed));
+
+ /* Smart Battery Description Table (SBST) */
+
+ struct acpi_table_sbst {
+ struct acpi_table_header header;
+- u32 warning; /* Warn user */
+- u32 low; /* Critical sleep */
+- u32 critical; /* Critical shutdown */
++ __u32 warning; /* Warn user */
++ __u32 low; /* Critical sleep */
++ __u32 critical; /* Critical shutdown */
+ } __attribute__ ((packed));
+
+ /* Embedded Controller Boot Resources Table (ECDT) */
+@@ -329,8 +329,8 @@
+ struct acpi_table_header header;
+ struct acpi_generic_address ec_control;
+ struct acpi_generic_address ec_data;
+- u32 uid;
+- u8 gpe_bit;
++ __u32 uid;
++ __u8 gpe_bit;
+ char ec_id[0];
+ } __attribute__ ((packed));
+
+@@ -338,9 +338,9 @@
+
+ struct acpi_table_mcfg {
+ struct acpi_table_header header;
+- u8 reserved[8];
+- u32 base_address;
+- u32 base_reserved;
++ __u8 reserved[8];
++ __u32 base_address;
++ __u32 base_reserved;
+ } __attribute__ ((packed));
+
+ /* Table Handlers */
+@@ -396,7 +396,7 @@
+
+ extern int acpi_mp_config;
+
+-extern u32 pci_mmcfg_base_addr;
++extern __u32 pci_mmcfg_base_addr;
+
+ extern int sbf_port ;
+
+@@ -411,20 +411,20 @@
+
+ #endif /*!CONFIG_ACPI_BOOT*/
+
+-unsigned int acpi_register_gsi (u32 gsi, int edge_level, int active_high_low);
+-int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
++unsigned int acpi_register_gsi (__u32 gsi, int edge_level, int active_high_low);
++int acpi_gsi_to_irq (__u32 gsi, unsigned int *irq);
+
+ #ifdef CONFIG_ACPI_PCI
+
+ struct acpi_prt_entry {
+ struct list_head node;
+ struct acpi_pci_id id;
+- u8 pin;
++ __u8 pin;
+ struct {
+ acpi_handle handle;
+- u32 index;
++ __u32 index;
+ } link;
+- u32 irq;
++ __u32 irq;
+ };
+
+ struct acpi_prt_list {
+@@ -451,8 +451,8 @@
+
+ #ifdef CONFIG_ACPI_EC
+
+-int ec_read(u8 addr, u8 *val);
+-int ec_write(u8 addr, u8 val);
++int ec_read(__u8 addr, __u8 *val);
++int ec_write(__u8 addr, __u8 val);
+
+ #endif /*CONFIG_ACPI_EC*/
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_i.h linux-libc-headers-2.6.8.0/include/linux/affs_fs_i.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_i.h 2003-12-31 17:46:48.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/affs_fs_i.h 2004-08-26 05:41:49.000000000 -0500
+@@ -9,13 +9,13 @@
+ //#define AFFS_CACHE_SIZE (4*4)
+
+ #define AFFS_MAX_PREALLOC 32
+-#define AFFS_LC_SIZE (AFFS_CACHE_SIZE/sizeof(u32)/2)
++#define AFFS_LC_SIZE (AFFS_CACHE_SIZE/sizeof(__u32)/2)
+ #define AFFS_AC_SIZE (AFFS_CACHE_SIZE/sizeof(struct affs_ext_key)/2)
+ #define AFFS_AC_MASK (AFFS_AC_SIZE-1)
+
+ struct affs_ext_key {
+- u32 ext; /* idx of the extended block */
+- u32 key; /* block number */
++ __u32 ext; /* idx of the extended block */
++ __u32 key; /* block number */
+ };
+
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_sb.h linux-libc-headers-2.6.8.0/include/linux/affs_fs_sb.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/affs_fs_sb.h 2004-08-18 13:16:01.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/affs_fs_sb.h 2004-08-26 05:41:49.000000000 -0500
+@@ -9,8 +9,8 @@
+ */
+
+ struct affs_bm_info {
+- u32 bm_key; /* Disk block number */
+- u32 bm_free; /* Free blocks in here */
++ __u32 bm_key; /* Disk block number */
++ __u32 bm_free; /* Free blocks in here */
+ };
+
+ #define SF_INTL 0x0001 /* International filesystem. */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/affs_hardblocks.h linux-libc-headers-2.6.8.0/include/linux/affs_hardblocks.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/affs_hardblocks.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/affs_hardblocks.h 2004-08-26 05:41:49.000000000 -0500
+@@ -4,59 +4,59 @@
+ /* Just the needed definitions for the RDB of an Amiga HD. */
+
+ struct RigidDiskBlock {
+- u32 rdb_ID;
+- u32 rdb_SummedLongs;
+- s32 rdb_ChkSum;
+- u32 rdb_HostID;
+- u32 rdb_BlockBytes;
+- u32 rdb_Flags;
+- u32 rdb_BadBlockList;
+- u32 rdb_PartitionList;
+- u32 rdb_FileSysHeaderList;
+- u32 rdb_DriveInit;
+- u32 rdb_Reserved1[6];
+- u32 rdb_Cylinders;
+- u32 rdb_Sectors;
+- u32 rdb_Heads;
+- u32 rdb_Interleave;
+- u32 rdb_Park;
+- u32 rdb_Reserved2[3];
+- u32 rdb_WritePreComp;
+- u32 rdb_ReducedWrite;
+- u32 rdb_StepRate;
+- u32 rdb_Reserved3[5];
+- u32 rdb_RDBBlocksLo;
+- u32 rdb_RDBBlocksHi;
+- u32 rdb_LoCylinder;
+- u32 rdb_HiCylinder;
+- u32 rdb_CylBlocks;
+- u32 rdb_AutoParkSeconds;
+- u32 rdb_HighRDSKBlock;
+- u32 rdb_Reserved4;
++ __u32 rdb_ID;
++ __u32 rdb_SummedLongs;
++ __s32 rdb_ChkSum;
++ __u32 rdb_HostID;
++ __u32 rdb_BlockBytes;
++ __u32 rdb_Flags;
++ __u32 rdb_BadBlockList;
++ __u32 rdb_PartitionList;
++ __u32 rdb_FileSysHeaderList;
++ __u32 rdb_DriveInit;
++ __u32 rdb_Reserved1[6];
++ __u32 rdb_Cylinders;
++ __u32 rdb_Sectors;
++ __u32 rdb_Heads;
++ __u32 rdb_Interleave;
++ __u32 rdb_Park;
++ __u32 rdb_Reserved2[3];
++ __u32 rdb_WritePreComp;
++ __u32 rdb_ReducedWrite;
++ __u32 rdb_StepRate;
++ __u32 rdb_Reserved3[5];
++ __u32 rdb_RDBBlocksLo;
++ __u32 rdb_RDBBlocksHi;
++ __u32 rdb_LoCylinder;
++ __u32 rdb_HiCylinder;
++ __u32 rdb_CylBlocks;
++ __u32 rdb_AutoParkSeconds;
++ __u32 rdb_HighRDSKBlock;
++ __u32 rdb_Reserved4;
+ char rdb_DiskVendor[8];
+ char rdb_DiskProduct[16];
+ char rdb_DiskRevision[4];
+ char rdb_ControllerVendor[8];
+ char rdb_ControllerProduct[16];
+ char rdb_ControllerRevision[4];
+- u32 rdb_Reserved5[10];
++ __u32 rdb_Reserved5[10];
+ };
+
+ #define IDNAME_RIGIDDISK 0x5244534B /* "RDSK" */
+
+ struct PartitionBlock {
+- u32 pb_ID;
+- u32 pb_SummedLongs;
+- s32 pb_ChkSum;
+- u32 pb_HostID;
+- u32 pb_Next;
+- u32 pb_Flags;
+- u32 pb_Reserved1[2];
+- u32 pb_DevFlags;
+- u8 pb_DriveName[32];
+- u32 pb_Reserved2[15];
+- u32 pb_Environment[17];
+- u32 pb_EReserved[15];
++ __u32 pb_ID;
++ __u32 pb_SummedLongs;
++ __s32 pb_ChkSum;
++ __u32 pb_HostID;
++ __u32 pb_Next;
++ __u32 pb_Flags;
++ __u32 pb_Reserved1[2];
++ __u32 pb_DevFlags;
++ __u8 pb_DriveName[32];
++ __u32 pb_Reserved2[15];
++ __u32 pb_Environment[17];
++ __u32 pb_EReserved[15];
+ };
+
+ #define IDNAME_PARTITION 0x50415254 /* "PART" */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/amigaffs.h linux-libc-headers-2.6.8.0/include/linux/amigaffs.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/amigaffs.h 2003-12-31 17:46:48.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/amigaffs.h 2004-08-26 05:41:49.000000000 -0500
+@@ -64,90 +64,90 @@
+ #define AFFS_DATA(bh) (((struct affs_data_head *)(bh)->b_data)->data)
+
+ struct affs_date {
+- u32 days;
+- u32 mins;
+- u32 ticks;
++ __u32 days;
++ __u32 mins;
++ __u32 ticks;
+ };
+
+ struct affs_short_date {
+- u16 days;
+- u16 mins;
+- u16 ticks;
++ __u16 days;
++ __u16 mins;
++ __u16 ticks;
+ };
+
+ struct affs_root_head {
+- u32 ptype;
+- u32 spare1;
+- u32 spare2;
+- u32 hash_size;
+- u32 spare3;
+- u32 checksum;
+- u32 hashtable[1];
++ __u32 ptype;
++ __u32 spare1;
++ __u32 spare2;
++ __u32 hash_size;
++ __u32 spare3;
++ __u32 checksum;
++ __u32 hashtable[1];
+ };
+
+ struct affs_root_tail {
+- u32 bm_flag;
+- u32 bm_blk[AFFS_ROOT_BMAPS];
+- u32 bm_ext;
++ __u32 bm_flag;
++ __u32 bm_blk[AFFS_ROOT_BMAPS];
++ __u32 bm_ext;
+ struct affs_date root_change;
+- u8 disk_name[32];
+- u32 spare1;
+- u32 spare2;
++ __u8 disk_name[32];
++ __u32 spare1;
++ __u32 spare2;
+ struct affs_date disk_change;
+ struct affs_date disk_create;
+- u32 spare3;
+- u32 spare4;
+- u32 dcache;
+- u32 stype;
++ __u32 spare3;
++ __u32 spare4;
++ __u32 dcache;
++ __u32 stype;
+ };
+
+ struct affs_head {
+- u32 ptype;
+- u32 key;
+- u32 block_count;
+- u32 spare1;
+- u32 first_data;
+- u32 checksum;
+- u32 table[1];
++ __u32 ptype;
++ __u32 key;
++ __u32 block_count;
++ __u32 spare1;
++ __u32 first_data;
++ __u32 checksum;
++ __u32 table[1];
+ };
+
+ struct affs_tail {
+- u32 spare1;
+- u16 uid;
+- u16 gid;
+- u32 protect;
+- u32 size;
+- u8 comment[92];
++ __u32 spare1;
++ __u16 uid;
++ __u16 gid;
++ __u32 protect;
++ __u32 size;
++ __u8 comment[92];
+ struct affs_date change;
+- u8 name[32];
+- u32 spare2;
+- u32 original;
+- u32 link_chain;
+- u32 spare[5];
+- u32 hash_chain;
+- u32 parent;
+- u32 extension;
+- u32 stype;
++ __u8 name[32];
++ __u32 spare2;
++ __u32 original;
++ __u32 link_chain;
++ __u32 spare[5];
++ __u32 hash_chain;
++ __u32 parent;
++ __u32 extension;
++ __u32 stype;
+ };
+
+ struct slink_front
+ {
+- u32 ptype;
+- u32 key;
+- u32 spare1[3];
+- u32 checksum;
+- u8 symname[1]; /* depends on block size */
++ __u32 ptype;
++ __u32 key;
++ __u32 spare1[3];
++ __u32 checksum;
++ __u8 symname[1]; /* depends on block size */
+ };
+
+ struct affs_data_head
+ {
+- u32 ptype;
+- u32 key;
+- u32 sequence;
+- u32 size;
+- u32 next;
+- u32 checksum;
+- u8 data[1]; /* depends on block size */
++ __u32 ptype;
++ __u32 key;
++ __u32 sequence;
++ __u32 size;
++ __u32 next;
++ __u32 checksum;
++ __u8 data[1]; /* depends on block size */
+ };
+
+ /* Permission bits */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/ata.h linux-libc-headers-2.6.8.0/include/linux/ata.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/ata.h 2004-08-18 13:16:01.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/ata.h 2004-08-26 05:41:49.000000000 -0500
+@@ -34,7 +34,7 @@
+ ATA_MAX_PRD = 256, /* we could make these 256/256 */
+ ATA_SECT_SIZE = 512,
+ ATA_SECT_SIZE_MASK = (ATA_SECT_SIZE - 1),
+- ATA_SECT_DWORDS = ATA_SECT_SIZE / sizeof(u32),
++ ATA_SECT_DWORDS = ATA_SECT_SIZE / sizeof(__u32),
+
+ ATA_ID_WORDS = 256,
+ ATA_ID_PROD_OFS = 27,
+@@ -176,31 +176,31 @@
+ /* core structures */
+
+ struct ata_prd {
+- u32 addr;
+- u32 flags_len;
++ __u32 addr;
++ __u32 flags_len;
+ } __attribute__((packed));
+
+ struct ata_taskfile {
+ unsigned long flags; /* ATA_TFLAG_xxx */
+- u8 protocol; /* ATA_PROT_xxx */
++ __u8 protocol; /* ATA_PROT_xxx */
+
+- u8 ctl; /* control reg */
++ __u8 ctl; /* control reg */
+
+- u8 hob_feature; /* additional data */
+- u8 hob_nsect; /* to support LBA48 */
+- u8 hob_lbal;
+- u8 hob_lbam;
+- u8 hob_lbah;
++ __u8 hob_feature; /* additional data */
++ __u8 hob_nsect; /* to support LBA48 */
++ __u8 hob_lbal;
++ __u8 hob_lbam;
++ __u8 hob_lbah;
+
+- u8 feature;
+- u8 nsect;
+- u8 lbal;
+- u8 lbam;
+- u8 lbah;
++ __u8 feature;
++ __u8 nsect;
++ __u8 lbal;
++ __u8 lbam;
++ __u8 lbah;
+
+- u8 device;
++ __u8 device;
+
+- u8 command; /* IO operation */
++ __u8 command; /* IO operation */
+ };
+
+ #define ata_id_is_ata(dev) (((dev)->id[0] & (1 << 15)) == 0)
+@@ -213,12 +213,12 @@
+ #define ata_id_has_dma(dev) ((dev)->id[49] & (1 << 8))
+ #define ata_id_removeable(dev) ((dev)->id[0] & (1 << 7))
+ #define ata_id_u32(dev,n) \
+- (((u32) (dev)->id[(n) + 1] << 16) | ((u32) (dev)->id[(n)]))
++ (((__u32) (dev)->id[(n) + 1] << 16) | ((__u32) (dev)->id[(n)]))
+ #define ata_id_u64(dev,n) \
+- ( ((u64) dev->id[(n) + 3] << 48) | \
+- ((u64) dev->id[(n) + 2] << 32) | \
+- ((u64) dev->id[(n) + 1] << 16) | \
+- ((u64) dev->id[(n) + 0]) )
++ ( ((__u64) dev->id[(n) + 3] << 48) | \
++ ((__u64) dev->id[(n) + 2] << 32) | \
++ ((__u64) dev->id[(n) + 1] << 16) | \
++ ((__u64) dev->id[(n) + 0]) )
+
+ static inline int is_atapi_taskfile(struct ata_taskfile *tf)
+ {
+@@ -226,7 +226,7 @@
+ (tf->protocol == ATA_PROT_ATAPI_DMA);
+ }
+
+-static inline int ata_ok(u8 status)
++static inline int ata_ok(__u8 status)
+ {
+ return ((status & (ATA_BUSY | ATA_DRDY | ATA_DF | ATA_DRQ | ATA_ERR))
+ == ATA_DRDY);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/bitops.h linux-libc-headers-2.6.8.0/include/linux/bitops.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/bitops.h 2004-06-09 07:00:49.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/bitops.h 2004-08-26 05:41:49.000000000 -0500
+@@ -114,7 +114,7 @@
+ return generic_hweight32((unsigned int)(w >> 32)) +
+ generic_hweight32((unsigned int)w);
+ #else
+- u64 res;
++ __u64 res;
+ res = (w & 0x5555555555555555ul) + ((w >> 1) & 0x5555555555555555ul);
+ res = (res & 0x3333333333333333ul) + ((res >> 2) & 0x3333333333333333ul);
+ res = (res & 0x0F0F0F0F0F0F0F0Ful) + ((res >> 4) & 0x0F0F0F0F0F0F0F0Ful);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/compat.h linux-libc-headers-2.6.8.0/include/linux/compat.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/compat.h 2004-06-09 07:00:49.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/compat.h 2004-08-26 05:41:49.000000000 -0500
+@@ -78,9 +78,9 @@
+ };
+
+ struct compat_dirent {
+- u32 d_ino;
++ __u32 d_ino;
+ compat_off_t d_off;
+- u16 d_reclen;
++ __u16 d_reclen;
+ char d_name[256];
+ };
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/console.h linux-libc-headers-2.6.8.0/include/linux/console.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/console.h 2004-08-18 13:16:02.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/console.h 2004-08-26 05:41:49.000000000 -0500
+@@ -49,9 +49,9 @@
+ int (*con_scrolldelta)(struct vc_data *, int);
+ int (*con_set_origin)(struct vc_data *);
+ void (*con_save_screen)(struct vc_data *);
+- u8 (*con_build_attr)(struct vc_data *, u8, u8, u8, u8, u8);
+- void (*con_invert_region)(struct vc_data *, u16 *, int);
+- u16 *(*con_screen_pos)(struct vc_data *, int);
++ __u8 (*con_build_attr)(struct vc_data *, __u8, __u8, __u8, __u8, __u8);
++ void (*con_invert_region)(struct vc_data *, __u16 *, int);
++ __u16 *(*con_screen_pos)(struct vc_data *, int);
+ unsigned long (*con_getxy)(struct vc_data *, unsigned long, int *, int *);
+ };
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cpufreq.h linux-libc-headers-2.6.8.0/include/linux/cpufreq.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/cpufreq.h 2004-06-23 16:52:53.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/cpufreq.h 2004-08-26 05:41:49.000000000 -0500
+@@ -103,7 +103,7 @@
+ unsigned int cpu; /* cpu nr */
+ unsigned int old;
+ unsigned int new;
+- u8 flags; /* flags of cpufreq_driver, see below. */
++ __u8 flags; /* flags of cpufreq_driver, see below. */
+ };
+
+
+@@ -120,13 +120,13 @@
+ {
+ #if BITS_PER_LONG == 32
+
+- u64 result = ((u64) old) * ((u64) mult);
++ __u64 result = ((__u64) old) * ((__u64) mult);
+ do_div(result, div);
+ return (unsigned long) result;
+
+ #elif BITS_PER_LONG == 64
+
+- unsigned long result = old * ((u64) mult);
++ unsigned long result = old * ((__u64) mult);
+ result /= div;
+ return result;
+
+@@ -178,7 +178,7 @@
+ struct cpufreq_driver {
+ struct module *owner;
+ char name[CPUFREQ_NAME_LEN];
+- u8 flags;
++ __u8 flags;
+
+ /* needed by all drivers */
+ int (*init) (struct cpufreq_policy *policy);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cramfs_fs.h linux-libc-headers-2.6.8.0/include/linux/cramfs_fs.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/cramfs_fs.h 2004-01-05 12:42:27.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/cramfs_fs.h 2004-08-26 05:41:49.000000000 -0500
+@@ -2,9 +2,9 @@
+ #define __CRAMFS_H
+
+
+-typedef unsigned char u8;
+-typedef unsigned short u16;
+-typedef unsigned int u32;
++typedef unsigned char __u8;
++typedef unsigned short __u16;
++typedef unsigned int __u32;
+
+
+ #define CRAMFS_MAGIC 0x28cd3d45 /* some random number */
+@@ -31,9 +31,9 @@
+ * Reasonably terse representation of the inode data.
+ */
+ struct cramfs_inode {
+- u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH;
++ __u32 mode:CRAMFS_MODE_WIDTH, uid:CRAMFS_UID_WIDTH;
+ /* SIZE for device files is i_rdev */
+- u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH;
++ __u32 size:CRAMFS_SIZE_WIDTH, gid:CRAMFS_GID_WIDTH;
+ /* NAMELEN is the length of the file name, divided by 4 and
+ rounded up. (cramfs doesn't support hard links.) */
+ /* OFFSET: For symlinks and non-empty regular files, this
+@@ -42,27 +42,27 @@
+ see README). For non-empty directories it is the offset
+ (divided by 4) of the inode of the first file in that
+ directory. For anything else, offset is zero. */
+- u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH;
++ __u32 namelen:CRAMFS_NAMELEN_WIDTH, offset:CRAMFS_OFFSET_WIDTH;
+ };
+
+ struct cramfs_info {
+- u32 crc;
+- u32 edition;
+- u32 blocks;
+- u32 files;
++ __u32 crc;
++ __u32 edition;
++ __u32 blocks;
++ __u32 files;
+ };
+
+ /*
+ * Superblock information at the beginning of the FS.
+ */
+ struct cramfs_super {
+- u32 magic; /* 0x28cd3d45 - random number */
+- u32 size; /* length in bytes */
+- u32 flags; /* feature flags */
+- u32 future; /* reserved for future use */
+- u8 signature[16]; /* "Compressed ROMFS" */
++ __u32 magic; /* 0x28cd3d45 - random number */
++ __u32 size; /* length in bytes */
++ __u32 flags; /* feature flags */
++ __u32 future; /* reserved for future use */
++ __u8 signature[16]; /* "Compressed ROMFS" */
+ struct cramfs_info fsid; /* unique filesystem info */
+- u8 name[16]; /* user-defined name */
++ __u8 name[16]; /* user-defined name */
+ struct cramfs_inode root; /* root inode data */
+ };
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/crc32.h linux-libc-headers-2.6.8.0/include/linux/crc32.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/crc32.h 2003-12-15 12:46:57.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/crc32.h 2004-08-26 05:41:49.000000000 -0500
+@@ -7,9 +7,9 @@
+
+ #include <linux/types.h>
+
+-extern u32 crc32_le(u32 crc, unsigned char const *p, size_t len);
+-extern u32 crc32_be(u32 crc, unsigned char const *p, size_t len);
+-extern u32 bitreverse(u32 in);
++extern __u32 crc32_le(__u32 crc, unsigned char const *p, size_t len);
++extern __u32 crc32_be(__u32 crc, unsigned char const *p, size_t len);
++extern __u32 bitreverse(__u32 in);
+
+ #define crc32(seed, data, length) crc32_le(seed, (unsigned char const *)data, length)
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/crypto.h linux-libc-headers-2.6.8.0/include/linux/crypto.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/crypto.h 2004-04-19 16:13:51.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/crypto.h 2004-08-26 05:41:49.000000000 -0500
+@@ -63,28 +63,28 @@
+ struct cipher_alg {
+ unsigned int cia_min_keysize;
+ unsigned int cia_max_keysize;
+- int (*cia_setkey)(void *ctx, const u8 *key,
+- unsigned int keylen, u32 *flags);
+- void (*cia_encrypt)(void *ctx, u8 *dst, const u8 *src);
+- void (*cia_decrypt)(void *ctx, u8 *dst, const u8 *src);
++ int (*cia_setkey)(void *ctx, const __u8 *key,
++ unsigned int keylen, __u32 *flags);
++ void (*cia_encrypt)(void *ctx, __u8 *dst, const __u8 *src);
++ void (*cia_decrypt)(void *ctx, __u8 *dst, const __u8 *src);
+ };
+
+ struct digest_alg {
+ unsigned int dia_digestsize;
+ void (*dia_init)(void *ctx);
+- void (*dia_update)(void *ctx, const u8 *data, unsigned int len);
+- void (*dia_final)(void *ctx, u8 *out);
+- int (*dia_setkey)(void *ctx, const u8 *key,
+- unsigned int keylen, u32 *flags);
++ void (*dia_update)(void *ctx, const __u8 *data, unsigned int len);
++ void (*dia_final)(void *ctx, __u8 *out);
++ int (*dia_setkey)(void *ctx, const __u8 *key,
++ unsigned int keylen, __u32 *flags);
+ };
+
+ struct compress_alg {
+ int (*coa_init)(void *ctx);
+ void (*coa_exit)(void *ctx);
+- int (*coa_compress)(void *ctx, const u8 *src, unsigned int slen,
+- u8 *dst, unsigned int *dlen);
+- int (*coa_decompress)(void *ctx, const u8 *src, unsigned int slen,
+- u8 *dst, unsigned int *dlen);
++ int (*coa_compress)(void *ctx, const __u8 *src, unsigned int slen,
++ __u8 *dst, unsigned int *dlen);
++ int (*coa_decompress)(void *ctx, const __u8 *src, unsigned int slen,
++ __u8 *dst, unsigned int *dlen);
+ };
+
+ #define cra_cipher cra_u.cipher
+@@ -93,7 +93,7 @@
+
+ struct crypto_alg {
+ struct list_head cra_list;
+- u32 cra_flags;
++ __u32 cra_flags;
+ unsigned int cra_blocksize;
+ unsigned int cra_ctxsize;
+ const char cra_name[CRYPTO_MAX_ALG_NAME];
+@@ -116,7 +116,7 @@
+ /*
+ * Algorithm query interface.
+ */
+-int crypto_alg_available(const char *name, u32 flags);
++int crypto_alg_available(const char *name, __u32 flags);
+
+ /*
+ * Transforms: user-instantiated objects which encapsulate algorithms
+@@ -128,9 +128,9 @@
+ struct cipher_tfm {
+ void *cit_iv;
+ unsigned int cit_ivsize;
+- u32 cit_mode;
++ __u32 cit_mode;
+ int (*cit_setkey)(struct crypto_tfm *tfm,
+- const u8 *key, unsigned int keylen);
++ const __u8 *key, unsigned int keylen);
+ int (*cit_encrypt)(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+@@ -138,7 +138,7 @@
+ int (*cit_encrypt_iv)(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+- unsigned int nbytes, u8 *iv);
++ unsigned int nbytes, __u8 *iv);
+ int (*cit_decrypt)(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+@@ -146,19 +146,19 @@
+ int (*cit_decrypt_iv)(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+- unsigned int nbytes, u8 *iv);
+- void (*cit_xor_block)(u8 *dst, const u8 *src);
++ unsigned int nbytes, __u8 *iv);
++ void (*cit_xor_block)(__u8 *dst, const __u8 *src);
+ };
+
+ struct digest_tfm {
+ void (*dit_init)(struct crypto_tfm *tfm);
+ void (*dit_update)(struct crypto_tfm *tfm,
+ struct scatterlist *sg, unsigned int nsg);
+- void (*dit_final)(struct crypto_tfm *tfm, u8 *out);
++ void (*dit_final)(struct crypto_tfm *tfm, __u8 *out);
+ void (*dit_digest)(struct crypto_tfm *tfm, struct scatterlist *sg,
+- unsigned int nsg, u8 *out);
++ unsigned int nsg, __u8 *out);
+ int (*dit_setkey)(struct crypto_tfm *tfm,
+- const u8 *key, unsigned int keylen);
++ const __u8 *key, unsigned int keylen);
+ #ifdef CONFIG_CRYPTO_HMAC
+ void *dit_hmac_block;
+ #endif
+@@ -166,11 +166,11 @@
+
+ struct compress_tfm {
+ int (*cot_compress)(struct crypto_tfm *tfm,
+- const u8 *src, unsigned int slen,
+- u8 *dst, unsigned int *dlen);
++ const __u8 *src, unsigned int slen,
++ __u8 *dst, unsigned int *dlen);
+ int (*cot_decompress)(struct crypto_tfm *tfm,
+- const u8 *src, unsigned int slen,
+- u8 *dst, unsigned int *dlen);
++ const __u8 *src, unsigned int slen,
++ __u8 *dst, unsigned int *dlen);
+ };
+
+ #define crt_cipher crt_u.cipher
+@@ -179,7 +179,7 @@
+
+ struct crypto_tfm {
+
+- u32 crt_flags;
++ __u32 crt_flags;
+
+ union {
+ struct cipher_tfm cipher;
+@@ -203,7 +203,7 @@
+ * crypto_free_tfm() frees up the transform and any associated resources,
+ * then drops the refcount on the associated algorithm.
+ */
+-struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, u32 tfm_flags);
++struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, __u32 tfm_flags);
+ void crypto_free_tfm(struct crypto_tfm *tfm);
+
+ /*
+@@ -219,7 +219,7 @@
+ return module_name(tfm->__crt_alg->cra_module);
+ }
+
+-static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
++static inline __u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
+ {
+ return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK;
+ }
+@@ -270,7 +270,7 @@
+ tfm->crt_digest.dit_update(tfm, sg, nsg);
+ }
+
+-static inline void crypto_digest_final(struct crypto_tfm *tfm, u8 *out)
++static inline void crypto_digest_final(struct crypto_tfm *tfm, __u8 *out)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ tfm->crt_digest.dit_final(tfm, out);
+@@ -278,14 +278,14 @@
+
+ static inline void crypto_digest_digest(struct crypto_tfm *tfm,
+ struct scatterlist *sg,
+- unsigned int nsg, u8 *out)
++ unsigned int nsg, __u8 *out)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ tfm->crt_digest.dit_digest(tfm, sg, nsg, out);
+ }
+
+ static inline int crypto_digest_setkey(struct crypto_tfm *tfm,
+- const u8 *key, unsigned int keylen)
++ const __u8 *key, unsigned int keylen)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ if (tfm->crt_digest.dit_setkey == NULL)
+@@ -294,7 +294,7 @@
+ }
+
+ static inline int crypto_cipher_setkey(struct crypto_tfm *tfm,
+- const u8 *key, unsigned int keylen)
++ const __u8 *key, unsigned int keylen)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->crt_cipher.cit_setkey(tfm, key, keylen);
+@@ -312,7 +312,7 @@
+ static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+- unsigned int nbytes, u8 *iv)
++ unsigned int nbytes, __u8 *iv)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);
+@@ -331,7 +331,7 @@
+ static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+- unsigned int nbytes, u8 *iv)
++ unsigned int nbytes, __u8 *iv)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);
+@@ -339,30 +339,30 @@
+ }
+
+ static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm,
+- const u8 *src, unsigned int len)
++ const __u8 *src, unsigned int len)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ memcpy(tfm->crt_cipher.cit_iv, src, len);
+ }
+
+ static inline void crypto_cipher_get_iv(struct crypto_tfm *tfm,
+- u8 *dst, unsigned int len)
++ __u8 *dst, unsigned int len)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ memcpy(dst, tfm->crt_cipher.cit_iv, len);
+ }
+
+ static inline int crypto_comp_compress(struct crypto_tfm *tfm,
+- const u8 *src, unsigned int slen,
+- u8 *dst, unsigned int *dlen)
++ const __u8 *src, unsigned int slen,
++ __u8 *dst, unsigned int *dlen)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS);
+ return tfm->crt_compress.cot_compress(tfm, src, slen, dst, dlen);
+ }
+
+ static inline int crypto_comp_decompress(struct crypto_tfm *tfm,
+- const u8 *src, unsigned int slen,
+- u8 *dst, unsigned int *dlen)
++ const __u8 *src, unsigned int slen,
++ __u8 *dst, unsigned int *dlen)
+ {
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS);
+ return tfm->crt_compress.cot_decompress(tfm, src, slen, dst, dlen);
+@@ -372,13 +372,13 @@
+ * HMAC support.
+ */
+ #ifdef CONFIG_CRYPTO_HMAC
+-void crypto_hmac_init(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen);
++void crypto_hmac_init(struct crypto_tfm *tfm, __u8 *key, unsigned int *keylen);
+ void crypto_hmac_update(struct crypto_tfm *tfm,
+ struct scatterlist *sg, unsigned int nsg);
+-void crypto_hmac_final(struct crypto_tfm *tfm, u8 *key,
+- unsigned int *keylen, u8 *out);
+-void crypto_hmac(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen,
+- struct scatterlist *sg, unsigned int nsg, u8 *out);
++void crypto_hmac_final(struct crypto_tfm *tfm, __u8 *key,
++ unsigned int *keylen, __u8 *out);
++void crypto_hmac(struct crypto_tfm *tfm, __u8 *key, unsigned int *keylen,
++ struct scatterlist *sg, unsigned int nsg, __u8 *out);
+ #endif /* CONFIG_CRYPTO_HMAC */
+
+ #endif /* _LINUX_CRYPTO_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cycx_drv.h linux-libc-headers-2.6.8.0/include/linux/cycx_drv.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/cycx_drv.h 2003-12-15 12:46:57.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/cycx_drv.h 2004-08-26 05:41:49.000000000 -0500
+@@ -14,9 +14,9 @@
+ * ============================================================================
+ * 1999/10/23 acme cycxhw_t cleanup
+ * 1999/01/03 acme more judicious use of data types...
+-* uclong, ucchar, etc deleted, the u8, u16, u32
++* uclong, ucchar, etc deleted, the __u8, __u16, __u32
+ * types are the portable way to go.
+-* 1999/01/03 acme judicious use of data types... u16, u32, etc
++* 1999/01/03 acme judicious use of data types... __u16, __u32, etc
+ * 1998/12/26 acme FIXED_BUFFERS, CONF_OFFSET,
+ * removal of cy_read{bwl}
+ * 1998/08/08 acme Initial version.
+@@ -46,18 +46,18 @@
+ * @reserved - reserved for future use
+ */
+ struct cycx_hw {
+- u32 fwid;
++ __u32 fwid;
+ int irq;
+ void *dpmbase;
+- u32 dpmsize;
+- u32 reserved[5];
++ __u32 dpmsize;
++ __u32 reserved[5];
+ };
+
+ /* Function Prototypes */
+-extern int cycx_setup(struct cycx_hw *hw, void *sfm, u32 len);
++extern int cycx_setup(struct cycx_hw *hw, void *sfm, __u32 len);
+ extern int cycx_down(struct cycx_hw *hw);
+-extern int cycx_peek(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
+-extern int cycx_poke(struct cycx_hw *hw, u32 addr, void *buf, u32 len);
++extern int cycx_peek(struct cycx_hw *hw, __u32 addr, void *buf, __u32 len);
++extern int cycx_poke(struct cycx_hw *hw, __u32 addr, void *buf, __u32 len);
+ extern int cycx_exec(void *addr);
+
+ extern void cycx_inten(struct cycx_hw *hw);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/cycx_x25.h linux-libc-headers-2.6.8.0/include/linux/cycx_x25.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/cycx_x25.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/cycx_x25.h 2004-08-26 05:41:49.000000000 -0500
+@@ -38,10 +38,10 @@
+ /* Data Structures */
+ /* X.25 Command Block. */
+ struct cycx_x25_cmd {
+- u16 command PACKED;
+- u16 link PACKED; /* values: 0 or 1 */
+- u16 len PACKED; /* values: 0 thru 0x205 (517) */
+- u32 buf PACKED;
++ __u16 command PACKED;
++ __u16 link PACKED; /* values: 0 or 1 */
++ __u16 len PACKED; /* values: 0 thru 0x205 (517) */
++ __u32 buf PACKED;
+ };
+
+ /* Defines for the 'command' field. */
+@@ -92,34 +92,34 @@
+ * @flags - see dosx25.doc, in portuguese, for details
+ */
+ struct cycx_x25_config {
+- u8 link PACKED;
+- u8 speed PACKED;
+- u8 clock PACKED;
+- u8 n2 PACKED;
+- u8 n2win PACKED;
+- u8 n3win PACKED;
+- u8 nvc PACKED;
+- u8 pktlen PACKED;
+- u8 locaddr PACKED;
+- u8 remaddr PACKED;
+- u16 t1 PACKED;
+- u16 t2 PACKED;
+- u8 t21 PACKED;
+- u8 npvc PACKED;
+- u8 t23 PACKED;
+- u8 flags PACKED;
++ __u8 link PACKED;
++ __u8 speed PACKED;
++ __u8 clock PACKED;
++ __u8 n2 PACKED;
++ __u8 n2win PACKED;
++ __u8 n3win PACKED;
++ __u8 nvc PACKED;
++ __u8 pktlen PACKED;
++ __u8 locaddr PACKED;
++ __u8 remaddr PACKED;
++ __u16 t1 PACKED;
++ __u16 t2 PACKED;
++ __u8 t21 PACKED;
++ __u8 npvc PACKED;
++ __u8 t23 PACKED;
++ __u8 flags PACKED;
+ };
+
+ struct cycx_x25_stats {
+- u16 rx_crc_errors PACKED;
+- u16 rx_over_errors PACKED;
+- u16 n2_tx_frames PACKED;
+- u16 n2_rx_frames PACKED;
+- u16 tx_timeouts PACKED;
+- u16 rx_timeouts PACKED;
+- u16 n3_tx_packets PACKED;
+- u16 n3_rx_packets PACKED;
+- u16 tx_aborts PACKED;
+- u16 rx_aborts PACKED;
++ __u16 rx_crc_errors PACKED;
++ __u16 rx_over_errors PACKED;
++ __u16 n2_tx_frames PACKED;
++ __u16 n2_rx_frames PACKED;
++ __u16 tx_timeouts PACKED;
++ __u16 rx_timeouts PACKED;
++ __u16 n3_tx_packets PACKED;
++ __u16 n3_rx_packets PACKED;
++ __u16 tx_aborts PACKED;
++ __u16 rx_aborts PACKED;
+ };
+ #endif /* _CYCX_X25_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/device.h linux-libc-headers-2.6.8.0/include/linux/device.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/device.h 2004-08-18 13:16:02.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/device.h 2004-08-26 05:41:49.000000000 -0500
+@@ -57,7 +57,7 @@
+ struct device * (*add) (struct device * parent, char * bus_id);
+ int (*hotplug) (struct device *dev, char **envp,
+ int num_envp, char *buffer, int buffer_size);
+- int (*suspend)(struct device * dev, u32 state);
++ int (*suspend)(struct device * dev, __u32 state);
+ int (*resume)(struct device * dev);
+ };
+
+@@ -105,8 +105,8 @@
+ int (*probe) (struct device * dev);
+ int (*remove) (struct device * dev);
+ void (*shutdown) (struct device * dev);
+- int (*suspend) (struct device * dev, u32 state, u32 level);
+- int (*resume) (struct device * dev, u32 level);
++ int (*suspend) (struct device * dev, __u32 state, __u32 level);
++ int (*resume) (struct device * dev, __u32 level);
+ };
+
+
+@@ -262,17 +262,17 @@
+ void *platform_data; /* Platform specific data (e.g. ACPI,
+ BIOS data relevant to device) */
+ struct dev_pm_info power;
+- u32 power_state; /* Current operating state. In
++ __u32 power_state; /* Current operating state. In
+ ACPI-speak, this is D0-D3, D0
+ being fully functional, and D3
+ being off. */
+
+ unsigned char *saved_state; /* saved device state */
+- u32 detach_state; /* State to enter when device is
++ __u32 detach_state; /* State to enter when device is
+ detached from its driver. */
+
+- u64 *dma_mask; /* dma mask (if dma'able device) */
+- u64 coherent_dma_mask;/* Like dma_mask, but for
++ __u64 *dma_mask; /* dma mask (if dma'able device) */
++ __u64 coherent_dma_mask;/* Like dma_mask, but for
+ alloc_coherent mappings as
+ not all hardware supports
+ 64 bit addresses for consistent
+@@ -360,9 +360,9 @@
+
+ struct platform_device {
+ char * name;
+- u32 id;
++ __u32 id;
+ struct device dev;
+- u32 num_resources;
++ __u32 num_resources;
+ struct resource * resource;
+ };
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/divert.h linux-libc-headers-2.6.8.0/include/linux/divert.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/divert.h 2004-06-09 07:00:49.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/divert.h 2004-08-26 05:41:49.000000000 -0500
+@@ -27,10 +27,10 @@
+ {
+ int divert; /* are we active */
+ unsigned int protos; /* protocols */
+- u16 tcp_dst[MAX_DIVERT_PORTS]; /* specific tcp dst ports to divert */
+- u16 tcp_src[MAX_DIVERT_PORTS]; /* specific tcp src ports to divert */
+- u16 udp_dst[MAX_DIVERT_PORTS]; /* specific udp dst ports to divert */
+- u16 udp_src[MAX_DIVERT_PORTS]; /* specific udp src ports to divert */
++ __u16 tcp_dst[MAX_DIVERT_PORTS]; /* specific tcp dst ports to divert */
++ __u16 tcp_src[MAX_DIVERT_PORTS]; /* specific tcp src ports to divert */
++ __u16 udp_dst[MAX_DIVERT_PORTS]; /* specific udp dst ports to divert */
++ __u16 udp_src[MAX_DIVERT_PORTS]; /* specific udp src ports to divert */
+ };
+
+ /*
+@@ -40,12 +40,12 @@
+
+ typedef union _divert_cf_arg
+ {
+- s16 int16;
+- u16 uint16;
+- s32 int32;
+- u32 uint32;
+- s64 int64;
+- u64 uint64;
++ __s16 int16;
++ __u16 uint16;
++ __s32 int32;
++ __u32 uint32;
++ __s64 int64;
++ __u64 uint64;
+ void *ptr;
+ } divert_cf_arg;
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/eeprom.h linux-libc-headers-2.6.8.0/include/linux/eeprom.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/eeprom.h 2003-12-19 07:05:15.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/eeprom.h 2004-08-26 13:26:38.000000000 -0500
+@@ -26,15 +26,15 @@
+ unsigned ee_state;
+
+ spinlock_t *lock;
+- u32 *cache;
++ __u32 *cache;
+ };
+
+
+-u8 eeprom_readb(struct eeprom *ee, unsigned address);
+-void eeprom_read(struct eeprom *ee, unsigned address, u8 *bytes,
++__u8 eeprom_readb(struct eeprom *ee, unsigned address);
++void eeprom_read(struct eeprom *ee, unsigned address, __u8 *bytes,
+ unsigned count);
+-void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data);
+-void eeprom_write(struct eeprom *ee, unsigned address, u8 *bytes,
++void eeprom_writeb(struct eeprom *ee, unsigned address, __u8 data);
++void eeprom_write(struct eeprom *ee, unsigned address, __u8 *bytes,
+ unsigned count);
+
+ /* The EEPROM commands include the alway-set leading bit. */
+@@ -56,10 +56,10 @@
+ }
+
+ /* foo. put this in a .c file */
+-static inline void eeprom_update(struct eeprom *ee, u32 mask, int pol)
++static inline void eeprom_update(struct eeprom *ee, __u32 mask, int pol)
+ {
+ unsigned long flags;
+- u32 data;
++ __u32 data;
+
+ spin_lock_irqsave(ee->lock, flags);
+ data = *ee->cache;
+@@ -106,17 +106,17 @@
+ eeprom_update(ee, ee->eedi, pol);
+ }
+
+-u16 eeprom_readw(struct eeprom *ee, unsigned address)
++__u16 eeprom_readw(struct eeprom *ee, unsigned address)
+ {
+ unsigned i;
+- u16 res = 0;
++ __u16 res = 0;
+
+ eeprom_clk_lo(ee);
+ eeprom_update(ee, ee->eesel, 1 ^ !!(ee->polarity & EEPOL_EESEL));
+ eeprom_send_addr(ee, address);
+
+ for (i=0; i<16; i++) {
+- u32 data;
++ __u32 data;
+ eeprom_clk_hi(ee);
+ res <<= 1;
+ data = readl(ee->addr);
+@@ -130,6 +130,6 @@
+ }
+
+
+-void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data)
++void eeprom_writeb(struct eeprom *ee, unsigned address, __u8 data)
+ {
+ }
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/efi.h linux-libc-headers-2.6.8.0/include/linux/efi.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/efi.h 2004-08-18 13:16:02.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/efi.h 2004-08-26 05:42:08.000000000 -0500
+@@ -30,12 +30,12 @@
+ #define EFI_NOT_FOUND (14 | (1UL << (BITS_PER_LONG-1)))
+
+ typedef unsigned long efi_status_t;
+-typedef u8 efi_bool_t;
+-typedef u16 efi_char16_t; /* UNICODE character */
++typedef __u8 efi_bool_t;
++typedef __u16 efi_char16_t; /* UNICODE character */
+
+
+ typedef struct {
+- u8 b[16];
++ __u8 b[16];
+ } efi_guid_t;
+
+ #define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
+@@ -49,11 +49,11 @@
+ * Generic EFI table header
+ */
+ typedef struct {
+- u64 signature;
+- u32 revision;
+- u32 headersize;
+- u32 crc32;
+- u32 reserved;
++ __u64 signature;
++ __u32 revision;
++ __u32 headersize;
++ __u32 crc32;
++ __u32 reserved;
+ } efi_table_hdr_t;
+
+ /*
+@@ -78,14 +78,14 @@
+ #define EFI_MAX_MEMORY_TYPE 14
+
+ /* Attribute values: */
+-#define EFI_MEMORY_UC ((u64)0x0000000000000001ULL) /* uncached */
+-#define EFI_MEMORY_WC ((u64)0x0000000000000002ULL) /* write-coalescing */
+-#define EFI_MEMORY_WT ((u64)0x0000000000000004ULL) /* write-through */
+-#define EFI_MEMORY_WB ((u64)0x0000000000000008ULL) /* write-back */
+-#define EFI_MEMORY_WP ((u64)0x0000000000001000ULL) /* write-protect */
+-#define EFI_MEMORY_RP ((u64)0x0000000000002000ULL) /* read-protect */
+-#define EFI_MEMORY_XP ((u64)0x0000000000004000ULL) /* execute-protect */
+-#define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */
++#define EFI_MEMORY_UC ((__u64)0x0000000000000001ULL) /* uncached */
++#define EFI_MEMORY_WC ((__u64)0x0000000000000002ULL) /* write-coalescing */
++#define EFI_MEMORY_WT ((__u64)0x0000000000000004ULL) /* write-through */
++#define EFI_MEMORY_WB ((__u64)0x0000000000000008ULL) /* write-back */
++#define EFI_MEMORY_WP ((__u64)0x0000000000001000ULL) /* write-protect */
++#define EFI_MEMORY_RP ((__u64)0x0000000000002000ULL) /* read-protect */
++#define EFI_MEMORY_XP ((__u64)0x0000000000004000ULL) /* execute-protect */
++#define EFI_MEMORY_RUNTIME ((__u64)0x8000000000000000ULL) /* range requires runtime mapping */
+ #define EFI_MEMORY_DESCRIPTOR_VERSION 1
+
+ #define EFI_PAGE_SHIFT 12
+@@ -96,14 +96,14 @@
+ * the case in ia64. Need to have this fixed in the f/w.
+ */
+ typedef struct {
+- u32 type;
+- u32 pad;
+- u64 phys_addr;
+- u64 virt_addr;
+- u64 num_pages;
+- u64 attribute;
++ __u32 type;
++ __u32 pad;
++ __u64 phys_addr;
++ __u64 virt_addr;
++ __u64 num_pages;
++ __u64 attribute;
+ #if defined (__i386__)
+- u64 pad1;
++ __u64 pad1;
+ #endif
+ } efi_memory_desc_t;
+
+@@ -117,23 +117,23 @@
+ #define EFI_UNSPECIFIED_TIMEZONE 0x07ff
+
+ typedef struct {
+- u16 year;
+- u8 month;
+- u8 day;
+- u8 hour;
+- u8 minute;
+- u8 second;
+- u8 pad1;
+- u32 nanosecond;
+- s16 timezone;
+- u8 daylight;
+- u8 pad2;
++ __u16 year;
++ __u8 month;
++ __u8 day;
++ __u8 hour;
++ __u8 minute;
++ __u8 second;
++ __u8 pad1;
++ __u32 nanosecond;
++ __s16 timezone;
++ __u8 daylight;
++ __u8 pad2;
+ } efi_time_t;
+
+ typedef struct {
+- u32 resolution;
+- u32 accuracy;
+- u8 sets_to_zero;
++ __u32 resolution;
++ __u32 accuracy;
++ __u8 sets_to_zero;
+ } efi_time_cap_t;
+
+ /*
+@@ -146,7 +146,7 @@
+ /*
+ * EFI Runtime Services table
+ */
+-#define EFI_RUNTIME_SERVICES_SIGNATURE ((u64)0x5652453544e5552ULL)
++#define EFI_RUNTIME_SERVICES_SIGNATURE ((__u64)0x5652453544e5552ULL)
+ #define EFI_RUNTIME_SERVICES_REVISION 0x00010000
+
+ typedef struct {
+@@ -169,19 +169,19 @@
+ typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending,
+ efi_time_t *tm);
+ typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm);
+-typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr,
++typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, __u32 *attr,
+ unsigned long *data_size, void *data);
+ typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name,
+ efi_guid_t *vendor);
+ typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor,
+ unsigned long attr, unsigned long data_size,
+ void *data);
+-typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
++typedef efi_status_t efi_get_next_high_mono_count_t (__u32 *count);
+ typedef void efi_reset_system_t (int reset_type, efi_status_t status,
+ unsigned long data_size, efi_char16_t *data);
+ typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_size,
+ unsigned long descriptor_size,
+- u32 descriptor_version,
++ __u32 descriptor_version,
+ efi_memory_desc_t *virtual_map);
+
+ /*
+@@ -219,13 +219,13 @@
+ unsigned long table;
+ } efi_config_table_t;
+
+-#define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
++#define EFI_SYSTEM_TABLE_SIGNATURE ((__u64)0x5453595320494249ULL)
+ #define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00)
+
+ typedef struct {
+ efi_table_hdr_t hdr;
+ unsigned long fw_vendor; /* physical addr of CHAR16 vendor string */
+- u32 fw_revision;
++ __u32 fw_revision;
+ unsigned long con_in_handle;
+ unsigned long con_in;
+ unsigned long con_out_handle;
+@@ -293,9 +293,9 @@
+ extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg);
+ extern void efi_gettimeofday (struct timespec *ts);
+ extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */
+-extern u64 efi_get_iobase (void);
+-extern u32 efi_mem_type (unsigned long phys_addr);
+-extern u64 efi_mem_attributes (unsigned long phys_addr);
++extern __u64 efi_get_iobase (void);
++extern __u32 efi_mem_type (unsigned long phys_addr);
++extern __u64 efi_mem_attributes (unsigned long phys_addr);
+ extern int __init efi_uart_console_only (void);
+ extern void efi_initialize_iomem_resources(struct resource *code_resource,
+ struct resource *data_resource);
+@@ -368,9 +368,9 @@
+ #define EFI_DEV_END_ENTIRE 0xFF
+
+ struct efi_generic_dev_path {
+- u8 type;
+- u8 sub_type;
+- u16 length;
++ __u8 type;
++ __u8 sub_type;
++ __u16 length;
+ } __attribute ((packed));
+
+ #endif /* _LINUX_EFI_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/eisa.h linux-libc-headers-2.6.8.0/include/linux/eisa.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/eisa.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/eisa.h 2004-08-26 05:42:08.000000000 -0500
+@@ -43,7 +43,7 @@
+ int state;
+ unsigned long base_addr;
+ struct resource res[EISA_MAX_RESOURCES];
+- u64 dma_mask;
++ __u64 dma_mask;
+ struct device dev; /* generic device */
+ #ifdef CONFIG_EISA_NAMES
+ char pretty_name[DEVICE_NAME_SIZE];
+@@ -91,7 +91,7 @@
+ unsigned long bus_base_addr;
+ int slots; /* Max slot number */
+ int force_probe; /* Probe even when no slot 0 */
+- u64 dma_mask; /* from bridge device */
++ __u64 dma_mask; /* from bridge device */
+ int bus_nr; /* Set by eisa_root_register */
+ struct resource eisa_root_res; /* ditto */
+ };
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/ethtool.h linux-libc-headers-2.6.8.0/include/linux/ethtool.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/ethtool.h 2004-06-23 16:52:54.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/ethtool.h 2004-08-26 13:29:11.000000000 -0500
+@@ -15,24 +15,24 @@
+
+ /* This should work for both 32 and 64 bit userland. */
+ struct ethtool_cmd {
+- u32 cmd;
+- u32 supported; /* Features this interface supports */
+- u32 advertising; /* Features this interface advertises */
+- u16 speed; /* The forced speed, 10Mb, 100Mb, gigabit */
+- u8 duplex; /* Duplex, half or full */
+- u8 port; /* Which connector port */
+- u8 phy_address;
+- u8 transceiver; /* Which transceiver to use */
+- u8 autoneg; /* Enable or disable autonegotiation */
+- u32 maxtxpkt; /* Tx pkts before generating tx int */
+- u32 maxrxpkt; /* Rx pkts before generating rx int */
+- u32 reserved[4];
++ __u32 cmd;
++ __u32 supported; /* Features this interface supports */
++ __u32 advertising; /* Features this interface advertises */
++ __u16 speed; /* The forced speed, 10Mb, 100Mb, gigabit */
++ __u8 duplex; /* Duplex, half or full */
++ __u8 port; /* Which connector port */
++ __u8 phy_address;
++ __u8 transceiver; /* Which transceiver to use */
++ __u8 autoneg; /* Enable or disable autonegotiation */
++ __u32 maxtxpkt; /* Tx pkts before generating tx int */
++ __u32 maxrxpkt; /* Rx pkts before generating rx int */
++ __u32 reserved[4];
+ };
+
+ #define ETHTOOL_BUSINFO_LEN 32
+ /* these strings are set to whatever the driver author decides... */
+ struct ethtool_drvinfo {
+- u32 cmd;
++ __u32 cmd;
+ char driver[32]; /* driver short name, "tulip", "eepro100" */
+ char version[32]; /* driver version string */
+ char fw_version[32]; /* firmware version string, if applicable */
+@@ -40,53 +40,53 @@
+ /* For PCI devices, use pci_name(pci_dev). */
+ char reserved1[32];
+ char reserved2[16];
+- u32 n_stats; /* number of u64's from ETHTOOL_GSTATS */
+- u32 testinfo_len;
+- u32 eedump_len; /* Size of data from ETHTOOL_GEEPROM (bytes) */
+- u32 regdump_len; /* Size of data from ETHTOOL_GREGS (bytes) */
++ __u32 n_stats; /* number of __u64's from ETHTOOL_GSTATS */
++ __u32 testinfo_len;
++ __u32 eedump_len; /* Size of data from ETHTOOL_GEEPROM (bytes) */
++ __u32 regdump_len; /* Size of data from ETHTOOL_GREGS (bytes) */
+ };
+
+ #define SOPASS_MAX 6
+ /* wake-on-lan settings */
+ struct ethtool_wolinfo {
+- u32 cmd;
+- u32 supported;
+- u32 wolopts;
+- u8 sopass[SOPASS_MAX]; /* SecureOn(tm) password */
++ __u32 cmd;
++ __u32 supported;
++ __u32 wolopts;
++ __u8 sopass[SOPASS_MAX]; /* SecureOn(tm) password */
+ };
+
+ /* for passing single values */
+ struct ethtool_value {
+- u32 cmd;
+- u32 data;
++ __u32 cmd;
++ __u32 data;
+ };
+
+ /* for passing big chunks of data */
+ struct ethtool_regs {
+- u32 cmd;
+- u32 version; /* driver-specific, indicates different chips/revs */
+- u32 len; /* bytes */
+- u8 data[0];
++ __u32 cmd;
++ __u32 version; /* driver-specific, indicates different chips/revs */
++ __u32 len; /* bytes */
++ __u8 data[0];
+ };
+
+ /* for passing EEPROM chunks */
+ struct ethtool_eeprom {
+- u32 cmd;
+- u32 magic;
+- u32 offset; /* in bytes */
+- u32 len; /* in bytes */
+- u8 data[0];
++ __u32 cmd;
++ __u32 magic;
++ __u32 offset; /* in bytes */
++ __u32 len; /* in bytes */
++ __u8 data[0];
+ };
+
+ /* for configuring coalescing parameters of chip */
+ struct ethtool_coalesce {
+- u32 cmd; /* ETHTOOL_{G,S}COALESCE */
++ __u32 cmd; /* ETHTOOL_{G,S}COALESCE */
+
+ /* How many usecs to delay an RX interrupt after
+ * a packet arrives. If 0, only rx_max_coalesced_frames
+ * is used.
+ */
+- u32 rx_coalesce_usecs;
++ __u32 rx_coalesce_usecs;
+
+ /* How many packets to delay an RX interrupt after
+ * a packet arrives. If 0, only rx_coalesce_usecs is
+@@ -94,21 +94,21 @@
+ * to zero as this would cause RX interrupts to never be
+ * generated.
+ */
+- u32 rx_max_coalesced_frames;
++ __u32 rx_max_coalesced_frames;
+
+ /* Same as above two parameters, except that these values
+ * apply while an IRQ is being serviced by the host. Not
+ * all cards support this feature and the values are ignored
+ * in that case.
+ */
+- u32 rx_coalesce_usecs_irq;
+- u32 rx_max_coalesced_frames_irq;
++ __u32 rx_coalesce_usecs_irq;
++ __u32 rx_max_coalesced_frames_irq;
+
+ /* How many usecs to delay a TX interrupt after
+ * a packet is sent. If 0, only tx_max_coalesced_frames
+ * is used.
+ */
+- u32 tx_coalesce_usecs;
++ __u32 tx_coalesce_usecs;
+
+ /* How many packets to delay a TX interrupt after
+ * a packet is sent. If 0, only tx_coalesce_usecs is
+@@ -116,22 +116,22 @@
+ * to zero as this would cause TX interrupts to never be
+ * generated.
+ */
+- u32 tx_max_coalesced_frames;
++ __u32 tx_max_coalesced_frames;
+
+ /* Same as above two parameters, except that these values
+ * apply while an IRQ is being serviced by the host. Not
+ * all cards support this feature and the values are ignored
+ * in that case.
+ */
+- u32 tx_coalesce_usecs_irq;
+- u32 tx_max_coalesced_frames_irq;
++ __u32 tx_coalesce_usecs_irq;
++ __u32 tx_max_coalesced_frames_irq;
+
+ /* How many usecs to delay in-memory statistics
+ * block updates. Some drivers do not have an in-memory
+ * statistic block, and in such cases this value is ignored.
+ * This value must not be zero.
+ */
+- u32 stats_block_coalesce_usecs;
++ __u32 stats_block_coalesce_usecs;
+
+ /* Adaptive RX/TX coalescing is an algorithm implemented by
+ * some drivers to improve latency under low packet rates and
+@@ -140,18 +140,18 @@
+ * not implemented by the driver causes these values to be
+ * silently ignored.
+ */
+- u32 use_adaptive_rx_coalesce;
+- u32 use_adaptive_tx_coalesce;
++ __u32 use_adaptive_rx_coalesce;
++ __u32 use_adaptive_tx_coalesce;
+
+ /* When the packet rate (measured in packets per second)
+ * is below pkt_rate_low, the {rx,tx}_*_low parameters are
+ * used.
+ */
+- u32 pkt_rate_low;
+- u32 rx_coalesce_usecs_low;
+- u32 rx_max_coalesced_frames_low;
+- u32 tx_coalesce_usecs_low;
+- u32 tx_max_coalesced_frames_low;
++ __u32 pkt_rate_low;
++ __u32 rx_coalesce_usecs_low;
++ __u32 rx_max_coalesced_frames_low;
++ __u32 tx_coalesce_usecs_low;
++ __u32 tx_max_coalesced_frames_low;
+
+ /* When the packet rate is below pkt_rate_high but above
+ * pkt_rate_low (both measured in packets per second) the
+@@ -162,43 +162,43 @@
+ * is above pkt_rate_high, the {rx,tx}_*_high parameters are
+ * used.
+ */
+- u32 pkt_rate_high;
+- u32 rx_coalesce_usecs_high;
+- u32 rx_max_coalesced_frames_high;
+- u32 tx_coalesce_usecs_high;
+- u32 tx_max_coalesced_frames_high;
++ __u32 pkt_rate_high;
++ __u32 rx_coalesce_usecs_high;
++ __u32 rx_max_coalesced_frames_high;
++ __u32 tx_coalesce_usecs_high;
++ __u32 tx_max_coalesced_frames_high;
+
+ /* How often to do adaptive coalescing packet rate sampling,
+ * measured in seconds. Must not be zero.
+ */
+- u32 rate_sample_interval;
++ __u32 rate_sample_interval;
+ };
+
+ /* for configuring RX/TX ring parameters */
+ struct ethtool_ringparam {
+- u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */
++ __u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */
+
+ /* Read only attributes. These indicate the maximum number
+ * of pending RX/TX ring entries the driver will allow the
+ * user to set.
+ */
+- u32 rx_max_pending;
+- u32 rx_mini_max_pending;
+- u32 rx_jumbo_max_pending;
+- u32 tx_max_pending;
++ __u32 rx_max_pending;
++ __u32 rx_mini_max_pending;
++ __u32 rx_jumbo_max_pending;
++ __u32 tx_max_pending;
+
+ /* Values changeable by the user. The valid values are
+ * in the range 1 to the "*_max_pending" counterpart above.
+ */
+- u32 rx_pending;
+- u32 rx_mini_pending;
+- u32 rx_jumbo_pending;
+- u32 tx_pending;
++ __u32 rx_pending;
++ __u32 rx_mini_pending;
++ __u32 rx_jumbo_pending;
++ __u32 tx_pending;
+ };
+
+ /* for configuring link flow control parameters */
+ struct ethtool_pauseparam {
+- u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */
++ __u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */
+
+ /* If the link is being auto-negotiated (via ethtool_cmd.autoneg
+ * being true) the user may set 'autonet' here non-zero to have the
+@@ -210,9 +210,9 @@
+ * then {rx,tx}_pause force the driver to use/not-use pause
+ * flow control.
+ */
+- u32 autoneg;
+- u32 rx_pause;
+- u32 tx_pause;
++ __u32 autoneg;
++ __u32 rx_pause;
++ __u32 tx_pause;
+ };
+
+ #define ETH_GSTRING_LEN 32
+@@ -223,10 +223,10 @@
+
+ /* for passing string sets for data tagging */
+ struct ethtool_gstrings {
+- u32 cmd; /* ETHTOOL_GSTRINGS */
+- u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/
+- u32 len; /* number of strings in the string set */
+- u8 data[0];
++ __u32 cmd; /* ETHTOOL_GSTRINGS */
++ __u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/
++ __u32 len; /* number of strings in the string set */
++ __u8 data[0];
+ };
+
+ enum ethtool_test_flags {
+@@ -236,30 +236,30 @@
+
+ /* for requesting NIC test and getting results*/
+ struct ethtool_test {
+- u32 cmd; /* ETHTOOL_TEST */
+- u32 flags; /* ETH_TEST_FL_xxx */
+- u32 reserved;
+- u32 len; /* result length, in number of u64 elements */
+- u64 data[0];
++ __u32 cmd; /* ETHTOOL_TEST */
++ __u32 flags; /* ETH_TEST_FL_xxx */
++ __u32 reserved;
++ __u32 len; /* result length, in number of __u64 elements */
++ __u64 data[0];
+ };
+
+ /* for dumping NIC-specific statistics */
+ struct ethtool_stats {
+- u32 cmd; /* ETHTOOL_GSTATS */
+- u32 n_stats; /* number of u64's being returned */
+- u64 data[0];
++ __u32 cmd; /* ETHTOOL_GSTATS */
++ __u32 n_stats; /* number of __u64's being returned */
++ __u64 data[0];
+ };
+
+ struct net_device;
+
+ /* Some generic methods drivers may use in their ethtool_ops */
+-u32 ethtool_op_get_link(struct net_device *dev);
+-u32 ethtool_op_get_tx_csum(struct net_device *dev);
+-int ethtool_op_set_tx_csum(struct net_device *dev, u32 data);
+-u32 ethtool_op_get_sg(struct net_device *dev);
+-int ethtool_op_set_sg(struct net_device *dev, u32 data);
+-u32 ethtool_op_get_tso(struct net_device *dev);
+-int ethtool_op_set_tso(struct net_device *dev, u32 data);
++__u32 ethtool_op_get_link(struct net_device *dev);
++__u32 ethtool_op_get_tx_csum(struct net_device *dev);
++int ethtool_op_set_tx_csum(struct net_device *dev, __u32 data);
++__u32 ethtool_op_get_sg(struct net_device *dev);
++int ethtool_op_set_sg(struct net_device *dev, __u32 data);
++__u32 ethtool_op_get_tso(struct net_device *dev);
++int ethtool_op_set_tso(struct net_device *dev, __u32 data);
+
+ /**
+ * ðtool_ops - Alter and report network device settings
+@@ -324,33 +324,33 @@
+ void (*get_regs)(struct net_device *, struct ethtool_regs *, void *);
+ void (*get_wol)(struct net_device *, struct ethtool_wolinfo *);
+ int (*set_wol)(struct net_device *, struct ethtool_wolinfo *);
+- u32 (*get_msglevel)(struct net_device *);
+- void (*set_msglevel)(struct net_device *, u32);
++ __u32 (*get_msglevel)(struct net_device *);
++ void (*set_msglevel)(struct net_device *, __u32);
+ int (*nway_reset)(struct net_device *);
+- u32 (*get_link)(struct net_device *);
++ __u32 (*get_link)(struct net_device *);
+ int (*get_eeprom_len)(struct net_device *);
+- int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
+- int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
++ int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, __u8 *);
++ int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, __u8 *);
+ int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *);
+ int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *);
+ void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *);
+ int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *);
+ void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam*);
+ int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam*);
+- u32 (*get_rx_csum)(struct net_device *);
+- int (*set_rx_csum)(struct net_device *, u32);
+- u32 (*get_tx_csum)(struct net_device *);
+- int (*set_tx_csum)(struct net_device *, u32);
+- u32 (*get_sg)(struct net_device *);
+- int (*set_sg)(struct net_device *, u32);
+- u32 (*get_tso)(struct net_device *);
+- int (*set_tso)(struct net_device *, u32);
++ __u32 (*get_rx_csum)(struct net_device *);
++ int (*set_rx_csum)(struct net_device *, __u32);
++ __u32 (*get_tx_csum)(struct net_device *);
++ int (*set_tx_csum)(struct net_device *, __u32);
++ __u32 (*get_sg)(struct net_device *);
++ int (*set_sg)(struct net_device *, __u32);
++ __u32 (*get_tso)(struct net_device *);
++ int (*set_tso)(struct net_device *, __u32);
+ int (*self_test_count)(struct net_device *);
+- void (*self_test)(struct net_device *, struct ethtool_test *, u64 *);
+- void (*get_strings)(struct net_device *, u32 stringset, u8 *);
+- int (*phys_id)(struct net_device *, u32);
++ void (*self_test)(struct net_device *, struct ethtool_test *, __u64 *);
++ void (*get_strings)(struct net_device *, __u32 stringset, __u8 *);
++ int (*phys_id)(struct net_device *, __u32);
+ int (*get_stats_count)(struct net_device *);
+- void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
++ void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, __u64 *);
+ int (*begin)(struct net_device *);
+ void (*complete)(struct net_device *);
+ };
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/firmware.h linux-libc-headers-2.6.8.0/include/linux/firmware.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/firmware.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/firmware.h 2004-08-26 05:42:08.000000000 -0500
+@@ -5,7 +5,7 @@
+ #define FIRMWARE_NAME_MAX 30
+ struct firmware {
+ size_t size;
+- u8 *data;
++ __u8 *data;
+ };
+ int request_firmware(const struct firmware **fw, const char *name,
+ struct device *device);
+@@ -15,5 +15,5 @@
+ void (*cont)(const struct firmware *fw, void *context));
+
+ void release_firmware(const struct firmware *fw);
+-void register_firmware(const char *name, const u8 *data, size_t size);
++void register_firmware(const char *name, const __u8 *data, size_t size);
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/fs.h linux-libc-headers-2.6.8.0/include/linux/fs.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/fs.h 2004-08-18 13:16:02.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/fs.h 2004-08-26 05:42:08.000000000 -0500
+@@ -198,7 +198,7 @@
+ /* A jump here: 108-111 have been used for various private purposes. */
+ #define BLKBSZGET _IOR(0x12,112,size_t)
+ #define BLKBSZSET _IOW(0x12,113,size_t)
+-#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (u64 *arg) */
++#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size in bytes (__u64 *arg) */
+
+ #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
+ #define FIBMAP _IO(0x00,1) /* bmap access */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/i2c.h linux-libc-headers-2.6.8.0/include/linux/i2c.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/i2c.h 2004-06-23 16:52:54.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/i2c.h 2004-08-26 05:42:08.000000000 -0500
+@@ -70,36 +70,36 @@
+ and probably just as fast.
+ Note that we use i2c_adapter here, because you do not need a specific
+ smbus adapter to call this function. */
+-extern s32 i2c_smbus_xfer (struct i2c_adapter * adapter, u16 addr,
++extern __s32 i2c_smbus_xfer (struct i2c_adapter * adapter, __u16 addr,
+ unsigned short flags,
+- char read_write, u8 command, int size,
++ char read_write, __u8 command, int size,
+ union i2c_smbus_data * data);
+
+ /* Now follow the 'nice' access routines. These also document the calling
+ conventions of smbus_access. */
+
+-extern s32 i2c_smbus_write_quick(struct i2c_client * client, u8 value);
+-extern s32 i2c_smbus_read_byte(struct i2c_client * client);
+-extern s32 i2c_smbus_write_byte(struct i2c_client * client, u8 value);
+-extern s32 i2c_smbus_read_byte_data(struct i2c_client * client, u8 command);
+-extern s32 i2c_smbus_write_byte_data(struct i2c_client * client,
+- u8 command, u8 value);
+-extern s32 i2c_smbus_read_word_data(struct i2c_client * client, u8 command);
+-extern s32 i2c_smbus_write_word_data(struct i2c_client * client,
+- u8 command, u16 value);
+-extern s32 i2c_smbus_process_call(struct i2c_client * client,
+- u8 command, u16 value);
++extern __s32 i2c_smbus_write_quick(struct i2c_client * client, __u8 value);
++extern __s32 i2c_smbus_read_byte(struct i2c_client * client);
++extern __s32 i2c_smbus_write_byte(struct i2c_client * client, __u8 value);
++extern __s32 i2c_smbus_read_byte_data(struct i2c_client * client, __u8 command);
++extern __s32 i2c_smbus_write_byte_data(struct i2c_client * client,
++ __u8 command, __u8 value);
++extern __s32 i2c_smbus_read_word_data(struct i2c_client * client, __u8 command);
++extern __s32 i2c_smbus_write_word_data(struct i2c_client * client,
++ __u8 command, __u16 value);
++extern __s32 i2c_smbus_process_call(struct i2c_client * client,
++ __u8 command, __u16 value);
+ /* Returns the number of read bytes */
+-extern s32 i2c_smbus_read_block_data(struct i2c_client * client,
+- u8 command, u8 *values);
+-extern s32 i2c_smbus_write_block_data(struct i2c_client * client,
+- u8 command, u8 length,
+- u8 *values);
+-extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
+- u8 command, u8 *values);
+-extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
+- u8 command, u8 length,
+- u8 *values);
++extern __s32 i2c_smbus_read_block_data(struct i2c_client * client,
++ __u8 command, __u8 *values);
++extern __s32 i2c_smbus_write_block_data(struct i2c_client * client,
++ __u8 command, __u8 length,
++ __u8 *values);
++extern __s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
++ __u8 command, __u8 *values);
++extern __s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
++ __u8 command, __u8 length,
++ __u8 *values);
+
+
+ /*
+@@ -203,9 +203,9 @@
+ using common I2C messages */
+ int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg msgs[],
+ int num);
+- int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr,
++ int (*smbus_xfer) (struct i2c_adapter *adap, __u16 addr,
+ unsigned short flags, char read_write,
+- u8 command, int size, union i2c_smbus_data * data);
++ __u8 command, int size, union i2c_smbus_data * data);
+
+ /* --- these optional/future use for some adapter types.*/
+ int (*slave_send)(struct i2c_adapter *,char*,int);
+@@ -215,7 +215,7 @@
+ int (*algo_control)(struct i2c_adapter *, unsigned int, unsigned long);
+
+ /* To determine what the adapter supports */
+- u32 (*functionality) (struct i2c_adapter *);
++ __u32 (*functionality) (struct i2c_adapter *);
+ };
+
+ /*
+@@ -381,10 +381,10 @@
+
+
+ /* Return the functionality mask */
+-extern u32 i2c_get_functionality (struct i2c_adapter *adap);
++extern __u32 i2c_get_functionality (struct i2c_adapter *adap);
+
+ /* Return 1 if adapter supports everything we need, 0 if not. */
+-extern int i2c_check_functionality (struct i2c_adapter *adap, u32 func);
++extern int i2c_check_functionality (struct i2c_adapter *adap, __u32 func);
+
+ /*
+ * I2C Message - used for pure i2c transaction, also from /dev interface
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/i2o-dev.h linux-libc-headers-2.6.8.0/include/linux/i2o-dev.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/i2o-dev.h 2004-06-23 16:52:54.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/i2o-dev.h 2004-08-26 05:42:08.000000000 -0500
+@@ -29,7 +29,7 @@
+ * I2O Control IOCTLs and structures
+ */
+ #define I2O_MAGIC_NUMBER 'i'
+-#define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,u8[MAX_I2O_CONTROLLERS])
++#define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,__u8[MAX_I2O_CONTROLLERS])
+ #define I2OHRTGET _IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct)
+ #define I2OLCTGET _IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct)
+ #define I2OPARMSET _IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget)
+@@ -37,7 +37,7 @@
+ #define I2OSWDL _IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer)
+ #define I2OSWUL _IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer)
+ #define I2OSWDEL _IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer)
+-#define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,u32)
++#define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,__u32)
+ #define I2OHTML _IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html)
+ #define I2OEVTREG _IOW(I2O_MAGIC_NUMBER,10,struct i2o_evt_id)
+ #define I2OEVTGET _IOR(I2O_MAGIC_NUMBER,11,struct i2o_evt_info)
+@@ -129,65 +129,65 @@
+ #define I2O_BUS_CARDBUS 7
+ #define I2O_BUS_UNKNOWN 0x80
+
+-typedef unsigned char u8;
+-typedef unsigned short u16;
+-typedef unsigned int u32;
++typedef unsigned char __u8;
++typedef unsigned short __u16;
++typedef unsigned int __u32;
+
+ typedef struct _i2o_pci_bus
+ {
+- u8 PciFunctionNumber;
+- u8 PciDeviceNumber;
+- u8 PciBusNumber;
+- u8 reserved;
+- u16 PciVendorID;
+- u16 PciDeviceID;
++ __u8 PciFunctionNumber;
++ __u8 PciDeviceNumber;
++ __u8 PciBusNumber;
++ __u8 reserved;
++ __u16 PciVendorID;
++ __u16 PciDeviceID;
+ } i2o_pci_bus;
+
+ typedef struct _i2o_local_bus
+ {
+- u16 LbBaseIOPort;
+- u16 reserved;
+- u32 LbBaseMemoryAddress;
++ __u16 LbBaseIOPort;
++ __u16 reserved;
++ __u32 LbBaseMemoryAddress;
+ } i2o_local_bus;
+
+ typedef struct _i2o_isa_bus
+ {
+- u16 IsaBaseIOPort;
+- u8 CSN;
+- u8 reserved;
+- u32 IsaBaseMemoryAddress;
++ __u16 IsaBaseIOPort;
++ __u8 CSN;
++ __u8 reserved;
++ __u32 IsaBaseMemoryAddress;
+ } i2o_isa_bus;
+
+ typedef struct _i2o_eisa_bus_info
+ {
+- u16 EisaBaseIOPort;
+- u8 reserved;
+- u8 EisaSlotNumber;
+- u32 EisaBaseMemoryAddress;
++ __u16 EisaBaseIOPort;
++ __u8 reserved;
++ __u8 EisaSlotNumber;
++ __u32 EisaBaseMemoryAddress;
+ } i2o_eisa_bus;
+
+ typedef struct _i2o_mca_bus
+ {
+- u16 McaBaseIOPort;
+- u8 reserved;
+- u8 McaSlotNumber;
+- u32 McaBaseMemoryAddress;
++ __u16 McaBaseIOPort;
++ __u8 reserved;
++ __u8 McaSlotNumber;
++ __u32 McaBaseMemoryAddress;
+ } i2o_mca_bus;
+
+ typedef struct _i2o_other_bus
+ {
+- u16 BaseIOPort;
+- u16 reserved;
+- u32 BaseMemoryAddress;
++ __u16 BaseIOPort;
++ __u16 reserved;
++ __u32 BaseMemoryAddress;
+ } i2o_other_bus;
+
+ typedef struct _i2o_hrt_entry
+ {
+- u32 adapter_id;
+- u32 parent_tid:12;
+- u32 state:4;
+- u32 bus_num:8;
+- u32 bus_type:8;
++ __u32 adapter_id;
++ __u32 parent_tid:12;
++ __u32 state:4;
++ __u32 bus_num:8;
++ __u32 bus_type:8;
+ union
+ {
+ i2o_pci_bus pci_bus;
+@@ -201,69 +201,69 @@
+
+ typedef struct _i2o_hrt
+ {
+- u16 num_entries;
+- u8 entry_len;
+- u8 hrt_version;
+- u32 change_ind;
++ __u16 num_entries;
++ __u8 entry_len;
++ __u8 hrt_version;
++ __u32 change_ind;
+ i2o_hrt_entry hrt_entry[1];
+ } i2o_hrt;
+
+ typedef struct _i2o_lct_entry
+ {
+- u32 entry_size:16;
+- u32 tid:12;
+- u32 reserved:4;
+- u32 change_ind;
+- u32 device_flags;
+- u32 class_id:12;
+- u32 version:4;
+- u32 vendor_id:16;
+- u32 sub_class;
+- u32 user_tid:12;
+- u32 parent_tid:12;
+- u32 bios_info:8;
+- u8 identity_tag[8];
+- u32 event_capabilities;
++ __u32 entry_size:16;
++ __u32 tid:12;
++ __u32 reserved:4;
++ __u32 change_ind;
++ __u32 device_flags;
++ __u32 class_id:12;
++ __u32 version:4;
++ __u32 vendor_id:16;
++ __u32 sub_class;
++ __u32 user_tid:12;
++ __u32 parent_tid:12;
++ __u32 bios_info:8;
++ __u8 identity_tag[8];
++ __u32 event_capabilities;
+ } i2o_lct_entry;
+
+ typedef struct _i2o_lct
+ {
+- u32 table_size:16;
+- u32 boot_tid:12;
+- u32 lct_ver:4;
+- u32 iop_flags;
+- u32 change_ind;
++ __u32 table_size:16;
++ __u32 boot_tid:12;
++ __u32 lct_ver:4;
++ __u32 iop_flags;
++ __u32 change_ind;
+ i2o_lct_entry lct_entry[1];
+ } i2o_lct;
+
+ typedef struct _i2o_status_block
+ {
+- u16 org_id;
+- u16 reserved;
+- u16 iop_id:12;
+- u16 reserved1:4;
+- u16 host_unit_id;
+- u16 segment_number:12;
+- u16 i2o_version:4;
+- u8 iop_state;
+- u8 msg_type;
+- u16 inbound_frame_size;
+- u8 init_code;
+- u8 reserved2;
+- u32 max_inbound_frames;
+- u32 cur_inbound_frames;
+- u32 max_outbound_frames;
++ __u16 org_id;
++ __u16 reserved;
++ __u16 iop_id:12;
++ __u16 reserved1:4;
++ __u16 host_unit_id;
++ __u16 segment_number:12;
++ __u16 i2o_version:4;
++ __u8 iop_state;
++ __u8 msg_type;
++ __u16 inbound_frame_size;
++ __u8 init_code;
++ __u8 reserved2;
++ __u32 max_inbound_frames;
++ __u32 cur_inbound_frames;
++ __u32 max_outbound_frames;
+ char product_id[24];
+- u32 expected_lct_size;
+- u32 iop_capabilities;
+- u32 desired_mem_size;
+- u32 current_mem_size;
+- u32 current_mem_base;
+- u32 desired_io_size;
+- u32 current_io_size;
+- u32 current_io_base;
+- u32 reserved3:24;
+- u32 cmd_status:8;
++ __u32 expected_lct_size;
++ __u32 iop_capabilities;
++ __u32 desired_mem_size;
++ __u32 current_mem_size;
++ __u32 current_mem_base;
++ __u32 desired_io_size;
++ __u32 current_io_size;
++ __u32 current_io_base;
++ __u32 reserved3:24;
++ __u32 cmd_status:8;
+ } i2o_status_block;
+
+ /* Event indicator mask flags */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/isdn/capilli.h linux-libc-headers-2.6.8.0/include/linux/isdn/capilli.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/isdn/capilli.h 2004-03-28 07:52:12.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/isdn/capilli.h 2004-08-26 13:26:47.000000000 -0500
+@@ -43,20 +43,20 @@
+ char *driver_name; /* name of driver */
+ int (*load_firmware)(struct capi_ctr *, capiloaddata *);
+ void (*reset_ctr)(struct capi_ctr *);
+- void (*register_appl)(struct capi_ctr *, u16 appl,
++ void (*register_appl)(struct capi_ctr *, __u16 appl,
+ capi_register_params *);
+- void (*release_appl)(struct capi_ctr *, u16 appl);
+- u16 (*send_message)(struct capi_ctr *, struct sk_buff *skb);
++ void (*release_appl)(struct capi_ctr *, __u16 appl);
++ __u16 (*send_message)(struct capi_ctr *, struct sk_buff *skb);
+
+ char *(*procinfo)(struct capi_ctr *);
+ int (*ctr_read_proc)(char *page, char **start, off_t off,
+ int count, int *eof, struct capi_ctr *card);
+
+ /* filled in before calling ready callback */
+- u8 manu[CAPI_MANUFACTURER_LEN]; /* CAPI_GET_MANUFACTURER */
++ __u8 manu[CAPI_MANUFACTURER_LEN]; /* CAPI_GET_MANUFACTURER */
+ capi_version version; /* CAPI_GET_VERSION */
+ capi_profile profile; /* CAPI_GET_PROFILE */
+- u8 serial[CAPI_SERIAL_LEN]; /* CAPI_GET_SERIAL */
++ __u8 serial[CAPI_SERIAL_LEN]; /* CAPI_GET_SERIAL */
+
+ /* management information for kcapi */
+
+@@ -81,7 +81,7 @@
+ void capi_ctr_reseted(struct capi_ctr * card);
+ void capi_ctr_suspend_output(struct capi_ctr * card);
+ void capi_ctr_resume_output(struct capi_ctr * card);
+-void capi_ctr_handle_message(struct capi_ctr * card, u16 appl, struct sk_buff *skb);
++void capi_ctr_handle_message(struct capi_ctr * card, __u16 appl, struct sk_buff *skb);
+
+ // ---------------------------------------------------------------------------
+ // needed for AVM capi drivers
+@@ -102,11 +102,11 @@
+ // ---------------------------------------------------------------------------
+ // library functions for use by hardware controller drivers
+
+-void capilib_new_ncci(struct list_head *head, u16 applid, u32 ncci, u32 winsize);
+-void capilib_free_ncci(struct list_head *head, u16 applid, u32 ncci);
+-void capilib_release_appl(struct list_head *head, u16 applid);
++void capilib_new_ncci(struct list_head *head, __u16 applid, __u32 ncci, __u32 winsize);
++void capilib_free_ncci(struct list_head *head, __u16 applid, __u32 ncci);
++void capilib_release_appl(struct list_head *head, __u16 applid);
+ void capilib_release(struct list_head *head);
+-void capilib_data_b3_conf(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
+-u16 capilib_data_b3_req(struct list_head *head, u16 applid, u32 ncci, u16 msgid);
++void capilib_data_b3_conf(struct list_head *head, __u16 applid, __u32 ncci, __u16 msgid);
++__u16 capilib_data_b3_req(struct list_head *head, __u16 applid, __u32 ncci, __u16 msgid);
+
+ #endif /* __CAPILLI_H__ */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/jhash.h linux-libc-headers-2.6.8.0/include/linux/jhash.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/jhash.h 2004-03-28 07:52:09.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/jhash.h 2004-08-26 05:42:08.000000000 -0500
+@@ -41,19 +41,19 @@
+ * of bytes. No alignment or length assumptions are made about
+ * the input key.
+ */
+-static inline u32 jhash(const void *key, u32 length, u32 initval)
++static inline __u32 jhash(const void *key, __u32 length, __u32 initval)
+ {
+- u32 a, b, c, len;
+- const u8 *k = key;
++ __u32 a, b, c, len;
++ const __u8 *k = key;
+
+ len = length;
+ a = b = JHASH_GOLDEN_RATIO;
+ c = initval;
+
+ while (len >= 12) {
+- a += (k[0] +((u32)k[1]<<8) +((u32)k[2]<<16) +((u32)k[3]<<24));
+- b += (k[4] +((u32)k[5]<<8) +((u32)k[6]<<16) +((u32)k[7]<<24));
+- c += (k[8] +((u32)k[9]<<8) +((u32)k[10]<<16)+((u32)k[11]<<24));
++ a += (k[0] +((__u32)k[1]<<8) +((__u32)k[2]<<16) +((__u32)k[3]<<24));
++ b += (k[4] +((__u32)k[5]<<8) +((__u32)k[6]<<16) +((__u32)k[7]<<24));
++ c += (k[8] +((__u32)k[9]<<8) +((__u32)k[10]<<16)+((__u32)k[11]<<24));
+
+ __jhash_mix(a,b,c);
+
+@@ -63,16 +63,16 @@
+
+ c += length;
+ switch (len) {
+- case 11: c += ((u32)k[10]<<24);
+- case 10: c += ((u32)k[9]<<16);
+- case 9 : c += ((u32)k[8]<<8);
+- case 8 : b += ((u32)k[7]<<24);
+- case 7 : b += ((u32)k[6]<<16);
+- case 6 : b += ((u32)k[5]<<8);
++ case 11: c += ((__u32)k[10]<<24);
++ case 10: c += ((__u32)k[9]<<16);
++ case 9 : c += ((__u32)k[8]<<8);
++ case 8 : b += ((__u32)k[7]<<24);
++ case 7 : b += ((__u32)k[6]<<16);
++ case 6 : b += ((__u32)k[5]<<8);
+ case 5 : b += k[4];
+- case 4 : a += ((u32)k[3]<<24);
+- case 3 : a += ((u32)k[2]<<16);
+- case 2 : a += ((u32)k[1]<<8);
++ case 4 : a += ((__u32)k[3]<<24);
++ case 3 : a += ((__u32)k[2]<<16);
++ case 2 : a += ((__u32)k[1]<<8);
+ case 1 : a += k[0];
+ };
+
+@@ -81,12 +81,12 @@
+ return c;
+ }
+
+-/* A special optimized version that handles 1 or more of u32s.
+- * The length parameter here is the number of u32s in the key.
++/* A special optimized version that handles 1 or more of __u32s.
++ * The length parameter here is the number of __u32s in the key.
+ */
+-static inline u32 jhash2(u32 *k, u32 length, u32 initval)
++static inline __u32 jhash2(__u32 *k, __u32 length, __u32 initval)
+ {
+- u32 a, b, c, len;
++ __u32 a, b, c, len;
+
+ a = b = JHASH_GOLDEN_RATIO;
+ c = initval;
+@@ -119,7 +119,7 @@
+ * NOTE: In partilar the "c += length; __jhash_mix(a,b,c);" normally
+ * done at the end is not done here.
+ */
+-static inline u32 jhash_3words(u32 a, u32 b, u32 c, u32 initval)
++static inline __u32 jhash_3words(__u32 a, __u32 b, __u32 c, __u32 initval)
+ {
+ a += JHASH_GOLDEN_RATIO;
+ b += JHASH_GOLDEN_RATIO;
+@@ -130,12 +130,12 @@
+ return c;
+ }
+
+-static inline u32 jhash_2words(u32 a, u32 b, u32 initval)
++static inline __u32 jhash_2words(__u32 a, __u32 b, __u32 initval)
+ {
+ return jhash_3words(a, b, 0, initval);
+ }
+
+-static inline u32 jhash_1word(u32 a, u32 initval)
++static inline __u32 jhash_1word(__u32 a, __u32 initval)
+ {
+ return jhash_3words(a, 0, 0, initval);
+ }
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/jiffies.h linux-libc-headers-2.6.8.0/include/linux/jiffies.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/jiffies.h 2004-01-17 17:04:30.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/jiffies.h 2004-08-26 13:26:33.000000000 -0500
+@@ -12,15 +12,15 @@
+ * without sampling the sequence number in xtime_lock.
+ * get_jiffies_64() will do this for you as appropriate.
+ */
+-extern u64 jiffies_64;
++extern __u64 jiffies_64;
+ extern unsigned long volatile jiffies;
+
+ #if (BITS_PER_LONG < 64)
+-u64 get_jiffies_64(void);
++__u64 get_jiffies_64(void);
+ #else
+-static inline u64 get_jiffies_64(void)
++static inline __u64 get_jiffies_64(void)
+ {
+- return (u64)jiffies;
++ return (__u64)jiffies;
+ }
+ #endif
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/kernel_stat.h linux-libc-headers-2.6.8.0/include/linux/kernel_stat.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/kernel_stat.h 2004-04-19 16:13:51.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/kernel_stat.h 2004-08-26 05:42:08.000000000 -0500
+@@ -12,13 +12,13 @@
+ */
+
+ struct cpu_usage_stat {
+- u64 user;
+- u64 nice;
+- u64 system;
+- u64 softirq;
+- u64 irq;
+- u64 idle;
+- u64 iowait;
++ __u64 user;
++ __u64 nice;
++ __u64 system;
++ __u64 softirq;
++ __u64 irq;
++ __u64 idle;
++ __u64 iowait;
+ };
+
+ struct kernel_stat {
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/libata.h linux-libc-headers-2.6.8.0/include/linux/libata.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/libata.h 2004-08-18 13:16:03.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/libata.h 2004-08-26 05:42:08.000000000 -0500
+@@ -160,7 +160,7 @@
+ struct ata_queued_cmd;
+
+ /* typedefs */
+-typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, u8 drv_stat);
++typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, __u8 drv_stat);
+
+ struct ata_ioports {
+ unsigned long cmd_addr;
+@@ -246,18 +246,18 @@
+ };
+
+ struct ata_device {
+- u64 n_sectors; /* size of device, if ATA */
++ __u64 n_sectors; /* size of device, if ATA */
+ unsigned long flags; /* ATA_DFLAG_xxx */
+ unsigned int class; /* ATA_DEV_xxx */
+ unsigned int devno; /* 0 or 1 */
+- u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
++ __u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */
+ unsigned int pio_mode;
+ unsigned int udma_mode;
+
+ /* cache info about current transfer mode */
+- u8 xfer_protocol; /* taskfile xfer protocol */
+- u8 read_cmd; /* opcode to use on read */
+- u8 write_cmd; /* opcode to use on write */
++ __u8 xfer_protocol; /* taskfile xfer protocol */
++ __u8 read_cmd; /* opcode to use on read */
++ __u8 write_cmd; /* opcode to use on write */
+ };
+
+ struct ata_port {
+@@ -272,8 +272,8 @@
+
+ struct ata_ioports ioaddr; /* ATA cmd/ctl/dma register blocks */
+
+- u8 ctl; /* cache of ATA control register */
+- u8 last_ctl; /* Cache last written value */
++ __u8 ctl; /* cache of ATA control register */
++ __u8 last_ctl; /* Cache last written value */
+ unsigned int bus_state;
+ unsigned int port_state;
+ unsigned int pio_mask;
+@@ -312,7 +312,7 @@
+ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
+
+ void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
+- u8 (*check_status)(struct ata_port *ap);
++ __u8 (*check_status)(struct ata_port *ap);
+
+ void (*phy_reset) (struct ata_port *ap);
+ void (*post_set_mode) (struct ata_port *ap);
+@@ -328,9 +328,9 @@
+ irqreturn_t (*irq_handler)(int, void *, struct pt_regs *);
+ void (*irq_clear) (struct ata_port *);
+
+- u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
++ __u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
+ void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
+- u32 val);
++ __u32 val);
+
+ int (*port_start) (struct ata_port *ap);
+ void (*port_stop) (struct ata_port *ap);
+@@ -374,10 +374,10 @@
+ extern void ata_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf);
+ extern void ata_tf_read_pio(struct ata_port *ap, struct ata_taskfile *tf);
+ extern void ata_tf_read_mmio(struct ata_port *ap, struct ata_taskfile *tf);
+-extern void ata_tf_to_fis(struct ata_taskfile *tf, u8 *fis, u8 pmp);
+-extern void ata_tf_from_fis(u8 *fis, struct ata_taskfile *tf);
+-extern u8 ata_check_status_pio(struct ata_port *ap);
+-extern u8 ata_check_status_mmio(struct ata_port *ap);
++extern void ata_tf_to_fis(struct ata_taskfile *tf, __u8 *fis, __u8 pmp);
++extern void ata_tf_from_fis(__u8 *fis, struct ata_taskfile *tf);
++extern __u8 ata_check_status_pio(struct ata_port *ap);
++extern __u8 ata_check_status_mmio(struct ata_port *ap);
+ extern void ata_exec_command_pio(struct ata_port *ap, struct ata_taskfile *tf);
+ extern void ata_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf);
+ extern int ata_port_start (struct ata_port *ap);
+@@ -397,7 +397,7 @@
+ extern void ata_bmdma_start_pio (struct ata_queued_cmd *qc);
+ extern void ata_bmdma_irq_clear(struct ata_port *ap);
+ extern int pci_test_config_bits(struct pci_dev *pdev, struct pci_bits *bits);
+-extern void ata_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat);
++extern void ata_qc_complete(struct ata_queued_cmd *qc, __u8 drv_stat);
+ extern void ata_eng_timeout(struct ata_port *ap);
+ extern int ata_std_bios_param(struct scsi_device *sdev,
+ struct block_device *bdev,
+@@ -416,7 +416,7 @@
+ (dev->class == ATA_DEV_ATAPI));
+ }
+
+-static inline u8 ata_chk_err(struct ata_port *ap)
++static inline __u8 ata_chk_err(struct ata_port *ap)
+ {
+ if (ap->flags & ATA_FLAG_MMIO) {
+ return readb((void *) ap->ioaddr.error_addr);
+@@ -424,12 +424,12 @@
+ return inb(ap->ioaddr.error_addr);
+ }
+
+-static inline u8 ata_chk_status(struct ata_port *ap)
++static inline __u8 ata_chk_status(struct ata_port *ap)
+ {
+ return ap->ops->check_status(ap);
+ }
+
+-static inline u8 ata_altstatus(struct ata_port *ap)
++static inline __u8 ata_altstatus(struct ata_port *ap)
+ {
+ if (ap->flags & ATA_FLAG_MMIO)
+ return readb(ap->ioaddr.altstatus_addr);
+@@ -442,10 +442,10 @@
+ ndelay(400);
+ }
+
+-static inline u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
++static inline __u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
+ unsigned int max)
+ {
+- u8 status;
++ __u8 status;
+
+ do {
+ udelay(10);
+@@ -456,9 +456,9 @@
+ return status;
+ }
+
+-static inline u8 ata_wait_idle(struct ata_port *ap)
++static inline __u8 ata_wait_idle(struct ata_port *ap)
+ {
+- u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
++ __u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
+
+ if (status & (ATA_BUSY | ATA_DRQ)) {
+ unsigned long l = ap->ioaddr.status_addr;
+@@ -495,10 +495,10 @@
+ tf->device = ATA_DEVICE_OBS | ATA_DEV1;
+ }
+
+-static inline u8 ata_irq_on(struct ata_port *ap)
++static inline __u8 ata_irq_on(struct ata_port *ap)
+ {
+ struct ata_ioports *ioaddr = &ap->ioaddr;
+- u8 tmp;
++ __u8 tmp;
+
+ ap->ctl &= ~ATA_NIEN;
+ ap->last_ctl = ap->ctl;
+@@ -514,10 +514,10 @@
+ return tmp;
+ }
+
+-static inline u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)
++static inline __u8 ata_irq_ack(struct ata_port *ap, unsigned int chk_drq)
+ {
+ unsigned int bits = chk_drq ? ATA_BUSY | ATA_DRQ : ATA_BUSY;
+- u8 host_stat, post_stat, status;
++ __u8 host_stat, post_stat, status;
+
+ status = ata_busy_wait(ap, bits, 1000);
+ if (status & bits)
+@@ -545,12 +545,12 @@
+ return status;
+ }
+
+-static inline u32 scr_read(struct ata_port *ap, unsigned int reg)
++static inline __u32 scr_read(struct ata_port *ap, unsigned int reg)
+ {
+ return ap->ops->scr_read(ap, reg);
+ }
+
+-static inline void scr_write(struct ata_port *ap, unsigned int reg, u32 val)
++static inline void scr_write(struct ata_port *ap, unsigned int reg, __u32 val)
+ {
+ ap->ops->scr_write(ap, reg, val);
+ }
+@@ -589,9 +589,9 @@
+ }
+ }
+
+-static inline u8 ata_bmdma_status(struct ata_port *ap)
++static inline __u8 ata_bmdma_status(struct ata_port *ap)
+ {
+- u8 host_stat;
++ __u8 host_stat;
+ if (ap->flags & ATA_FLAG_MMIO) {
+ void *mmio = (void *) ap->ioaddr.bmdma_addr;
+ host_stat = readb(mmio + ATA_DMA_STATUS);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/bind.h linux-libc-headers-2.6.8.0/include/linux/lockd/bind.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/bind.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/lockd/bind.h 2004-08-26 05:42:08.000000000 -0500
+@@ -18,7 +18,7 @@
+ * This is the set of functions for lockd->nfsd communication
+ */
+ struct nlmsvc_binding {
+- u32 (*fopen)(struct svc_rqst *,
++ __u32 (*fopen)(struct svc_rqst *,
+ struct nfs_fh *,
+ struct file *);
+ void (*fclose)(struct file *);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/nlm.h linux-libc-headers-2.6.8.0/include/linux/lockd/nlm.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/nlm.h 2004-01-17 17:04:34.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/lockd/nlm.h 2004-08-26 05:42:08.000000000 -0500
+@@ -11,8 +11,8 @@
+
+
+ /* Maximum file offset in file_lock.fl_end */
+-# define NLM_OFFSET_MAX ((s32) 0x7fffffff)
+-# define NLM4_OFFSET_MAX ((s64) ((~(u64)0) >> 1))
++# define NLM_OFFSET_MAX ((__s32) 0x7fffffff)
++# define NLM4_OFFSET_MAX ((__s64) ((~(__u64)0) >> 1))
+
+ /* Return states for NLM */
+ enum {
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/share.h linux-libc-headers-2.6.8.0/include/linux/lockd/share.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/share.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/lockd/share.h 2004-08-26 13:26:43.000000000 -0500
+@@ -17,13 +17,13 @@
+ struct nlm_host * s_host; /* client host */
+ struct nlm_file * s_file; /* shared file */
+ struct xdr_netobj s_owner; /* owner handle */
+- u32 s_access; /* access mode */
+- u32 s_mode; /* deny mode */
++ __u32 s_access; /* access mode */
++ __u32 s_mode; /* deny mode */
+ };
+
+-u32 nlmsvc_share_file(struct nlm_host *, struct nlm_file *,
++__u32 nlmsvc_share_file(struct nlm_host *, struct nlm_file *,
+ struct nlm_args *);
+-u32 nlmsvc_unshare_file(struct nlm_host *, struct nlm_file *,
++__u32 nlmsvc_unshare_file(struct nlm_host *, struct nlm_file *,
+ struct nlm_args *);
+ int nlmsvc_traverse_shares(struct nlm_host *, struct nlm_file *, int);
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/sm_inter.h linux-libc-headers-2.6.8.0/include/linux/lockd/sm_inter.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/sm_inter.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/lockd/sm_inter.h 2004-08-26 05:42:08.000000000 -0500
+@@ -24,23 +24,23 @@
+ * Arguments for all calls to statd
+ */
+ struct nsm_args {
+- u32 addr; /* remote address */
+- u32 prog; /* RPC callback info */
+- u32 vers;
+- u32 proc;
+- u32 proto; /* protocol (udp/tcp) plus server/client flag */
++ __u32 addr; /* remote address */
++ __u32 prog; /* RPC callback info */
++ __u32 vers;
++ __u32 proc;
++ __u32 proto; /* protocol (udp/tcp) plus server/client flag */
+ };
+
+ /*
+ * Result returned by statd
+ */
+ struct nsm_res {
+- u32 status;
+- u32 state;
++ __u32 status;
++ __u32 state;
+ };
+
+ int nsm_monitor(struct nlm_host *);
+ int nsm_unmonitor(struct nlm_host *);
+-extern u32 nsm_local_state;
++extern __u32 nsm_local_state;
+
+ #endif /* LINUX_LOCKD_SM_INTER_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr.h linux-libc-headers-2.6.8.0/include/linux/lockd/xdr.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr.h 2004-01-05 12:42:33.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/lockd/xdr.h 2004-08-26 05:42:08.000000000 -0500
+@@ -48,12 +48,12 @@
+ struct nlm_args {
+ struct nlm_cookie cookie;
+ struct nlm_lock lock;
+- u32 block;
+- u32 reclaim;
+- u32 state;
+- u32 monitor;
+- u32 fsm_access;
+- u32 fsm_mode;
++ __u32 block;
++ __u32 reclaim;
++ __u32 state;
++ __u32 monitor;
++ __u32 fsm_access;
++ __u32 fsm_mode;
+ };
+
+ typedef struct nlm_args nlm_args;
+@@ -63,7 +63,7 @@
+ */
+ struct nlm_res {
+ struct nlm_cookie cookie;
+- u32 status;
++ __u32 status;
+ struct nlm_lock lock;
+ };
+
+@@ -73,10 +73,10 @@
+ struct nlm_reboot {
+ char * mon;
+ int len;
+- u32 state;
+- u32 addr;
+- u32 vers;
+- u32 proto;
++ __u32 state;
++ __u32 addr;
++ __u32 vers;
++ __u32 proto;
+ };
+
+ /*
+@@ -84,24 +84,24 @@
+ */
+ #define NLMSVC_XDRSIZE sizeof(struct nlm_args)
+
+-int nlmsvc_decode_testargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlmsvc_encode_testres(struct svc_rqst *, u32 *, struct nlm_res *);
+-int nlmsvc_decode_lockargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlmsvc_decode_cancargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlmsvc_decode_unlockargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlmsvc_encode_res(struct svc_rqst *, u32 *, struct nlm_res *);
+-int nlmsvc_decode_res(struct svc_rqst *, u32 *, struct nlm_res *);
+-int nlmsvc_encode_void(struct svc_rqst *, u32 *, void *);
+-int nlmsvc_decode_void(struct svc_rqst *, u32 *, void *);
+-int nlmsvc_decode_shareargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlmsvc_encode_shareres(struct svc_rqst *, u32 *, struct nlm_res *);
+-int nlmsvc_decode_notify(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlmsvc_decode_reboot(struct svc_rqst *, u32 *, struct nlm_reboot *);
++int nlmsvc_decode_testargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlmsvc_encode_testres(struct svc_rqst *, __u32 *, struct nlm_res *);
++int nlmsvc_decode_lockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlmsvc_decode_cancargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlmsvc_decode_unlockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlmsvc_encode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
++int nlmsvc_decode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
++int nlmsvc_encode_void(struct svc_rqst *, __u32 *, void *);
++int nlmsvc_decode_void(struct svc_rqst *, __u32 *, void *);
++int nlmsvc_decode_shareargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlmsvc_encode_shareres(struct svc_rqst *, __u32 *, struct nlm_res *);
++int nlmsvc_decode_notify(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlmsvc_decode_reboot(struct svc_rqst *, __u32 *, struct nlm_reboot *);
+ /*
+-int nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
+-int nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
+-int nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
+-int nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
++int nlmclt_encode_testargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
++int nlmclt_encode_lockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
++int nlmclt_encode_cancargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
++int nlmclt_encode_unlockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
+ */
+
+ #endif /* LOCKD_XDR_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr4.h linux-libc-headers-2.6.8.0/include/linux/lockd/xdr4.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/lockd/xdr4.h 2004-01-05 12:42:33.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/lockd/xdr4.h 2004-08-26 05:42:08.000000000 -0500
+@@ -22,24 +22,24 @@
+
+
+
+-int nlm4svc_decode_testargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlm4svc_encode_testres(struct svc_rqst *, u32 *, struct nlm_res *);
+-int nlm4svc_decode_lockargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlm4svc_decode_cancargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlm4svc_decode_unlockargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlm4svc_encode_res(struct svc_rqst *, u32 *, struct nlm_res *);
+-int nlm4svc_decode_res(struct svc_rqst *, u32 *, struct nlm_res *);
+-int nlm4svc_encode_void(struct svc_rqst *, u32 *, void *);
+-int nlm4svc_decode_void(struct svc_rqst *, u32 *, void *);
+-int nlm4svc_decode_shareargs(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlm4svc_encode_shareres(struct svc_rqst *, u32 *, struct nlm_res *);
+-int nlm4svc_decode_notify(struct svc_rqst *, u32 *, struct nlm_args *);
+-int nlm4svc_decode_reboot(struct svc_rqst *, u32 *, struct nlm_reboot *);
++int nlm4svc_decode_testargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlm4svc_encode_testres(struct svc_rqst *, __u32 *, struct nlm_res *);
++int nlm4svc_decode_lockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlm4svc_decode_cancargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlm4svc_decode_unlockargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlm4svc_encode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
++int nlm4svc_decode_res(struct svc_rqst *, __u32 *, struct nlm_res *);
++int nlm4svc_encode_void(struct svc_rqst *, __u32 *, void *);
++int nlm4svc_decode_void(struct svc_rqst *, __u32 *, void *);
++int nlm4svc_decode_shareargs(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlm4svc_encode_shareres(struct svc_rqst *, __u32 *, struct nlm_res *);
++int nlm4svc_decode_notify(struct svc_rqst *, __u32 *, struct nlm_args *);
++int nlm4svc_decode_reboot(struct svc_rqst *, __u32 *, struct nlm_reboot *);
+ /*
+-int nlmclt_encode_testargs(struct rpc_rqst *, u32 *, struct nlm_args *);
+-int nlmclt_encode_lockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
+-int nlmclt_encode_cancargs(struct rpc_rqst *, u32 *, struct nlm_args *);
+-int nlmclt_encode_unlockargs(struct rpc_rqst *, u32 *, struct nlm_args *);
++int nlmclt_encode_testargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
++int nlmclt_encode_lockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
++int nlmclt_encode_cancargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
++int nlmclt_encode_unlockargs(struct rpc_rqst *, __u32 *, struct nlm_args *);
+ */
+
+ #endif /* LOCKD_XDR4_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mca.h linux-libc-headers-2.6.8.0/include/linux/mca.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/mca.h 2004-08-18 13:16:03.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/mca.h 2004-08-26 05:42:08.000000000 -0500
+@@ -50,7 +50,7 @@
+ };
+
+ struct mca_device {
+- u64 dma_mask;
++ __u64 dma_mask;
+ int pos_id;
+ int slot;
+
+@@ -91,7 +91,7 @@
+ };
+
+ struct mca_bus {
+- u64 default_dma_mask;
++ __u64 default_dma_mask;
+ int number;
+ struct mca_bus_accessor_functions f;
+ struct device dev;
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mii.h linux-libc-headers-2.6.8.0/include/linux/mii.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/mii.h 2004-06-23 16:52:55.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/mii.h 2004-08-26 05:42:08.000000000 -0500
+@@ -138,10 +138,10 @@
+
+ /* This structure is used in all SIOCxMIIxxx ioctl calls */
+ struct mii_ioctl_data {
+- u16 phy_id;
+- u16 reg_num;
+- u16 val_in;
+- u16 val_out;
++ __u16 phy_id;
++ __u16 reg_num;
++ __u16 val_in;
++ __u16 val_out;
+ };
+
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/map.h linux-libc-headers-2.6.8.0/include/linux/mtd/map.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/map.h 2004-08-18 13:16:06.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/mtd/map.h 2004-08-26 05:42:08.000000000 -0500
+@@ -36,20 +36,20 @@
+ int buswidth; /* in octets */
+
+ #ifdef CONFIG_MTD_COMPLEX_MAPPINGS
+- u8 (*read8)(struct map_info *, unsigned long);
+- u16 (*read16)(struct map_info *, unsigned long);
+- u32 (*read32)(struct map_info *, unsigned long);
+- u64 (*read64)(struct map_info *, unsigned long);
++ __u8 (*read8)(struct map_info *, unsigned long);
++ __u16 (*read16)(struct map_info *, unsigned long);
++ __u32 (*read32)(struct map_info *, unsigned long);
++ __u64 (*read64)(struct map_info *, unsigned long);
+ /* If it returned a 'long' I'd call it readl.
+ * It doesn't.
+ * I won't.
+ * dwmw2 */
+
+ void (*copy_from)(struct map_info *, void *, unsigned long, ssize_t);
+- void (*write8)(struct map_info *, u8, unsigned long);
+- void (*write16)(struct map_info *, u16, unsigned long);
+- void (*write32)(struct map_info *, u32, unsigned long);
+- void (*write64)(struct map_info *, u64, unsigned long);
++ void (*write8)(struct map_info *, __u8, unsigned long);
++ void (*write16)(struct map_info *, __u16, unsigned long);
++ void (*write32)(struct map_info *, __u32, unsigned long);
++ void (*write64)(struct map_info *, __u64, unsigned long);
+ void (*copy_to)(struct map_info *, unsigned long, const void *, ssize_t);
+
+ /* We can perhaps put in 'point' and 'unpoint' methods, if we really
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/nand.h linux-libc-headers-2.6.8.0/include/linux/mtd/nand.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/nand.h 2004-08-18 13:16:06.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/mtd/nand.h 2004-08-26 05:42:08.000000000 -0500
+@@ -271,8 +271,8 @@
+
+ u_char (*read_byte)(struct mtd_info *mtd);
+ void (*write_byte)(struct mtd_info *mtd, u_char byte);
+- u16 (*read_word)(struct mtd_info *mtd);
+- void (*write_word)(struct mtd_info *mtd, u16 word);
++ __u16 (*read_word)(struct mtd_info *mtd);
++ void (*write_word)(struct mtd_info *mtd, __u16 word);
+
+ void (*write_buf)(struct mtd_info *mtd, const u_char *buf, int len);
+ void (*read_buf)(struct mtd_info *mtd, u_char *buf, int len);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/mtd/pmc551.h linux-libc-headers-2.6.8.0/include/linux/mtd/pmc551.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/mtd/pmc551.h 2004-03-28 07:52:13.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/mtd/pmc551.h 2004-08-26 05:42:08.000000000 -0500
+@@ -25,9 +25,9 @@
+ struct mypriv {
+ struct pci_dev *dev;
+ u_char *start;
+- u32 base_map0;
+- u32 curr_map0;
+- u32 asize;
++ __u32 base_map0;
++ __u32 curr_map0;
++ __u32 asize;
+ struct mtd_info *nextpmc551;
+ };
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nbd.h linux-libc-headers-2.6.8.0/include/linux/nbd.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/nbd.h 2004-03-28 07:52:09.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/nbd.h 2004-08-26 05:42:08.000000000 -0500
+@@ -45,11 +45,11 @@
+ * server. All data are in network byte order.
+ */
+ struct nbd_request {
+- u32 magic;
+- u32 type; /* == READ || == WRITE */
++ __u32 magic;
++ __u32 type; /* == READ || == WRITE */
+ char handle[8];
+- u64 from;
+- u32 len;
++ __u64 from;
++ __u32 len;
+ }
+ #ifdef __GNUC__
+ __attribute__ ((packed))
+@@ -61,8 +61,8 @@
+ * it has completed an I/O request (or an error occurs).
+ */
+ struct nbd_reply {
+- u32 magic;
+- u32 error; /* 0 = ok, else error */
++ __u32 magic;
++ __u32 error; /* 0 = ok, else error */
+ char handle[8]; /* handle you got from request */
+ };
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_i.h linux-libc-headers-2.6.8.0/include/linux/nfs_fs_i.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_i.h 2004-01-17 17:04:31.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/nfs_fs_i.h 2004-08-26 05:42:08.000000000 -0500
+@@ -8,8 +8,8 @@
+ * NFS lock info
+ */
+ struct nfs_lock_info {
+- u32 state;
+- u32 flags;
++ __u32 state;
++ __u32 flags;
+ struct nlm_host *host;
+ };
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_sb.h linux-libc-headers-2.6.8.0/include/linux/nfs_fs_sb.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_fs_sb.h 2004-06-09 07:00:50.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/nfs_fs_sb.h 2004-08-26 05:42:08.000000000 -0500
+@@ -37,10 +37,10 @@
+ struct list_head nfs4_siblings; /* List of other nfs_server structs
+ * that share the same clientid
+ */
+- u32 attr_bitmask[2];/* V4 bitmask representing the set
++ __u32 attr_bitmask[2];/* V4 bitmask representing the set
+ of attributes supported on this
+ filesystem */
+- u32 acl_bitmask; /* V4 bitmask representing the ACEs
++ __u32 acl_bitmask; /* V4 bitmask representing the ACEs
+ that are supported on this
+ filesystem */
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfs_xdr.h linux-libc-headers-2.6.8.0/include/linux/nfs_xdr.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/nfs_xdr.h 2004-06-09 07:00:50.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/nfs_xdr.h 2004-08-26 05:42:08.000000000 -0500
+@@ -90,9 +90,9 @@
+ };
+
+ struct nfs4_change_info {
+- u32 atomic;
+- u64 before;
+- u64 after;
++ __u32 atomic;
++ __u64 before;
++ __u64 after;
+ };
+
+ /*
+@@ -112,7 +112,7 @@
+ } u;
+ const struct qstr * name;
+ const struct nfs_server *server; /* Needed for ID mapping */
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs_openres {
+@@ -168,7 +168,7 @@
+ * */
+ struct nfs_lowner {
+ __u64 clientid;
+- u32 id;
++ __u32 id;
+ };
+
+ struct nfs_open_to_lock {
+@@ -328,7 +328,7 @@
+ nfs4_stateid stateid;
+ struct iattr * iap;
+ const struct nfs_server * server; /* Needed for name mapping */
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs_setattrres {
+@@ -482,32 +482,32 @@
+
+ #ifdef CONFIG_NFS_V4
+
+-typedef u64 clientid4;
++typedef __u64 clientid4;
+
+ struct nfs4_accessargs {
+ const struct nfs_fh * fh;
+- u32 access;
++ __u32 access;
+ };
+
+ struct nfs4_accessres {
+- u32 supported;
+- u32 access;
++ __u32 supported;
++ __u32 access;
+ };
+
+ struct nfs4_create_arg {
+- u32 ftype;
++ __u32 ftype;
+ union {
+ struct qstr * symlink; /* NF4LNK */
+ struct {
+- u32 specdata1;
+- u32 specdata2;
++ __u32 specdata1;
++ __u32 specdata2;
+ } device; /* NF4BLK, NF4CHR */
+ } u;
+ const struct qstr * name;
+ const struct nfs_server * server;
+ const struct iattr * attrs;
+ const struct nfs_fh * dir_fh;
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs4_create_res {
+@@ -519,12 +519,12 @@
+
+ struct nfs4_fsinfo_arg {
+ const struct nfs_fh * fh;
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs4_getattr_arg {
+ const struct nfs_fh * fh;
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs4_getattr_res {
+@@ -541,7 +541,7 @@
+ struct nfs4_lookup_arg {
+ const struct nfs_fh * dir_fh;
+ const struct qstr * name;
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs4_lookup_res {
+@@ -551,19 +551,19 @@
+ };
+
+ struct nfs4_lookup_root_arg {
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs4_pathconf_arg {
+ const struct nfs_fh * fh;
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs4_readdir_arg {
+ const struct nfs_fh * fh;
+- u64 cookie;
++ __u64 cookie;
+ nfs4_verifier verifier;
+- u32 count;
++ __u32 count;
+ struct page ** pages; /* zero-copy data */
+ unsigned int pgbase; /* zero-copy data */
+ };
+@@ -575,7 +575,7 @@
+
+ struct nfs4_readlink {
+ const struct nfs_fh * fh;
+- u32 count; /* zero-copy data */
++ __u32 count; /* zero-copy data */
+ struct page ** pages; /* zero-copy data */
+ };
+
+@@ -599,23 +599,23 @@
+ struct nfs4_setclientid {
+ nfs4_verifier sc_verifier; /* request */
+ char * sc_name; /* request */
+- u32 sc_prog; /* request */
++ __u32 sc_prog; /* request */
+ char sc_netid[4]; /* request */
+ char sc_uaddr[24]; /* request */
+- u32 sc_cb_ident; /* request */
++ __u32 sc_cb_ident; /* request */
+ struct nfs4_client * sc_state; /* response */
+ };
+
+ struct nfs4_statfs_arg {
+ const struct nfs_fh * fh;
+- const u32 * bitmask;
++ const __u32 * bitmask;
+ };
+
+ struct nfs4_server_caps_res {
+- u32 attr_bitmask[2];
+- u32 acl_bitmask;
+- u32 has_links;
+- u32 has_symlinks;
++ __u32 attr_bitmask[2];
++ __u32 acl_bitmask;
++ __u32 has_links;
++ __u32 has_symlinks;
+ };
+
+ #endif /* CONFIG_NFS_V4 */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/state.h linux-libc-headers-2.6.8.0/include/linux/nfsd/state.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/state.h 2004-08-18 13:16:07.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/nfsd/state.h 2004-08-26 05:42:08.000000000 -0500
+@@ -41,18 +41,18 @@
+
+ #define NFS4_OPAQUE_LIMIT 1024
+ typedef struct {
+- u32 cl_boot;
+- u32 cl_id;
++ __u32 cl_boot;
++ __u32 cl_id;
+ } clientid_t;
+
+ typedef struct {
+- u32 so_boot;
+- u32 so_stateownerid;
+- u32 so_fileid;
++ __u32 so_boot;
++ __u32 so_stateownerid;
++ __u32 so_fileid;
+ } stateid_opaque_t;
+
+ typedef struct {
+- u32 si_generation;
++ __u32 si_generation;
+ stateid_opaque_t si_opaque;
+ } stateid_t;
+ #define si_boot si_opaque.so_boot
+@@ -68,14 +68,14 @@
+ /* client delegation callback info */
+ struct nfs4_callback {
+ /* SETCLIENTID info */
+- u32 cb_parsed; /* addr parsed */
+- u32 cb_addr;
++ __u32 cb_parsed; /* addr parsed */
++ __u32 cb_addr;
+ unsigned short cb_port;
+- u32 cb_prog;
+- u32 cb_ident;
++ __u32 cb_prog;
++ __u32 cb_ident;
+ struct xdr_netobj cb_netid;
+ /* RPC client info */
+- u32 cb_set; /* successful CB_NULL call */
++ __u32 cb_set; /* successful CB_NULL call */
+ struct rpc_program cb_program;
+ struct rpc_stat cb_stat;
+ struct rpc_clnt * cb_client;
+@@ -99,7 +99,7 @@
+ struct xdr_netobj cl_name; /* id generated by client */
+ nfs4_verifier cl_verifier; /* generated by client */
+ time_t cl_time; /* time of last lease renewal */
+- u32 cl_addr; /* client ipaddress */
++ __u32 cl_addr; /* client ipaddress */
+ struct svc_cred cl_cred; /* setclientid principal */
+ clientid_t cl_clientid; /* generated by server */
+ nfs4_verifier cl_confirm; /* generated by server */
+@@ -116,7 +116,7 @@
+ struct list_head cr_strhash; /* hash by cr_name */
+ struct xdr_netobj cr_name; /* id generated by client */
+ time_t cr_first_state; /* first state aquisition */
+- u32 cr_expired; /* boolean: lease expired? */
++ __u32 cr_expired; /* boolean: lease expired? */
+ };
+
+ static inline void
+@@ -139,7 +139,7 @@
+ * is cached.
+ */
+ struct nfs4_replay {
+- u32 rp_status;
++ __u32 rp_status;
+ unsigned int rp_buflen;
+ char *rp_buf;
+ unsigned intrp_allocated;
+@@ -175,9 +175,9 @@
+ struct list_head so_close_lru; /* tail queue */
+ time_t so_time; /* time of placement on so_close_lru */
+ int so_is_open_owner; /* 1=openowner,0=lockowner */
+- u32 so_id;
++ __u32 so_id;
+ struct nfs4_client * so_client;
+- u32 so_seqid;
++ __u32 so_seqid;
+ struct xdr_netobj so_owner; /* open owner name */
+ int so_confirmed; /* successful OPEN_CONFIRM? */
+ struct nfs4_replay so_replay;
+@@ -192,7 +192,7 @@
+ struct list_head fi_hash; /* hash by "struct inode *" */
+ struct list_head fi_perfile; /* list: nfs4_stateid */
+ struct inode *fi_inode;
+- u32 fi_id; /* used with stateowner->so_id
++ __u32 fi_id; /* used with stateowner->so_id
+ * for stateid_hashtbl hash */
+ };
+
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr.h 2004-08-18 13:16:07.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr.h 2004-08-26 05:42:08.000000000 -0500
+@@ -83,7 +83,7 @@
+ struct svc_fh fh;
+ __u32 cookie;
+ __u32 count;
+- u32 * buffer;
++ __u32 * buffer;
+ };
+
+ struct nfsd_attrstat {
+@@ -107,9 +107,9 @@
+ int count;
+
+ struct readdir_cd common;
+- u32 * buffer;
++ __u32 * buffer;
+ int buflen;
+- u32 * offset;
++ __u32 * offset;
+ };
+
+ struct nfsd_statfsres {
+@@ -134,39 +134,39 @@
+ #define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)
+
+
+-int nfssvc_decode_void(struct svc_rqst *, u32 *, void *);
+-int nfssvc_decode_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
+-int nfssvc_decode_sattrargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_void(struct svc_rqst *, __u32 *, void *);
++int nfssvc_decode_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
++int nfssvc_decode_sattrargs(struct svc_rqst *, __u32 *,
+ struct nfsd_sattrargs *);
+-int nfssvc_decode_diropargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_diropargs(struct svc_rqst *, __u32 *,
+ struct nfsd_diropargs *);
+-int nfssvc_decode_readargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_readargs(struct svc_rqst *, __u32 *,
+ struct nfsd_readargs *);
+-int nfssvc_decode_writeargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_writeargs(struct svc_rqst *, __u32 *,
+ struct nfsd_writeargs *);
+-int nfssvc_decode_createargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_createargs(struct svc_rqst *, __u32 *,
+ struct nfsd_createargs *);
+-int nfssvc_decode_renameargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_renameargs(struct svc_rqst *, __u32 *,
+ struct nfsd_renameargs *);
+-int nfssvc_decode_readlinkargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_readlinkargs(struct svc_rqst *, __u32 *,
+ struct nfsd_readlinkargs *);
+-int nfssvc_decode_linkargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_linkargs(struct svc_rqst *, __u32 *,
+ struct nfsd_linkargs *);
+-int nfssvc_decode_symlinkargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_symlinkargs(struct svc_rqst *, __u32 *,
+ struct nfsd_symlinkargs *);
+-int nfssvc_decode_readdirargs(struct svc_rqst *, u32 *,
++int nfssvc_decode_readdirargs(struct svc_rqst *, __u32 *,
+ struct nfsd_readdirargs *);
+-int nfssvc_encode_void(struct svc_rqst *, u32 *, void *);
+-int nfssvc_encode_attrstat(struct svc_rqst *, u32 *, struct nfsd_attrstat *);
+-int nfssvc_encode_diropres(struct svc_rqst *, u32 *, struct nfsd_diropres *);
+-int nfssvc_encode_readlinkres(struct svc_rqst *, u32 *, struct nfsd_readlinkres *);
+-int nfssvc_encode_readres(struct svc_rqst *, u32 *, struct nfsd_readres *);
+-int nfssvc_encode_statfsres(struct svc_rqst *, u32 *, struct nfsd_statfsres *);
+-int nfssvc_encode_readdirres(struct svc_rqst *, u32 *, struct nfsd_readdirres *);
++int nfssvc_encode_void(struct svc_rqst *, __u32 *, void *);
++int nfssvc_encode_attrstat(struct svc_rqst *, __u32 *, struct nfsd_attrstat *);
++int nfssvc_encode_diropres(struct svc_rqst *, __u32 *, struct nfsd_diropres *);
++int nfssvc_encode_readlinkres(struct svc_rqst *, __u32 *, struct nfsd_readlinkres *);
++int nfssvc_encode_readres(struct svc_rqst *, __u32 *, struct nfsd_readres *);
++int nfssvc_encode_statfsres(struct svc_rqst *, __u32 *, struct nfsd_statfsres *);
++int nfssvc_encode_readdirres(struct svc_rqst *, __u32 *, struct nfsd_readdirres *);
+
+ int nfssvc_encode_entry(struct readdir_cd *, const char *name,
+ int namlen, loff_t offset, ino_t ino, unsigned int);
+
+-int nfssvc_release_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
++int nfssvc_release_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
+
+ #endif /* LINUX_NFSD_H */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr3.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr3.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr3.h 2004-08-18 13:16:07.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr3.h 2004-08-26 05:42:08.000000000 -0500
+@@ -101,7 +101,7 @@
+ __u32 dircount;
+ __u32 count;
+ __u32 * verf;
+- u32 * buffer;
++ __u32 * buffer;
+ };
+
+ struct nfsd3_commitargs {
+@@ -167,10 +167,10 @@
+ __u32 verf[2];
+
+ struct readdir_cd common;
+- u32 * buffer;
++ __u32 * buffer;
+ int buflen;
+- u32 * offset;
+- u32 * offset1;
++ __u32 * offset;
++ __u32 * offset1;
+ struct svc_rqst * rqstp;
+
+ };
+@@ -245,70 +245,70 @@
+
+ #define NFS3_SVC_XDRSIZE sizeof(union nfsd3_xdrstore)
+
+-int nfs3svc_decode_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *);
+-int nfs3svc_decode_sattrargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_fhandle(struct svc_rqst *, __u32 *, struct nfsd_fhandle *);
++int nfs3svc_decode_sattrargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_sattrargs *);
+-int nfs3svc_decode_diropargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_diropargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_diropargs *);
+-int nfs3svc_decode_accessargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_accessargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_accessargs *);
+-int nfs3svc_decode_readargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_readargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_readargs *);
+-int nfs3svc_decode_writeargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_writeargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_writeargs *);
+-int nfs3svc_decode_createargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_createargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_createargs *);
+-int nfs3svc_decode_mkdirargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_mkdirargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_createargs *);
+-int nfs3svc_decode_mknodargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_mknodargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_mknodargs *);
+-int nfs3svc_decode_renameargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_renameargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_renameargs *);
+-int nfs3svc_decode_readlinkargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_readlinkargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_readlinkargs *);
+-int nfs3svc_decode_linkargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_linkargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_linkargs *);
+-int nfs3svc_decode_symlinkargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_symlinkargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_symlinkargs *);
+-int nfs3svc_decode_readdirargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_readdirargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_readdirargs *);
+-int nfs3svc_decode_readdirplusargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_readdirplusargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_readdirargs *);
+-int nfs3svc_decode_commitargs(struct svc_rqst *, u32 *,
++int nfs3svc_decode_commitargs(struct svc_rqst *, __u32 *,
+ struct nfsd3_commitargs *);
+-int nfs3svc_encode_voidres(struct svc_rqst *, u32 *, void *);
+-int nfs3svc_encode_attrstat(struct svc_rqst *, u32 *,
++int nfs3svc_encode_voidres(struct svc_rqst *, __u32 *, void *);
++int nfs3svc_encode_attrstat(struct svc_rqst *, __u32 *,
+ struct nfsd3_attrstat *);
+-int nfs3svc_encode_wccstat(struct svc_rqst *, u32 *,
++int nfs3svc_encode_wccstat(struct svc_rqst *, __u32 *,
+ struct nfsd3_attrstat *);
+-int nfs3svc_encode_diropres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_diropres(struct svc_rqst *, __u32 *,
+ struct nfsd3_diropres *);
+-int nfs3svc_encode_accessres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_accessres(struct svc_rqst *, __u32 *,
+ struct nfsd3_accessres *);
+-int nfs3svc_encode_readlinkres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_readlinkres(struct svc_rqst *, __u32 *,
+ struct nfsd3_readlinkres *);
+-int nfs3svc_encode_readres(struct svc_rqst *, u32 *, struct nfsd3_readres *);
+-int nfs3svc_encode_writeres(struct svc_rqst *, u32 *, struct nfsd3_writeres *);
+-int nfs3svc_encode_createres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_readres(struct svc_rqst *, __u32 *, struct nfsd3_readres *);
++int nfs3svc_encode_writeres(struct svc_rqst *, __u32 *, struct nfsd3_writeres *);
++int nfs3svc_encode_createres(struct svc_rqst *, __u32 *,
+ struct nfsd3_diropres *);
+-int nfs3svc_encode_renameres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_renameres(struct svc_rqst *, __u32 *,
+ struct nfsd3_renameres *);
+-int nfs3svc_encode_linkres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_linkres(struct svc_rqst *, __u32 *,
+ struct nfsd3_linkres *);
+-int nfs3svc_encode_readdirres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_readdirres(struct svc_rqst *, __u32 *,
+ struct nfsd3_readdirres *);
+-int nfs3svc_encode_fsstatres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_fsstatres(struct svc_rqst *, __u32 *,
+ struct nfsd3_fsstatres *);
+-int nfs3svc_encode_fsinfores(struct svc_rqst *, u32 *,
++int nfs3svc_encode_fsinfores(struct svc_rqst *, __u32 *,
+ struct nfsd3_fsinfores *);
+-int nfs3svc_encode_pathconfres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_pathconfres(struct svc_rqst *, __u32 *,
+ struct nfsd3_pathconfres *);
+-int nfs3svc_encode_commitres(struct svc_rqst *, u32 *,
++int nfs3svc_encode_commitres(struct svc_rqst *, __u32 *,
+ struct nfsd3_commitres *);
+
+-int nfs3svc_release_fhandle(struct svc_rqst *, u32 *,
++int nfs3svc_release_fhandle(struct svc_rqst *, __u32 *,
+ struct nfsd3_attrstat *);
+-int nfs3svc_release_fhandle2(struct svc_rqst *, u32 *,
++int nfs3svc_release_fhandle2(struct svc_rqst *, __u32 *,
+ struct nfsd3_fhandle_pair *);
+ int nfs3svc_encode_entry(struct readdir_cd *, const char *name,
+ int namlen, loff_t offset, ino_t ino,
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr4.h linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr4.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/nfsd/xdr4.h 2004-08-18 13:16:07.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/nfsd/xdr4.h 2004-08-26 05:42:08.000000000 -0500
+@@ -42,9 +42,9 @@
+ #define NFSD4_MAX_TAGLEN 128
+ #define XDR_LEN(n) (((n) + 3) & ~3)
+
+-typedef u32 delegation_zero_t;
+-typedef u32 delegation_boot_t;
+-typedef u64 delegation_id_t;
++typedef __u32 delegation_zero_t;
++typedef __u32 delegation_boot_t;
++typedef __u64 delegation_id_t;
+
+ typedef struct {
+ delegation_zero_t ds_zero;
+@@ -53,46 +53,46 @@
+ } delegation_stateid_t;
+
+ struct nfsd4_change_info {
+- u32 atomic;
+- u32 before_ctime_sec;
+- u32 before_ctime_nsec;
+- u32 after_ctime_sec;
+- u32 after_ctime_nsec;
++ __u32 atomic;
++ __u32 before_ctime_sec;
++ __u32 before_ctime_nsec;
++ __u32 after_ctime_sec;
++ __u32 after_ctime_nsec;
+ };
+
+ struct nfsd4_access {
+- u32 ac_req_access; /* request */
+- u32 ac_supported; /* response */
+- u32 ac_resp_access; /* response */
++ __u32 ac_req_access; /* request */
++ __u32 ac_supported; /* response */
++ __u32 ac_resp_access; /* response */
+ };
+
+ struct nfsd4_close {
+- u32 cl_seqid; /* request */
++ __u32 cl_seqid; /* request */
+ stateid_t cl_stateid; /* request+response */
+ struct nfs4_stateowner * cl_stateowner; /* response */
+ };
+
+ struct nfsd4_commit {
+- u64 co_offset; /* request */
+- u32 co_count; /* request */
++ __u64 co_offset; /* request */
++ __u32 co_count; /* request */
+ nfs4_verifier co_verf; /* response */
+ };
+
+ struct nfsd4_create {
+- u32 cr_namelen; /* request */
++ __u32 cr_namelen; /* request */
+ char * cr_name; /* request */
+- u32 cr_type; /* request */
++ __u32 cr_type; /* request */
+ union { /* request */
+ struct {
+- u32 namelen;
++ __u32 namelen;
+ char *name;
+ } link; /* NF4LNK */
+ struct {
+- u32 specdata1;
+- u32 specdata2;
++ __u32 specdata1;
++ __u32 specdata2;
+ } dev; /* NF4BLK, NF4CHR */
+ } u;
+- u32 cr_bmval[2]; /* request */
++ __u32 cr_bmval[2]; /* request */
+ struct iattr cr_iattr; /* request */
+ struct nfsd4_change_info cr_cinfo; /* response */
+ };
+@@ -102,41 +102,41 @@
+ #define cr_specdata2 u.dev.specdata2
+
+ struct nfsd4_getattr {
+- u32 ga_bmval[2]; /* request */
++ __u32 ga_bmval[2]; /* request */
+ struct svc_fh *ga_fhp; /* response */
+ };
+
+ struct nfsd4_link {
+- u32 li_namelen; /* request */
++ __u32 li_namelen; /* request */
+ char * li_name; /* request */
+ struct nfsd4_change_info li_cinfo; /* response */
+ };
+
+ struct nfsd4_lock_denied {
+ struct nfs4_stateowner *ld_sop;
+- u64 ld_start;
+- u64 ld_length;
+- u32 ld_type;
++ __u64 ld_start;
++ __u64 ld_length;
++ __u32 ld_type;
+ };
+
+ struct nfsd4_lock {
+ /* request */
+- u32 lk_type;
+- u32 lk_reclaim; /* boolean */
+- u64 lk_offset;
+- u64 lk_length;
+- u32 lk_is_new;
++ __u32 lk_type;
++ __u32 lk_reclaim; /* boolean */
++ __u64 lk_offset;
++ __u64 lk_length;
++ __u32 lk_is_new;
+ union {
+ struct {
+- u32 open_seqid;
++ __u32 open_seqid;
+ stateid_t open_stateid;
+- u32 lock_seqid;
++ __u32 lock_seqid;
+ clientid_t clientid;
+ struct xdr_netobj owner;
+ } new;
+ struct {
+ stateid_t lock_stateid;
+- u32 lock_seqid;
++ __u32 lock_seqid;
+ } old;
+ } v;
+
+@@ -164,56 +164,56 @@
+
+
+ struct nfsd4_lockt {
+- u32 lt_type;
++ __u32 lt_type;
+ clientid_t lt_clientid;
+ struct xdr_netobj lt_owner;
+- u64 lt_offset;
+- u64 lt_length;
++ __u64 lt_offset;
++ __u64 lt_length;
+ struct nfs4_stateowner * lt_stateowner;
+ struct nfsd4_lock_denied lt_denied;
+ };
+
+
+ struct nfsd4_locku {
+- u32 lu_type;
+- u32 lu_seqid;
++ __u32 lu_type;
++ __u32 lu_seqid;
+ stateid_t lu_stateid;
+- u64 lu_offset;
+- u64 lu_length;
++ __u64 lu_offset;
++ __u64 lu_length;
+ struct nfs4_stateowner *lu_stateowner;
+ };
+
+
+ struct nfsd4_lookup {
+- u32 lo_len; /* request */
++ __u32 lo_len; /* request */
+ char * lo_name; /* request */
+ };
+
+ struct nfsd4_putfh {
+- u32 pf_fhlen; /* request */
++ __u32 pf_fhlen; /* request */
+ char *pf_fhval; /* request */
+ };
+
+ struct nfsd4_open {
+- u32 op_claim_type; /* request */
++ __u32 op_claim_type; /* request */
+ struct xdr_netobj op_fname; /* request - everything but CLAIM_PREV */
+- u32 op_delegate_type; /* request - CLAIM_PREV only */
++ __u32 op_delegate_type; /* request - CLAIM_PREV only */
+ delegation_stateid_t op_delegate_stateid; /* request - CLAIM_DELEGATE_CUR only */
+- u32 op_create; /* request */
+- u32 op_createmode; /* request */
+- u32 op_bmval[2]; /* request */
++ __u32 op_create; /* request */
++ __u32 op_createmode; /* request */
++ __u32 op_bmval[2]; /* request */
+ union { /* request */
+ struct iattr iattr; /* UNCHECKED4,GUARDED4 */
+ nfs4_verifier verf; /* EXCLUSIVE4 */
+ } u;
+ clientid_t op_clientid; /* request */
+ struct xdr_netobj op_owner; /* request */
+- u32 op_seqid; /* request */
+- u32 op_share_access; /* request */
+- u32 op_share_deny; /* request */
++ __u32 op_seqid; /* request */
++ __u32 op_share_access; /* request */
++ __u32 op_share_deny; /* request */
+ stateid_t op_stateid; /* response */
+ struct nfsd4_change_info op_cinfo; /* response */
+- u32 op_rflags; /* response */
++ __u32 op_rflags; /* response */
+ int op_truncate; /* used during processing */
+ struct nfs4_stateowner *op_stateowner; /* used during processing */
+
+@@ -223,24 +223,24 @@
+
+ struct nfsd4_open_confirm {
+ stateid_t oc_req_stateid /* request */;
+- u32 oc_seqid /* request */;
++ __u32 oc_seqid /* request */;
+ stateid_t oc_resp_stateid /* response */;
+ struct nfs4_stateowner * oc_stateowner; /* response */
+ };
+
+ struct nfsd4_open_downgrade {
+ stateid_t od_stateid;
+- u32 od_seqid;
+- u32 od_share_access;
+- u32 od_share_deny;
++ __u32 od_seqid;
++ __u32 od_share_access;
++ __u32 od_share_deny;
+ struct nfs4_stateowner *od_stateowner;
+ };
+
+
+ struct nfsd4_read {
+ stateid_t rd_stateid; /* request */
+- u64 rd_offset; /* request */
+- u32 rd_length; /* request */
++ __u64 rd_offset; /* request */
++ __u32 rd_length; /* request */
+ struct kvec rd_iov[RPCSVC_MAXPAGES];
+ int rd_vlen;
+
+@@ -249,18 +249,18 @@
+ };
+
+ struct nfsd4_readdir {
+- u64 rd_cookie; /* request */
++ __u64 rd_cookie; /* request */
+ nfs4_verifier rd_verf; /* request */
+- u32 rd_dircount; /* request */
+- u32 rd_maxcount; /* request */
+- u32 rd_bmval[2]; /* request */
++ __u32 rd_dircount; /* request */
++ __u32 rd_maxcount; /* request */
++ __u32 rd_bmval[2]; /* request */
+ struct svc_rqst *rd_rqstp; /* response */
+ struct svc_fh * rd_fhp; /* response */
+
+ struct readdir_cd common;
+- u32 * buffer;
++ __u32 * buffer;
+ int buflen;
+- u32 * offset;
++ __u32 * offset;
+ };
+
+ struct nfsd4_release_lockowner {
+@@ -273,15 +273,15 @@
+ };
+
+ struct nfsd4_remove {
+- u32 rm_namelen; /* request */
++ __u32 rm_namelen; /* request */
+ char * rm_name; /* request */
+ struct nfsd4_change_info rm_cinfo; /* response */
+ };
+
+ struct nfsd4_rename {
+- u32 rn_snamelen; /* request */
++ __u32 rn_snamelen; /* request */
+ char * rn_sname; /* request */
+- u32 rn_tnamelen; /* request */
++ __u32 rn_tnamelen; /* request */
+ char * rn_tname; /* request */
+ struct nfsd4_change_info rn_sinfo; /* response */
+ struct nfsd4_change_info rn_tinfo; /* response */
+@@ -289,20 +289,20 @@
+
+ struct nfsd4_setattr {
+ stateid_t sa_stateid; /* request */
+- u32 sa_bmval[2]; /* request */
++ __u32 sa_bmval[2]; /* request */
+ struct iattr sa_iattr; /* request */
+ };
+
+ struct nfsd4_setclientid {
+ nfs4_verifier se_verf; /* request */
+- u32 se_namelen; /* request */
++ __u32 se_namelen; /* request */
+ char * se_name; /* request */
+- u32 se_callback_prog; /* request */
+- u32 se_callback_netid_len; /* request */
++ __u32 se_callback_prog; /* request */
++ __u32 se_callback_netid_len; /* request */
+ char * se_callback_netid_val; /* request */
+- u32 se_callback_addr_len; /* request */
++ __u32 se_callback_addr_len; /* request */
+ char * se_callback_addr_val; /* request */
+- u32 se_callback_ident; /* request */
++ __u32 se_callback_ident; /* request */
+ clientid_t se_clientid; /* response */
+ nfs4_verifier se_confirm; /* response */
+ };
+@@ -314,21 +314,21 @@
+
+ /* also used for NVERIFY */
+ struct nfsd4_verify {
+- u32 ve_bmval[2]; /* request */
+- u32 ve_attrlen; /* request */
++ __u32 ve_bmval[2]; /* request */
++ __u32 ve_attrlen; /* request */
+ char * ve_attrval; /* request */
+ };
+
+ struct nfsd4_write {
+ stateid_t wr_stateid; /* request */
+- u64 wr_offset; /* request */
+- u32 wr_stable_how; /* request */
+- u32 wr_buflen; /* request */
++ __u64 wr_offset; /* request */
++ __u32 wr_stable_how; /* request */
++ __u32 wr_buflen; /* request */
+ struct kvec wr_vec[RPCSVC_MAXPAGES]; /* request */
+ int wr_vlen;
+
+- u32 wr_bytes_written; /* response */
+- u32 wr_how_written; /* response */
++ __u32 wr_bytes_written; /* response */
++ __u32 wr_how_written; /* response */
+ nfs4_verifier wr_verifier; /* response */
+ };
+
+@@ -370,12 +370,12 @@
+
+ struct nfsd4_compoundargs {
+ /* scratch variables for XDR decode */
+- u32 * p;
+- u32 * end;
++ __u32 * p;
++ __u32 * end;
+ struct page ** pagelist;
+ int pagelen;
+- u32 tmp[8];
+- u32 * tmpp;
++ __u32 tmp[8];
++ __u32 * tmpp;
+ struct tmpbuf {
+ struct tmpbuf *next;
+ void (*release)(const void *);
+@@ -384,25 +384,25 @@
+
+ struct svc_rqst *rqstp;
+
+- u32 taglen;
++ __u32 taglen;
+ char * tag;
+- u32 minorversion;
+- u32 opcnt;
++ __u32 minorversion;
++ __u32 opcnt;
+ struct nfsd4_op *ops;
+ struct nfsd4_op iops[8];
+ };
+
+ struct nfsd4_compoundres {
+ /* scratch variables for XDR encode */
+- u32 * p;
+- u32 * end;
++ __u32 * p;
++ __u32 * end;
+ struct xdr_buf * xbuf;
+ struct svc_rqst * rqstp;
+
+- u32 taglen;
++ __u32 taglen;
+ char * tag;
+- u32 opcnt;
+- u32 * tagp; /* where to encode tag and opcount */
++ __u32 opcnt;
++ __u32 * tagp; /* where to encode tag and opcount */
+ };
+
+ #define NFS4_SVC_XDRSIZE sizeof(struct nfsd4_compoundargs)
+@@ -418,16 +418,16 @@
+ cinfo->after_ctime_nsec = fhp->fh_post_ctime.tv_nsec;
+ }
+
+-int nfs4svc_encode_voidres(struct svc_rqst *, u32 *, void *);
+-int nfs4svc_decode_compoundargs(struct svc_rqst *, u32 *,
++int nfs4svc_encode_voidres(struct svc_rqst *, __u32 *, void *);
++int nfs4svc_decode_compoundargs(struct svc_rqst *, __u32 *,
+ struct nfsd4_compoundargs *);
+-int nfs4svc_encode_compoundres(struct svc_rqst *, u32 *,
++int nfs4svc_encode_compoundres(struct svc_rqst *, __u32 *,
+ struct nfsd4_compoundres *);
+ void nfsd4_encode_operation(struct nfsd4_compoundres *, struct nfsd4_op *);
+ void nfsd4_encode_replay(struct nfsd4_compoundres *resp, struct nfsd4_op *op);
+ int nfsd4_encode_fattr(struct svc_fh *fhp, struct svc_export *exp,
+- struct dentry *dentry, u32 *buffer, int *countp,
+- u32 *bmval, struct svc_rqst *);
++ struct dentry *dentry, __u32 *buffer, int *countp,
++ __u32 *bmval, struct svc_rqst *);
+ extern int nfsd4_setclientid(struct svc_rqst *rqstp,
+ struct nfsd4_setclientid *setclid);
+ extern int nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/pmu.h linux-libc-headers-2.6.8.0/include/linux/pmu.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/pmu.h 2004-01-17 17:04:31.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/pmu.h 2004-08-26 05:42:08.000000000 -0500
+@@ -120,15 +120,15 @@
+
+ /* no param */
+ #define PMU_IOC_SLEEP _IO('B', 0)
+-/* out param: u32* backlight value: 0 to 15 */
++/* out param: __u32* backlight value: 0 to 15 */
+ #define PMU_IOC_GET_BACKLIGHT _IOR('B', 1, size_t)
+-/* in param: u32 backlight value: 0 to 15 */
++/* in param: __u32 backlight value: 0 to 15 */
+ #define PMU_IOC_SET_BACKLIGHT _IOW('B', 2, size_t)
+-/* out param: u32* PMU model */
++/* out param: __u32* PMU model */
+ #define PMU_IOC_GET_MODEL _IOR('B', 3, size_t)
+-/* out param: u32* has_adb: 0 or 1 */
++/* out param: __u32* has_adb: 0 or 1 */
+ #define PMU_IOC_HAS_ADB _IOR('B', 4, size_t)
+-/* out param: u32* can_sleep: 0 or 1 */
++/* out param: __u32* can_sleep: 0 or 1 */
+ #define PMU_IOC_CAN_SLEEP _IOR('B', 5, size_t)
+ /* no param, but historically was _IOR('B', 6, 0), meaning 4 bytes */
+ #define PMU_IOC_GRAB_BACKLIGHT _IOR('B', 6, size_t)
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/reiserfs_fs.h linux-libc-headers-2.6.8.0/include/linux/reiserfs_fs.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/reiserfs_fs.h 2004-08-18 13:16:04.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/reiserfs_fs.h 2004-08-26 13:26:06.000000000 -0500
+@@ -1821,7 +1821,7 @@
+ * to use for a new object underneat it. The locality is returned
+ * in disk byte order (le).
+ */
+-u32 reiserfs_choose_packing(struct inode *dir);
++__u32 reiserfs_choose_packing(struct inode *dir);
+
+ int is_reusable (struct super_block * s, b_blocknr_t block, int bit_value);
+ void reiserfs_free_block (struct reiserfs_transaction_handle *th, struct inode *, b_blocknr_t, int for_unformatted);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/scx200_gpio.h linux-libc-headers-2.6.8.0/include/linux/scx200_gpio.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/scx200_gpio.h 2004-01-17 17:04:32.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/scx200_gpio.h 2004-08-26 13:26:01.000000000 -0500
+@@ -1,5 +1,5 @@
+
+-u32 scx200_gpio_configure(int index, u32 set, u32 clear);
++__u32 scx200_gpio_configure(int index, __u32 set, __u32 clear);
+ void scx200_gpio_dump(unsigned index);
+
+ extern unsigned scx200_gpio_base;
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sdladrv.h linux-libc-headers-2.6.8.0/include/linux/sdladrv.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/sdladrv.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/sdladrv.h 2004-08-26 05:42:08.000000000 -0500
+@@ -55,8 +55,8 @@
+ extern int sdla_inten (sdlahw_t* hw);
+ extern int sdla_intde (sdlahw_t* hw);
+ extern int sdla_intack (sdlahw_t* hw);
+-extern void S514_intack (sdlahw_t* hw, u32 int_status);
+-extern void read_S514_int_stat (sdlahw_t* hw, u32* int_status);
++extern void S514_intack (sdlahw_t* hw, __u32 int_status);
++extern void read_S514_int_stat (sdlahw_t* hw, __u32* int_status);
+ extern int sdla_intr (sdlahw_t* hw);
+ extern int sdla_mapmem (sdlahw_t* hw, unsigned long addr);
+ extern int sdla_peek (sdlahw_t* hw, unsigned long addr, void* buf,
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/selection.h linux-libc-headers-2.6.8.0/include/linux/selection.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/selection.h 2004-06-23 16:52:56.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/selection.h 2004-08-26 05:42:08.000000000 -0500
+@@ -32,14 +32,14 @@
+ extern int default_blu[];
+
+ extern unsigned short *screen_pos(int currcons, int w_offset, int viewed);
+-extern u16 screen_glyph(int currcons, int offset);
++extern __u16 screen_glyph(int currcons, int offset);
+ extern void complement_pos(int currcons, int offset);
+ extern void invert_screen(int currcons, int offset, int count, int shift);
+
+ extern void getconsxy(int currcons, unsigned char *p);
+ extern void putconsxy(int currcons, unsigned char *p);
+
+-extern u16 vcs_scr_readw(int currcons, const u16 *org);
+-extern void vcs_scr_writew(int currcons, u16 val, u16 *org);
++extern __u16 vcs_scr_readw(int currcons, const __u16 *org);
++extern void vcs_scr_writew(int currcons, __u16 val, __u16 *org);
+
+ #endif
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/serialP.h linux-libc-headers-2.6.8.0/include/linux/serialP.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/serialP.h 2004-08-18 13:16:04.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/serialP.h 2004-08-26 05:42:08.000000000 -0500
+@@ -39,8 +39,8 @@
+ int xmit_fifo_size;
+ int custom_divisor;
+ int count;
+- u8 *iomem_base;
+- u16 iomem_reg_shift;
++ __u8 *iomem_base;
++ __u16 iomem_reg_shift;
+ unsigned short close_delay;
+ unsigned short closing_wait; /* time to wait before closing */
+ struct async_icount icount;
+@@ -75,8 +75,8 @@
+ int blocked_open; /* # of blocked opens */
+ struct circ_buf xmit;
+ spinlock_t xmit_lock;
+- u8 *iomem_base;
+- u16 iomem_reg_shift;
++ __u8 *iomem_base;
++ __u16 iomem_reg_shift;
+ int io_type;
+ struct work_struct work;
+ struct tasklet_struct tlet;
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/clnt.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/clnt.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/clnt.h 2004-02-29 10:36:05.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/clnt.h 2004-08-26 05:42:08.000000000 -0500
+@@ -36,7 +36,7 @@
+ atomic_t cl_users; /* number of references */
+ struct rpc_xprt * cl_xprt; /* transport */
+ struct rpc_procinfo * cl_procinfo; /* procedure info */
+- u32 cl_maxproc; /* max procedure number */
++ __u32 cl_maxproc; /* max procedure number */
+
+ char * cl_server; /* server machine name */
+ char * cl_protname; /* protocol name */
+@@ -75,7 +75,7 @@
+ #define RPC_MAXVERSION 4
+ struct rpc_program {
+ char * name; /* protocol name */
+- u32 number; /* program number */
++ __u32 number; /* program number */
+ unsigned int nrvers; /* number of versions */
+ struct rpc_version ** version; /* version array */
+ struct rpc_stat * stats; /* statistics */
+@@ -83,7 +83,7 @@
+ };
+
+ struct rpc_version {
+- u32 number; /* version number */
++ __u32 number; /* version number */
+ unsigned int nrprocs; /* number of procs */
+ struct rpc_procinfo * procs; /* procedure array */
+ };
+@@ -92,7 +92,7 @@
+ * Procedure information
+ */
+ struct rpc_procinfo {
+- u32 p_proc; /* RPC procedure number */
++ __u32 p_proc; /* RPC procedure number */
+ kxdrproc_t p_encode; /* XDR encode function */
+ kxdrproc_t p_decode; /* XDR decode function */
+ unsigned int p_bufsiz; /* req. buffer size */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_asn1.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_asn1.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_asn1.h 2004-06-23 16:52:58.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_asn1.h 2004-08-26 13:26:25.000000000 -0500
+@@ -64,14 +64,14 @@
+ (((o1)->len == (o2)->len) && \
+ (memcmp((o1)->data,(o2)->data,(int) (o1)->len) == 0))
+
+-u32 g_verify_token_header(
++__u32 g_verify_token_header(
+ struct xdr_netobj *mech,
+ int *body_size,
+ unsigned char **buf_in,
+ int tok_type,
+ int toksize);
+
+-u32 g_get_mech_oid(struct xdr_netobj *mech, struct xdr_netobj * in_buf);
++__u32 g_get_mech_oid(struct xdr_netobj *mech, struct xdr_netobj * in_buf);
+
+ int g_token_size(
+ struct xdr_netobj *mech,
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_krb5.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_krb5.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/gss_krb5.h 2004-06-23 16:52:58.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/gss_krb5.h 2004-08-26 13:26:21.000000000 -0500
+@@ -46,8 +46,8 @@
+ int sealalg;
+ struct crypto_tfm *enc;
+ struct crypto_tfm *seq;
+- s32 endtime;
+- u32 seq_send;
++ __s32 endtime;
++ __u32 seq_send;
+ struct xdr_netobj mech_used;
+ };
+
+@@ -112,35 +112,35 @@
+ #define ENCTYPE_DES3_CBC_SHA1 0x0010
+ #define ENCTYPE_UNKNOWN 0x01ff
+
+-s32
+-make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
++__s32
++make_checksum(__s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body,
+ struct xdr_netobj *cksum);
+
+-u32
++__u32
+ krb5_make_token(struct krb5_ctx *context_handle, int qop_req,
+ struct xdr_buf *input_message_buffer,
+ struct xdr_netobj *output_message_buffer, int toktype);
+
+-u32
++__u32
+ krb5_read_token(struct krb5_ctx *context_handle,
+ struct xdr_netobj *input_token_buffer,
+ struct xdr_buf *message_buffer,
+ int *qop_state, int toktype);
+
+-u32
++__u32
+ krb5_encrypt(struct crypto_tfm * key,
+ void *iv, void *in, void *out, int length);
+
+-u32
++__u32
+ krb5_decrypt(struct crypto_tfm * key,
+ void *iv, void *in, void *out, int length);
+
+-s32
++__s32
+ krb5_make_seq_num(struct crypto_tfm * key,
+ int direction,
+- s32 seqnum, unsigned char *cksum, unsigned char *buf);
++ __s32 seqnum, unsigned char *cksum, unsigned char *buf);
+
+-s32
++__s32
+ krb5_get_seq_num(struct crypto_tfm * key,
+ unsigned char *cksum,
+- unsigned char *buf, int *direction, s32 * seqnum);
++ unsigned char *buf, int *direction, __s32 * seqnum);
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/svc.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/svc.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/svc.h 2004-08-18 13:16:07.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/svc.h 2004-08-26 05:42:08.000000000 -0500
+@@ -75,20 +75,20 @@
+ */
+ #define RPCSVC_MAXPAGES ((RPCSVC_MAXPAYLOAD+PAGE_SIZE-1)/PAGE_SIZE + 2)
+
+-static inline u32 svc_getu32(struct kvec *iov)
++static inline __u32 svc_getu32(struct kvec *iov)
+ {
+- u32 val, *vp;
++ __u32 val, *vp;
+ vp = iov->iov_base;
+ val = *vp++;
+ iov->iov_base = (void*)vp;
+- iov->iov_len -= sizeof(u32);
++ iov->iov_len -= sizeof(__u32);
+ return val;
+ }
+-static inline void svc_putu32(struct kvec *iov, u32 val)
++static inline void svc_putu32(struct kvec *iov, __u32 val)
+ {
+- u32 *vp = iov->iov_base + iov->iov_len;
++ __u32 *vp = iov->iov_base + iov->iov_len;
+ *vp = val;
+- iov->iov_len += sizeof(u32);
++ iov->iov_len += sizeof(__u32);
+ }
+
+
+@@ -119,11 +119,11 @@
+ short rq_arghi; /* pages available in argument page list */
+ short rq_resused; /* pages used for result */
+
+- u32 rq_xid; /* transmission id */
+- u32 rq_prog; /* program number */
+- u32 rq_vers; /* program version */
+- u32 rq_proc; /* procedure number */
+- u32 rq_prot; /* IP protocol */
++ __u32 rq_xid; /* transmission id */
++ __u32 rq_prog; /* program number */
++ __u32 rq_vers; /* program version */
++ __u32 rq_proc; /* procedure number */
++ __u32 rq_prot; /* IP protocol */
+ unsigned short
+ rq_secure : 1; /* secure port */
+
+@@ -156,7 +156,7 @@
+ * Check buffer bounds after decoding arguments
+ */
+ static inline int
+-xdr_argsize_check(struct svc_rqst *rqstp, u32 *p)
++xdr_argsize_check(struct svc_rqst *rqstp, __u32 *p)
+ {
+ char *cp = (char *)p;
+ struct kvec *vec = &rqstp->rq_arg.head[0];
+@@ -164,7 +164,7 @@
+ }
+
+ static inline int
+-xdr_ressize_check(struct svc_rqst *rqstp, u32 *p)
++xdr_ressize_check(struct svc_rqst *rqstp, __u32 *p)
+ {
+ struct kvec *vec = &rqstp->rq_res.head[0];
+ char *cp = (char*)p;
+@@ -220,19 +220,19 @@
+ }
+
+ struct svc_deferred_req {
+- u32 prot; /* protocol (UDP or TCP) */
++ __u32 prot; /* protocol (UDP or TCP) */
+ struct sockaddr_in addr;
+ struct svc_sock *svsk; /* where reply must go */
+ struct cache_deferred_req handle;
+ int argslen;
+- u32 args[0];
++ __u32 args[0];
+ };
+
+ /*
+ * RPC program
+ */
+ struct svc_program {
+- u32 pg_prog; /* program number */
++ __u32 pg_prog; /* program number */
+ unsigned int pg_lovers; /* lowest version */
+ unsigned int pg_hivers; /* lowest version */
+ unsigned int pg_nvers; /* number of versions */
+@@ -246,16 +246,16 @@
+ * RPC program version
+ */
+ struct svc_version {
+- u32 vs_vers; /* version number */
+- u32 vs_nproc; /* number of procedures */
++ __u32 vs_vers; /* version number */
++ __u32 vs_nproc; /* number of procedures */
+ struct svc_procedure * vs_proc; /* per-procedure info */
+- u32 vs_xdrsize; /* xdrsize needed for this version */
++ __u32 vs_xdrsize; /* xdrsize needed for this version */
+
+ /* Override dispatch function (e.g. when caching replies).
+ * A return value of 0 means drop the request.
+ * vs_dispatch == NULL means use default dispatcher.
+ */
+- int (*vs_dispatch)(struct svc_rqst *, u32 *);
++ int (*vs_dispatch)(struct svc_rqst *, __u32 *);
+ };
+
+ /*
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/xprt.h linux-libc-headers-2.6.8.0/include/linux/sunrpc/xprt.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/sunrpc/xprt.h 2004-06-23 16:52:58.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/sunrpc/xprt.h 2004-08-26 05:42:08.000000000 -0500
+@@ -93,7 +93,7 @@
+ __u32 rq_xid; /* request XID */
+ int rq_cong; /* has incremented xprt->cong */
+ int rq_received; /* receive completed */
+- u32 rq_seqno; /* gss seq no. used on req. */
++ __u32 rq_seqno; /* gss seq no. used on req. */
+
+ struct list_head rq_list;
+
+@@ -106,13 +106,13 @@
+ /*
+ * For authentication (e.g. auth_des)
+ */
+- u32 rq_creddata[2];
++ __u32 rq_creddata[2];
+
+ /*
+ * Partial send handling
+ */
+
+- u32 rq_bytes_sent; /* Bytes we have sent */
++ __u32 rq_bytes_sent; /* Bytes we have sent */
+
+ unsigned long rq_xtime; /* when transmitted */
+ int rq_ntrans;
+@@ -160,7 +160,7 @@
+ /*
+ * State of TCP reply receive stuff
+ */
+- u32 tcp_recm, /* Fragment header */
++ __u32 tcp_recm, /* Fragment header */
+ tcp_xid, /* Current XID */
+ tcp_reclen, /* fragment length */
+ tcp_offset; /* fragment offset */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/suspend.h linux-libc-headers-2.6.8.0/include/linux/suspend.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/suspend.h 2004-08-18 13:16:05.000000000 -0500
++++ linux-libc-headers-2.6.8.0/include/linux/suspend.h 2004-08-26 05:42:08.000000000 -0500
+@@ -23,7 +23,7 @@
+ #define SWAP_FILENAME_MAXLENGTH 32
+
+ struct suspend_header {
+- u32 version_code;
++ __u32 version_code;
+ unsigned long num_physpages;
+ char machine[8];
+ char version[20];
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sysdev.h linux-libc-headers-2.6.8.0/include/linux/sysdev.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/sysdev.h 2004-03-28 07:52:11.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/sysdev.h 2004-08-26 05:42:08.000000000 -0500
+@@ -31,7 +31,7 @@
+
+ /* Default operations for these types of devices */
+ int (*shutdown)(struct sys_device *);
+- int (*suspend)(struct sys_device *, u32 state);
++ int (*suspend)(struct sys_device *, __u32 state);
+ int (*resume)(struct sys_device *);
+ struct kset kset;
+ };
+@@ -50,7 +50,7 @@
+ int (*add)(struct sys_device *);
+ int (*remove)(struct sys_device *);
+ int (*shutdown)(struct sys_device *);
+- int (*suspend)(struct sys_device *, u32 state);
++ int (*suspend)(struct sys_device *, __u32 state);
+ int (*resume)(struct sys_device *);
+ };
+
+@@ -65,7 +65,7 @@
+ */
+
+ struct sys_device {
+- u32 id;
++ __u32 id;
+ struct sysdev_class * cls;
+ struct kobject kobj;
+ };
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/sysv_fs.h linux-libc-headers-2.6.8.0/include/linux/sysv_fs.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/sysv_fs.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/sysv_fs.h 2004-08-26 05:42:08.000000000 -0500
+@@ -9,12 +9,12 @@
+
+
+ /* inode numbers are 16 bit */
+-typedef u16 sysv_ino_t;
++typedef __u16 sysv_ino_t;
+
+ /* Block numbers are 24 bit, sometimes stored in 32 bit.
+ On Coherent FS, they are always stored in PDP-11 manner: the least
+ significant 16 bits come last. */
+-typedef u32 sysv_zone_t;
++typedef __u32 sysv_zone_t;
+
+ /* 0 is non-existent */
+ #define SYSV_BADBL_INO 1 /* inode of bad blocks file */
+@@ -25,29 +25,29 @@
+ #define XENIX_NICINOD 100 /* number of inode cache entries */
+ #define XENIX_NICFREE 100 /* number of free block list chunk entries */
+ struct xenix_super_block {
+- u16 s_isize; /* index of first data zone */
+- u32 s_fsize __packed2__; /* total number of zones of this fs */
++ __u16 s_isize; /* index of first data zone */
++ __u32 s_fsize __packed2__; /* total number of zones of this fs */
+ /* the start of the free block list: */
+- u16 s_nfree; /* number of free blocks in s_free, <= XENIX_NICFREE */
+- u32 s_free[XENIX_NICFREE]; /* first free block list chunk */
++ __u16 s_nfree; /* number of free blocks in s_free, <= XENIX_NICFREE */
++ __u32 s_free[XENIX_NICFREE]; /* first free block list chunk */
+ /* the cache of free inodes: */
+- u16 s_ninode; /* number of free inodes in s_inode, <= XENIX_NICINOD */
++ __u16 s_ninode; /* number of free inodes in s_inode, <= XENIX_NICINOD */
+ sysv_ino_t s_inode[XENIX_NICINOD]; /* some free inodes */
+ /* locks, not used by Linux: */
+ char s_flock; /* lock during free block list manipulation */
+ char s_ilock; /* lock during inode cache manipulation */
+ char s_fmod; /* super-block modified flag */
+ char s_ronly; /* flag whether fs is mounted read-only */
+- u32 s_time __packed2__; /* time of last super block update */
+- u32 s_tfree __packed2__; /* total number of free zones */
+- u16 s_tinode; /* total number of free inodes */
+- s16 s_dinfo[4]; /* device information ?? */
++ __u32 s_time __packed2__; /* time of last super block update */
++ __u32 s_tfree __packed2__; /* total number of free zones */
++ __u16 s_tinode; /* total number of free inodes */
++ __s16 s_dinfo[4]; /* device information ?? */
+ char s_fname[6]; /* file system volume name */
+ char s_fpack[6]; /* file system pack name */
+ char s_clean; /* set to 0x46 when filesystem is properly unmounted */
+ char s_fill[371];
+- s32 s_magic; /* version of file system */
+- s32 s_type; /* type of file system: 1 for 512 byte blocks
++ __s32 s_magic; /* version of file system */
++ __s32 s_type; /* type of file system: 1 for 512 byte blocks
+ 2 for 1024 byte blocks
+ 3 for 2048 byte blocks */
+
+@@ -63,61 +63,61 @@
+
+ /* SystemV4 super-block data on disk */
+ struct sysv4_super_block {
+- u16 s_isize; /* index of first data zone */
+- u16 s_pad0;
+- u32 s_fsize; /* total number of zones of this fs */
++ __u16 s_isize; /* index of first data zone */
++ __u16 s_pad0;
++ __u32 s_fsize; /* total number of zones of this fs */
+ /* the start of the free block list: */
+- u16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
+- u16 s_pad1;
+- u32 s_free[SYSV_NICFREE]; /* first free block list chunk */
++ __u16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
++ __u16 s_pad1;
++ __u32 s_free[SYSV_NICFREE]; /* first free block list chunk */
+ /* the cache of free inodes: */
+- u16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
+- u16 s_pad2;
++ __u16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
++ __u16 s_pad2;
+ sysv_ino_t s_inode[SYSV_NICINOD]; /* some free inodes */
+ /* locks, not used by Linux: */
+ char s_flock; /* lock during free block list manipulation */
+ char s_ilock; /* lock during inode cache manipulation */
+ char s_fmod; /* super-block modified flag */
+ char s_ronly; /* flag whether fs is mounted read-only */
+- u32 s_time; /* time of last super block update */
+- s16 s_dinfo[4]; /* device information ?? */
+- u32 s_tfree; /* total number of free zones */
+- u16 s_tinode; /* total number of free inodes */
+- u16 s_pad3;
++ __u32 s_time; /* time of last super block update */
++ __s16 s_dinfo[4]; /* device information ?? */
++ __u32 s_tfree; /* total number of free zones */
++ __u16 s_tinode; /* total number of free inodes */
++ __u16 s_pad3;
+ char s_fname[6]; /* file system volume name */
+ char s_fpack[6]; /* file system pack name */
+- s32 s_fill[12];
+- s32 s_state; /* file system state: 0x7c269d38-s_time means clean */
+- s32 s_magic; /* version of file system */
+- s32 s_type; /* type of file system: 1 for 512 byte blocks
++ __s32 s_fill[12];
++ __s32 s_state; /* file system state: 0x7c269d38-s_time means clean */
++ __s32 s_magic; /* version of file system */
++ __s32 s_type; /* type of file system: 1 for 512 byte blocks
+ 2 for 1024 byte blocks */
+ };
+
+ /* SystemV2 super-block data on disk */
+ struct sysv2_super_block {
+- u16 s_isize; /* index of first data zone */
+- u32 s_fsize __packed2__; /* total number of zones of this fs */
++ __u16 s_isize; /* index of first data zone */
++ __u32 s_fsize __packed2__; /* total number of zones of this fs */
+ /* the start of the free block list: */
+- u16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
+- u32 s_free[SYSV_NICFREE]; /* first free block list chunk */
++ __u16 s_nfree; /* number of free blocks in s_free, <= SYSV_NICFREE */
++ __u32 s_free[SYSV_NICFREE]; /* first free block list chunk */
+ /* the cache of free inodes: */
+- u16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
++ __u16 s_ninode; /* number of free inodes in s_inode, <= SYSV_NICINOD */
+ sysv_ino_t s_inode[SYSV_NICINOD]; /* some free inodes */
+ /* locks, not used by Linux: */
+ char s_flock; /* lock during free block list manipulation */
+ char s_ilock; /* lock during inode cache manipulation */
+ char s_fmod; /* super-block modified flag */
+ char s_ronly; /* flag whether fs is mounted read-only */
+- u32 s_time __packed2__; /* time of last super block update */
+- s16 s_dinfo[4]; /* device information ?? */
+- u32 s_tfree __packed2__; /* total number of free zones */
+- u16 s_tinode; /* total number of free inodes */
++ __u32 s_time __packed2__; /* time of last super block update */
++ __s16 s_dinfo[4]; /* device information ?? */
++ __u32 s_tfree __packed2__; /* total number of free zones */
++ __u16 s_tinode; /* total number of free inodes */
+ char s_fname[6]; /* file system volume name */
+ char s_fpack[6]; /* file system pack name */
+- s32 s_fill[14];
+- s32 s_state; /* file system state: 0xcb096f43 means clean */
+- s32 s_magic; /* version of file system */
+- s32 s_type; /* type of file system: 1 for 512 byte blocks
++ __s32 s_fill[14];
++ __s32 s_state; /* file system state: 0xcb096f43 means clean */
++ __s32 s_magic; /* version of file system */
++ __s32 s_type; /* type of file system: 1 for 512 byte blocks
+ 2 for 1024 byte blocks */
+ };
+
+@@ -125,25 +125,25 @@
+ #define V7_NICINOD 100 /* number of inode cache entries */
+ #define V7_NICFREE 50 /* number of free block list chunk entries */
+ struct v7_super_block {
+- u16 s_isize; /* index of first data zone */
+- u32 s_fsize __packed2__; /* total number of zones of this fs */
++ __u16 s_isize; /* index of first data zone */
++ __u32 s_fsize __packed2__; /* total number of zones of this fs */
+ /* the start of the free block list: */
+- u16 s_nfree; /* number of free blocks in s_free, <= V7_NICFREE */
+- u32 s_free[V7_NICFREE]; /* first free block list chunk */
++ __u16 s_nfree; /* number of free blocks in s_free, <= V7_NICFREE */
++ __u32 s_free[V7_NICFREE]; /* first free block list chunk */
+ /* the cache of free inodes: */
+- u16 s_ninode; /* number of free inodes in s_inode, <= V7_NICINOD */
++ __u16 s_ninode; /* number of free inodes in s_inode, <= V7_NICINOD */
+ sysv_ino_t s_inode[V7_NICINOD]; /* some free inodes */
+ /* locks, not used by Linux or V7: */
+ char s_flock; /* lock during free block list manipulation */
+ char s_ilock; /* lock during inode cache manipulation */
+ char s_fmod; /* super-block modified flag */
+ char s_ronly; /* flag whether fs is mounted read-only */
+- u32 s_time __packed2__; /* time of last super block update */
++ __u32 s_time __packed2__; /* time of last super block update */
+ /* the following fields are not maintained by V7: */
+- u32 s_tfree __packed2__; /* total number of free zones */
+- u16 s_tinode; /* total number of free inodes */
+- u16 s_m; /* interleave factor */
+- u16 s_n; /* interleave factor */
++ __u32 s_tfree __packed2__; /* total number of free zones */
++ __u16 s_tinode; /* total number of free inodes */
++ __u16 s_m; /* interleave factor */
++ __u16 s_n; /* interleave factor */
+ char s_fname[6]; /* file system name */
+ char s_fpack[6]; /* file system pack name */
+ };
+@@ -152,41 +152,41 @@
+ #define COH_NICINOD 100 /* number of inode cache entries */
+ #define COH_NICFREE 64 /* number of free block list chunk entries */
+ struct coh_super_block {
+- u16 s_isize; /* index of first data zone */
+- u32 s_fsize __packed2__; /* total number of zones of this fs */
++ __u16 s_isize; /* index of first data zone */
++ __u32 s_fsize __packed2__; /* total number of zones of this fs */
+ /* the start of the free block list: */
+- u16 s_nfree; /* number of free blocks in s_free, <= COH_NICFREE */
+- u32 s_free[COH_NICFREE] __packed2__; /* first free block list chunk */
++ __u16 s_nfree; /* number of free blocks in s_free, <= COH_NICFREE */
++ __u32 s_free[COH_NICFREE] __packed2__; /* first free block list chunk */
+ /* the cache of free inodes: */
+- u16 s_ninode; /* number of free inodes in s_inode, <= COH_NICINOD */
++ __u16 s_ninode; /* number of free inodes in s_inode, <= COH_NICINOD */
+ sysv_ino_t s_inode[COH_NICINOD]; /* some free inodes */
+ /* locks, not used by Linux: */
+ char s_flock; /* lock during free block list manipulation */
+ char s_ilock; /* lock during inode cache manipulation */
+ char s_fmod; /* super-block modified flag */
+ char s_ronly; /* flag whether fs is mounted read-only */
+- u32 s_time __packed2__; /* time of last super block update */
+- u32 s_tfree __packed2__; /* total number of free zones */
+- u16 s_tinode; /* total number of free inodes */
+- u16 s_interleave_m; /* interleave factor */
+- u16 s_interleave_n;
++ __u32 s_time __packed2__; /* time of last super block update */
++ __u32 s_tfree __packed2__; /* total number of free zones */
++ __u16 s_tinode; /* total number of free inodes */
++ __u16 s_interleave_m; /* interleave factor */
++ __u16 s_interleave_n;
+ char s_fname[6]; /* file system volume name */
+ char s_fpack[6]; /* file system pack name */
+- u32 s_unique; /* zero, not used */
++ __u32 s_unique; /* zero, not used */
+ };
+
+ /* SystemV/Coherent inode data on disk */
+ struct sysv_inode {
+- u16 i_mode;
+- u16 i_nlink;
+- u16 i_uid;
+- u16 i_gid;
+- u32 i_size;
+- u8 i_data[3*(10+1+1+1)];
+- u8 i_gen;
+- u32 i_atime; /* time of last access */
+- u32 i_mtime; /* time of last modification */
+- u32 i_ctime; /* time of creation */
++ __u16 i_mode;
++ __u16 i_nlink;
++ __u16 i_uid;
++ __u16 i_gid;
++ __u32 i_size;
++ __u8 i_data[3*(10+1+1+1)];
++ __u8 i_gen;
++ __u32 i_atime; /* time of last access */
++ __u32 i_mtime; /* time of last modification */
++ __u32 i_ctime; /* time of creation */
+ };
+
+ /* SystemV/Coherent directory entry on disk */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/tiocl.h linux-libc-headers-2.6.8.0/include/linux/tiocl.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/tiocl.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/tiocl.h 2004-08-26 05:42:08.000000000 -0500
+@@ -23,7 +23,7 @@
+
+ #define TIOCL_SELLOADLUT 5
+ /* set characters to be considered alphabetic when selecting */
+- /* u32[8] bit array, 4 bytes-aligned with type */
++ /* __u32[8] bit array, 4 bytes-aligned with type */
+
+ /* these two don't return a value: they write it back in the type */
+ #define TIOCL_GETSHIFTSTATE 6 /* write shift state */
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/umem.h linux-libc-headers-2.6.8.0/include/linux/umem.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/umem.h 2003-12-15 12:46:58.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/umem.h 2004-08-26 05:42:08.000000000 -0500
+@@ -110,19 +110,19 @@
+ #define DMA_WRITE_TO_HOST 1
+
+ struct mm_dma_desc {
+- u64 pci_addr;
+- u64 local_addr;
+- u32 transfer_size;
+- u32 zero1;
+- u64 next_desc_addr;
+- u64 sem_addr;
+- u32 control_bits;
+- u32 zero2;
++ __u64 pci_addr;
++ __u64 local_addr;
++ __u32 transfer_size;
++ __u32 zero1;
++ __u64 next_desc_addr;
++ __u64 sem_addr;
++ __u32 control_bits;
++ __u32 zero2;
+
+ dma_addr_t data_dma_handle;
+
+ /* Copy of the bits */
+- u64 sem_control_bits;
++ __u64 sem_control_bits;
+ } __attribute__((aligned(8)));
+
+ #define PCI_VENDOR_ID_MICRO_MEMORY 0x1332
+diff -urN linux-libc-headers-2.6.8.0-dist/include/linux/vt_buffer.h linux-libc-headers-2.6.8.0/include/linux/vt_buffer.h
+--- linux-libc-headers-2.6.8.0-dist/include/linux/vt_buffer.h 2004-01-17 17:04:33.000000000 -0600
++++ linux-libc-headers-2.6.8.0/include/linux/vt_buffer.h 2004-08-26 05:42:08.000000000 -0500
+@@ -28,7 +28,7 @@
+ #endif
+
+ #ifndef VT_BUF_HAVE_MEMSETW
+-static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
++static inline void scr_memsetw(__u16 *s, __u16 c, unsigned int count)
+ {
+ count /= 2;
+ while (count--)
+@@ -37,7 +37,7 @@
+ #endif
+
+ #ifndef VT_BUF_HAVE_MEMCPYW
+-static inline void scr_memcpyw(u16 *d, const u16 *s, unsigned int count)
++static inline void scr_memcpyw(__u16 *d, const __u16 *s, unsigned int count)
+ {
+ count /= 2;
+ while (count--)
+@@ -46,7 +46,7 @@
+ #endif
+
+ #ifndef VT_BUF_HAVE_MEMMOVEW
+-static inline void scr_memmovew(u16 *d, const u16 *s, unsigned int count)
++static inline void scr_memmovew(__u16 *d, const __u16 *s, unsigned int count)
+ {
+ if (d < s)
+ scr_memcpyw(d, s, count);
--- /dev/null
+#! /bin/sh
+# A little script I whipped up to make it easy to
+# patch source trees and have sane error handling
+# -Erik
+#
+# (c) 2002 Erik Andersen <andersen@codepoet.org>
+
+# Set directories from arguments, or use defaults.
+targetdir=${1-.}
+patchdir=${2-../kernel-patches}
+patchpattern=${3-*}
+
+if [ ! -d "${targetdir}" ] ; then
+ echo "Aborting. '${targetdir}' is not a directory."
+ exit 1
+fi
+if [ ! -d "${patchdir}" ] ; then
+ echo "Aborting. '${patchdir}' is not a directory."
+ exit 1
+fi
+
+for i in ${patchdir}/${patchpattern} ; do
+ case "$i" in
+ *.gz)
+ type="gzip"; uncomp="gunzip -dc"; ;;
+ *.bz)
+ type="bzip"; uncomp="bunzip -dc"; ;;
+ *.bz2)
+ type="bzip2"; uncomp="bunzip2 -dc"; ;;
+ *.zip)
+ type="zip"; uncomp="unzip -d"; ;;
+ *.Z)
+ type="compress"; uncomp="uncompress -c"; ;;
+ *)
+ type="plaintext"; uncomp="cat"; ;;
+ esac
+ echo ""
+ echo "Applying ${i} using ${type}: "
+ ${uncomp} ${i} | patch -p1 -E -d ${targetdir}
+ if [ $? != 0 ] ; then
+ echo "Patch failed! Please fix $i!"
+ exit 1
+ fi
+done
+
+# Check for rejects...
+if [ "`find $targetdir/ '(' -name '*.rej' -o -name '.*.rej' ')' -print`" ] ; then
+ echo "Aborting. Reject files found."
+ exit 1
+fi
+
+# Remove backup files
+find $targetdir/ '(' -name '*.orig' -o -name '.*.orig' ')' -exec rm -f {} \;