- sync fedora branch
authorMark Huang <mlhuang@cs.princeton.edu>
Sat, 20 Aug 2005 22:12:40 +0000 (22:12 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Sat, 20 Aug 2005 22:12:40 +0000 (22:12 +0000)
51 files changed:
arch/ppc/boot/include/zlib.h [deleted file]
arch/ppc/boot/lib/zlib.c [deleted file]
arch/ppc/boot/simple/chrpmap.S [deleted file]
arch/ppc/boot/simple/legacy.S [deleted file]
arch/ppc/boot/simple/misc-chestnut.S [deleted file]
arch/ppc/kernel/machine_kexec.c [deleted file]
arch/ppc/kernel/relocate_kernel.S [deleted file]
arch/ppc/platforms/85xx/mpc85xx_devices.c [deleted file]
arch/ppc/platforms/85xx/mpc85xx_sys.c [deleted file]
arch/ppc/platforms/est8260_setup.c [deleted file]
arch/ppc/platforms/lopec_pci.c [deleted file]
arch/ppc/platforms/lopec_serial.h [deleted file]
arch/ppc/platforms/lopec_setup.c [deleted file]
arch/ppc/platforms/mcpn765_serial.h [deleted file]
arch/ppc/platforms/mvme5100_pci.c [deleted file]
arch/ppc/platforms/mvme5100_serial.h [deleted file]
arch/ppc/platforms/mvme5100_setup.c [deleted file]
arch/ppc/platforms/powerpmc250_serial.h [deleted file]
arch/ppc/platforms/pq2ads_setup.c [deleted file]
arch/ppc/platforms/prpmc750_serial.h [deleted file]
arch/ppc/platforms/prpmc800_serial.h [deleted file]
arch/ppc/platforms/rpx8260.c [deleted file]
arch/ppc64/boot/addSystemMap.c [deleted file]
arch/ppc64/kernel/chrp_setup.c [deleted file]
arch/ppc64/kernel/pSeries_htab.c [deleted file]
arch/ppc64/kernel/pmac_iommu.c [deleted file]
arch/ppc64/kernel/stab.c [deleted file]
arch/sparc64/lib/U3copy_in_user.S [deleted file]
arch/sparc64/lib/VIScopy.S [deleted file]
arch/sparc64/lib/rwlock.S [deleted file]
arch/sparc64/lib/splock.S [deleted file]
arch/um/drivers/hostaudio_user.c [deleted file]
arch/um/dyn.lds.S [deleted file]
arch/um/include/Makefile [deleted file]
arch/um/include/hostaudio.h [deleted file]
arch/um/kernel/mprot.h [deleted file]
arch/um/kernel/skas/exec_user.c [deleted file]
arch/um/kernel/skas/include/mmu.h [deleted file]
arch/um/kernel/skas/include/mode.h [deleted file]
arch/um/kernel/skas/include/mode_kern.h [deleted file]
arch/um/kernel/skas/include/uaccess.h [deleted file]
arch/um/kernel/tt/include/mmu.h [deleted file]
arch/um/kernel/tt/include/mode.h [deleted file]
arch/um/kernel/tt/include/mode_kern.h [deleted file]
arch/um/kernel/tt/include/uaccess.h [deleted file]
arch/um/kernel/user_syms.c [deleted file]
arch/um/main.c [deleted file]
arch/um/sys-i386/extable.c [deleted file]
arch/um/sys-x86_64/util/mk_thread_kern.c [deleted file]
arch/um/sys-x86_64/util/mk_thread_user.c [deleted file]
arch/um/uml.lds.S [deleted file]

diff --git a/arch/ppc/boot/include/zlib.h b/arch/ppc/boot/include/zlib.h
deleted file mode 100644 (file)
index 4ba13c6..0000000
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- * This file is derived from zlib.h and zconf.h from the zlib-0.95
- * distribution by Jean-loup Gailly and Mark Adler, with some additions
- * by Paul Mackerras to aid in implementing Deflate compression and
- * decompression for PPP packets.
- */
-
-/*
- *  ==FILEVERSION 960122==
- *
- * This marker is used by the Linux installation script to determine
- * whether an up-to-date version of this file is already installed.
- */
-
-/* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 0.95, Aug 16th, 1995.
-
-  Copyright (C) 1995 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  gzip@prep.ai.mit.edu    madler@alumni.caltech.edu
- */
-
-#ifndef _ZLIB_H
-#define _ZLIB_H
-
-/* #include "zconf.h" */       /* included directly here */
-
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: zconf.h,v 1.12 1995/05/03 17:27:12 jloup Exp */
-
-/*
-     The library does not install any signal handler. It is recommended to
-  add at least a handler for SIGSEGV when decompressing; the library checks
-  the consistency of the input data whenever possible but may go nuts
-  for some forms of corrupted input.
- */
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- * Compile with -DUNALIGNED_OK if it is OK to access shorts or ints
- * at addresses which are not a multiple of their size.
- * Under DOS, -DFAR=far or -DFAR=__far may be needed.
- */
-
-#ifndef STDC
-#  if defined(MSDOS) || defined(__STDC__) || defined(__cplusplus)
-#    define STDC
-#  endif
-#endif
-
-#ifdef __MWERKS__ /* Metrowerks CodeWarrior declares fileno() in unix.h */
-#  include <unix.h>
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-#  ifdef MAXSEG_64K
-#    define MAX_MEM_LEVEL 8
-#  else
-#    define MAX_MEM_LEVEL 9
-#  endif
-#endif
-
-#ifndef FAR
-#  define FAR
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2 */
-#ifndef MAX_WBITS
-#  define MAX_WBITS   15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
-            1 << (windowBits+2)   +  1 << (memLevel+9)
- that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
-     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
-   The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-                        /* Type declarations */
-
-#ifndef OF /* function prototypes */
-#  ifdef STDC
-#    define OF(args)  args
-#  else
-#    define OF(args)  ()
-#  endif
-#endif
-
-typedef unsigned char  Byte;  /* 8 bits */
-typedef unsigned int   uInt;  /* 16 bits or more */
-typedef unsigned long  uLong; /* 32 bits or more */
-
-typedef Byte FAR Bytef;
-typedef char FAR charf;
-typedef int FAR intf;
-typedef uInt FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
-   typedef void FAR *voidpf;
-   typedef void     *voidp;
-#else
-   typedef Byte FAR *voidpf;
-   typedef Byte     *voidp;
-#endif
-
-/* end of original zconf.h */
-
-#define ZLIB_VERSION "0.95P"
-
-/*
-     The 'zlib' compression library provides in-memory compression and
-  decompression functions, including integrity checks of the uncompressed
-  data.  This version of the library supports only one compression method
-  (deflation) but other algorithms may be added later and will have the same
-  stream interface.
-
-     For compression the application must provide the output buffer and
-  may optionally provide the input buffer for optimization. For decompression,
-  the application must provide the input buffer and may optionally provide
-  the output buffer for optimization.
-
-     Compression can be done in a single step if the buffers are large
-  enough (for example if an input file is mmap'ed), or can be done by
-  repeated calls of the compression function.  In the latter case, the
-  application must provide more input and/or consume the output
-  (providing more output space) before each call.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void   (*free_func)  OF((voidpf opaque, voidpf address, uInt nbytes));
-
-struct internal_state;
-
-typedef struct z_stream_s {
-    Bytef    *next_in;  /* next input byte */
-    uInt     avail_in;  /* number of bytes available at next_in */
-    uLong    total_in;  /* total nb of input bytes read so far */
-
-    Bytef    *next_out; /* next output byte should be put there */
-    uInt     avail_out; /* remaining free space at next_out */
-    uLong    total_out; /* total nb of bytes output so far */
-
-    char     *msg;      /* last error message, NULL if no error */
-    struct internal_state FAR *state; /* not visible by applications */
-
-    alloc_func zalloc;  /* used to allocate the internal state */
-    free_func  zfree;   /* used to free the internal state */
-    voidp      opaque;  /* private data object passed to zalloc and zfree */
-
-    Byte     data_type; /* best guess about the data type: ascii or binary */
-
-} z_stream;
-
-/*
-   The application must update next_in and avail_in when avail_in has
-   dropped to zero. It must update next_out and avail_out when avail_out
-   has dropped to zero. The application must initialize zalloc, zfree and
-   opaque before calling the init function. All other fields are set by the
-   compression library and must not be updated by the application.
-
-   The opaque value provided by the application will be passed as the first
-   parameter for calls of zalloc and zfree. This can be useful for custom
-   memory management. The compression library attaches no meaning to the
-   opaque value.
-
-   zalloc must return Z_NULL if there is not enough memory for the object.
-   On 16-bit systems, the functions zalloc and zfree must be able to allocate
-   exactly 65536 bytes, but will not be required to allocate more than this
-   if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
-   pointers returned by zalloc for objects of exactly 65536 bytes *must*
-   have their offset normalized to zero. The default allocation function
-   provided by this library ensures this (see zutil.c). To reduce memory
-   requirements and avoid any allocation of 64K objects, at the expense of
-   compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-
-   The fields total_in and total_out can be used for statistics or
-   progress reports. After compression, total_in holds the total size of
-   the uncompressed data and may be saved for use in the decompressor
-   (particularly if the decompressor wants to decompress everything in
-   a single step).
-*/
-
-                        /* constants */
-
-#define Z_NO_FLUSH      0
-#define Z_PARTIAL_FLUSH 1
-#define Z_FULL_FLUSH    2
-#define Z_SYNC_FLUSH    3 /* experimental: partial_flush + byte align */
-#define Z_FINISH        4
-#define Z_PACKET_FLUSH 5
-/* See deflate() below for the usage of these constants */
-
-#define Z_OK            0
-#define Z_STREAM_END    1
-#define Z_ERRNO        (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR   (-3)
-#define Z_MEM_ERROR    (-4)
-#define Z_BUF_ERROR    (-5)
-/* error codes for the compression/decompression functions */
-
-#define Z_BEST_SPEED             1
-#define Z_BEST_COMPRESSION       9
-#define Z_DEFAULT_COMPRESSION  (-1)
-/* compression levels */
-
-#define Z_FILTERED            1
-#define Z_HUFFMAN_ONLY        2
-#define Z_DEFAULT_STRATEGY    0
-
-#define Z_BINARY   0
-#define Z_ASCII    1
-#define Z_UNKNOWN  2
-/* Used to set the data_type field */
-
-#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
-
-extern char *zlib_version;
-/* The application can compare zlib_version and ZLIB_VERSION for consistency.
-   If the first character differs, the library code actually used is
-   not compatible with the zlib.h header file used by the application.
- */
-
-                        /* basic functions */
-
-extern int inflateInit OF((z_stream *strm));
-/*
-     Initializes the internal stream state for decompression. The fields
-   zalloc and zfree must be initialized before by the caller.  If zalloc and
-   zfree are set to Z_NULL, inflateInit updates them to use default allocation
-   functions.
-
-     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory.  msg is set to null if there is no error message.
-   inflateInit does not perform any decompression: this will be done by
-   inflate().
-*/
-
-
-extern int inflate OF((z_stream *strm, int flush));
-/*
-  Performs one or both of the following actions:
-
-  - Decompress more input starting at next_in and update next_in and avail_in
-    accordingly. If not all input can be processed (because there is not
-    enough room in the output buffer), next_in is updated and processing
-    will resume at this point for the next call of inflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  inflate() always provides as much output as possible
-    (until there is no more input data or no more space in the output buffer).
-
-  Before the call of inflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming
-  more output, and updating the next_* and avail_* values accordingly.
-  The application can consume the uncompressed output when it wants, for
-  example when the output buffer is full (avail_out == 0), or after each
-  call of inflate().
-
-    If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH,
-  inflate flushes as much output as possible to the output buffer. The
-  flushing behavior of inflate is not specified for values of the flush
-  parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the
-  current implementation actually flushes as much output as possible
-  anyway.  For Z_PACKET_FLUSH, inflate checks that once all the input data
-  has been consumed, it is expecting to see the length field of a stored
-  block; if not, it returns Z_DATA_ERROR.
-
-    inflate() should normally be called until it returns Z_STREAM_END or an
-  error. However if all decompression is to be performed in a single step
-  (a single call of inflate), the parameter flush should be set to
-  Z_FINISH. In this case all pending input is processed and all pending
-  output is flushed; avail_out must be large enough to hold all the
-  uncompressed data. (The size of the uncompressed data may have been saved
-  by the compressor for this purpose.) The next operation on this stream must
-  be inflateEnd to deallocate the decompression state. The use of Z_FINISH
-  is never required, but can be used to inform inflate that a faster routine
-  may be used for the single inflate() call.
-
-    inflate() returns Z_OK if some progress has been made (more input
-  processed or more output produced), Z_STREAM_END if the end of the
-  compressed data has been reached and all uncompressed output has been
-  produced, Z_DATA_ERROR if the input data was corrupted, Z_STREAM_ERROR if
-  the stream structure was inconsistent (for example if next_in or next_out
-  was NULL), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no
-  progress is possible or if there was not enough room in the output buffer
-  when Z_FINISH is used. In the Z_DATA_ERROR case, the application may then
-  call inflateSync to look for a good compression block.  */
-
-
-extern int inflateEnd OF((z_stream *strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any
-   pending output.
-
-     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-   was inconsistent. In the error case, msg may be set but then points to a
-   static string (which must not be deallocated).
-*/
-
-                        /* advanced functions */
-
-extern int inflateInit2 OF((z_stream *strm,
-                            int  windowBits));
-/*
-     This is another version of inflateInit with more compression options. The
-   fields next_out, zalloc and zfree must be initialized before by the caller.
-
-     The windowBits parameter is the base two logarithm of the maximum window
-   size (the size of the history buffer).  It should be in the range 8..15 for
-   this version of the library (the value 16 will be allowed soon). The
-   default value is 15 if inflateInit is used instead. If a compressed stream
-   with a larger window size is given as input, inflate() will return with
-   the error code Z_DATA_ERROR instead of trying to allocate a larger window.
-
-     If next_out is not null, the library will use this buffer for the history
-   buffer; the buffer must either be large enough to hold the entire output
-   data, or have at least 1<<windowBits bytes.  If next_out is null, the
-   library will allocate its own buffer (and leave next_out null). next_in
-   need not be provided here but must be provided by the application for the
-   next call of inflate().
-
-     If the history buffer is provided by the application, next_out must
-   never be changed by the application since the decompressor maintains
-   history information inside this buffer from call to call; the application
-   can only reset next_out to the beginning of the history buffer when
-   avail_out is zero and all output has been consumed.
-
-      inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was
-   not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as
-   windowBits < 8). msg is set to null if there is no error message.
-   inflateInit2 does not perform any decompression: this will be done by
-   inflate().
-*/
-
-extern int inflateSync OF((z_stream *strm));
-/*
-    Skips invalid compressed data until the special marker (see deflate()
-  above) can be found, or until all available input is skipped. No output
-  is provided.
-
-    inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR
-  if no more input was provided, Z_DATA_ERROR if no marker has been found,
-  or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
-  case, the application may save the current current value of total_in which
-  indicates where valid compressed data was found. In the error case, the
-  application may repeatedly call inflateSync, providing more input each time,
-  until success or end of the input data.
-*/
-
-extern int inflateReset OF((z_stream *strm));
-/*
-     This function is equivalent to inflateEnd followed by inflateInit,
-   but does not free and reallocate all the internal decompression state.
-   The stream will keep attributes that may have been set by inflateInit2.
-
-      inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-extern int inflateIncomp OF((z_stream *strm));
-/*
-     This function adds the data at next_in (avail_in bytes) to the output
-   history without performing any output.  There must be no pending output,
-   and the decompressor must be expecting to see the start of a block.
-   Calling this function is equivalent to decompressing a stored block
-   containing the data at next_in (except that the data is not output).
-*/
-
-                        /* checksum functions */
-
-/*
-     This function is not related to compression but is exported
-   anyway because it might be useful in applications using the
-   compression library.
-*/
-
-extern uLong adler32 OF((uLong adler, Bytef *buf, uInt len));
-
-/*
-     Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-   return the updated checksum. If buf is NULL, this function returns
-   the required initial value for the checksum.
-   An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-   much faster. Usage example:
-
-     uLong adler = adler32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       adler = adler32(adler, buffer, length);
-     }
-     if (adler != original_adler) error();
-*/
-
-#ifndef _Z_UTIL_H
-    struct internal_state {int dummy;}; /* hack for buggy compilers */
-#endif
-
-#endif /* _ZLIB_H */
diff --git a/arch/ppc/boot/lib/zlib.c b/arch/ppc/boot/lib/zlib.c
deleted file mode 100644 (file)
index d8be096..0000000
+++ /dev/null
@@ -1,2169 +0,0 @@
-/*
- * This file is derived from various .h and .c files from the zlib-0.95
- * distribution by Jean-loup Gailly and Mark Adler, with some additions
- * by Paul Mackerras to aid in implementing Deflate compression and
- * decompression for PPP packets.  See zlib.h for conditions of
- * distribution and use.
- *
- * Changes that have been made include:
- * - changed functions not used outside this file to "local"
- * - added minCompression parameter to deflateInit2
- * - added Z_PACKET_FLUSH (see zlib.h for details)
- * - added inflateIncomp
- *
- */
-
-/*+++++*/
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* From: zutil.h,v 1.9 1995/05/03 17:27:12 jloup Exp */
-
-#define _Z_UTIL_H
-
-#include "zlib.h"
-
-#ifndef local
-#  define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-#define FAR
-
-typedef unsigned char  uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long  ulg;
-
-extern char *z_errmsg[]; /* indexed by 1-zlib_error */
-
-#define ERR_RETURN(strm,err) return (strm->msg=z_errmsg[1-err], err)
-/* To be used only when the state is known to be valid */
-
-#ifndef NULL
-#define NULL   ((void *) 0)
-#endif
-
-        /* common constants */
-
-#define DEFLATED   8
-
-#ifndef DEF_WBITS
-#  define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-#  define DEF_MEM_LEVEL 8
-#else
-#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES    2
-/* The three kinds of block type */
-
-#define MIN_MATCH  3
-#define MAX_MATCH  258
-/* The minimum and maximum match lengths */
-
-         /* functions */
-
-#include <linux/string.h>
-#define zmemcpy memcpy
-#define zmemzero(dest, len)    memset(dest, 0, len)
-
-/* Diagnostic functions */
-#ifdef DEBUG_ZLIB
-#  include <stdio.h>
-#  ifndef verbose
-#    define verbose 0
-#  endif
-#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-#  define Trace(x) fprintf x
-#  define Tracev(x) {if (verbose) fprintf x ;}
-#  define Tracevv(x) {if (verbose>1) fprintf x ;}
-#  define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
-#  define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
-#else
-#  define Assert(cond,msg)
-#  define Trace(x)
-#  define Tracev(x)
-#  define Tracevv(x)
-#  define Tracec(c,x)
-#  define Tracecv(c,x)
-#endif
-
-
-typedef uLong (*check_func) OF((uLong check, Bytef *buf, uInt len));
-
-/* voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); */
-/* void   zcfree  OF((voidpf opaque, voidpf ptr)); */
-
-#define ZALLOC(strm, items, size) \
-           (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr, size)        \
-          (*((strm)->zfree))((strm)->opaque, (voidpf)(addr), (size))
-#define TRY_FREE(s, p, n) {if (p) ZFREE(s, p, n);}
-
-/* deflate.h -- internal compression state
- * Copyright (C) 1995 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/*+++++*/
-/* infblock.h -- header to use infblock.c
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-struct inflate_blocks_state;
-typedef struct inflate_blocks_state FAR inflate_blocks_statef;
-
-local inflate_blocks_statef * inflate_blocks_new OF((
-    z_stream *z,
-    check_func c,               /* check function */
-    uInt w));                   /* window size */
-
-local int inflate_blocks OF((
-    inflate_blocks_statef *,
-    z_stream *,
-    int));                      /* initial return code */
-
-local void inflate_blocks_reset OF((
-    inflate_blocks_statef *,
-    z_stream *,
-    uLongf *));                  /* check value on output */
-
-local int inflate_blocks_free OF((
-    inflate_blocks_statef *,
-    z_stream *,
-    uLongf *));                  /* check value on output */
-
-local int inflate_addhistory OF((
-    inflate_blocks_statef *,
-    z_stream *));
-
-local int inflate_packet_flush OF((
-    inflate_blocks_statef *));
-
-/*+++++*/
-/* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* Huffman code lookup table entry--this entry is four bytes for machines
-   that have 16-bit pointers (e.g. PC's in the small or medium model). */
-
-typedef struct inflate_huft_s FAR inflate_huft;
-
-struct inflate_huft_s {
-  union {
-    struct {
-      Byte Exop;        /* number of extra bits or operation */
-      Byte Bits;        /* number of bits in this code or subcode */
-    } what;
-    uInt Nalloc;       /* number of these allocated here */
-    Bytef *pad;         /* pad structure to a power of 2 (4 bytes for */
-  } word;               /*  16-bit, 8 bytes for 32-bit machines) */
-  union {
-    uInt Base;          /* literal, length base, or distance base */
-    inflate_huft *Next; /* pointer to next level of table */
-  } more;
-};
-
-#ifdef DEBUG_ZLIB
-  local uInt inflate_hufts;
-#endif
-
-local int inflate_trees_bits OF((
-    uIntf *,                    /* 19 code lengths */
-    uIntf *,                    /* bits tree desired/actual depth */
-    inflate_huft * FAR *,       /* bits tree result */
-    z_stream *));               /* for zalloc, zfree functions */
-
-local int inflate_trees_dynamic OF((
-    uInt,                       /* number of literal/length codes */
-    uInt,                       /* number of distance codes */
-    uIntf *,                    /* that many (total) code lengths */
-    uIntf *,                    /* literal desired/actual bit depth */
-    uIntf *,                    /* distance desired/actual bit depth */
-    inflate_huft * FAR *,       /* literal/length tree result */
-    inflate_huft * FAR *,       /* distance tree result */
-    z_stream *));               /* for zalloc, zfree functions */
-
-local int inflate_trees_fixed OF((
-    uIntf *,                    /* literal desired/actual bit depth */
-    uIntf *,                    /* distance desired/actual bit depth */
-    inflate_huft * FAR *,       /* literal/length tree result */
-    inflate_huft * FAR *));     /* distance tree result */
-
-local int inflate_trees_free OF((
-    inflate_huft *,             /* tables to free */
-    z_stream *));               /* for zfree function */
-
-
-/*+++++*/
-/* infcodes.h -- header to use infcodes.c
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-struct inflate_codes_state;
-typedef struct inflate_codes_state FAR inflate_codes_statef;
-
-local inflate_codes_statef *inflate_codes_new OF((
-    uInt, uInt,
-    inflate_huft *, inflate_huft *,
-    z_stream *));
-
-local int inflate_codes OF((
-    inflate_blocks_statef *,
-    z_stream *,
-    int));
-
-local void inflate_codes_free OF((
-    inflate_codes_statef *,
-    z_stream *));
-
-
-/*+++++*/
-/* inflate.c -- zlib interface to inflate modules
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* inflate private state */
-struct internal_state {
-
-  /* mode */
-  enum {
-      METHOD,   /* waiting for method byte */
-      FLAG,     /* waiting for flag byte */
-      BLOCKS,   /* decompressing blocks */
-      CHECK4,   /* four check bytes to go */
-      CHECK3,   /* three check bytes to go */
-      CHECK2,   /* two check bytes to go */
-      CHECK1,   /* one check byte to go */
-      DONE,     /* finished check, done */
-      BAD}      /* got an error--stay here */
-    mode;               /* current inflate mode */
-
-  /* mode dependent information */
-  union {
-    uInt method;        /* if FLAGS, method byte */
-    struct {
-      uLong was;                /* computed check value */
-      uLong need;               /* stream check value */
-    } check;            /* if CHECK, check values to compare */
-    uInt marker;        /* if BAD, inflateSync's marker bytes count */
-  } sub;        /* submode */
-
-  /* mode independent information */
-  int  nowrap;          /* flag for no wrapper */
-  uInt wbits;           /* log2(window size)  (8..15, defaults to 15) */
-  inflate_blocks_statef
-    *blocks;            /* current inflate_blocks state */
-
-};
-
-
-int inflateReset(
-       z_stream *z
-)
-{
-  uLong c;
-
-  if (z == Z_NULL || z->state == Z_NULL)
-    return Z_STREAM_ERROR;
-  z->total_in = z->total_out = 0;
-  z->msg = Z_NULL;
-  z->state->mode = z->state->nowrap ? BLOCKS : METHOD;
-  inflate_blocks_reset(z->state->blocks, z, &c);
-  Trace((stderr, "inflate: reset\n"));
-  return Z_OK;
-}
-
-
-int inflateEnd(
-       z_stream *z
-)
-{
-  uLong c;
-
-  if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL)
-    return Z_STREAM_ERROR;
-  if (z->state->blocks != Z_NULL)
-    inflate_blocks_free(z->state->blocks, z, &c);
-  ZFREE(z, z->state, sizeof(struct internal_state));
-  z->state = Z_NULL;
-  Trace((stderr, "inflate: end\n"));
-  return Z_OK;
-}
-
-
-int inflateInit2(
-       z_stream *z,
-       int w
-)
-{
-  /* initialize state */
-  if (z == Z_NULL)
-    return Z_STREAM_ERROR;
-/*  if (z->zalloc == Z_NULL) z->zalloc = zcalloc; */
-/*  if (z->zfree == Z_NULL) z->zfree = zcfree; */
-  if ((z->state = (struct internal_state FAR *)
-       ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL)
-    return Z_MEM_ERROR;
-  z->state->blocks = Z_NULL;
-
-  /* handle undocumented nowrap option (no zlib header or check) */
-  z->state->nowrap = 0;
-  if (w < 0)
-  {
-    w = - w;
-    z->state->nowrap = 1;
-  }
-
-  /* set window size */
-  if (w < 8 || w > 15)
-  {
-    inflateEnd(z);
-    return Z_STREAM_ERROR;
-  }
-  z->state->wbits = (uInt)w;
-
-  /* create inflate_blocks state */
-  if ((z->state->blocks =
-       inflate_blocks_new(z, z->state->nowrap ? Z_NULL : adler32, 1 << w))
-      == Z_NULL)
-  {
-    inflateEnd(z);
-    return Z_MEM_ERROR;
-  }
-  Trace((stderr, "inflate: allocated\n"));
-
-  /* reset state */
-  inflateReset(z);
-  return Z_OK;
-}
-
-
-int inflateInit(
-       z_stream *z
-)
-{
-  return inflateInit2(z, DEF_WBITS);
-}
-
-
-#define NEEDBYTE {if(z->avail_in==0)goto empty;r=Z_OK;}
-#define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++)
-
-int inflate(
-       z_stream *z,
-       int f
-)
-{
-  int r;
-  uInt b;
-
-  if (z == Z_NULL || z->next_in == Z_NULL)
-    return Z_STREAM_ERROR;
-  r = Z_BUF_ERROR;
-  while (1) switch (z->state->mode)
-  {
-    case METHOD:
-      NEEDBYTE
-      if (((z->state->sub.method = NEXTBYTE) & 0xf) != DEFLATED)
-      {
-        z->state->mode = BAD;
-        z->msg = "unknown compression method";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      if ((z->state->sub.method >> 4) + 8 > z->state->wbits)
-      {
-        z->state->mode = BAD;
-        z->msg = "invalid window size";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      z->state->mode = FLAG;
-    case FLAG:
-      NEEDBYTE
-      if ((b = NEXTBYTE) & 0x20)
-      {
-        z->state->mode = BAD;
-        z->msg = "invalid reserved bit";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      if (((z->state->sub.method << 8) + b) % 31)
-      {
-        z->state->mode = BAD;
-        z->msg = "incorrect header check";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      Trace((stderr, "inflate: zlib header ok\n"));
-      z->state->mode = BLOCKS;
-    case BLOCKS:
-      r = inflate_blocks(z->state->blocks, z, r);
-      if (f == Z_PACKET_FLUSH && z->avail_in == 0 && z->avail_out != 0)
-         r = inflate_packet_flush(z->state->blocks);
-      if (r == Z_DATA_ERROR)
-      {
-        z->state->mode = BAD;
-        z->state->sub.marker = 0;       /* can try inflateSync */
-        break;
-      }
-      if (r != Z_STREAM_END)
-        return r;
-      r = Z_OK;
-      inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was);
-      if (z->state->nowrap)
-      {
-        z->state->mode = DONE;
-        break;
-      }
-      z->state->mode = CHECK4;
-    case CHECK4:
-      NEEDBYTE
-      z->state->sub.check.need = (uLong)NEXTBYTE << 24;
-      z->state->mode = CHECK3;
-    case CHECK3:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE << 16;
-      z->state->mode = CHECK2;
-    case CHECK2:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE << 8;
-      z->state->mode = CHECK1;
-    case CHECK1:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE;
-
-      if (z->state->sub.check.was != z->state->sub.check.need)
-      {
-        z->state->mode = BAD;
-        z->msg = "incorrect data check";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      Trace((stderr, "inflate: zlib check ok\n"));
-      z->state->mode = DONE;
-    case DONE:
-      return Z_STREAM_END;
-    case BAD:
-      return Z_DATA_ERROR;
-    default:
-      return Z_STREAM_ERROR;
-  }
-
- empty:
-  if (f != Z_PACKET_FLUSH)
-    return r;
-  z->state->mode = BAD;
-  z->state->sub.marker = 0;       /* can try inflateSync */
-  return Z_DATA_ERROR;
-}
-
-/*
- * This subroutine adds the data at next_in/avail_in to the output history
- * without performing any output.  The output buffer must be "caught up";
- * i.e. no pending output (hence s->read equals s->write), and the state must
- * be BLOCKS (i.e. we should be willing to see the start of a series of
- * BLOCKS).  On exit, the output will also be caught up, and the checksum
- * will have been updated if need be.
- */
-
-int inflateIncomp(
-       z_stream *z
-)
-{
-    if (z->state->mode != BLOCKS)
-       return Z_DATA_ERROR;
-    return inflate_addhistory(z->state->blocks, z);
-}
-
-
-int inflateSync(
-       z_stream *z
-)
-{
-  uInt n;       /* number of bytes to look at */
-  Bytef *p;     /* pointer to bytes */
-  uInt m;       /* number of marker bytes found in a row */
-  uLong r, w;   /* temporaries to save total_in and total_out */
-
-  /* set up */
-  if (z == Z_NULL || z->state == Z_NULL)
-    return Z_STREAM_ERROR;
-  if (z->state->mode != BAD)
-  {
-    z->state->mode = BAD;
-    z->state->sub.marker = 0;
-  }
-  if ((n = z->avail_in) == 0)
-    return Z_BUF_ERROR;
-  p = z->next_in;
-  m = z->state->sub.marker;
-
-  /* search */
-  while (n && m < 4)
-  {
-    if (*p == (Byte)(m < 2 ? 0 : 0xff))
-      m++;
-    else if (*p)
-      m = 0;
-    else
-      m = 4 - m;
-    p++, n--;
-  }
-
-  /* restore */
-  z->total_in += p - z->next_in;
-  z->next_in = p;
-  z->avail_in = n;
-  z->state->sub.marker = m;
-
-  /* return no joy or set up to restart on a new block */
-  if (m != 4)
-    return Z_DATA_ERROR;
-  r = z->total_in;  w = z->total_out;
-  inflateReset(z);
-  z->total_in = r;  z->total_out = w;
-  z->state->mode = BLOCKS;
-  return Z_OK;
-}
-
-#undef NEEDBYTE
-#undef NEXTBYTE
-
-/*+++++*/
-/* infutil.h -- types and macros common to blocks and codes
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* inflate blocks semi-private state */
-struct inflate_blocks_state {
-
-  /* mode */
-  enum {
-      TYPE,     /* get type bits (3, including end bit) */
-      LENS,     /* get lengths for stored */
-      STORED,   /* processing stored block */
-      TABLE,    /* get table lengths */
-      BTREE,    /* get bit lengths tree for a dynamic block */
-      DTREE,    /* get length, distance trees for a dynamic block */
-      CODES,    /* processing fixed or dynamic block */
-      DRY,      /* output remaining window bytes */
-      DONEB,     /* finished last block, done */
-      BADB}      /* got a data error--stuck here */
-    mode;               /* current inflate_block mode */
-
-  /* mode dependent information */
-  union {
-    uInt left;          /* if STORED, bytes left to copy */
-    struct {
-      uInt table;               /* table lengths (14 bits) */
-      uInt index;               /* index into blens (or border) */
-      uIntf *blens;             /* bit lengths of codes */
-      uInt bb;                  /* bit length tree depth */
-      inflate_huft *tb;         /* bit length decoding tree */
-      int nblens;              /* # elements allocated at blens */
-    } trees;            /* if DTREE, decoding info for trees */
-    struct {
-      inflate_huft *tl, *td;    /* trees to free */
-      inflate_codes_statef
-         *codes;
-    } decode;           /* if CODES, current state */
-  } sub;                /* submode */
-  uInt last;            /* true if this block is the last block */
-
-  /* mode independent information */
-  uInt bitk;            /* bits in bit buffer */
-  uLong bitb;           /* bit buffer */
-  Bytef *window;        /* sliding window */
-  Bytef *end;           /* one byte after sliding window */
-  Bytef *read;          /* window read pointer */
-  Bytef *write;         /* window write pointer */
-  check_func checkfn;   /* check function */
-  uLong check;          /* check on output */
-
-};
-
-
-/* defines for inflate input/output */
-/*   update pointers and return */
-#define UPDBITS {s->bitb=b;s->bitk=k;}
-#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;}
-#define UPDOUT {s->write=q;}
-#define UPDATE {UPDBITS UPDIN UPDOUT}
-#define LEAVE {UPDATE return inflate_flush(s,z,r);}
-/*   get bytes and bits */
-#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;}
-#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
-#define NEXTBYTE (n--,*p++)
-#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define DUMPBITS(j) {b>>=(j);k-=(j);}
-/*   output bytes */
-#define WAVAIL (q<s->read?s->read-q-1:s->end-q)
-#define LOADOUT {q=s->write;m=WAVAIL;}
-#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=WAVAIL;}}
-#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
-#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;}
-#define OUTBYTE(a) {*q++=(Byte)(a);m--;}
-/*   load local pointers */
-#define LOAD {LOADIN LOADOUT}
-
-/* And'ing with mask[n] masks the lower n bits */
-local uInt inflate_mask[] = {
-    0x0000,
-    0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
-    0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
-};
-
-/* copy as much as possible from the sliding window to the output area */
-local int inflate_flush OF((
-    inflate_blocks_statef *,
-    z_stream *,
-    int));
-
-/*+++++*/
-/* inffast.h -- header to use inffast.c
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-local int inflate_fast OF((
-    uInt,
-    uInt,
-    inflate_huft *,
-    inflate_huft *,
-    inflate_blocks_statef *,
-    z_stream *));
-
-
-/*+++++*/
-/* infblock.c -- interpret and process block types to last block
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* Table for deflate from PKZIP's appnote.txt. */
-local uInt border[] = { /* Order of the bit length code lengths */
-        16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-/*
-   Notes beyond the 1.93a appnote.txt:
-
-   1. Distance pointers never point before the beginning of the output
-      stream.
-   2. Distance pointers can point back across blocks, up to 32k away.
-   3. There is an implied maximum of 7 bits for the bit length table and
-      15 bits for the actual data.
-   4. If only one code exists, then it is encoded using one bit.  (Zero
-      would be more efficient, but perhaps a little confusing.)  If two
-      codes exist, they are coded using one bit each (0 and 1).
-   5. There is no way of sending zero distance codes--a dummy must be
-      sent if there are none.  (History: a pre 2.0 version of PKZIP would
-      store blocks with no distance codes, but this was discovered to be
-      too harsh a criterion.)  Valid only for 1.93a.  2.04c does allow
-      zero distance codes, which is sent as one code of zero bits in
-      length.
-   6. There are up to 286 literal/length codes.  Code 256 represents the
-      end-of-block.  Note however that the static length tree defines
-      288 codes just to fill out the Huffman codes.  Codes 286 and 287
-      cannot be used though, since there is no length base or extra bits
-      defined for them.  Similarily, there are up to 30 distance codes.
-      However, static trees define 32 codes (all 5 bits) to fill out the
-      Huffman codes, but the last two had better not show up in the data.
-   7. Unzip can check dynamic Huffman blocks for complete code sets.
-      The exception is that a single code would not be complete (see #4).
-   8. The five bits following the block type is really the number of
-      literal codes sent minus 257.
-   9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits
-      (1+6+6).  Therefore, to output three times the length, you output
-      three codes (1+1+1), whereas to output four times the same length,
-      you only need two codes (1+3).  Hmm.
-  10. In the tree reconstruction algorithm, Code = Code + Increment
-      only if BitLength(i) is not zero.  (Pretty obvious.)
-  11. Correction: 4 Bits: # of Bit Length codes - 4     (4 - 19)
-  12. Note: length code 284 can represent 227-258, but length code 285
-      really is 258.  The last length deserves its own, short code
-      since it gets used a lot in very redundant files.  The length
-      258 is special since 258 - 3 (the min match length) is 255.
-  13. The literal/length and distance code bit lengths are read as a
-      single stream of lengths.  It is possible (and advantageous) for
-      a repeat code (16, 17, or 18) to go across the boundary between
-      the two sets of lengths.
- */
-
-
-local void inflate_blocks_reset(
-       inflate_blocks_statef *s,
-       z_stream *z,
-       uLongf *c
-)
-{
-  if (s->checkfn != Z_NULL)
-    *c = s->check;
-  if (s->mode == BTREE || s->mode == DTREE)
-    ZFREE(z, s->sub.trees.blens, s->sub.trees.nblens * sizeof(uInt));
-  if (s->mode == CODES)
-  {
-    inflate_codes_free(s->sub.decode.codes, z);
-    inflate_trees_free(s->sub.decode.td, z);
-    inflate_trees_free(s->sub.decode.tl, z);
-  }
-  s->mode = TYPE;
-  s->bitk = 0;
-  s->bitb = 0;
-  s->read = s->write = s->window;
-  if (s->checkfn != Z_NULL)
-    s->check = (*s->checkfn)(0L, Z_NULL, 0);
-  Trace((stderr, "inflate:   blocks reset\n"));
-}
-
-
-local inflate_blocks_statef *inflate_blocks_new(
-       z_stream *z,
-       check_func c,
-       uInt w
-)
-{
-  inflate_blocks_statef *s;
-
-  if ((s = (inflate_blocks_statef *)ZALLOC
-       (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL)
-    return s;
-  if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL)
-  {
-    ZFREE(z, s, sizeof(struct inflate_blocks_state));
-    return Z_NULL;
-  }
-  s->end = s->window + w;
-  s->checkfn = c;
-  s->mode = TYPE;
-  Trace((stderr, "inflate:   blocks allocated\n"));
-  inflate_blocks_reset(s, z, &s->check);
-  return s;
-}
-
-
-local int inflate_blocks(
-       inflate_blocks_statef *s,
-       z_stream *z,
-       int r
-)
-{
-  uInt t;               /* temporary storage */
-  uLong b;              /* bit buffer */
-  uInt k;               /* bits in bit buffer */
-  Bytef *p;             /* input data pointer */
-  uInt n;               /* bytes available there */
-  Bytef *q;             /* output window write pointer */
-  uInt m;               /* bytes to end of window or read pointer */
-
-  /* copy input/output information to locals (UPDATE macro restores) */
-  LOAD
-
-  /* process input based on current state */
-  while (1) switch (s->mode)
-  {
-    case TYPE:
-      NEEDBITS(3)
-      t = (uInt)b & 7;
-      s->last = t & 1;
-      switch (t >> 1)
-      {
-        case 0:                         /* stored */
-          Trace((stderr, "inflate:     stored block%s\n",
-                 s->last ? " (last)" : ""));
-          DUMPBITS(3)
-          t = k & 7;                    /* go to byte boundary */
-          DUMPBITS(t)
-          s->mode = LENS;               /* get length of stored block */
-          break;
-        case 1:                         /* fixed */
-          Trace((stderr, "inflate:     fixed codes block%s\n",
-                 s->last ? " (last)" : ""));
-          {
-            uInt bl, bd;
-            inflate_huft *tl, *td;
-
-            inflate_trees_fixed(&bl, &bd, &tl, &td);
-            s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z);
-            if (s->sub.decode.codes == Z_NULL)
-            {
-              r = Z_MEM_ERROR;
-              LEAVE
-            }
-            s->sub.decode.tl = Z_NULL;  /* don't try to free these */
-            s->sub.decode.td = Z_NULL;
-          }
-          DUMPBITS(3)
-          s->mode = CODES;
-          break;
-        case 2:                         /* dynamic */
-          Trace((stderr, "inflate:     dynamic codes block%s\n",
-                 s->last ? " (last)" : ""));
-          DUMPBITS(3)
-          s->mode = TABLE;
-          break;
-        case 3:                         /* illegal */
-          DUMPBITS(3)
-          s->mode = BADB;
-          z->msg = "invalid block type";
-          r = Z_DATA_ERROR;
-          LEAVE
-      }
-      break;
-    case LENS:
-      NEEDBITS(32)
-      if (((~b) >> 16) != (b & 0xffff))
-      {
-        s->mode = BADB;
-        z->msg = "invalid stored block lengths";
-        r = Z_DATA_ERROR;
-        LEAVE
-      }
-      s->sub.left = (uInt)b & 0xffff;
-      b = k = 0;                      /* dump bits */
-      Tracev((stderr, "inflate:       stored length %u\n", s->sub.left));
-      s->mode = s->sub.left ? STORED : TYPE;
-      break;
-    case STORED:
-      if (n == 0)
-        LEAVE
-      NEEDOUT
-      t = s->sub.left;
-      if (t > n) t = n;
-      if (t > m) t = m;
-      zmemcpy(q, p, t);
-      p += t;  n -= t;
-      q += t;  m -= t;
-      if ((s->sub.left -= t) != 0)
-        break;
-      Tracev((stderr, "inflate:       stored end, %lu total out\n",
-              z->total_out + (q >= s->read ? q - s->read :
-              (s->end - s->read) + (q - s->window))));
-      s->mode = s->last ? DRY : TYPE;
-      break;
-    case TABLE:
-      NEEDBITS(14)
-      s->sub.trees.table = t = (uInt)b & 0x3fff;
-#ifndef PKZIP_BUG_WORKAROUND
-      if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29)
-      {
-        s->mode = BADB;
-        z->msg = "too many length or distance symbols";
-        r = Z_DATA_ERROR;
-        LEAVE
-      }
-#endif
-      t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f);
-      if (t < 19)
-        t = 19;
-      if ((s->sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL)
-      {
-        r = Z_MEM_ERROR;
-        LEAVE
-      }
-      s->sub.trees.nblens = t;
-      DUMPBITS(14)
-      s->sub.trees.index = 0;
-      Tracev((stderr, "inflate:       table sizes ok\n"));
-      s->mode = BTREE;
-    case BTREE:
-      while (s->sub.trees.index < 4 + (s->sub.trees.table >> 10))
-      {
-        NEEDBITS(3)
-        s->sub.trees.blens[border[s->sub.trees.index++]] = (uInt)b & 7;
-        DUMPBITS(3)
-      }
-      while (s->sub.trees.index < 19)
-        s->sub.trees.blens[border[s->sub.trees.index++]] = 0;
-      s->sub.trees.bb = 7;
-      t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb,
-                             &s->sub.trees.tb, z);
-      if (t != Z_OK)
-      {
-        r = t;
-        if (r == Z_DATA_ERROR)
-          s->mode = BADB;
-        LEAVE
-      }
-      s->sub.trees.index = 0;
-      Tracev((stderr, "inflate:       bits tree ok\n"));
-      s->mode = DTREE;
-    case DTREE:
-      while (t = s->sub.trees.table,
-             s->sub.trees.index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f))
-      {
-        inflate_huft *h;
-        uInt i, j, c;
-
-        t = s->sub.trees.bb;
-        NEEDBITS(t)
-        h = s->sub.trees.tb + ((uInt)b & inflate_mask[t]);
-        t = h->word.what.Bits;
-        c = h->more.Base;
-        if (c < 16)
-        {
-          DUMPBITS(t)
-          s->sub.trees.blens[s->sub.trees.index++] = c;
-        }
-        else /* c == 16..18 */
-        {
-          i = c == 18 ? 7 : c - 14;
-          j = c == 18 ? 11 : 3;
-          NEEDBITS(t + i)
-          DUMPBITS(t)
-          j += (uInt)b & inflate_mask[i];
-          DUMPBITS(i)
-          i = s->sub.trees.index;
-          t = s->sub.trees.table;
-          if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) ||
-              (c == 16 && i < 1))
-          {
-            s->mode = BADB;
-            z->msg = "invalid bit length repeat";
-            r = Z_DATA_ERROR;
-            LEAVE
-          }
-          c = c == 16 ? s->sub.trees.blens[i - 1] : 0;
-          do {
-            s->sub.trees.blens[i++] = c;
-          } while (--j);
-          s->sub.trees.index = i;
-        }
-      }
-      inflate_trees_free(s->sub.trees.tb, z);
-      s->sub.trees.tb = Z_NULL;
-      {
-        uInt bl, bd;
-        inflate_huft *tl, *td;
-        inflate_codes_statef *c;
-
-        bl = 9;         /* must be <= 9 for lookahead assumptions */
-        bd = 6;         /* must be <= 9 for lookahead assumptions */
-        t = s->sub.trees.table;
-        t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f),
-                                  s->sub.trees.blens, &bl, &bd, &tl, &td, z);
-        if (t != Z_OK)
-        {
-          if (t == (uInt)Z_DATA_ERROR)
-            s->mode = BADB;
-          r = t;
-          LEAVE
-        }
-        Tracev((stderr, "inflate:       trees ok\n"));
-        if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)
-        {
-          inflate_trees_free(td, z);
-          inflate_trees_free(tl, z);
-          r = Z_MEM_ERROR;
-          LEAVE
-        }
-        ZFREE(z, s->sub.trees.blens, s->sub.trees.nblens * sizeof(uInt));
-        s->sub.decode.codes = c;
-        s->sub.decode.tl = tl;
-        s->sub.decode.td = td;
-      }
-      s->mode = CODES;
-    case CODES:
-      UPDATE
-      if ((r = inflate_codes(s, z, r)) != Z_STREAM_END)
-        return inflate_flush(s, z, r);
-      r = Z_OK;
-      inflate_codes_free(s->sub.decode.codes, z);
-      inflate_trees_free(s->sub.decode.td, z);
-      inflate_trees_free(s->sub.decode.tl, z);
-      LOAD
-      Tracev((stderr, "inflate:       codes end, %lu total out\n",
-              z->total_out + (q >= s->read ? q - s->read :
-              (s->end - s->read) + (q - s->window))));
-      if (!s->last)
-      {
-        s->mode = TYPE;
-        break;
-      }
-      if (k > 7)              /* return unused byte, if any */
-      {
-        Assert(k < 16, "inflate_codes grabbed too many bytes")
-        k -= 8;
-        n++;
-        p--;                    /* can always return one */
-      }
-      s->mode = DRY;
-    case DRY:
-      FLUSH
-      if (s->read != s->write)
-        LEAVE
-      s->mode = DONEB;
-    case DONEB:
-      r = Z_STREAM_END;
-      LEAVE
-    case BADB:
-      r = Z_DATA_ERROR;
-      LEAVE
-    default:
-      r = Z_STREAM_ERROR;
-      LEAVE
-  }
-}
-
-
-local int inflate_blocks_free(
-       inflate_blocks_statef *s,
-       z_stream *z,
-       uLongf *c
-)
-{
-  inflate_blocks_reset(s, z, c);
-  ZFREE(z, s->window, s->end - s->window);
-  ZFREE(z, s, sizeof(struct inflate_blocks_state));
-  Trace((stderr, "inflate:   blocks freed\n"));
-  return Z_OK;
-}
-
-/*
- * This subroutine adds the data at next_in/avail_in to the output history
- * without performing any output.  The output buffer must be "caught up";
- * i.e. no pending output (hence s->read equals s->write), and the state must
- * be BLOCKS (i.e. we should be willing to see the start of a series of
- * BLOCKS).  On exit, the output will also be caught up, and the checksum
- * will have been updated if need be.
- */
-local int inflate_addhistory(
-       inflate_blocks_statef *s,
-       z_stream *z
-)
-{
-    uLong b;              /* bit buffer */  /* NOT USED HERE */
-    uInt k;               /* bits in bit buffer */ /* NOT USED HERE */
-    uInt t;               /* temporary storage */
-    Bytef *p;             /* input data pointer */
-    uInt n;               /* bytes available there */
-    Bytef *q;             /* output window write pointer */
-    uInt m;               /* bytes to end of window or read pointer */
-
-    if (s->read != s->write)
-       return Z_STREAM_ERROR;
-    if (s->mode != TYPE)
-       return Z_DATA_ERROR;
-
-    /* we're ready to rock */
-    LOAD
-    /* while there is input ready, copy to output buffer, moving
-     * pointers as needed.
-     */
-    while (n) {
-       t = n;  /* how many to do */
-       /* is there room until end of buffer? */
-       if (t > m) t = m;
-       /* update check information */
-       if (s->checkfn != Z_NULL)
-           s->check = (*s->checkfn)(s->check, q, t);
-       zmemcpy(q, p, t);
-       q += t;
-       p += t;
-       n -= t;
-       z->total_out += t;
-       s->read = q;    /* drag read pointer forward */
-/*      WRAP  */       /* expand WRAP macro by hand to handle s->read */
-       if (q == s->end) {
-           s->read = q = s->window;
-           m = WAVAIL;
-       }
-    }
-    UPDATE
-    return Z_OK;
-}
-
-
-/*
- * At the end of a Deflate-compressed PPP packet, we expect to have seen
- * a `stored' block type value but not the (zero) length bytes.
- */
-local int inflate_packet_flush(
-       inflate_blocks_statef *s
-)
-{
-    if (s->mode != LENS)
-       return Z_DATA_ERROR;
-    s->mode = TYPE;
-    return Z_OK;
-}
-
-
-/*+++++*/
-/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-
-local int huft_build OF((
-    uIntf *,            /* code lengths in bits */
-    uInt,               /* number of codes */
-    uInt,               /* number of "simple" codes */
-    uIntf *,            /* list of base values for non-simple codes */
-    uIntf *,            /* list of extra bits for non-simple codes */
-    inflate_huft * FAR*,/* result: starting table */
-    uIntf *,            /* maximum lookup bits (returns actual) */
-    z_stream *));       /* for zalloc function */
-
-local voidpf falloc OF((
-    voidpf,             /* opaque pointer (not used) */
-    uInt,               /* number of items */
-    uInt));             /* size of item */
-
-local void ffree OF((
-    voidpf q,           /* opaque pointer (not used) */
-    voidpf p,           /* what to free (not used) */
-    uInt n));          /* number of bytes (not used) */
-
-/* Tables for deflate from PKZIP's appnote.txt. */
-local uInt cplens[] = { /* Copy lengths for literal codes 257..285 */
-        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
-        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
-        /* actually lengths - 2; also see note #13 above about 258 */
-local uInt cplext[] = { /* Extra bits for literal codes 257..285 */
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
-        3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 192, 192}; /* 192==invalid */
-local uInt cpdist[] = { /* Copy offsets for distance codes 0..29 */
-        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
-        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
-        8193, 12289, 16385, 24577};
-local uInt cpdext[] = { /* Extra bits for distance codes */
-        0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
-        7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
-        12, 12, 13, 13};
-
-/*
-   Huffman code decoding is performed using a multi-level table lookup.
-   The fastest way to decode is to simply build a lookup table whose
-   size is determined by the longest code.  However, the time it takes
-   to build this table can also be a factor if the data being decoded
-   is not very long.  The most common codes are necessarily the
-   shortest codes, so those codes dominate the decoding time, and hence
-   the speed.  The idea is you can have a shorter table that decodes the
-   shorter, more probable codes, and then point to subsidiary tables for
-   the longer codes.  The time it costs to decode the longer codes is
-   then traded against the time it takes to make longer tables.
-
-   This results of this trade are in the variables lbits and dbits
-   below.  lbits is the number of bits the first level table for literal/
-   length codes can decode in one step, and dbits is the same thing for
-   the distance codes.  Subsequent tables are also less than or equal to
-   those sizes.  These values may be adjusted either when all of the
-   codes are shorter than that, in which case the longest code length in
-   bits is used, or when the shortest code is *longer* than the requested
-   table size, in which case the length of the shortest code in bits is
-   used.
-
-   There are two different values for the two tables, since they code a
-   different number of possibilities each.  The literal/length table
-   codes 286 possible values, or in a flat code, a little over eight
-   bits.  The distance table codes 30 possible values, or a little less
-   than five bits, flat.  The optimum values for speed end up being
-   about one bit more than those, so lbits is 8+1 and dbits is 5+1.
-   The optimum values may differ though from machine to machine, and
-   possibly even between compilers.  Your mileage may vary.
- */
-
-
-/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */
-#define BMAX 15         /* maximum bit length of any code */
-#define N_MAX 288       /* maximum number of codes in any set */
-
-#ifdef DEBUG_ZLIB
-  uInt inflate_hufts;
-#endif
-
-local int huft_build(
-       uIntf *b,               /* code lengths in bits (all assumed <= BMAX) */
-       uInt n,                 /* number of codes (assumed <= N_MAX) */
-       uInt s,                 /* number of simple-valued codes (0..s-1) */
-       uIntf *d,               /* list of base values for non-simple codes */
-       uIntf *e,               /* list of extra bits for non-simple codes */
-       inflate_huft * FAR *t,  /* result: starting table */
-       uIntf *m,               /* maximum lookup bits, returns actual */
-       z_stream *zs            /* for zalloc function */
-)
-/* Given a list of code lengths and a maximum table size, make a set of
-   tables to decode that set of codes.  Return Z_OK on success, Z_BUF_ERROR
-   if the given code set is incomplete (the tables are still built in this
-   case), Z_DATA_ERROR if the input is invalid (all zero length codes or an
-   over-subscribed set of lengths), or Z_MEM_ERROR if not enough memory. */
-{
-
-  uInt a;                       /* counter for codes of length k */
-  uInt c[BMAX+1];               /* bit length count table */
-  uInt f;                       /* i repeats in table every f entries */
-  int g;                        /* maximum code length */
-  int h;                        /* table level */
-  register uInt i;              /* counter, current code */
-  register uInt j;              /* counter */
-  register int k;               /* number of bits in current code */
-  int l;                        /* bits per table (returned in m) */
-  register uIntf *p;            /* pointer into c[], b[], or v[] */
-  inflate_huft *q;              /* points to current table */
-  struct inflate_huft_s r;      /* table entry for structure assignment */
-  inflate_huft *u[BMAX];        /* table stack */
-  uInt v[N_MAX];                /* values in order of bit length */
-  register int w;               /* bits before this table == (l * h) */
-  uInt x[BMAX+1];               /* bit offsets, then code stack */
-  uIntf *xp;                    /* pointer into x */
-  int y;                        /* number of dummy codes added */
-  uInt z;                       /* number of entries in current table */
-
-
-  /* Generate counts for each bit length */
-  p = c;
-#define C0 *p++ = 0;
-#define C2 C0 C0 C0 C0
-#define C4 C2 C2 C2 C2
-  C4                            /* clear c[]--assume BMAX+1 is 16 */
-  p = b;  i = n;
-  do {
-    c[*p++]++;                  /* assume all entries <= BMAX */
-  } while (--i);
-  if (c[0] == n)                /* null input--all zero length codes */
-  {
-    *t = (inflate_huft *)Z_NULL;
-    *m = 0;
-    return Z_OK;
-  }
-
-
-  /* Find minimum and maximum length, bound *m by those */
-  l = *m;
-  for (j = 1; j <= BMAX; j++)
-    if (c[j])
-      break;
-  k = j;                        /* minimum code length */
-  if ((uInt)l < j)
-    l = j;
-  for (i = BMAX; i; i--)
-    if (c[i])
-      break;
-  g = i;                        /* maximum code length */
-  if ((uInt)l > i)
-    l = i;
-  *m = l;
-
-
-  /* Adjust last length count to fill out codes, if needed */
-  for (y = 1 << j; j < i; j++, y <<= 1)
-    if ((y -= c[j]) < 0)
-      return Z_DATA_ERROR;
-  if ((y -= c[i]) < 0)
-    return Z_DATA_ERROR;
-  c[i] += y;
-
-
-  /* Generate starting offsets into the value table for each length */
-  x[1] = j = 0;
-  p = c + 1;  xp = x + 2;
-  while (--i) {                 /* note that i == g from above */
-    *xp++ = (j += *p++);
-  }
-
-
-  /* Make a table of values in order of bit lengths */
-  p = b;  i = 0;
-  do {
-    if ((j = *p++) != 0)
-      v[x[j]++] = i;
-  } while (++i < n);
-
-
-  /* Generate the Huffman codes and for each, make the table entries */
-  x[0] = i = 0;                 /* first Huffman code is zero */
-  p = v;                        /* grab values in bit order */
-  h = -1;                       /* no tables yet--level -1 */
-  w = -l;                       /* bits decoded == (l * h) */
-  u[0] = (inflate_huft *)Z_NULL;        /* just to keep compilers happy */
-  q = (inflate_huft *)Z_NULL;   /* ditto */
-  z = 0;                        /* ditto */
-
-  /* go through the bit lengths (k already is bits in shortest code) */
-  for (; k <= g; k++)
-  {
-    a = c[k];
-    while (a--)
-    {
-      /* here i is the Huffman code of length k bits for value *p */
-      /* make tables up to required level */
-      while (k > w + l)
-      {
-        h++;
-        w += l;                 /* previous table always l bits */
-
-        /* compute minimum size table less than or equal to l bits */
-        z = (z = g - w) > (uInt)l ? l : z;      /* table size upper limit */
-        if ((f = 1 << (j = k - w)) > a + 1)     /* try a k-w bit table */
-        {                       /* too few codes for k-w bit table */
-          f -= a + 1;           /* deduct codes from patterns left */
-          xp = c + k;
-          if (j < z)
-            while (++j < z)     /* try smaller tables up to z bits */
-            {
-              if ((f <<= 1) <= *++xp)
-                break;          /* enough codes to use up j bits */
-              f -= *xp;         /* else deduct codes from patterns */
-            }
-        }
-        z = 1 << j;             /* table entries for j-bit table */
-
-        /* allocate and link in new table */
-        if ((q = (inflate_huft *)ZALLOC
-             (zs,z + 1,sizeof(inflate_huft))) == Z_NULL)
-        {
-          if (h)
-            inflate_trees_free(u[0], zs);
-          return Z_MEM_ERROR;   /* not enough memory */
-        }
-       q->word.Nalloc = z + 1;
-#ifdef DEBUG_ZLIB
-        inflate_hufts += z + 1;
-#endif
-        *t = q + 1;             /* link to list for huft_free() */
-        *(t = &(q->next)) = Z_NULL;
-        u[h] = ++q;             /* table starts after link */
-
-        /* connect to last table, if there is one */
-        if (h)
-        {
-          x[h] = i;             /* save pattern for backing up */
-          r.bits = (Byte)l;     /* bits to dump before this table */
-          r.exop = (Byte)j;     /* bits in this table */
-          r.next = q;           /* pointer to this table */
-          j = i >> (w - l);     /* (get around Turbo C bug) */
-          u[h-1][j] = r;        /* connect to last table */
-        }
-      }
-
-      /* set up table entry in r */
-      r.bits = (Byte)(k - w);
-      if (p >= v + n)
-        r.exop = 128 + 64;      /* out of values--invalid code */
-      else if (*p < s)
-      {
-        r.exop = (Byte)(*p < 256 ? 0 : 32 + 64);     /* 256 is end-of-block */
-        r.base = *p++;          /* simple code is just the value */
-      }
-      else
-      {
-        r.exop = (Byte)e[*p - s] + 16 + 64; /* non-simple--look up in lists */
-        r.base = d[*p++ - s];
-      }
-
-      /* fill code-like entries with r */
-      f = 1 << (k - w);
-      for (j = i >> w; j < z; j += f)
-        q[j] = r;
-
-      /* backwards increment the k-bit code i */
-      for (j = 1 << (k - 1); i & j; j >>= 1)
-        i ^= j;
-      i ^= j;
-
-      /* backup over finished tables */
-      while ((i & ((1 << w) - 1)) != x[h])
-      {
-        h--;                    /* don't need to update q */
-        w -= l;
-      }
-    }
-  }
-
-
-  /* Return Z_BUF_ERROR if we were given an incomplete table */
-  return y != 0 && g != 1 ? Z_BUF_ERROR : Z_OK;
-}
-
-
-local int inflate_trees_bits(
-       uIntf *c,               /* 19 code lengths */
-       uIntf *bb,              /* bits tree desired/actual depth */
-       inflate_huft * FAR *tb, /* bits tree result */
-       z_stream *z             /* for zfree function */
-)
-{
-  int r;
-
-  r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, tb, bb, z);
-  if (r == Z_DATA_ERROR)
-    z->msg = "oversubscribed dynamic bit lengths tree";
-  else if (r == Z_BUF_ERROR)
-  {
-    inflate_trees_free(*tb, z);
-    z->msg = "incomplete dynamic bit lengths tree";
-    r = Z_DATA_ERROR;
-  }
-  return r;
-}
-
-
-local int inflate_trees_dynamic(
-       uInt nl,                /* number of literal/length codes */
-       uInt nd,                /* number of distance codes */
-       uIntf *c,               /* that many (total) code lengths */
-       uIntf *bl,              /* literal desired/actual bit depth */
-       uIntf *bd,              /* distance desired/actual bit depth */
-       inflate_huft * FAR *tl, /* literal/length tree result */
-       inflate_huft * FAR *td, /* distance tree result */
-       z_stream *z             /* for zfree function */
-)
-{
-  int r;
-
-  /* build literal/length tree */
-  if ((r = huft_build(c, nl, 257, cplens, cplext, tl, bl, z)) != Z_OK)
-  {
-    if (r == Z_DATA_ERROR)
-      z->msg = "oversubscribed literal/length tree";
-    else if (r == Z_BUF_ERROR)
-    {
-      inflate_trees_free(*tl, z);
-      z->msg = "incomplete literal/length tree";
-      r = Z_DATA_ERROR;
-    }
-    return r;
-  }
-
-  /* build distance tree */
-  if ((r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, z)) != Z_OK)
-  {
-    if (r == Z_DATA_ERROR)
-      z->msg = "oversubscribed literal/length tree";
-    else if (r == Z_BUF_ERROR) {
-#ifdef PKZIP_BUG_WORKAROUND
-      r = Z_OK;
-    }
-#else
-      inflate_trees_free(*td, z);
-      z->msg = "incomplete literal/length tree";
-      r = Z_DATA_ERROR;
-    }
-    inflate_trees_free(*tl, z);
-    return r;
-#endif
-  }
-
-  /* done */
-  return Z_OK;
-}
-
-
-/* build fixed tables only once--keep them here */
-local int fixed_lock = 0;
-local int fixed_built = 0;
-#define FIXEDH 530      /* number of hufts used by fixed tables */
-local uInt fixed_left = FIXEDH;
-local inflate_huft fixed_mem[FIXEDH];
-local uInt fixed_bl;
-local uInt fixed_bd;
-local inflate_huft *fixed_tl;
-local inflate_huft *fixed_td;
-
-
-local voidpf falloc(q, n, s)
-voidpf q;        /* opaque pointer (not used) */
-uInt n;         /* number of items */
-uInt s;         /* size of item */
-{
-  Assert(s == sizeof(inflate_huft) && n <= fixed_left,
-         "inflate_trees falloc overflow");
-  if (q) s++; /* to make some compilers happy */
-  fixed_left -= n;
-  return (voidpf)(fixed_mem + fixed_left);
-}
-
-
-local void ffree(q, p, n)
-voidpf q;
-voidpf p;
-uInt n;
-{
-  Assert(0, "inflate_trees ffree called!");
-  if (q) q = p; /* to make some compilers happy */
-}
-
-
-local int inflate_trees_fixed(
-       uIntf *bl,               /* literal desired/actual bit depth */
-       uIntf *bd,               /* distance desired/actual bit depth */
-       inflate_huft * FAR *tl,  /* literal/length tree result */
-       inflate_huft * FAR *td   /* distance tree result */
-)
-{
-  /* build fixed tables if not built already--lock out other instances */
-  while (++fixed_lock > 1)
-    fixed_lock--;
-  if (!fixed_built)
-  {
-    int k;              /* temporary variable */
-    unsigned c[288];    /* length list for huft_build */
-    z_stream z;         /* for falloc function */
-
-    /* set up fake z_stream for memory routines */
-    z.zalloc = falloc;
-    z.zfree = ffree;
-    z.opaque = Z_NULL;
-
-    /* literal table */
-    for (k = 0; k < 144; k++)
-      c[k] = 8;
-    for (; k < 256; k++)
-      c[k] = 9;
-    for (; k < 280; k++)
-      c[k] = 7;
-    for (; k < 288; k++)
-      c[k] = 8;
-    fixed_bl = 7;
-    huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl, &z);
-
-    /* distance table */
-    for (k = 0; k < 30; k++)
-      c[k] = 5;
-    fixed_bd = 5;
-    huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd, &z);
-
-    /* done */
-    fixed_built = 1;
-  }
-  fixed_lock--;
-  *bl = fixed_bl;
-  *bd = fixed_bd;
-  *tl = fixed_tl;
-  *td = fixed_td;
-  return Z_OK;
-}
-
-
-local int inflate_trees_free(
-       inflate_huft *t,        /* table to free */
-       z_stream *z             /* for zfree function */
-)
-/* Free the malloc'ed tables built by huft_build(), which makes a linked
-   list of the tables it made, with the links in a dummy first entry of
-   each table. */
-{
-  register inflate_huft *p, *q;
-
-  /* Go through linked list, freeing from the malloced (t[-1]) address. */
-  p = t;
-  while (p != Z_NULL)
-  {
-    q = (--p)->next;
-    ZFREE(z, p, p->word.Nalloc * sizeof(inflate_huft));
-    p = q;
-  }
-  return Z_OK;
-}
-
-/*+++++*/
-/* infcodes.c -- process literals and length/distance pairs
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* inflate codes private state */
-struct inflate_codes_state {
-
-  /* mode */
-  enum {        /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
-      START,    /* x: set up for LEN */
-      LEN,      /* i: get length/literal/eob next */
-      LENEXT,   /* i: getting length extra (have base) */
-      DIST,     /* i: get distance next */
-      DISTEXT,  /* i: getting distance extra */
-      COPY,     /* o: copying bytes in window, waiting for space */
-      LIT,      /* o: got literal, waiting for output space */
-      WASH,     /* o: got eob, possibly still output waiting */
-      END,      /* x: got eob and all data flushed */
-      BADCODE}  /* x: got error */
-    mode;               /* current inflate_codes mode */
-
-  /* mode dependent information */
-  uInt len;
-  union {
-    struct {
-      inflate_huft *tree;       /* pointer into tree */
-      uInt need;                /* bits needed */
-    } code;             /* if LEN or DIST, where in tree */
-    uInt lit;           /* if LIT, literal */
-    struct {
-      uInt get;                 /* bits to get for extra */
-      uInt dist;                /* distance back to copy from */
-    } copy;             /* if EXT or COPY, where and how much */
-  } sub;                /* submode */
-
-  /* mode independent information */
-  Byte lbits;           /* ltree bits decoded per branch */
-  Byte dbits;           /* dtree bits decoder per branch */
-  inflate_huft *ltree;          /* literal/length/eob tree */
-  inflate_huft *dtree;          /* distance tree */
-
-};
-
-
-local inflate_codes_statef *inflate_codes_new(
-       uInt bl,
-       uInt bd,
-       inflate_huft *tl,
-       inflate_huft *td,
-       z_stream *z
-)
-{
-  inflate_codes_statef *c;
-
-  if ((c = (inflate_codes_statef *)
-       ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL)
-  {
-    c->mode = START;
-    c->lbits = (Byte)bl;
-    c->dbits = (Byte)bd;
-    c->ltree = tl;
-    c->dtree = td;
-    Tracev((stderr, "inflate:       codes new\n"));
-  }
-  return c;
-}
-
-
-local int inflate_codes(
-       inflate_blocks_statef *s,
-       z_stream *z,
-       int r
-)
-{
-  uInt j;               /* temporary storage */
-  inflate_huft *t;      /* temporary pointer */
-  uInt e;               /* extra bits or operation */
-  uLong b;              /* bit buffer */
-  uInt k;               /* bits in bit buffer */
-  Bytef *p;             /* input data pointer */
-  uInt n;               /* bytes available there */
-  Bytef *q;             /* output window write pointer */
-  uInt m;               /* bytes to end of window or read pointer */
-  Bytef *f;             /* pointer to copy strings from */
-  inflate_codes_statef *c = s->sub.decode.codes;  /* codes state */
-
-  /* copy input/output information to locals (UPDATE macro restores) */
-  LOAD
-
-  /* process input and output based on current state */
-  while (1) switch (c->mode)
-  {             /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
-    case START:         /* x: set up for LEN */
-#ifndef SLOW
-      if (m >= 258 && n >= 10)
-      {
-        UPDATE
-        r = inflate_fast(c->lbits, c->dbits, c->ltree, c->dtree, s, z);
-        LOAD
-        if (r != Z_OK)
-        {
-          c->mode = r == Z_STREAM_END ? WASH : BADCODE;
-          break;
-        }
-      }
-#endif /* !SLOW */
-      c->sub.code.need = c->lbits;
-      c->sub.code.tree = c->ltree;
-      c->mode = LEN;
-    case LEN:           /* i: get length/literal/eob next */
-      j = c->sub.code.need;
-      NEEDBITS(j)
-      t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
-      DUMPBITS(t->bits)
-      e = (uInt)(t->exop);
-      if (e == 0)               /* literal */
-      {
-        c->sub.lit = t->base;
-        Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
-                 "inflate:         literal '%c'\n" :
-                 "inflate:         literal 0x%02x\n", t->base));
-        c->mode = LIT;
-        break;
-      }
-      if (e & 16)               /* length */
-      {
-        c->sub.copy.get = e & 15;
-        c->len = t->base;
-        c->mode = LENEXT;
-        break;
-      }
-      if ((e & 64) == 0)        /* next table */
-      {
-        c->sub.code.need = e;
-        c->sub.code.tree = t->next;
-        break;
-      }
-      if (e & 32)               /* end of block */
-      {
-        Tracevv((stderr, "inflate:         end of block\n"));
-        c->mode = WASH;
-        break;
-      }
-      c->mode = BADCODE;        /* invalid code */
-      z->msg = "invalid literal/length code";
-      r = Z_DATA_ERROR;
-      LEAVE
-    case LENEXT:        /* i: getting length extra (have base) */
-      j = c->sub.copy.get;
-      NEEDBITS(j)
-      c->len += (uInt)b & inflate_mask[j];
-      DUMPBITS(j)
-      c->sub.code.need = c->dbits;
-      c->sub.code.tree = c->dtree;
-      Tracevv((stderr, "inflate:         length %u\n", c->len));
-      c->mode = DIST;
-    case DIST:          /* i: get distance next */
-      j = c->sub.code.need;
-      NEEDBITS(j)
-      t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
-      DUMPBITS(t->bits)
-      e = (uInt)(t->exop);
-      if (e & 16)               /* distance */
-      {
-        c->sub.copy.get = e & 15;
-        c->sub.copy.dist = t->base;
-        c->mode = DISTEXT;
-        break;
-      }
-      if ((e & 64) == 0)        /* next table */
-      {
-        c->sub.code.need = e;
-        c->sub.code.tree = t->next;
-        break;
-      }
-      c->mode = BADCODE;        /* invalid code */
-      z->msg = "invalid distance code";
-      r = Z_DATA_ERROR;
-      LEAVE
-    case DISTEXT:       /* i: getting distance extra */
-      j = c->sub.copy.get;
-      NEEDBITS(j)
-      c->sub.copy.dist += (uInt)b & inflate_mask[j];
-      DUMPBITS(j)
-      Tracevv((stderr, "inflate:         distance %u\n", c->sub.copy.dist));
-      c->mode = COPY;
-    case COPY:          /* o: copying bytes in window, waiting for space */
-#ifndef __TURBOC__ /* Turbo C bug for following expression */
-      f = (uInt)(q - s->window) < c->sub.copy.dist ?
-          s->end - (c->sub.copy.dist - (q - s->window)) :
-          q - c->sub.copy.dist;
-#else
-      f = q - c->sub.copy.dist;
-      if ((uInt)(q - s->window) < c->sub.copy.dist)
-        f = s->end - (c->sub.copy.dist - (q - s->window));
-#endif
-      while (c->len)
-      {
-        NEEDOUT
-        OUTBYTE(*f++)
-        if (f == s->end)
-          f = s->window;
-        c->len--;
-      }
-      c->mode = START;
-      break;
-    case LIT:           /* o: got literal, waiting for output space */
-      NEEDOUT
-      OUTBYTE(c->sub.lit)
-      c->mode = START;
-      break;
-    case WASH:          /* o: got eob, possibly more output */
-      FLUSH
-      if (s->read != s->write)
-        LEAVE
-      c->mode = END;
-    case END:
-      r = Z_STREAM_END;
-      LEAVE
-    case BADCODE:       /* x: got error */
-      r = Z_DATA_ERROR;
-      LEAVE
-    default:
-      r = Z_STREAM_ERROR;
-      LEAVE
-  }
-}
-
-
-local void inflate_codes_free(
-       inflate_codes_statef *c,
-       z_stream *z
-)
-{
-  ZFREE(z, c, sizeof(struct inflate_codes_state));
-  Tracev((stderr, "inflate:       codes free\n"));
-}
-
-/*+++++*/
-/* inflate_util.c -- data and routines common to blocks and codes
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* copy as much as possible from the sliding window to the output area */
-local int inflate_flush(
-       inflate_blocks_statef *s,
-       z_stream *z,
-       int r
-)
-{
-  uInt n;
-  Bytef *p, *q;
-
-  /* local copies of source and destination pointers */
-  p = z->next_out;
-  q = s->read;
-
-  /* compute number of bytes to copy as far as end of window */
-  n = (uInt)((q <= s->write ? s->write : s->end) - q);
-  if (n > z->avail_out) n = z->avail_out;
-  if (n && r == Z_BUF_ERROR) r = Z_OK;
-
-  /* update counters */
-  z->avail_out -= n;
-  z->total_out += n;
-
-  /* update check information */
-  if (s->checkfn != Z_NULL)
-    s->check = (*s->checkfn)(s->check, q, n);
-
-  /* copy as far as end of window */
-  zmemcpy(p, q, n);
-  p += n;
-  q += n;
-
-  /* see if more to copy at beginning of window */
-  if (q == s->end)
-  {
-    /* wrap pointers */
-    q = s->window;
-    if (s->write == s->end)
-      s->write = s->window;
-
-    /* compute bytes to copy */
-    n = (uInt)(s->write - q);
-    if (n > z->avail_out) n = z->avail_out;
-    if (n && r == Z_BUF_ERROR) r = Z_OK;
-
-    /* update counters */
-    z->avail_out -= n;
-    z->total_out += n;
-
-    /* update check information */
-    if (s->checkfn != Z_NULL)
-      s->check = (*s->checkfn)(s->check, q, n);
-
-    /* copy */
-    zmemcpy(p, q, n);
-    p += n;
-    q += n;
-  }
-
-  /* update pointers */
-  z->next_out = p;
-  s->read = q;
-
-  /* done */
-  return r;
-}
-
-
-/*+++++*/
-/* inffast.c -- process literals and length/distance pairs fast
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define base more.Base
-#define next more.Next
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* macros for bit input with no checking and for returning unused bytes */
-#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define UNGRAB {n+=(c=k>>3);p-=c;k&=7;}
-
-/* Called with number of bytes left to write in window at least 258
-   (the maximum string length) and number of input bytes available
-   at least ten.  The ten bytes are six bytes for the longest length/
-   distance pair plus four bytes for overloading the bit buffer. */
-
-local int inflate_fast(
-       uInt bl,
-       uInt bd,
-       inflate_huft *tl,
-       inflate_huft *td,
-       inflate_blocks_statef *s,
-       z_stream *z
-)
-{
-  inflate_huft *t;      /* temporary pointer */
-  uInt e;               /* extra bits or operation */
-  uLong b;              /* bit buffer */
-  uInt k;               /* bits in bit buffer */
-  Bytef *p;             /* input data pointer */
-  uInt n;               /* bytes available there */
-  Bytef *q;             /* output window write pointer */
-  uInt m;               /* bytes to end of window or read pointer */
-  uInt ml;              /* mask for literal/length tree */
-  uInt md;              /* mask for distance tree */
-  uInt c;               /* bytes to copy */
-  uInt d;               /* distance back to copy from */
-  Bytef *r;             /* copy source pointer */
-
-  /* load input, output, bit values */
-  LOAD
-
-  /* initialize masks */
-  ml = inflate_mask[bl];
-  md = inflate_mask[bd];
-
-  /* do until not enough input or output space for fast loop */
-  do {                          /* assume called with m >= 258 && n >= 10 */
-    /* get literal/length code */
-    GRABBITS(20)                /* max bits for literal/length code */
-    if ((e = (t = tl + ((uInt)b & ml))->exop) == 0)
-    {
-      DUMPBITS(t->bits)
-      Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
-                "inflate:         * literal '%c'\n" :
-                "inflate:         * literal 0x%02x\n", t->base));
-      *q++ = (Byte)t->base;
-      m--;
-      continue;
-    }
-    do {
-      DUMPBITS(t->bits)
-      if (e & 16)
-      {
-        /* get extra bits for length */
-        e &= 15;
-        c = t->base + ((uInt)b & inflate_mask[e]);
-        DUMPBITS(e)
-        Tracevv((stderr, "inflate:         * length %u\n", c));
-
-        /* decode distance base of block to copy */
-        GRABBITS(15);           /* max bits for distance code */
-        e = (t = td + ((uInt)b & md))->exop;
-        do {
-          DUMPBITS(t->bits)
-          if (e & 16)
-          {
-            /* get extra bits to add to distance base */
-            e &= 15;
-            GRABBITS(e)         /* get extra bits (up to 13) */
-            d = t->base + ((uInt)b & inflate_mask[e]);
-            DUMPBITS(e)
-            Tracevv((stderr, "inflate:         * distance %u\n", d));
-
-            /* do the copy */
-            m -= c;
-            if ((uInt)(q - s->window) >= d)     /* offset before dest */
-            {                                   /*  just copy */
-              r = q - d;
-              *q++ = *r++;  c--;        /* minimum count is three, */
-              *q++ = *r++;  c--;        /*  so unroll loop a little */
-            }
-            else                        /* else offset after destination */
-            {
-              e = d - (q - s->window);  /* bytes from offset to end */
-              r = s->end - e;           /* pointer to offset */
-              if (c > e)                /* if source crosses, */
-              {
-                c -= e;                 /* copy to end of window */
-                do {
-                  *q++ = *r++;
-                } while (--e);
-                r = s->window;          /* copy rest from start of window */
-              }
-            }
-            do {                        /* copy all or what's left */
-              *q++ = *r++;
-            } while (--c);
-            break;
-          }
-          else if ((e & 64) == 0)
-            e = (t = t->next + ((uInt)b & inflate_mask[e]))->exop;
-          else
-          {
-            z->msg = "invalid distance code";
-            UNGRAB
-            UPDATE
-            return Z_DATA_ERROR;
-          }
-        } while (1);
-        break;
-      }
-      if ((e & 64) == 0)
-      {
-        if ((e = (t = t->next + ((uInt)b & inflate_mask[e]))->exop) == 0)
-        {
-          DUMPBITS(t->bits)
-          Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
-                    "inflate:         * literal '%c'\n" :
-                    "inflate:         * literal 0x%02x\n", t->base));
-          *q++ = (Byte)t->base;
-          m--;
-          break;
-        }
-      }
-      else if (e & 32)
-      {
-        Tracevv((stderr, "inflate:         * end of block\n"));
-        UNGRAB
-        UPDATE
-        return Z_STREAM_END;
-      }
-      else
-      {
-        z->msg = "invalid literal/length code";
-        UNGRAB
-        UPDATE
-        return Z_DATA_ERROR;
-      }
-    } while (1);
-  } while (m >= 258 && n >= 10);
-
-  /* not enough input or output--restore pointers and return */
-  UNGRAB
-  UPDATE
-  return Z_OK;
-}
-
-
-/*+++++*/
-/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: zutil.c,v 1.8 1995/05/03 17:27:12 jloup Exp */
-
-char *zlib_version = ZLIB_VERSION;
-
-char *z_errmsg[] = {
-"stream end",          /* Z_STREAM_END    1 */
-"",                    /* Z_OK            0 */
-"file error",          /* Z_ERRNO        (-1) */
-"stream error",        /* Z_STREAM_ERROR (-2) */
-"data error",          /* Z_DATA_ERROR   (-3) */
-"insufficient memory", /* Z_MEM_ERROR    (-4) */
-"buffer error",        /* Z_BUF_ERROR    (-5) */
-""};
-
-
-/*+++++*/
-/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* From: adler32.c,v 1.6 1995/05/03 17:27:08 jloup Exp */
-
-#define BASE 65521L /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf)  {s1 += *buf++; s2 += s1;}
-#define DO2(buf)  DO1(buf); DO1(buf);
-#define DO4(buf)  DO2(buf); DO2(buf);
-#define DO8(buf)  DO4(buf); DO4(buf);
-#define DO16(buf) DO8(buf); DO8(buf);
-
-/* ========================================================================= */
-uLong adler32(adler, buf, len)
-    uLong adler;
-    Bytef *buf;
-    uInt len;
-{
-    unsigned long s1 = adler & 0xffff;
-    unsigned long s2 = (adler >> 16) & 0xffff;
-    int k;
-
-    if (buf == Z_NULL) return 1L;
-
-    while (len > 0) {
-        k = len < NMAX ? len : NMAX;
-        len -= k;
-        while (k >= 16) {
-            DO16(buf);
-            k -= 16;
-        }
-        if (k != 0) do {
-            DO1(buf);
-        } while (--k);
-        s1 %= BASE;
-        s2 %= BASE;
-    }
-    return (s2 << 16) | s1;
-}
diff --git a/arch/ppc/boot/simple/chrpmap.S b/arch/ppc/boot/simple/chrpmap.S
deleted file mode 100644 (file)
index 7aba1c0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/ppc/boot/simple/chrpmap.S
- *
- * Author: Tom Rini <trini@mvista.com>
- *
- * This will go and setup ISA_io to 0xFE00000 and return.
- */
-
-#include <asm/ppc_asm.h>
-
-       .text
-
-       .globl serial_fixups
-serial_fixups:
-       lis     r3,ISA_io@h     /* Load ISA_io */
-       ori     r3,r3,ISA_io@l
-       lis     r4,0xFE00       /* Load the value, 0xFE00000 */
-       stw     r4,0(r3)        /* store */
-       blr
diff --git a/arch/ppc/boot/simple/legacy.S b/arch/ppc/boot/simple/legacy.S
deleted file mode 100644 (file)
index 1c7e297..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/ppc/boot/simple/legacy.S
- *
- * Author: Tom Rini <trini@mvista.com>
- *
- * This will go and setup ISA_io to 0x8000000 and return.
- */
-
-#include <asm/ppc_asm.h>
-
-       .text
-
-       .globl serial_fixups
-serial_fixups:
-       lis     r3,ISA_io@h     /* Load ISA_io */
-       ori     r3,r3,ISA_io@l
-       lis     r4,0x8000       /* Load the value, 0x8000000 */
-       stw     r4,0(r3)        /* store */
-       blr
diff --git a/arch/ppc/boot/simple/misc-chestnut.S b/arch/ppc/boot/simple/misc-chestnut.S
deleted file mode 100644 (file)
index f75c06c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * arch/ppc/boot/simple/misc-chestnut.S
- *
- * Setup for the IBM Chestnut (ibm-750fxgx_eval)
- *
- * Author: <source@mvista.com>
- *
- * <2004> (c) MontaVista Software, Inc. This file is licensed under
- * the terms of the GNU General Public License version 2. This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-
-#include <asm/ppc_asm.h>
-#include <asm/mv64x60_defs.h>
-#include <platforms/chestnut.h>
-
-       .globl  mv64x60_board_init
-mv64x60_board_init:
-       /*
-        * move UART to 0xffc00000
-        */
-
-       li      r23,16
-
-       addis   r25,0,CONFIG_MV64X60_BASE@h
-       ori     r25,r25,MV64x60_CPU2DEV_2_BASE
-       addis   r26,0,CHESTNUT_UART_BASE@h
-       srw     r26,r26,r23
-       stwbrx  r26,0,(r25)
-       sync
-
-       addis   r25,0,CONFIG_MV64X60_BASE@h
-       ori     r25,r25,MV64x60_CPU2DEV_2_SIZE
-       addis   r26,0,0x00100000@h
-       srw     r26,r26,r23
-       stwbrx  r26,0,(r25)
-       sync
-
-       blr
diff --git a/arch/ppc/kernel/machine_kexec.c b/arch/ppc/kernel/machine_kexec.c
deleted file mode 100644 (file)
index caac3d4..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * machine_kexec.c - handle transition of Linux booting another kernel
- * Copyright (C) 2002-2003 Eric Biederman  <ebiederm@xmission.com>
- *
- * GameCube/ppc32 port Copyright (C) 2004 Albert Herranz
- *
- * This source code is licensed under the GNU General Public License,
- * Version 2.  See the file COPYING for more details.
- */
-
-#include <linux/mm.h>
-#include <linux/kexec.h>
-#include <linux/delay.h>
-#include <linux/reboot.h>
-#include <asm/pgtable.h>
-#include <asm/pgalloc.h>
-#include <asm/mmu_context.h>
-#include <asm/io.h>
-#include <asm/hw_irq.h>
-#include <asm/cacheflush.h>
-#include <asm/machdep.h>
-
-typedef void (*relocate_new_kernel_t)(
-       unsigned long indirection_page, unsigned long reboot_code_buffer,
-       unsigned long start_address);
-
-const extern unsigned char relocate_new_kernel[];
-const extern unsigned int relocate_new_kernel_size;
-
-void machine_shutdown(void)
-{
-       if (ppc_md.machine_shutdown) {
-               ppc_md.machine_shutdown();
-       }
-}
-
-/*
- * Do what every setup is needed on image and the
- * reboot code buffer to allow us to avoid allocations
- * later.
- */
-int machine_kexec_prepare(struct kimage *image)
-{
-       if (ppc_md.machine_kexec_prepare) {
-               return ppc_md.machine_kexec_prepare(image);
-       }
-       /*
-        * Fail if platform doesn't provide its own machine_kexec_prepare
-        * implementation.
-        */
-       return -ENOSYS;
-}
-
-void machine_kexec_cleanup(struct kimage *image)
-{
-       if (ppc_md.machine_kexec_cleanup) {
-               ppc_md.machine_kexec_cleanup(image);
-       }
-}
-
-/*
- * Do not allocate memory (or fail in any way) in machine_kexec().
- * We are past the point of no return, committed to rebooting now.
- */
-void machine_kexec(struct kimage *image)
-{
-       if (ppc_md.machine_kexec) {
-               ppc_md.machine_kexec(image);
-       } else {
-               /*
-                * Fall back to normal restart if platform doesn't provide
-                * its own kexec function, and user insist to kexec...
-                */
-               machine_restart(NULL);
-       }
-}
-
-
-/*
- * This is a generic machine_kexec function suitable at least for
- * non-OpenFirmware embedded platforms.
- * It merely copies the image relocation code to the control page and
- * jumps to it.
- * A platform specific function may just call this one.
- */
-void machine_kexec_simple(struct kimage *image)
-{
-       unsigned long indirection_page;
-       unsigned long reboot_code_buffer, reboot_code_buffer_phys;
-       relocate_new_kernel_t rnk;
-
-       /* Interrupts aren't acceptable while we reboot */
-       local_irq_disable();
-
-       indirection_page = image->head & PAGE_MASK;
-
-       /* we need both effective and real address here */
-       reboot_code_buffer =
-               (unsigned long)page_address(image->control_code_page);
-       reboot_code_buffer_phys = virt_to_phys((void *)reboot_code_buffer);
-
-       /* copy our kernel relocation code to the control code page */
-       memcpy((void *)reboot_code_buffer,
-               relocate_new_kernel, relocate_new_kernel_size);
-
-       flush_icache_range(reboot_code_buffer,
-               reboot_code_buffer + KEXEC_CONTROL_CODE_SIZE);
-       printk(KERN_INFO "Bye!\n");
-
-       /* now call it */
-       rnk = (relocate_new_kernel_t) reboot_code_buffer;
-       (*rnk)(indirection_page, reboot_code_buffer_phys, image->start);
-}
-
diff --git a/arch/ppc/kernel/relocate_kernel.S b/arch/ppc/kernel/relocate_kernel.S
deleted file mode 100644 (file)
index e170b13..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * relocate_kernel.S - put the kernel image in place to boot
- * Copyright (C) 2002-2003 Eric Biederman  <ebiederm@xmission.com>
- *
- * GameCube/ppc32 port Copyright (C) 2004 Albert Herranz
- *
- * This source code is licensed under the GNU General Public License,
- * Version 2.  See the file COPYING for more details.
- */
-
-#include <asm/reg.h>
-#include <asm/ppc_asm.h>
-#include <asm/processor.h>
-
-#include <asm/kexec.h>
-
-#define PAGE_SIZE      4096 /* must be same value as in <asm/page.h> */
-
-/* returns  r3 = relocated address of sym */
-/* modifies r0 */
-#define RELOC_SYM(sym) \
-       mflr    r3; \
-       bl      1f; \
-1:     mflr    r0; \
-       mtlr    r3; \
-       lis     r3, 1b@ha; \
-       ori     r3, r3, 1b@l; \
-       subf    r0, r3, r0; \
-       lis     r3, sym@ha; \
-       ori     r3, r3, sym@l; \
-       add     r3, r3, r0
-
-       /*
-        * Must be relocatable PIC code callable as a C function.
-        */
-       .globl relocate_new_kernel
-relocate_new_kernel:
-       /* r3 = indirection_page   */
-       /* r4 = reboot_code_buffer */
-       /* r5 = start_address      */
-
-       li      r0, 0
-
-       /*
-        * Set Machine Status Register to a known status,
-        * switch the MMU off and jump to 1: in a single step.
-        */
-
-       mr      r8, r0
-       ori     r8, r8, MSR_RI|MSR_ME
-       mtspr   SRR1, r8
-       addi    r8, r4, 1f - relocate_new_kernel
-       mtspr   SRR0, r8
-       sync
-       rfi
-
-1:
-       /* from this point address translation is turned off */
-       /* and interrupts are disabled */
-
-       /* set a new stack at the bottom of our page... */
-       /* (not really needed now) */
-       addi    r1, r4, KEXEC_CONTROL_CODE_SIZE - 8 /* for LR Save+Back Chain */
-       stw     r0, 0(r1)
-
-       /* Do the copies */
-       li      r6, 0 /* checksum */
-       subi    r3, r3, 4
-
-0:     /* top, read another word for the indirection page */
-       lwzu    r0, 4(r3)
-
-       /* is it a destination page? (r8) */
-       rlwinm. r7, r0, 0, 31, 31 /* IND_DESTINATION (1<<0) */
-       beq     1f
-
-       rlwinm  r8, r0, 0, 0, 19 /* clear kexec flags, page align */
-       b       0b
-
-1:     /* is it an indirection page? (r3) */
-       rlwinm. r7, r0, 0, 30, 30 /* IND_INDIRECTION (1<<1) */
-       beq     1f
-
-       rlwinm  r3, r0, 0, 0, 19 /* clear kexec flags, page align */
-       subi    r3, r3, 4
-       b       0b
-
-1:     /* are we done? */
-       rlwinm. r7, r0, 0, 29, 29 /* IND_DONE (1<<2) */
-       beq     1f
-       b       2f
-
-1:     /* is it a source page? (r9) */
-       rlwinm. r7, r0, 0, 28, 28 /* IND_SOURCE (1<<3) */
-       beq     0b
-
-       rlwinm  r9, r0, 0, 0, 19 /* clear kexec flags, page align */
-
-       li      r7, PAGE_SIZE / 4
-       mtctr   r7
-       subi    r9, r9, 4
-       subi    r8, r8, 4
-9:
-       lwzu    r0, 4(r9)  /* do the copy */
-       xor     r6, r6, r0
-       stwu    r0, 4(r8)
-       dcbst   0, r8
-       sync
-       icbi    0, r8
-       bdnz    9b
-
-       addi    r9, r9, 4
-       addi    r8, r8, 4
-       b       0b
-
-2:
-
-       /* To be certain of avoiding problems with self-modifying code
-        * execute a serializing instruction here.
-        */
-       isync
-       sync
-
-       /* jump to the entry point, usually the setup routine */
-       mtlr    r5
-       blrl
-
-1:     b       1b
-
-relocate_new_kernel_end:
-
-       .globl relocate_new_kernel_size
-relocate_new_kernel_size:
-       .long relocate_new_kernel_end - relocate_new_kernel
-
diff --git a/arch/ppc/platforms/85xx/mpc85xx_devices.c b/arch/ppc/platforms/85xx/mpc85xx_devices.c
deleted file mode 100644 (file)
index a231795..0000000
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * arch/ppc/platforms/85xx/mpc85xx_devices.c
- *
- * MPC85xx Device descriptions
- *
- * Maintainer: Kumar Gala <kumar.gala@freescale.com>
- *
- * Copyright 2005 Freescale Semiconductor Inc.
- *
- * 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;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <linux/serial_8250.h>
-#include <linux/fsl_devices.h>
-#include <asm/mpc85xx.h>
-#include <asm/irq.h>
-#include <asm/ppc_sys.h>
-
-/* We use offsets for IORESOURCE_MEM since we do not know at compile time
- * what CCSRBAR is, will get fixed up by mach_mpc85xx_fixup
- */
-
-static struct gianfar_platform_data mpc85xx_tsec1_pdata = {
-       .device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
-           FSL_GIANFAR_DEV_HAS_COALESCE | FSL_GIANFAR_DEV_HAS_RMON |
-           FSL_GIANFAR_DEV_HAS_MULTI_INTR,
-       .phy_reg_addr = MPC85xx_ENET1_OFFSET,
-};
-
-static struct gianfar_platform_data mpc85xx_tsec2_pdata = {
-       .device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
-           FSL_GIANFAR_DEV_HAS_COALESCE | FSL_GIANFAR_DEV_HAS_RMON |
-           FSL_GIANFAR_DEV_HAS_MULTI_INTR,
-       .phy_reg_addr = MPC85xx_ENET1_OFFSET,
-};
-
-static struct gianfar_platform_data mpc85xx_fec_pdata = {
-       .phy_reg_addr = MPC85xx_ENET1_OFFSET,
-};
-
-static struct fsl_i2c_platform_data mpc85xx_fsl_i2c_pdata = {
-       .device_flags = FSL_I2C_DEV_SEPARATE_DFSRR,
-};
-
-static struct plat_serial8250_port serial_platform_data[] = {
-       [0] = {
-               .mapbase        = 0x4500,
-               .irq            = MPC85xx_IRQ_DUART,
-               .iotype         = UPIO_MEM,
-               .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ,
-       },
-       [1] = {
-               .mapbase        = 0x4600,
-               .irq            = MPC85xx_IRQ_DUART,
-               .iotype         = UPIO_MEM,
-               .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ,
-       },
-};
-
-struct platform_device ppc_sys_platform_devices[] = {
-       [MPC85xx_TSEC1] = {
-               .name = "fsl-gianfar",
-               .id     = 1,
-               .dev.platform_data = &mpc85xx_tsec1_pdata,
-               .num_resources   = 4,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_ENET1_OFFSET,
-                               .end    = MPC85xx_ENET1_OFFSET +
-                                               MPC85xx_ENET1_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .name   = "tx",
-                               .start  = MPC85xx_IRQ_TSEC1_TX,
-                               .end    = MPC85xx_IRQ_TSEC1_TX,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-                       {
-                               .name   = "rx",
-                               .start  = MPC85xx_IRQ_TSEC1_RX,
-                               .end    = MPC85xx_IRQ_TSEC1_RX,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-                       {
-                               .name   = "error",
-                               .start  = MPC85xx_IRQ_TSEC1_ERROR,
-                               .end    = MPC85xx_IRQ_TSEC1_ERROR,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_TSEC2] = {
-               .name = "fsl-gianfar",
-               .id     = 2,
-               .dev.platform_data = &mpc85xx_tsec2_pdata,
-               .num_resources   = 4,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_ENET2_OFFSET,
-                               .end    = MPC85xx_ENET2_OFFSET +
-                                               MPC85xx_ENET2_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .name   = "tx",
-                               .start  = MPC85xx_IRQ_TSEC2_TX,
-                               .end    = MPC85xx_IRQ_TSEC2_TX,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-                       {
-                               .name   = "rx",
-                               .start  = MPC85xx_IRQ_TSEC2_RX,
-                               .end    = MPC85xx_IRQ_TSEC2_RX,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-                       {
-                               .name   = "error",
-                               .start  = MPC85xx_IRQ_TSEC2_ERROR,
-                               .end    = MPC85xx_IRQ_TSEC2_ERROR,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_FEC] = {
-               .name = "fsl-gianfar",
-               .id     = 3,
-               .dev.platform_data = &mpc85xx_fec_pdata,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_ENET3_OFFSET,
-                               .end    = MPC85xx_ENET3_OFFSET +
-                                               MPC85xx_ENET3_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-
-                       },
-                       {
-                               .start  = MPC85xx_IRQ_FEC,
-                               .end    = MPC85xx_IRQ_FEC,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_IIC1] = {
-               .name = "fsl-i2c",
-               .id     = 1,
-               .dev.platform_data = &mpc85xx_fsl_i2c_pdata,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_IIC1_OFFSET,
-                               .end    = MPC85xx_IIC1_OFFSET +
-                                               MPC85xx_IIC1_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = MPC85xx_IRQ_IIC1,
-                               .end    = MPC85xx_IRQ_IIC1,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_DMA0] = {
-               .name = "fsl-dma",
-               .id     = 0,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_DMA0_OFFSET,
-                               .end    = MPC85xx_DMA0_OFFSET +
-                                               MPC85xx_DMA0_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = MPC85xx_IRQ_DMA0,
-                               .end    = MPC85xx_IRQ_DMA0,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_DMA1] = {
-               .name = "fsl-dma",
-               .id     = 1,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_DMA1_OFFSET,
-                               .end    = MPC85xx_DMA1_OFFSET +
-                                               MPC85xx_DMA1_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = MPC85xx_IRQ_DMA1,
-                               .end    = MPC85xx_IRQ_DMA1,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_DMA2] = {
-               .name = "fsl-dma",
-               .id     = 2,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_DMA2_OFFSET,
-                               .end    = MPC85xx_DMA2_OFFSET +
-                                               MPC85xx_DMA2_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = MPC85xx_IRQ_DMA2,
-                               .end    = MPC85xx_IRQ_DMA2,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_DMA3] = {
-               .name = "fsl-dma",
-               .id     = 3,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_DMA3_OFFSET,
-                               .end    = MPC85xx_DMA3_OFFSET +
-                                               MPC85xx_DMA3_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = MPC85xx_IRQ_DMA3,
-                               .end    = MPC85xx_IRQ_DMA3,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_DUART] = {
-               .name = "serial8250",
-               .id     = 0,
-               .dev.platform_data = serial_platform_data,
-       },
-       [MPC85xx_PERFMON] = {
-               .name = "fsl-perfmon",
-               .id     = 1,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_PERFMON_OFFSET,
-                               .end    = MPC85xx_PERFMON_OFFSET +
-                                               MPC85xx_PERFMON_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = MPC85xx_IRQ_PERFMON,
-                               .end    = MPC85xx_IRQ_PERFMON,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_SEC2] = {
-               .name = "fsl-sec2",
-               .id     = 1,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = MPC85xx_SEC2_OFFSET,
-                               .end    = MPC85xx_SEC2_OFFSET +
-                                               MPC85xx_SEC2_SIZE - 1,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = MPC85xx_IRQ_SEC2,
-                               .end    = MPC85xx_IRQ_SEC2,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-#ifdef CONFIG_CPM2
-       [MPC85xx_CPM_FCC1] = {
-               .name = "fsl-cpm-fcc",
-               .id     = 1,
-               .num_resources   = 3,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91300,
-                               .end    = 0x9131F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = 0x91380,
-                               .end    = 0x9139F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_FCC1,
-                               .end    = SIU_INT_FCC1,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_FCC2] = {
-               .name = "fsl-cpm-fcc",
-               .id     = 2,
-               .num_resources   = 3,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91320,
-                               .end    = 0x9133F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = 0x913A0,
-                               .end    = 0x913CF,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_FCC2,
-                               .end    = SIU_INT_FCC2,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_FCC3] = {
-               .name = "fsl-cpm-fcc",
-               .id     = 3,
-               .num_resources   = 3,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91340,
-                               .end    = 0x9135F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = 0x913D0,
-                               .end    = 0x913FF,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_FCC3,
-                               .end    = SIU_INT_FCC3,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_I2C] = {
-               .name = "fsl-cpm-i2c",
-               .id     = 1,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91860,
-                               .end    = 0x918BF,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_I2C,
-                               .end    = SIU_INT_I2C,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_SCC1] = {
-               .name = "fsl-cpm-scc",
-               .id     = 1,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91A00,
-                               .end    = 0x91A1F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_SCC1,
-                               .end    = SIU_INT_SCC1,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_SCC2] = {
-               .name = "fsl-cpm-scc",
-               .id     = 2,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91A20,
-                               .end    = 0x91A3F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_SCC2,
-                               .end    = SIU_INT_SCC2,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_SCC3] = {
-               .name = "fsl-cpm-scc",
-               .id     = 3,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91A40,
-                               .end    = 0x91A5F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_SCC3,
-                               .end    = SIU_INT_SCC3,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_SCC4] = {
-               .name = "fsl-cpm-scc",
-               .id     = 4,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91A60,
-                               .end    = 0x91A7F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_SCC4,
-                               .end    = SIU_INT_SCC4,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_SPI] = {
-               .name = "fsl-cpm-spi",
-               .id     = 1,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91AA0,
-                               .end    = 0x91AFF,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_SPI,
-                               .end    = SIU_INT_SPI,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_MCC1] = {
-               .name = "fsl-cpm-mcc",
-               .id     = 1,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91B30,
-                               .end    = 0x91B3F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_MCC1,
-                               .end    = SIU_INT_MCC1,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_MCC2] = {
-               .name = "fsl-cpm-mcc",
-               .id     = 2,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91B50,
-                               .end    = 0x91B5F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_MCC2,
-                               .end    = SIU_INT_MCC2,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_SMC1] = {
-               .name = "fsl-cpm-smc",
-               .id     = 1,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91A80,
-                               .end    = 0x91A8F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_SMC1,
-                               .end    = SIU_INT_SMC1,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_SMC2] = {
-               .name = "fsl-cpm-smc",
-               .id     = 2,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91A90,
-                               .end    = 0x91A9F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_SMC2,
-                               .end    = SIU_INT_SMC2,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-       [MPC85xx_CPM_USB] = {
-               .name = "fsl-cpm-usb",
-               .id     = 2,
-               .num_resources   = 2,
-               .resource = (struct resource[]) {
-                       {
-                               .start  = 0x91B60,
-                               .end    = 0x91B7F,
-                               .flags  = IORESOURCE_MEM,
-                       },
-                       {
-                               .start  = SIU_INT_USB,
-                               .end    = SIU_INT_USB,
-                               .flags  = IORESOURCE_IRQ,
-                       },
-               },
-       },
-#endif /* CONFIG_CPM2 */
-};
-
-static int __init mach_mpc85xx_fixup(struct platform_device *pdev)
-{
-       ppc_sys_fixup_mem_resource(pdev, CCSRBAR);
-       return 0;
-}
-
-static int __init mach_mpc85xx_init(void)
-{
-       ppc_sys_device_fixup = mach_mpc85xx_fixup;
-       return 0;
-}
-
-postcore_initcall(mach_mpc85xx_init);
diff --git a/arch/ppc/platforms/85xx/mpc85xx_sys.c b/arch/ppc/platforms/85xx/mpc85xx_sys.c
deleted file mode 100644 (file)
index 9ba0255..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * arch/ppc/platforms/85xx/mpc85xx_sys.c
- *
- * MPC85xx System descriptions
- *
- * Maintainer: Kumar Gala <kumar.gala@freescale.com>
- *
- * Copyright 2005 Freescale Semiconductor Inc.
- *
- * 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;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <asm/ppc_sys.h>
-
-struct ppc_sys_spec *cur_ppc_sys_spec;
-struct ppc_sys_spec ppc_sys_specs[] = {
-       {
-               .ppc_sys_name   = "MPC8540",
-               .mask           = 0xFFFF0000,
-               .value          = 0x80300000,
-               .num_devices    = 10,
-               .device_list    = (enum ppc_sys_devices[])
-               {
-                       MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_FEC, MPC85xx_IIC1,
-                       MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
-                       MPC85xx_PERFMON, MPC85xx_DUART,
-               },
-       },
-       {
-               .ppc_sys_name   = "MPC8560",
-               .mask           = 0xFFFF0000,
-               .value          = 0x80700000,
-               .num_devices    = 19,
-               .device_list    = (enum ppc_sys_devices[])
-               {
-                       MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
-                       MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
-                       MPC85xx_PERFMON,
-                       MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
-                       MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3, MPC85xx_CPM_SCC4,
-                       MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2, MPC85xx_CPM_FCC3,
-                       MPC85xx_CPM_MCC1, MPC85xx_CPM_MCC2,
-               },
-       },
-       {
-               .ppc_sys_name   = "MPC8541",
-               .mask           = 0xFFFF0000,
-               .value          = 0x80720000,
-               .num_devices    = 13,
-               .device_list    = (enum ppc_sys_devices[])
-               {
-                       MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
-                       MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
-                       MPC85xx_PERFMON, MPC85xx_DUART,
-                       MPC85xx_CPM_SPI, MPC85xx_CPM_I2C,
-                       MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
-               },
-       },
-       {
-               .ppc_sys_name   = "MPC8541E",
-               .mask           = 0xFFFF0000,
-               .value          = 0x807A0000,
-               .num_devices    = 14,
-               .device_list    = (enum ppc_sys_devices[])
-               {
-                       MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
-                       MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
-                       MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
-                       MPC85xx_CPM_SPI, MPC85xx_CPM_I2C,
-                       MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2,
-               },
-       },
-       {
-               .ppc_sys_name   = "MPC8555",
-               .mask           = 0xFFFF0000,
-               .value          = 0x80710000,
-               .num_devices    = 20,
-               .device_list    = (enum ppc_sys_devices[])
-               {
-                       MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
-                       MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
-                       MPC85xx_PERFMON, MPC85xx_DUART,
-                       MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
-                       MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3,
-                       MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2, MPC85xx_CPM_FCC3,
-                       MPC85xx_CPM_SMC1, MPC85xx_CPM_SMC2,
-                       MPC85xx_CPM_USB,
-               },
-       },
-       {
-               .ppc_sys_name   = "MPC8555E",
-               .mask           = 0xFFFF0000,
-               .value          = 0x80790000,
-               .num_devices    = 21,
-               .device_list    = (enum ppc_sys_devices[])
-               {
-                       MPC85xx_TSEC1, MPC85xx_TSEC2, MPC85xx_IIC1,
-                       MPC85xx_DMA0, MPC85xx_DMA1, MPC85xx_DMA2, MPC85xx_DMA3,
-                       MPC85xx_PERFMON, MPC85xx_DUART, MPC85xx_SEC2,
-                       MPC85xx_CPM_SPI, MPC85xx_CPM_I2C, MPC85xx_CPM_SCC1,
-                       MPC85xx_CPM_SCC2, MPC85xx_CPM_SCC3,
-                       MPC85xx_CPM_FCC1, MPC85xx_CPM_FCC2, MPC85xx_CPM_FCC3,
-                       MPC85xx_CPM_SMC1, MPC85xx_CPM_SMC2,
-                       MPC85xx_CPM_USB,
-               },
-       },
-       {       /* default match */
-               .ppc_sys_name   = "",
-               .mask           = 0x00000000,
-               .value          = 0x00000000,
-       },
-};
diff --git a/arch/ppc/platforms/est8260_setup.c b/arch/ppc/platforms/est8260_setup.c
deleted file mode 100644 (file)
index ecd114f..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * arch/ppc/platforms/est8260_setup.c
- *
- * EST8260 platform support
- *
- * Author: Allen Curtis <acurtis@onz.com>
- * Derived from: m8260_setup.c by Dan Malek, MVista
- *
- * Copyright 2002 Ones and Zeros, Inc.
- *
- * 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;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-#include <linux/config.h>
-#include <linux/seq_file.h>
-
-#include <asm/mpc8260.h>
-#include <asm/machdep.h>
-
-static void (*callback_setup_arch)(void);
-
-extern unsigned char __res[sizeof(bd_t)];
-
-extern void m8260_init(unsigned long r3, unsigned long r4,
-       unsigned long r5, unsigned long r6, unsigned long r7);
-
-static int
-est8260_show_cpuinfo(struct seq_file *m)
-{
-       bd_t    *binfo = (bd_t *)__res;
-
-       seq_printf(m, "vendor\t\t: EST Corporation\n"
-                     "machine\t\t: SBC8260 PowerPC\n"
-                     "\n"
-                     "mem size\t\t: 0x%08x\n"
-                     "console baud\t\t: %d\n"
-                     "\n",
-                     binfo->bi_memsize,
-                     binfo->bi_baudrate);
-       return 0;
-}
-
-static void __init
-est8260_setup_arch(void)
-{
-       printk("EST SBC8260 Port\n");
-       callback_setup_arch();
-}
-
-void __init
-platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
-             unsigned long r6, unsigned long r7)
-{
-       /* Generic 8260 platform initialization */
-       m8260_init(r3, r4, r5, r6, r7);
-
-       /* Anything special for this platform */
-       ppc_md.show_cpuinfo     = est8260_show_cpuinfo;
-
-       callback_setup_arch     = ppc_md.setup_arch;
-       ppc_md.setup_arch       = est8260_setup_arch;
-}
diff --git a/arch/ppc/platforms/lopec_pci.c b/arch/ppc/platforms/lopec_pci.c
deleted file mode 100644 (file)
index 11aab4d..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * arch/ppc/platforms/lopec_pci.c
- *
- * PCI setup routines for the Motorola LoPEC.
- *
- * Author: Dan Cox
- *         danc@mvista.com (or, alternately, source@mvista.com)
- *
- * 2001-2002 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#include <linux/init.h>
-#include <linux/pci.h>
-
-#include <asm/machdep.h>
-#include <asm/pci-bridge.h>
-#include <asm/mpc10x.h>
-
-static inline int __init
-lopec_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin)
-{
-       int irq;
-       static char pci_irq_table[][4] = {
-               {16, 0, 0, 0}, /* ID 11 - Winbond */
-               {22, 0, 0, 0}, /* ID 12 - SCSI */
-               {0, 0, 0, 0}, /* ID 13 - nothing */
-               {17, 0, 0, 0}, /* ID 14 - 82559 Ethernet */
-               {27, 0, 0, 0}, /* ID 15 - USB */
-               {23, 0, 0, 0}, /* ID 16 - PMC slot 1 */
-               {24, 0, 0, 0}, /* ID 17 - PMC slot 2 */
-               {25, 0, 0, 0}, /* ID 18 - PCI slot */
-               {0, 0, 0, 0}, /* ID 19 - nothing */
-               {0, 0, 0, 0}, /* ID 20 - nothing */
-               {0, 0, 0, 0}, /* ID 21 - nothing */
-               {0, 0, 0, 0}, /* ID 22 - nothing */
-               {0, 0, 0, 0}, /* ID 23 - nothing */
-               {0, 0, 0, 0}, /* ID 24 - PMC slot 1b */
-               {0, 0, 0, 0}, /* ID 25 - nothing */
-               {0, 0, 0, 0}  /* ID 26 - PMC Slot 2b */
-       };
-       const long min_idsel = 11, max_idsel = 26, irqs_per_slot = 4;
-
-       irq = PCI_IRQ_TABLE_LOOKUP;
-       if (!irq)
-               return 0;
-
-       return irq;
-}
-
-void __init
-lopec_setup_winbond_83553(struct pci_controller *hose)
-{
-       int devfn;
-
-       devfn = PCI_DEVFN(11,0);
-
-       /* IDE interrupt routing (primary 14, secondary 15) */
-       early_write_config_byte(hose, 0, devfn, 0x43, 0xef);
-       /* PCI interrupt routing */
-       early_write_config_word(hose, 0, devfn, 0x44, 0x0000);
-
-       /* ISA-PCI address decoder */
-       early_write_config_byte(hose, 0, devfn, 0x48, 0xf0);
-
-       /* RTC, kb, not used in PPC */
-       early_write_config_byte(hose, 0, devfn, 0x4d, 0x00);
-       early_write_config_byte(hose, 0, devfn, 0x4e, 0x04);
-       devfn = PCI_DEVFN(11, 1);
-       early_write_config_byte(hose, 0, devfn, 0x09, 0x8f);
-       early_write_config_dword(hose, 0, devfn, 0x40, 0x00ff0011);
-}
-
-void __init
-lopec_find_bridges(void)
-{
-       struct pci_controller *hose;
-
-       hose = pcibios_alloc_controller();
-       if (!hose)
-               return;
-
-       hose->first_busno = 0;
-       hose->last_busno = 0xff;
-
-       if (mpc10x_bridge_init(hose,
-                              MPC10X_MEM_MAP_B,
-                              MPC10X_MEM_MAP_B,
-                              MPC10X_MAPB_EUMB_BASE) == 0) {
-
-               hose->mem_resources[0].end = 0xffffffff;
-               lopec_setup_winbond_83553(hose);
-               hose->last_busno = pciauto_bus_scan(hose, hose->first_busno);
-               ppc_md.pci_swizzle = common_swizzle;
-               ppc_md.pci_map_irq = lopec_map_irq;
-       }
-}
diff --git a/arch/ppc/platforms/lopec_serial.h b/arch/ppc/platforms/lopec_serial.h
deleted file mode 100644 (file)
index 5490edb..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * include/asm-ppc/lopec_serial.h
- *
- * Definitions for Motorola LoPEC board.
- *
- * Author: Dan Cox
- *         danc@mvista.com (or, alternately, source@mvista.com)
- *
- * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#ifndef __H_LOPEC_SERIAL
-#define __H_LOPEC_SERIAL
-
-#define RS_TABLE_SIZE 3
-
-#define BASE_BAUD (1843200 / 16)
-
-#ifdef CONFIG_SERIAL_DETECT_IRQ
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ)
-#else
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST)
-#endif
-
-#define SERIAL_PORT_DFNS \
-         { 0, BASE_BAUD, 0xffe10000, 29, STD_COM_FLAGS, \
-           iomem_base: (u8 *) 0xffe10000, \
-           io_type: SERIAL_IO_MEM }, \
-         { 0, BASE_BAUD, 0xffe11000, 20, STD_COM_FLAGS, \
-           iomem_base: (u8 *) 0xffe11000, \
-           io_type: SERIAL_IO_MEM }, \
-         { 0, BASE_BAUD, 0xffe12000, 21, STD_COM_FLAGS, \
-           iomem_base: (u8 *) 0xffe12000, \
-           io_type: SERIAL_IO_MEM }
-
-#endif
diff --git a/arch/ppc/platforms/lopec_setup.c b/arch/ppc/platforms/lopec_setup.c
deleted file mode 100644 (file)
index 8e98f26..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * arch/ppc/platforms/lopec_setup.c
- *
- * Setup routines for the Motorola LoPEC.
- *
- * Author: Dan Cox
- *         danc@mvista.com
- *
- * 2001-2002 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#include <linux/config.h>
-#include <linux/types.h>
-#include <linux/delay.h>
-#include <linux/pci_ids.h>
-#include <linux/ioport.h>
-#include <linux/init.h>
-#include <linux/ide.h>
-#include <linux/seq_file.h>
-#include <linux/initrd.h>
-#include <linux/console.h>
-#include <linux/root_dev.h>
-
-#include <asm/io.h>
-#include <asm/open_pic.h>
-#include <asm/i8259.h>
-#include <asm/todc.h>
-#include <asm/bootinfo.h>
-#include <asm/mpc10x.h>
-#include <asm/hw_irq.h>
-#include <asm/prep_nvram.h>
-
-extern void lopec_find_bridges(void);
-
-/*
- * Define all of the IRQ senses and polarities.  Taken from the
- * LoPEC Programmer's Reference Guide.
- */
-static u_char lopec_openpic_initsenses[16] __initdata = {
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE),      /* IRQ 0 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 1 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE),      /* IRQ 2 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 3 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE),      /* IRQ 4 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE),      /* IRQ 5 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 6 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 7 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 8 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 9 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 10 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 11 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE),      /* IRQ 12 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE),      /* IRQ 13 */
-       (IRQ_SENSE_EDGE | IRQ_POLARITY_NEGATIVE),       /* IRQ 14 */
-       (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE)       /* IRQ 15 */
-};
-
-static int
-lopec_show_cpuinfo(struct seq_file *m)
-{
-       seq_printf(m, "machine\t\t: Motorola LoPEC\n");
-       return 0;
-}
-
-static u32
-lopec_irq_canonicalize(u32 irq)
-{
-       if (irq == 2)
-               return 9;
-       else
-               return irq;
-}
-
-static void
-lopec_restart(char *cmd)
-{
-#define LOPEC_SYSSTAT1 0xffe00000
-       /* force a hard reset, if possible */
-       unsigned char reg = *((unsigned char *) LOPEC_SYSSTAT1);
-       reg |= 0x80;
-       *((unsigned char *) LOPEC_SYSSTAT1) = reg;
-
-       local_irq_disable();
-       while(1);
-#undef LOPEC_SYSSTAT1
-}
-
-static void
-lopec_halt(void)
-{
-       local_irq_disable();
-       while(1);
-}
-
-static void
-lopec_power_off(void)
-{
-       lopec_halt();
-}
-
-#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
-int lopec_ide_ports_known = 0;
-static unsigned long lopec_ide_regbase[MAX_HWIFS];
-static unsigned long lopec_ide_ctl_regbase[MAX_HWIFS];
-static unsigned long lopec_idedma_regbase;
-
-static void
-lopec_ide_probe(void)
-{
-       struct pci_dev *dev = pci_find_device(PCI_VENDOR_ID_WINBOND,
-                                             PCI_DEVICE_ID_WINBOND_82C105,
-                                             NULL);
-       lopec_ide_ports_known = 1;
-
-       if (dev) {
-               lopec_ide_regbase[0] = dev->resource[0].start;
-               lopec_ide_regbase[1] = dev->resource[2].start;
-               lopec_ide_ctl_regbase[0] = dev->resource[1].start;
-               lopec_ide_ctl_regbase[1] = dev->resource[3].start;
-               lopec_idedma_regbase = dev->resource[4].start;
-       }
-}
-
-static int
-lopec_ide_default_irq(unsigned long base)
-{
-       if (lopec_ide_ports_known == 0)
-               lopec_ide_probe();
-
-       if (base == lopec_ide_regbase[0])
-               return 14;
-       else if (base == lopec_ide_regbase[1])
-               return 15;
-       else
-               return 0;
-}
-
-static unsigned long
-lopec_ide_default_io_base(int index)
-{
-       if (lopec_ide_ports_known == 0)
-               lopec_ide_probe();
-       return lopec_ide_regbase[index];
-}
-
-static void __init
-lopec_ide_init_hwif_ports(hw_regs_t *hw, unsigned long data,
-                         unsigned long ctl, int *irq)
-{
-       unsigned long reg = data;
-       uint alt_status_base;
-       int i;
-
-       for(i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++)
-               hw->io_ports[i] = reg++;
-
-       if (data == lopec_ide_regbase[0]) {
-               alt_status_base = lopec_ide_ctl_regbase[0] + 2;
-               hw->irq = 14;
-       }
-       else if (data == lopec_ide_regbase[1]) {
-               alt_status_base = lopec_ide_ctl_regbase[1] + 2;
-               hw->irq = 15;
-       }
-       else {
-               alt_status_base = 0;
-               hw->irq = 0;
-       }
-
-       if (ctl)
-               hw->io_ports[IDE_CONTROL_OFFSET] = ctl;
-       else
-               hw->io_ports[IDE_CONTROL_OFFSET] = alt_status_base;
-
-       if (irq != NULL)
-               *irq = hw->irq;
-
-}
-#endif /* BLK_DEV_IDE */
-
-static void __init
-lopec_init_IRQ(void)
-{
-       int i;
-
-       /*
-        * Provide the open_pic code with the correct table of interrupts.
-        */
-       OpenPIC_InitSenses = lopec_openpic_initsenses;
-       OpenPIC_NumInitSenses = sizeof(lopec_openpic_initsenses);
-
-       mpc10x_set_openpic();
-
-       /* We have a cascade on OpenPIC IRQ 0, Linux IRQ 16 */
-       openpic_hookup_cascade(NUM_8259_INTERRUPTS, "82c59 cascade",
-                       &i8259_irq);
-
-       /* Map i8259 interrupts */
-       for(i = 0; i < NUM_8259_INTERRUPTS; i++)
-               irq_desc[i].handler = &i8259_pic;
-
-       /*
-        * The EPIC allows for a read in the range of 0xFEF00000 ->
-        * 0xFEFFFFFF to generate a PCI interrupt-acknowledge transaction.
-        */
-       i8259_init(0xfef00000);
-}
-
-static int __init
-lopec_request_io(void)
-{
-       outb(0x00, 0x4d0);
-       outb(0xc0, 0x4d1);
-
-       request_region(0x00, 0x20, "dma1");
-       request_region(0x20, 0x20, "pic1");
-       request_region(0x40, 0x20, "timer");
-       request_region(0x80, 0x10, "dma page reg");
-       request_region(0xa0, 0x20, "pic2");
-       request_region(0xc0, 0x20, "dma2");
-
-       return 0;
-}
-
-device_initcall(lopec_request_io);
-
-static void __init
-lopec_map_io(void)
-{
-       io_block_mapping(0xf0000000, 0xf0000000, 0x10000000, _PAGE_IO);
-       io_block_mapping(0xb0000000, 0xb0000000, 0x10000000, _PAGE_IO);
-}
-
-static void __init
-lopec_set_bat(void)
-{
-       unsigned long batu, batl;
-
-       __asm__ __volatile__(
-               "lis %0,0xf800\n \
-                 ori %1,%0,0x002a\n \
-                 ori %0,%0,0x0ffe\n \
-                 mtspr 0x21e,%0\n \
-                 mtspr 0x21f,%1\n \
-                 isync\n \
-                 sync "
-               : "=r" (batu), "=r" (batl));
-}
-
-#ifdef  CONFIG_SERIAL_TEXT_DEBUG
-#include <linux/serial.h>
-#include <linux/serialP.h>
-#include <linux/serial_reg.h>
-#include <asm/serial.h>
-
-static struct serial_state rs_table[RS_TABLE_SIZE] = {
-       SERIAL_PORT_DFNS        /* Defined in <asm/serial.h> */
-};
-
-volatile unsigned char *com_port;
-volatile unsigned char *com_port_lsr;
-
-static void
-serial_writechar(char c)
-{
-       while ((*com_port_lsr & UART_LSR_THRE) == 0)
-               ;
-       *com_port = c;
-}
-
-void
-lopec_progress(char *s, unsigned short hex)
-{
-       volatile char c;
-
-       com_port = (volatile unsigned char *) rs_table[0].port;
-       com_port_lsr = com_port + UART_LSR;
-
-       while ((c = *s++) != 0)
-               serial_writechar(c);
-
-       /* Most messages don't have a newline in them */
-       serial_writechar('\n');
-       serial_writechar('\r');
-}
-#endif /* CONFIG_SERIAL_TEXT_DEBUG */
-
-TODC_ALLOC();
-
-static void __init
-lopec_setup_arch(void)
-{
-
-       TODC_INIT(TODC_TYPE_MK48T37, 0, 0,
-                 ioremap(0xffe80000, 0x8000), 8);
-
-       loops_per_jiffy = 100000000/HZ;
-
-       lopec_find_bridges();
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       if (initrd_start)
-               ROOT_DEV = Root_RAM0;
-       else
-#elif defined(CONFIG_ROOT_NFS)
-               ROOT_DEV = Root_NFS;
-#elif defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
-               ROOT_DEV = Root_HDA1;
-#else
-               ROOT_DEV = Root_SDA1;
-#endif
-
-#ifdef CONFIG_VT
-       conswitchp = &dummy_con;
-#endif
-#ifdef CONFIG_PPCBUG_NVRAM
-       /* Read in NVRAM data */
-       init_prep_nvram();
-
-       /* if no bootargs, look in NVRAM */
-       if ( cmd_line[0] == '\0' ) {
-               char *bootargs;
-                bootargs = prep_nvram_get_var("bootargs");
-                if (bootargs != NULL) {
-                        strcpy(cmd_line, bootargs);
-                        /* again.. */
-                        strcpy(saved_command_line, cmd_line);
-               }
-       }
-#endif
-}
-
-void __init
-platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
-             unsigned long r6, unsigned long r7)
-{
-       parse_bootinfo(find_bootinfo());
-       lopec_set_bat();
-
-       isa_io_base = MPC10X_MAPB_ISA_IO_BASE;
-       isa_mem_base = MPC10X_MAPB_ISA_MEM_BASE;
-       pci_dram_offset = MPC10X_MAPB_DRAM_OFFSET;
-       ISA_DMA_THRESHOLD = 0x00ffffff;
-       DMA_MODE_READ = 0x44;
-       DMA_MODE_WRITE = 0x48;
-
-       ppc_md.setup_arch = lopec_setup_arch;
-       ppc_md.show_cpuinfo = lopec_show_cpuinfo;
-       ppc_md.irq_canonicalize = lopec_irq_canonicalize;
-       ppc_md.init_IRQ = lopec_init_IRQ;
-       ppc_md.get_irq = openpic_get_irq;
-
-       ppc_md.restart = lopec_restart;
-       ppc_md.power_off = lopec_power_off;
-       ppc_md.halt = lopec_halt;
-
-       ppc_md.setup_io_mappings = lopec_map_io;
-
-       ppc_md.time_init = todc_time_init;
-       ppc_md.set_rtc_time = todc_set_rtc_time;
-       ppc_md.get_rtc_time = todc_get_rtc_time;
-       ppc_md.calibrate_decr = todc_calibrate_decr;
-
-       ppc_md.nvram_read_val = todc_direct_read_val;
-       ppc_md.nvram_write_val = todc_direct_write_val;
-
-#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
-       ppc_ide_md.default_irq = lopec_ide_default_irq;
-       ppc_ide_md.default_io_base = lopec_ide_default_io_base;
-       ppc_ide_md.ide_init_hwif = lopec_ide_init_hwif_ports;
-#endif
-#ifdef CONFIG_SERIAL_TEXT_DEBUG
-       ppc_md.progress = lopec_progress;
-#endif
-}
diff --git a/arch/ppc/platforms/mcpn765_serial.h b/arch/ppc/platforms/mcpn765_serial.h
deleted file mode 100644 (file)
index 3124672..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * include/asm-ppc/mcpn765_serial.h
- *
- * Definitions for Motorola MCG MCPN765 cPCI board support
- *
- * Author: Mark A. Greer
- *         mgreer@mvista.com
- *
- * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#ifndef __ASMPPC_MCPN765_SERIAL_H
-#define __ASMPPC_MCPN765_SERIAL_H
-
-#include <linux/config.h>
-
-/* Define the UART base addresses */
-#define        MCPN765_SERIAL_1                0xfef88000
-#define        MCPN765_SERIAL_2                0xfef88200
-#define        MCPN765_SERIAL_3                0xfef88400
-#define        MCPN765_SERIAL_4                0xfef88600
-
-#ifdef CONFIG_SERIAL_MANY_PORTS
-#define RS_TABLE_SIZE  64
-#else
-#define RS_TABLE_SIZE  4
-#endif
-
-/* Rate for the 1.8432 Mhz clock for the onboard serial chip */
-#define BASE_BAUD      ( 1843200 / 16 )
-#define UART_CLK       1843200
-
-#ifdef CONFIG_SERIAL_DETECT_IRQ
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ)
-#else
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST)
-#endif
-
-/* All UART IRQ's are wire-OR'd to IRQ 17 */
-#define STD_SERIAL_PORT_DFNS \
-        { 0, BASE_BAUD, MCPN765_SERIAL_1, 17, STD_COM_FLAGS, /* ttyS0 */\
-               iomem_base: (u8 *)MCPN765_SERIAL_1,                     \
-               iomem_reg_shift: 4,                                     \
-               io_type: SERIAL_IO_MEM },                               \
-        { 0, BASE_BAUD, MCPN765_SERIAL_2, 17, STD_COM_FLAGS, /* ttyS1 */\
-               iomem_base: (u8 *)MCPN765_SERIAL_2,                     \
-               iomem_reg_shift: 4,                                     \
-               io_type: SERIAL_IO_MEM },                               \
-        { 0, BASE_BAUD, MCPN765_SERIAL_3, 17, STD_COM_FLAGS, /* ttyS2 */\
-               iomem_base: (u8 *)MCPN765_SERIAL_3,                     \
-               iomem_reg_shift: 4,                                     \
-               io_type: SERIAL_IO_MEM },                               \
-        { 0, BASE_BAUD, MCPN765_SERIAL_4, 17, STD_COM_FLAGS, /* ttyS3 */\
-               iomem_base: (u8 *)MCPN765_SERIAL_4,                     \
-               iomem_reg_shift: 4,                                     \
-               io_type: SERIAL_IO_MEM },
-
-#define SERIAL_PORT_DFNS \
-        STD_SERIAL_PORT_DFNS
-
-#endif /* __ASMPPC_MCPN765_SERIAL_H */
diff --git a/arch/ppc/platforms/mvme5100_pci.c b/arch/ppc/platforms/mvme5100_pci.c
deleted file mode 100644 (file)
index 0675ab6..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * arch/ppc/platforms/mvme5100_pci.c
- *
- * PCI setup routines for the Motorola MVME5100.
- *
- * Author: Matt Porter <mporter@mvista.com>
- *
- * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/pci.h>
-#include <linux/slab.h>
-
-#include <asm/byteorder.h>
-#include <asm/io.h>
-#include <asm/irq.h>
-#include <asm/uaccess.h>
-#include <asm/machdep.h>
-#include <asm/pci-bridge.h>
-#include <platforms/mvme5100.h>
-#include <asm/pplus.h>
-
-static inline int
-mvme5100_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin)
-{
-       int irq;
-
-       static char pci_irq_table[][4] =
-       /*
-        *      PCI IDSEL/INTPIN->INTLINE
-        *         A   B   C   D
-        */
-       {
-               {  0,  0,  0,  0 },     /* IDSEL 11 - Winbond */
-               {  0,  0,  0,  0 },     /* IDSEL 12 - unused */
-               { 21, 22, 23, 24 },     /* IDSEL 13 - Universe II */
-               { 18,  0,  0,  0 },     /* IDSEL 14 - Enet 1 */
-               {  0,  0,  0,  0 },     /* IDSEL 15 - unused */
-               { 25, 26, 27, 28 },     /* IDSEL 16 - PMC Slot 1 */
-               { 28, 25, 26, 27 },     /* IDSEL 17 - PMC Slot 2 */
-               {  0,  0,  0,  0 },     /* IDSEL 18 - unused */
-               { 29,  0,  0,  0 },     /* IDSEL 19 - Enet 2 */
-               {  0,  0,  0,  0 },     /* IDSEL 20 - PMCSPAN */
-       };
-
-       const long min_idsel = 11, max_idsel = 20, irqs_per_slot = 4;
-       irq = PCI_IRQ_TABLE_LOOKUP;
-       /* If lookup is zero, always return 0 */
-       if (!irq)
-               return 0;
-       else
-#ifdef CONFIG_MVME5100_IPMC761_PRESENT
-       /* If IPMC761 present, return table value */
-       return irq;
-#else
-       /* If IPMC761 not present, we don't have an i8259 so adjust */
-       return (irq - NUM_8259_INTERRUPTS);
-#endif
-}
-
-static void
-mvme5100_pcibios_fixup_resources(struct pci_dev *dev)
-{
-       int i;
-
-       if ((dev->vendor == PCI_VENDOR_ID_MOTOROLA) &&
-                       (dev->device == PCI_DEVICE_ID_MOTOROLA_HAWK))
-               for (i=0; i<DEVICE_COUNT_RESOURCE; i++)
-               {
-                       dev->resource[i].start = 0;
-                       dev->resource[i].end = 0;
-               }
-}
-
-void __init
-mvme5100_setup_bridge(void)
-{
-       struct pci_controller*  hose;
-
-       hose = pcibios_alloc_controller();
-
-       if (!hose)
-               return;
-
-       hose->first_busno = 0;
-       hose->last_busno = 0xff;
-       hose->pci_mem_offset = MVME5100_PCI_MEM_OFFSET;
-
-       pci_init_resource(&hose->io_resource,
-                       MVME5100_PCI_LOWER_IO,
-                       MVME5100_PCI_UPPER_IO,
-                       IORESOURCE_IO,
-                       "PCI host bridge");
-
-       pci_init_resource(&hose->mem_resources[0],
-                       MVME5100_PCI_LOWER_MEM,
-                       MVME5100_PCI_UPPER_MEM,
-                       IORESOURCE_MEM,
-                       "PCI host bridge");
-
-       hose->io_space.start = MVME5100_PCI_LOWER_IO;
-       hose->io_space.end = MVME5100_PCI_UPPER_IO;
-       hose->mem_space.start = MVME5100_PCI_LOWER_MEM;
-       hose->mem_space.end = MVME5100_PCI_UPPER_MEM;
-       hose->io_base_virt = (void *)MVME5100_ISA_IO_BASE;
-
-       /* Use indirect method of Hawk */
-       setup_indirect_pci(hose,
-                          MVME5100_PCI_CONFIG_ADDR,
-                          MVME5100_PCI_CONFIG_DATA);
-
-       hose->last_busno = pciauto_bus_scan(hose, hose->first_busno);
-
-       ppc_md.pcibios_fixup_resources = mvme5100_pcibios_fixup_resources;
-       ppc_md.pci_swizzle = common_swizzle;
-       ppc_md.pci_map_irq = mvme5100_map_irq;
-}
diff --git a/arch/ppc/platforms/mvme5100_serial.h b/arch/ppc/platforms/mvme5100_serial.h
deleted file mode 100644 (file)
index 7fb34ec..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * include/asm-ppc/mvme5100_serial.h
- *
- * Definitions for Motorola MVME5100 support
- *
- * Author: Matt Porter <mporter@mvista.com>
- *
- * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#ifdef __KERNEL__
-#ifndef __ASM_MVME5100_SERIAL_H__
-#define __ASM_MVME5100_SERIAL_H__
-
-#include <linux/config.h>
-#include <platforms/mvme5100.h>
-
-#ifdef CONFIG_SERIAL_MANY_PORTS
-#define RS_TABLE_SIZE  64
-#else
-#define RS_TABLE_SIZE  4
-#endif
-
-#define BASE_BAUD ( MVME5100_BASE_BAUD / 16 )
-
-#ifdef CONFIG_SERIAL_DETECT_IRQ
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ)
-#else
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST)
-#endif
-
-/* All UART IRQ's are wire-OR'd to one MPIC IRQ */
-#define STD_SERIAL_PORT_DFNS \
-        { 0, BASE_BAUD, MVME5100_SERIAL_1, \
-               MVME5100_SERIAL_IRQ, \
-               STD_COM_FLAGS, /* ttyS0 */ \
-               iomem_base: (unsigned char *)MVME5100_SERIAL_1,         \
-               iomem_reg_shift: 4,                                     \
-               io_type: SERIAL_IO_MEM },                               \
-        { 0, BASE_BAUD, MVME5100_SERIAL_2, \
-               MVME5100_SERIAL_IRQ, \
-               STD_COM_FLAGS, /* ttyS1 */ \
-               iomem_base: (unsigned char *)MVME5100_SERIAL_2,         \
-               iomem_reg_shift: 4,                                     \
-               io_type: SERIAL_IO_MEM },
-
-#define SERIAL_PORT_DFNS \
-        STD_SERIAL_PORT_DFNS
-
-#endif /* __ASM_MVME5100_SERIAL_H__ */
-#endif /* __KERNEL__ */
diff --git a/arch/ppc/platforms/mvme5100_setup.c b/arch/ppc/platforms/mvme5100_setup.c
deleted file mode 100644 (file)
index bc9c9f4..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * arch/ppc/platforms/mvme5100_setup.c
- *
- * Board setup routines for the Motorola MVME5100.
- *
- * Author: Matt Porter <mporter@mvista.com>
- *
- * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#include <linux/config.h>
-#include <linux/stddef.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/errno.h>
-#include <linux/reboot.h>
-#include <linux/pci.h>
-#include <linux/kdev_t.h>
-#include <linux/major.h>
-#include <linux/initrd.h>
-#include <linux/console.h>
-#include <linux/delay.h>
-#include <linux/irq.h>
-#include <linux/ide.h>
-#include <linux/seq_file.h>
-#include <linux/root_dev.h>
-
-#include <asm/system.h>
-#include <asm/pgtable.h>
-#include <asm/page.h>
-#include <asm/time.h>
-#include <asm/dma.h>
-#include <asm/io.h>
-#include <asm/machdep.h>
-#include <asm/prom.h>
-#include <asm/smp.h>
-#include <asm/open_pic.h>
-#include <asm/i8259.h>
-#include <platforms/mvme5100.h>
-#include <asm/todc.h>
-#include <asm/pci-bridge.h>
-#include <asm/bootinfo.h>
-#include <asm/pplus.h>
-
-extern char cmd_line[];
-
-static u_char mvme5100_openpic_initsenses[] __initdata = {
-       0,      /* 16: i8259 cascade (active high) */
-       1,      /* 17: TL16C550 UART 1,2 */
-       1,      /* 18: Enet 1 (front panel or P2) */
-       1,      /* 19: Hawk Watchdog 1,2 */
-       1,      /* 20: DS1621 thermal alarm */
-       1,      /* 21: Universe II LINT0# */
-       1,      /* 22: Universe II LINT1# */
-       1,      /* 23: Universe II LINT2# */
-       1,      /* 24: Universe II LINT3# */
-       1,      /* 25: PMC1 INTA#, PMC2 INTB# */
-       1,      /* 26: PMC1 INTB#, PMC2 INTC# */
-       1,      /* 27: PMC1 INTC#, PMC2 INTD# */
-       1,      /* 28: PMC1 INTD#, PMC2 INTA# */
-       1,      /* 29: Enet 2 (front panel) */
-       1,      /* 30: Abort Switch */
-       1,      /* 31: RTC Alarm */
-};
-
-static void __init
-mvme5100_setup_arch(void)
-{
-       if ( ppc_md.progress )
-               ppc_md.progress("mvme5100_setup_arch: enter", 0);
-
-       loops_per_jiffy = 50000000 / HZ;
-
-#ifdef CONFIG_BLK_DEV_INITRD
-       if (initrd_start)
-               ROOT_DEV = Root_RAM0;
-       else
-#endif
-#ifdef CONFIG_ROOT_NFS
-               ROOT_DEV = Root_NFS;
-#else
-               ROOT_DEV = Root_SDA2;
-#endif
-
-#ifdef CONFIG_DUMMY_CONSOLE
-       conswitchp = &dummy_con;
-#endif
-
-       if ( ppc_md.progress )
-               ppc_md.progress("mvme5100_setup_arch: find_bridges", 0);
-
-       /* Setup PCI host bridge */
-       mvme5100_setup_bridge();
-
-       /* Find and map our OpenPIC */
-       pplus_mpic_init(MVME5100_PCI_MEM_OFFSET);
-       OpenPIC_InitSenses = mvme5100_openpic_initsenses;
-       OpenPIC_NumInitSenses = sizeof(mvme5100_openpic_initsenses);
-
-       printk("MVME5100 port (C) 2001 MontaVista Software, Inc. (source@mvista.com)\n");
-
-       if ( ppc_md.progress )
-               ppc_md.progress("mvme5100_setup_arch: exit", 0);
-
-       return;
-}
-
-static void __init
-mvme5100_init2(void)
-{
-#ifdef CONFIG_MVME5100_IPMC761_PRESENT
-               request_region(0x00,0x20,"dma1");
-               request_region(0x20,0x20,"pic1");
-               request_region(0x40,0x20,"timer");
-               request_region(0x80,0x10,"dma page reg");
-               request_region(0xa0,0x20,"pic2");
-               request_region(0xc0,0x20,"dma2");
-#endif
-       return;
-}
-
-/*
- * Interrupt setup and service.
- * Have MPIC on HAWK and cascaded 8259s on Winbond cascaded to MPIC.
- */
-static void __init
-mvme5100_init_IRQ(void)
-{
-#ifdef CONFIG_MVME5100_IPMC761_PRESENT
-       int i;
-#endif
-
-       if ( ppc_md.progress )
-               ppc_md.progress("init_irq: enter", 0);
-
-#ifdef CONFIG_MVME5100_IPMC761_PRESENT
-       openpic_init(1, NUM_8259_INTERRUPTS, NULL, -1);
-       openpic_hookup_cascade(NUM_8259_INTERRUPTS,"82c59 cascade",&i8259_irq);
-
-       for(i=0; i < NUM_8259_INTERRUPTS; i++)
-               irq_desc[i].handler = &i8259_pic;
-
-       i8259_init(NULL);
-#else
-       openpic_init(1, 0, NULL, -1);
-#endif
-
-       if ( ppc_md.progress )
-               ppc_md.progress("init_irq: exit", 0);
-
-       return;
-}
-
-/*
- * Set BAT 3 to map 0xf0000000 to end of physical memory space.
- */
-static __inline__ void
-mvme5100_set_bat(void)
-{
-       unsigned long bat3u, bat3l;
-       static int mapping_set = 0;
-
-       if (!mapping_set) {
-
-               __asm__ __volatile__(
-               " lis %0,0xf000\n \
-                 ori %1,%0,0x002a\n \
-                 ori %0,%0,0x1ffe\n \
-                 mtspr 0x21e,%0\n \
-                 mtspr 0x21f,%1\n \
-                 isync\n \
-                 sync "
-               : "=r" (bat3u), "=r" (bat3l));
-
-               mapping_set = 1;
-       }
-
-       return;
-}
-
-static unsigned long __init
-mvme5100_find_end_of_memory(void)
-{
-       mvme5100_set_bat();
-       return pplus_get_mem_size(MVME5100_HAWK_SMC_BASE);
-}
-
-static void __init
-mvme5100_map_io(void)
-{
-       io_block_mapping(0xfe000000, 0xfe000000, 0x02000000, _PAGE_IO);
-       ioremap_base = 0xfe000000;
-}
-
-static void
-mvme5100_reset_board(void)
-{
-       local_irq_disable();
-
-       /* Set exception prefix high - to the firmware */
-       _nmask_and_or_msr(0, MSR_IP);
-
-       out_8((u_char *)MVME5100_BOARD_MODRST_REG, 0x01);
-
-       return;
-}
-
-static void
-mvme5100_restart(char *cmd)
-{
-       volatile ulong i = 10000000;
-
-       mvme5100_reset_board();
-
-       while (i-- > 0);
-       panic("restart failed\n");
-}
-
-static void
-mvme5100_halt(void)
-{
-       local_irq_disable();
-       while (1);
-}
-
-static void
-mvme5100_power_off(void)
-{
-       mvme5100_halt();
-}
-
-static int
-mvme5100_show_cpuinfo(struct seq_file *m)
-{
-       seq_printf(m, "vendor\t\t: Motorola\n");
-       seq_printf(m, "machine\t\t: MVME5100\n");
-
-       return 0;
-}
-
-TODC_ALLOC();
-
-void __init
-platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
-             unsigned long r6, unsigned long r7)
-{
-       parse_bootinfo(find_bootinfo());
-
-       isa_io_base = MVME5100_ISA_IO_BASE;
-       isa_mem_base = MVME5100_ISA_MEM_BASE;
-       pci_dram_offset = MVME5100_PCI_DRAM_OFFSET;
-
-       ppc_md.setup_arch = mvme5100_setup_arch;
-       ppc_md.show_cpuinfo = mvme5100_show_cpuinfo;
-       ppc_md.init_IRQ = mvme5100_init_IRQ;
-       ppc_md.get_irq = openpic_get_irq;
-       ppc_md.init = mvme5100_init2;
-
-       ppc_md.restart = mvme5100_restart;
-       ppc_md.power_off = mvme5100_power_off;
-       ppc_md.halt = mvme5100_halt;
-
-       ppc_md.find_end_of_memory = mvme5100_find_end_of_memory;
-       ppc_md.setup_io_mappings = mvme5100_map_io;
-
-       TODC_INIT(TODC_TYPE_MK48T37,
-                 MVME5100_NVRAM_AS0,
-                 MVME5100_NVRAM_AS1,
-                 MVME5100_NVRAM_DATA,
-                 8);
-
-       ppc_md.time_init = todc_time_init;
-       ppc_md.set_rtc_time = todc_set_rtc_time;
-       ppc_md.get_rtc_time = todc_get_rtc_time;
-       ppc_md.calibrate_decr = todc_calibrate_decr;
-
-       ppc_md.nvram_read_val = todc_m48txx_read_val;
-       ppc_md.nvram_write_val = todc_m48txx_write_val;
-
-       ppc_md.progress = NULL;
-}
diff --git a/arch/ppc/platforms/powerpmc250_serial.h b/arch/ppc/platforms/powerpmc250_serial.h
deleted file mode 100644 (file)
index 0a9e28a..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * include/asm-ppc/platforms/powerpmc250_serial.h
- *
- * Motorola PrPMC750 serial support
- *
- * Author: Troy Benjegerdes <tbenjegerdes@mvista.com>
- *
- * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#ifdef __KERNEL__
-#ifndef __ASMPPC_POWERPMC250_SERIAL_H
-#define __ASMPPC_POWERPMC250_SERIAL_H
-
-#include <linux/config.h>
-#include <platforms/powerpmc250.h>
-
-#define RS_TABLE_SIZE  1
-
-#define BASE_BAUD  (POWERPMC250_BASE_BAUD / 16)
-
-#ifdef CONFIG_SERIAL_DETECT_IRQ
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ)
-#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_AUTO_IRQ)
-#else
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST)
-#define STD_COM4_FLAGS (ASYNC_BOOT_AUTOCONF)
-#endif
-
-#define SERIAL_PORT_DFNS \
-{ 0, BASE_BAUD, POWERPMC250_SERIAL, POWERPMC250_SERIAL_IRQ, STD_COM_FLAGS, /* ttyS0 */\
-               iomem_base: (u8 *)POWERPMC250_SERIAL,           \
-               iomem_reg_shift: 0,                                     \
-               io_type: SERIAL_IO_MEM }
-
-#endif
-#endif /* __KERNEL__ */
diff --git a/arch/ppc/platforms/pq2ads_setup.c b/arch/ppc/platforms/pq2ads_setup.c
deleted file mode 100644 (file)
index eaeb2d9..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * arch/ppc/platforms/pq2ads_setup.c
- *
- * PQ2ADS platform support
- *
- * Author: Kumar Gala <kumar.gala@freescale.com>
- * Derived from: est8260_setup.c by Allen Curtis
- *
- * Copyright 2004 Freescale Semiconductor, Inc.
- *
- * 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;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-#include <linux/config.h>
-#include <linux/seq_file.h>
-
-#include <asm/mpc8260.h>
-#include <asm/machdep.h>
-
-static void (*callback_setup_arch)(void);
-
-extern unsigned char __res[sizeof(bd_t)];
-
-extern void m8260_init(unsigned long r3, unsigned long r4,
-       unsigned long r5, unsigned long r6, unsigned long r7);
-
-static int
-pq2ads_show_cpuinfo(struct seq_file *m)
-{
-       bd_t    *binfo = (bd_t *)__res;
-
-       seq_printf(m, "vendor\t\t: Motorola\n"
-                     "machine\t\t: PQ2 ADS PowerPC\n"
-                     "\n"
-                     "mem size\t\t: 0x%08lx\n"
-                     "console baud\t\t: %ld\n"
-                     "\n",
-                     binfo->bi_memsize,
-                     binfo->bi_baudrate);
-       return 0;
-}
-
-static void __init
-pq2ads_setup_arch(void)
-{
-       printk("PQ2 ADS Port\n");
-       callback_setup_arch();
-        *(volatile uint *)(BCSR_ADDR + 4) &= ~BCSR1_RS232_EN2;
-}
-
-void __init
-platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
-             unsigned long r6, unsigned long r7)
-{
-       /* Generic 8260 platform initialization */
-       m8260_init(r3, r4, r5, r6, r7);
-
-       /* Anything special for this platform */
-       ppc_md.show_cpuinfo     = pq2ads_show_cpuinfo;
-
-       callback_setup_arch     = ppc_md.setup_arch;
-       ppc_md.setup_arch       = pq2ads_setup_arch;
-}
diff --git a/arch/ppc/platforms/prpmc750_serial.h b/arch/ppc/platforms/prpmc750_serial.h
deleted file mode 100644 (file)
index 9068cb0..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * include/asm-ppc/platforms/prpmc750_serial.h
- *
- * Motorola PrPMC750 serial support
- *
- * Author: Matt Porter <mporter@mvista.com>
- *
- * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#ifdef __KERNEL__
-#ifndef __ASM_PRPMC750_SERIAL_H__
-#define __ASM_PRPMC750_SERIAL_H__
-
-#include <linux/config.h>
-#include <platforms/prpmc750.h>
-
-#define RS_TABLE_SIZE  4
-
-/* Rate for the 1.8432 Mhz clock for the onboard serial chip */
-#define BASE_BAUD  (PRPMC750_BASE_BAUD / 16)
-
-#ifndef SERIAL_MAGIC_KEY
-#define kernel_debugger ppc_kernel_debug
-#endif
-
-#ifdef CONFIG_SERIAL_DETECT_IRQ
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ)
-#else
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST)
-#endif
-
-#define SERIAL_PORT_DFNS \
-        { 0, BASE_BAUD, PRPMC750_SERIAL_0, 1, STD_COM_FLAGS, \
-               iomem_base: (unsigned char *)PRPMC750_SERIAL_0, \
-               iomem_reg_shift: 4, \
-               io_type: SERIAL_IO_MEM } /* ttyS0 */
-
-#endif /* __ASM_PRPMC750_SERIAL_H__ */
-#endif /* __KERNEL__ */
diff --git a/arch/ppc/platforms/prpmc800_serial.h b/arch/ppc/platforms/prpmc800_serial.h
deleted file mode 100644 (file)
index 2823146..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * arch/ppc/platforms/prpmc800_serial.h
- *
- * Definitions for Motorola MCG PRPMC800 cPCI board support
- *
- * Author: Dale Farnsworth     dale.farnsworth@mvista.com
- *
- * 2001 (c) MontaVista, Software, Inc.  This file is licensed under
- * the terms of the GNU General Public License version 2.  This program
- * is licensed "as is" without any warranty of any kind, whether express
- * or implied.
- */
-
-#ifndef __ASMPPC_PRPMC800_SERIAL_H
-#define __ASMPPC_PRPMC800_SERIAL_H
-
-#include <linux/config.h>
-#include <platforms/prpmc800.h>
-
-#ifdef CONFIG_SERIAL_MANY_PORTS
-#define RS_TABLE_SIZE  64
-#else
-#define RS_TABLE_SIZE  4
-#endif
-
-/* Rate for the 1.8432 Mhz clock for the onboard serial chip */
-#define BASE_BAUD (PRPMC800_BASE_BAUD / 16)
-
-#ifndef SERIAL_MAGIC_KEY
-#define kernel_debugger ppc_kernel_debug
-#endif
-
-#ifdef CONFIG_SERIAL_DETECT_IRQ
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ)
-#else
-#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST)
-#endif
-
-/* UARTS are at IRQ 16 */
-#define STD_SERIAL_PORT_DFNS \
-        { 0, BASE_BAUD, PRPMC800_SERIAL_1, 16, STD_COM_FLAGS, /* ttyS0 */\
-               iomem_base: (unsigned char *)PRPMC800_SERIAL_1,         \
-               iomem_reg_shift: 0,                                     \
-               io_type: SERIAL_IO_MEM },
-
-#define SERIAL_PORT_DFNS \
-        STD_SERIAL_PORT_DFNS
-
-#endif /* __ASMPPC_PRPMC800_SERIAL_H */
diff --git a/arch/ppc/platforms/rpx8260.c b/arch/ppc/platforms/rpx8260.c
deleted file mode 100644 (file)
index 07d78d4..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * arch/ppc/platforms/rpx8260.c
- *
- * RPC EP8260 platform support
- *
- * Author: Dan Malek <dan@embeddededge.com>
- * Derived from: pq2ads_setup.c by Kumar
- *
- * Copyright 2004 Embedded Edge, LLC
- *
- * 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;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-#include <linux/config.h>
-#include <linux/seq_file.h>
-
-#include <asm/mpc8260.h>
-#include <asm/machdep.h>
-
-static void (*callback_setup_arch)(void);
-
-extern unsigned char __res[sizeof(bd_t)];
-
-extern void m8260_init(unsigned long r3, unsigned long r4,
-       unsigned long r5, unsigned long r6, unsigned long r7);
-
-static int
-ep8260_show_cpuinfo(struct seq_file *m)
-{
-       bd_t    *binfo = (bd_t *)__res;
-
-       seq_printf(m, "vendor\t\t: RPC\n"
-                     "machine\t\t: EP8260 PPC\n"
-                     "\n"
-                     "mem size\t\t: 0x%08x\n"
-                     "console baud\t\t: %d\n"
-                     "\n",
-                     binfo->bi_memsize,
-                     binfo->bi_baudrate);
-       return 0;
-}
-
-static void __init
-ep8260_setup_arch(void)
-{
-       printk("RPC EP8260 Port\n");
-       callback_setup_arch();
-}
-
-void __init
-platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
-             unsigned long r6, unsigned long r7)
-{
-       /* Generic 8260 platform initialization */
-       m8260_init(r3, r4, r5, r6, r7);
-
-       /* Anything special for this platform */
-       ppc_md.show_cpuinfo     = ep8260_show_cpuinfo;
-
-       callback_setup_arch     = ppc_md.setup_arch;
-       ppc_md.setup_arch       = ep8260_setup_arch;
-}
diff --git a/arch/ppc64/boot/addSystemMap.c b/arch/ppc64/boot/addSystemMap.c
deleted file mode 100644 (file)
index 0faf375..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <byteswap.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <string.h>
-
-void xlate( char * inb, char * trb, unsigned len )
-{
-       unsigned i;
-       for (  i=0; i<len; ++i )
-       {
-               char c = *inb++;
-               char c1 = c >> 4;
-               char c2 = c & 0xf;
-               if ( c1 > 9 )
-                       c1 = c1 + 'A' - 10;
-               else
-                       c1 = c1 + '0';
-               if ( c2 > 9 )
-                       c2 = c2 + 'A' - 10;
-               else
-                       c2 = c2 + '0';
-               *trb++ = c1;
-               *trb++ = c2;
-       }
-       *trb = 0;
-}
-
-#define ElfHeaderSize  (64 * 1024)
-#define ElfPages  (ElfHeaderSize / 4096)
-
-void get4k( /*istream *inf*/FILE *file, char *buf )
-{
-       unsigned j;
-       unsigned num = fread(buf, 1, 4096, file);
-       for ( j=num; j<4096; ++j )
-               buf[j] = 0;
-}
-
-void put4k( /*ostream *outf*/FILE *file, char *buf )
-{
-       fwrite(buf, 1, 4096, file);
-}
-
-int main(int argc, char **argv)
-{
-       char inbuf[4096];
-       FILE *sysmap = NULL;
-       char* ptr_end = NULL; 
-       FILE *inputVmlinux = NULL;
-       FILE *outputVmlinux = NULL;
-       long i = 0;
-       unsigned long sysmapFileLen = 0;
-       unsigned long sysmapLen = 0;
-       unsigned long roundR = 0;
-       unsigned long kernelLen = 0;
-       unsigned long actualKernelLen = 0;
-       unsigned long round = 0;
-       unsigned long roundedKernelLen = 0;
-       unsigned long sysmapStartOffs = 0;
-       unsigned long sysmapPages = 0;
-       unsigned long roundedKernelPages = 0;
-       long padPages = 0;
-       if ( argc < 2 )
-       {
-               fprintf(stderr, "Name of System Map file missing.\n");
-               exit(1);
-       }
-
-       if ( argc < 3 )
-       {
-               fprintf(stderr, "Name of vmlinux file missing.\n");
-               exit(1);
-       }
-
-       if ( argc < 4 )
-       {
-               fprintf(stderr, "Name of vmlinux output file missing.\n");
-               exit(1);
-       }
-
-       sysmap = fopen(argv[1], "r");
-       if ( ! sysmap )
-       {
-               fprintf(stderr, "System Map file \"%s\" failed to open.\n", argv[1]);
-               exit(1);
-       }
-       inputVmlinux = fopen(argv[2], "r");
-       if ( ! inputVmlinux )
-       {
-               fprintf(stderr, "vmlinux file \"%s\" failed to open.\n", argv[2]);
-               exit(1);
-       }
-       outputVmlinux = fopen(argv[3], "w");
-       if ( ! outputVmlinux )
-       {
-               fprintf(stderr, "output vmlinux file \"%s\" failed to open.\n", argv[3]);
-               exit(1);
-       }
-
-
-  
-       fseek(inputVmlinux, 0, SEEK_END);
-       kernelLen = ftell(inputVmlinux);
-       fseek(inputVmlinux, 0, SEEK_SET);
-       printf("kernel file size = %ld\n", kernelLen);
-       if ( kernelLen == 0 )
-       {
-               fprintf(stderr, "You must have a linux kernel specified as argv[2]\n");
-               exit(1);
-       }
-
-
-       actualKernelLen = kernelLen - ElfHeaderSize;
-
-       printf("actual kernel length (minus ELF header) = %ld/%lxx \n", actualKernelLen, actualKernelLen);
-
-       round = actualKernelLen % 4096;
-       roundedKernelLen = actualKernelLen;
-       if ( round )
-               roundedKernelLen += (4096 - round);
-
-       printf("Kernel length rounded up to a 4k multiple = %ld/%lxx \n", roundedKernelLen, roundedKernelLen);
-       roundedKernelPages = roundedKernelLen / 4096;
-       printf("Kernel pages to copy = %ld/%lxx\n", roundedKernelPages, roundedKernelPages);
-
-
-
-       /* Sysmap file */
-       fseek(sysmap, 0, SEEK_END);
-       sysmapFileLen = ftell(sysmap);
-       fseek(sysmap, 0, SEEK_SET);
-       printf("%s file size = %ld\n", argv[1], sysmapFileLen);
-
-       sysmapLen = sysmapFileLen;
-
-       roundR = 4096 - (sysmapLen % 4096);
-       if (roundR)
-       {
-               printf("Rounding System Map file up to a multiple of 4096, adding %ld\n", roundR);
-               sysmapLen += roundR;
-       }
-       printf("Rounded System Map size is %ld\n", sysmapLen);
-  
-  /* Process the Sysmap file to determine the true end of the kernel */
-       sysmapPages = sysmapLen / 4096;
-       printf("System map pages to copy = %ld\n", sysmapPages);
-       /* read the whole file line by line, expect that it doesn't fail */
-       while ( fgets(inbuf, 4096, sysmap) )  ;
-       /* search for _end in the last page of the system map */
-       ptr_end = strstr(inbuf, " _end");
-       if (!ptr_end)
-       {
-               fprintf(stderr, "Unable to find _end in the sysmap file \n");
-               fprintf(stderr, "inbuf: \n");
-               fprintf(stderr, "%s \n", inbuf);
-               exit(1);
-       }
-       printf("Found _end in the last page of the sysmap - backing up 10 characters it looks like %s", ptr_end-10);
-       sysmapStartOffs = (unsigned int)strtol(ptr_end-10, NULL, 16);
-       /* calc how many pages we need to insert between the vmlinux and the start of the sysmap */
-       padPages = sysmapStartOffs/4096 - roundedKernelPages;
-
-       /* Check and see if the vmlinux is larger than _end in System.map */
-       if (padPages < 0)
-       { /* vmlinux is larger than _end - adjust the offset to start the embedded system map */ 
-               sysmapStartOffs = roundedKernelLen;
-               printf("vmlinux is larger than _end indicates it needs to be - sysmapStartOffs = %lx \n", sysmapStartOffs);
-               padPages = 0;
-               printf("will insert %lx pages between the vmlinux and the start of the sysmap \n", padPages);
-       }
-       else
-       { /* _end is larger than vmlinux - use the sysmapStartOffs we calculated from the system map */
-               printf("vmlinux is smaller than _end indicates is needed - sysmapStartOffs = %lx \n", sysmapStartOffs);
-               printf("will insert %lx pages between the vmlinux and the start of the sysmap \n", padPages);
-       }
-
-
-
-
-       /* Copy 64K ELF header */
-       for (i=0; i<(ElfPages); ++i)
-       {
-               get4k( inputVmlinux, inbuf );
-               put4k( outputVmlinux, inbuf );
-       }
-
-  
-       /* Copy the vmlinux (as full pages). */
-       fseek(inputVmlinux, ElfHeaderSize, SEEK_SET);
-       for ( i=0; i<roundedKernelPages; ++i )
-       {
-               get4k( inputVmlinux, inbuf );
-    
-               /* Set the offsets (of the start and end) of the embedded sysmap so it is set in the vmlinux.sm */
-               if ( i == 0 )
-               {
-                       unsigned long * p;
-                       printf("Storing embedded_sysmap_start at 0x3c\n");
-                       p = (unsigned long *)(inbuf + 0x3c);
-
-#if (BYTE_ORDER == __BIG_ENDIAN)
-                       *p = sysmapStartOffs;
-#else
-                       *p = bswap_32(sysmapStartOffs);
-#endif
-
-                       printf("Storing embedded_sysmap_end at 0x44\n");
-                       p = (unsigned long *)(inbuf + 0x44);
-
-#if (BYTE_ORDER == __BIG_ENDIAN)
-                       *p = sysmapStartOffs + sysmapFileLen;
-#else
-                       *p = bswap_32(sysmapStartOffs + sysmapFileLen);
-#endif
-               }
-    
-               put4k( outputVmlinux, inbuf );
-       }
-  
-  
-       /* Insert any pad pages between the end of the vmlinux and where the system map needs to be. */
-       for (i=0; i<padPages; ++i)
-       {
-               memset(inbuf, 0, 4096);
-               put4k(outputVmlinux, inbuf);
-       }
-
-
-       /* Copy the system map (as full pages). */
-       fseek(sysmap, 0, SEEK_SET);  /* start reading from begining of the system map */
-       for ( i=0; i<sysmapPages; ++i )
-       {
-               get4k( sysmap, inbuf );
-               put4k( outputVmlinux, inbuf );
-       }
-
-
-       fclose(sysmap);
-       fclose(inputVmlinux);
-       fclose(outputVmlinux);
-       /* Set permission to executable */
-       chmod(argv[3], S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
-
-       return 0;
-}
-
diff --git a/arch/ppc64/kernel/chrp_setup.c b/arch/ppc64/kernel/chrp_setup.c
deleted file mode 100644 (file)
index d2a7377..0000000
+++ /dev/null
@@ -1,464 +0,0 @@
-/*
- *  linux/arch/ppc/kernel/setup.c
- *
- *  Copyright (C) 1995  Linus Torvalds
- *  Adapted from 'alpha' version by Gary Thomas
- *  Modified by Cort Dougan (cort@cs.nmt.edu)
- *  Modified by PPC64 Team, IBM Corp
- *
- * 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; either version
- * 2 of the License, or (at your option) any later version.
- */
-
-/*
- * bootup setup stuff..
- */
-
-#include <linux/config.h>
-#include <linux/errno.h>
-#include <linux/sched.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/stddef.h>
-#include <linux/unistd.h>
-#include <linux/slab.h>
-#include <linux/user.h>
-#include <linux/a.out.h>
-#include <linux/tty.h>
-#include <linux/major.h>
-#include <linux/interrupt.h>
-#include <linux/reboot.h>
-#include <linux/init.h>
-#include <linux/ioport.h>
-#include <linux/console.h>
-#include <linux/pci.h>
-#include <linux/version.h>
-#include <linux/adb.h>
-#include <linux/module.h>
-#include <linux/delay.h>
-
-#include <linux/irq.h>
-#include <linux/seq_file.h>
-#include <linux/root_dev.h>
-
-#include <asm/mmu.h>
-#include <asm/processor.h>
-#include <asm/io.h>
-#include <asm/pgtable.h>
-#include <asm/prom.h>
-#include <asm/rtas.h>
-#include <asm/pci-bridge.h>
-#include <asm/iommu.h>
-#include <asm/dma.h>
-#include <asm/machdep.h>
-#include <asm/irq.h>
-#include <asm/naca.h>
-#include <asm/time.h>
-#include <asm/nvram.h>
-
-#include "i8259.h"
-#include "open_pic.h"
-#include <asm/xics.h>
-#include <asm/ppcdebug.h>
-#include <asm/cputable.h>
-
-void chrp_progress(char *, unsigned short);
-
-extern void pSeries_init_openpic(void);
-
-extern void find_and_init_phbs(void);
-extern void pSeries_final_fixup(void);
-
-extern void pSeries_get_boot_time(struct rtc_time *rtc_time);
-extern void pSeries_get_rtc_time(struct rtc_time *rtc_time);
-extern int  pSeries_set_rtc_time(struct rtc_time *rtc_time);
-void pSeries_calibrate_decr(void);
-void fwnmi_init(void);
-extern void SystemReset_FWNMI(void), MachineCheck_FWNMI(void); /* from head.S */
-int fwnmi_active;  /* TRUE if an FWNMI handler is present */
-
-dev_t boot_dev;
-unsigned long  virtPython0Facilities = 0;  // python0 facility area (memory mapped io) (64-bit format) VIRTUAL address.
-
-extern unsigned long loops_per_jiffy;
-
-extern unsigned long ppc_proc_freq;
-extern unsigned long ppc_tb_freq;
-
-void chrp_get_cpuinfo(struct seq_file *m)
-{
-       struct device_node *root;
-       const char *model = "";
-
-       root = of_find_node_by_path("/");
-       if (root)
-               model = get_property(root, "model", NULL);
-       seq_printf(m, "machine\t\t: CHRP %s\n", model);
-       of_node_put(root);
-}
-
-#define I8042_DATA_REG 0x60
-
-void __init chrp_request_regions(void)
-{
-       struct device_node *i8042;
-
-       request_region(0x20,0x20,"pic1");
-       request_region(0xa0,0x20,"pic2");
-       request_region(0x00,0x20,"dma1");
-       request_region(0x40,0x20,"timer");
-       request_region(0x80,0x10,"dma page reg");
-       request_region(0xc0,0x20,"dma2");
-
-       /*
-        * Some machines have an unterminated i8042 so check the device
-        * tree and reserve the region if it does not appear. Later on
-        * the i8042 code will try and reserve this region and fail.
-        */
-       if (!(i8042 = of_find_node_by_type(NULL, "8042")))
-               request_region(I8042_DATA_REG, 16, "reserved (no i8042)");
-       of_node_put(i8042);
-}
-
-void __init
-chrp_setup_arch(void)
-{
-       struct device_node *root;
-       unsigned int *opprop;
-       
-       /* openpic global configuration register (64-bit format). */
-       /* openpic Interrupt Source Unit pointer (64-bit format). */
-       /* python0 facility area (mmio) (64-bit format) REAL address. */
-
-       /* init to some ~sane value until calibrate_delay() runs */
-       loops_per_jiffy = 50000000;
-
-       if (ROOT_DEV == 0) {
-               printk("No ramdisk, default root is /dev/sda2\n");
-               ROOT_DEV = Root_SDA2;
-       }
-
-       printk("Boot arguments: %s\n", cmd_line);
-
-       fwnmi_init();
-
-#ifndef CONFIG_PPC_ISERIES
-       /* Find and initialize PCI host bridges */
-       /* iSeries needs to be done much later. */
-       eeh_init();
-       find_and_init_phbs();
-#endif
-
-       /* Find the Open PIC if present */
-       root = of_find_node_by_path("/");
-       opprop = (unsigned int *) get_property(root,
-                               "platform-open-pic", NULL);
-       if (opprop != 0) {
-               int n = prom_n_addr_cells(root);
-               unsigned long openpic;
-
-               for (openpic = 0; n > 0; --n)
-                       openpic = (openpic << 32) + *opprop++;
-               printk(KERN_DEBUG "OpenPIC addr: %lx\n", openpic);
-               OpenPIC_Addr = __ioremap(openpic, 0x40000, _PAGE_NO_CACHE);
-       }
-       of_node_put(root);
-
-#ifdef CONFIG_DUMMY_CONSOLE
-       conswitchp = &dummy_con;
-#endif
-
-#ifdef CONFIG_PPC_PSERIES
-       pSeries_nvram_init();
-#endif
-}
-
-void __init
-chrp_init2(void)
-{
-       /* Manually leave the kernel version on the panel. */
-       ppc_md.progress("Linux ppc64\n", 0);
-       ppc_md.progress(UTS_RELEASE, 0);
-}
-
-/* Initialize firmware assisted non-maskable interrupts if
- * the firmware supports this feature.
- *
- */
-void __init fwnmi_init(void)
-{
-       int ret;
-       int ibm_nmi_register = rtas_token("ibm,nmi-register");
-       if (ibm_nmi_register == RTAS_UNKNOWN_SERVICE)
-               return;
-       ret = rtas_call(ibm_nmi_register, 2, 1, NULL,
-                       __pa((unsigned long)SystemReset_FWNMI),
-                       __pa((unsigned long)MachineCheck_FWNMI));
-       if (ret == 0)
-               fwnmi_active = 1;
-}
-
-/* Early initialization.  Relocation is on but do not reference unbolted pages */
-void __init pSeries_init_early(void)
-{
-       void *comport;
-
-       hpte_init_pSeries();
-
-       if (ppc64_iommu_off)
-               pci_dma_init_direct();
-       else
-               tce_init_pSeries();
-
-#ifdef CONFIG_SMP
-       smp_init_pSeries();
-#endif
-
-       /* Map the uart for udbg. */
-       comport = (void *)__ioremap(naca->serialPortAddr, 16, _PAGE_NO_CACHE);
-       udbg_init_uart(comport);
-
-       ppc_md.udbg_putc = udbg_putc;
-       ppc_md.udbg_getc = udbg_getc;
-       ppc_md.udbg_getc_poll = udbg_getc_poll;
-}
-
-void __init
-chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
-         unsigned long r6, unsigned long r7)
-{
-       struct device_node * dn;
-       char * hypertas;
-       unsigned int len;
-
-       ppc_md.setup_arch     = chrp_setup_arch;
-       ppc_md.get_cpuinfo    = chrp_get_cpuinfo;
-       if (naca->interrupt_controller == IC_OPEN_PIC) {
-               ppc_md.init_IRQ       = pSeries_init_openpic; 
-               ppc_md.get_irq        = openpic_get_irq;
-       } else {
-               ppc_md.init_IRQ       = xics_init_IRQ;
-               ppc_md.get_irq        = xics_get_irq;
-       }
-
-       ppc_md.log_error      = pSeries_log_error;
-
-       ppc_md.init           = chrp_init2;
-
-       ppc_md.pcibios_fixup  = pSeries_final_fixup;
-
-       ppc_md.restart        = rtas_restart;
-       ppc_md.power_off      = rtas_power_off;
-       ppc_md.halt           = rtas_halt;
-       ppc_md.panic          = rtas_os_term;
-
-       ppc_md.get_boot_time  = pSeries_get_boot_time;
-       ppc_md.get_rtc_time   = pSeries_get_rtc_time;
-       ppc_md.set_rtc_time   = pSeries_set_rtc_time;
-       ppc_md.calibrate_decr = pSeries_calibrate_decr;
-
-       ppc_md.progress       = chrp_progress;
-
-        /* Build up the firmware_features bitmask field
-         * using contents of device-tree/ibm,hypertas-functions.
-         * Ultimately this functionality may be moved into prom.c prom_init().
-         */
-       cur_cpu_spec->firmware_features = 0;
-       dn = of_find_node_by_path("/rtas");
-       if (dn == NULL) {
-               printk(KERN_ERR "WARNING ! Cannot find RTAS in device-tree !\n");
-               goto no_rtas;
-       }
-
-       hypertas = get_property(dn, "ibm,hypertas-functions", &len);
-       if (hypertas) {
-               while (len > 0){
-                       int i, hypertas_len;
-                       /* check value against table of strings */
-                       for(i=0; i < FIRMWARE_MAX_FEATURES ;i++) {
-                               if ((firmware_features_table[i].name) &&
-                                   (strcmp(firmware_features_table[i].name,hypertas))==0) {
-                                       /* we have a match */
-                                       cur_cpu_spec->firmware_features |= 
-                                               (firmware_features_table[i].val);
-                                       break;
-                               } 
-                       }
-                       hypertas_len = strlen(hypertas);
-                       len -= hypertas_len +1;
-                       hypertas+= hypertas_len +1;
-               }
-       }
-
-       of_node_put(dn);
- no_rtas:
-       printk(KERN_INFO "firmware_features = 0x%lx\n", 
-              cur_cpu_spec->firmware_features);
-}
-
-void chrp_progress(char *s, unsigned short hex)
-{
-       struct device_node *root;
-       int width, *p;
-       char *os;
-       static int display_character, set_indicator;
-       static int max_width;
-       static spinlock_t progress_lock = SPIN_LOCK_UNLOCKED;
-       static int pending_newline = 0;  /* did last write end with unprinted newline? */
-
-       if (!rtas.base)
-               return;
-
-       if (max_width == 0) {
-               if ((root = find_path_device("/rtas")) &&
-                    (p = (unsigned int *)get_property(root,
-                                                      "ibm,display-line-length",
-                                                      NULL)))
-                       max_width = *p;
-               else
-                       max_width = 0x10;
-               display_character = rtas_token("display-character");
-               set_indicator = rtas_token("set-indicator");
-       }
-
-       if (display_character == RTAS_UNKNOWN_SERVICE) {
-               /* use hex display if available */
-               if (set_indicator != RTAS_UNKNOWN_SERVICE)
-                       rtas_call(set_indicator, 3, 1, NULL, 6, 0, hex);
-               return;
-       }
-
-       spin_lock(&progress_lock);
-
-       /*
-        * Last write ended with newline, but we didn't print it since
-        * it would just clear the bottom line of output. Print it now
-        * instead.
-        *
-        * If no newline is pending, print a CR to start output at the
-        * beginning of the line.
-        */
-       if (pending_newline) {
-               rtas_call(display_character, 1, 1, NULL, '\r');
-               rtas_call(display_character, 1, 1, NULL, '\n');
-               pending_newline = 0;
-       } else {
-               rtas_call(display_character, 1, 1, NULL, '\r');
-       }
-       width = max_width;
-       os = s;
-       while (*os) {
-               if (*os == '\n' || *os == '\r') {
-                       /* Blank to end of line. */
-                       while (width-- > 0)
-                               rtas_call(display_character, 1, 1, NULL, ' ');
-                       /* If newline is the last character, save it
-                        * until next call to avoid bumping up the
-                        * display output.
-                        */
-                       if (*os == '\n' && !os[1]) {
-                               pending_newline = 1;
-                               spin_unlock(&progress_lock);
-                               return;
-                       }
-                       /* RTAS wants CR-LF, not just LF */
-                       if (*os == '\n') {
-                               rtas_call(display_character, 1, 1, NULL, '\r');
-                               rtas_call(display_character, 1, 1, NULL, '\n');
-                       } else {
-                               /* CR might be used to re-draw a line, so we'll
-                                * leave it alone and not add LF.
-                                */
-                               rtas_call(display_character, 1, 1, NULL, *os);
-                       }
-                       width = max_width;
-               } else {
-                       width--;
-                       rtas_call(display_character, 1, 1, NULL, *os);
-               }
-               os++;
-               /* if we overwrite the screen length */
-               if (width <= 0)
-                       while ((*os != 0) && (*os != '\n') && (*os != '\r'))
-                               os++;
-       }
-       /* Blank to end of line. */
-       while (width-- > 0)
-               rtas_call(display_character, 1, 1, NULL, ' ');
-
-       spin_unlock(&progress_lock);
-}
-
-extern void setup_default_decr(void);
-
-/* Some sane defaults: 125 MHz timebase, 1GHz processor */
-#define DEFAULT_TB_FREQ                125000000UL
-#define DEFAULT_PROC_FREQ      (DEFAULT_TB_FREQ * 8)
-
-void __init pSeries_calibrate_decr(void)
-{
-       struct device_node *cpu;
-       struct div_result divres;
-       unsigned int *fp;
-       int node_found;
-
-       /*
-        * The cpu node should have a timebase-frequency property
-        * to tell us the rate at which the decrementer counts.
-        */
-       cpu = of_find_node_by_type(NULL, "cpu");
-
-       ppc_tb_freq = DEFAULT_TB_FREQ;          /* hardcoded default */
-       node_found = 0;
-       if (cpu != 0) {
-               fp = (unsigned int *)get_property(cpu, "timebase-frequency",
-                                                 NULL);
-               if (fp != 0) {
-                       node_found = 1;
-                       ppc_tb_freq = *fp;
-               }
-       }
-       if (!node_found)
-               printk(KERN_ERR "WARNING: Estimating decrementer frequency "
-                               "(not found)\n");
-
-       ppc_proc_freq = DEFAULT_PROC_FREQ;
-       node_found = 0;
-       if (cpu != 0) {
-               fp = (unsigned int *)get_property(cpu, "clock-frequency",
-                                                 NULL);
-               if (fp != 0) {
-                       node_found = 1;
-                       ppc_proc_freq = *fp;
-               }
-       }
-       if (!node_found)
-               printk(KERN_ERR "WARNING: Estimating processor frequency "
-                               "(not found)\n");
-
-       of_node_put(cpu);
-
-       printk(KERN_INFO "time_init: decrementer frequency = %lu.%.6lu MHz\n",
-              ppc_tb_freq/1000000, ppc_tb_freq%1000000);
-       printk(KERN_INFO "time_init: processor frequency   = %lu.%.6lu MHz\n",
-              ppc_proc_freq/1000000, ppc_proc_freq%1000000);
-
-       tb_ticks_per_jiffy = ppc_tb_freq / HZ;
-       tb_ticks_per_sec = tb_ticks_per_jiffy * HZ;
-       tb_ticks_per_usec = ppc_tb_freq / 1000000;
-       tb_to_us = mulhwu_scale_factor(ppc_tb_freq, 1000000);
-       div128_by_32(1024*1024, 0, tb_ticks_per_sec, &divres);
-       tb_to_xs = divres.result_low;
-
-       setup_default_decr();
-}
diff --git a/arch/ppc64/kernel/pSeries_htab.c b/arch/ppc64/kernel/pSeries_htab.c
deleted file mode 100644 (file)
index dcafb21..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-/*
- * pSeries hashtable management.
- *
- * SMP scalability work:
- *    Copyright (C) 2001 Anton Blanchard <anton@au.ibm.com>, IBM
- * 
- * 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; either version
- * 2 of the License, or (at your option) any later version.
- */
-#include <linux/spinlock.h>
-#include <linux/bitops.h>
-#include <linux/threads.h>
-#include <linux/smp.h>
-
-#include <asm/abs_addr.h>
-#include <asm/machdep.h>
-#include <asm/mmu.h>
-#include <asm/mmu_context.h>
-#include <asm/pgtable.h>
-#include <asm/tlbflush.h>
-#include <asm/tlb.h>
-#include <asm/cputable.h>
-
-#define HPTE_LOCK_BIT 3
-
-static inline void pSeries_lock_hpte(HPTE *hptep)
-{
-       unsigned long *word = &hptep->dw0.dword0;
-
-       while (1) {
-               if (!test_and_set_bit(HPTE_LOCK_BIT, word))
-                       break;
-               while(test_bit(HPTE_LOCK_BIT, word))
-                       cpu_relax();
-       }
-}
-
-static inline void pSeries_unlock_hpte(HPTE *hptep)
-{
-       unsigned long *word = &hptep->dw0.dword0;
-
-       asm volatile("lwsync":::"memory");
-       clear_bit(HPTE_LOCK_BIT, word);
-}
-
-static spinlock_t pSeries_tlbie_lock = SPIN_LOCK_UNLOCKED;
-
-long pSeries_hpte_insert(unsigned long hpte_group, unsigned long va,
-                        unsigned long prpn, int secondary,
-                        unsigned long hpteflags, int bolted, int large)
-{
-       unsigned long arpn = physRpn_to_absRpn(prpn);
-       HPTE *hptep = htab_data.htab + hpte_group;
-       Hpte_dword0 dw0;
-       HPTE lhpte;
-       int i;
-
-       for (i = 0; i < HPTES_PER_GROUP; i++) {
-               dw0 = hptep->dw0.dw0;
-
-               if (!dw0.v) {
-                       /* retry with lock held */
-                       pSeries_lock_hpte(hptep);
-                       dw0 = hptep->dw0.dw0;
-                       if (!dw0.v)
-                               break;
-                       pSeries_unlock_hpte(hptep);
-               }
-
-               hptep++;
-       }
-
-       if (i == HPTES_PER_GROUP)
-               return -1;
-
-       lhpte.dw1.dword1      = 0;
-       lhpte.dw1.dw1.rpn     = arpn;
-       lhpte.dw1.flags.flags = hpteflags;
-
-       lhpte.dw0.dword0      = 0;
-       lhpte.dw0.dw0.avpn    = va >> 23;
-       lhpte.dw0.dw0.h       = secondary;
-       lhpte.dw0.dw0.bolted  = bolted;
-       lhpte.dw0.dw0.v       = 1;
-
-       if (large) {
-               lhpte.dw0.dw0.l = 1;
-               lhpte.dw0.dw0.avpn &= ~0x1UL;
-       }
-
-       hptep->dw1.dword1 = lhpte.dw1.dword1;
-
-       /* Guarantee the second dword is visible before the valid bit */
-       __asm__ __volatile__ ("eieio" : : : "memory");
-
-       /*
-        * Now set the first dword including the valid bit
-        * NOTE: this also unlocks the hpte
-        */
-       hptep->dw0.dword0 = lhpte.dw0.dword0;
-
-       __asm__ __volatile__ ("ptesync" : : : "memory");
-
-       return i | (secondary << 3);
-}
-
-static long pSeries_hpte_remove(unsigned long hpte_group)
-{
-       HPTE *hptep;
-       Hpte_dword0 dw0;
-       int i;
-       int slot_offset;
-
-       /* pick a random entry to start at */
-       slot_offset = mftb() & 0x7;
-
-       for (i = 0; i < HPTES_PER_GROUP; i++) {
-               hptep = htab_data.htab + hpte_group + slot_offset;
-               dw0 = hptep->dw0.dw0;
-
-               if (dw0.v && !dw0.bolted) {
-                       /* retry with lock held */
-                       pSeries_lock_hpte(hptep);
-                       dw0 = hptep->dw0.dw0;
-                       if (dw0.v && !dw0.bolted)
-                               break;
-                       pSeries_unlock_hpte(hptep);
-               }
-
-               slot_offset++;
-               slot_offset &= 0x7;
-       }
-
-       if (i == HPTES_PER_GROUP)
-               return -1;
-
-       /* Invalidate the hpte. NOTE: this also unlocks it */
-       hptep->dw0.dword0 = 0;
-
-       return i;
-}
-
-static inline void set_pp_bit(unsigned long pp, HPTE *addr)
-{
-       unsigned long old;
-       unsigned long *p = &addr->dw1.dword1;
-
-       __asm__ __volatile__(
-       "1:     ldarx   %0,0,%3\n\
-               rldimi  %0,%2,0,61\n\
-               stdcx.  %0,0,%3\n\
-               bne     1b"
-       : "=&r" (old), "=m" (*p)
-       : "r" (pp), "r" (p), "m" (*p)
-       : "cc");
-}
-
-/*
- * Only works on small pages. Yes its ugly to have to check each slot in
- * the group but we only use this during bootup.
- */
-static long pSeries_hpte_find(unsigned long vpn)
-{
-       HPTE *hptep;
-       unsigned long hash;
-       unsigned long i, j;
-       long slot;
-       Hpte_dword0 dw0;
-
-       hash = hpt_hash(vpn, 0);
-
-       for (j = 0; j < 2; j++) {
-               slot = (hash & htab_data.htab_hash_mask) * HPTES_PER_GROUP;
-               for (i = 0; i < HPTES_PER_GROUP; i++) {
-                       hptep = htab_data.htab + slot;
-                       dw0 = hptep->dw0.dw0;
-
-                       if ((dw0.avpn == (vpn >> 11)) && dw0.v &&
-                           (dw0.h == j)) {
-                               /* HPTE matches */
-                               if (j)
-                                       slot = -slot;
-                               return slot;
-                       }
-                       ++slot;
-               }
-               hash = ~hash;
-       }
-
-       return -1;
-}
-
-static long pSeries_hpte_updatepp(unsigned long slot, unsigned long newpp,
-                                 unsigned long va, int large, int local)
-{
-       HPTE *hptep = htab_data.htab + slot;
-       Hpte_dword0 dw0;
-       unsigned long avpn = va >> 23;
-       int ret = 0;
-
-       if (large)
-               avpn &= ~0x1UL;
-
-       pSeries_lock_hpte(hptep);
-
-       dw0 = hptep->dw0.dw0;
-
-       /* Even if we miss, we need to invalidate the TLB */
-       if ((dw0.avpn != avpn) || !dw0.v) {
-               pSeries_unlock_hpte(hptep);
-               ret = -1;
-       } else {
-               set_pp_bit(newpp, hptep);
-               pSeries_unlock_hpte(hptep);
-       }
-
-       /* Ensure it is out of the tlb too */
-       if ((cur_cpu_spec->cpu_features & CPU_FTR_TLBIEL) && !large && local) {
-               tlbiel(va);
-       } else {
-               if (!(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE))
-                       spin_lock(&pSeries_tlbie_lock);
-               tlbie(va, large);
-               if (!(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE))
-                       spin_unlock(&pSeries_tlbie_lock);
-       }
-
-       return ret;
-}
-
-/*
- * Update the page protection bits. Intended to be used to create
- * guard pages for kernel data structures on pages which are bolted
- * in the HPT. Assumes pages being operated on will not be stolen.
- * Does not work on large pages.
- *
- * No need to lock here because we should be the only user.
- */
-static void pSeries_hpte_updateboltedpp(unsigned long newpp, unsigned long ea)
-{
-       unsigned long vsid, va, vpn, flags;
-       long slot;
-       HPTE *hptep;
-
-       vsid = get_kernel_vsid(ea);
-       va = (vsid << 28) | (ea & 0x0fffffff);
-       vpn = va >> PAGE_SHIFT;
-
-       slot = pSeries_hpte_find(vpn);
-       if (slot == -1)
-               panic("could not find page to bolt\n");
-       hptep = htab_data.htab + slot;
-
-       set_pp_bit(newpp, hptep);
-
-       /* Ensure it is out of the tlb too */
-       if (!(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE))
-               spin_lock_irqsave(&pSeries_tlbie_lock, flags);
-       tlbie(va, 0);
-       if (!(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE))
-               spin_unlock_irqrestore(&pSeries_tlbie_lock, flags);
-}
-
-static void pSeries_hpte_invalidate(unsigned long slot, unsigned long va,
-                                   int large, int local)
-{
-       HPTE *hptep = htab_data.htab + slot;
-       Hpte_dword0 dw0;
-       unsigned long avpn = va >> 23;
-       unsigned long flags;
-
-       if (large)
-               avpn &= ~0x1UL;
-
-       local_irq_save(flags);
-       pSeries_lock_hpte(hptep);
-
-       dw0 = hptep->dw0.dw0;
-
-       /* Even if we miss, we need to invalidate the TLB */
-       if ((dw0.avpn != avpn) || !dw0.v) {
-               pSeries_unlock_hpte(hptep);
-       } else {
-               /* Invalidate the hpte. NOTE: this also unlocks it */
-               hptep->dw0.dword0 = 0;
-       }
-
-       /* Invalidate the tlb */
-       if ((cur_cpu_spec->cpu_features & CPU_FTR_TLBIEL) && !large && local) {
-               tlbiel(va);
-       } else {
-               if (!(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE))
-                       spin_lock(&pSeries_tlbie_lock);
-               tlbie(va, large);
-               if (!(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE))
-                       spin_unlock(&pSeries_tlbie_lock);
-       }
-       local_irq_restore(flags);
-}
-
-static void pSeries_flush_hash_range(unsigned long context,
-                                    unsigned long number, int local)
-{
-       unsigned long vsid, vpn, va, hash, secondary, slot, flags, avpn;
-       int i, j;
-       HPTE *hptep;
-       Hpte_dword0 dw0;
-       struct ppc64_tlb_batch *batch = &__get_cpu_var(ppc64_tlb_batch);
-
-       /* XXX fix for large ptes */
-       unsigned long large = 0;
-
-       local_irq_save(flags);
-
-       j = 0;
-       for (i = 0; i < number; i++) {
-               if ((batch->addr[i] >= USER_START) &&
-                   (batch->addr[i] <= USER_END))
-                       vsid = get_vsid(context, batch->addr[i]);
-               else
-                       vsid = get_kernel_vsid(batch->addr[i]);
-
-               va = (vsid << 28) | (batch->addr[i] & 0x0fffffff);
-               batch->vaddr[j] = va;
-               if (large)
-                       vpn = va >> LARGE_PAGE_SHIFT;
-               else
-                       vpn = va >> PAGE_SHIFT;
-               hash = hpt_hash(vpn, large);
-               secondary = (pte_val(batch->pte[i]) & _PAGE_SECONDARY) >> 15;
-               if (secondary)
-                       hash = ~hash;
-               slot = (hash & htab_data.htab_hash_mask) * HPTES_PER_GROUP;
-               slot += (pte_val(batch->pte[i]) & _PAGE_GROUP_IX) >> 12;
-
-               hptep = htab_data.htab + slot;
-
-               avpn = va >> 23;
-               if (large)
-                       avpn &= ~0x1UL;
-
-               pSeries_lock_hpte(hptep);
-
-               dw0 = hptep->dw0.dw0;
-
-               /* Even if we miss, we need to invalidate the TLB */
-               if ((dw0.avpn != avpn) || !dw0.v) {
-                       pSeries_unlock_hpte(hptep);
-               } else {
-                       /* Invalidate the hpte. NOTE: this also unlocks it */
-                       hptep->dw0.dword0 = 0;
-               }
-
-               j++;
-       }
-
-       if ((cur_cpu_spec->cpu_features & CPU_FTR_TLBIEL) && !large && local) {
-               asm volatile("ptesync":::"memory");
-
-               for (i = 0; i < j; i++)
-                       __tlbiel(batch->vaddr[i]);
-
-               asm volatile("ptesync":::"memory");
-       } else {
-               /* XXX double check that it is safe to take this late */
-               if (!(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE))
-                       spin_lock(&pSeries_tlbie_lock);
-
-               asm volatile("ptesync":::"memory");
-
-               for (i = 0; i < j; i++)
-                       __tlbie(batch->vaddr[i], 0);
-
-               asm volatile("eieio; tlbsync; ptesync":::"memory");
-
-               if (!(cur_cpu_spec->cpu_features & CPU_FTR_LOCKLESS_TLBIE))
-                       spin_unlock(&pSeries_tlbie_lock);
-       }
-
-       local_irq_restore(flags);
-}
-
-void hpte_init_pSeries(void)
-{
-       struct device_node *root;
-       const char *model;
-
-       ppc_md.hpte_invalidate  = pSeries_hpte_invalidate;
-       ppc_md.hpte_updatepp    = pSeries_hpte_updatepp;
-       ppc_md.hpte_updateboltedpp = pSeries_hpte_updateboltedpp;
-       ppc_md.hpte_insert      = pSeries_hpte_insert;
-       ppc_md.hpte_remove      = pSeries_hpte_remove;
-
-       /* Disable TLB batching on nighthawk */
-       root = of_find_node_by_path("/");
-       if (root) {
-               model = get_property(root, "model", NULL);
-               if (!strcmp(model, "CHRP IBM,9076-N81")) {
-                       of_node_put(root);
-                       return;
-               }
-               of_node_put(root);
-       }
-
-       ppc_md.flush_hash_range = pSeries_flush_hash_range;
-}
diff --git a/arch/ppc64/kernel/pmac_iommu.c b/arch/ppc64/kernel/pmac_iommu.c
deleted file mode 100644 (file)
index 0e91536..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * arch/ppc64/kernel/pmac_iommu.c
- *
- * Copyright (C) 2004 Olof Johansson <olof@austin.ibm.com>, IBM Corporation
- *
- * Based on pSeries_iommu.c:
- * Copyright (C) 2001 Mike Corrigan & Dave Engebretsen, IBM Corporation
- * Copyright (C) 2004 Olof Johansson <olof@austin.ibm.com>, IBM Corporation
- *
- * Dynamic DMA mapping support, PowerMac G5 (DART)-specific parts.
- *
- * 
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * 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
- */
-
-#include <linux/config.h>
-#include <linux/init.h>
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/mm.h>
-#include <linux/spinlock.h>
-#include <linux/string.h>
-#include <linux/pci.h>
-#include <linux/dma-mapping.h>
-#include <linux/vmalloc.h>
-#include <asm/io.h>
-#include <asm/prom.h>
-#include <asm/rtas.h>
-#include <asm/ppcdebug.h>
-#include <asm/iommu.h>
-#include <asm/pci-bridge.h>
-#include <asm/machdep.h>
-#include <asm/abs_addr.h>
-#include <asm/cacheflush.h>
-#include "pci.h"
-
-
-/* physical base of DART registers */
-#define DART_BASE        0xf8033000UL
-
-/* Offset from base to control register */
-#define DARTCNTL   0
-/* Offset from base to exception register */
-#define DARTEXCP   0x10
-/* Offset from base to TLB tag registers */
-#define DARTTAG    0x1000
-
-
-/* Control Register fields */
-
-/* base address of table (pfn) */
-#define DARTCNTL_BASE_MASK    0xfffff
-#define DARTCNTL_BASE_SHIFT   12
-
-#define DARTCNTL_FLUSHTLB     0x400
-#define DARTCNTL_ENABLE       0x200
-
-/* size of table in pages */
-#define DARTCNTL_SIZE_MASK    0x1ff
-#define DARTCNTL_SIZE_SHIFT   0
-
-/* DART table fields */
-#define DARTMAP_VALID   0x80000000
-#define DARTMAP_RPNMASK 0x00ffffff
-
-/* Physical base address and size of the DART table */
-unsigned long dart_tablebase;
-unsigned long dart_tablesize;
-
-/* Virtual base address of the DART table */
-static u32 *dart_vbase;
-
-/* Mapped base address for the dart */
-static unsigned int *dart; 
-
-/* Dummy val that entries are set to when unused */
-static unsigned int dart_emptyval;
-
-static struct iommu_table iommu_table_pmac;
-static int dart_dirty;
-
-#define DBG(...)
-
-static inline void dart_tlb_invalidate_all(void)
-{
-       unsigned long l = 0;
-       unsigned int reg;
-       unsigned long limit;
-
-       DBG("dart: flush\n");
-
-       /* To invalidate the DART, set the DARTCNTL_FLUSHTLB bit in the
-        * control register and wait for it to clear.
-        *
-        * Gotcha: Sometimes, the DART won't detect that the bit gets
-        * set. If so, clear it and set it again.
-        */ 
-
-       limit = 0;
-
-retry:
-       reg = in_be32((unsigned int *)dart+DARTCNTL);
-       reg |= DARTCNTL_FLUSHTLB;
-       out_be32((unsigned int *)dart+DARTCNTL, reg);
-
-       l = 0;
-       while ((in_be32((unsigned int *)dart+DARTCNTL) & DARTCNTL_FLUSHTLB) &&
-               l < (1L<<limit)) {
-               l++;
-       }
-       if (l == (1L<<limit)) {
-               if (limit < 4) {
-                       limit++;
-                       reg = in_be32((unsigned int *)dart+DARTCNTL);
-                       reg &= ~DARTCNTL_FLUSHTLB;
-                       out_be32((unsigned int *)dart+DARTCNTL, reg);
-                       goto retry;
-               } else
-                       panic("U3-DART: TLB did not flush after waiting a long "
-                             "time. Buggy U3 ?");
-       }
-}
-
-static void dart_flush(struct iommu_table *tbl)
-{
-       if (dart_dirty)
-               dart_tlb_invalidate_all();
-       dart_dirty = 0;
-}
-
-static void dart_build_pmac(struct iommu_table *tbl, long index, 
-                           long npages, unsigned long uaddr,
-                           enum dma_data_direction direction)
-{
-       unsigned int *dp;
-       unsigned int rpn;
-
-       DBG("dart: build at: %lx, %lx, addr: %x\n", index, npages, uaddr);
-
-       dp = ((unsigned int*)tbl->it_base) + index;
-       
-       /* On pmac, all memory is contigous, so we can move this
-        * out of the loop.
-        */
-       while (npages--) {
-               rpn = virt_to_abs(uaddr) >> PAGE_SHIFT;
-
-               *(dp++) = DARTMAP_VALID | (rpn & DARTMAP_RPNMASK);
-
-               rpn++;
-               uaddr += PAGE_SIZE;
-       }
-
-       dart_dirty = 1;
-}
-
-
-static void dart_free_pmac(struct iommu_table *tbl, long index, long npages)
-{
-       unsigned int *dp;
-       
-       /* We don't worry about flushing the TLB cache. The only drawback of
-        * not doing it is that we won't catch buggy device drivers doing
-        * bad DMAs, but then no 32-bit architecture ever does either.
-        */
-
-       DBG("dart: free at: %lx, %lx\n", index, npages);
-
-       dp  = ((unsigned int *)tbl->it_base) + index;
-               
-       while (npages--)
-               *(dp++) = dart_emptyval;
-}
-
-
-static int dart_init(struct device_node *dart_node)
-{
-       unsigned int regword;
-       unsigned int i;
-       unsigned long tmp;
-       struct page *p;
-
-       if (dart_tablebase == 0 || dart_tablesize == 0) {
-               printk(KERN_INFO "U3-DART: table not allocated, using direct DMA\n");
-               return -ENODEV;
-       }
-
-       /* Make sure nothing from the DART range remains in the CPU cache
-        * from a previous mapping that existed before the kernel took
-        * over
-        */
-       flush_dcache_phys_range(dart_tablebase, dart_tablebase + dart_tablesize);
-
-       /* Allocate a spare page to map all invalid DART pages. We need to do
-        * that to work around what looks like a problem with the HT bridge
-        * prefetching into invalid pages and corrupting data
-        */
-       tmp = __get_free_pages(GFP_ATOMIC, 1);
-       if (tmp == 0)
-               panic("U3-DART: Cannot allocate spare page !");
-       dart_emptyval = DARTMAP_VALID |
-               ((virt_to_abs(tmp) >> PAGE_SHIFT) & DARTMAP_RPNMASK);
-
-       /* Map in DART registers. FIXME: Use device node to get base address */
-       dart = ioremap(DART_BASE, 0x7000);
-       if (dart == NULL)
-               panic("U3-DART: Cannot map registers !");
-
-       /* Set initial control register contents: table base, 
-        * table size and enable bit
-        */
-       regword = DARTCNTL_ENABLE | 
-               ((dart_tablebase >> PAGE_SHIFT) << DARTCNTL_BASE_SHIFT) |
-               (((dart_tablesize >> PAGE_SHIFT) & DARTCNTL_SIZE_MASK)
-                                << DARTCNTL_SIZE_SHIFT);
-       p = virt_to_page(dart_tablebase);
-       dart_vbase = ioremap(virt_to_abs(dart_tablebase), dart_tablesize);
-
-       /* Fill initial table */
-       for (i = 0; i < dart_tablesize/4; i++)
-               dart_vbase[i] = dart_emptyval;
-
-       /* Initialize DART with table base and enable it. */
-       out_be32((unsigned int *)dart, regword);
-
-       /* Invalidate DART to get rid of possible stale TLBs */
-       dart_tlb_invalidate_all();
-
-       iommu_table_pmac.it_busno = 0;
-       
-       /* Units of tce entries */
-       iommu_table_pmac.it_offset = 0;
-       
-       /* Set the tce table size - measured in pages */
-       iommu_table_pmac.it_size = dart_tablesize >> PAGE_SHIFT;
-
-       /* Initialize the common IOMMU code */
-       iommu_table_pmac.it_base = (unsigned long)dart_vbase;
-       iommu_table_pmac.it_index = 0;
-       iommu_table_pmac.it_blocksize = 1;
-       iommu_table_pmac.it_entrysize = sizeof(u32);
-       iommu_init_table(&iommu_table_pmac);
-
-       /* Reserve the last page of the DART to avoid possible prefetch
-        * past the DART mapped area
-        */
-       set_bit(iommu_table_pmac.it_mapsize - 1, iommu_table_pmac.it_map);
-
-       printk(KERN_INFO "U3-DART IOMMU initialized\n");
-
-       return 0;
-}
-
-
-void iommu_setup_pmac(void)
-{
-       struct pci_dev *dev = NULL;
-       struct device_node *dn;
-
-       /* Find the DART in the device-tree */
-       dn = of_find_compatible_node(NULL, "dart", "u3-dart");
-       if (dn == NULL)
-               return;
-
-       /* Setup low level TCE operations for the core IOMMU code */
-       ppc_md.tce_build = dart_build_pmac;
-       ppc_md.tce_free  = dart_free_pmac;
-       ppc_md.tce_flush = dart_flush;
-
-       /* Initialize the DART HW */
-       if (dart_init(dn))
-               return;
-
-       /* Setup pci_dma ops */
-       pci_iommu_init();
-
-       /* We only have one iommu table on the mac for now, which makes
-        * things simple. Setup all PCI devices to point to this table
-        */
-       while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
-               /* We must use pci_device_to_OF_node() to make sure that
-                * we get the real "final" pointer to the device in the
-                * pci_dev sysdata and not the temporary PHB one
-                */
-               struct device_node *dn = pci_device_to_OF_node(dev);
-               if (dn)
-                       dn->iommu_table = &iommu_table_pmac;
-       }
-}
-
-
-
-
diff --git a/arch/ppc64/kernel/stab.c b/arch/ppc64/kernel/stab.c
deleted file mode 100644 (file)
index 3eea165..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * PowerPC64 Segment Translation Support.
- *
- * Dave Engebretsen and Mike Corrigan {engebret|mikejc}@us.ibm.com
- *    Copyright (c) 2001 Dave Engebretsen
- *
- * Copyright (C) 2002 Anton Blanchard <anton@au.ibm.com>, IBM
- * 
- *      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; either version
- *      2 of the License, or (at your option) any later version.
- */
-
-#include <linux/config.h>
-#include <asm/pgtable.h>
-#include <asm/mmu.h>
-#include <asm/mmu_context.h>
-#include <asm/paca.h>
-#include <asm/naca.h>
-#include <asm/cputable.h>
-
-static int make_ste(unsigned long stab, unsigned long esid,
-                   unsigned long vsid);
-
-void slb_initialize(void);
-
-/*
- * Build an entry for the base kernel segment and put it into
- * the segment table or SLB.  All other segment table or SLB
- * entries are faulted in.
- */
-void stab_initialize(unsigned long stab)
-{
-       unsigned long vsid = get_kernel_vsid(KERNELBASE);
-
-       if (cur_cpu_spec->cpu_features & CPU_FTR_SLB) {
-               slb_initialize();
-       } else {
-               asm volatile("isync; slbia; isync":::"memory");
-               make_ste(stab, GET_ESID(KERNELBASE), vsid);
-
-               /* Order update */
-               asm volatile("sync":::"memory"); 
-       }
-}
-
-/* Both the segment table and SLB code uses the following cache */
-#define NR_STAB_CACHE_ENTRIES 8
-DEFINE_PER_CPU(long, stab_cache_ptr);
-DEFINE_PER_CPU(long, stab_cache[NR_STAB_CACHE_ENTRIES]);
-
-/*
- * Segment table stuff
- */
-
-/*
- * Create a segment table entry for the given esid/vsid pair.
- */
-static int make_ste(unsigned long stab, unsigned long esid, unsigned long vsid)
-{
-       unsigned long entry, group, old_esid, castout_entry, i;
-       unsigned int global_entry;
-       STE *ste, *castout_ste;
-       unsigned long kernel_segment = (REGION_ID(esid << SID_SHIFT) != 
-                                       USER_REGION_ID);
-
-       /* Search the primary group first. */
-       global_entry = (esid & 0x1f) << 3;
-       ste = (STE *)(stab | ((esid & 0x1f) << 7)); 
-
-       /* Find an empty entry, if one exists. */
-       for (group = 0; group < 2; group++) {
-               for (entry = 0; entry < 8; entry++, ste++) {
-                       if (!(ste->dw0.dw0.v)) {
-                               ste->dw0.dword0 = 0;
-                               ste->dw1.dword1 = 0;
-                               ste->dw1.dw1.vsid = vsid;
-                               ste->dw0.dw0.esid = esid;
-                               ste->dw0.dw0.kp = 1;
-                               if (!kernel_segment)
-                                       ste->dw0.dw0.ks = 1;
-                               asm volatile("eieio":::"memory");
-                               ste->dw0.dw0.v = 1;
-                               return (global_entry | entry);
-                       }
-               }
-               /* Now search the secondary group. */
-               global_entry = ((~esid) & 0x1f) << 3;
-               ste = (STE *)(stab | (((~esid) & 0x1f) << 7)); 
-       }
-
-       /*
-        * Could not find empty entry, pick one with a round robin selection.
-        * Search all entries in the two groups.
-        */
-       castout_entry = get_paca()->stab_rr;
-       for (i = 0; i < 16; i++) {
-               if (castout_entry < 8) {
-                       global_entry = (esid & 0x1f) << 3;
-                       ste = (STE *)(stab | ((esid & 0x1f) << 7)); 
-                       castout_ste = ste + castout_entry;
-               } else {
-                       global_entry = ((~esid) & 0x1f) << 3;
-                       ste = (STE *)(stab | (((~esid) & 0x1f) << 7)); 
-                       castout_ste = ste + (castout_entry - 8);
-               }
-
-               /* Dont cast out the first kernel segment */
-               if (castout_ste->dw0.dw0.esid != GET_ESID(KERNELBASE))
-                       break;
-
-               castout_entry = (castout_entry + 1) & 0xf;
-       }
-
-       get_paca()->stab_rr = (castout_entry + 1) & 0xf;
-
-       /* Modify the old entry to the new value. */
-
-       /* Force previous translations to complete. DRENG */
-       asm volatile("isync" : : : "memory");
-
-       castout_ste->dw0.dw0.v = 0;
-       asm volatile("sync" : : : "memory");    /* Order update */
-
-       castout_ste->dw0.dword0 = 0;
-       castout_ste->dw1.dword1 = 0;
-       castout_ste->dw1.dw1.vsid = vsid;
-       old_esid = castout_ste->dw0.dw0.esid;
-       castout_ste->dw0.dw0.esid = esid;
-       castout_ste->dw0.dw0.kp = 1;
-       if (!kernel_segment)
-               castout_ste->dw0.dw0.ks = 1;
-       asm volatile("eieio" : : : "memory");   /* Order update */
-       castout_ste->dw0.dw0.v  = 1;
-       asm volatile("slbie  %0" : : "r" (old_esid << SID_SHIFT)); 
-       /* Ensure completion of slbie */
-       asm volatile("sync" : : : "memory");
-
-       return (global_entry | (castout_entry & 0x7));
-}
-
-static inline void __ste_allocate(unsigned long esid, unsigned long vsid)
-{
-       unsigned char stab_entry;
-       unsigned long offset;
-       int region_id = REGION_ID(esid << SID_SHIFT);
-
-       stab_entry = make_ste(get_paca()->stab_addr, esid, vsid);
-
-       if (region_id != USER_REGION_ID)
-               return;
-
-       offset = __get_cpu_var(stab_cache_ptr);
-       if (offset < NR_STAB_CACHE_ENTRIES)
-               __get_cpu_var(stab_cache[offset++]) = stab_entry;
-       else
-               offset = NR_STAB_CACHE_ENTRIES+1;
-       __get_cpu_var(stab_cache_ptr) = offset;
-}
-
-/*
- * Allocate a segment table entry for the given ea.
- */
-int ste_allocate(unsigned long ea)
-{
-       unsigned long vsid, esid;
-       mm_context_t context;
-
-       /* Check for invalid effective addresses. */
-       if (!IS_VALID_EA(ea))
-               return 1;
-
-       /* Kernel or user address? */
-       if (REGION_ID(ea) >= KERNEL_REGION_ID) {
-               vsid = get_kernel_vsid(ea);
-               context = KERNEL_CONTEXT(ea);
-       } else {
-               if (!current->mm)
-                       return 1;
-
-               context = current->mm->context;
-               vsid = get_vsid(context.id, ea);
-       }
-
-       esid = GET_ESID(ea);
-       __ste_allocate(esid, vsid);
-       /* Order update */
-       asm volatile("sync":::"memory");
-
-       return 0;
-}
-
-/*
- * preload some userspace segments into the segment table.
- */
-static void preload_stab(struct task_struct *tsk, struct mm_struct *mm)
-{
-       unsigned long pc = KSTK_EIP(tsk);
-       unsigned long stack = KSTK_ESP(tsk);
-       unsigned long unmapped_base;
-       unsigned long pc_esid = GET_ESID(pc);
-       unsigned long stack_esid = GET_ESID(stack);
-       unsigned long unmapped_base_esid;
-       unsigned long vsid;
-
-       if (test_tsk_thread_flag(tsk, TIF_32BIT))
-               unmapped_base = TASK_UNMAPPED_BASE_USER32;
-       else
-               unmapped_base = TASK_UNMAPPED_BASE_USER64;
-
-       unmapped_base_esid = GET_ESID(unmapped_base);
-
-       if (!IS_VALID_EA(pc) || (REGION_ID(pc) >= KERNEL_REGION_ID))
-               return;
-       vsid = get_vsid(mm->context.id, pc);
-       __ste_allocate(pc_esid, vsid);
-
-       if (pc_esid == stack_esid)
-               return;
-
-       if (!IS_VALID_EA(stack) || (REGION_ID(stack) >= KERNEL_REGION_ID))
-               return;
-       vsid = get_vsid(mm->context.id, stack);
-       __ste_allocate(stack_esid, vsid);
-
-       if (pc_esid == unmapped_base_esid || stack_esid == unmapped_base_esid)
-               return;
-
-       if (!IS_VALID_EA(unmapped_base) ||
-           (REGION_ID(unmapped_base) >= KERNEL_REGION_ID))
-               return;
-       vsid = get_vsid(mm->context.id, unmapped_base);
-       __ste_allocate(unmapped_base_esid, vsid);
-
-       /* Order update */
-       asm volatile("sync" : : : "memory");
-}
-
-/* Flush all user entries from the segment table of the current processor. */
-void flush_stab(struct task_struct *tsk, struct mm_struct *mm)
-{
-       STE *stab = (STE *) get_paca()->stab_addr;
-       STE *ste;
-       unsigned long offset = __get_cpu_var(stab_cache_ptr);
-
-       /* Force previous translations to complete. DRENG */
-       asm volatile("isync" : : : "memory");
-
-       if (offset <= NR_STAB_CACHE_ENTRIES) {
-               int i;
-
-               for (i = 0; i < offset; i++) {
-                       ste = stab + __get_cpu_var(stab_cache[i]);
-                       ste->dw0.dw0.v = 0;
-               }
-       } else {
-               unsigned long entry;
-
-               /* Invalidate all entries. */
-               ste = stab;
-
-               /* Never flush the first entry. */
-               ste += 1;
-               for (entry = 1;
-                    entry < (PAGE_SIZE / sizeof(STE));
-                    entry++, ste++) {
-                       unsigned long ea;
-                       ea = ste->dw0.dw0.esid << SID_SHIFT;
-                       if (ea < KERNELBASE) {
-                               ste->dw0.dw0.v = 0;
-                       }
-               }
-       }
-
-       asm volatile("sync; slbia; sync":::"memory");
-
-       __get_cpu_var(stab_cache_ptr) = 0;
-
-       preload_stab(tsk, mm);
-}
diff --git a/arch/sparc64/lib/U3copy_in_user.S b/arch/sparc64/lib/U3copy_in_user.S
deleted file mode 100644 (file)
index af3961f..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/* U3copy_in_user.S: UltraSparc-III optimized memcpy.
- *
- * Copyright (C) 1999, 2000, 2004 David S. Miller (davem@redhat.com)
- */
-
-#include <asm/visasm.h>
-#include <asm/asi.h>
-#include <asm/dcu.h>
-#include <asm/spitfire.h>
-
-#define XCC xcc
-
-#define EXNV(x,y,a,b)  \
-98:    x,y;                            \
-       .section .fixup;                \
-       .align 4;                       \
-99:    retl;                           \
-        a, b, %o0;                     \
-       .section __ex_table;            \
-       .align 4;                       \
-       .word 98b, 99b;                 \
-       .text;                          \
-       .align 4;
-#define EXNV1(x,y,a,b)                 \
-98:    x,y;                            \
-       .section .fixup;                \
-       .align 4;                       \
-99:    a, b, %o0;                      \
-       retl;                           \
-        add %o0, 1, %o0;               \
-       .section __ex_table;            \
-       .align 4;                       \
-       .word 98b, 99b;                 \
-       .text;                          \
-       .align 4;
-#define EXNV4(x,y,a,b)                 \
-98:    x,y;                            \
-       .section .fixup;                \
-       .align 4;                       \
-99:    a, b, %o0;                      \
-       retl;                           \
-        add %o0, 4, %o0;               \
-       .section __ex_table;            \
-       .align 4;                       \
-       .word 98b, 99b;                 \
-       .text;                          \
-       .align 4;
-#define EXNV8(x,y,a,b)                 \
-98:    x,y;                            \
-       .section .fixup;                \
-       .align 4;                       \
-99:    a, b, %o0;                      \
-       retl;                           \
-        add %o0, 8, %o0;               \
-       .section __ex_table;            \
-       .align 4;                       \
-       .word 98b, 99b;                 \
-       .text;                          \
-       .align 4;
-
-       .register       %g2,#scratch
-       .register       %g3,#scratch
-
-       .text
-       .align  32
-
-       /* Don't try to get too fancy here, just nice and
-        * simple.  This is predominantly used for well aligned
-        * small copies in the compat layer.  It is also used
-        * to copy register windows around during thread cloning.
-        */
-
-       .globl  U3copy_in_user
-U3copy_in_user:        /* %o0=dst, %o1=src, %o2=len */
-       /* Writing to %asi is _expensive_ so we hardcode it.
-        * Reading %asi to check for KERNEL_DS is comparatively
-        * cheap.
-        */
-       rd              %asi, %g1
-       cmp             %g1, ASI_AIUS
-       bne,pn          %icc, U3memcpy_user_stub
-        nop
-
-       cmp             %o2, 0
-       be,pn           %XCC, out
-        or             %o0, %o1, %o3
-       cmp             %o2, 16
-       bleu,a,pn       %XCC, small_copy
-        or             %o3, %o2, %o3
-
-medium_copy: /* 16 < len <= 64 */
-       andcc           %o3, 0x7, %g0
-       bne,pn          %XCC, small_copy_unaligned
-        sub            %o0, %o1, %o3
-
-medium_copy_aligned:
-       andn            %o2, 0x7, %o4
-       and             %o2, 0x7, %o2
-1:     subcc           %o4, 0x8, %o4
-       EXNV8(ldxa [%o1] %asi, %o5, add %o4, %o2)
-       EXNV8(stxa %o5, [%o1 + %o3] ASI_AIUS, add %o4, %o2)
-       bgu,pt          %XCC, 1b
-        add            %o1, 0x8, %o1
-       andcc           %o2, 0x4, %g0
-       be,pt           %XCC, 1f
-        nop
-       sub             %o2, 0x4, %o2
-       EXNV4(lduwa [%o1] %asi, %o5, add %o4, %o2)
-       EXNV4(stwa %o5, [%o1 + %o3] ASI_AIUS, add %o4, %o2)
-       add             %o1, 0x4, %o1
-1:     cmp             %o2, 0
-       be,pt           %XCC, out
-        nop
-       ba,pt           %xcc, small_copy_unaligned
-        nop
-
-small_copy: /* 0 < len <= 16 */
-       andcc           %o3, 0x3, %g0
-       bne,pn          %XCC, small_copy_unaligned
-        sub            %o0, %o1, %o3
-
-small_copy_aligned:
-       subcc           %o2, 4, %o2
-       EXNV4(lduwa [%o1] %asi, %g1, add %o2, %g0)
-       EXNV4(stwa %g1, [%o1 + %o3] ASI_AIUS, add %o2, %g0)
-       bgu,pt          %XCC, small_copy_aligned
-        add            %o1, 4, %o1
-
-out:   retl
-        clr            %o0
-
-       .align  32
-small_copy_unaligned:
-       subcc           %o2, 1, %o2
-       EXNV1(lduba [%o1] %asi, %g1, add %o2, %g0)
-       EXNV1(stba %g1, [%o1 + %o3] ASI_AIUS, add %o2, %g0)
-       bgu,pt          %XCC, small_copy_unaligned
-        add            %o1, 1, %o1
-       retl
-        clr            %o0
diff --git a/arch/sparc64/lib/VIScopy.S b/arch/sparc64/lib/VIScopy.S
deleted file mode 100644 (file)
index 2c90b25..0000000
+++ /dev/null
@@ -1,1138 +0,0 @@
-/* $Id: VIScopy.S,v 1.27 2002/02/09 19:49:30 davem Exp $
- * VIScopy.S: High speed copy operations utilizing the UltraSparc
- *            Visual Instruction Set.
- *
- * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
- * Copyright (C) 1996, 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz)
- */
-
-#include "VIS.h"
-
-       /* VIS code can be used for numerous copy/set operation variants.
-        * It can be made to work in the kernel, one single instance,
-        * for all of memcpy, copy_to_user, and copy_from_user by setting
-        * the ASI src/dest globals correctly.  Furthermore it can
-        * be used for kernel-->kernel page copies as well, a hook label
-        * is put in here just for this purpose.
-        *
-        * For userland, compiling this without __KERNEL__ defined makes
-        * it work just fine as a generic libc bcopy and memcpy.
-        * If for userland it is compiled with a 32bit gcc (but you need
-        * -Wa,-Av9a for as), the code will just rely on lower 32bits of
-        * IEU registers, if you compile it with 64bit gcc (ie. define
-        * __sparc_v9__), the code will use full 64bit.
-        */
-        
-#ifdef __KERNEL__
-
-#include <asm/visasm.h>
-#include <asm/thread_info.h>
-
-#define FPU_CLEAN_RETL                                 \
-       ldub            [%g6 + TI_CURRENT_DS], %o1;     \
-       VISExit                                         \
-       clr             %o0;                            \
-       retl;                                           \
-        wr             %o1, %g0, %asi;
-#define FPU_RETL                                       \
-       ldub            [%g6 + TI_CURRENT_DS], %o1;     \
-       VISExit                                         \
-       clr             %o0;                            \
-       retl;                                           \
-        wr             %o1, %g0, %asi;
-#define NORMAL_RETL                                    \
-       ldub            [%g6 + TI_CURRENT_DS], %o1;     \
-       clr             %o0;                            \
-       retl;                                           \
-        wr             %o1, %g0, %asi;
-#define EX(x,y,a,b)                            \
-98:    x,y;                                    \
-       .section .fixup;                        \
-       .align  4;                              \
-99:    ba      VIScopyfixup_ret;               \
-        a, b, %o1;                             \
-       .section __ex_table;                    \
-       .align  4;                              \
-       .word   98b, 99b;                       \
-       .text;                                  \
-       .align  4;
-#define EX2(x,y,c,d,e,a,b)                     \
-98:    x,y;                                    \
-       .section .fixup;                        \
-       .align  4;                              \
-99:    c, d, e;                                \
-       ba      VIScopyfixup_ret;               \
-        a, b, %o1;                             \
-       .section __ex_table;                    \
-       .align  4;                              \
-       .word   98b, 99b;                       \
-       .text;                                  \
-       .align  4;
-#define EXO2(x,y)                              \
-98:    x,y;                                    \
-       .section __ex_table;                    \
-       .align  4;                              \
-       .word   98b, VIScopyfixup_reto2;        \
-       .text;                                  \
-       .align  4;
-#define EXVISN(x,y,n)                          \
-98:    x,y;                                    \
-       .section __ex_table;                    \
-       .align  4;                              \
-       .word   98b, VIScopyfixup_vis##n;       \
-       .text;                                  \
-       .align  4;
-#define EXT(start,end,handler)                         \
-       .section __ex_table;                    \
-       .align  4;                              \
-       .word   start, 0, end, handler;         \
-       .text;                                  \
-       .align  4;
-#else
-#ifdef REGS_64BIT
-#define FPU_CLEAN_RETL                         \
-       retl;                                   \
-        mov    %g6, %o0;
-#define FPU_RETL                               \
-       retl;                                   \
-        mov    %g6, %o0;
-#else
-#define FPU_CLEAN_RETL                         \
-       wr      %g0, FPRS_FEF, %fprs;           \
-       retl;                                   \
-        mov    %g6, %o0;
-#define FPU_RETL                               \
-       wr      %g0, FPRS_FEF, %fprs;           \
-       retl;                                   \
-        mov    %g6, %o0;
-#endif
-#define NORMAL_RETL    \
-       retl;           \
-        mov    %g6, %o0;
-#define EX(x,y,a,b)            x,y
-#define EX2(x,y,c,d,e,a,b)     x,y
-#define EXO2(x,y)              x,y
-#define EXVISN(x,y,n)          x,y
-#define EXT(a,b,c)
-#endif
-#define EXVIS(x,y) EXVISN(x,y,0)
-#define EXVIS1(x,y) EXVISN(x,y,1)
-#define EXVIS2(x,y) EXVISN(x,y,2)
-#define EXVIS3(x,y) EXVISN(x,y,3)
-#define EXVIS4(x,y) EXVISN(x,y,4)
-
-#define FREG_FROB(f1, f2, f3, f4, f5, f6, f7, f8, f9)          \
-       faligndata              %f1, %f2, %f48;                 \
-       faligndata              %f2, %f3, %f50;                 \
-       faligndata              %f3, %f4, %f52;                 \
-       faligndata              %f4, %f5, %f54;                 \
-       faligndata              %f5, %f6, %f56;                 \
-       faligndata              %f6, %f7, %f58;                 \
-       faligndata              %f7, %f8, %f60;                 \
-       faligndata              %f8, %f9, %f62;
-
-#define MAIN_LOOP_CHUNK(src, dest, fdest, fsrc, len, jmptgt)   \
-       EXVIS(LDBLK             [%src] ASIBLK, %fdest);         \
-       ASI_SETDST_BLK                                          \
-       EXVIS(STBLK             %fsrc, [%dest] ASIBLK);         \
-       add                     %src, 0x40, %src;               \
-       subcc                   %len, 0x40, %len;               \
-       be,pn                   %xcc, jmptgt;                   \
-        add                    %dest, 0x40, %dest;             \
-       ASI_SETSRC_BLK
-
-#define LOOP_CHUNK1(src, dest, len, branch_dest)               \
-       MAIN_LOOP_CHUNK(src, dest, f0,  f48, len, branch_dest)
-#define LOOP_CHUNK2(src, dest, len, branch_dest)               \
-       MAIN_LOOP_CHUNK(src, dest, f16, f48, len, branch_dest)
-#define LOOP_CHUNK3(src, dest, len, branch_dest)               \
-       MAIN_LOOP_CHUNK(src, dest, f32, f48, len, branch_dest)
-
-#define STORE_SYNC(dest, fsrc)                                 \
-       EXVIS(STBLK             %fsrc, [%dest] ASIBLK);         \
-       add                     %dest, 0x40, %dest;
-
-#ifdef __KERNEL__
-#define STORE_JUMP(dest, fsrc, target)                         \
-       srl                     asi_dest, 3, %g5;               \
-       EXVIS2(STBLK            %fsrc, [%dest] ASIBLK);         \
-       xor                    asi_dest, ASI_BLK_XOR1, asi_dest;\
-       add                     %dest, 0x40, %dest;             \
-       xor                     asi_dest, %g5, asi_dest;        \
-       ba,pt                   %xcc, target;
-#else
-#define STORE_JUMP(dest, fsrc, target)                         \
-       EXVIS2(STBLK            %fsrc, [%dest] ASIBLK);         \
-       add                     %dest, 0x40, %dest;             \
-       ba,pt                   %xcc, target;
-#endif
-
-#ifndef __KERNEL__
-#define VISLOOP_PAD nop; nop; nop; nop; \
-                   nop; nop; nop; nop; \
-                   nop; nop; nop; nop; \
-                   nop; nop; nop;
-#else
-#define VISLOOP_PAD
-#endif
-
-#define FINISH_VISCHUNK(dest, f0, f1, left)                    \
-       ASI_SETDST_NOBLK                                        \
-       subcc                   %left, 8, %left;                \
-       bl,pn                   %xcc, vis_out;                  \
-        faligndata             %f0, %f1, %f48;                 \
-       EXVIS3(STDF             %f48, [%dest] ASINORMAL);       \
-       add                     %dest, 8, %dest;
-
-#define UNEVEN_VISCHUNK_LAST(dest, f0, f1, left)               \
-       subcc                   %left, 8, %left;                \
-       bl,pn                   %xcc, vis_out;                  \
-        fsrc1                  %f0, %f1;
-#define UNEVEN_VISCHUNK(dest, f0, f1, left)                    \
-       UNEVEN_VISCHUNK_LAST(dest, f0, f1, left)                \
-       ba,a,pt                 %xcc, vis_out_slk;
-
-       /* Macros for non-VIS memcpy code. */
-#ifdef REGS_64BIT
-
-#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3)                        \
-       ASI_SETSRC_NOBLK                                                \
-       LDX                     [%src + offset + 0x00] ASINORMAL, %t0;  \
-       LDX                     [%src + offset + 0x08] ASINORMAL, %t1;  \
-       LDX                     [%src + offset + 0x10] ASINORMAL, %t2;  \
-       LDX                     [%src + offset + 0x18] ASINORMAL, %t3;  \
-       ASI_SETDST_NOBLK                                                \
-       STW                     %t0, [%dst + offset + 0x04] ASINORMAL;  \
-       srlx                    %t0, 32, %t0;                           \
-       STW                     %t0, [%dst + offset + 0x00] ASINORMAL;  \
-       STW                     %t1, [%dst + offset + 0x0c] ASINORMAL;  \
-       srlx                    %t1, 32, %t1;                           \
-       STW                     %t1, [%dst + offset + 0x08] ASINORMAL;  \
-       STW                     %t2, [%dst + offset + 0x14] ASINORMAL;  \
-       srlx                    %t2, 32, %t2;                           \
-       STW                     %t2, [%dst + offset + 0x10] ASINORMAL;  \
-       STW                     %t3, [%dst + offset + 0x1c] ASINORMAL;  \
-       srlx                    %t3, 32, %t3;                           \
-       STW                     %t3, [%dst + offset + 0x18] ASINORMAL;
-
-#define MOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3)           \
-       ASI_SETSRC_NOBLK                                                \
-       LDX                     [%src + offset + 0x00] ASINORMAL, %t0;  \
-       LDX                     [%src + offset + 0x08] ASINORMAL, %t1;  \
-       LDX                     [%src + offset + 0x10] ASINORMAL, %t2;  \
-       LDX                     [%src + offset + 0x18] ASINORMAL, %t3;  \
-       ASI_SETDST_NOBLK                                                \
-       STX                     %t0, [%dst + offset + 0x00] ASINORMAL;  \
-       STX                     %t1, [%dst + offset + 0x08] ASINORMAL;  \
-       STX                     %t2, [%dst + offset + 0x10] ASINORMAL;  \
-       STX                     %t3, [%dst + offset + 0x18] ASINORMAL;  \
-       ASI_SETSRC_NOBLK                                                \
-       LDX                     [%src + offset + 0x20] ASINORMAL, %t0;  \
-       LDX                     [%src + offset + 0x28] ASINORMAL, %t1;  \
-       LDX                     [%src + offset + 0x30] ASINORMAL, %t2;  \
-       LDX                     [%src + offset + 0x38] ASINORMAL, %t3;  \
-       ASI_SETDST_NOBLK                                                \
-       STX                     %t0, [%dst + offset + 0x20] ASINORMAL;  \
-       STX                     %t1, [%dst + offset + 0x28] ASINORMAL;  \
-       STX                     %t2, [%dst + offset + 0x30] ASINORMAL;  \
-       STX                     %t3, [%dst + offset + 0x38] ASINORMAL;
-
-#define MOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3)               \
-       ASI_SETSRC_NOBLK                                                \
-       LDX                     [%src - offset - 0x10] ASINORMAL, %t0;  \
-       LDX                     [%src - offset - 0x08] ASINORMAL, %t1;  \
-       ASI_SETDST_NOBLK                                                \
-       STW                     %t0, [%dst - offset - 0x0c] ASINORMAL;  \
-       srlx                    %t0, 32, %t2;                           \
-       STW                     %t2, [%dst - offset - 0x10] ASINORMAL;  \
-       STW                     %t1, [%dst - offset - 0x04] ASINORMAL;  \
-       srlx                    %t1, 32, %t3;                           \
-       STW                     %t3, [%dst - offset - 0x08] ASINORMAL;
-
-#define MOVE_LASTALIGNCHUNK(src, dst, offset, t0, t1)                  \
-       ASI_SETSRC_NOBLK                                                \
-       LDX                     [%src - offset - 0x10] ASINORMAL, %t0;  \
-       LDX                     [%src - offset - 0x08] ASINORMAL, %t1;  \
-       ASI_SETDST_NOBLK                                                \
-       STX                     %t0, [%dst - offset - 0x10] ASINORMAL;  \
-       STX                     %t1, [%dst - offset - 0x08] ASINORMAL;
-
-#else /* !REGS_64BIT */
-
-#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3)                        \
-       lduw                    [%src + offset + 0x00], %t0;            \
-       lduw                    [%src + offset + 0x04], %t1;            \
-       lduw                    [%src + offset + 0x08], %t2;            \
-       lduw                    [%src + offset + 0x0c], %t3;            \
-       stw                     %t0, [%dst + offset + 0x00];            \
-       stw                     %t1, [%dst + offset + 0x04];            \
-       stw                     %t2, [%dst + offset + 0x08];            \
-       stw                     %t3, [%dst + offset + 0x0c];            \
-       lduw                    [%src + offset + 0x10], %t0;            \
-       lduw                    [%src + offset + 0x14], %t1;            \
-       lduw                    [%src + offset + 0x18], %t2;            \
-       lduw                    [%src + offset + 0x1c], %t3;            \
-       stw                     %t0, [%dst + offset + 0x10];            \
-       stw                     %t1, [%dst + offset + 0x14];            \
-       stw                     %t2, [%dst + offset + 0x18];            \
-       stw                     %t3, [%dst + offset + 0x1c];
-
-#define MOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3)               \
-       lduw                    [%src - offset - 0x10], %t0;            \
-       lduw                    [%src - offset - 0x0c], %t1;            \
-       lduw                    [%src - offset - 0x08], %t2;            \
-       lduw                    [%src - offset - 0x04], %t3;            \
-       stw                     %t0, [%dst - offset - 0x10];            \
-       stw                     %t1, [%dst - offset - 0x0c];            \
-       stw                     %t2, [%dst - offset - 0x08];            \
-       stw                     %t3, [%dst - offset - 0x04];
-
-#endif /* !REGS_64BIT */
-
-#ifdef __KERNEL__
-               .section        __ex_table,#alloc
-               .section        .fixup,#alloc,#execinstr
-#endif
-
-               .text
-               .align                  32
-               .globl                  memcpy
-               .type                   memcpy,@function
-
-               .globl                  bcopy
-               .type                   bcopy,@function
-
-#ifdef __KERNEL__
-memcpy_private:
-memcpy:                mov             ASI_P, asi_src                  ! IEU0  Group
-               brnz,pt         %o2, __memcpy_entry             ! CTI
-                mov            ASI_P, asi_dest                 ! IEU1
-               retl
-                clr            %o0
-
-               .align                  32
-               .globl                  __copy_from_user
-               .type                   __copy_from_user,@function
-__copy_from_user:rd            %asi, asi_src                   ! IEU0  Group
-               brnz,pt         %o2, __memcpy_entry             ! CTI
-                mov            ASI_P, asi_dest                 ! IEU1
-
-               .globl                  __copy_to_user
-               .type                   __copy_to_user,@function
-__copy_to_user:        mov             ASI_P, asi_src                  ! IEU0  Group
-               brnz,pt         %o2, __memcpy_entry             ! CTI
-                rd             %asi, asi_dest                  ! IEU1
-               retl                                            ! CTI   Group
-                clr            %o0                             ! IEU0  Group
-
-               .globl                  __copy_in_user
-               .type                   __copy_in_user,@function
-__copy_in_user:        rd              %asi, asi_src                   ! IEU0  Group
-               brnz,pt         %o2, __memcpy_entry             ! CTI
-                mov            asi_src, asi_dest               ! IEU1
-               retl                                            ! CTI   Group
-                clr            %o0                             ! IEU0  Group
-#endif
-
-bcopy:         or              %o0, 0, %g3                     ! IEU0  Group
-               addcc           %o1, 0, %o0                     ! IEU1
-               brgez,pt        %o2, memcpy_private             ! CTI
-                or             %g3, 0, %o1                     ! IEU0  Group
-               retl                                            ! CTI   Group brk forced
-                clr            %o0                             ! IEU0
-
-
-#ifdef __KERNEL__
-#define BRANCH_ALWAYS  0x10680000
-#define NOP            0x01000000
-#define ULTRA3_DO_PATCH(OLD, NEW)      \
-       sethi   %hi(NEW), %g1; \
-       or      %g1, %lo(NEW), %g1; \
-       sethi   %hi(OLD), %g2; \
-       or      %g2, %lo(OLD), %g2; \
-       sub     %g1, %g2, %g1; \
-       sethi   %hi(BRANCH_ALWAYS), %g3; \
-       srl     %g1, 2, %g1; \
-       or      %g3, %lo(BRANCH_ALWAYS), %g3; \
-       or      %g3, %g1, %g3; \
-       stw     %g3, [%g2]; \
-       sethi   %hi(NOP), %g3; \
-       or      %g3, %lo(NOP), %g3; \
-       stw     %g3, [%g2 + 0x4]; \
-       flush   %g2;
-
-       .globl  cheetah_patch_copyops
-cheetah_patch_copyops:
-       ULTRA3_DO_PATCH(memcpy, U3memcpy)
-       ULTRA3_DO_PATCH(__copy_from_user, U3copy_from_user)
-       ULTRA3_DO_PATCH(__copy_to_user, U3copy_to_user)
-       ULTRA3_DO_PATCH(__copy_in_user, U3copy_in_user)
-       retl
-        nop
-#undef BRANCH_ALWAYS
-#undef NOP
-#undef ULTRA3_DO_PATCH
-#endif /* __KERNEL__ */
-
-       .align                  32
-#ifdef __KERNEL__
-       andcc                   %o0, 7, %g2                     ! IEU1  Group
-#endif
-VIS_enter:
-       be,pt                   %xcc, dest_is_8byte_aligned     ! CTI
-#ifdef __KERNEL__
-        nop                                                    ! IEU0  Group
-#else
-        andcc                  %o0, 0x38, %g5                  ! IEU1  Group
-#endif
-do_dest_8byte_align:
-       mov                     8, %g1                          ! IEU0
-       sub                     %g1, %g2, %g2                   ! IEU0  Group
-       andcc                   %o0, 1, %g0                     ! IEU1
-       be,pt                   %icc, 2f                        ! CTI
-        sub                    %o2, %g2, %o2                   ! IEU0  Group
-1:     ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUB                 [%o1] ASINORMAL, %o5, 
-                               add %o2, %g2)                   ! Load  Group
-       add                     %o1, 1, %o1                     ! IEU0
-       add                     %o0, 1, %o0                     ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       subcc                   %g2, 1, %g2                     ! IEU1  Group
-       be,pn                   %xcc, 3f                        ! CTI
-        EX2(STB                %o5, [%o0 - 1] ASINORMAL,
-                               add %g2, 1, %g2,
-                               add %o2, %g2)                   ! Store
-2:     ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUB                 [%o1] ASINORMAL, %o5, 
-                               add %o2, %g2)                   ! Load  Group
-       add                     %o0, 2, %o0                     ! IEU0
-       EX2(LDUB                [%o1 + 1] ASINORMAL, %g3,
-                               sub %o0, 2, %o0,
-                               add %o2, %g2)                   ! Load  Group
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       subcc                   %g2, 2, %g2                     ! IEU1  Group
-       EX2(STB                 %o5, [%o0 - 2] ASINORMAL,
-                               add %g2, 2, %g2,
-                               add %o2, %g2)                   ! Store
-       add                     %o1, 2, %o1                     ! IEU0
-       bne,pt                  %xcc, 2b                        ! CTI   Group
-        EX2(STB                %g3, [%o0 - 1] ASINORMAL,
-                               add %g2, 1, %g2,
-                               add %o2, %g2)                   ! Store
-#ifdef __KERNEL__
-3:
-dest_is_8byte_aligned:
-       VISEntry
-       andcc                   %o0, 0x38, %g5                  ! IEU1  Group
-#else
-3:     andcc                   %o0, 0x38, %g5                  ! IEU1  Group
-dest_is_8byte_aligned:
-#endif
-       be,pt                   %icc, dest_is_64byte_aligned    ! CTI
-        mov                    64, %g1                         ! IEU0
-       fmovd                   %f0, %f2                        ! FPU
-       sub                     %g1, %g5, %g5                   ! IEU0  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       alignaddr               %o1, %g0, %g1                   ! GRU   Group
-       EXO2(LDDF               [%g1] ASINORMAL, %f4)           ! Load  Group
-       sub                     %o2, %g5, %o2                   ! IEU0
-1:     EX(LDDF                 [%g1 + 0x8] ASINORMAL, %f6,
-                               add %o2, %g5)                   ! Load  Group
-       add                     %g1, 0x8, %g1                   ! IEU0  Group
-       subcc                   %g5, 8, %g5                     ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       faligndata              %f4, %f6, %f0                   ! GRU   Group
-       EX2(STDF                %f0, [%o0] ASINORMAL,
-                               add %g5, 8, %g5,
-                               add %o2, %g5)                   ! Store
-       add                     %o1, 8, %o1                     ! IEU0  Group
-       be,pn                   %xcc, dest_is_64byte_aligned    ! CTI
-        add                    %o0, 8, %o0                     ! IEU1
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDDF                 [%g1 + 0x8] ASINORMAL, %f4,
-                               add %o2, %g5)                   ! Load  Group
-       add                     %g1, 8, %g1                     ! IEU0
-       subcc                   %g5, 8, %g5                     ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       faligndata              %f6, %f4, %f0                   ! GRU   Group
-       EX2(STDF                %f0, [%o0] ASINORMAL,
-                               add %g5, 8, %g5,
-                               add %o2, %g5)                   ! Store
-       add                     %o1, 8, %o1                     ! IEU0
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       bne,pt                  %xcc, 1b                        ! CTI   Group
-        add                    %o0, 8, %o0                     ! IEU0
-dest_is_64byte_aligned:
-       membar            #LoadStore | #StoreStore | #StoreLoad ! LSU   Group
-#ifndef __KERNEL__
-       wr                      %g0, ASI_BLK_P, %asi            ! LSU   Group
-#endif
-       subcc                   %o2, 0x40, %g7                  ! IEU1  Group
-       mov                     %o1, %g1                        ! IEU0
-       andncc                  %g7, (0x40 - 1), %g7            ! IEU1  Group
-       srl                     %g1, 3, %g2                     ! IEU0
-       sub                     %o2, %g7, %g3                   ! IEU0  Group
-       andn                    %o1, (0x40 - 1), %o1            ! IEU1
-       and                     %g2, 7, %g2                     ! IEU0  Group
-       andncc                  %g3, 0x7, %g3                   ! IEU1
-       fmovd                   %f0, %f2                        ! FPU
-       sub                     %g3, 0x10, %g3                  ! IEU0  Group
-       sub                     %o2, %g7, %o2                   ! IEU1
-#ifdef __KERNEL__
-       or                      asi_src, ASI_BLK_OR, asi_src    ! IEU0  Group
-       or                      asi_dest, ASI_BLK_OR, asi_dest  ! IEU1
-#endif
-       alignaddr               %g1, %g0, %g0                   ! GRU   Group
-       add                     %g1, %g7, %g1                   ! IEU0  Group
-       subcc                   %o2, %g3, %o2                   ! IEU1
-       ASI_SETSRC_BLK                                          ! LSU   Group
-       EXVIS1(LDBLK            [%o1 + 0x00] ASIBLK, %f0)       ! LSU   Group
-       add                     %g1, %g3, %g1                   ! IEU0
-       EXVIS1(LDBLK            [%o1 + 0x40] ASIBLK, %f16)      ! LSU   Group
-       sub                     %g7, 0x80, %g7                  ! IEU0
-       EXVIS(LDBLK             [%o1 + 0x80] ASIBLK, %f32)      ! LSU   Group
-#ifdef __KERNEL__
-vispc: sll                     %g2, 9, %g2                     ! IEU0  Group
-       sethi                   %hi(vis00), %g5                 ! IEU1
-       or                      %g5, %lo(vis00), %g5            ! IEU0  Group
-       jmpl                    %g5 + %g2, %g0                  ! CTI   Group brk forced
-        addcc                  %o1, 0xc0, %o1                  ! IEU1  Group
-#else
-                                                               ! Clk1  Group 8-(
-                                                               ! Clk2  Group 8-(
-                                                               ! Clk3  Group 8-(
-                                                               ! Clk4  Group 8-(
-vispc: rd                      %pc, %g5                        ! PDU   Group 8-(
-       addcc                   %g5, %lo(vis00 - vispc), %g5    ! IEU1  Group
-       sll                     %g2, 9, %g2                     ! IEU0
-       jmpl                    %g5 + %g2, %g0                  ! CTI   Group brk forced
-        addcc                  %o1, 0xc0, %o1                  ! IEU1  Group
-#endif
-       .align                  512             /* OK, here comes the fun part... */
-vis00:FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16) LOOP_CHUNK1(o1, o0, g7, vis01)
-      FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32) LOOP_CHUNK2(o1, o0, g7, vis02)
-      FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)  LOOP_CHUNK3(o1, o0, g7, vis03)
-      b,pt                     %xcc, vis00+4; faligndata %f0, %f2, %f48
-vis01:FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)  STORE_JUMP(o0, f48, finish_f0) membar #Sync
-vis02:FREG_FROB(f32,f34,f36,f38,f40,f42,f44,f46,f0)  STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16) STORE_JUMP(o0, f48, finish_f16) membar #Sync
-vis03:FREG_FROB(f0, f2, f4, f6, f8, f10,f12,f14,f16) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f16,f18,f20,f22,f24,f26,f28,f30,f32) STORE_JUMP(o0, f48, finish_f32) membar #Sync
-      VISLOOP_PAD
-vis10:FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18) LOOP_CHUNK1(o1, o0, g7, vis11)
-      FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34) LOOP_CHUNK2(o1, o0, g7, vis12)
-      FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)  LOOP_CHUNK3(o1, o0, g7, vis13)
-      b,pt                     %xcc, vis10+4; faligndata %f2, %f4, %f48
-vis11:FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)  STORE_JUMP(o0, f48, finish_f2) membar #Sync
-vis12:FREG_FROB(f34,f36,f38,f40,f42,f44,f46,f0, f2)  STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18) STORE_JUMP(o0, f48, finish_f18) membar #Sync
-vis13:FREG_FROB(f2, f4, f6, f8, f10,f12,f14,f16,f18) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f18,f20,f22,f24,f26,f28,f30,f32,f34) STORE_JUMP(o0, f48, finish_f34) membar #Sync
-      VISLOOP_PAD
-vis20:FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20) LOOP_CHUNK1(o1, o0, g7, vis21)
-      FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36) LOOP_CHUNK2(o1, o0, g7, vis22)
-      FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)  LOOP_CHUNK3(o1, o0, g7, vis23)
-      b,pt                     %xcc, vis20+4; faligndata %f4, %f6, %f48
-vis21:FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)  STORE_JUMP(o0, f48, finish_f4) membar #Sync
-vis22:FREG_FROB(f36,f38,f40,f42,f44,f46,f0, f2, f4)  STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20) STORE_JUMP(o0, f48, finish_f20) membar #Sync
-vis23:FREG_FROB(f4, f6, f8, f10,f12,f14,f16,f18,f20) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f20,f22,f24,f26,f28,f30,f32,f34,f36) STORE_JUMP(o0, f48, finish_f36) membar #Sync
-      VISLOOP_PAD
-vis30:FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22) LOOP_CHUNK1(o1, o0, g7, vis31)
-      FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38) LOOP_CHUNK2(o1, o0, g7, vis32)
-      FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)  LOOP_CHUNK3(o1, o0, g7, vis33)
-      b,pt                     %xcc, vis30+4; faligndata %f6, %f8, %f48
-vis31:FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)  STORE_JUMP(o0, f48, finish_f6) membar #Sync
-vis32:FREG_FROB(f38,f40,f42,f44,f46,f0, f2, f4, f6)  STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22) STORE_JUMP(o0, f48, finish_f22) membar #Sync
-vis33:FREG_FROB(f6, f8, f10,f12,f14,f16,f18,f20,f22) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f22,f24,f26,f28,f30,f32,f34,f36,f38) STORE_JUMP(o0, f48, finish_f38) membar #Sync
-      VISLOOP_PAD
-vis40:FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24) LOOP_CHUNK1(o1, o0, g7, vis41)
-      FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40) LOOP_CHUNK2(o1, o0, g7, vis42)
-      FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)  LOOP_CHUNK3(o1, o0, g7, vis43)
-      b,pt                     %xcc, vis40+4; faligndata %f8, %f10, %f48
-vis41:FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)  STORE_JUMP(o0, f48, finish_f8) membar #Sync
-vis42:FREG_FROB(f40,f42,f44,f46,f0, f2, f4, f6, f8)  STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24) STORE_JUMP(o0, f48, finish_f24) membar #Sync
-vis43:FREG_FROB(f8, f10,f12,f14,f16,f18,f20,f22,f24) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f24,f26,f28,f30,f32,f34,f36,f38,f40) STORE_JUMP(o0, f48, finish_f40) membar #Sync
-      VISLOOP_PAD
-vis50:FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26) LOOP_CHUNK1(o1, o0, g7, vis51)
-      FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42) LOOP_CHUNK2(o1, o0, g7, vis52)
-      FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10) LOOP_CHUNK3(o1, o0, g7, vis53)
-      b,pt                     %xcc, vis50+4; faligndata %f10, %f12, %f48
-vis51:FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10) STORE_JUMP(o0, f48, finish_f10) membar #Sync
-vis52:FREG_FROB(f42,f44,f46,f0, f2, f4, f6, f8, f10) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26) STORE_JUMP(o0, f48, finish_f26) membar #Sync
-vis53:FREG_FROB(f10,f12,f14,f16,f18,f20,f22,f24,f26) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f26,f28,f30,f32,f34,f36,f38,f40,f42) STORE_JUMP(o0, f48, finish_f42) membar #Sync
-      VISLOOP_PAD
-vis60:FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28) LOOP_CHUNK1(o1, o0, g7, vis61)
-      FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44) LOOP_CHUNK2(o1, o0, g7, vis62)
-      FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12) LOOP_CHUNK3(o1, o0, g7, vis63)
-      b,pt                     %xcc, vis60+4; faligndata %f12, %f14, %f48
-vis61:FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12) STORE_JUMP(o0, f48, finish_f12) membar #Sync
-vis62:FREG_FROB(f44,f46,f0, f2, f4, f6, f8, f10,f12) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28) STORE_JUMP(o0, f48, finish_f28) membar #Sync
-vis63:FREG_FROB(f12,f14,f16,f18,f20,f22,f24,f26,f28) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f28,f30,f32,f34,f36,f38,f40,f42,f44) STORE_JUMP(o0, f48, finish_f44) membar #Sync
-      VISLOOP_PAD
-vis70:FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30) LOOP_CHUNK1(o1, o0, g7, vis71)
-      FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46) LOOP_CHUNK2(o1, o0, g7, vis72)
-      FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14) LOOP_CHUNK3(o1, o0, g7, vis73)
-      b,pt                     %xcc, vis70+4; faligndata %f14, %f16, %f48
-vis71:FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14) STORE_JUMP(o0, f48, finish_f14) membar #Sync
-vis72:FREG_FROB(f46,f0, f2, f4, f6, f8, f10,f12,f14) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30) STORE_JUMP(o0, f48, finish_f30) membar #Sync
-vis73:FREG_FROB(f14,f16,f18,f20,f22,f24,f26,f28,f30) STORE_SYNC(o0, f48) membar #Sync
-      FREG_FROB(f30,f32,f34,f36,f38,f40,f42,f44,f46) STORE_JUMP(o0, f48, finish_f46) membar #Sync
-      VISLOOP_PAD
-finish_f0:     FINISH_VISCHUNK(o0, f0,  f2,  g3)
-finish_f2:     FINISH_VISCHUNK(o0, f2,  f4,  g3)
-finish_f4:     FINISH_VISCHUNK(o0, f4,  f6,  g3)
-finish_f6:     FINISH_VISCHUNK(o0, f6,  f8,  g3)
-finish_f8:     FINISH_VISCHUNK(o0, f8,  f10, g3)
-finish_f10:    FINISH_VISCHUNK(o0, f10, f12, g3)
-finish_f12:    FINISH_VISCHUNK(o0, f12, f14, g3)
-finish_f14:    UNEVEN_VISCHUNK(o0, f14, f0,  g3)
-finish_f16:    FINISH_VISCHUNK(o0, f16, f18, g3)
-finish_f18:    FINISH_VISCHUNK(o0, f18, f20, g3)
-finish_f20:    FINISH_VISCHUNK(o0, f20, f22, g3)
-finish_f22:    FINISH_VISCHUNK(o0, f22, f24, g3)
-finish_f24:    FINISH_VISCHUNK(o0, f24, f26, g3)
-finish_f26:    FINISH_VISCHUNK(o0, f26, f28, g3)
-finish_f28:    FINISH_VISCHUNK(o0, f28, f30, g3)
-finish_f30:    UNEVEN_VISCHUNK(o0, f30, f0,  g3)
-finish_f32:    FINISH_VISCHUNK(o0, f32, f34, g3)
-finish_f34:    FINISH_VISCHUNK(o0, f34, f36, g3)
-finish_f36:    FINISH_VISCHUNK(o0, f36, f38, g3)
-finish_f38:    FINISH_VISCHUNK(o0, f38, f40, g3)
-finish_f40:    FINISH_VISCHUNK(o0, f40, f42, g3)
-finish_f42:    FINISH_VISCHUNK(o0, f42, f44, g3)
-finish_f44:    FINISH_VISCHUNK(o0, f44, f46, g3)
-finish_f46:    UNEVEN_VISCHUNK_LAST(o0, f46, f0,  g3)
-vis_out_slk:
-#ifdef __KERNEL__
-       srl             asi_src, 3, %g5                         ! IEU0  Group
-       xor             asi_src, ASI_BLK_XOR1, asi_src          ! IEU1
-       xor             asi_src, %g5, asi_src                   ! IEU0  Group
-#endif
-vis_slk:ASI_SETSRC_NOBLK                                       ! LSU   Group
-       EXVIS3(LDDF     [%o1] ASINORMAL, %f2)                   ! Load  Group
-       add             %o1, 8, %o1                             ! IEU0
-       subcc           %g3, 8, %g3                             ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       faligndata      %f0, %f2, %f8                           ! GRU   Group
-       EXVIS4(STDF     %f8, [%o0] ASINORMAL)                   ! Store
-       bl,pn           %xcc, vis_out_slp                       ! CTI
-        add            %o0, 8, %o0                             ! IEU0  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EXVIS3(LDDF     [%o1] ASINORMAL, %f0)                   ! Load  Group
-       add             %o1, 8, %o1                             ! IEU0
-       subcc           %g3, 8, %g3                             ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       faligndata      %f2, %f0, %f8                           ! GRU   Group
-       EXVIS4(STDF     %f8, [%o0] ASINORMAL)                   ! Store
-       bge,pt          %xcc, vis_slk                           ! CTI
-        add            %o0, 8, %o0                             ! IEU0  Group
-vis_out_slp:
-#ifdef __KERNEL__
-       brz,pt          %o2, vis_ret                            ! CTI   Group
-        mov            %g1, %o1                                ! IEU0
-       ba,pt           %xcc, vis_slp+4                         ! CTI   Group
-        ASI_SETSRC_NOBLK                                       ! LSU   Group
-#endif
-vis_out:brz,pt         %o2, vis_ret                            ! CTI   Group
-        mov            %g1, %o1                                ! IEU0
-#ifdef __KERNEL__
-       srl             asi_src, 3, %g5                         ! IEU0  Group
-       xor             asi_src, ASI_BLK_XOR1, asi_src          ! IEU1
-       xor             asi_src, %g5, asi_src                   ! IEU0  Group
-#endif
-vis_slp:ASI_SETSRC_NOBLK                                       ! LSU   Group
-       EXO2(LDUB       [%o1] ASINORMAL, %g5)                   ! LOAD
-       add             %o1, 1, %o1                             ! IEU0
-       add             %o0, 1, %o0                             ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       subcc           %o2, 1, %o2                             ! IEU1
-       bne,pt          %xcc, vis_slp                           ! CTI
-        EX(STB         %g5, [%o0 - 1] ASINORMAL,
-                       add %o2, 1)                             ! Store Group
-vis_ret:membar         #StoreLoad | #StoreStore                ! LSU   Group
-       FPU_CLEAN_RETL
-
-
-__memcpy_short:
-       andcc           %o2, 1, %g0                             ! IEU1  Group
-       be,pt           %icc, 2f                                ! CTI
-1:      ASI_SETSRC_NOBLK                                       ! LSU   Group
-       EXO2(LDUB       [%o1] ASINORMAL, %g5)                   ! LOAD  Group
-       add             %o1, 1, %o1                             ! IEU0
-       add             %o0, 1, %o0                             ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       subcc           %o2, 1, %o2                             ! IEU1  Group
-       be,pn           %xcc, short_ret                         ! CTI
-        EX(STB         %g5, [%o0 - 1] ASINORMAL,
-                       add %o2, 1)                             ! Store
-2:     ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EXO2(LDUB       [%o1] ASINORMAL, %g5)                   ! LOAD  Group
-       add             %o0, 2, %o0                             ! IEU0
-       EX2(LDUB        [%o1 + 1] ASINORMAL, %o5,
-                       sub %o0, 2, %o0,
-                       add %o2, %g0)                           ! LOAD  Group
-       add             %o1, 2, %o1                             ! IEU0
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       subcc           %o2, 2, %o2                             ! IEU1  Group
-       EX(STB          %g5, [%o0 - 2] ASINORMAL,
-                       add %o2, 2)                             ! Store
-       bne,pt          %xcc, 2b                                ! CTI
-        EX(STB         %o5, [%o0 - 1] ASINORMAL,
-                       add %o2, 1)                             ! Store
-short_ret:
-       NORMAL_RETL
-
-#ifndef __KERNEL__
-memcpy_private:
-memcpy:
-#ifndef REGS_64BIT
-       srl             %o2, 0, %o2                             ! IEU1  Group
-#endif 
-       brz,pn          %o2, short_ret                          ! CTI   Group
-        mov            %o0, %g6                                ! IEU0
-#endif
-__memcpy_entry:
-       cmp             %o2, 15                                 ! IEU1  Group
-       bleu,pn         %xcc, __memcpy_short                    ! CTI
-        cmp            %o2, (64 * 6)                           ! IEU1  Group
-       bgeu,pn         %xcc, VIS_enter                         ! CTI
-        andcc          %o0, 7, %g2                             ! IEU1  Group
-       sub             %o0, %o1, %g5                           ! IEU0
-       andcc           %g5, 3, %o5                             ! IEU1  Group
-       bne,pn          %xcc, memcpy_noVIS_misaligned           ! CTI
-        andcc          %o1, 3, %g0                             ! IEU1  Group
-#ifdef REGS_64BIT
-       be,a,pt         %xcc, 3f                                ! CTI
-        andcc          %o1, 4, %g0                             ! IEU1  Group
-       andcc           %o1, 1, %g0                             ! IEU1  Group
-#else /* !REGS_64BIT */
-       be,pt           %xcc, 5f                                ! CTI
-        andcc          %o1, 1, %g0                             ! IEU1  Group
-#endif /* !REGS_64BIT */
-       be,pn           %xcc, 4f                                ! CTI
-        andcc          %o1, 2, %g0                             ! IEU1  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EXO2(LDUB       [%o1] ASINORMAL, %g2)                   ! Load  Group
-       add             %o1, 1, %o1                             ! IEU0
-       add             %o0, 1, %o0                             ! IEU1
-       sub             %o2, 1, %o2                             ! IEU0  Group
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       bne,pn          %xcc, 5f                                ! CTI   Group
-        EX(STB         %g2, [%o0 - 1] ASINORMAL,
-                       add %o2, 1)                             ! Store
-4:     ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EXO2(LDUH       [%o1] ASINORMAL, %g2)                   ! Load  Group
-       add             %o1, 2, %o1                             ! IEU0
-       add             %o0, 2, %o0                             ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       sub             %o2, 2, %o2                             ! IEU0
-       EX(STH          %g2, [%o0 - 2] ASINORMAL,
-                       add %o2, 2)                             ! Store Group + bubble
-#ifdef REGS_64BIT
-5:     andcc           %o1, 4, %g0                             ! IEU1
-3:     be,a,pn         %xcc, 2f                                ! CTI
-        andcc          %o2, -128, %g7                          ! IEU1  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EXO2(LDUW       [%o1] ASINORMAL, %g5)                   ! Load  Group
-       add             %o1, 4, %o1                             ! IEU0
-       add             %o0, 4, %o0                             ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       sub             %o2, 4, %o2                             ! IEU0  Group
-       EX(STW          %g5, [%o0 - 4] ASINORMAL,
-                       add %o2, 4)                             ! Store
-       andcc           %o2, -128, %g7                          ! IEU1  Group
-2:     be,pn           %xcc, 3f                                ! CTI
-        andcc          %o0, 4, %g0                             ! IEU1  Group
-       be,pn           %xcc, 82f + 4                           ! CTI   Group
-#else /* !REGS_64BIT */
-5:     andcc           %o2, -128, %g7                          ! IEU1
-       be,a,pn         %xcc, 41f                               ! CTI
-        andcc          %o2, 0x70, %g7                          ! IEU1  Group
-#endif /* !REGS_64BIT */
-5:     MOVE_BIGCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       MOVE_BIGCHUNK(o1, o0, 0x20, g1, g3, g5, o5)
-       MOVE_BIGCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       MOVE_BIGCHUNK(o1, o0, 0x60, g1, g3, g5, o5)
-       EXT(5b,35f,VIScopyfixup1)
-35:    subcc           %g7, 128, %g7                           ! IEU1  Group
-       add             %o1, 128, %o1                           ! IEU0
-       bne,pt          %xcc, 5b                                ! CTI
-        add            %o0, 128, %o0                           ! IEU0  Group
-3:     andcc           %o2, 0x70, %g7                          ! IEU1  Group
-41:    be,pn           %xcc, 80f                               ! CTI
-        andcc          %o2, 8, %g0                             ! IEU1  Group
-#ifdef __KERNEL__
-79:    sethi           %hi(80f), %o5                           ! IEU0
-       sll             %g7, 1, %g5                             ! IEU0  Group
-       add             %o1, %g7, %o1                           ! IEU1
-       srl             %g7, 1, %g2                             ! IEU0  Group
-       sub             %o5, %g5, %o5                           ! IEU1
-       sub             %o5, %g2, %o5                           ! IEU0  Group
-       jmpl            %o5 + %lo(80f), %g0                     ! CTI   Group brk forced
-        add            %o0, %g7, %o0                           ! IEU0  Group
-#else
-                                                               ! Clk1 8-(
-                                                               ! Clk2 8-(
-                                                               ! Clk3 8-(
-                                                               ! Clk4 8-(
-79:    rd              %pc, %o5                                ! PDU   Group
-       sll             %g7, 1, %g5                             ! IEU0  Group
-       add             %o1, %g7, %o1                           ! IEU1
-       sub             %o5, %g5, %o5                           ! IEU0  Group
-       jmpl            %o5 + %lo(80f - 79b), %g0               ! CTI   Group brk forced
-        add            %o0, %g7, %o0                           ! IEU0  Group
-#endif
-36:    MOVE_LASTCHUNK(o1, o0, 0x60, g2, g3, g5, o5)
-       MOVE_LASTCHUNK(o1, o0, 0x50, g2, g3, g5, o5)
-       MOVE_LASTCHUNK(o1, o0, 0x40, g2, g3, g5, o5)
-       MOVE_LASTCHUNK(o1, o0, 0x30, g2, g3, g5, o5)
-       MOVE_LASTCHUNK(o1, o0, 0x20, g2, g3, g5, o5)
-       MOVE_LASTCHUNK(o1, o0, 0x10, g2, g3, g5, o5)
-       MOVE_LASTCHUNK(o1, o0, 0x00, g2, g3, g5, o5)
-       EXT(36b,80f,VIScopyfixup2)
-80:    be,pt           %xcc, 81f                               ! CTI
-        andcc          %o2, 4, %g0                             ! IEU1
-#ifdef REGS_64BIT
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDX          [%o1] ASINORMAL, %g2,
-                       and %o2, 0xf)                           ! Load  Group
-       add             %o0, 8, %o0                             ! IEU0
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       EX(STW          %g2, [%o0 - 0x4] ASINORMAL,
-                       and %o2, 0xf)                           ! Store Group
-       add             %o1, 8, %o1                             ! IEU1
-       srlx            %g2, 32, %g2                            ! IEU0  Group
-       EX2(STW         %g2, [%o0 - 0x8] ASINORMAL,
-                       and %o2, 0xf, %o2,
-                       sub %o2, 4)                             ! Store
-#else /* !REGS_64BIT */
-       lduw            [%o1], %g2                              ! Load  Group
-       add             %o0, 8, %o0                             ! IEU0
-       lduw            [%o1 + 0x4], %g3                        ! Load  Group
-       add             %o1, 8, %o1                             ! IEU0
-       stw             %g2, [%o0 - 0x8]                        ! Store Group
-       stw             %g3, [%o0 - 0x4]                        ! Store Group
-#endif /* !REGS_64BIT */
-81:    be,pt           %xcc, 1f                                ! CTI
-        andcc          %o2, 2, %g0                             ! IEU1  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUW         [%o1] ASINORMAL, %g2,
-                       and %o2, 0x7)                           ! Load  Group
-       add             %o1, 4, %o1                             ! IEU0
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       EX(STW          %g2, [%o0] ASINORMAL,
-                       and %o2, 0x7)                           ! Store Group
-       add             %o0, 4, %o0                             ! IEU0
-1:     be,pt           %xcc, 1f                                ! CTI
-        andcc          %o2, 1, %g0                             ! IEU1  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUH         [%o1] ASINORMAL, %g2,
-                       and %o2, 0x3)                           ! Load  Group
-       add             %o1, 2, %o1                             ! IEU0
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       EX(STH          %g2, [%o0] ASINORMAL,
-                       and %o2, 0x3)                           ! Store Group
-       add             %o0, 2, %o0                             ! IEU0
-1:     be,pt           %xcc, normal_retl                       ! CTI
-        nop                                                    ! IEU1
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUB         [%o1] ASINORMAL, %g2,
-                       add %g0, 1)                             ! Load  Group
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       EX(STB          %g2, [%o0] ASINORMAL,
-                       add %g0, 1)                             ! Store Group + bubble
-normal_retl:
-       NORMAL_RETL
-
-#ifdef REGS_64BIT
-82:    MOVE_BIGALIGNCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       MOVE_BIGALIGNCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       EXT(82b,37f,VIScopyfixup3)
-37:    subcc           %g7, 128, %g7                           ! IEU1  Group
-       add             %o1, 128, %o1                           ! IEU0
-       bne,pt          %xcc, 82b                               ! CTI
-        add            %o0, 128, %o0                           ! IEU0  Group
-       andcc           %o2, 0x70, %g7                          ! IEU1
-       be,pn           %xcc, 84f                               ! CTI
-        andcc          %o2, 8, %g0                             ! IEU1  Group
-#ifdef __KERNEL__
-83:    srl             %g7, 1, %g5                             ! IEU0
-       sethi           %hi(84f), %o5                           ! IEU0  Group
-       add             %g7, %g5, %g5                           ! IEU1
-       add             %o1, %g7, %o1                           ! IEU0  Group
-       sub             %o5, %g5, %o5                           ! IEU1
-       jmpl            %o5 + %lo(84f), %g0                     ! CTI   Group brk forced
-        add            %o0, %g7, %o0                           ! IEU0  Group
-#else
-                                                               ! Clk1 8-(
-                                                               ! Clk2 8-(
-                                                               ! Clk3 8-(
-                                                               ! Clk4 8-(
-83:    rd              %pc, %o5                                ! PDU   Group
-       add             %o1, %g7, %o1                           ! IEU0  Group
-       sub             %o5, %g7, %o5                           ! IEU1
-       jmpl            %o5 + %lo(84f - 83b), %g0               ! CTI   Group brk forced
-        add            %o0, %g7, %o0                           ! IEU0  Group
-#endif
-38:    MOVE_LASTALIGNCHUNK(o1, o0, 0x60, g2, g3)
-       MOVE_LASTALIGNCHUNK(o1, o0, 0x50, g2, g3)
-       MOVE_LASTALIGNCHUNK(o1, o0, 0x40, g2, g3)
-       MOVE_LASTALIGNCHUNK(o1, o0, 0x30, g2, g3)
-       MOVE_LASTALIGNCHUNK(o1, o0, 0x20, g2, g3)
-       MOVE_LASTALIGNCHUNK(o1, o0, 0x10, g2, g3)
-       MOVE_LASTALIGNCHUNK(o1, o0, 0x00, g2, g3)
-       EXT(38b,84f,VIScopyfixup4)
-84:    be,pt           %xcc, 85f                               ! CTI   Group
-        andcc          %o2, 4, %g0                             ! IEU1
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDX          [%o1] ASINORMAL, %g2,
-                       and %o2, 0xf)                           ! Load  Group
-       add             %o0, 8, %o0                             ! IEU0
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       add             %o1, 8, %o1                             ! IEU0  Group
-       EX(STX          %g2, [%o0 - 0x8] ASINORMAL,
-                       and %o2, 0xf)                           ! Store
-85:    be,pt           %xcc, 1f                                ! CTI
-        andcc          %o2, 2, %g0                             ! IEU1  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUW         [%o1] ASINORMAL, %g2,
-                       and %o2, 0x7)                           ! Load  Group
-       add             %o0, 4, %o0                             ! IEU0
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       add             %o1, 4, %o1                             ! IEU0  Group
-       EX(STW          %g2, [%o0 - 0x4] ASINORMAL,
-                       and %o2, 0x7)                           ! Store
-1:     be,pt           %xcc, 1f                                ! CTI
-        andcc          %o2, 1, %g0                             ! IEU1  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUH         [%o1] ASINORMAL, %g2,
-                       and %o2, 0x3)                           ! Load  Group
-       add             %o0, 2, %o0                             ! IEU0
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       add             %o1, 2, %o1                             ! IEU0  Group
-       EX(STH          %g2, [%o0 - 0x2] ASINORMAL,
-                       and %o2, 0x3)                           ! Store
-1:     be,pt           %xcc, 1f                                ! CTI
-        nop                                                    ! IEU0  Group
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUB         [%o1] ASINORMAL, %g2,
-                       add %g0, 1)                             ! Load  Group
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       EX(STB          %g2, [%o0] ASINORMAL,
-                       add %g0, 1)                             ! Store Group + bubble
-1:     NORMAL_RETL
-#endif /* REGS_64BIT */
-
-memcpy_noVIS_misaligned:
-       brz,pt                  %g2, 2f                         ! CTI   Group
-        mov                    8, %g1                          ! IEU0
-       sub                     %g1, %g2, %g2                   ! IEU0  Group
-       sub                     %o2, %g2, %o2                   ! IEU0  Group
-1:     ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDUB                 [%o1] ASINORMAL, %g5,
-                               add %o2, %g2)                   ! Load  Group
-       add                     %o1, 1, %o1                     ! IEU0
-       add                     %o0, 1, %o0                     ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       subcc                   %g2, 1, %g2                     ! IEU1  Group
-       bne,pt                  %xcc, 1b                        ! CTI
-        EX2(STB                %g5, [%o0 - 1] ASINORMAL,
-                               add %o2, %g2, %o2,
-                               add %o2, 1)                     ! Store
-2:
-#ifdef __KERNEL__
-       VISEntry
-#endif
-       andn                    %o2, 7, %g5                     ! IEU0  Group
-       and                     %o2, 7, %o2                     ! IEU1
-       fmovd                   %f0, %f2                        ! FPU
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       alignaddr               %o1, %g0, %g1                   ! GRU   Group
-       EXO2(LDDF               [%g1] ASINORMAL, %f4)           ! Load  Group
-1:     EX(LDDF                 [%g1 + 0x8] ASINORMAL, %f6,
-                               add %o2, %g5)                   ! Load  Group
-       add                     %g1, 0x8, %g1                   ! IEU0  Group
-       subcc                   %g5, 8, %g5                     ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       faligndata              %f4, %f6, %f0                   ! GRU   Group
-       EX2(STDF                %f0, [%o0] ASINORMAL,
-                               add %o2, %g5, %o2,
-                               add %o2, 8)                     ! Store
-       add                     %o1, 8, %o1                     ! IEU0  Group
-       be,pn                   %xcc, end_cruft                 ! CTI
-        add                    %o0, 8, %o0                     ! IEU1
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       EX(LDDF                 [%g1 + 0x8] ASINORMAL, %f4,
-                               add %o2, %g5)                   ! Load  Group
-       add                     %g1, 8, %g1                     ! IEU0
-       subcc                   %g5, 8, %g5                     ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       faligndata              %f6, %f4, %f0                   ! GRU   Group
-       EX2(STDF                %f0, [%o0] ASINORMAL,
-                               add %o2, %g5, %o2,
-                               add %o2, 8)                     ! Store
-       add                     %o1, 8, %o1                     ! IEU0
-       ASI_SETSRC_NOBLK                                        ! LSU   Group
-       bne,pn                  %xcc, 1b                        ! CTI   Group
-        add                    %o0, 8, %o0                     ! IEU0
-end_cruft:
-       brz,pn                  %o2, fpu_retl                   ! CTI   Group
-#ifndef __KERNEL__
-        nop                                                    ! IEU0
-#else
-        ASI_SETSRC_NOBLK                                       ! LSU   Group
-#endif
-       EXO2(LDUB       [%o1] ASINORMAL, %g5)                   ! LOAD
-       add             %o1, 1, %o1                             ! IEU0
-       add             %o0, 1, %o0                             ! IEU1
-       ASI_SETDST_NOBLK                                        ! LSU   Group
-       subcc           %o2, 1, %o2                             ! IEU1
-       bne,pt          %xcc, vis_slp                           ! CTI
-        EX(STB         %g5, [%o0 - 1] ASINORMAL,
-                       add %o2, 1)                             ! Store Group
-fpu_retl:
-       FPU_RETL
-
-#ifdef __KERNEL__
-               .section        .fixup
-               .align          4
-VIScopyfixup_reto2:
-               mov             %o2, %o1
-VIScopyfixup_ret:
-               /* If this is copy_from_user(), zero out the rest of the
-                * kernel buffer.
-                */
-               ldub            [%g6 + TI_CURRENT_DS], %o4
-               andcc           asi_src, 0x1, %g0
-               be,pt           %icc, 1f
-                VISExit
-               andcc           asi_dest, 0x1, %g0
-               bne,pn          %icc, 1f
-                nop
-               save            %sp, -160, %sp
-               mov             %i0, %o0
-               call            __bzero
-                mov            %i1, %o1
-               restore
-1:             mov             %o1, %o0
-               retl
-                wr             %o4, %g0, %asi
-VIScopyfixup1: subcc           %g2, 18, %g2
-               add             %o0, 32, %o0
-               bgeu,a,pt       %icc, VIScopyfixup1
-                sub            %g7, 32, %g7
-               sub             %o0, 32, %o0
-               rd              %pc, %g5
-               add             %g2, (18 + 16), %g2
-               ldub            [%g5 + %g2], %g2
-               ba,a,pt         %xcc, 2f
-.byte          0, 0, 0, 0, 0, 0, 0, 4, 4, 8, 12, 12, 16, 20, 20, 24, 28, 28
-               .align          4
-VIScopyfixup2: mov             (7 * 16), %g7
-1:             subcc           %g2, 10, %g2
-               bgeu,a,pt       %icc, 1b
-                sub            %g7, 16, %g7
-               sub             %o0, %g7, %o0
-               rd              %pc, %g5
-               add             %g2, (10 + 16), %g2
-               ldub            [%g5 + %g2], %g2
-               ba,a,pt         %xcc, 4f
-.byte          0, 0, 0, 0, 0, 4, 4, 8, 12, 12
-               .align          4
-VIScopyfixup3: subcc           %g2, 10, %g2
-               add             %o0, 32, %o0
-               bgeu,a,pt       %icc, VIScopyfixup3
-                sub            %g7, 32, %g7
-               sub             %o0, 32, %o0
-               rd              %pc, %g5
-               add             %g2, (10 + 16), %g2
-               ldub            [%g5 + %g2], %g2
-               ba,a,pt         %xcc, 2f
-.byte          0, 0, 0, 0, 0, 0, 0, 8, 16, 24
-               .align          4
-2:             and             %o2, 0x7f, %o2
-               sub             %g7, %g2, %g7
-               ba,pt           %xcc, VIScopyfixup_ret
-                add            %g7, %o2, %o1
-VIScopyfixup4: mov             (7 * 16), %g7
-3:             subcc           %g2, 6, %g2
-               bgeu,a,pt       %icc, 3b
-                sub            %g7, 16, %g7
-               sub             %o0, %g7, %o0
-               rd              %pc, %g5
-               add             %g2, (6 + 16), %g2
-               ldub            [%g5 + %g2], %g2
-               ba,a,pt         %xcc, 4f
-.byte          0, 0, 0, 0, 0, 8
-               .align          4
-4:             and             %o2, 0xf, %o2
-               sub             %g7, %g2, %g7
-               ba,pt           %xcc, VIScopyfixup_ret
-                add            %g7, %o2, %o1
-VIScopyfixup_vis2:
-               sub             %o2, 0x40, %o2
-VIScopyfixup_vis0:
-               add             %o2, 0x80, %o2
-VIScopyfixup_vis1:
-               add             %g7, %g3, %g7
-               ba,pt           %xcc, VIScopyfixup_ret
-                add            %o2, %g7, %o1
-VIScopyfixup_vis4:
-               add             %g3, 8, %g3
-VIScopyfixup_vis3:
-               add             %g3, 8, %g3
-               ba,pt           %xcc, VIScopyfixup_ret
-                add            %o2, %g3, %o1
-#endif
-
-#ifdef __KERNEL__
-               .text
-               .align          32
-
-               .globl          __memmove
-               .type           __memmove,@function
-
-               .globl          memmove
-               .type           memmove,@function
-
-memmove:
-__memmove:     cmp             %o0, %o1
-               blu,pt          %xcc, memcpy_private
-                sub            %o0, %o1, %g5
-               add             %o1, %o2, %g3
-               cmp             %g3, %o0
-               bleu,pt         %xcc, memcpy_private
-                add            %o1, %o2, %g5
-               add             %o0, %o2, %o5
-
-               sub             %g5, 1, %o1
-               sub             %o5, 1, %o0
-1:             ldub            [%o1], %g5
-               subcc           %o2, 1, %o2
-               sub             %o1, 1, %o1
-               stb             %g5, [%o0]
-               bne,pt          %icc, 1b
-                sub            %o0, 1, %o0
-
-               retl
-                clr            %o0
-#endif
diff --git a/arch/sparc64/lib/rwlock.S b/arch/sparc64/lib/rwlock.S
deleted file mode 100644 (file)
index 8d8ecec..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/* $Id: rwlock.S,v 1.4 2000/09/09 00:00:34 davem Exp $
- * rwlocks.S: These things are too big to do inline.
- *
- * Copyright (C) 1999 David S. Miller (davem@redhat.com)
- */
-
-       .text
-       .align  64
-
-       /* The non-contention read lock usage is 2 cache lines. */
-
-       .globl  __read_lock, __read_unlock
-__read_lock: /* %o0 = lock_ptr */
-       ldsw            [%o0], %g5
-       brlz,pn         %g5, __read_wait_for_writer
-4:      add            %g5, 1, %g7
-       cas             [%o0], %g5, %g7
-       cmp             %g5, %g7
-       bne,pn          %icc, __read_lock
-        membar         #StoreLoad | #StoreStore
-99:    retl
-        nop
-__read_unlock: /* %o0 = lock_ptr */
-       lduw            [%o0], %g5
-       sub             %g5, 1, %g7
-       cas             [%o0], %g5, %g7
-       cmp             %g5, %g7
-       be,pt           %xcc, 99b
-        membar         #StoreLoad | #StoreStore
-       ba,a,pt         %xcc, __read_unlock
-
-__read_wait_for_writer:
-       ldsw            [%o0], %g5
-       brlz,pt         %g5, __read_wait_for_writer
-        membar         #LoadLoad
-       ba,a,pt         %xcc, 4b
-__write_wait_for_any:
-       lduw            [%o0], %g5
-       brnz,pt         %g5, __write_wait_for_any
-        membar         #LoadLoad
-       ba,a,pt         %xcc, 4f
-
-       .align          64
-       .globl          __write_unlock
-__write_unlock: /* %o0 = lock_ptr */
-       membar          #LoadStore | #StoreStore
-       retl
-        stw            %g0, [%o0]
-
-       .globl          __write_lock
-__write_lock: /* %o0 = lock_ptr */
-       sethi           %hi(0x80000000), %g2
-
-1:     lduw            [%o0], %g5
-       brnz,pn         %g5, __write_wait_for_any
-4:      or             %g5, %g2, %g7
-       cas             [%o0], %g5, %g7
-
-       cmp             %g5, %g7
-       be,pt           %icc, 99b
-        membar         #StoreLoad | #StoreStore
-       ba,a,pt         %xcc, 1b
-
-       .globl          __write_trylock
-__write_trylock: /* %o0 = lock_ptr */
-       sethi           %hi(0x80000000), %g2
-1:     lduw            [%o0], %g5
-       brnz,pn         %g5, __write_trylock_fail
-4:      or             %g5, %g2, %g7
-
-       cas             [%o0], %g5, %g7
-       cmp             %g5, %g7
-       be,pt           %icc, __write_trylock_succeed
-        membar         #StoreLoad | #StoreStore
-
-       ba,pt           %xcc, 1b
-        nop
-__write_trylock_succeed:
-       retl
-        mov            1, %o0
-
-__write_trylock_fail:
-       retl
-        mov            0, %o0
-
diff --git a/arch/sparc64/lib/splock.S b/arch/sparc64/lib/splock.S
deleted file mode 100644 (file)
index e466ed2..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* splock.S: Spinlock primitives too large to inline.
- *
- * Copyright (C) 2004 David S. Miller (davem@redhat.com)
- */
-
-       .text
-       .align  64
-
-       .globl          _raw_spin_lock
-_raw_spin_lock:                /* %o0 = lock_ptr */
-1:     ldstub          [%o0], %g7
-       brnz,pn         %g7, 2f
-        membar         #StoreLoad | #StoreStore
-       retl
-        nop
-2:     ldub            [%o0], %g7
-       brnz,pt         %g7, 2b
-        membar         #LoadLoad
-       ba,a,pt         %xcc, 1b
-
-       .globl  _raw_spin_lock_flags
-_raw_spin_lock_flags:  /* %o0 = lock_ptr, %o1 = irq_flags */
-1:     ldstub          [%o0], %g7
-       brnz,pn         %g7, 2f
-        membar         #StoreLoad | #StoreStore
-       retl
-        nop
-
-2:     rdpr            %pil, %g2               ! Save PIL
-       wrpr            %o1, %pil               ! Set previous PIL
-3:     ldub            [%o0], %g7              ! Spin on lock set
-       brnz,pt         %g7, 3b
-        membar         #LoadLoad
-       ba,pt           %xcc, 1b                ! Retry lock acquire
-        wrpr           %g2, %pil               ! Restore PIL
diff --git a/arch/um/drivers/hostaudio_user.c b/arch/um/drivers/hostaudio_user.c
deleted file mode 100644 (file)
index c32fa1b..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/* 
- * Copyright (C) 2002 Steve Schmidtke 
- * Licensed under the GPL
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <errno.h>
-#include "hostaudio.h"
-#include "user_util.h"
-#include "kern_util.h"
-#include "user.h"
-#include "os.h"
-
-/* /dev/dsp file operations */
-
-ssize_t hostaudio_read_user(struct hostaudio_state *state, char *buffer, 
-                           size_t count, loff_t *ppos)
-{
-       ssize_t ret;
-
-#ifdef DEBUG
-        printk("hostaudio: read_user called, count = %d\n", count);
-#endif
-
-        ret = read(state->fd, buffer, count);
-
-        if(ret < 0) return(-errno);
-        return(ret);
-}
-
-ssize_t hostaudio_write_user(struct hostaudio_state *state, const char *buffer,
-                            size_t count, loff_t *ppos)
-{
-       ssize_t ret;
-
-#ifdef DEBUG
-        printk("hostaudio: write_user called, count = %d\n", count);
-#endif
-
-        ret = write(state->fd, buffer, count);
-
-        if(ret < 0) return(-errno);
-        return(ret);
-}
-
-int hostaudio_ioctl_user(struct hostaudio_state *state, unsigned int cmd, 
-                        unsigned long arg)
-{
-       int ret;
-#ifdef DEBUG
-        printk("hostaudio: ioctl_user called, cmd = %u\n", cmd);
-#endif
-
-        ret = ioctl(state->fd, cmd, arg);
-       
-        if(ret < 0) return(-errno);
-        return(ret);
-}
-
-int hostaudio_open_user(struct hostaudio_state *state, int r, int w, char *dsp)
-{
-#ifdef DEBUG
-        printk("hostaudio: open_user called\n");
-#endif
-
-        state->fd = os_open_file(dsp, of_set_rw(OPENFLAGS(), r, w), 0);
-
-        if(state->fd >= 0) return(0);
-
-        printk("hostaudio_open_user failed to open '%s', errno = %d\n",
-              dsp, errno);
-        
-        return(-errno); 
-}
-
-int hostaudio_release_user(struct hostaudio_state *state)
-{
-#ifdef DEBUG
-        printk("hostaudio: release called\n");
-#endif
-        if(state->fd >= 0){
-               close(state->fd);
-               state->fd=-1;
-        }
-
-        return(0);
-}
-
-/* /dev/mixer file operations */
-
-int hostmixer_ioctl_mixdev_user(struct hostmixer_state *state, 
-                               unsigned int cmd, unsigned long arg)
-{
-       int ret;
-#ifdef DEBUG
-        printk("hostmixer: ioctl_user called cmd = %u\n",cmd);
-#endif
-
-        ret = ioctl(state->fd, cmd, arg);
-       if(ret < 0) 
-               return(-errno);
-       return(ret);
-}
-
-int hostmixer_open_mixdev_user(struct hostmixer_state *state, int r, int w,
-                              char *mixer)
-{
-#ifdef DEBUG
-        printk("hostmixer: open_user called\n");
-#endif
-
-        state->fd = os_open_file(mixer, of_set_rw(OPENFLAGS(), r, w), 0);
-
-        if(state->fd >= 0) return(0);
-
-        printk("hostaudio_open_mixdev_user failed to open '%s', errno = %d\n",
-              mixer, errno);
-        
-        return(-errno); 
-}
-
-int hostmixer_release_mixdev_user(struct hostmixer_state *state)
-{
-#ifdef DEBUG
-        printk("hostmixer: release_user called\n");
-#endif
-
-        if(state->fd >= 0){
-               close(state->fd);
-               state->fd = -1;
-        }
-
-        return 0;
-}
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/dyn.lds.S b/arch/um/dyn.lds.S
deleted file mode 100644 (file)
index 361d930..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-OUTPUT_FORMAT(ELF_FORMAT)
-OUTPUT_ARCH(ELF_ARCH)
-ENTRY(_start)
-jiffies = jiffies_64;
-
-SEARCH_DIR("/usr/local/i686-pc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-SECTIONS
-{
-  . = START + SIZEOF_HEADERS;
-  .interp         : { *(.interp) }
-  . = ALIGN(4096);
-  __binary_start = .;
-  . = ALIGN(4096);             /* Init code and data */
-  _stext = .;
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-
-  . = ALIGN(4096);
-
-  /* Read-only sections, merged into text segment: */
-  .hash           : { *(.hash) }
-  .dynsym         : { *(.dynsym) }
-  .dynstr         : { *(.dynstr) }
-  .gnu.version    : { *(.gnu.version) }
-  .gnu.version_d  : { *(.gnu.version_d) }
-  .gnu.version_r  : { *(.gnu.version_r) }
-  .rel.init       : { *(.rel.init) }
-  .rela.init      : { *(.rela.init) }
-  .rel.text       : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
-  .rela.text      : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
-  .rel.fini       : { *(.rel.fini) }
-  .rela.fini      : { *(.rela.fini) }
-  .rel.rodata     : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
-  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
-  .rel.data       : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
-  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
-  .rel.tdata     : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
-  .rela.tdata    : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
-  .rel.tbss      : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
-  .rela.tbss     : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
-  .rel.ctors      : { *(.rel.ctors) }
-  .rela.ctors     : { *(.rela.ctors) }
-  .rel.dtors      : { *(.rel.dtors) }
-  .rela.dtors     : { *(.rela.dtors) }
-  .rel.got        : { *(.rel.got) }
-  .rela.got       : { *(.rela.got) }
-  .rel.bss        : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
-  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
-  .rel.plt        : { *(.rel.plt) }
-  .rela.plt       : { *(.rela.plt) }
-  .init           : {
-    KEEP (*(.init))
-  } =0x90909090
-  .plt            : { *(.plt) }
-  .text           : {
-    *(.text .stub .text.* .gnu.linkonce.t.*)
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-  } =0x90909090
-  .fini           : {
-    KEEP (*(.fini))
-  } =0x90909090
-
-  .kstrtab : { *(.kstrtab) }
-
-  #include "asm/common.lds.S"
-
-  .data.init : { *(.data.init) }
-
-  /* Ensure the __preinit_array_start label is properly aligned.  We
-     could instead move the label definition inside the section, but
-     the linker would then create the section even if it turns out to
-     be empty, which isn't pretty.  */
-  . = ALIGN(32 / 8);
-  .preinit_array     : { *(.preinit_array) }
-  .init_array     : { *(.init_array) }
-  .fini_array     : { *(.fini_array) }
-  .data           : {
-    . = ALIGN(KERNEL_STACK_SIZE);              /* init_task */
-    *(.data.init_task)
-    *(.data .data.* .gnu.linkonce.d.*)
-    SORT(CONSTRUCTORS)
-  }
-  .data1          : { *(.data1) }
-  .tdata         : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
-  .tbss                  : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
-  .eh_frame       : { KEEP (*(.eh_frame)) }
-  .gcc_except_table   : { *(.gcc_except_table) }
-  .dynamic        : { *(.dynamic) }
-  .ctors          : {
-    /* gcc uses crtbegin.o to find the start of
-       the constructors, so we make sure it is
-       first.  Because this is a wildcard, it
-       doesn't matter if the user does not
-       actually link against crtbegin.o; the
-       linker won't look for a file to match a
-       wildcard.  The wildcard also means that it
-       doesn't matter which directory crtbegin.o
-       is in.  */
-    KEEP (*crtbegin.o(.ctors))
-    /* We don't want to include the .ctor section from
-       from the crtend.o file until after the sorted ctors.
-       The .ctor section from the crtend file contains the
-       end of ctors marker and it must be last */
-    KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
-    KEEP (*(SORT(.ctors.*)))
-    KEEP (*(.ctors))
-  }
-  .dtors          : {
-    KEEP (*crtbegin.o(.dtors))
-    KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
-    KEEP (*(SORT(.dtors.*)))
-    KEEP (*(.dtors))
-  }
-  .jcr            : { KEEP (*(.jcr)) }
-  .got            : { *(.got.plt) *(.got) }
-  _edata = .;
-  PROVIDE (edata = .);
-  __bss_start = .;
-  .bss            : {
-   *(.dynbss)
-   *(.bss .bss.* .gnu.linkonce.b.*)
-   *(COMMON)
-   /* Align here to ensure that the .bss section occupies space up to
-      _end.  Align after .bss to ensure correct alignment even if the
-      .bss section disappears because there are no input sections.  */
-   . = ALIGN(32 / 8);
-  . = ALIGN(32 / 8);
-  }
-  _end = .;
-  PROVIDE (end = .);
-   /* Stabs debugging sections.  */
-  .stab          0 : { *(.stab) }
-  .stabstr       0 : { *(.stabstr) }
-  .stab.excl     0 : { *(.stab.excl) }
-  .stab.exclstr  0 : { *(.stab.exclstr) }
-  .stab.index    0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
-  .comment       0 : { *(.comment) }
-  /* DWARF debug sections.
-     Symbols in the DWARF debugging sections are relative to the beginning
-     of the section so we begin them at 0.  */
-  /* DWARF 1 */
-  .debug          0 : { *(.debug) }
-  .line           0 : { *(.line) }
-  /* GNU DWARF 1 extensions */
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }
-  .debug_sfnames  0 : { *(.debug_sfnames) }
-  /* DWARF 1.1 and DWARF 2 */
-  .debug_aranges  0 : { *(.debug_aranges) }
-  .debug_pubnames 0 : { *(.debug_pubnames) }
-  /* DWARF 2 */
-  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
-  .debug_abbrev   0 : { *(.debug_abbrev) }
-  .debug_line     0 : { *(.debug_line) }
-  .debug_frame    0 : { *(.debug_frame) }
-  .debug_str      0 : { *(.debug_str) }
-  .debug_loc      0 : { *(.debug_loc) }
-  .debug_macinfo  0 : { *(.debug_macinfo) }
-  /* SGI/MIPS DWARF 2 extensions */
-  .debug_weaknames 0 : { *(.debug_weaknames) }
-  .debug_funcnames 0 : { *(.debug_funcnames) }
-  .debug_typenames 0 : { *(.debug_typenames) }
-  .debug_varnames  0 : { *(.debug_varnames) }
-}
diff --git a/arch/um/include/Makefile b/arch/um/include/Makefile
deleted file mode 100644 (file)
index cc5dad0..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-all : sc.h
-
-sc.h : ../util/mk_sc
-       ../util/mk_sc > $@
-
-../util/mk_sc :
-       $(MAKE) -C ../util mk_sc
diff --git a/arch/um/include/hostaudio.h b/arch/um/include/hostaudio.h
deleted file mode 100644 (file)
index 797b3f2..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* 
- * Copyright (C) 2002 Steve Schmidtke 
- * Licensed under the GPL
- */
-
-#ifndef HOSTAUDIO_H
-#define HOSTAUDIO_H
-
-#define HOSTAUDIO_DEV_DSP "/dev/sound/dsp"
-#define HOSTAUDIO_DEV_MIXER "/dev/sound/mixer"
-
-struct hostaudio_state {
-  int fd;
-};
-
-struct hostmixer_state {
-  int fd;
-};
-
-/* UML user-side protoypes */
-extern ssize_t hostaudio_read_user(struct hostaudio_state *state, char *buffer,
-                                  size_t count, loff_t *ppos);
-extern ssize_t hostaudio_write_user(struct hostaudio_state *state, 
-                                   const char *buffer, size_t count, 
-                                   loff_t *ppos);
-extern int hostaudio_ioctl_user(struct hostaudio_state *state, 
-                               unsigned int cmd, unsigned long arg);
-extern int hostaudio_open_user(struct hostaudio_state *state, int r, int w, 
-                              char *dsp);
-extern int hostaudio_release_user(struct hostaudio_state *state);
-extern int hostmixer_ioctl_mixdev_user(struct hostmixer_state *state, 
-                               unsigned int cmd, unsigned long arg);
-extern int hostmixer_open_mixdev_user(struct hostmixer_state *state, int r, 
-                                     int w, char *mixer);
-extern int hostmixer_release_mixdev_user(struct hostmixer_state *state);
-
-#endif /* HOSTAUDIO_H */
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/mprot.h b/arch/um/kernel/mprot.h
deleted file mode 100644 (file)
index 83dc8cc..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __MPROT_H__
-#define __MPROT_H__
-
-extern void no_access(unsigned long addr, unsigned int len);
-
-#endif
diff --git a/arch/um/kernel/skas/exec_user.c b/arch/um/kernel/skas/exec_user.c
deleted file mode 100644 (file)
index d50633a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#include <stdlib.h>
-#include <errno.h>
-#include <signal.h>
-#include <sched.h>
-#include <sys/wait.h>
-#include <sys/ptrace.h>
-#include "user.h"
-#include "kern_util.h"
-#include "user_util.h"
-#include "os.h"
-#include "time_user.h"
-
-static int user_thread_tramp(void *arg)
-{
-       if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0)
-               panic("user_thread_tramp - PTRACE_TRACEME failed, "
-                     "errno = %d\n", errno);
-       enable_timer();
-       os_stop_process(os_getpid());
-       return(0);
-}
-
-int user_thread(unsigned long stack, int flags)
-{
-       int pid, status, err;
-
-       pid = clone(user_thread_tramp, (void *) stack_sp(stack), 
-                   flags | CLONE_FILES | SIGCHLD, NULL);
-       if(pid < 0){
-               printk("user_thread - clone failed, errno = %d\n", errno);
-               return(pid);
-       }
-
-       CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED));
-       if(err < 0){
-               printk("user_thread - waitpid failed, errno = %d\n", errno);
-               return(-errno);
-       }
-
-       if(!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGSTOP)){
-               printk("user_thread - trampoline didn't stop, status = %d\n", 
-                      status);
-               return(-EINVAL);
-       }
-
-       return(pid);
-}
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/skas/include/mmu.h b/arch/um/kernel/skas/include/mmu.h
deleted file mode 100644 (file)
index cfbc062..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#ifndef __SKAS_MMU_H
-#define __SKAS_MMU_H
-
-#include "linux/list.h"
-#include "linux/spinlock.h"
-
-struct mmu_context_skas {
-       int mm_fd;
-};
-
-#endif
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/skas/include/mode.h b/arch/um/kernel/skas/include/mode.h
deleted file mode 100644 (file)
index 285edc5..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#ifndef __MODE_SKAS_H__
-#define __MODE_SKAS_H__
-
-extern unsigned long exec_regs[];
-extern unsigned long exec_fp_regs[];
-extern unsigned long exec_fpx_regs[];
-extern int have_fpx_regs;
-
-extern void user_time_init_skas(void);
-extern int copy_sc_from_user_skas(int pid, union uml_pt_regs *regs,
-                                 void *from_ptr);
-extern int copy_sc_to_user_skas(int pid, void *to_ptr, void *fp,
-                               union uml_pt_regs *regs, 
-                               unsigned long fault_addr, int fault_type);
-extern void sig_handler_common_skas(int sig, void *sc_ptr);
-extern void halt_skas(void);
-extern void reboot_skas(void);
-extern void kill_off_processes_skas(void);
-extern int is_skas_winch(int pid, int fd, void *data);
-
-#endif
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/skas/include/mode_kern.h b/arch/um/kernel/skas/include/mode_kern.h
deleted file mode 100644 (file)
index 3597c09..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#ifndef __SKAS_MODE_KERN_H__
-#define __SKAS_MODE_KERN_H__
-
-#include "linux/sched.h"
-#include "asm/page.h"
-#include "asm/ptrace.h"
-
-extern void flush_thread_skas(void);
-extern void *switch_to_skas(void *prev, void *next);
-extern void start_thread_skas(struct pt_regs *regs, unsigned long eip, 
-                             unsigned long esp);
-extern int copy_thread_skas(int nr, unsigned long clone_flags, 
-                           unsigned long sp, unsigned long stack_top, 
-                           struct task_struct *p, struct pt_regs *regs);
-extern void release_thread_skas(struct task_struct *task);
-extern void exit_thread_skas(void);
-extern void initial_thread_cb_skas(void (*proc)(void *), void *arg);
-extern void init_idle_skas(void);
-extern void flush_tlb_kernel_range_skas(unsigned long start, 
-                                       unsigned long end);
-extern void flush_tlb_kernel_vm_skas(void);
-extern void __flush_tlb_one_skas(unsigned long addr);
-extern void flush_tlb_range_skas(struct vm_area_struct *vma, 
-                                unsigned long start, unsigned long end);
-extern void flush_tlb_mm_skas(struct mm_struct *mm);
-extern void force_flush_all_skas(void);
-extern long execute_syscall_skas(void *r);
-extern void before_mem_skas(unsigned long unused);
-extern unsigned long set_task_sizes_skas(int arg, unsigned long *host_size_out,
-                                        unsigned long *task_size_out);
-extern int start_uml_skas(void);
-extern int external_pid_skas(struct task_struct *task);
-extern int thread_pid_skas(struct task_struct *task);
-
-#define kmem_end_skas (host_task_size - 1024 * 1024)
-
-#endif
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/skas/include/uaccess.h b/arch/um/kernel/skas/include/uaccess.h
deleted file mode 100644 (file)
index 0d6f30b..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#ifndef __SKAS_UACCESS_H
-#define __SKAS_UACCESS_H
-
-#include "asm/errno.h"
-
-#define access_ok_skas(type, addr, size) \
-       ((segment_eq(get_fs(), KERNEL_DS)) || \
-        (((unsigned long) (addr) < TASK_SIZE) && \
-         ((unsigned long) (addr) + (size) <= TASK_SIZE)))
-
-static inline int verify_area_skas(int type, const void * addr, 
-                                  unsigned long size)
-{
-       return(access_ok_skas(type, addr, size) ? 0 : -EFAULT);
-}
-
-extern int copy_from_user_skas(void *to, const void *from, int n);
-extern int copy_to_user_skas(void *to, const void *from, int n);
-extern int strncpy_from_user_skas(char *dst, const char *src, int count);
-extern int __clear_user_skas(void *mem, int len);
-extern int clear_user_skas(void *mem, int len);
-extern int strnlen_user_skas(const void *str, int len);
-
-#endif
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/tt/include/mmu.h b/arch/um/kernel/tt/include/mmu.h
deleted file mode 100644 (file)
index 6b146bd..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#ifndef __TT_MMU_H
-#define __TT_MMU_H
-
-struct mmu_context_tt {
-};
-
-#endif
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/tt/include/mode.h b/arch/um/kernel/tt/include/mode.h
deleted file mode 100644 (file)
index 1a64e75..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#ifndef __MODE_TT_H__
-#define __MODE_TT_H__
-
-#include "sysdep/ptrace.h"
-
-enum { OP_NONE, OP_EXEC, OP_FORK, OP_TRACE_ON, OP_REBOOT, OP_HALT, OP_CB };
-
-extern int tracing_pid;
-
-extern int tracer(int (*init_proc)(void *), void *sp);
-extern void user_time_init_tt(void);
-extern int copy_sc_from_user_tt(void *to_ptr, void *from_ptr, void *data);
-extern int copy_sc_to_user_tt(void *to_ptr, void *fp, void *from_ptr, 
-                             void *data);
-extern void sig_handler_common_tt(int sig, void *sc);
-extern void syscall_handler_tt(int sig, union uml_pt_regs *regs);
-extern void reboot_tt(void);
-extern void halt_tt(void);
-extern int is_tracer_winch(int pid, int fd, void *data);
-extern void kill_off_processes_tt(void);
-
-#endif
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/tt/include/mode_kern.h b/arch/um/kernel/tt/include/mode_kern.h
deleted file mode 100644 (file)
index a8c3134..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* 
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#ifndef __TT_MODE_KERN_H__
-#define __TT_MODE_KERN_H__
-
-#include "linux/sched.h"
-#include "asm/page.h"
-#include "asm/ptrace.h"
-#include "asm/uaccess.h"
-
-extern void *switch_to_tt(void *prev, void *next);
-extern void flush_thread_tt(void);
-extern void start_thread_tt(struct pt_regs *regs, unsigned long eip, 
-                          unsigned long esp);
-extern int copy_thread_tt(int nr, unsigned long clone_flags, unsigned long sp,
-                         unsigned long stack_top, struct task_struct *p, 
-                         struct pt_regs *regs);
-extern void release_thread_tt(struct task_struct *task);
-extern void exit_thread_tt(void);
-extern void initial_thread_cb_tt(void (*proc)(void *), void *arg);
-extern void init_idle_tt(void);
-extern void flush_tlb_kernel_range_tt(unsigned long start, unsigned long end);
-extern void flush_tlb_kernel_vm_tt(void);
-extern void __flush_tlb_one_tt(unsigned long addr);
-extern void flush_tlb_range_tt(struct vm_area_struct *vma, 
-                              unsigned long start, unsigned long end);
-extern void flush_tlb_mm_tt(struct mm_struct *mm);
-extern void force_flush_all_tt(void);
-extern long execute_syscall_tt(void *r);
-extern void before_mem_tt(unsigned long brk_start);
-extern unsigned long set_task_sizes_tt(int arg, unsigned long *host_size_out, 
-                                      unsigned long *task_size_out);
-extern int start_uml_tt(void);
-extern int external_pid_tt(struct task_struct *task);
-extern int thread_pid_tt(struct task_struct *task);
-
-#define kmem_end_tt (host_task_size - ABOVE_KMEM)
-
-#endif
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/tt/include/uaccess.h b/arch/um/kernel/tt/include/uaccess.h
deleted file mode 100644 (file)
index 7399836..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/* 
- * Copyright (C) 2000 - 2003 Jeff Dike (jdike@addtoit.com)
- * Licensed under the GPL
- */
-
-#ifndef __TT_UACCESS_H
-#define __TT_UACCESS_H
-
-#include "linux/string.h"
-#include "linux/sched.h"
-#include "asm/processor.h"
-#include "asm/errno.h"
-#include "asm/current.h"
-#include "asm/a.out.h"
-#include "uml_uaccess.h"
-
-#define ABOVE_KMEM (16 * 1024 * 1024)
-
-extern unsigned long end_vm;
-extern unsigned long uml_physmem;
-
-#define under_task_size(addr, size) \
-       (((unsigned long) (addr) < TASK_SIZE) && \
-         (((unsigned long) (addr) + (size)) < TASK_SIZE))
-
-#define is_stack(addr, size) \
-       (((unsigned long) (addr) < STACK_TOP) && \
-        ((unsigned long) (addr) >= STACK_TOP - ABOVE_KMEM) && \
-        (((unsigned long) (addr) + (size)) <= STACK_TOP))
-
-#define access_ok_tt(type, addr, size) \
-       ((type == VERIFY_READ) || (segment_eq(get_fs(), KERNEL_DS)) || \
-         (((unsigned long) (addr) <= ((unsigned long) (addr) + (size))) && \
-          (under_task_size(addr, size) || is_stack(addr, size))))
-
-static inline int verify_area_tt(int type, const void * addr, 
-                                unsigned long size)
-{
-       return(access_ok_tt(type, addr, size) ? 0 : -EFAULT);
-}
-
-extern unsigned long get_fault_addr(void);
-
-extern int __do_copy_from_user(void *to, const void *from, int n,
-                              void **fault_addr, void **fault_catcher);
-extern int __do_strncpy_from_user(char *dst, const char *src, size_t n,
-                                 void **fault_addr, void **fault_catcher);
-extern int __do_clear_user(void *mem, size_t len, void **fault_addr,
-                          void **fault_catcher);
-extern int __do_strnlen_user(const char *str, unsigned long n,
-                            void **fault_addr, void **fault_catcher);
-
-extern int copy_from_user_tt(void *to, const void *from, int n);
-extern int copy_to_user_tt(void *to, const void *from, int n);
-extern int strncpy_from_user_tt(char *dst, const char *src, int count);
-extern int __clear_user_tt(void *mem, int len);
-extern int clear_user_tt(void *mem, int len);
-extern int strnlen_user_tt(const void *str, int len);
-
-#endif
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/kernel/user_syms.c b/arch/um/kernel/user_syms.c
deleted file mode 100644 (file)
index 2d32ea3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <errno.h>
-#include <utime.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/vfs.h>
-#include <sys/ioctl.h>
-#include "user_util.h"
-#include "mem_user.h"
-#include "uml-config.h"
-
-/* Had to steal this from linux/module.h because that file can't be included
- * since this includes various user-level headers.
- */
-
-struct module_symbol
-{
-       unsigned long value;
-       const char *name;
-};
-
-/* Indirect stringification.  */
-
-#define __MODULE_STRING_1(x)   #x
-#define __MODULE_STRING(x)     __MODULE_STRING_1(x)
-
-#if !defined(__AUTOCONF_INCLUDED__)
-
-#define __EXPORT_SYMBOL(sym,str)   error config_must_be_included_before_module
-#define EXPORT_SYMBOL(var)        error config_must_be_included_before_module
-#define EXPORT_SYMBOL_NOVERS(var)  error config_must_be_included_before_module
-
-#elif !defined(UML_CONFIG_MODULES)
-
-#define __EXPORT_SYMBOL(sym,str)
-#define EXPORT_SYMBOL(var)
-#define EXPORT_SYMBOL_NOVERS(var)
-
-#else
-
-#define __EXPORT_SYMBOL(sym, str)                      \
-const char __kstrtab_##sym[]                           \
-__attribute__((section(".kstrtab"))) = str;            \
-const struct module_symbol __ksymtab_##sym             \
-__attribute__((section("__ksymtab"))) =                        \
-{ (unsigned long)&sym, __kstrtab_##sym }
-
-#if defined(__MODVERSIONS__) || !defined(UML_CONFIG_MODVERSIONS)
-#define EXPORT_SYMBOL(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(var))
-#else
-#define EXPORT_SYMBOL(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(__VERSIONED_SYMBOL(var)))
-#endif
-
-#define EXPORT_SYMBOL_NOVERS(var)  __EXPORT_SYMBOL(var, __MODULE_STRING(var))
-
-#endif
-
-EXPORT_SYMBOL(__errno_location);
-
-EXPORT_SYMBOL(access);
-EXPORT_SYMBOL(open);
-EXPORT_SYMBOL(open64);
-EXPORT_SYMBOL(close);
-EXPORT_SYMBOL(read);
-EXPORT_SYMBOL(write);
-EXPORT_SYMBOL(dup2);
-EXPORT_SYMBOL(__xstat);
-EXPORT_SYMBOL(__lxstat);
-EXPORT_SYMBOL(__lxstat64);
-EXPORT_SYMBOL(lseek);
-EXPORT_SYMBOL(lseek64);
-EXPORT_SYMBOL(chown);
-EXPORT_SYMBOL(truncate);
-EXPORT_SYMBOL(utime);
-EXPORT_SYMBOL(chmod);
-EXPORT_SYMBOL(rename);
-EXPORT_SYMBOL(__xmknod);
-
-EXPORT_SYMBOL(symlink);
-EXPORT_SYMBOL(link);
-EXPORT_SYMBOL(unlink);
-EXPORT_SYMBOL(readlink);
-
-EXPORT_SYMBOL(mkdir);
-EXPORT_SYMBOL(rmdir);
-EXPORT_SYMBOL(opendir);
-EXPORT_SYMBOL(readdir);
-EXPORT_SYMBOL(closedir);
-EXPORT_SYMBOL(seekdir);
-EXPORT_SYMBOL(telldir);
-
-EXPORT_SYMBOL(ioctl);
-
-extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
-                       __off64_t __offset);
-extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
-                        __off64_t __offset);
-EXPORT_SYMBOL(pread64);
-EXPORT_SYMBOL(pwrite64);
-
-EXPORT_SYMBOL(statfs);
-EXPORT_SYMBOL(statfs64);
-
-EXPORT_SYMBOL(memcpy);
-EXPORT_SYMBOL(getuid);
-
-EXPORT_SYMBOL(memset);
-EXPORT_SYMBOL(strstr);
-
-EXPORT_SYMBOL(find_iomem);
diff --git a/arch/um/main.c b/arch/um/main.c
deleted file mode 100644 (file)
index 3866884..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/* 
- * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
-
-#include <unistd.h>
-#include <stdio.h> 
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-#include <sys/resource.h>
-#include <sys/mman.h>
-#include <sys/user.h>
-#include <asm/page.h>
-#include "user_util.h"
-#include "kern_util.h"
-#include "mem_user.h"
-#include "signal_user.h"
-#include "user.h"
-#include "init.h"
-#include "mode.h"
-#include "choose-mode.h"
-#include "uml-config.h"
-
-/* Set in set_stklim, which is called from main and __wrap_malloc.  
- * __wrap_malloc only calls it if main hasn't started.
- */
-unsigned long stacksizelim;
-
-/* Set in main */
-char *linux_prog;
-
-#define PGD_BOUND (4 * 1024 * 1024)
-#define STACKSIZE (8 * 1024 * 1024)
-#define THREAD_NAME_LEN (256)
-
-static void set_stklim(void)
-{
-       struct rlimit lim;
-
-       if(getrlimit(RLIMIT_STACK, &lim) < 0){
-               perror("getrlimit");
-               exit(1);
-       }
-       if((lim.rlim_cur == RLIM_INFINITY) || (lim.rlim_cur > STACKSIZE)){
-               lim.rlim_cur = STACKSIZE;
-               if(setrlimit(RLIMIT_STACK, &lim) < 0){
-                       perror("setrlimit");
-                       exit(1);
-               }
-       }
-       stacksizelim = (lim.rlim_cur + PGD_BOUND - 1) & ~(PGD_BOUND - 1);
-}
-
-static __init void do_uml_initcalls(void)
-{
-       initcall_t *call;
-
-       call = &__uml_initcall_start;
-       while (call < &__uml_initcall_end){;
-               (*call)();
-               call++;
-       }
-}
-
-static void last_ditch_exit(int sig)
-{
-       CHOOSE_MODE(kmalloc_ok = 0, (void) 0);
-       signal(SIGINT, SIG_DFL);
-       signal(SIGTERM, SIG_DFL);
-       signal(SIGHUP, SIG_DFL);
-       uml_cleanup();
-       exit(1);
-}
-
-extern int uml_exitcode;
-
-int main(int argc, char **argv, char **envp)
-{
-       char **new_argv;
-       sigset_t mask;
-       int ret, i;
-
-       /* Enable all signals except SIGIO - in some environments, we can 
-        * enter with some signals blocked
-        */
-
-       sigemptyset(&mask);
-       sigaddset(&mask, SIGIO);
-       if(sigprocmask(SIG_SETMASK, &mask, NULL) < 0){
-               perror("sigprocmask");
-               exit(1);
-       }
-
-#ifdef UML_CONFIG_MODE_TT
-       /* Allocate memory for thread command lines */
-       if(argc < 2 || strlen(argv[1]) < THREAD_NAME_LEN - 1){
-
-               char padding[THREAD_NAME_LEN] = { 
-                       [ 0 ...  THREAD_NAME_LEN - 2] = ' ', '\0' 
-               };
-
-               new_argv = malloc((argc + 2) * sizeof(char*));
-               if(!new_argv) {
-                       perror("Allocating extended argv");
-                       exit(1);
-               }       
-               
-               new_argv[0] = argv[0];
-               new_argv[1] = padding;
-               
-               for(i = 2; i <= argc; i++)
-                       new_argv[i] = argv[i - 1];
-               new_argv[argc + 1] = NULL;
-               
-               execvp(new_argv[0], new_argv);
-               perror("execing with extended args");
-               exit(1);
-       }       
-#endif
-
-       linux_prog = argv[0];
-
-       set_stklim();
-
-       if((new_argv = malloc((argc + 1) * sizeof(char *))) == NULL){
-               perror("Mallocing argv");
-               exit(1);
-       }
-       for(i=0;i<argc;i++){
-               if((new_argv[i] = strdup(argv[i])) == NULL){
-                       perror("Mallocing an arg");
-                       exit(1);
-               }
-       }
-       new_argv[argc] = NULL;
-
-       set_handler(SIGINT, last_ditch_exit, SA_ONESHOT | SA_NODEFER, -1);
-       set_handler(SIGTERM, last_ditch_exit, SA_ONESHOT | SA_NODEFER, -1);
-       set_handler(SIGHUP, last_ditch_exit, SA_ONESHOT | SA_NODEFER, -1);
-
-       do_uml_initcalls();
-       ret = linux_main(argc, argv);
-       
-       /* Reboot */
-       if(ret){
-               printf("\n");
-               execvp(new_argv[0], new_argv);
-               perror("Failed to exec kernel");
-               ret = 1;
-       }
-       printf("\n");
-       return(uml_exitcode);
-}
-
-#define CAN_KMALLOC() \
-       (kmalloc_ok && CHOOSE_MODE((getpid() != tracing_pid), 1))
-
-extern void *__real_malloc(int);
-
-void *__wrap_malloc(int size)
-{
-       if(CAN_KMALLOC())
-               return(um_kmalloc(size));
-       else
-               return(__real_malloc(size));
-}
-
-void *__wrap_calloc(int n, int size)
-{
-       void *ptr = __wrap_malloc(n * size);
-
-       if(ptr == NULL) return(NULL);
-       memset(ptr, 0, n * size);
-       return(ptr);
-}
-
-extern void __real_free(void *);
-
-void __wrap_free(void *ptr)
-{
-       if(CAN_KMALLOC()) kfree(ptr);
-       else __real_free(ptr);
-}
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only.  This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
diff --git a/arch/um/sys-i386/extable.c b/arch/um/sys-i386/extable.c
deleted file mode 100644 (file)
index 946e7ad..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * linux/arch/i386/mm/extable.c
- */
-
-#include <linux/config.h>
-#include <linux/module.h>
-#include <linux/spinlock.h>
-#include <asm/uaccess.h>
-
-/* Simple binary search */
-const struct exception_table_entry *
-search_extable(const struct exception_table_entry *first,
-              const struct exception_table_entry *last,
-              unsigned long value)
-{
-        while (first <= last) {
-               const struct exception_table_entry *mid;
-               long diff;
-
-               mid = (last - first) / 2 + first;
-               diff = mid->insn - value;
-                if (diff == 0)
-                        return mid;
-                else if (diff < 0)
-                        first = mid+1;
-                else
-                        last = mid-1;
-        }
-        return NULL;
-}
diff --git a/arch/um/sys-x86_64/util/mk_thread_kern.c b/arch/um/sys-x86_64/util/mk_thread_kern.c
deleted file mode 100644 (file)
index a281673..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "linux/config.h"
-#include "linux/stddef.h"
-#include "linux/sched.h"
-
-extern void print_head(void);
-extern void print_constant_ptr(char *name, int value);
-extern void print_constant(char *name, char *type, int value);
-extern void print_tail(void);
-
-#define THREAD_OFFSET(field) offsetof(struct task_struct, thread.field)
-
-int main(int argc, char **argv)
-{
-  print_head();
-#ifdef CONFIG_MODE_TT
-  print_constant("TASK_EXTERN_PID", "int", THREAD_OFFSET(mode.tt.extern_pid));
-#endif
-  print_tail();
-  return(0);
-}
-
diff --git a/arch/um/sys-x86_64/util/mk_thread_user.c b/arch/um/sys-x86_64/util/mk_thread_user.c
deleted file mode 100644 (file)
index 7989725..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <stdio.h>
-
-void print_head(void)
-{
-  printf("/*\n");
-  printf(" * Generated by mk_thread\n");
-  printf(" */\n");
-  printf("\n");
-  printf("#ifndef __UM_THREAD_H\n");
-  printf("#define __UM_THREAD_H\n");
-  printf("\n");
-}
-
-void print_constant_ptr(char *name, int value)
-{
-  printf("#define %s(task) ((unsigned long *) "
-        "&(((char *) (task))[%d]))\n", name, value);
-}
-
-void print_constant(char *name, char *type, int value)
-{
-  printf("#define %s(task) *((%s *) &(((char *) (task))[%d]))\n", name, type,
-        value);
-}
-
-void print_tail(void)
-{
-  printf("\n");
-  printf("#endif\n");
-}
diff --git a/arch/um/uml.lds.S b/arch/um/uml.lds.S
deleted file mode 100644 (file)
index d182fb5..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#include <asm-generic/vmlinux.lds.h>
-       
-OUTPUT_FORMAT(ELF_FORMAT)
-OUTPUT_ARCH(ELF_ARCH)
-ENTRY(_start)
-jiffies = jiffies_64;
-
-SECTIONS
-{
-  . = START + SIZEOF_HEADERS;
-
-  . = ALIGN(4096);
-  __binary_start = .;
-#ifdef MODE_TT
-  .thread_private : {
-    __start_thread_private = .;
-    errno = .;
-    . += 4;
-    arch/um/kernel/tt/unmap_fin.o (.data)
-    __end_thread_private = .;
-  }
-  . = ALIGN(4096);
-  .remap : { arch/um/kernel/tt/unmap_fin.o (.text) }
-#endif
-
-  . = ALIGN(4096);             /* Init code and data */
-  _stext = .;
-  __init_begin = .;
-  .text.init : { *(.text.init) }
-  . = ALIGN(4096);
-  .text      :
-  {
-    *(.text)
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-    *(.gnu.linkonce.t*)
-  }
-
-  #include "asm/common.lds.S"
-
-  .data.init : { *(.data.init) }
-  .data    :
-  {
-    . = ALIGN(KERNEL_STACK_SIZE);              /* init_task */
-    *(.data.init_task)
-    *(.data)
-    *(.gnu.linkonce.d*)
-    CONSTRUCTORS
-  }
-  .data1   : { *(.data1) }
-  .ctors         :
-  {
-    *(.ctors)
-  }
-  .dtors         :
-  {
-    *(.dtors)
-  }
-
-  .got           : { *(.got.plt) *(.got) }
-  .dynamic       : { *(.dynamic) }
-  /* We want the small data sections together, so single-instruction offsets
-     can access them all, and initialized data all before uninitialized, so
-     we can shorten the on-disk segment size.  */
-  .sdata     : { *(.sdata) }
-  _edata  =  .;
-  PROVIDE (edata = .);
-  . = ALIGN(0x1000);
-  .sbss      : 
-  {
-   __bss_start = .;
-   PROVIDE(_bss_start = .);
-   *(.sbss) 
-   *(.scommon) 
-  }
-  .bss       :
-  {
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-  }
-  _end = . ;
-  PROVIDE (end = .);
-  /* Stabs debugging sections.  */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  .stab.excl 0 : { *(.stab.excl) }
-  .stab.exclstr 0 : { *(.stab.exclstr) }
-  .stab.index 0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
-  .comment 0 : { *(.comment) }
-}