Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Linux Kernel Patch v2.4, patch-2.4.10 (181/197)

5 views
Skip to first unread message

Thomas Kobienia

unread,
Sep 24, 2001, 8:00:44 PM9/24/01
to
Archive-name: v2.4/patch-2.4.10/part181

#!/bin/sh -x
# this is part 181 of a 197 - part archive
# do not concatenate these parts, unpack them in order with /bin/sh
# file patch-2.4.10 continued
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 181; then
echo "Please unpack part $Scheck next!"
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping patch-2.4.10'
else
echo 'x - continuing with patch-2.4.10'
sed 's/^X//' << 'SHAR_EOF' >> 'patch-2.4.10' &&
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/regdef.h linux/include/asm-mips64/regdef.h
--- v2.4.9/linux/include/asm-mips64/regdef.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/regdef.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/resource.h linux/include/asm-mips64/resource.h
--- v2.4.9/linux/include/asm-mips64/resource.h Tue Nov 28 21:42:04 2000
+++ linux/include/asm-mips64/resource.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: resource.h,v 1.3 2000/01/27 23:45:30 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/serial.h linux/include/asm-mips64/serial.h
--- v2.4.9/linux/include/asm-mips64/serial.h Tue Nov 28 21:42:04 2000
+++ linux/include/asm-mips64/serial.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: serial.h,v 1.2 2000/01/17 23:32:47 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sgi/io.h linux/include/asm-mips64/sgi/io.h
--- v2.4.9/linux/include/asm-mips64/sgi/io.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sgi/io.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sgi/sgi.h linux/include/asm-mips64/sgi/sgi.h
--- v2.4.9/linux/include/asm-mips64/sgi/sgi.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sgi/sgi.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: sgi.h,v 1.1 1999/08/20 21:13:37 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sgi/sgihpc.h linux/include/asm-mips64/sgi/sgihpc.h
--- v2.4.9/linux/include/asm-mips64/sgi/sgihpc.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sgi/sgihpc.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: sgihpc.h,v 1.2 1999/10/19 20:51:54 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
@@ -333,8 +332,6 @@
X
X /* We need software copies of these because they are write only. */
X extern unsigned int sgi_hpc_write1, sgi_hpc_write2;
-
-#define SGI_KEYBOARD_IRQ 20
X
X struct hpc_keyb {
X #ifdef __MIPSEB__
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sgi/sgimc.h linux/include/asm-mips64/sgi/sgimc.h
--- v2.4.9/linux/include/asm-mips64/sgi/sgimc.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sgi/sgimc.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: sgimc.h,v 1.2 1999/10/19 20:51:54 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sgi/sgint23.h linux/include/asm-mips64/sgi/sgint23.h
--- v2.4.9/linux/include/asm-mips64/sgi/sgint23.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-mips64/sgi/sgint23.h Sun Sep 9 10:43:02 2001
@@ -199,7 +199,6 @@
X extern struct sgi_ioc_timers *ioc_timers;
X extern volatile unsigned char *ioc_tclear;
X
-extern void sgint_init(void);
X extern void indy_timer_init(void);
X
X #endif /* _ASM_SGI_SGINT23_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sgialib.h linux/include/asm-mips64/sgialib.h
--- v2.4.9/linux/include/asm-mips64/sgialib.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-mips64/sgialib.h Sun Sep 9 10:43:02 2001
@@ -13,7 +13,6 @@
X
X #include <asm/sgiarcs.h>
X
-extern PSYSTEM_PARAMETER_BLOCK sgi_pblock;
X extern struct linux_romvec *romvec;
X extern int prom_argc;
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sgiarcs.h linux/include/asm-mips64/sgiarcs.h
--- v2.4.9/linux/include/asm-mips64/sgiarcs.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-mips64/sgiarcs.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: sgiarcs.h,v 1.4 1999/12/04 03:59:12 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sgidefs.h linux/include/asm-mips64/sgidefs.h
--- v2.4.9/linux/include/asm-mips64/sgidefs.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sgidefs.h Sun Sep 9 10:43:02 2001
@@ -1,25 +1,38 @@
-/* $Id: sgidefs.h,v 1.1 1999/08/18 23:37:52 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
X *
- * Copyright (C) 1996, 1999 by Ralf Baechle
+ * Copyright (C) 1996, 1999, 2001 Ralf Baechle
X * Copyright (C) 1999 Silicon Graphics, Inc.
- *
- * Definitions commonly used in SGI style code.
+ * Copyright (C) 2001 MIPS Technologies, Inc.
X */
-#ifndef _ASM_SGIDEFS_H
-#define _ASM_SGIDEFS_H
+#ifndef __ASM_SGIDEFS_H
+#define __ASM_SGIDEFS_H
X
X /*
- * Definitions for the ISA level
+ * Using a Linux compiler for building Linux seems logic but not to
+ * everybody.
+ */
+#ifndef __linux__
+#error Use a Linux compiler or give up.
+#endif
+
+/*
+ * Definitions for the ISA levels
+ *
+ * With the introduction of MIPS32 / MIPS64 instruction sets definitions
+ * MIPS ISAs are no longer subsets of each other. Therefore comparisons
+ * on these symbols except with == may result in unexpected results and
+ * are forbidden!
X */
-#define _MIPS_ISA_MIPS1 1
-#define _MIPS_ISA_MIPS2 2
-#define _MIPS_ISA_MIPS3 3
-#define _MIPS_ISA_MIPS4 4
-#define _MIPS_ISA_MIPS5 5
+#define _MIPS_ISA_MIPS1 1
+#define _MIPS_ISA_MIPS2 2
+#define _MIPS_ISA_MIPS3 3
+#define _MIPS_ISA_MIPS4 4
+#define _MIPS_ISA_MIPS5 5
+#define _MIPS_ISA_MIPS32 6
+#define _MIPS_ISA_MIPS64 7
X
X /*
X * Subprogram calling convention
@@ -28,4 +41,4 @@
X #define _MIPS_SIM_NABI32 2
X #define _MIPS_SIM_ABI64 3
X
-#endif /* _ASM_SGIDEFS_H */
+#endif /* __ASM_SGIDEFS_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/shmiq.h linux/include/asm-mips64/shmiq.h
--- v2.4.9/linux/include/asm-mips64/shmiq.h Fri Apr 13 20:26:07 2001
+++ linux/include/asm-mips64/shmiq.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/shmparam.h linux/include/asm-mips64/shmparam.h
--- v2.4.9/linux/include/asm-mips64/shmparam.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/shmparam.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: shmparam.h,v 1.1 1999/08/19 22:56:35 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sigcontext.h linux/include/asm-mips64/sigcontext.h
--- v2.4.9/linux/include/asm-mips64/sigcontext.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sigcontext.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: sigcontext.h,v 1.2 1999/09/27 16:01:40 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/signal.h linux/include/asm-mips64/signal.h
--- v2.4.9/linux/include/asm-mips64/signal.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/signal.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: signal.h,v 1.2 1999/09/27 16:01:40 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/arch.h linux/include/asm-mips64/sn/arch.h
--- v2.4.9/linux/include/asm-mips64/sn/arch.h Sun Jul 9 22:18:15 2000
+++ linux/include/asm-mips64/sn/arch.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/gda.h linux/include/asm-mips64/sn/gda.h
--- v2.4.9/linux/include/asm-mips64/sn/gda.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/gda.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/klconfig.h linux/include/asm-mips64/sn/klconfig.h
--- v2.4.9/linux/include/asm-mips64/sn/klconfig.h Thu Jul 13 09:39:49 2000
+++ linux/include/asm-mips64/sn/klconfig.h Sun Sep 9 10:43:02 2001
@@ -936,6 +936,7 @@
X extern klinfo_t *find_component(lboard_t *brd, klinfo_t *kli, unsigned char type);
X extern klinfo_t *find_first_component(lboard_t *brd, unsigned char type);
X extern klcpu_t *nasid_slice_to_cpuinfo(nasid_t, int);
+extern lboard_t *find_lboard_class(lboard_t *start, unsigned char brd_class);
X
X
X #if defined(CONFIG_SGI_IO)
@@ -943,7 +944,6 @@
X extern vertex_hdl_t nodevertex_xbow_peer_get(vertex_hdl_t node_vtx);
X extern lboard_t *find_gfxpipe(int pipenum);
X extern void setup_gfxpipe_link(vertex_hdl_t vhdl,int pipenum);
-extern lboard_t *find_lboard_class(lboard_t *start, unsigned char brd_class);
X extern lboard_t *find_lboard_module_class(lboard_t *start, moduleid_t mod,
X unsigned char brd_class);
X extern lboard_t *find_nic_lboard(lboard_t *, nic_t);
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/launch.h linux/include/asm-mips64/sn/launch.h
--- v2.4.9/linux/include/asm-mips64/sn/launch.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/launch.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: launch.h,v 1.3 2000/04/21 04:09:13 pfg Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/addrs.h linux/include/asm-mips64/sn/sn0/addrs.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/addrs.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/sn0/addrs.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/arch.h linux/include/asm-mips64/sn/sn0/arch.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/arch.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/sn0/arch.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/hub.h linux/include/asm-mips64/sn/sn0/hub.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/hub.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/sn0/hub.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/hubio.h linux/include/asm-mips64/sn/sn0/hubio.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/hubio.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/sn0/hubio.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/hubmd.h linux/include/asm-mips64/sn/sn0/hubmd.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/hubmd.h Mon Feb 28 07:18:20 2000
+++ linux/include/asm-mips64/sn/sn0/hubmd.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: hubmd.h,v 1.1 2000/01/13 00:17:02 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/hubni.h linux/include/asm-mips64/sn/sn0/hubni.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/hubni.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/sn0/hubni.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/hubpi.h linux/include/asm-mips64/sn/sn0/hubpi.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/hubpi.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/sn0/hubpi.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/ip27.h linux/include/asm-mips64/sn/sn0/ip27.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/ip27.h Tue Nov 28 21:42:04 2000
+++ linux/include/asm-mips64/sn/sn0/ip27.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/sn0/sn0_fru.h linux/include/asm-mips64/sn/sn0/sn0_fru.h
--- v2.4.9/linux/include/asm-mips64/sn/sn0/sn0_fru.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sn/sn0/sn0_fru.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sn/types.h linux/include/asm-mips64/sn/types.h
--- v2.4.9/linux/include/asm-mips64/sn/types.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-mips64/sn/types.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sockios.h linux/include/asm-mips64/sockios.h
--- v2.4.9/linux/include/asm-mips64/sockios.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sockios.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/softirq.h linux/include/asm-mips64/softirq.h
--- v2.4.9/linux/include/asm-mips64/softirq.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/softirq.h Sun Sep 9 10:43:02 2001
@@ -1,11 +1,11 @@
-/* $Id: softirq.h,v 1.3 2000/02/23 00:41:38 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
X *
- * Copyright (C) 1997, 1998, 1999, 2000 by Ralf Baechle
+ * Copyright (C) 1997, 1998, 1999, 2000, 2001 by Ralf Baechle
X * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2001 MIPS Technologies, Inc.
X */
X #ifndef _ASM_SOFTIRQ_H
X #define _ASM_SOFTIRQ_H
@@ -13,12 +13,45 @@
X #include <asm/atomic.h>
X #include <asm/hardirq.h>
X
-#define cpu_bh_disable(cpu) do { local_bh_count(cpu)++; barrier(); } while (0)
-#define cpu_bh_enable(cpu) do { barrier(); local_bh_count(cpu)--; } while (0)
+extern inline void cpu_bh_disable(int cpu)
+{
+ local_bh_count(cpu)++;
+ barrier();
+}
+
+extern inline void __cpu_bh_enable(int cpu)
+{
+ barrier();
+ local_bh_count(cpu)--;
+}
X
X #define local_bh_disable() cpu_bh_disable(smp_processor_id())
-#define local_bh_enable() cpu_bh_enable(smp_processor_id())
+#define __local_bh_enable() __cpu_bh_enable(smp_processor_id())
+#define local_bh_enable() \
+do { \
+ int cpu; \
+ \
+ barrier(); \
+ cpu = smp_processor_id(); \
+ if (!--local_bh_count(cpu) && softirq_pending(cpu)) \
+ do_softirq(); \
+} while (0)
X
X #define in_softirq() (local_bh_count(smp_processor_id()) != 0)
+
+extern inline void __cpu_raise_softirq(int cpu, int nr)
+{
+ unsigned int *m = (unsigned int *) &softirq_pending(cpu);
+ unsigned int temp;
+
+ __asm__ __volatile__(
+ "1:\tll\t%0, %1\t\t\t# __cpu_raise_softirq\n\t"
+ "or\t%0, %2\n\t"
+ "sc\t%0, %1\n\t"
+ "beqz\t%0, 1b"
+ : "=&r" (temp), "=m" (*m)
+ : "ir" (1UL << nr), "m" (*m)
+ : "memory");
+}
X
X #endif /* _ASM_SOFTIRQ_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/statfs.h linux/include/asm-mips64/statfs.h
--- v2.4.9/linux/include/asm-mips64/statfs.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/statfs.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/sysmips.h linux/include/asm-mips64/sysmips.h
--- v2.4.9/linux/include/asm-mips64/sysmips.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/sysmips.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: sysmips.h,v 1.1 1999/10/08 21:07:57 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/termbits.h linux/include/asm-mips64/termbits.h
--- v2.4.9/linux/include/asm-mips64/termbits.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/termbits.h Sun Sep 9 10:43:02 2001
@@ -1,11 +1,11 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
X *
- * Copyright (C) 1995, 1996, 1999 by Ralf Baechle
+ * Copyright (C) 1995, 1996, 1999, 2001 Ralf Baechle
X * Copyright (C) 1999 Silicon Graphics, Inc.
+ * Copyright (C) 2001 MIPS Technologies, Inc.
X */
X #ifndef _ASM_TERMBITS_H
X #define _ASM_TERMBITS_H
@@ -72,21 +72,14 @@
X #define INLCR 0000100 /* Map NL to CR on input. */
X #define IGNCR 0000200 /* Ignore CR. */
X #define ICRNL 0000400 /* Map CR to NL on input. */
-#if defined (__USE_BSD) || defined (__KERNEL__)
X #define IUCLC 0001000 /* Map upper case to lower case on input. */
-#endif
X #define IXON 0002000 /* Enable start/stop output control. */
-#if defined (__USE_BSD) || defined (__KERNEL__)
X #define IXANY 0004000 /* Any character will restart after stop. */
-#endif
X #define IXOFF 0010000 /* Enable start/stop input control. */
-#if defined (__USE_BSD) || defined (__KERNEL__)
X #define IMAXBEL 0020000 /* Ring bell when input queue is full. */
-#endif
X
X /* c_oflag bits */
X #define OPOST 0000001 /* Perform output processing. */
-#if defined (__USE_BSD) || defined (__KERNEL__)
X #define OLCUC 0000002 /* Map lower case to upper case on output. */
X #define ONLCR 0000004 /* Map NL to CR-NL on output. */
X #define OCRNL 0000010
@@ -121,7 +114,6 @@
X #define PAGEOUT ???
X #define WRAP ???
X */
-#endif
X
X /* c_cflag bit meaning */
X #define CBAUD 0010017
@@ -154,7 +146,6 @@
X #define PARODD 0001000 /* Odd parity instead of even. */
X #define HUPCL 0002000 /* Hang up on last close. */
X #define CLOCAL 0004000 /* Ignore modem status lines. */
-#if defined (__USE_BSD) || defined (__KERNEL__)
X #define CBAUDEX 0010000
X #define B57600 0010001
X #define B115200 0010002
@@ -174,7 +165,6 @@
X #define CIBAUD 002003600000 /* input baud rate (not used) */
X #define CMSPAR 010000000000 /* mark or space (stick) parity */
X #define CRTSCTS 020000000000 /* flow control */
-#endif
X
X /* c_lflag bits */
X #define ISIG 0000001 /* Enable signals. */
@@ -186,15 +176,11 @@
X #define ECHONL 0000100 /* Echo NL even if ECHO is off. */
X #define NOFLSH 0000200 /* Disable flush after interrupt. */
X #define IEXTEN 0000400 /* Enable DISCARD and LNEXT. */
-#if defined (__USE_BSD) || defined (__KERNEL__)
X #define ECHOCTL 0001000 /* Echo control characters as ^X. */
X #define ECHOPRT 0002000 /* Hardcopy visual erase. */
X #define ECHOKE 0004000 /* Visual erase for KILL. */
-#endif
X #define FLUSHO 0020000
-#if defined (__USE_BSD) || defined (__KERNEL__)
X #define PENDIN 0040000 /* Retype pending input (state). */
-#endif
X #define TOSTOP 0100000 /* Send SIGTTOU for background output. */
X #define ITOSTOP TOSTOP
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/termios.h linux/include/asm-mips64/termios.h
--- v2.4.9/linux/include/asm-mips64/termios.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-mips64/termios.h Sun Sep 9 10:43:02 2001
@@ -101,7 +101,7 @@
X #define N_SMSBLOCK 12 /* SMS block mode - for talking to GSM data cards about SMS messages */
X #define N_HDLC 13 /* synchronous HDLC */
X #define N_SYNC_PPP 14 /* synchronous PPP */
-#define N_HCI 15 /* Bluetooth HCI UART */
+#define N_HCI 15 /* Bluetooth HCI UART */
X
X #ifdef __KERNEL__
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/timex.h linux/include/asm-mips64/timex.h
--- v2.4.9/linux/include/asm-mips64/timex.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/timex.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: timex.h,v 1.1 1999/08/18 23:37:53 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/tlb.h linux/include/asm-mips64/tlb.h
--- v2.4.9/linux/include/asm-mips64/tlb.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-mips64/tlb.h Fri Sep 14 08:41:04 2001
@@ -0,0 +1 @@
+#include <asm-generic/tlb.h>
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/types.h linux/include/asm-mips64/types.h
--- v2.4.9/linux/include/asm-mips64/types.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/types.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: types.h,v 1.2 1999/12/04 03:59:12 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/uaccess.h linux/include/asm-mips64/uaccess.h
--- v2.4.9/linux/include/asm-mips64/uaccess.h Tue Aug 29 14:09:16 2000
+++ linux/include/asm-mips64/uaccess.h Sun Sep 9 10:43:02 2001
@@ -45,12 +45,16 @@
X * - AND "addr+size" doesn't have any high-bits set
X * - OR we are in kernel mode.
X */
-#define __access_ok(addr,size,mask) \
- (((__signed__ long)((mask)&(addr | size | (addr+size)))) >= 0)
+#define __ua_size(size) \
+ (__builtin_constant_p(size) && (signed long) (size) > 0 ? 0 : (size))
+
+#define __access_ok(addr,size,mask) \
+ (((signed long)((mask)&(addr | (addr + size) | __ua_size(size)))) >= 0)
+
X #define __access_mask ((long)(get_fs().seg))
X
X #define access_ok(type,addr,size) \
-__access_ok(((unsigned long)(addr)),(size),__access_mask)
+ __access_ok(((unsigned long)(addr)),(size),__access_mask)
X
X extern inline int verify_area(int type, const void * addr, unsigned long size)
X {
@@ -87,102 +91,114 @@
X struct __large_struct { unsigned long buf[100]; };
X #define __m(x) (*(struct __large_struct *)(x))
X
-#define __get_user_nocheck(x,ptr,size) ({ \
-long __gu_err; \
-__typeof(*(ptr)) __gu_val; \
-long __gu_addr; \
-__asm__("":"=r" (__gu_val)); \
-__gu_addr = (long) (ptr); \
-__asm__("":"=r" (__gu_err)); \
-switch (size) { \
-case 1: __get_user_asm("lb"); break; \
-case 2: __get_user_asm("lh"); break; \
-case 4: __get_user_asm("lw"); break; \
-case 8: __get_user_asm("ld"); break; \
-default: __get_user_unknown(); break; \
-} x = (__typeof__(*(ptr))) __gu_val; __gu_err; })
-
-#define __get_user_check(x,ptr,size) ({ \
-long __gu_err; \
-__typeof__(*(ptr)) __gu_val; \
-long __gu_addr; \
-__asm__("":"=r" (__gu_val)); \
-__gu_addr = (long) (ptr); \
-__asm__("":"=r" (__gu_err)); \
-if (__access_ok(__gu_addr,size,__access_mask)) { \
-switch (size) { \
-case 1: __get_user_asm("lb"); break; \
-case 2: __get_user_asm("lh"); break; \
-case 4: __get_user_asm("lw"); break; \
-case 8: __get_user_asm("ld"); break; \
-default: __get_user_unknown(); break; \
-} } x = (__typeof__(*(ptr))) __gu_val; __gu_err; })
-
-#define __get_user_asm(insn) \
-({ \
-__asm__ __volatile__( \
- "1:\t" insn "\t%1,%2\n\t" \
- "move\t%0,$0\n" \
- "2:\n\t" \
- ".section\t.fixup,\"ax\"\n" \
- "3:\tli\t%0,%3\n\t" \
- "move\t%1,$0\n\t" \
- "j\t2b\n\t" \
- ".previous\n\t" \
- ".section\t__ex_table,\"a\"\n\t" \
- ".dword\t1b,3b\n\t" \
- ".previous" \
- :"=r" (__gu_err), "=r" (__gu_val) \
- :"o" (__m(__gu_addr)), "i" (-EFAULT)); })
+#define __get_user_nocheck(x,ptr,size) \
+({ \
+ long __gu_err; \
+ __typeof(*(ptr)) __gu_val; \
+ long __gu_addr; \
+ __asm__("":"=r" (__gu_val)); \
+ __gu_addr = (long) (ptr); \
+ __asm__("":"=r" (__gu_err)); \
+ switch (size) { \
+ case 1: __get_user_asm("lb"); break; \
+ case 2: __get_user_asm("lh"); break; \
+ case 4: __get_user_asm("lw"); break; \
+ case 8: __get_user_asm("ld"); break; \
+ default: __get_user_unknown(); break; \
+ } x = (__typeof__(*(ptr))) __gu_val; __gu_err; \
+})
+
+#define __get_user_check(x,ptr,size) \
+({ \
+ long __gu_err; \
+ __typeof__(*(ptr)) __gu_val; \
+ long __gu_addr; \
+ __asm__("":"=r" (__gu_val)); \
+ __gu_addr = (long) (ptr); \
+ __asm__("":"=r" (__gu_err)); \
+ if (__access_ok(__gu_addr,size,__access_mask)) { \
+ switch (size) { \
+ case 1: __get_user_asm("lb"); break; \
+ case 2: __get_user_asm("lh"); break; \
+ case 4: __get_user_asm("lw"); break; \
+ case 8: __get_user_asm("ld"); break; \
+ default: __get_user_unknown(); break; \
+ } \
+ } x = (__typeof__(*(ptr))) __gu_val; __gu_err; \
+})
+
+#define __get_user_asm(insn) \
+({ \
+ __asm__ __volatile__( \
+ "1:\t" insn "\t%1,%2\n\t" \
+ "move\t%0,$0\n" \
+ "2:\n\t" \
+ ".section\t.fixup,\"ax\"\n" \
+ "3:\tli\t%0,%3\n\t" \
+ "move\t%1,$0\n\t" \
+ "j\t2b\n\t" \
+ ".previous\n\t" \
+ ".section\t__ex_table,\"a\"\n\t" \
+ ".dword\t1b,3b\n\t" \
+ ".previous" \
+ :"=r" (__gu_err), "=r" (__gu_val) \
+ :"o" (__m(__gu_addr)), "i" (-EFAULT)); \
+})
X
X extern void __get_user_unknown(void);
X
-#define __put_user_nocheck(x,ptr,size) ({ \
-long __pu_err; \
-__typeof__(*(ptr)) __pu_val; \
-long __pu_addr; \
-__pu_val = (x); \
-__pu_addr = (long) (ptr); \
-__asm__("":"=r" (__pu_err)); \
-switch (size) { \
-case 1: __put_user_asm("sb"); break; \
-case 2: __put_user_asm("sh"); break; \
-case 4: __put_user_asm("sw"); break; \
-case 8: __put_user_asm("sd"); break; \
-default: __put_user_unknown(); break; \
-} __pu_err; })
-
-#define __put_user_check(x,ptr,size) ({ \
-long __pu_err; \
-__typeof__(*(ptr)) __pu_val; \
-long __pu_addr; \
-__pu_val = (x); \
-__pu_addr = (long) (ptr); \
-__asm__("":"=r" (__pu_err)); \
-if (__access_ok(__pu_addr,size,__access_mask)) { \
-switch (size) { \
-case 1: __put_user_asm("sb"); break; \
-case 2: __put_user_asm("sh"); break; \
-case 4: __put_user_asm("sw"); break; \
-case 8: __put_user_asm("sd"); break; \
-default: __put_user_unknown(); break; \
-} } __pu_err; })
-
-#define __put_user_asm(insn) \
-({ \
-__asm__ __volatile__( \
- "1:\t" insn "\t%1,%2\n\t" \
- "move\t%0,$0\n" \
- "2:\n\t" \
- ".section\t.fixup,\"ax\"\n" \
- "3:\tli\t%0,%3\n\t" \
- "j\t2b\n\t" \
- ".previous\n\t" \
- ".section\t__ex_table,\"a\"\n\t" \
- ".dword\t1b,3b\n\t" \
- ".previous" \
- :"=r" (__pu_err) \
- :"r" (__pu_val), "o" (__m(__pu_addr)), "i" (-EFAULT)); })
+#define __put_user_nocheck(x,ptr,size) \
+({ \
+ long __pu_err; \
+ __typeof__(*(ptr)) __pu_val; \
+ long __pu_addr; \
+ __pu_val = (x); \
+ __pu_addr = (long) (ptr); \
+ __asm__("":"=r" (__pu_err)); \
+ switch (size) { \
+ case 1: __put_user_asm("sb"); break; \
+ case 2: __put_user_asm("sh"); break; \
+ case 4: __put_user_asm("sw"); break; \
+ case 8: __put_user_asm("sd"); break; \
+ default: __put_user_unknown(); break; \
+ } __pu_err; \
+})
+
+#define __put_user_check(x,ptr,size) \
+({ \
+ long __pu_err; \
+ __typeof__(*(ptr)) __pu_val; \
+ long __pu_addr; \
+ __pu_val = (x); \
+ __pu_addr = (long) (ptr); \
+ __asm__("":"=r" (__pu_err)); \
+ if (__access_ok(__pu_addr,size,__access_mask)) { \
+ switch (size) { \
+ case 1: __put_user_asm("sb"); break; \
+ case 2: __put_user_asm("sh"); break; \
+ case 4: __put_user_asm("sw"); break; \
+ case 8: __put_user_asm("sd"); break; \
+ default: __put_user_unknown(); break; \
+ } \
+ } __pu_err; \
+})
+
+#define __put_user_asm(insn) \
+({ \
+ __asm__ __volatile__( \
+ "1:\t" insn "\t%z1, %2\t\t\t# __put_user_asm\n\t" \
+ "move\t%0,$0\n" \
+ "2:\n\t" \
+ ".section\t.fixup,\"ax\"\n" \
+ "3:\tli\t%0,%3\n\t" \
+ "j\t2b\n\t" \
+ ".previous\n\t" \
+ ".section\t__ex_table,\"a\"\n\t" \
+ ".dword\t1b,3b\n\t" \
+ ".previous" \
+ :"=r" (__pu_err) \
+ :"Jr" (__pu_val), "o" (__m(__pu_addr)), "i" (-EFAULT)); \
+})
X
X extern void __put_user_unknown(void);
X
@@ -191,112 +207,116 @@
X * jump instructions
X */
X #ifdef MODULE
-#define __MODULE_JAL(destination) \
- ".set\tnoat\n\t" \
- "la\t$1, " #destination "\n\t" \
- "jalr\t$1\n\t" \
+#define __MODULE_JAL(destination) \
+ ".set\tnoat\n\t" \
+ "dla\t$1, " #destination "\n\t" \
+ "jalr\t$1\n\t" \
X ".set\tat\n\t"
X #else
-#define __MODULE_JAL(destination) \
+#define __MODULE_JAL(destination) \
X "jal\t" #destination "\n\t"
X #endif
X
X extern size_t __copy_user(void *__to, const void *__from, size_t __n);
X
-#define __copy_to_user(to,from,n) ({ \
- void *__cu_to; \
- const void *__cu_from; \
- long __cu_len; \
- \
- __cu_to = (to); \
- __cu_from = (from); \
- __cu_len = (n); \
- __asm__ __volatile__( \
- "move\t$4, %1\n\t" \
- "move\t$5, %2\n\t" \
- "move\t$6, %3\n\t" \
- __MODULE_JAL(__copy_user) \
- "move\t%0, $6" \
- : "=r" (__cu_len) \
+#define __copy_to_user(to,from,n) \
+({ \
+ void *__cu_to; \
+ const void *__cu_from; \
+ long __cu_len; \
+ \
+ __cu_to = (to); \
+ __cu_from = (from); \
+ __cu_len = (n); \
+ __asm__ __volatile__( \
+ "move\t$4, %1\n\t" \
+ "move\t$5, %2\n\t" \
+ "move\t$6, %3\n\t" \
+ __MODULE_JAL(__copy_user) \
+ "move\t%0, $6" \
+ : "=r" (__cu_len) \
+ : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
+ : "$4", "$5", "$6", "$8", "$9", "$10", "$11", "$12", \
+ "$15", "$24", "$31","memory"); \
+ __cu_len; \
+})
+
+#define __copy_from_user(to,from,n) \
+({ \
+ void *__cu_to; \
+ const void *__cu_from; \
+ long __cu_len; \
+ \
+ __cu_to = (to); \
+ __cu_from = (from); \
+ __cu_len = (n); \
+ __asm__ __volatile__( \
+ "move\t$4, %1\n\t" \
+ "move\t$5, %2\n\t" \
+ "move\t$6, %3\n\t" \
+ ".set\tnoreorder\n\t" \
+ __MODULE_JAL(__copy_user) \
+ ".set\tnoat\n\t" \
+ "daddu\t$1, %2, %3\n\t" \
+ ".set\tat\n\t" \
+ ".set\treorder\n\t" \
+ "move\t%0, $6" \
+ : "=r" (__cu_len) \
+ : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
+ : "$4", "$5", "$6", "$8", "$9", "$10", "$11", "$12", \
+ "$15", "$24", "$31","memory"); \
+ __cu_len; \
+})
+
+#define copy_to_user(to,from,n) \
+({ \
+ void *__cu_to; \
+ const void *__cu_from; \
+ long __cu_len; \
+ \
+ __cu_to = (to); \
+ __cu_from = (from); \
+ __cu_len = (n); \
+ if (access_ok(VERIFY_WRITE, __cu_to, __cu_len)) \
+ __asm__ __volatile__( \
+ "move\t$4, %1\n\t" \
+ "move\t$5, %2\n\t" \
+ "move\t$6, %3\n\t" \
+ __MODULE_JAL(__copy_user) \
+ "move\t%0, $6" \
+ : "=r" (__cu_len) \
X : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
- : "$4", "$5", "$6", "$8", "$9", "$10", "$11", "$12", "$15", \
- "$24", "$31","memory"); \
- __cu_len; \
-})
-
-#define __copy_from_user(to,from,n) ({ \
- void *__cu_to; \
- const void *__cu_from; \
- long __cu_len; \
- \
- __cu_to = (to); \
- __cu_from = (from); \
- __cu_len = (n); \
- __asm__ __volatile__( \
- "move\t$4, %1\n\t" \
- "move\t$5, %2\n\t" \
- "move\t$6, %3\n\t" \
- ".set\tnoreorder\n\t" \
- __MODULE_JAL(__copy_user) \
- ".set\tnoat\n\t" \
- "daddu\t$1, %2, %3\n\t" \
- ".set\tat\n\t" \
- ".set\treorder\n\t" \
- "move\t%0, $6" \
- : "=r" (__cu_len) \
+ : "$4", "$5", "$6", "$8", "$9", "$10", "$11", \
+ "$12", "$15", "$24", "$31","memory"); \
+ __cu_len; \
+})
+
+#define copy_from_user(to,from,n) \
+({ \
+ void *__cu_to; \
+ const void *__cu_from; \
+ long __cu_len; \
+ \
+ __cu_to = (to); \
+ __cu_from = (from); \
+ __cu_len = (n); \
+ if (access_ok(VERIFY_READ, __cu_from, __cu_len)) \
+ __asm__ __volatile__( \
+ "move\t$4, %1\n\t" \
+ "move\t$5, %2\n\t" \
+ "move\t$6, %3\n\t" \
+ ".set\tnoreorder\n\t" \
+ __MODULE_JAL(__copy_user) \
+ ".set\tnoat\n\t" \
+ "daddu\t$1, %2, %3\n\t" \
+ ".set\tat\n\t" \
+ ".set\treorder\n\t" \
+ "move\t%0, $6" \
+ : "=r" (__cu_len) \
X : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
- : "$4", "$5", "$6", "$8", "$9", "$10", "$11", "$12", "$15", \
- "$24", "$31","memory"); \
- __cu_len; \
-})
-
-#define copy_to_user(to,from,n) ({ \
- void *__cu_to; \
- const void *__cu_from; \
- long __cu_len; \
- \
- __cu_to = (to); \
- __cu_from = (from); \
- __cu_len = (n); \
- if (access_ok(VERIFY_WRITE, __cu_to, __cu_len)) \
- __asm__ __volatile__( \
- "move\t$4, %1\n\t" \
- "move\t$5, %2\n\t" \
- "move\t$6, %3\n\t" \
- __MODULE_JAL(__copy_user) \
- "move\t%0, $6" \
- : "=r" (__cu_len) \
- : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
- : "$4", "$5", "$6", "$8", "$9", "$10", "$11", "$12", \
- "$15", "$24", "$31","memory"); \
- __cu_len; \
-})
-
-#define copy_from_user(to,from,n) ({ \
- void *__cu_to; \
- const void *__cu_from; \
- long __cu_len; \
- \
- __cu_to = (to); \
- __cu_from = (from); \
- __cu_len = (n); \
- if (access_ok(VERIFY_READ, __cu_from, __cu_len)) \
- __asm__ __volatile__( \
- "move\t$4, %1\n\t" \
- "move\t$5, %2\n\t" \
- "move\t$6, %3\n\t" \
- ".set\tnoreorder\n\t" \
- __MODULE_JAL(__copy_user) \
- ".set\tnoat\n\t" \
- "daddu\t$1, %2, %3\n\t" \
- ".set\tat\n\t" \
- ".set\treorder\n\t" \
- "move\t%0, $6" \
- : "=r" (__cu_len) \
- : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \
- : "$4", "$5", "$6", "$8", "$9", "$10", "$11", "$12", \
- "$15", "$24", "$31","memory"); \
- __cu_len; \
+ : "$4", "$5", "$6", "$8", "$9", "$10", "$11", \
+ "$12", "$15", "$24", "$31","memory"); \
+ __cu_len; \
X })
X
X extern inline __kernel_size_t
@@ -317,12 +337,15 @@
X return res;
X }
X
-#define clear_user(addr,n) ({ \
-void * __cl_addr = (addr); \
-unsigned long __cl_size = (n); \
-if (__cl_size && __access_ok(VERIFY_WRITE, ((unsigned long)(__cl_addr)), __cl_size)) \
-__cl_size = __clear_user(__cl_addr, __cl_size); \
-__cl_size; })
+#define clear_user(addr,n) \
+({ \
+ void * __cl_addr = (addr); \
+ unsigned long __cl_size = (n); \
+ if (__cl_size && __access_ok(VERIFY_WRITE, \
+ ((unsigned long)(__cl_addr)), __cl_size)) \
+ __cl_size = __clear_user(__cl_addr, __cl_size); \
+ __cl_size; \
+})
X
X /*
X * Returns: -EFAULT if exception before terminator, N if the entire
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/ucontext.h linux/include/asm-mips64/ucontext.h
--- v2.4.9/linux/include/asm-mips64/ucontext.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/ucontext.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id: ucontext.h,v 1.1 1999/09/27 16:01:40 ralf Exp $
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/user.h linux/include/asm-mips64/user.h
--- v2.4.9/linux/include/asm-mips64/user.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/user.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/usioctl.h linux/include/asm-mips64/usioctl.h
--- v2.4.9/linux/include/asm-mips64/usioctl.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/usioctl.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/xtalk/xtalk.h linux/include/asm-mips64/xtalk/xtalk.h
--- v2.4.9/linux/include/asm-mips64/xtalk/xtalk.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/xtalk/xtalk.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-mips64/xtalk/xwidget.h linux/include/asm-mips64/xtalk/xwidget.h
--- v2.4.9/linux/include/asm-mips64/xtalk/xwidget.h Sat May 13 08:31:25 2000
+++ linux/include/asm-mips64/xtalk/xwidget.h Sun Sep 9 10:43:02 2001
@@ -1,5 +1,4 @@
-/* $Id$
- *
+/*
X * This file is subject to the terms and conditions of the GNU General Public
X * License. See the file "COPYING" in the main directory of this archive
X * for more details.
diff -u --recursive --new-file v2.4.9/linux/include/asm-parisc/processor.h linux/include/asm-parisc/processor.h
--- v2.4.9/linux/include/asm-parisc/processor.h Sat Dec 30 09:35:41 2000
+++ linux/include/asm-parisc/processor.h Mon Sep 17 15:30:14 2001
@@ -107,9 +107,6 @@
X /* Thread struct flags. */
X #define PARISC_KERNEL_DEATH (1UL << 31) /* see die_if_kernel()... */
X
-#define INIT_MMAP { &init_mm, 0, 0, NULL, PAGE_SHARED, \
- VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }
-
X #define INIT_THREAD { { \
X { 0, 0, 0, 0, 0, 0, 0, 0, \
X 0, 0, 0, 0, 0, 0, 0, 0, \
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/atomic.h linux/include/asm-ppc/atomic.h
--- v2.4.9/linux/include/asm-ppc/atomic.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-ppc/atomic.h Tue Aug 28 06:58:33 2001
@@ -1,5 +1,5 @@
X /*
- * BK Id: SCCS/s.atomic.h 1.8 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.atomic.h 1.13 08/21/01 16:07:48 trini
X */
X /*
X * PowerPC atomic operations
@@ -7,6 +7,7 @@
X
X #ifndef _ASM_PPC_ATOMIC_H_
X #define _ASM_PPC_ATOMIC_H_
+#ifdef __KERNEL__
X
X typedef struct { volatile int counter; } atomic_t;
X
@@ -18,75 +19,137 @@
X extern void atomic_clear_mask(unsigned long mask, unsigned long *addr);
X extern void atomic_set_mask(unsigned long mask, unsigned long *addr);
X
-static __inline__ int atomic_add_return(int a, atomic_t *v)
+#ifdef CONFIG_SMP
+#define SMP_ISYNC "\n\tisync"
+#else
+#define SMP_ISYNC
+#endif
+
+static __inline__ void atomic_add(int a, atomic_t *v)
X {
X int t;
X
- __asm__ __volatile__("\n\
-1: lwarx %0,0,%3\n\
+ __asm__ __volatile__(
+"1: lwarx %0,0,%3 # atomic_add\n\
X add %0,%2,%0\n\
X stwcx. %0,0,%3\n\
X bne- 1b"
X : "=&r" (t), "=m" (v->counter)
- : "r" (a), "r" (v), "m" (v->counter)
+ : "r" (a), "r" (&v->counter), "m" (v->counter)
X : "cc");
+}
+
+static __inline__ int atomic_add_return(int a, atomic_t *v)
+{
+ int t;
+
+ __asm__ __volatile__(
+"1: lwarx %0,0,%2 # atomic_add_return\n\
+ add %0,%1,%0\n\
+ stwcx. %0,0,%2\n\
+ bne- 1b"
+ SMP_ISYNC
+ : "=&r" (t)
+ : "r" (a), "r" (&v->counter)
+ : "cc", "memory");
X
X return t;
X }
X
-static __inline__ int atomic_sub_return(int a, atomic_t *v)
+static __inline__ void atomic_sub(int a, atomic_t *v)
X {
X int t;
X
- __asm__ __volatile__("\n\
-1: lwarx %0,0,%3\n\
+ __asm__ __volatile__(
+"1: lwarx %0,0,%3 # atomic_sub\n\
X subf %0,%2,%0\n\
X stwcx. %0,0,%3\n\
X bne- 1b"
X : "=&r" (t), "=m" (v->counter)
- : "r" (a), "r" (v), "m" (v->counter)
+ : "r" (a), "r" (&v->counter), "m" (v->counter)
X : "cc");
+}
+
+static __inline__ int atomic_sub_return(int a, atomic_t *v)
+{
+ int t;
+
+ __asm__ __volatile__(
+"1: lwarx %0,0,%2 # atomic_sub_return\n\
+ subf %0,%1,%0\n\
+ stwcx. %0,0,%2\n\
+ bne- 1b"
+ SMP_ISYNC
+ : "=&r" (t)
+ : "r" (a), "r" (&v->counter)
+ : "cc", "memory");
X
X return t;
X }
X
-static __inline__ int atomic_inc_return(atomic_t *v)
+static __inline__ void atomic_inc(atomic_t *v)
X {
X int t;
X
- __asm__ __volatile__("\n\
-1: lwarx %0,0,%2\n\
+ __asm__ __volatile__(
+"1: lwarx %0,0,%2 # atomic_inc\n\
X addic %0,%0,1\n\
X stwcx. %0,0,%2\n\
X bne- 1b"
X : "=&r" (t), "=m" (v->counter)
- : "r" (v), "m" (v->counter)
+ : "r" (&v->counter), "m" (v->counter)
X : "cc");
+}
+
+static __inline__ int atomic_inc_return(atomic_t *v)
+{
+ int t;
+
+ __asm__ __volatile__(
+"1: lwarx %0,0,%1 # atomic_inc_return\n\
+ addic %0,%0,1\n\
+ stwcx. %0,0,%1\n\
+ bne- 1b"
+ SMP_ISYNC
+ : "=&r" (t)
+ : "r" (&v->counter)
+ : "cc", "memory");
X
X return t;
X }
X
-static __inline__ int atomic_dec_return(atomic_t *v)
+static __inline__ void atomic_dec(atomic_t *v)
X {
X int t;
X
- __asm__ __volatile__("\n\
-1: lwarx %0,0,%2\n\
+ __asm__ __volatile__(
+"1: lwarx %0,0,%2 # atomic_dec\n\
X addic %0,%0,-1\n\
X stwcx. %0,0,%2\n\
- bne 1b"
+ bne- 1b"
X : "=&r" (t), "=m" (v->counter)
- : "r" (v), "m" (v->counter)
+ : "r" (&v->counter), "m" (v->counter)
X : "cc");
+}
+
+static __inline__ int atomic_dec_return(atomic_t *v)
+{
+ int t;
+
+ __asm__ __volatile__(
+"1: lwarx %0,0,%1 # atomic_dec_return\n\
+ addic %0,%0,-1\n\
+ stwcx. %0,0,%1\n\
+ bne- 1b"
+ SMP_ISYNC
+ : "=&r" (t)
+ : "r" (&v->counter)
+ : "cc", "memory");
X
X return t;
X }
X
-#define atomic_add(a, v) ((void) atomic_add_return((a), (v)))
-#define atomic_sub(a, v) ((void) atomic_sub_return((a), (v)))
X #define atomic_sub_and_test(a, v) (atomic_sub_return((a), (v)) == 0)
-#define atomic_inc(v) ((void) atomic_inc_return((v)))
-#define atomic_dec(v) ((void) atomic_dec_return((v)))
X #define atomic_dec_and_test(v) (atomic_dec_return((v)) == 0)
X
X /*
@@ -97,16 +160,17 @@
X {
X int t;
X
- __asm__ __volatile__("\n"
-"1: lwarx %0,0,%2\n"
-" addic. %0,%0,-1\n"
-" blt 2f\n"
-" stwcx. %0,0,%2\n"
-" bne 1b\n"
-"2:"
- : "=&r" (t), "=m" (v->counter)
- : "r" (&v->counter), "m" (v->counter)
- : "cc");
+ __asm__ __volatile__(
+"1: lwarx %0,0,%1 # atomic_dec_if_positive\n\
+ addic. %0,%0,-1\n\
+ blt- 2f\n\
+ stwcx. %0,0,%1\n\
+ bne- 1b"
+ SMP_ISYNC
+ "\n\
+2:" : "=&r" (t)
+ : "r" (&v->counter)
+ : "cc", "memory");
X
X return t;
X }
@@ -116,4 +180,5 @@
X #define smp_mb__before_atomic_inc() smp_mb()
X #define smp_mb__after_atomic_inc() smp_mb()
X
+#endif /* __KERNEL__ */
X #endif /* _ASM_PPC_ATOMIC_H_ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/bootinfo.h linux/include/asm-ppc/bootinfo.h
--- v2.4.9/linux/include/asm-ppc/bootinfo.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-ppc/bootinfo.h Tue Aug 28 06:58:33 2001
@@ -1,5 +1,5 @@
X /*
- * BK Id: SCCS/s.bootinfo.h 1.9 06/13/01 15:28:43 paulus
+ * BK Id: SCCS/s.bootinfo.h 1.11 08/17/01 15:23:17 paulus
X */
X /*
X * Non-machine dependent bootinfo structure. Basic idea
@@ -31,6 +31,7 @@
X #define BI_INITRD 0x1014
X #define BI_SYSMAP 0x1015
X #define BI_MACHTYPE 0x1016
+#define BI_MEMSIZE 0x1017
X
X #endif /* CONFIG_APUS */
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/bseip.h linux/include/asm-ppc/bseip.h
--- v2.4.9/linux/include/asm-ppc/bseip.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/bseip.h Tue Aug 28 06:58:33 2001
@@ -1,5 +1,5 @@
X /*
- * BK Id: SCCS/s.bseip.h 1.7 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.bseip.h 1.10 08/17/01 15:23:17 paulus
X */
X
X /*
@@ -38,9 +38,5 @@
X /* We don't use the 8259.
X */
X #define NR_8259_INTS 0
-
-/* Machine type
-*/
-#define _MACH_8xx (_MACH_bseip)
X
X #endif
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/btext.h linux/include/asm-ppc/btext.h
--- v2.4.9/linux/include/asm-ppc/btext.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-ppc/btext.h Tue Aug 28 06:58:33 2001
@@ -0,0 +1,37 @@
+/*
+ * BK Id: %F% %I% %G% %U% %#%
+ */
+/*
+ * Definitions for using the procedures in btext.c.
+ *
+ * Benjamin Herrenschmidt <be...@kernel.crashing.org>
+ */
+#ifndef __PPC_BTEXT_H
+#define __PPC_BTEXT_H
+#ifdef __KERNEL__
+
+#include <asm/bootx.h>
+
+extern void btext_clearscreen(void);
+extern void btext_flushscreen(void);
+
+extern unsigned long disp_BAT[2];
+
+extern boot_infos_t *disp_bi;
+extern int boot_text_mapped;
+
+void btext_init(boot_infos_t *bi);
+void btext_welcome(boot_infos_t* bi);
+void btext_prepare_BAT(void);
+void btext_setup_display(int width, int height, int depth, int pitch,
+ unsigned long address);
+void map_boot_text(void);
+void btext_update_display(unsigned long phys, int width, int height,
+ int depth, int pitch);
+
+void btext_drawchar(char c);
+void btext_drawstring(const char *str);
+void btext_drawhex(unsigned long v);
+
+#endif /* __KERNEL__ */
+#endif /* __PPC_BTEXT_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/cputable.h linux/include/asm-ppc/cputable.h
--- v2.4.9/linux/include/asm-ppc/cputable.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-ppc/cputable.h Tue Aug 28 06:58:33 2001
@@ -0,0 +1,92 @@
+/*
+ * BK Id: SCCS/s.cputable.h 1.3 08/19/01 22:31:46 paulus
+ */
+/*
+ * include/asm-ppc/cputable.h
+ *
+ * Copyright (C) 2001 Ben. Herrenschmidt (be...@kernel.crashing.org)
+ *
+ * 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.
+ */
+
+#ifndef __ASM_PPC_CPUTABLE_H
+#define __ASM_PPC_CPUTABLE_H
+
+/* Exposed to userland CPU features */
+#define PPC_FEATURE_32 0x80000000
+#define PPC_FEATURE_64 0x40000000
+#define PPC_FEATURE_601_INSTR 0x20000000
+#define PPC_FEATURE_HAS_ALTIVEC 0x10000000
+#define PPC_FEATURE_HAS_FPU 0x08000000
+#define PPC_FEATURE_HAS_MMU 0x04000000
+#define PPC_FEATURE_HAS_4xxMAC 0x02000000
+#define PPC_FEATURE_UNIFIED_CACHE 0x01000000
+
+#ifdef __KERNEL__
+
+#ifndef __ASSEMBLY__
+
+/* This structure can grow, it's real size is used by head.S code
+ * via the mkdefs mecanism.
+ */
+struct cpu_spec {
+ /* CPU is matched via (PVR & pvr_mask) == pvr_value */
+ unsigned int pvr_mask;
+ unsigned int pvr_value;
+
+ char *cpu_name;
+ unsigned int cpu_features; /* Kernel features */
+ unsigned int cpu_user_features; /* Userland features */
+
+ /* cache line sizes */
+ unsigned int icache_bsize;
+ unsigned int dcache_bsize;
+
+ /* this is called to initialize various CPU bits like L1 cache,
+ * BHT, SPD, etc... from head.S before branching to identify_machine
+ */
+ void (*cpu_setup)(int cpu_nr);
+};
+
+extern struct cpu_spec cpu_specs[];
+extern struct cpu_spec *cur_cpu_spec[];
+
+#endif /* __ASSEMBLY__ */
+
+/* CPU kernel features */
+#define CPU_FTR_SPLIT_ID_CACHE 0x00000001
+#define CPU_FTR_L2CR 0x00000002
+#define CPU_FTR_SPEC7450 0x00000004
+#define CPU_FTR_ALTIVEC 0x00000008
+#define CPU_FTR_TAU 0x00000010
+#define CPU_FTR_CAN_DOZE 0x00000020
+#define CPU_FTR_USE_TB 0x00000040
+#define CPU_FTR_604_PERF_MON 0x00000080
+#define CPU_FTR_601 0x00000100
+#define CPU_FTR_HPTE_TABLE 0x00000200
+
+#ifdef __ASSEMBLY__
+
+#define BEGIN_FTR_SECTION 98:
+
+#define END_FTR_SECTION(msk, val) \
+99: \
+ .section __ftr_fixup,"a"; \
+ .align 2; \
+ .long msk; \
+ .long val; \
+ .long 98b; \
+ .long 99b; \
+ .previous
+
+#define END_FTR_SECTION_IFSET(msk) END_FTR_SECTION((msk), (msk))
+#define END_FTR_SECTION_IFCLR(msk) END_FTR_SECTION((msk), 0)
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ASM_PPC_CPUTABLE_H */
+#endif /* __KERNEL__ */
+
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/elf.h linux/include/asm-ppc/elf.h
--- v2.4.9/linux/include/asm-ppc/elf.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/elf.h Tue Aug 28 06:58:33 2001
@@ -1,5 +1,5 @@
X /*
- * BK Id: SCCS/s.elf.h 1.10 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.elf.h 1.14 08/21/01 16:07:48 trini
X */
X #ifndef __PPC_ELF_H
X #define __PPC_ELF_H
@@ -7,7 +7,9 @@
X /*
X * ELF register definitions..
X */
+#include <asm/types.h>
X #include <asm/ptrace.h>
+#include <asm/cputable.h>
X
X #define ELF_NGREG 48 /* includes nip, msr, lr, etc. */
X #define ELF_NFPREG 33 /* includes fpscr */
@@ -60,7 +62,7 @@
X instruction set this cpu supports. This could be done in userspace,
X but it's not easy, and we've already done it here. */
X
-#define ELF_HWCAP (0)
+#define ELF_HWCAP (cur_cpu_spec[0]->cpu_user_features)
X
X /* This yields a string that ld.so will use to load implementation
X specific libraries for optimization. This is more specific in
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/fads.h linux/include/asm-ppc/fads.h
--- v2.4.9/linux/include/asm-ppc/fads.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/fads.h Tue Aug 28 06:58:33 2001
@@ -1,5 +1,5 @@
X /*
- * BK Id: SCCS/s.fads.h 1.8 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.fads.h 1.11 08/17/01 15:23:17 paulus
X */
X
X /*
@@ -66,8 +66,4 @@
X */
X #define NR_8259_INTS 0
X
-/* Machine type
- */
-#define _MACH_8xx (_MACH_fads)
-
X #endif
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/feature.h linux/include/asm-ppc/feature.h
--- v2.4.9/linux/include/asm-ppc/feature.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/feature.h Tue Aug 28 06:58:33 2001
@@ -1,5 +1,5 @@
X /*
- * BK Id: SCCS/s.feature.h 1.9 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.feature.h 1.13 08/19/01 22:23:04 paulus
X */
X /*
X * Definitions for accessing the Feature Control Register (FCR)
@@ -91,6 +91,8 @@
X
X extern void feature_set_firewire_power(struct device_node* device, int power);
X extern void feature_set_firewire_cable_power(struct device_node* device, int power);
+
+extern void feature_set_modem_power(struct device_node* device, int power);
X
X extern void feature_set_airport_power(struct device_node* device, int power);
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/ide.h linux/include/asm-ppc/ide.h
--- v2.4.9/linux/include/asm-ppc/ide.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/ide.h Tue Aug 28 06:58:33 2001
@@ -1,5 +1,5 @@
X /*
- * BK Id: SCCS/s.ide.h 1.10 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.ide.h 1.13 08/20/01 15:25:16 paulus
X */
X /*
X * linux/include/asm-ppc/ide.h
@@ -29,22 +29,9 @@
X #include <linux/ioport.h>
X #include <asm/io.h>
X
-extern int pmac_ide_ports_known;
-extern ide_ioreg_t pmac_ide_regbase[MAX_HWIFS];
-extern int pmac_ide_irq[MAX_HWIFS];
-extern void pmac_ide_probe(void);
-
-extern int chrp_ide_ports_known;
-extern ide_ioreg_t chrp_ide_regbase[MAX_HWIFS];
-extern ide_ioreg_t chrp_idedma_regbase; /* one for both channels */
-extern unsigned int chrp_ide_irq;
-extern void chrp_ide_probe(void);
-
X extern void ppc_generic_ide_fix_driveid(struct hd_driveid *id);
X
X struct ide_machdep_calls {
- void (*insw)(ide_ioreg_t port, void *buf, int ns);
- void (*outsw)(ide_ioreg_t port, void *buf, int ns);
X int (*default_irq)(ide_ioreg_t base);
X ide_ioreg_t (*default_io_base)(int index);
X int (*ide_check_region)(ide_ioreg_t from, unsigned int extent);
@@ -53,30 +40,16 @@
X const char *name);
X void (*ide_release_region)(ide_ioreg_t from,
X unsigned int extent);
- void (*fix_driveid)(struct hd_driveid *id);
X void (*ide_init_hwif)(hw_regs_t *hw,
X ide_ioreg_t data_port,
X ide_ioreg_t ctrl_port,
X int *irq);
-
- int io_base;
X };
X
X extern struct ide_machdep_calls ppc_ide_md;
X
-void ide_insw(ide_ioreg_t port, void *buf, int ns);
-void ide_outsw(ide_ioreg_t port, void *buf, int ns);
X void ppc_generic_ide_fix_driveid(struct hd_driveid *id);
-
-#undef insw
-#define insw(port, buf, ns) do { \
- ppc_ide_md.insw((port), (buf), (ns)); \
-} while (0)
-
-#undef outsw
-#define outsw(port, buf, ns) do { \
- ppc_ide_md.outsw((port), (buf), (ns)); \
-} while (0)
+#define ide_fix_driveid(id) ppc_generic_ide_fix_driveid((id))
X
X #undef SUPPORT_SLOW_DATA_PORTS
X #define SUPPORT_SLOW_DATA_PORTS 0
@@ -87,10 +60,9 @@
X
X static __inline__ int ide_default_irq(ide_ioreg_t base)
X {
- if ( ppc_ide_md.default_irq )
+ if (ppc_ide_md.default_irq)
X return ppc_ide_md.default_irq(base);
- else
- return -1;
+ return 0;
X }
X
X static __inline__ ide_ioreg_t ide_default_io_base(int index)
@@ -100,7 +72,7 @@
X return 0;
X }
X
-static __inline__ void ide_init_hwif_ports(hw_regs_t *hw,
+static __inline__ void ide_init_hwif_ports(hw_regs_t *hw,
X ide_ioreg_t data_port,
X ide_ioreg_t ctrl_port, int *irq)
X {
@@ -135,20 +107,14 @@
X
X static __inline__ void ide_request_region (ide_ioreg_t from, unsigned int extent, const char *name)
X {
- if ( ppc_ide_md.ide_request_region )
+ if (ppc_ide_md.ide_request_region)
X ppc_ide_md.ide_request_region(from, extent, name);
X }
X
X static __inline__ void ide_release_region (ide_ioreg_t from, unsigned int extent)
X {
- if ( ppc_ide_md.ide_release_region )
+ if (ppc_ide_md.ide_release_region)
X ppc_ide_md.ide_release_region(from, extent);
-}
-
-static __inline__ void ide_fix_driveid (struct hd_driveid *id)
-{
- if ( ppc_ide_md.fix_driveid )
- ppc_ide_md.fix_driveid(id);
X }
X
X typedef union {
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/init.h linux/include/asm-ppc/init.h
--- v2.4.9/linux/include/asm-ppc/init.h Mon Aug 27 12:41:48 2001
+++ linux/include/asm-ppc/init.h Wed Dec 31 16:00:00 1969
@@ -1,36 +0,0 @@
-/*
- * BK Id: SCCS/s.init.h 1.8 07/06/01 09:19:30 trini
- */
-#ifdef __KERNEL__
-#ifndef _PPC_INIT_H
-#define _PPC_INIT_H
-
-#include <linux/init.h>
-
-#define __pmac __attribute__ ((__section__ (".text.pmac")))
-#define __pmacdata __attribute__ ((__section__ (".data.pmac")))
-#define __pmacfunc(__argpmac) \
- __argpmac __pmac; \
- __argpmac
-
-#define __prep __attribute__ ((__section__ (".text.prep")))
-#define __prepdata __attribute__ ((__section__ (".data.prep")))
-#define __prepfunc(__argprep) \
- __argprep __prep; \
- __argprep
-
-#define __chrp __attribute__ ((__section__ (".text.chrp")))
-#define __chrpdata __attribute__ ((__section__ (".data.chrp")))
-#define __chrpfunc(__argchrp) \
- __argchrp __chrp; \
- __argchrp
-
-/* this is actually just common chrp/pmac code, not OF code -- Cort */
-#define __openfirmware __attribute__ ((__section__ (".text.openfirmware")))
-#define __openfirmwaredata __attribute__ ((__section__ (".data.openfirmware")))
-#define __openfirmwarefunc(__argopenfirmware) \
- __argopenfirmware __openfirmware; \
- __argopenfirmware
-
-#endif /* _PPC_INIT_H */
-#endif /* __KERNEL__ */
SHAR_EOF
true || echo 'restore of patch-2.4.10 failed'
fi
echo 'End of part 181'
echo 'File patch-2.4.10 is continued in part 182'
echo "182" > _shar_seq_.tmp
exit 0

Thomas Kobienia

unread,
Sep 24, 2001, 8:00:45 PM9/24/01
to
Archive-name: v2.4/patch-2.4.10/part182

#!/bin/sh -x
# this is part 182 of a 197 - part archive


# do not concatenate these parts, unpack them in order with /bin/sh
# file patch-2.4.10 continued
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck

if test "$Scheck" != 182; then


echo "Please unpack part $Scheck next!"
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping patch-2.4.10'
else
echo 'x - continuing with patch-2.4.10'
sed 's/^X//' << 'SHAR_EOF' >> 'patch-2.4.10' &&

diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/io.h linux/include/asm-ppc/io.h
--- v2.4.9/linux/include/asm-ppc/io.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/io.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.io.h 1.7 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.io.h 1.11 08/28/01 15:48:26 paulus
X */
X #ifdef __KERNEL__
X #ifndef _PPC_IO_H
@@ -24,7 +24,7 @@
X #define PREP_PCI_DRAM_OFFSET 0x80000000
X
X #if defined(CONFIG_4xx)
-#include <asm/board.h>
+#include <asm/ppc4xx.h>
X #elif defined(CONFIG_8xx)
X #include <asm/mpc8xx.h>
X #elif defined(CONFIG_8260)
@@ -185,15 +185,13 @@
X */
X extern void *__ioremap(unsigned long address, unsigned long size,
X unsigned long flags);
-extern void *__ioremap_at(unsigned long phys, unsigned long size,
- unsigned long flags);
X extern void *ioremap(unsigned long address, unsigned long size);
X #define ioremap_nocache(addr, size) ioremap((addr), (size))
X extern void iounmap(void *addr);
X extern unsigned long iopa(unsigned long addr);
-#ifdef CONFIG_APUS
X extern unsigned long mm_ptov(unsigned long addr) __attribute__ ((const));
-#endif
+extern void io_block_mapping(unsigned long virt, unsigned long phys,
+ unsigned int size, int flags);
X
X /*
X * The PCI bus is inherently Little-Endian. The PowerPC is being
@@ -245,6 +243,12 @@
X return (void*) mm_ptov (address);
X #endif
X }
+
+/*
+ * Change "struct page" to physical address.
+ */
+#define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT)
+#define page_to_bus(page) (page_to_phys(page) + PCI_DRAM_OFFSET)
X
X #endif /* __KERNEL__ */
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/ivms8.h linux/include/asm-ppc/ivms8.h
--- v2.4.9/linux/include/asm-ppc/ivms8.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/ivms8.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.ivms8.h 1.5 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.ivms8.h 1.6 08/17/01 15:23:17 paulus
X */
X /*
X * A collection of structures, addresses, and values associated with
@@ -87,9 +87,4 @@


X */
X #define NR_8259_INTS 0
X

-/* Generic 8xx type
-*/
-#define _MACH_8xx (_MACH_ivms8)
-
X #endif /* __MACH_IVMS8_DEFS */
-
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/keyboard.h linux/include/asm-ppc/keyboard.h
--- v2.4.9/linux/include/asm-ppc/keyboard.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/keyboard.h Wed Aug 29 20:49:36 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.keyboard.h 1.5 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.keyboard.h 1.11 08/29/01 10:07:29 paulus
X */
X /*
X * linux/include/asm-ppc/keyboard.h
@@ -23,6 +23,7 @@
X
X #include <linux/kernel.h>
X #include <linux/ioport.h>
+#include <linux/kd.h>
X #include <asm/io.h>
X
X #define KEYBOARD_IRQ 1
@@ -67,7 +68,7 @@
X if ( ppc_md.kbd_leds )
X ppc_md.kbd_leds(leds);
X }
-
+
X static inline void kbd_init_hw(void)
X {
X if ( ppc_md.kbd_init_hw )
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/keylargo.h linux/include/asm-ppc/keylargo.h
--- v2.4.9/linux/include/asm-ppc/keylargo.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/keylargo.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.keylargo.h 1.9 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.keylargo.h 1.13 08/19/01 22:23:04 paulus
X */
X /*
X * keylargo.h: definitions for using the "KeyLargo" I/O controller chip.
@@ -35,7 +35,12 @@
X #define KL_GPIO_MODEM_RESET (KEYLARGO_GPIO_0+0x03) /* Pangea */
X #define KL_GPIO_MODEM_POWER (KEYLARGO_GPIO_0+0x02) /* Pangea */
X
+/* Hrm... this one is only to be used on Pismo. It seeem to also
+ * control the timebase enable on other machines. Still to be
+ * experimented... --BenH.
+ */
X #define KL_GPIO_FW_CABLE_POWER (KEYLARGO_GPIO_0+0x09)
+#define KL_GPIO_TB_ENABLE (KEYLARGO_GPIO_0+0x09)
X
X #define KL_GPIO_ETH_PHY_RESET (KEYLARGO_GPIO_0+0x10)
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/kmap_types.h linux/include/asm-ppc/kmap_types.h
--- v2.4.9/linux/include/asm-ppc/kmap_types.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/kmap_types.h Mon Sep 17 13:16:30 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.kmap_types.h 1.6 05/17/01 18:14:24 cort
+ * BK Id: SCCS/s.kmap_types.h 1.9 08/29/01 14:03:05 paulus
X */
X #ifdef __KERNEL__
X #ifndef _ASM_KMAP_TYPES_H
@@ -7,9 +7,10 @@
X
X enum km_type {
X KM_BOUNCE_READ,
- KM_BOUNCE_WRITE,
X KM_SKB_DATA,
X KM_SKB_DATA_SOFTIRQ,
+ KM_USER0,
+ KM_USER1,
X KM_TYPE_NR
X };
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/machdep.h linux/include/asm-ppc/machdep.h
--- v2.4.9/linux/include/asm-ppc/machdep.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-ppc/machdep.h Wed Aug 29 20:49:36 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.machdep.h 1.14 06/28/01 16:13:50 paulus
+ * BK Id: SCCS/s.machdep.h 1.21 08/29/01 10:07:29 paulus
X */
X #ifdef __KERNEL__
X #ifndef _PPC_MACHDEP_H
@@ -44,6 +44,8 @@
X unsigned long heartbeat_count;
X
X unsigned long (*find_end_of_memory)(void);
+ void (*setup_io_mappings)(void);
+
X void (*progress)(char *, unsigned short);
X
X unsigned char (*nvram_read_val)(int addr);
@@ -70,6 +72,10 @@
X /* Called after scanning the bus, before allocating resources */
X void (*pcibios_fixup)(void);
X
+ /* Called after PPC generic resource fixup to perform
+ machine specific fixups */
+ void (*pcibios_fixup_resources)(struct pci_dev *);
+
X /* Called for each PCI bus in the system when it's probed */
X void (*pcibios_fixup_bus)(struct pci_bus *);
X
@@ -78,11 +84,23 @@
X * Returns 0 to allow assignment/enabling of the device. */
X int (*pcibios_enable_device_hook)(struct pci_dev *, int initial);
X
+ /* For interrupt routing */
+ unsigned char (*pci_swizzle)(struct pci_dev *, unsigned char *);
+ int (*pci_map_irq)(struct pci_dev *, unsigned char, unsigned char);
+
+ /* Called in indirect_* to avoid touching devices */
+ int (*pci_exclude_device)(unsigned char, unsigned char);
+
X /* Called at then very end of pcibios_init() */
X void (*pcibios_after_init)(void);
X
X /* this is for modules, since _machine can be a define -- Cort */
X int ppc_machine;
+
+#ifdef CONFIG_SMP
+ /* functions for dealing with other cpus */
+ struct smp_ops_t *smp_ops;
+#endif /* CONFIG_SMP */
X };
X
X extern struct machdep_calls ppc_md;
@@ -101,6 +119,15 @@
X } sys_ctrler_t;
X
X extern sys_ctrler_t sys_ctrler;
+
+#ifdef CONFIG_SMP
+struct smp_ops_t {
+ void (*message_pass)(int target, int msg, unsigned long data, int wait);
+ int (*probe)(void);
+ void (*kick_cpu)(int nr);
+ void (*setup_cpu)(int nr);
+};
+#endif /* CONFIG_SMP */
X
X #endif /* _PPC_MACHDEP_H */
X #endif /* __KERNEL__ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/mbx.h linux/include/asm-ppc/mbx.h
--- v2.4.9/linux/include/asm-ppc/mbx.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/mbx.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.mbx.h 1.8 05/17/01 18:14:25 cort
+ * BK Id: SCCS/s.mbx.h 1.11 08/17/01 15:23:17 paulus
X */
X /*
X * A collection of structures, addresses, and values associated with
@@ -94,8 +94,5 @@
X */
X #define NR_8259_INTS 16
X
-/* Generic 8xx type
-*/
-#define _MACH_8xx (_MACH_mbx)
X #endif
X #endif /* __KERNEL__ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/mmu_context.h linux/include/asm-ppc/mmu_context.h
--- v2.4.9/linux/include/asm-ppc/mmu_context.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-ppc/mmu_context.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.mmu_context.h 1.12 06/28/01 15:50:17 paulus
+ * BK Id: SCCS/s.mmu_context.h 1.15 08/16/01 23:00:17 paulus
X */
X #ifdef __KERNEL__
X #ifndef __PPC_MMU_CONTEXT_H
@@ -58,16 +58,19 @@
X #ifdef CONFIG_8xx
X #define NO_CONTEXT 16
X #define LAST_CONTEXT 15
+#define FIRST_CONTEXT 0
X
X #elif CONFIG_4xx
X #define NO_CONTEXT 256
X #define LAST_CONTEXT 255
+#define FIRST_CONTEXT 1
X
X #else
X
X /* PPC 6xx, 7xx CPUs */
X #define NO_CONTEXT ((mm_context_t) -1)
X #define LAST_CONTEXT 32767
+#define FIRST_CONTEXT 1
X #endif
X
X /*
@@ -75,11 +78,12 @@
X * On 32-bit PowerPCs (other than the 8xx embedded chips), this is done by
X * loading up the segment registers for the user part of the address space.
X *
- * On the 8xx parts, the context currently includes the page directory,
- * and once I implement a real TLB context manager this will disappear.
- * The PGD is ignored on other processors. - Dan
+ * Since the PGD is immediately available, it is much faster to simply
+ * pass this along as a second parameter, which is required for 8xx and
+ * can be used for debugging on all processors (if you happen to have
+ * an Abatron).
X */
-extern void set_context(mm_context_t context);
+extern void set_context(mm_context_t context, pgd_t *pgd);
X
X /*
X * Bitmap of contexts in use.
@@ -156,7 +160,7 @@
X {
X tsk->thread.pgdir = next->pgd;
X get_mmu_context(next);
- set_context(next->context);
+ set_context(next->context, next->pgd);
X }
X
X /*
@@ -167,8 +171,10 @@
X {
X current->thread.pgdir = mm->pgd;
X get_mmu_context(mm);
- set_context(mm->context);
+ set_context(mm->context, mm->pgd);
X }
+
+extern void mmu_context_init(void);
X
X #endif /* __PPC_MMU_CONTEXT_H */
X #endif /* __KERNEL__ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/module.h linux/include/asm-ppc/module.h
--- v2.4.9/linux/include/asm-ppc/module.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/module.h Thu Sep 13 16:33:03 2001
@@ -10,5 +10,6 @@
X #define module_map(x) vmalloc(x)
X #define module_unmap(x) vfree(x)
X #define module_arch_init(x) (0)
+#define arch_init_modules(x) do { } while (0)
X
X #endif /* _ASM_PPC_MODULE_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/page.h linux/include/asm-ppc/page.h
--- v2.4.9/linux/include/asm-ppc/page.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/page.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.page.h 1.5 05/17/01 18:14:25 cort
+ * BK Id: SCCS/s.page.h 1.8 08/19/01 20:06:47 paulus
X */
X #ifndef _PPC_PAGE_H
X #define _PPC_PAGE_H
@@ -12,6 +12,7 @@
X #ifdef __KERNEL__
X #include <linux/config.h>
X
+/* Be sure to change arch/ppc/Makefile to match */
X #define PAGE_OFFSET 0xc0000000
X #define KERNELBASE PAGE_OFFSET
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/param.h linux/include/asm-ppc/param.h
--- v2.4.9/linux/include/asm-ppc/param.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/param.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.param.h 1.5 05/17/01 18:14:25 cort
+ * BK Id: SCCS/s.param.h 1.8 08/20/01 22:50:29 paulus
X */
X #ifndef _ASM_PPC_PARAM_H
X #define _ASM_PPC_PARAM_H
@@ -21,7 +21,7 @@
X #define MAXHOSTNAMELEN 64 /* max length of hostname */
X
X #ifdef __KERNEL__
-# define CLOCKS_PER_SEC 100 /* frequency at which times() counts */
+# define CLOCKS_PER_SEC HZ /* frequency at which times() counts */
X #endif
X
X #endif
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/ppcboot.h linux/include/asm-ppc/ppcboot.h
--- v2.4.9/linux/include/asm-ppc/ppcboot.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-ppc/ppcboot.h Sat Sep 8 12:39:33 2001
@@ -0,0 +1,93 @@
+/*
+ * (C) Copyright 2000, 2001
+ * Wolfgang Denk, DENX Software Engineering, w...@denx.de.


+ *
+ * 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
+ */
+
+#ifndef _PPCBOOT_H_
+#define _PPCBOOT_H_ 1
+
+/*
+ * Board information passed to kernel from PPCBoot
+ *
+ * include/asm-ppc/ppcboot.h
+ */
+
+#ifndef __ASSEMBLY__
+
+#include <linux/types.h>
+
+typedef void (interrupt_handler_t)(void *);
+
+typedef struct monitor_functions {
+ int (*getc)(void);
+ int (*tstc)(void);
+ void (*putc)(const char c);
+ void (*puts)(const char *s);
+ void (*printf)(const char *fmt, ...);
+ void (*install_hdlr)(int, interrupt_handler_t *, void *);
+ void (*free_hdlr)(int);
+ void *(*malloc)(size_t);
+ void (*free)(void *);
+} mon_fnc_t;
+
+typedef struct bd_info {
+ unsigned long bi_memstart; /* start of DRAM memory */
+ unsigned long bi_memsize; /* size of DRAM memory in bytes */
+ unsigned long bi_flashstart; /* start of FLASH memory */
+ unsigned long bi_flashsize; /* size of FLASH memory */
+ unsigned long bi_flashoffset; /* reserved area for startup monitor */
+ unsigned long bi_sramstart; /* start of SRAM memory */
+ unsigned long bi_sramsize; /* size of SRAM memory */
+#if defined(CONFIG_8xx) || defined(CONFIG_8260)
+ unsigned long bi_immr_base; /* base of IMMR register */
+#endif
+ unsigned long bi_bootflags; /* boot / reboot flag (for LynxOS) */
+ unsigned long bi_ip_addr; /* IP Address */
+ unsigned char bi_enetaddr[6]; /* Ethernet adress */
+ unsigned short bi_ethspeed; /* Ethernet speed in Mbps */
+ unsigned long bi_intfreq; /* Internal Freq, in MHz */
+ unsigned long bi_busfreq; /* Bus Freq, in MHz */
+#if defined(CONFIG_8260)
+ unsigned long bi_cpmfreq; /* CPM_CLK Freq, in MHz */
+ unsigned long bi_brgfreq; /* BRG_CLK Freq, in MHz */
+ unsigned long bi_sccfreq; /* SCC_CLK Freq, in MHz */
+ unsigned long bi_vco; /* VCO Out from PLL, in MHz */
+#endif
+ unsigned long bi_baudrate; /* Console Baudrate */
+#if defined(CONFIG_PPC405)
+ unsigned char bi_s_version[4]; /* Version of this structure */
+ unsigned char bi_r_version[32]; /* Version of the ROM (IBM) */
+ unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */
+ unsigned int bi_plb_busfreq; /* PLB Bus speed, in Hz */
+ unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */
+ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */
+#endif
+#if defined(CONFIG_HYMOD)
+ hymod_conf_t bi_hymod_conf; /* hymod configuration information */
+#endif
+#if defined(CONFIG_EVB64260)
+ /* the board has three onboard ethernet ports */
+ unsigned char bi_enet1addr[6];
+ unsigned char bi_enet2addr[6];
+#endif
+ mon_fnc_t *bi_mon_fnc; /* Pointer to monitor functions */
+} bd_t;


+
+#endif /* __ASSEMBLY__ */
+

+#endif /* _PPCBOOT_H_ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/processor.h linux/include/asm-ppc/processor.h
--- v2.4.9/linux/include/asm-ppc/processor.h Sun Aug 12 13:28:00 2001
+++ linux/include/asm-ppc/processor.h Mon Sep 17 15:30:14 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.processor.h 1.24 06/15/01 13:56:56 paulus
+ * BK Id: SCCS/s.processor.h 1.28 08/17/01 15:23:17 paulus
X */
X #ifdef __KERNEL__
X #ifndef __ASM_PPC_PROCESSOR_H
@@ -475,33 +475,13 @@
X #define PVR_8240 0x00810100
X #define PVR_8260 PVR_8240
X
-
-/* I am just adding a single entry for 8260 boards. I think we may be
- * able to combine mbx, fads, rpxlite, bseip, and classic into a single
- * generic 8xx as well. The boards containing these processors are either
- * identical at the processor level (due to the high integration) or so
- * wildly different that testing _machine at run time is best replaced by
- * conditional compilation by board type (found in their respective .h file).
- * -- Dan
+/* We only need to define a new _MACH_xxx for machines which are part of
+ * a configuration which supports more than one type of different machine.
+ * This is currently limited to CONFIG_ALL_PPC and CHRP/PReP/PMac. -- Tom
X */
X #define _MACH_prep 0x00000001
X #define _MACH_Pmac 0x00000002 /* pmac or pmac clone (non-chrp) */
X #define _MACH_chrp 0x00000004 /* chrp machine */
-#define _MACH_mbx 0x00000008 /* Motorola MBX board */
-#define _MACH_apus 0x00000010 /* amiga with phase5 powerup */
-#define _MACH_fads 0x00000020 /* Motorola FADS board */
-#define _MACH_rpxlite 0x00000040 /* RPCG RPX-Lite 8xx board */
-#define _MACH_bseip 0x00000080 /* Bright Star Engineering ip-Engine */
-#define _MACH_unused0 0x00000100 /* Now free to be used */
-#define _MACH_gemini 0x00000200 /* Synergy Microsystems gemini board */
-#define _MACH_classic 0x00000400 /* RPCG RPX-Classic 8xx board */
-#define _MACH_oak 0x00000800 /* IBM "Oak" 403 eval. board */
-#define _MACH_walnut 0x00001000 /* IBM "Walnut" 405GP eval. board */
-#define _MACH_8260 0x00002000 /* Generic 8260 */
-#define _MACH_tqm860 0x00004000 /* TQM860/L */
-#define _MACH_tqm8xxL 0x00008000 /* TQM8xxL */
-#define _MACH_spd8xx 0x00010000 /* SPD8xx */
-#define _MACH_ivms8 0x00020000 /* IVMS8 */
X
X /* see residual.h for these */
X #define _PREP_Motorola 0x01 /* motorola prep */
@@ -558,11 +538,10 @@
X #ifndef __ASSEMBLY__
X #if defined(CONFIG_ALL_PPC)
X extern int _machine;
-extern int have_of;
-#endif /* CONFIG_ALL_PPC */
X
X /* what kind of prep workstation we are */
X extern int _prep_type;
+
X /*
X * This is used to identify the board type from a given PReP board
X * vendor. Board revision is also made available.
@@ -570,6 +549,9 @@
X extern unsigned char ucSystemType;
X extern unsigned char ucBoardRev;
X extern unsigned char ucBoardRevMaj, ucBoardRevMin;
+#else
+#define _machine 0
+#endif /* CONFIG_ALL_PPC */
X
X struct task_struct;
X void start_thread(struct pt_regs *regs, unsigned long nip, unsigned long sp);
@@ -639,14 +621,6 @@
X }
X
X /*
- * Note: the vm_start and vm_end fields here should *not*
- * be in kernel space. (Could vm_end == vm_start perhaps?)
- */
-#define INIT_MMAP { &init_mm, 0, 0x1000, NULL, \
- PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC, \
- 1, NULL, NULL }
-
-/*
X * Return saved PC of a blocked thread. For now, this is the "user" PC
X */
X static inline unsigned long thread_saved_pc(struct thread_struct *t)
@@ -681,26 +655,9 @@
X /* In misc.c */
X void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);
X
-#endif /* ndef ASSEMBLY*/
+#endif /* !__ASSEMBLY__ */
X
-#ifndef CONFIG_ALL_PPC
-#if defined(CONFIG_APUS)
-#define _machine _MACH_apus
-#elif defined(CONFIG_GEMINI)
-#define _machine _MACH_gemini
-#elif defined(CONFIG_OAK)
-#define _machine _MACH_oak
-#elif defined(CONFIG_WALNUT)
-#define _machine _MACH_walnut
-#elif defined(CONFIG_8xx)
-#define _machine _MACH_8xx
-#elif defined(CONFIG_8260)
-#define _machine _MACH_8260
-#else
-#error "Machine not defined correctly"
-#endif
-#define have_of 0
-#endif /* !CONFIG_ALL_PPC */
+#define have_of (_machine == _MACH_chrp || _machine == _MACH_Pmac)
X
X #endif /* __ASM_PPC_PROCESSOR_H */
X #endif /* __KERNEL__ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/prom.h linux/include/asm-ppc/prom.h
--- v2.4.9/linux/include/asm-ppc/prom.h Mon Aug 27 12:41:48 2001
+++ linux/include/asm-ppc/prom.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.prom.h 1.16 07/25/01 14:11:37 trini
+ * BK Id: SCCS/s.prom.h 1.19 08/17/01 15:23:17 paulus
X */
X /*
X * Definitions for talking to the Open Firmware PROM on
@@ -18,9 +18,6 @@
X
X extern char *prom_display_paths[];
X extern unsigned int prom_num_displays;
-#ifdef CONFIG_ALL_PPC
-extern int have_of;
-#endif
X
X struct address_range {
X unsigned int space;
@@ -92,13 +89,6 @@
X extern void print_properties(struct device_node *node);
X extern int call_rtas(const char *service, int nargs, int nret,
X unsigned long *outputs, ...);
-extern void prom_drawstring(const char *c);
-extern void prom_drawhex(unsigned long v);
-extern void prom_drawchar(char c);
-
-extern void map_bootx_text(void);
-extern void bootx_update_display(unsigned long phys, int width, int height,
- int depth, int pitch);
X
X /*
X * When we call back to the Open Firmware client interface, we usually
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/residual.h linux/include/asm-ppc/residual.h
--- v2.4.9/linux/include/asm-ppc/residual.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/residual.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.residual.h 1.5 05/17/01 18:14:25 cort
+ * BK Id: SCCS/s.residual.h 1.8 08/09/01 09:11:24 trini
X */
X /* 7/18/95 */
X /*----------------------------------------------------------------------------*/
@@ -29,7 +29,7 @@
X /* Public structures... */
X /*----------------------------------------------------------------------------*/
X
-#include "pnp.h"
+#include <asm/pnp.h>
X
X typedef enum _L1CACHE_TYPE {
X NoneCAC = 0,
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/rpxclassic.h linux/include/asm-ppc/rpxclassic.h
--- v2.4.9/linux/include/asm-ppc/rpxclassic.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/rpxclassic.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.rpxclassic.h 1.8 05/17/01 18:14:25 cort
+ * BK Id: SCCS/s.rpxclassic.h 1.11 08/17/01 15:23:17 paulus


X */
X
X /*

@@ -99,10 +99,6 @@


X /* We don't use the 8259.
X */
X #define NR_8259_INTS 0
-
-/* Machine type
-*/

-#define _MACH_8xx (_MACH_classic)
X
X #endif
X #endif /* __KERNEL__ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/rpxlite.h linux/include/asm-ppc/rpxlite.h
--- v2.4.9/linux/include/asm-ppc/rpxlite.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/rpxlite.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.rpxlite.h 1.8 05/17/01 18:14:25 cort
+ * BK Id: SCCS/s.rpxlite.h 1.11 08/17/01 15:23:17 paulus


X */
X
X /*

@@ -79,10 +79,6 @@


X /* We don't use the 8259.
X */
X #define NR_8259_INTS 0
-
-/* Machine type
-*/

-#define _MACH_8xx (_MACH_rpxlite)
X
X #endif
X #endif /* __KERNEL__ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/sections.h linux/include/asm-ppc/sections.h
--- v2.4.9/linux/include/asm-ppc/sections.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-ppc/sections.h Sat Sep 8 12:38:42 2001
@@ -0,0 +1,34 @@
+/*
+ * BK Id: SCCS/s.sections.h 1.11 09/08/01 15:47:43 paulus
+ */
+#ifdef __KERNEL__
+#ifndef _PPC_SECTIONS_H
+#define _PPC_SECTIONS_H
+
+#define __pmac __attribute__ ((__section__ (".text.pmac")))
+#define __pmacdata __attribute__ ((__section__ (".data.pmac")))
+#define __pmacfunc(__argpmac) \
+ __argpmac __pmac; \
+ __argpmac
+
+#define __prep __attribute__ ((__section__ (".text.prep")))
+#define __prepdata __attribute__ ((__section__ (".data.prep")))
+#define __prepfunc(__argprep) \
+ __argprep __prep; \
+ __argprep
+
+#define __chrp __attribute__ ((__section__ (".text.chrp")))
+#define __chrpdata __attribute__ ((__section__ (".data.chrp")))
+#define __chrpfunc(__argchrp) \
+ __argchrp __chrp; \
+ __argchrp
+
+/* this is actually just common chrp/pmac code, not OF code -- Cort */
+#define __openfirmware __attribute__ ((__section__ (".text.openfirmware")))
+#define __openfirmwaredata __attribute__ ((__section__ (".data.openfirmware")))
+#define __openfirmwarefunc(__argopenfirmware) \
+ __argopenfirmware __openfirmware; \
+ __argopenfirmware
+
+#endif /* _PPC_SECTIONS_H */
+#endif /* __KERNEL__ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/smp.h linux/include/asm-ppc/smp.h
--- v2.4.9/linux/include/asm-ppc/smp.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/smp.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.smp.h 1.9 05/17/01 18:14:25 cort
+ * BK Id: SCCS/s.smp.h 1.12 08/16/01 07:49:31 paulus
X */
X /* smp.h: PPC specific SMP stuff.
X *
@@ -32,12 +32,14 @@
X extern unsigned long cpu_online_map;
X extern unsigned long smp_proc_in_lock[NR_CPUS];
X extern volatile unsigned long cpu_callin_map[NR_CPUS];
+extern int smp_tb_synchronized;
X
X extern void smp_store_cpu_info(int id);
X extern void smp_send_tlb_invalidate(int);
X extern void smp_send_xmon_break(int cpu);
X struct pt_regs;
X extern void smp_message_recv(int, struct pt_regs *);
+extern void smp_local_timer_interrupt(struct pt_regs *);
X
X #define NO_PROC_ID 0xFF /* No processor magic marker */
X #define PROC_CHANGE_PENALTY 20
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/softirq.h linux/include/asm-ppc/softirq.h
--- v2.4.9/linux/include/asm-ppc/softirq.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-ppc/softirq.h Sat Sep 8 12:02:31 2001
@@ -28,8 +28,6 @@
X } \
X } while (0)
X
-#define __cpu_raise_softirq(cpu, nr) set_bit((nr), &softirq_pending(cpu));
-


X #define in_softirq() (local_bh_count(smp_processor_id()) != 0)

X
X #endif /* __ASM_SOFTIRQ_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/spinlock.h linux/include/asm-ppc/spinlock.h
--- v2.4.9/linux/include/asm-ppc/spinlock.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/spinlock.h Tue Aug 28 06:58:33 2001
@@ -1,33 +1,79 @@
X /*
- * BK Id: SCCS/s.spinlock.h 1.5 05/17/01 18:14:25 cort
+ * BK Id: SCCS/s.spinlock.h 1.9 08/21/01 16:07:48 trini
X */
-#ifdef __KERNEL__
X #ifndef __ASM_SPINLOCK_H
X #define __ASM_SPINLOCK_H
X
+#include <asm/system.h>
+
+#undef SPINLOCK_DEBUG
+
X /*
X * Simple spin lock operations.
X */
X
X typedef struct {
X volatile unsigned long lock;
+#ifdef SPINLOCK_DEBUG
X volatile unsigned long owner_pc;
X volatile unsigned long owner_cpu;
+#endif
X } spinlock_t;
X
-#define SPIN_LOCK_UNLOCKED (spinlock_t) { 0, 0, 0 }
-#define spin_lock_init(lp) do { (lp)->lock = 0; } while(0)
-#define spin_unlock_wait(lp) do { barrier(); } while((lp)->lock)
+#ifdef __KERNEL__
+#if SPINLOCK_DEBUG
+#define SPINLOCK_DEBUG_INIT , 0, 0
+#else
+#define SPINLOCK_DEBUG_INIT /* */
+#endif
+
+#define SPIN_LOCK_UNLOCKED (spinlock_t) { 0 SPINLOCK_DEBUG_INIT }
+
+#define spin_lock_init(x) do { *(x) = SPIN_LOCK_UNLOCKED; } while(0)
X #define spin_is_locked(x) ((x)->lock != 0)
+#define spin_unlock_wait(x) do { barrier(); } while(spin_is_locked(x))
+
+#ifndef SPINLOCK_DEBUG
+
+static inline void spin_lock(spinlock_t *lock)
+{
+ unsigned long tmp;
+
+ __asm__ __volatile__(
+ "b 1f # spin_lock\n\
+2: lwzx %0,0,%1\n\
+ cmpwi 0,%0,0\n\
+ bne+ 2b\n\
+1: lwarx %0,0,%1\n\
+ cmpwi 0,%0,0\n\
+ bne- 2b\n\
+ stwcx. %2,0,%1\n\
+ bne- 2b\n\
+ isync"
+ : "=&r"(tmp)
+ : "r"(&lock->lock), "r"(1)
+ : "cr0", "memory");
+}
+
+static inline void spin_unlock(spinlock_t *lock)
+{
+ __asm__ __volatile__("eieio # spin_unlock": : :"memory");
+ lock->lock = 0;
+}
+
+#define spin_trylock(lock) (!test_and_set_bit(0,(lock)))
+
+#else
X
X extern void _spin_lock(spinlock_t *lock);
X extern void _spin_unlock(spinlock_t *lock);
X extern int spin_trylock(spinlock_t *lock);
+extern unsigned long __spin_trylock(volatile unsigned long *lock);
X
X #define spin_lock(lp) _spin_lock(lp)
X #define spin_unlock(lp) _spin_unlock(lp)
X
-extern unsigned long __spin_trylock(volatile unsigned long *lock);
+#endif
X
X /*
X * Read-write spinlocks, allowing multiple readers
@@ -41,12 +87,85 @@
X */
X typedef struct {
X volatile unsigned long lock;
+#ifdef SPINLOCK_DEBUG
X volatile unsigned long owner_pc;
+#endif
X } rwlock_t;
X
-#define RW_LOCK_UNLOCKED (rwlock_t) { 0, 0 }
+#if SPINLOCK_DEBUG
+#define RWLOCK_DEBUG_INIT , 0
+#else
+#define RWLOCK_DEBUG_INIT /* */
+#endif
+
+#define RW_LOCK_UNLOCKED (rwlock_t) { 0 RWLOCK_DEBUG_INIT }
X #define rwlock_init(lp) do { *(lp) = RW_LOCK_UNLOCKED; } while(0)
X
+#ifndef SPINLOCK_DEBUG
+
+static __inline__ void read_lock(rwlock_t *rw)
+{
+ unsigned int tmp;
+
+ __asm__ __volatile__(
+ "b 2f # read_lock\n\
+1: lwzx %0,0,%1\n\
+ cmpwi 0,%0,0\n\
+ blt+ 1b\n\
+2: lwarx %0,0,%1\n\
+ addic. %0,%0,1\n\
+ ble- 1b\n\
+ stwcx. %0,0,%1\n\
+ bne- 2b\n\
+ isync"
+ : "=&r"(tmp)
+ : "r"(&rw->lock)
+ : "cr0", "memory");
+}
+
+static __inline__ void read_unlock(rwlock_t *rw)
+{
+ unsigned int tmp;
+
+ __asm__ __volatile__(
+ "eieio # read_unlock\n\
+1: lwarx %0,0,%1\n\


+ addic %0,%0,-1\n\
+ stwcx. %0,0,%1\n\
+ bne- 1b"

+ : "=&r"(tmp)
+ : "r"(&rw->lock)
+ : "cr0", "memory");
+}
+
+static __inline__ void write_lock(rwlock_t *rw)
+{
+ unsigned int tmp;
+
+ __asm__ __volatile__(
+ "b 2f # write_lock\n\
+1: lwzx %0,0,%1\n\
+ cmpwi 0,%0,0\n\
+ bne+ 1b\n\
+2: lwarx %0,0,%1\n\
+ cmpwi 0,%0,0\n\
+ bne- 1b\n\
+ stwcx. %2,0,%1\n\
+ bne- 2b\n\
+ isync"
+ : "=&r"(tmp)
+ : "r"(&rw->lock), "r"(-1)
+ : "cr0", "memory");
+}
+
+static __inline__ void write_unlock(rwlock_t *rw)
+{
+ __asm__ __volatile__("eieio # write_unlock": : :"memory");
+ rw->lock = 0;
+}
+
+#else
+
X extern void _read_lock(rwlock_t *rw);
X extern void _read_unlock(rwlock_t *rw);
X extern void _write_lock(rwlock_t *rw);
@@ -56,6 +175,8 @@
X #define write_lock(rw) _write_lock(rw)
X #define write_unlock(rw) _write_unlock(rw)
X #define read_unlock(rw) _read_unlock(rw)
+
+#endif
X
X #endif /* __ASM_SPINLOCK_H */
X #endif /* __KERNEL__ */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/system.h linux/include/asm-ppc/system.h
--- v2.4.9/linux/include/asm-ppc/system.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/system.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.system.h 1.10 05/17/01 18:14:26 cort
+ * BK Id: SCCS/s.system.h 1.14 08/20/01 14:34:41 paulus
X */
X /*
X * Copyright (C) 1999 Cort Dougan <co...@cs.nmt.edu>
@@ -55,9 +55,13 @@
X extern void flush_instruction_cache(void);
X extern void hard_reset_now(void);
X extern void poweroff_now(void);
-extern int _get_PVR(void);
+#ifdef CONFIG_6xx
X extern long _get_L2CR(void);
X extern void _set_L2CR(unsigned long);
+#else
+#define _get_L2CR() 0
+#define _set_L2CR(val) do { } while(0)
+#endif
X extern void via_cuda_init(void);
X extern void pmac_nvram_init(void);
X extern void read_rtc_time(void);
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/time.h linux/include/asm-ppc/time.h
--- v2.4.9/linux/include/asm-ppc/time.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-ppc/time.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.time.h 1.13 06/27/01 14:49:58 trini
+ * BK Id: SCCS/s.time.h 1.15 08/16/01 07:49:31 paulus
X */
X /*
X * Common time prototypes and such for all ppc machines.
@@ -74,6 +74,13 @@
X unsigned long tbl;
X asm volatile("mftbu %0" : "=r" (tbl));
X return tbl;
+}
+
+extern __inline__ void set_tb(unsigned int upper, unsigned int lower)
+{
+ mtspr(SPRN_TBWL, 0);
+ mtspr(SPRN_TBWU, upper);
+ mtspr(SPRN_TBWL, lower);
X }
X
X extern __inline__ unsigned long get_rtcl(void) {
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/timex.h linux/include/asm-ppc/timex.h
--- v2.4.9/linux/include/asm-ppc/timex.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/timex.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.timex.h 1.5 05/17/01 18:14:26 cort
+ * BK Id: SCCS/s.timex.h 1.8 08/15/01 22:43:07 paulus
X */
X /*
X * linux/include/asm-ppc/timex.h
@@ -11,6 +11,7 @@
X #define _ASMppc_TIMEX_H
X
X #include <linux/config.h>
+#include <asm/cputable.h>
X
X #define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
X #define CLOCK_TICK_FACTOR 20 /* Factor of both 1000000 and CLOCK_TICK_RATE */
@@ -23,23 +24,25 @@
X /*
X * For the "cycle" counter we use the timebase lower half.
X * Currently only used on SMP.
- *
- * Since SMP kernels won't run on the PPC601 CPU (which doesn't have
- * the timebase register) anyway, we don't bother checking the CPU version.
X */
X
X extern cycles_t cacheflush_time;
X
X static inline cycles_t get_cycles(void)
X {
-#ifdef CONFIG_SMP
- cycles_t ret;
+ cycles_t ret = 0;
X
- __asm__("mftb %0" : "=r" (ret) : );
+ __asm__ __volatile__(
+ "98: mftb %0\n"
+ "99:\n"
+ ".section __ftr_fixup,\"a\"\n"
+ " .long %1\n"
+ " .long 0\n"
+ " .long 98b\n"
+ " .long 99b\n"
+ ".previous"
+ : "=r" (ret) : "i" (CPU_FTR_601));
X return ret;
-#else
- return 0;
-#endif
X }
X
X #endif
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/tqm8xx.h linux/include/asm-ppc/tqm8xx.h
--- v2.4.9/linux/include/asm-ppc/tqm8xx.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/tqm8xx.h Sat Sep 8 12:39:33 2001
@@ -1,81 +1,54 @@
X /*
- * BK Id: SCCS/s.tqm8xx.h 1.6 05/17/01 18:14:26 cort
+ * BK Id: SCCS/s.tqm8xx.h 1.8 08/30/01 09:01:04 trini
X */
X /*
- * A collection of structures, addresses, and values associated with
- * the TQ Systems TQM8xx(L) modules. This was originally created for the
- * MBX860, and probably needs revisions for other boards (like the 821).
- * When this file gets out of control, we can split it up into more
- * meaningful pieces.
- *
- * Based on mbx.h, Copyright (c) 1997 Dan Malek (dma...@jlc.net)
- *
- * Copyright (c) 1999,2000 Wolfgang Denk (w...@denx.de)
+ * TQM8xx(L) board specific definitions
+ *
+ * Copyright (c) 1999,2000,2001 Wolfgang Denk (w...@denx.de)
X */
-#ifndef __MACH_TQM8xx_DEFS
-#define __MACH_TQM8xx_DEFS
X
-#include <linux/config.h>
+#ifndef __MACH_TQM8xx_H
+#define __MACH_TQM8xx_H
X
-#ifndef __ASSEMBLY__
+#include <linux/config.h>
+
+#include <asm/ppcboot.h>
X
-typedef void (interrupt_handler_t)(void *);
+#define TQM_IMMR_BASE 0xFFF00000 /* phys. addr of IMMR */
+#define TQM_IMAP_SIZE (64 * 1024) /* size of mapped area */
X
-typedef struct serial_io {
- int (*getc)(void);
- int (*tstc)(void);
- void (*putc)(const char c);
- void (*printf)(const char *fmt, ...);
-} serial_io_t;
+#define IMAP_ADDR TQM_IMMR_BASE /* physical base address of IMMR area */
+#define IMAP_SIZE TQM_IMAP_SIZE /* mapped size of IMMR area */
X
-typedef struct intr_util {
- void (*install_hdlr)(int, interrupt_handler_t *, void *);
- void (*free_hdlr)(int);
-} intr_util_t;
+/*-----------------------------------------------------------------------
+ * PCMCIA stuff
+ *-----------------------------------------------------------------------
+ *
+ */
+#define PCMCIA_MEM_SIZE ( 64 << 20 )
X
+#define MAX_HWIFS 1 /* overwrite default in include/asm-ppc/ide.h */
X
-/* A Board Information structure that is given to a program when
- * ppcboot starts it up.
+/*
+ * Definitions for IDE0 Interface
X */
-typedef struct bd_info {
- unsigned long bi_memstart; /* start of DRAM memory */
- unsigned long bi_memsize; /* size of DRAM memory in bytes */
- unsigned long bi_flashstart; /* start of FLASH memory */
- unsigned long bi_flashsize; /* size of FLASH memory */
- unsigned long bi_flashoffset; /* reserved area for startup monitor */
- unsigned long bi_sramstart; /* start of SRAM memory */
- unsigned long bi_sramsize; /* size of SRAM memory */
- unsigned long bi_immr_base; /* base of IMMR register */
- unsigned long bi_bootflags; /* boot / reboot flag (for LynxOS) */
- unsigned long bi_ip_addr; /* IP Address */
- unsigned char bi_enetaddr[6]; /* Ethernet adress */
- unsigned char bi_reserved[2]; /* -- just for alignment -- */
- unsigned long bi_intfreq; /* Internal Freq, in MHz */
- unsigned long bi_busfreq; /* Bus Freq, in MHz */
- unsigned long bi_baudrate; /* Console Baudrate */
- serial_io_t bi_serial_io; /* Addr of monitor fnc for Console I/O */
- intr_util_t bi_interrupt; /* Addr of monitor fnc for Interrupts */
-} bd_t;
-
-#endif /* __ASSEMBLY__ */
+#define IDE0_BASE_OFFSET 0
+#define IDE0_DATA_REG_OFFSET (PCMCIA_MEM_SIZE + 0x320)
+#define IDE0_ERROR_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 1)
+#define IDE0_NSECTOR_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 2)
+#define IDE0_SECTOR_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 3)
+#define IDE0_LCYL_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 4)
+#define IDE0_HCYL_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 5)
+#define IDE0_SELECT_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 6)
+#define IDE0_STATUS_REG_OFFSET (2 * PCMCIA_MEM_SIZE + 0x320 + 7)
+#define IDE0_CONTROL_REG_OFFSET 0x0106
+#define IDE0_IRQ_REG_OFFSET 0x000A /* not used */
X
-#define TQM_IMMR_BASE 0xFFF00000 /* phys. addr of IMMR */
-#define TQM_IMAP_SIZE (64 * 1024) /* size of mapped area */
+#define IDE0_INTERRUPT 13
X
-#define IMAP_ADDR TQM_IMMR_BASE /* physical base address of IMMR area */
-#define IMAP_SIZE TQM_IMAP_SIZE /* mapped size of IMMR area */
X

X /* We don't use the 8259.
X */
X #define NR_8259_INTS 0

X
-/* Generic 8xx type
-*/
-#if defined(CONFIG_TQM8xxL)
-#define _MACH_8xx (_MACH_tqm8xxL)
-#endif
-#if defined(CONFIG_TQM860)
-#define _MACH_8xx (_MACH_tqm860)
-#endif
-
-#endif /* __MACH_TQM8xx_DEFS */
+#endif /* __MACH_TQM8xx_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/uaccess.h linux/include/asm-ppc/uaccess.h
--- v2.4.9/linux/include/asm-ppc/uaccess.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/uaccess.h Tue Sep 11 17:03:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.uaccess.h 1.5 05/17/01 18:14:26 cort
+ * BK Id: SCCS/s.uaccess.h 1.8 09/11/01 18:10:06 paulus
X */
X #ifdef __KERNEL__
X #ifndef _PPC_UACCESS_H
@@ -116,6 +116,7 @@
X case 1: __put_user_asm(x,ptr,retval,"stb"); break; \
X case 2: __put_user_asm(x,ptr,retval,"sth"); break; \
X case 4: __put_user_asm(x,ptr,retval,"stw"); break; \
+ case 8: __put_user_asm2(x,ptr,retval); break; \
X default: __put_user_bad(); \
X } \
X } while (0)
@@ -143,6 +144,22 @@
X : "=r"(err) \
X : "r"(x), "b"(addr), "i"(-EFAULT), "0"(err))
X
+#define __put_user_asm2(x, addr, err) \
+ __asm__ __volatile__( \
+ "1: stw %1,0(%2)\n" \
+ "2: stw %1+1,4(%2)\n" \
+ "3:\n" \
+ ".section .fixup,\"ax\"\n" \
+ "4: li %0,%3\n" \
+ " b 3b\n" \
+ ".previous\n" \
+ ".section __ex_table,\"a\"\n" \
+ " .align 2\n" \
+ " .long 1b,4b\n" \
+ " .long 2b,4b\n" \
+ ".previous" \
+ : "=r"(err) \
+ : "r"(x), "b"(addr), "i"(-EFAULT), "0"(err))
X
X #define __get_user_nocheck(x,ptr,size) \
X ({ \
@@ -171,6 +188,7 @@
X case 1: __get_user_asm(x,ptr,retval,"lbz"); break; \
X case 2: __get_user_asm(x,ptr,retval,"lhz"); break; \
X case 4: __get_user_asm(x,ptr,retval,"lwz"); break; \
+ case 8: __get_user_asm2(x, ptr, retval); \
X default: (x) = __get_user_bad(); \
X } \
X } while (0)
@@ -189,6 +207,25 @@
X " .long 1b,3b\n" \
X ".previous" \
X : "=r"(err), "=r"(x) \
+ : "b"(addr), "i"(-EFAULT), "0"(err))
+
+#define __get_user_asm2(x, addr, err) \
+ __asm__ __volatile__( \
+ "1: lwz %1,0(%2)\n" \
+ "2: lwz %1+1,4(%2)\n" \
+ "3:\n" \
+ ".section .fixup,\"ax\"\n" \
+ "4: li %0,%3\n" \
+ " li %1,0\n" \
+ " li %1+1,0\n" \
+ " b 3b\n" \
+ ".previous\n" \
+ ".section __ex_table,\"a\"\n" \
+ " .align 2\n" \
+ " .long 1b,4b\n" \
+ " .long 2b,4b\n" \
+ ".previous" \
+ : "=r"(err), "=&r"(x) \
X : "b"(addr), "i"(-EFAULT), "0"(err))
X
X /* more complex routines */
diff -u --recursive --new-file v2.4.9/linux/include/asm-ppc/uninorth.h linux/include/asm-ppc/uninorth.h
--- v2.4.9/linux/include/asm-ppc/uninorth.h Mon May 21 15:02:06 2001
+++ linux/include/asm-ppc/uninorth.h Tue Aug 28 06:58:33 2001


@@ -1,5 +1,5 @@
X /*

- * BK Id: SCCS/s.uninorth.h 1.7 05/17/01 18:14:26 cort
+ * BK Id: SCCS/s.uninorth.h 1.11 08/19/01 22:23:04 paulus
X */
X /*
X * uninorth.h: definitions for using the "UniNorth" host bridge chip
@@ -31,6 +31,52 @@
X #define UNI_N_CFG_GART_ENABLE 0x00000100
X #define UNI_N_CFG_GART_2xRESET 0x00010000
X
+/* My understanding of UniNorth AGP as of UniNorth rev 1.0x,
+ * revision 1.5 (x4 AGP) may need further changes.
+ *
+ * AGP_BASE register contains the base address of the AGP aperture on
+ * the AGP bus. It doesn't seem to be visible to the CPU as of UniNorth 1.x,
+ * even if decoding of this address range is enabled in the address select
+ * register. Apparently, the only supported bases are 256Mb multiples
+ * (high 4 bits of that register).
+ *
+ * GART_BASE register appear to contain the physical address of the GART
+ * in system memory in the high address bits (page aligned), and the
+ * GART size in the low order bits (number of GART pages)
+ *
+ * The GART format itself is one 32bits word per physical memory page.
+ * This word contains, in little-endian format (!!!), the physical address
+ * of the page in the high bits, and what appears to be an "enable" bit
+ * in the LSB bit (0) that must be set to 1 when the entry is valid.
+ *
+ * Obviously, the GART is not cache coherent and so any change to it
+ * must be flushed to memory (or maybe just make the GART space non
+ * cachable). AGP memory itself doens't seem to be cache coherent neither.
+ *
+ * In order to invalidate the GART (which is probably necessary to inval
+ * the bridge internal TLBs), the following sequence has to be written,
+ * in order, to the GART_CTRL register:
+ *
+ * UNI_N_CFG_GART_ENABLE | UNI_N_CFG_GART_INVAL
+ * UNI_N_CFG_GART_ENABLE
+ * UNI_N_CFG_GART_ENABLE | UNI_N_CFG_GART_2xRESET
+ * UNI_N_CFG_GART_ENABLE
+ *
+ * As far as AGP "features" are concerned, it looks like fast write may
+ * not be supported but this has to be confirmed.
+ *
+ * Turning on AGP seem to require a double invalidate operation, one before
+ * setting the AGP command register, on after.
+ *
+ * Turning off AGP seems to require the following sequence: first wait
+ * for the AGP to be idle by reading the internal status register, then
+ * write in that order to the GART_CTRL register:
+ *
+ * UNI_N_CFG_GART_ENABLE | UNI_N_CFG_GART_INVAL
+ * 0
+ * UNI_N_CFG_GART_2xRESET
+ * 0
+ */
X
X /*
X * Uni-N memory mapped reg. definitions
diff -u --recursive --new-file v2.4.9/linux/include/asm-s390/module.h linux/include/asm-s390/module.h
--- v2.4.9/linux/include/asm-s390/module.h Tue Nov 7 10:46:04 2000
+++ linux/include/asm-s390/module.h Thu Sep 13 16:33:03 2001
@@ -7,5 +7,6 @@
X #define module_map(x) vmalloc(x)
X #define module_unmap(x) vfree(x)
X #define module_arch_init(x) (0)
+#define arch_init_modules(x) do { } while (0)
X
X #endif /* _ASM_S390_MODULE_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-s390/processor.h linux/include/asm-s390/processor.h
--- v2.4.9/linux/include/asm-s390/processor.h Sun Aug 12 13:28:00 2001
+++ linux/include/asm-s390/processor.h Mon Sep 17 15:30:14 2001
@@ -95,10 +95,6 @@
X
X typedef struct thread_struct thread_struct;
X
-#define INIT_MMAP \
-{ &init_mm, 0, 0, NULL, PAGE_SHARED, \
-VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }
-
X #define INIT_THREAD { (struct pt_regs *) 0, \
X { 0,{{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}, \
X {0},{0},{0},{0},{0},{0}}}, \
diff -u --recursive --new-file v2.4.9/linux/include/asm-s390/softirq.h linux/include/asm-s390/softirq.h
--- v2.4.9/linux/include/asm-s390/softirq.h Mon Aug 27 12:41:48 2001
+++ linux/include/asm-s390/softirq.h Sat Sep 8 12:02:31 2001
@@ -36,8 +36,6 @@
X do_softirq(); \
X } while (0)
X
-#define __cpu_raise_softirq(cpu, nr) (softirq_pending(cpu) |= (1<<nr))
-
X #endif /* __ASM_SOFTIRQ_H */
X
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-s390/tlb.h linux/include/asm-s390/tlb.h
--- v2.4.9/linux/include/asm-s390/tlb.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-s390/tlb.h Fri Sep 14 08:41:04 2001


@@ -0,0 +1 @@
+#include <asm-generic/tlb.h>

diff -u --recursive --new-file v2.4.9/linux/include/asm-s390x/module.h linux/include/asm-s390x/module.h
--- v2.4.9/linux/include/asm-s390x/module.h Tue Feb 13 14:13:44 2001
+++ linux/include/asm-s390x/module.h Thu Sep 13 16:33:03 2001
@@ -7,5 +7,6 @@
X #define module_map(x) vmalloc(x)
X #define module_unmap(x) vfree(x)
X #define module_arch_init(x) (0)
+#define arch_init_modules(x) do { } while (0)
X
X #endif /* _ASM_S390_MODULE_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-s390x/processor.h linux/include/asm-s390x/processor.h
--- v2.4.9/linux/include/asm-s390x/processor.h Sun Aug 12 13:28:01 2001
+++ linux/include/asm-s390x/processor.h Mon Sep 17 15:30:15 2001
@@ -99,10 +99,6 @@
X
X typedef struct thread_struct thread_struct;
X
-#define INIT_MMAP \
-{ &init_mm, 0, 0, NULL, PAGE_SHARED, \


-VM_READ | VM_WRITE | VM_EXEC, 1, NULL,NULL }
-

X #define INIT_THREAD { (struct pt_regs *) 0, \
X { 0,{{0},{0},{0},{0},{0},{0},{0},{0},{0},{0}, \
X {0},{0},{0},{0},{0},{0}}}, \
diff -u --recursive --new-file v2.4.9/linux/include/asm-s390x/softirq.h linux/include/asm-s390x/softirq.h
--- v2.4.9/linux/include/asm-s390x/softirq.h Mon Aug 27 12:41:48 2001
+++ linux/include/asm-s390x/softirq.h Sat Sep 8 12:02:32 2001
@@ -36,8 +36,6 @@
X do_softirq(); \
X } while (0)
X
-#define __cpu_raise_softirq(cpu, nr) (softirq_pending(cpu) |= (1<<nr))
-
X #endif /* __ASM_SOFTIRQ_H */
X
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-s390x/tlb.h linux/include/asm-s390x/tlb.h
--- v2.4.9/linux/include/asm-s390x/tlb.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-s390x/tlb.h Fri Sep 14 08:41:04 2001


@@ -0,0 +1 @@
+#include <asm-generic/tlb.h>

diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/atomic.h linux/include/asm-sh/atomic.h
--- v2.4.9/linux/include/asm-sh/atomic.h Tue Oct 3 09:24:40 2000
+++ linux/include/asm-sh/atomic.h Sat Sep 8 12:29:09 2001
@@ -93,4 +93,10 @@
X restore_flags(flags);
X }
X
+/* Atomic operations are already serializing on SH */
+#define smp_mb__before_atomic_dec() barrier()
+#define smp_mb__after_atomic_dec() barrier()
+#define smp_mb__before_atomic_inc() barrier()
+#define smp_mb__after_atomic_inc() barrier()
+
X #endif /* __ASM_SH_ATOMIC_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/cache.h linux/include/asm-sh/cache.h
--- v2.4.9/linux/include/asm-sh/cache.h Sat May 20 12:05:30 2000
+++ linux/include/asm-sh/cache.h Sat Sep 8 12:29:09 2001
@@ -1,4 +1,4 @@
-/* $Id: cache.h,v 1.3 1999/12/11 12:31:51 gniibe Exp $
+/* $Id: cache.h,v 1.3 2000/07/04 06:24:49 gniibe Exp $
X *
X * include/asm-sh/cache.h
X *
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/checksum.h linux/include/asm-sh/checksum.h
--- v2.4.9/linux/include/asm-sh/checksum.h Mon Oct 2 11:57:34 2000
+++ linux/include/asm-sh/checksum.h Sat Sep 8 12:29:09 2001
@@ -43,14 +43,14 @@
X * If you use these functions directly please don't forget the
X * verify_area().
X */
-extern __inline__
+static __inline__
X unsigned int csum_partial_copy_nocheck ( const char *src, char *dst,
X int len, int sum)
X {
X return csum_partial_copy_generic ( src, dst, len, sum, NULL, NULL);
X }
X
-extern __inline__
+static __inline__
X unsigned int csum_partial_copy_from_user ( const char *src, char *dst,
X int len, int sum, int *err_ptr)
X {
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/dma.h linux/include/asm-sh/dma.h
--- v2.4.9/linux/include/asm-sh/dma.h Thu Aug 10 13:03:25 2000
+++ linux/include/asm-sh/dma.h Sat Sep 8 12:29:09 2001
@@ -5,6 +5,7 @@
X #include <asm/io.h> /* need byte IO */
X
X #define MAX_DMA_CHANNELS 8
+#define SH_MAX_DMA_CHANNELS 4
X
X /* The maximum address that we can perform a DMA transfer to on this platform */
X /* Don't define MAX_DMA_ADDRESS; it's useless on the SuperH and any
@@ -13,8 +14,78 @@
X /* XXX: This is not applicable to SuperH, just needed for alloc_bootmem */
X #define MAX_DMA_ADDRESS (PAGE_OFFSET+0x10000000)
X
-extern int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */
-extern void free_dma(unsigned int dmanr); /* release it again */
+#if defined(__sh3__)
+#define SAR ((unsigned long[]){0xa4000020,0xa4000030,0xa4000040,0xa4000050})
+#define DAR ((unsigned long[]){0xa4000024,0xa4000034,0xa4000044,0xa4000054})
+#define DMATCR ((unsigned long[]){0xa4000028,0xa4000038,0xa4000048,0xa4000058})
+#define CHCR ((unsigned long[]){0xa400002c,0xa400003c,0xa400004c,0xa400005c})
+#define DMAOR 0xa4000060UL
+#elif defined(__SH4__)
+#define SAR ((unsigned long[]){0xbfa00000,0xbfa00010,0xbfa00020,0xbfa00030})
+#define DAR ((unsigned long[]){0xbfa00004,0xbfa00014,0xbfa00024,0xbfa00034})
+#define DMATCR ((unsigned long[]){0xbfa00008,0xbfa00018,0xbfa00028,0xbfa00038})
+#define CHCR ((unsigned long[]){0xbfa0000c,0xbfa0001c,0xbfa0002c,0xbfa0003c})
+#define DMAOR 0xbfa00040UL
+#endif
+
+#define DMTE_IRQ ((int[]){DMTE0_IRQ,DMTE1_IRQ,DMTE2_IRQ,DMTE3_IRQ})
+
+#define DMA_MODE_READ 0x00 /* I/O to memory, no autoinit, increment, single mode */
+#define DMA_MODE_WRITE 0x01 /* memory to I/O, no autoinit, increment, single mode */
+#define DMA_AUTOINIT 0x10
+
+#define REQ_L 0x00000000
+#define REQ_E 0x00080000
+#define RACK_H 0x00000000
+#define RACK_L 0x00040000
+#define ACK_R 0x00000000
+#define ACK_W 0x00020000
+#define ACK_H 0x00000000
+#define ACK_L 0x00010000
+#define DM_INC 0x00004000
+#define DM_DEC 0x00008000
+#define SM_INC 0x00001000
+#define SM_DEC 0x00002000
+#define RS_DUAL 0x00000000
+#define RS_IN 0x00000200
+#define RS_OUT 0x00000300
+#define TM_BURST 0x0000080
+#define TS_8 0x00000010
+#define TS_16 0x00000020
+#define TS_32 0x00000030
+#define TS_64 0x00000000
+#define TS_BLK 0x00000040
+#define CHCR_DE 0x00000001
+#define CHCR_TE 0x00000002
+#define CHCR_IE 0x00000004
+
+#define DMAOR_COD 0x00000008
+#define DMAOR_AE 0x00000004
+#define DMAOR_NMIF 0x00000002
+#define DMAOR_DME 0x00000001
+
+struct dma_info_t {
+ unsigned int chan;
+ unsigned int mode_read;
+ unsigned int mode_write;
+ unsigned long dev_addr;
+ unsigned int mode;
+ unsigned long mem_addr;
+ unsigned int count;
+};
+
+static __inline__ void clear_dma_ff(unsigned int dmanr){}
+
+/* These are in arch/sh/kernel/dma.c: */
+extern unsigned long claim_dma_lock(void);
+extern void release_dma_lock(unsigned long flags);
+extern void setup_dma(unsigned int dmanr, struct dma_info_t *info);
+extern void enable_dma(unsigned int dmanr);
+extern void disable_dma(unsigned int dmanr);
+extern void set_dma_mode(unsigned int dmanr, char mode);
+extern void set_dma_addr(unsigned int dmanr, unsigned int a);
+extern void set_dma_count(unsigned int dmanr, unsigned int count);
+extern int get_dma_residue(unsigned int dmanr);
X
X #ifdef CONFIG_PCI
X extern int isa_dma_bridge_buggy;
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/elf.h linux/include/asm-sh/elf.h
--- v2.4.9/linux/include/asm-sh/elf.h Tue Jul 11 15:43:45 2000
+++ linux/include/asm-sh/elf.h Sat Sep 8 12:29:09 2001
@@ -7,7 +7,6 @@
X
X #include <asm/ptrace.h>
X #include <asm/user.h>
-#include <asm/byteorder.h>
X
X typedef unsigned long elf_greg_t;
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/hardirq.h linux/include/asm-sh/hardirq.h
--- v2.4.9/linux/include/asm-sh/hardirq.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/hardirq.h Sat Sep 8 12:29:09 2001
@@ -10,6 +10,7 @@
X unsigned int __local_irq_count;
X unsigned int __local_bh_count;
X unsigned int __syscall_count;
+ struct task_struct * __ksoftirqd_task;
X } ____cacheline_aligned irq_cpustat_t;
X
X #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/hd64461.h linux/include/asm-sh/hd64461.h
--- v2.4.9/linux/include/asm-sh/hd64461.h Wed Apr 11 21:24:52 2001
+++ linux/include/asm-sh/hd64461.h Sat Sep 8 12:29:09 2001
@@ -1,7 +1,7 @@
X #ifndef __ASM_SH_HD64461
X #define __ASM_SH_HD64461
X /*
- * $Id: hd64461.h,v 1.1 2000/06/10 21:45:48 yaegashi Exp $
+ * $Id: hd64461.h,v 1.7 2001/07/07 11:43:58 yaegashi Exp $
X * Copyright (C) 2000 YAEGASHI Takeshi
X * Hitachi HD64461 companion chip support
X */
@@ -70,5 +70,6 @@
X #endif
X
X #define HD64461_IRQBASE OFFCHIP_IRQ_BASE
+#define HD64461_IRQ_NUM 16
X
X #endif
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/hitachi_7751se.h linux/include/asm-sh/hitachi_7751se.h
--- v2.4.9/linux/include/asm-sh/hitachi_7751se.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-sh/hitachi_7751se.h Sat Sep 8 12:29:09 2001
@@ -0,0 +1,68 @@
+#ifndef __ASM_SH_HITACHI_7751SE_H
+#define __ASM_SH_HITACHI_7751SE_H
+
+/*
+ * linux/include/asm-sh/hitachi_7751se.h
+ *
+ * Copyright (C) 2000 Kazumoto Kojima
+ *
+ * Hitachi SolutionEngine support
+
+ * Modified for 7751 Solution Engine by
+ * Ian da Silva and Jeremy Siegel, 2001.
+ */
+
+/* Box specific addresses. */
+
+#define PA_ROM 0x00000000 /* EPROM */
+#define PA_ROM_SIZE 0x00400000 /* EPROM size 4M byte */
+#define PA_FROM 0x01000000 /* EPROM */
+#define PA_FROM_SIZE 0x00400000 /* EPROM size 4M byte */
+#define PA_EXT1 0x04000000
+#define PA_EXT1_SIZE 0x04000000
+#define PA_EXT2 0x08000000
+#define PA_EXT2_SIZE 0x04000000
+#define PA_SDRAM 0x0c000000
+#define PA_SDRAM_SIZE 0x04000000
+
+#define PA_EXT4 0x12000000
+#define PA_EXT4_SIZE 0x02000000
+#define PA_EXT5 0x14000000
+#define PA_EXT5_SIZE 0x04000000
+#define PA_PCIC 0x18000000 /* MR-SHPC-01 PCMCIA */
+
+#define PA_DIPSW0 0xb9000000 /* Dip switch 5,6 */
+#define PA_DIPSW1 0xb9000002 /* Dip switch 7,8 */
+#define PA_LED 0xba000000 /* LED */
+#define PA_BCR 0xbb000000 /* FPGA on the MS7751SE01 */
+
+#define PA_MRSHPC 0xb83fffe0 /* MR-SHPC-01 PCMCIA controler */
+#define PA_MRSHPC_MW1 0xb8400000 /* MR-SHPC-01 memory window base */
+#define PA_MRSHPC_MW2 0xb8500000 /* MR-SHPC-01 attribute window base */
+#define PA_MRSHPC_IO 0xb8600000 /* MR-SHPC-01 I/O window base */
+#define MRSHPC_MODE (PA_MRSHPC + 4)
+#define MRSHPC_OPTION (PA_MRSHPC + 6)
+#define MRSHPC_CSR (PA_MRSHPC + 8)
+#define MRSHPC_ISR (PA_MRSHPC + 10)
+#define MRSHPC_ICR (PA_MRSHPC + 12)
+#define MRSHPC_CPWCR (PA_MRSHPC + 14)
+#define MRSHPC_MW0CR1 (PA_MRSHPC + 16)
+#define MRSHPC_MW1CR1 (PA_MRSHPC + 18)
+#define MRSHPC_IOWCR1 (PA_MRSHPC + 20)
+#define MRSHPC_MW0CR2 (PA_MRSHPC + 22)
+#define MRSHPC_MW1CR2 (PA_MRSHPC + 24)
+#define MRSHPC_IOWCR2 (PA_MRSHPC + 26)
+#define MRSHPC_CDCR (PA_MRSHPC + 28)
+#define MRSHPC_PCIC_INFO (PA_MRSHPC + 30)
+
+#define BCR_ILCRA (PA_BCR + 0)
+#define BCR_ILCRB (PA_BCR + 2)
+#define BCR_ILCRC (PA_BCR + 4)
+#define BCR_ILCRD (PA_BCR + 6)
+#define BCR_ILCRE (PA_BCR + 8)
+#define BCR_ILCRF (PA_BCR + 10)
+#define BCR_ILCRG (PA_BCR + 12)
+
+#define IRQ_79C973 13
+
+#endif /* __ASM_SH_HITACHI_7751SE_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/ide.h linux/include/asm-sh/ide.h
--- v2.4.9/linux/include/asm-sh/ide.h Wed Apr 11 21:24:52 2001
+++ linux/include/asm-sh/ide.h Sat Sep 8 12:29:09 2001
@@ -27,8 +27,8 @@
X static __inline__ int ide_default_irq_hp600(ide_ioreg_t base)
X {
X switch (base) {
- case 0x01f0: return 77;
- case 0x0170: return 78;
+ case 0x01f0: return 93;
+ case 0x0170: return 94;
X default:
X return 0;
X }
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/io.h linux/include/asm-sh/io.h
--- v2.4.9/linux/include/asm-sh/io.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/io.h Sat Sep 8 12:29:09 2001
@@ -21,7 +21,7 @@
X * __inb expands to an inline function call (which either calls via the
X * mach_vec if generic, or a machine specific implementation)
X * _inb is a real function call (note ___raw fns are _ version of __raw)
- * inb by default expands to _inb, but the machine specif code may
+ * inb by default expands to _inb, but the machine specific code may
X * define it to __inb if it chooses.
X */
X
@@ -109,7 +109,7 @@
X
X # if defined(CONFIG_SH_HP600)
X # include <asm/io_hd64461.h>
-# elif (defined(CONFIG_SH_SOLUTION_ENGINE) || defined(CONFIG_SH_7751_SOLUTION_ENGINE))
+# elif defined(CONFIG_SH_SOLUTION_ENGINE)
X # include <asm/io_se.h>
X # elif defined(CONFIG_SH_SH2000)
X # include <asm/io_sh2000.h>
@@ -125,6 +125,10 @@
X # include <asm/io_cat68701.h>
X # elif defined(CONFIG_SH_BIGSUR)
X # include <asm/io_bigsur.h>
+# elif defined(CONFIG_SH_7751_SOLUTION_ENGINE)
+# include <asm/io_7751se.h>
+# elif defined(CONFIG_SH_ADX)
+# include <asm/io_adx.h>
X # elif defined(CONFIG_SH_UNKNOWN)
X # include <asm/io_unknown.h>
X # else
@@ -327,7 +331,7 @@
X * If the platform has PC-like I/O, this function converts the offset into
X * an address.
X */
-extern __inline__ unsigned long isa_port2addr(unsigned long offset)
+static __inline__ unsigned long isa_port2addr(unsigned long offset)
X {
X return __isa_port2addr(offset);
X }
@@ -351,32 +355,32 @@
X extern void memset_io(unsigned long, int, unsigned long);
X
X /* SuperH on-chip I/O functions */
-extern __inline__ unsigned char ctrl_inb(unsigned long addr)
+static __inline__ unsigned char ctrl_inb(unsigned long addr)
X {
X return *(volatile unsigned char*)addr;
X }
X
-extern __inline__ unsigned short ctrl_inw(unsigned long addr)
+static __inline__ unsigned short ctrl_inw(unsigned long addr)
X {
X return *(volatile unsigned short*)addr;
X }
X
-extern __inline__ unsigned int ctrl_inl(unsigned long addr)
+static __inline__ unsigned int ctrl_inl(unsigned long addr)
X {
X return *(volatile unsigned long*)addr;
X }
X
-extern __inline__ void ctrl_outb(unsigned char b, unsigned long addr)
+static __inline__ void ctrl_outb(unsigned char b, unsigned long addr)
X {
X *(volatile unsigned char*)addr = b;
X }
X
-extern __inline__ void ctrl_outw(unsigned short b, unsigned long addr)
+static __inline__ void ctrl_outw(unsigned short b, unsigned long addr)
X {
X *(volatile unsigned short*)addr = b;
X }
X
-extern __inline__ void ctrl_outl(unsigned int b, unsigned long addr)
+static __inline__ void ctrl_outl(unsigned int b, unsigned long addr)
X {
X *(volatile unsigned long*)addr = b;
X }
@@ -389,18 +393,19 @@
X * Change virtual addresses to physical addresses and vv.
X * These are trivial on the 1:1 Linux/SuperH mapping
X */
-extern __inline__ unsigned long virt_to_phys(volatile void * address)
+static __inline__ unsigned long virt_to_phys(volatile void * address)
X {
X return PHYSADDR(address);
X }
X
-extern __inline__ void * phys_to_virt(unsigned long address)
+static __inline__ void * phys_to_virt(unsigned long address)
X {
X return (void *)P1SEGADDR(address);
X }
X
X #define virt_to_bus virt_to_phys
X #define bus_to_virt phys_to_virt
+#define page_to_bus page_to_phys
X
X /*
X * readX/writeX() are used to access memory mapped devices. On some
@@ -463,11 +468,11 @@
X */
X
X #define dma_cache_wback_inv(_start,_size) \


SHAR_EOF
true || echo 'restore of patch-2.4.10 failed'
fi

echo 'End of part 182'
echo 'File patch-2.4.10 is continued in part 183'
echo "183" > _shar_seq_.tmp
exit 0

Thomas Kobienia

unread,
Sep 24, 2001, 8:00:46 PM9/24/01
to
Archive-name: v2.4/patch-2.4.10/part183

#!/bin/sh -x
# this is part 183 of a 197 - part archive


# do not concatenate these parts, unpack them in order with /bin/sh
# file patch-2.4.10 continued
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck

if test "$Scheck" != 183; then


echo "Please unpack part $Scheck next!"
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping patch-2.4.10'
else
echo 'x - continuing with patch-2.4.10'
sed 's/^X//' << 'SHAR_EOF' >> 'patch-2.4.10' &&

- cache_flush_area((unsigned long)(_start),((unsigned long)(_start)+(_size)))
+ __flush_purge_region(_start,_size)
X #define dma_cache_inv(_start,_size) \
- cache_purge_area((unsigned long)(_start),((unsigned long)(_start)+(_size)))
+ __flush_invalidate_region(_start,_size)
X #define dma_cache_wback(_start,_size) \
- cache_wback_area((unsigned long)(_start),((unsigned long)(_start)+(_size)))
+ __flush_wback_region(_start,_size)


X
X #endif /* __KERNEL__ */

X #endif /* __ASM_SH_IO_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/io_7751se.h linux/include/asm-sh/io_7751se.h
--- v2.4.9/linux/include/asm-sh/io_7751se.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-sh/io_7751se.h Sat Sep 8 12:29:09 2001
@@ -0,0 +1,80 @@
+/*
+ * include/asm-sh/io_7751se.h
+ *
+ * Modified version of io_se.h for the 7751se-specific functions.
+ *
+ * May be copied or modified under the terms of the GNU General Public
+ * License. See linux/COPYING for more information.
+ *
+ * IO functions for an Hitachi SolutionEngine
+ */
+
+#ifndef _ASM_SH_IO_7751SE_H
+#define _ASM_SH_IO_7751SE_H
+
+#include <asm/io_generic.h>
+
+extern unsigned char sh7751se_inb(unsigned long port);
+extern unsigned short sh7751se_inw(unsigned long port);
+extern unsigned int sh7751se_inl(unsigned long port);
+
+extern void sh7751se_outb(unsigned char value, unsigned long port);
+extern void sh7751se_outw(unsigned short value, unsigned long port);
+extern void sh7751se_outl(unsigned int value, unsigned long port);
+
+extern unsigned char sh7751se_inb_p(unsigned long port);
+extern void sh7751se_outb_p(unsigned char value, unsigned long port);
+
+extern void sh7751se_insb(unsigned long port, void *addr, unsigned long count);
+extern void sh7751se_insw(unsigned long port, void *addr, unsigned long count);
+extern void sh7751se_insl(unsigned long port, void *addr, unsigned long count);
+extern void sh7751se_outsb(unsigned long port, const void *addr, unsigned long count);
+extern void sh7751se_outsw(unsigned long port, const void *addr, unsigned long count);
+extern void sh7751se_outsl(unsigned long port, const void *addr, unsigned long count);
+
+extern unsigned char sh7751se_readb(unsigned long addr);
+extern unsigned short sh7751se_readw(unsigned long addr);
+extern unsigned int sh7751se_readl(unsigned long addr);
+extern void sh7751se_writeb(unsigned char b, unsigned long addr);
+extern void sh7751se_writew(unsigned short b, unsigned long addr);
+extern void sh7751se_writel(unsigned int b, unsigned long addr);
+
+extern unsigned long sh7751se_isa_port2addr(unsigned long offset);
+
+#ifdef __WANT_IO_DEF
+
+# define __inb sh7751se_inb
+# define __inw sh7751se_inw
+# define __inl sh7751se_inl
+# define __outb sh7751se_outb
+# define __outw sh7751se_outw
+# define __outl sh7751se_outl
+
+# define __inb_p sh7751se_inb_p
+# define __inw_p sh7751se_inw
+# define __inl_p sh7751se_inl
+# define __outb_p sh7751se_outb_p
+# define __outw_p sh7751se_outw
+# define __outl_p sh7751se_outl
+
+# define __insb sh7751se_insb
+# define __insw sh7751se_insw
+# define __insl sh7751se_insl
+# define __outsb sh7751se_outsb
+# define __outsw sh7751se_outsw
+# define __outsl sh7751se_outsl
+
+# define __readb sh7751se_readb
+# define __readw sh7751se_readw
+# define __readl sh7751se_readl
+# define __writeb sh7751se_writeb
+# define __writew sh7751se_writew
+# define __writel sh7751se_writel
+
+# define __isa_port2addr sh7751se_isa_port2addr
+# define __ioremap generic_ioremap
+# define __iounmap generic_iounmap
+
+#endif
+
+#endif /* _ASM_SH_IO_7751SE_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/io_adx.h linux/include/asm-sh/io_adx.h
--- v2.4.9/linux/include/asm-sh/io_adx.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-sh/io_adx.h Sat Sep 8 12:29:09 2001
@@ -0,0 +1,86 @@
+/*
+ * include/asm-sh/io_adx.h
+ *
+ * Copyright (C) 2001 A&D Co., Ltd.
+ *
+ * This file may be copied or modified under the terms of the GNU
+ * General Public License. See linux/COPYING for more information.
+ *
+ * IO functions for an A&D ADX Board
+ */
+
+#ifndef _ASM_SH_IO_ADX_H
+#define _ASM_SH_IO_ADX_H
+
+#include <asm/io_generic.h>
+
+extern unsigned char adx_inb(unsigned long port);
+extern unsigned short adx_inw(unsigned long port);
+extern unsigned int adx_inl(unsigned long port);
+
+extern void adx_outb(unsigned char value, unsigned long port);
+extern void adx_outw(unsigned short value, unsigned long port);
+extern void adx_outl(unsigned int value, unsigned long port);
+
+extern unsigned char adx_inb_p(unsigned long port);
+extern void adx_outb_p(unsigned char value, unsigned long port);
+
+extern void adx_insb(unsigned long port, void *addr, unsigned long count);
+extern void adx_insw(unsigned long port, void *addr, unsigned long count);
+extern void adx_insl(unsigned long port, void *addr, unsigned long count);
+extern void adx_outsb(unsigned long port, const void *addr, unsigned long count);
+extern void adx_outsw(unsigned long port, const void *addr, unsigned long count);
+extern void adx_outsl(unsigned long port, const void *addr, unsigned long count);
+
+extern unsigned char adx_readb(unsigned long addr);
+extern unsigned short adx_readw(unsigned long addr);
+extern unsigned int adx_readl(unsigned long addr);
+extern void adx_writeb(unsigned char b, unsigned long addr);
+extern void adx_writew(unsigned short b, unsigned long addr);
+extern void adx_writel(unsigned int b, unsigned long addr);
+
+extern void * adx_ioremap(unsigned long offset, unsigned long size);
+extern void adx_iounmap(void *addr);
+
+extern unsigned long adx_isa_port2addr(unsigned long offset);
+
+extern void setup_adx(void);
+extern void init_adx_IRQ(void);
+
+#ifdef __WANT_IO_DEF
+
+#define __inb adx_inb
+#define __inw adx_inw
+#define __inl adx_inl
+#define __outb adx_outb
+#define __outw adx_outw
+#define __outl adx_outl
+
+#define __inb_p adx_inb_p
+#define __inw_p adx_inw
+#define __inl_p adx_inl
+#define __outb_p adx_outb_p
+#define __outw_p adx_outw
+#define __outl_p adx_outl
+
+#define __insb adx_insb
+#define __insw adx_insw
+#define __insl adx_insl
+#define __outsb adx_outsb
+#define __outsw adx_outsw
+#define __outsl adx_outsl
+
+#define __readb adx_readb
+#define __readw adx_readw
+#define __readl adx_readl
+#define __writeb adx_writeb
+#define __writew adx_writew
+#define __writel adx_writel
+
+#define __isa_port2addr adx_isa_port2addr
+#define __ioremap adx_ioremap
+#define __iounmap adx_iounmap
+
+#endif
+
+#endif /* _ASM_SH_IO_AANDD_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/irq.h linux/include/asm-sh/irq.h
--- v2.4.9/linux/include/asm-sh/irq.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/irq.h Sat Sep 8 12:29:09 2001
@@ -33,6 +33,15 @@
X #define RTC_IPR_POS 0
X #define RTC_PRIORITY TIMER_PRIORITY
X
+#if defined(__sh3__)
+#define DMTE0_IRQ 48
+#define DMTE1_IRQ 49
+#define DMTE2_IRQ 50
+#define DMTE3_IRQ 51
+#define DMA_IPR_ADDR INTC_IPRE
+#define DMA_IPR_POS 3
+#define DMA_PRIORITY 7
+#elif defined(__SH4__)
X #define DMTE0_IRQ 34
X #define DMTE1_IRQ 35
X #define DMTE2_IRQ 36
@@ -41,6 +50,7 @@
X #define DMA_IPR_ADDR INTC_IPRC
X #define DMA_IPR_POS 2
X #define DMA_PRIORITY 7
+#endif
X
X #if defined (CONFIG_CPU_SUBTYPE_SH7707) || defined (CONFIG_CPU_SUBTYPE_SH7708) || \
X defined (CONFIG_CPU_SUBTYPE_SH7709) || defined (CONFIG_CPU_SUBTYPE_SH7750) || \
@@ -170,6 +180,12 @@
X extern void enable_irq(unsigned int);
X
X /*
+ * Simple Mask Register Support
+ */
+extern void make_maskreg_irq(unsigned int irq);
+extern unsigned short *irq_mask_register;
+
+/*
X * Function for "on chip support modules".
X */
X extern void make_ipr_irq(unsigned int irq, unsigned int addr,
@@ -277,7 +293,8 @@
X
X #ifdef CONFIG_SH_GENERIC
X
-extern __inline__ int irq_demux(int irq) {
+static __inline__ int irq_demux(int irq)
+{
X if (sh_mv.mv_irq_demux) {
X irq = sh_mv.mv_irq_demux(irq);
X }
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/keyboard.h linux/include/asm-sh/keyboard.h
--- v2.4.9/linux/include/asm-sh/keyboard.h Wed Apr 11 21:24:52 2001
+++ linux/include/asm-sh/keyboard.h Sat Sep 8 12:29:09 2001
@@ -1,9 +1,10 @@
X #ifndef __ASM_SH_KEYBOARD_H
X #define __ASM_SH_KEYBOARD_H
X /*
- * $Id: keyboard.h,v 1.1 2000/06/10 21:45:48 yaegashi Exp $
+ * $Id: keyboard.h,v 1.12 2001/09/06 04:01:41 gniibe Exp $
X */
X
+#include <linux/kd.h>
X #include <linux/config.h>
X #include <asm/machvec.h>
X
@@ -21,12 +22,17 @@
X return scancode > 127 ? -EINVAL : scancode;
X }
X
+#ifdef CONFIG_SH_DREAMCAST
+extern int kbd_translate(unsigned char scancode, unsigned char *keycode,
+ char raw_mode);
+#else
X static __inline__ int kbd_translate(unsigned char scancode,
X unsigned char *keycode, char raw_mode)
X {
X *keycode = scancode;
X return 1;
X }
+#endif
X
X static __inline__ char kbd_unexpected_up(unsigned char keycode)
X {
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/linux_logo.h linux/include/asm-sh/linux_logo.h
--- v2.4.9/linux/include/asm-sh/linux_logo.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/linux_logo.h Sat Sep 8 12:29:09 2001
@@ -1,27 +1,1418 @@
-/* $Id: linux_logo.h,v 1.1 2000/06/10 21:45:48 yaegashi Exp $
- * include/asm-sh/linux_logo.h: This is a linux logo
- * to be displayed on boot.
+/* $Id: linux_logo.h,v 1.4 2001/08/08 07:39:36 gnb Exp $
+ * include/linux/linux_logo.h: This is a linux logo
+ * to be displayed on boot.
X *
X * Copyright (C) 1996 Larry Ewing (lew...@isc.tamu.edu)
- * Copyright (C) 1996 Jakub Jelinek (j...@sunsite.mff.cuni.cz)
+ * Copyright (C) 1996,1998 Jakub Jelinek (j...@sunsite.mff.cuni.cz)
+ * Copyright (c) 2001 Greg Banks <g...@alphalink.com.au>
X *
X * You can put anything here, but:
X * LINUX_LOGO_COLORS has to be less than 224
X * image size has to be 80x80
X * values have to start from 0x20
X * (i.e. RGB(linux_logo_red[0],
- * linux_logo_green[0],
- * linux_logo_blue[0]) is color 0x20)
+ * linux_logo_green[0],
+ * linux_logo_blue[0]) is color 0x20)
X * BW image has to be 80x80 as well, with MS bit
X * on the left
X * Serial_console ascii image can be any size,
X * but should contain %s to display the version
X */
-
+
X #include <linux/init.h>
X #include <linux/version.h>
X
X #define linux_logo_banner "Linux/SuperH version " UTS_RELEASE
X
-#include <linux/linux_logo.h>
+#define __HAVE_ARCH_LINUX_LOGO 1
+#define __HAVE_ARCH_LINUX_LOGO16 1
+#define __HAVE_ARCH_LINUX_LOGOBW 1
+
+#define LINUX_LOGO_COLORS 160
+
+#ifdef INCLUDE_LINUX_LOGO_DATA
+
+unsigned char linux_logo_red[] __initdata = {
+ 0x02, 0x06, 0x0A, 0x0E, 0x16, 0x1A, 0x1E, 0x22,
+ 0x12, 0x2A, 0x36, 0x42, 0x4E, 0x4A, 0x56, 0x26,
+ 0x46, 0x2E, 0x32, 0x52, 0x3A, 0x02, 0x66, 0x5E,
+ 0x3E, 0x76, 0x8A, 0xA3, 0x9A, 0x86, 0xC6, 0xC2,
+ 0x66, 0xBA, 0xD2, 0xDA, 0xD6, 0xE2, 0xF6, 0xFE,
+ 0xAE, 0x7A, 0xDF, 0xEA, 0x6A, 0xAA, 0xE6, 0xBE,
+ 0x59, 0xEE, 0x9E, 0x96, 0x82, 0x7A, 0x7A, 0x68,
+ 0x3C, 0x9A, 0xE2, 0xF1, 0xE5, 0xBA, 0xD6, 0xB2,
+ 0x26, 0xBE, 0xC3, 0xEE, 0xEA, 0xEA, 0xEE, 0xF6,
+ 0xF4, 0xDA, 0xCE, 0x7A, 0xDC, 0xF6, 0xF6, 0xE0,
+ 0xB5, 0xCC, 0xF6, 0x69, 0xDB, 0xEE, 0xF1, 0xC5,
+ 0x9E, 0x8A, 0xD2, 0xEE, 0xCA, 0xBA, 0xD3, 0x5C,
+ 0x8A, 0xBE, 0xAA, 0xD6, 0xCA, 0xB6, 0xAD, 0x9E,
+ 0xC5, 0xBC, 0xBF, 0xC9, 0x92, 0xB2, 0x9A, 0xAA,
+ 0xB6, 0xF2, 0xCE, 0xFA, 0x6E, 0xA6, 0x12, 0x4A,
+ 0x8E, 0xF6, 0xF6, 0xEE, 0xE9, 0xF0, 0x26, 0x9A,
+ 0xEA, 0xF6, 0xDE, 0x31, 0x72, 0xCE, 0x46, 0x7E,
+ 0xB6, 0x62, 0xCF, 0xA3, 0x76, 0xA4, 0xA2, 0xE2,
+ 0xAE, 0xC0, 0xCE, 0xE2, 0xE7, 0xFC, 0xCD, 0x03,
+ 0xEF, 0xF9, 0xD4, 0xFE, 0xFE, 0xFE, 0x83, 0x5E
+};
+
+unsigned char linux_logo_green[] __initdata = {
+ 0x02, 0x06, 0x0A, 0x0E, 0x16, 0x1A, 0x1E, 0x22,
+ 0x12, 0x2A, 0x36, 0x42, 0x4E, 0x4A, 0x56, 0x26,
+ 0x46, 0x2E, 0x32, 0x52, 0x3A, 0x02, 0x66, 0x5E,
+ 0x3E, 0x76, 0x8A, 0xA3, 0x9A, 0x86, 0xC6, 0xC2,
+ 0x62, 0xBA, 0xD2, 0xDA, 0xD6, 0xE2, 0xF6, 0xFE,
+ 0xAE, 0x7A, 0xDE, 0xEA, 0x6A, 0xAA, 0xE6, 0xBE,
+ 0x5A, 0xEE, 0x9E, 0x96, 0x82, 0x64, 0x5E, 0x4E,
+ 0x28, 0x72, 0xAA, 0xBA, 0xAE, 0x92, 0xAE, 0x93,
+ 0x1A, 0xA6, 0x86, 0xB6, 0xBE, 0xC4, 0xCA, 0xCE,
+ 0xD4, 0xC2, 0xCE, 0x56, 0xA2, 0xD9, 0xD9, 0xBC,
+ 0x7A, 0x92, 0xDA, 0x46, 0x9E, 0xB2, 0xD6, 0x97,
+ 0x76, 0x5E, 0xA2, 0xBE, 0xA4, 0x86, 0x96, 0x45,
+ 0x66, 0x92, 0x7A, 0x9A, 0x93, 0x9E, 0x9A, 0x6A,
+ 0x8B, 0x8C, 0xB2, 0xCA, 0x92, 0xA6, 0x7A, 0x7E,
+ 0xB6, 0xF2, 0xCE, 0xFA, 0x6E, 0xA6, 0x0E, 0x33,
+ 0x86, 0xBE, 0xE6, 0xCE, 0xBC, 0xC6, 0x1E, 0x8E,
+ 0xAE, 0xBA, 0xAF, 0x23, 0x66, 0xAA, 0x2E, 0x72,
+ 0x86, 0x46, 0xA5, 0x6E, 0x52, 0x72, 0x92, 0xA6,
+ 0x86, 0x94, 0xA0, 0xD2, 0xDC, 0xFB, 0xC3, 0x03,
+ 0x9F, 0x64, 0x84, 0x03, 0x15, 0x38, 0x7E, 0x56
+};
+
+unsigned char linux_logo_blue[] __initdata = {
+ 0x02, 0x06, 0x0A, 0x0D, 0x16, 0x1A, 0x1E, 0x22,
+ 0x12, 0x2B, 0x36, 0x42, 0x4E, 0x4A, 0x56, 0x26,
+ 0x46, 0x2E, 0x32, 0x52, 0x3A, 0x06, 0x66, 0x5D,
+ 0x3E, 0x76, 0x8E, 0xA3, 0x9A, 0x86, 0xC4, 0xC2,
+ 0x5A, 0xBA, 0xD2, 0xDA, 0xD6, 0xE2, 0xF6, 0xFE,
+ 0xAE, 0x7A, 0xDE, 0xEA, 0x69, 0xAA, 0xE4, 0xBB,
+ 0x5A, 0xEE, 0x9E, 0x96, 0x82, 0x42, 0x0A, 0x0A,
+ 0x09, 0x0A, 0x0A, 0x0D, 0x0B, 0x11, 0x0E, 0x46,
+ 0x0A, 0x72, 0x0A, 0x0E, 0x0A, 0x12, 0x15, 0x2E,
+ 0x14, 0x86, 0xC2, 0x1A, 0x0A, 0x35, 0x27, 0x0E,
+ 0x09, 0x0B, 0x4A, 0x07, 0x0B, 0x0E, 0x22, 0x0D,
+ 0x0A, 0x06, 0x0C, 0x0A, 0x14, 0x0A, 0x0B, 0x1A,
+ 0x0E, 0x0E, 0x0C, 0x0A, 0x1F, 0x6A, 0x73, 0x09,
+ 0x0C, 0x22, 0x91, 0xCB, 0x92, 0x92, 0x36, 0x26,
+ 0xB6, 0xF2, 0xCE, 0xFA, 0x6E, 0xA6, 0x06, 0x0B,
+ 0x6A, 0x0E, 0xBE, 0x5A, 0x40, 0x0E, 0x0A, 0x5A,
+ 0x0C, 0x0E, 0x3B, 0x06, 0x4E, 0x4A, 0x06, 0x5A,
+ 0x26, 0x06, 0x44, 0x0A, 0x0A, 0x08, 0x5E, 0x0D,
+ 0x32, 0x2C, 0x24, 0xCF, 0xDA, 0xFB, 0xBE, 0x03,
+ 0x99, 0x5D, 0x35, 0x03, 0x15, 0x38, 0x74, 0x4B
+};
+
+unsigned char linux_logo[] __initdata = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x21, 0x21, 0x22, 0x22,
+ 0x22, 0x21, 0x21, 0x21, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x26, 0x26, 0x25, 0x28, 0x23, 0x22, 0x21, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x21, 0x23, 0x25, 0x29, 0x2A, 0x2B, 0x2C, 0x2C,
+ 0x2C, 0x2D, 0x2B, 0x2A, 0x29, 0x25, 0x28, 0x22,
+ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
+ 0x24, 0x29, 0x2B, 0x2E, 0x2B, 0x2F, 0x2F, 0x24,
+ 0x25, 0x27, 0x2A, 0x2B, 0x2E, 0x30, 0x31, 0x25,
+ 0x23, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x25,
+ 0x32, 0x33, 0x34, 0x21, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x21, 0x2A, 0x2E, 0x2B,
+ 0x2F, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24, 0x32,
+ 0x2C, 0x27, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x21, 0x30,
+ 0x2C, 0x31, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x21, 0x28, 0x29, 0x33,
+ 0x25, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x23, 0x31, 0x27, 0x21, 0x35,
+ 0x29, 0x2C, 0x29, 0x28, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x22, 0x26, 0x2B, 0x34,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x25, 0x2E, 0x36, 0x31, 0x22,
+ 0x35, 0x34, 0x30, 0x27, 0x22, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x23, 0x29, 0x2E, 0x22,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x26, 0x37, 0x37, 0x34, 0x25,
+ 0x35, 0x21, 0x2C, 0x2A, 0x24, 0x21, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x21, 0x24, 0x38, 0x38, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x25, 0x2A, 0x2F, 0x28, 0x22,
+ 0x35, 0x35, 0x27, 0x33, 0x2F, 0x23, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x21, 0x26, 0x2C, 0x26, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x22, 0x22, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x2C, 0x32, 0x28, 0x21, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x2F, 0x2E, 0x23, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x2A, 0x2B, 0x25, 0x21, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x29, 0x33, 0x35, 0x35,
+ 0x35, 0x21, 0x22, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x21, 0x23, 0x22, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x28, 0x33, 0x27, 0x22, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x31, 0x2E, 0x35, 0x35,
+ 0x21, 0x21, 0x24, 0x27, 0x21, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x28, 0x27, 0x22, 0x32, 0x24, 0x35,
+ 0x35, 0x35, 0x35, 0x22, 0x2E, 0x29, 0x23, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x31, 0x2E, 0x35, 0x35,
+ 0x2F, 0x39, 0x37, 0x24, 0x24, 0x35, 0x35, 0x35,
+ 0x23, 0x2E, 0x3A, 0x3B, 0x3C, 0x2F, 0x25, 0x21,
+ 0x35, 0x35, 0x35, 0x35, 0x2E, 0x31, 0x23, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x31, 0x2E, 0x35, 0x23,
+ 0x3D, 0x3E, 0x3F, 0x39, 0x22, 0x35, 0x35, 0x21,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x3D, 0x23, 0x21,
+ 0x35, 0x35, 0x35, 0x35, 0x2E, 0x32, 0x28, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x31, 0x2E, 0x35, 0x2A,
+ 0x43, 0x3F, 0x45, 0x46, 0x34, 0x35, 0x35, 0x26,
+ 0x42, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x2D, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x30, 0x34, 0x24, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x31, 0x33, 0x35, 0x4C,
+ 0x4D, 0x25, 0x2E, 0x45, 0x49, 0x22, 0x23, 0x31,
+ 0x4E, 0x4F, 0x21, 0x30, 0x50, 0x51, 0x52, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x30, 0x34, 0x24, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x29, 0x2E, 0x21, 0x39,
+ 0x4C, 0x21, 0x30, 0x53, 0x54, 0x28, 0x2F, 0x2A,
+ 0x4A, 0x4C, 0x35, 0x23, 0x31, 0x4F, 0x3E, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x2D, 0x38, 0x24, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x29, 0x37, 0x23, 0x36,
+ 0x54, 0x35, 0x28, 0x39, 0x55, 0x56, 0x56, 0x57,
+ 0x3B, 0x4C, 0x35, 0x35, 0x35, 0x3F, 0x3F, 0x21,
+ 0x35, 0x35, 0x35, 0x35, 0x2D, 0x38, 0x24, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x2F, 0x50, 0x23, 0x34,
+ 0x42, 0x25, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D,
+ 0x5E, 0x5F, 0x60, 0x35, 0x30, 0x46, 0x3A, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x30, 0x2B, 0x25, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x2F, 0x2E, 0x23, 0x22,
+ 0x3F, 0x61, 0x62, 0x5C, 0x63, 0x64, 0x65, 0x66,
+ 0x67, 0x68, 0x65, 0x5D, 0x69, 0x6A, 0x29, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x32, 0x2D, 0x26, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x27, 0x2E, 0x23, 0x35,
+ 0x6B, 0x62, 0x6C, 0x63, 0x5B, 0x65, 0x68, 0x6D,
+ 0x6D, 0x6E, 0x68, 0x68, 0x68, 0x6F, 0x6B, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x32, 0x33, 0x27, 0x22,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x27, 0x33, 0x26, 0x58,
+ 0x70, 0x71, 0x5C, 0x63, 0x64, 0x66, 0x68, 0x72,
+ 0x6E, 0x68, 0x68, 0x68, 0x6F, 0x5E, 0x5D, 0x21,
+ 0x35, 0x35, 0x35, 0x35, 0x25, 0x37, 0x29, 0x23,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x26, 0x2C, 0x32, 0x73,
+ 0x62, 0x74, 0x75, 0x5B, 0x65, 0x68, 0x6D, 0x76,
+ 0x68, 0x68, 0x68, 0x77, 0x71, 0x74, 0x78, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x21, 0x50, 0x2A, 0x28,
+ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x26, 0x2C, 0x31, 0x24,
+ 0x79, 0x7A, 0x63, 0x7B, 0x66, 0x68, 0x68, 0x68,
+ 0x68, 0x7C, 0x7D, 0x7E, 0x74, 0x7E, 0x57, 0x35,
+ 0x21, 0x2A, 0x23, 0x35, 0x35, 0x38, 0x2D, 0x26,
+ 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x27, 0x2C, 0x32, 0x21,
+ 0x7F, 0x80, 0x81, 0x6F, 0x66, 0x65, 0x5E, 0x81,
+ 0x82, 0x62, 0x7E, 0x83, 0x84, 0x85, 0x40, 0x35,
+ 0x35, 0x2C, 0x39, 0x34, 0x35, 0x24, 0x50, 0x31,
+ 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x2F, 0x2E, 0x32, 0x21,
+ 0x54, 0x86, 0x87, 0x82, 0x77, 0x5D, 0x88, 0x71,
+ 0x71, 0x71, 0x88, 0x61, 0x3F, 0x3E, 0x48, 0x23,
+ 0x35, 0x24, 0x39, 0x39, 0x24, 0x35, 0x2D, 0x30,
+ 0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x21, 0x28, 0x32, 0x36, 0x25, 0x22,
+ 0x3A, 0x4F, 0x86, 0x87, 0x88, 0x71, 0x88, 0x62,
+ 0x70, 0x89, 0x8A, 0x41, 0x8B, 0x4A, 0x44, 0x2B,
+ 0x35, 0x35, 0x32, 0x38, 0x21, 0x35, 0x22, 0x50,
+ 0x32, 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x22, 0x27, 0x2D, 0x2D, 0x35, 0x21,
+ 0x8C, 0x3E, 0x4F, 0x8D, 0x8E, 0x87, 0x87, 0x8F,
+ 0x86, 0x41, 0x4F, 0x42, 0x46, 0x47, 0x47, 0x90,
+ 0x21, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x38,
+ 0x2D, 0x27, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x22, 0x24, 0x2A, 0x37, 0x28, 0x35, 0x31,
+ 0x4B, 0x4A, 0x4F, 0x4F, 0x4F, 0x41, 0x41, 0x4F,
+ 0x4F, 0x3F, 0x44, 0x91, 0x47, 0x47, 0x47, 0x47,
+ 0x33, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x23,
+ 0x2E, 0x2A, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x21, 0x28, 0x31, 0x50, 0x31, 0x28, 0x21, 0x90,
+ 0x47, 0x46, 0x92, 0x4F, 0x4F, 0x4F, 0x4F, 0x4F,
+ 0x92, 0x4E, 0x93, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x8B, 0x23, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x29, 0x2E, 0x29, 0x28, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
+ 0x23, 0x2F, 0x2D, 0x2B, 0x35, 0x21, 0x50, 0x93,
+ 0x47, 0x47, 0x51, 0x3E, 0x4F, 0x4F, 0x3F, 0x4A,
+ 0x46, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x33, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x2C, 0x30, 0x27, 0x23, 0x21, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x23,
+ 0x27, 0x2B, 0x2C, 0x21, 0x35, 0x28, 0x43, 0x47,
+ 0x47, 0x47, 0x47, 0x46, 0x45, 0x4E, 0x46, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x48, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x28, 0x50, 0x38, 0x26, 0x22, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x25,
+ 0x34, 0x50, 0x28, 0x35, 0x35, 0x94, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x93, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x4E, 0x28, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x28, 0x37, 0x2A, 0x25, 0x22, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24, 0x32,
+ 0x50, 0x25, 0x35, 0x35, 0x23, 0x3F, 0x93, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x93, 0x91, 0x2A, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x2F, 0x2E, 0x32, 0x24, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x21, 0x23, 0x2F, 0x33,
+ 0x27, 0x35, 0x35, 0x35, 0x29, 0x3F, 0x46, 0x47,
+ 0x47, 0x47, 0x47, 0x93, 0x91, 0x91, 0x93, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x93, 0x46, 0x51,
+ 0x45, 0x4E, 0x36, 0x21, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x2F, 0x33, 0x29, 0x23,
+ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x22, 0x25, 0x38, 0x2B,
+ 0x35, 0x35, 0x35, 0x21, 0x30, 0x4D, 0x92, 0x4B,
+ 0x46, 0x93, 0x93, 0x51, 0x45, 0x4E, 0x51, 0x93,
+ 0x93, 0x93, 0x46, 0x4E, 0x44, 0x92, 0x8B, 0x8B,
+ 0x3E, 0x8B, 0x90, 0x28, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x38, 0x2B, 0x26,
+ 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x23, 0x29, 0x33, 0x28,
+ 0x35, 0x35, 0x35, 0x22, 0x37, 0x90, 0x43, 0x91,
+ 0x93, 0x47, 0x47, 0x93, 0x4B, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x46, 0x51, 0x45, 0x42, 0x8B,
+ 0x3F, 0x3F, 0x42, 0x52, 0x21, 0x23, 0x32, 0x23,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x21, 0x2E, 0x31,
+ 0x28, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x21, 0x24, 0x2A, 0x30, 0x35,
+ 0x35, 0x22, 0x35, 0x24, 0x95, 0x4E, 0x93, 0x47,
+ 0x47, 0x47, 0x47, 0x93, 0x91, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x46,
+ 0x4E, 0x92, 0x3E, 0x45, 0x37, 0x35, 0x21, 0x2F,
+ 0x26, 0x35, 0x35, 0x35, 0x35, 0x35, 0x38, 0x2B,
+ 0x25, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x22, 0x26, 0x2D, 0x32, 0x35,
+ 0x25, 0x25, 0x35, 0x4C, 0x51, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x46, 0x43, 0x8B, 0x42, 0x23, 0x35, 0x35,
+ 0x26, 0x24, 0x35, 0x35, 0x35, 0x35, 0x28, 0x2E,
+ 0x29, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x23, 0x29, 0x50, 0x24, 0x35,
+ 0x29, 0x35, 0x28, 0x43, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x93, 0x4A, 0x43, 0x36, 0x35, 0x23,
+ 0x28, 0x2F, 0x22, 0x35, 0x35, 0x35, 0x35, 0x2C,
+ 0x34, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x21, 0x28, 0x2A, 0x33, 0x35, 0x25,
+ 0x24, 0x35, 0x49, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x93, 0x51, 0x3E, 0x21, 0x2F,
+ 0x34, 0x25, 0x2F, 0x35, 0x35, 0x35, 0x35, 0x31,
+ 0x2C, 0x26, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x22, 0x26, 0x2D, 0x34, 0x35, 0x29,
+ 0x35, 0x24, 0x4E, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x93, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x46, 0x31, 0x2F,
+ 0x29, 0x23, 0x2F, 0x23, 0x35, 0x35, 0x35, 0x21,
+ 0x2E, 0x31, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x21, 0x23, 0x29, 0x50, 0x28, 0x28, 0x25,
+ 0x35, 0x39, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x93, 0x51, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x37, 0x21,
+ 0x35, 0x35, 0x22, 0x27, 0x35, 0x35, 0x35, 0x35,
+ 0x2D, 0x34, 0x24, 0x21, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x22, 0x25, 0x2B, 0x33, 0x35, 0x2F, 0x21,
+ 0x23, 0x42, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x46, 0x91, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x8C, 0x35,
+ 0x35, 0x35, 0x35, 0x31, 0x35, 0x35, 0x35, 0x35,
+ 0x29, 0x2D, 0x26, 0x22, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x21, 0x23, 0x29, 0x50, 0x25, 0x21, 0x29, 0x35,
+ 0x2D, 0x93, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x91, 0x91, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x90, 0x35,
+ 0x35, 0x35, 0x35, 0x31, 0x35, 0x35, 0x35, 0x35,
+ 0x22, 0x2E, 0x2F, 0x22, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x22, 0x25, 0x2B, 0x33, 0x35, 0x24, 0x28, 0x35,
+ 0x53, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4B, 0x91, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x92, 0x35,
+ 0x35, 0x35, 0x35, 0x2F, 0x35, 0x35, 0x35, 0x35,
+ 0x21, 0x2E, 0x31, 0x23, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
+ 0x28, 0x31, 0x2E, 0x28, 0x35, 0x27, 0x22, 0x21,
+ 0x42, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4B, 0x91, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x4A, 0x21,
+ 0x35, 0x35, 0x21, 0x26, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x33, 0x2A, 0x28, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
+ 0x25, 0x2B, 0x38, 0x35, 0x35, 0x2F, 0x22, 0x25,
+ 0x51, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4E, 0x51, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x4E, 0x21,
+ 0x35, 0x35, 0x22, 0x26, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x2B, 0x34, 0x24, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
+ 0x2F, 0x2C, 0x21, 0x35, 0x35, 0x31, 0x23, 0x29,
+ 0x46, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4E, 0x91, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x4B, 0x22,
+ 0x35, 0x35, 0x24, 0x23, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x2B, 0x38, 0x24, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
+ 0x32, 0x2D, 0x35, 0x35, 0x23, 0x30, 0x27, 0x38,
+ 0x93, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4E, 0x46, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x4B, 0x23,
+ 0x35, 0x35, 0x26, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x2B, 0x38, 0x24, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x28,
+ 0x2A, 0x38, 0x35, 0x35, 0x35, 0x26, 0x31, 0x30,
+ 0x93, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4E, 0x46, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x45, 0x22,
+ 0x35, 0x21, 0x26, 0x35, 0x35, 0x35, 0x35, 0x35,
+ 0x35, 0x2B, 0x34, 0x24, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x24,
+ 0x34, 0x38, 0x35, 0x35, 0x35, 0x35, 0x26, 0x2C,
+ 0x93, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4E, 0x46, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x92, 0x35,
+ 0x24, 0x27, 0x96, 0x24, 0x25, 0x28, 0x21, 0x35,
+ 0x35, 0x33, 0x2A, 0x28, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x25,
+ 0x38, 0x4C, 0x97, 0x7D, 0x7A, 0x56, 0x21, 0x38,
+ 0x51, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4E, 0x46, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x52, 0x28,
+ 0x23, 0x35, 0x35, 0x35, 0x21, 0x28, 0x2B, 0x2F,
+ 0x21, 0x37, 0x32, 0x28, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x21, 0x22, 0x22, 0x28, 0x2F,
+ 0x2C, 0x98, 0x74, 0x5B, 0x99, 0x99, 0x78, 0x22,
+ 0x50, 0x51, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4E, 0x93, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x9A, 0x9B, 0x9B, 0x89, 0x60,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x2F, 0x31,
+ 0x25, 0x4C, 0x2A, 0x28, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x21, 0x23, 0x24, 0x26, 0x2F, 0x32, 0x30,
+ 0x4C, 0x89, 0x5A, 0x5B, 0x99, 0x99, 0x99, 0x59,
+ 0x21, 0x2D, 0x45, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4E, 0x93, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x9C, 0x9D, 0x68, 0x65, 0x9E,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x21, 0x26, 0x25,
+ 0x7C, 0x9F, 0x2B, 0x25, 0x21, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x21, 0x28, 0x2F, 0x34, 0x2C, 0x2E, 0x36, 0x49,
+ 0x5F, 0x7E, 0xA0, 0xA1, 0x99, 0x99, 0x99, 0x7B,
+ 0x57, 0x35, 0x31, 0x3E, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x4B, 0x91, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0xA2, 0x5B, 0x9D, 0x7A, 0x28,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x21, 0x56,
+ 0x66, 0x65, 0x33, 0x27, 0x22, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x23, 0x2F, 0x30, 0x8E, 0x89, 0x71, 0x88, 0x88,
+ 0x83, 0x5A, 0x5B, 0x99, 0x99, 0x99, 0x99, 0x99,
+ 0x5C, 0xA3, 0x35, 0x24, 0x52, 0x93, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x93, 0x91, 0xA2, 0x63, 0x5B, 0x83, 0xA3,
+ 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x58, 0x5C,
+ 0x7B, 0x5B, 0xA4, 0x29, 0x23, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
+ 0x24, 0x2A, 0x8E, 0x83, 0x5A, 0x5C, 0x5A, 0x5A,
+ 0x75, 0x5B, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+ 0x9D, 0x5D, 0x22, 0x35, 0x21, 0x39, 0x91, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x4E, 0x3E, 0xA5, 0x75, 0x75, 0x7E, 0x79,
+ 0x96, 0x35, 0x35, 0x35, 0x21, 0xA6, 0x71, 0x75,
+ 0x63, 0x63, 0xA7, 0x34, 0x24, 0x21, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
+ 0x26, 0x30, 0xA8, 0x5A, 0x63, 0x5B, 0x5B, 0xA1,
+ 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+ 0x99, 0x65, 0xA9, 0x35, 0x35, 0x35, 0x2B, 0x4A,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x92, 0x3E, 0xAA, 0x5C, 0x5C, 0x74, 0x62,
+ 0xAB, 0xAC, 0x57, 0xAC, 0xAD, 0x88, 0x5A, 0x63,
+ 0x5B, 0x5B, 0xAE, 0x2C, 0x27, 0x23, 0x21, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21,
+ 0x26, 0x2C, 0x89, 0x5A, 0x63, 0x99, 0x99, 0x99,
+ 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+ 0x99, 0x9D, 0x7C, 0x28, 0x35, 0x35, 0x35, 0x2F,
+ 0x43, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x93, 0x92, 0x3E, 0xAA, 0x5A, 0x75, 0xAF, 0x7E,
+ 0x71, 0x88, 0x62, 0x88, 0x7E, 0x5A, 0x5B, 0x99,
+ 0x99, 0xA1, 0x5C, 0xA7, 0x38, 0x26, 0x23, 0x21,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
+ 0x26, 0x2C, 0xB0, 0xAF, 0x63, 0x99, 0x99, 0x99,
+ 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+ 0x99, 0x99, 0x9D, 0x80, 0x35, 0x35, 0x35, 0x35,
+ 0x2C, 0x93, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x93, 0x44, 0x3E, 0xB1, 0x6C, 0x75, 0xA0, 0xAF,
+ 0x74, 0x83, 0x83, 0x74, 0x5A, 0x63, 0x99, 0x99,
+ 0x99, 0x99, 0x5B, 0xB2, 0x36, 0x34, 0x26, 0x23,
+ 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x2E, 0x53,
+ 0x4D, 0x41, 0xB3, 0xB4, 0x9A, 0x9A, 0x9A, 0x9A,
+ 0x9B, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
+ 0x99, 0x99, 0x9D, 0x6F, 0x58, 0x35, 0x21, 0x35,
+ 0x24, 0x51, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x45, 0x41, 0xA8, 0x74, 0x75, 0x63, 0x75,
+ 0x5C, 0x5A, 0x5A, 0x5C, 0x75, 0x5B, 0x99, 0x99,
+ 0x99, 0x9D, 0x9A, 0x9A, 0xB3, 0x41, 0x94, 0x2F,
+ 0x25, 0x49, 0x3A, 0x3A, 0x3A, 0x40, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x23, 0x3C, 0x46, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x9A, 0x9B, 0x9D, 0x9D, 0x9D, 0x9D, 0x99, 0x99,
+ 0x99, 0x9D, 0x9D, 0x66, 0xB2, 0x28, 0x24, 0x26,
+ 0x30, 0x46, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47,
+ 0x47, 0x4E, 0x39, 0x8F, 0x6C, 0x75, 0x5B, 0x99,
+ 0x65, 0x99, 0x99, 0x65, 0x99, 0x67, 0x9B, 0x67,
+ 0x9D, 0x9A, 0x47, 0x47, 0x47, 0xB5, 0xB6, 0x94,
+ 0x3D, 0x91, 0x93, 0x47, 0x93, 0x3A, 0x40, 0x20,
+ 0x20, 0x20, 0xB7, 0x96, 0x53, 0x91, 0xB8, 0xB9,
+ 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9,
+ 0xB8, 0x72, 0x46, 0x46, 0x46, 0x46, 0x9B, 0x99,
+ 0x9A, 0x46, 0x46, 0x46, 0x9A, 0x80, 0x90, 0x91,
+ 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0x47, 0xB5,
+ 0xB5, 0xB5, 0x46, 0xB5, 0x47, 0xB5, 0xB5, 0x47,
+ 0x47, 0xB5, 0x91, 0x51, 0x9B, 0x75, 0x5B, 0x9A,
+ 0x46, 0x46, 0x46, 0x9A, 0x9A, 0x46, 0xB5, 0x9A,
+ 0x9A, 0x9A, 0xB9, 0xB9, 0xB9, 0xB9, 0x69, 0x69,
+ 0x4B, 0xBA, 0xB9, 0xB9, 0xB9, 0xB8, 0x3A, 0x40,
+ 0x20, 0x20, 0x22, 0x53, 0x91, 0xB9, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xB8, 0x46, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
+ 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x51, 0x9A,
+ 0x9A, 0x9A, 0x9A, 0x46, 0xB4, 0x69, 0x69, 0xB3,
+ 0x46, 0x46, 0x46, 0xB5, 0x46, 0xB3, 0x69, 0x69,
+ 0xB8, 0x69, 0xB3, 0x9A, 0x46, 0x9B, 0x9A, 0x9A,
+ 0x9A, 0x9A, 0x9A, 0x9A, 0x46, 0xB3, 0xB8, 0xB3,
+ 0x46, 0xB8, 0xBB, 0xBB, 0xBB, 0xBB, 0x69, 0x46,
+ 0xB4, 0xBC, 0xBB, 0xBB, 0xBB, 0xBA, 0x93, 0x49,
+ 0x20, 0x20, 0x50, 0x46, 0xB8, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC,
+ 0xB3, 0xB3, 0xBC, 0xBC, 0xBC, 0xBC, 0xB8, 0xB5,
+ 0xB9, 0xBC, 0xBC, 0xBC, 0xB9, 0x46, 0xB9, 0xBC,
+ 0xBC, 0xBC, 0xB9, 0xB9, 0xBC, 0xBB, 0xBB, 0xBC,
+ 0xBA, 0x46, 0xB5, 0xB3, 0xBD, 0xBC, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBC, 0xB9, 0x91, 0x46, 0xB9,
+ 0xBC, 0xBC, 0xBC, 0xB9, 0xB9, 0xBB, 0xBB, 0xBD,
+ 0x46, 0xB9, 0xBB, 0xBB, 0xBB, 0xBC, 0x9A, 0xB5,
+ 0xB8, 0xBB, 0xBB, 0xBB, 0xBB, 0x69, 0x46, 0x34,
+ 0x20, 0x21, 0x90, 0xB5, 0xBD, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xB9, 0xB8, 0xB8, 0xB8, 0xBA, 0xB9, 0xB9,
+ 0x46, 0xBA, 0xBB, 0xBB, 0xBB, 0xBC, 0x51, 0x9A,
+ 0xBC, 0xBB, 0xBB, 0xBB, 0xB8, 0x9A, 0xBC, 0xBB,
+ 0xBB, 0xBB, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBC, 0x46, 0xB4, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBC, 0xBC, 0xBB, 0xBB, 0xBB, 0xB8, 0x9A, 0xBC,
+ 0xBB, 0xBB, 0xBB, 0xBD, 0xBB, 0xBB, 0xBB, 0xBA,
+ 0x46, 0xBC, 0xBB, 0xBB, 0xBB, 0xB9, 0x46, 0x46,
+ 0xB9, 0xBB, 0xBB, 0xBB, 0xBC, 0x91, 0x44, 0x23,
+ 0x20, 0x21, 0x42, 0xB5, 0xBD, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xB9, 0xB8, 0xB8, 0xB8, 0xB8, 0x51, 0x46,
+ 0x46, 0xBD, 0xBB, 0xBB, 0xBB, 0xB9, 0x46, 0xB8,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0x9A, 0xB8, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0x46, 0xB9, 0xBB, 0xBB, 0xBB, 0xBC, 0x69,
+ 0x91, 0xB8, 0xBB, 0xBB, 0xBB, 0xB9, 0xB8, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x69,
+ 0xB3, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0xBC, 0xBC,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xB9, 0x47, 0x52, 0x20,
+ 0x20, 0x22, 0x41, 0x46, 0xBD, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBD, 0xB5,
+ 0x9A, 0xBC, 0xBB, 0xBB, 0xBB, 0xB8, 0xB5, 0xB9,
+ 0xBB, 0xBB, 0xBB, 0xBD, 0xB5, 0xB9, 0xBB, 0xBB,
+ 0xBB, 0xBC, 0x69, 0xB3, 0xBD, 0xBB, 0xBB, 0xBB,
+ 0xBD, 0xB4, 0xBC, 0xBB, 0xBB, 0xBB, 0xBC, 0xBD,
+ 0xBD, 0xBD, 0xBB, 0xBB, 0xBB, 0xB8, 0xB9, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0x46,
+ 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xB8, 0xB5, 0x50, 0x20,
+ 0x20, 0x21, 0x32, 0x92, 0xB3, 0xB9, 0xBD, 0xBC,
+ 0xBC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x51,
+ 0xB8, 0xBB, 0xBB, 0xBB, 0xBC, 0xB3, 0x51, 0xBC,
+ 0xBB, 0xBB, 0xBB, 0xBA, 0x51, 0xBD, 0xBB, 0xBB,
+ 0xBB, 0xB8, 0x46, 0x46, 0xBD, 0xBB, 0xBB, 0xBB,
+ 0xB9, 0xB8, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0xB3, 0xBD, 0xBB,
+ 0xBB, 0xBB, 0xBC, 0xB9, 0xB8, 0xB8, 0xB8, 0x46,
+ 0xBD, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0xBC, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0x9A, 0x91, 0x25, 0x20,
+ 0x21, 0x32, 0x92, 0xB3, 0xB4, 0xB4, 0xB4, 0x9A,
+ 0x9A, 0xB8, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0x46,
+ 0xB9, 0xBB, 0xBB, 0xBB, 0xBC, 0xB4, 0xB8, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0x69, 0x69, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xB8, 0x9A, 0xB8, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xB8, 0xBA, 0xBB, 0xBB, 0xBB, 0xBC, 0x69, 0xB4,
+ 0xB4, 0xB4, 0xB3, 0x69, 0xB3, 0xB4, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBA, 0x46, 0xB5, 0xB5, 0x91, 0xB4,
+ 0xBC, 0xBB, 0xBB, 0xBB, 0xB9, 0x91, 0x51, 0xBD,
+ 0xBB, 0xBB, 0xBB, 0xBD, 0x46, 0x3F, 0x21, 0x20,
+ 0x24, 0x42, 0x9A, 0xBD, 0xBC, 0xBC, 0xBC, 0xBC,
+ 0xBC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xB9, 0x46,
+ 0xBD, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0xBC, 0xBB,
+ 0xBB, 0xBB, 0xBD, 0x91, 0xBA, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBC, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBD,
+ 0x51, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBD, 0xB9,
+ 0xB9, 0xB9, 0xBD, 0xBD, 0x46, 0xB8, 0xBB, 0xBB,
+ 0xBB, 0xBC, 0xB4, 0x46, 0xA5, 0x85, 0x46, 0xB8,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0x69, 0x91, 0x9A, 0xBC,
+ 0xBB, 0xBB, 0xBB, 0xBA, 0xB5, 0xBE, 0x21, 0x20,
+ 0x50, 0x46, 0xB8, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0xB3, 0x46,
+ 0xB9, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBD, 0xB3, 0xB5, 0xBD, 0xBB, 0xBB, 0xBB,
+ 0xBD, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBC, 0x69,
+ 0x51, 0xB3, 0xBC, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0xB8, 0xB5, 0xB9, 0xBB, 0xBB,
+ 0xBB, 0xBD, 0x46, 0xB4, 0x80, 0x3E, 0xB5, 0xB9,
+ 0xBB, 0xBB, 0xBB, 0xBC, 0x9A, 0xB5, 0xB8, 0xBB,
+ 0xBB, 0xBB, 0xBB, 0x69, 0x91, 0x38, 0x21, 0x20,
+ 0x34, 0x49, 0x69, 0xBA, 0xB9, 0xB9, 0xBD, 0xBD,
+ 0xBD, 0xBD, 0xBD, 0xB9, 0xBA, 0x9A, 0x44, 0x8C,
+ 0x91, 0xB8, 0xB9, 0xBD, 0xBD, 0xBD, 0xBD, 0xB9,
+ 0xB8, 0x9A, 0x46, 0x9A, 0xBC, 0xBB, 0xBB, 0xBB,
+ 0xB8, 0x69, 0xB9, 0xBD, 0xBD, 0xB9, 0xB3, 0x4E,
+ 0x50, 0xB4, 0xB3, 0xB9, 0xB9, 0xBD, 0xBD, 0xBD,
+ 0xB9, 0xB9, 0xB8, 0x51, 0x69, 0xB8, 0xBA, 0xB9,
+ 0xB9, 0xB8, 0xB4, 0x9F, 0x36, 0x8C, 0x4D, 0xB8,
+ 0xB9, 0xB9, 0xB9, 0xB8, 0x43, 0x54, 0xB8, 0xB9,
+ 0xB9, 0xB9, 0xBA, 0x9A, 0x39, 0x96, 0x21, 0x20,
+ 0x20, 0x34, 0x39, 0x91, 0x47, 0x93, 0x46, 0x46,
+ 0x46, 0x46, 0x46, 0xB5, 0xB5, 0x44, 0x32, 0x28,
+ 0x3A, 0x46, 0xB5, 0x46, 0x46, 0x46, 0x46, 0xB5,
+ 0xB5, 0xB4, 0xB5, 0xB8, 0xBB, 0xBB, 0xBB, 0xBC,
+ 0xB4, 0x51, 0xB5, 0x91, 0xB5, 0xB5, 0x4E, 0x2D,
+ 0x28, 0x38, 0x45, 0x47, 0xB5, 0x46, 0x46, 0xB5,
+ 0xB5, 0xB5, 0x93, 0x53, 0xAE, 0xB6, 0xB5, 0xB5,
+ 0xB5, 0xB3, 0x98, 0x2E, 0x34, 0x27, 0x49, 0x3B,
+ 0xB5, 0x47, 0x93, 0x4A, 0x40, 0x2C, 0x54, 0x47,
+ 0x47, 0x47, 0x46, 0x39, 0x96, 0xB7, 0x20, 0x20,
+ 0x20, 0x20, 0x34, 0x49, 0x53, 0x4D, 0x90, 0x4F,
+ 0x8B, 0x8B, 0x4F, 0x4D, 0x39, 0x26, 0x21, 0x21,
+ 0x22, 0x2E, 0x53, 0x90, 0x8B, 0x8B, 0x4F, 0x48,
+ 0x3D, 0x8C, 0x4F, 0xB8, 0xB9, 0xB9, 0xB9, 0xB9,
+ 0x4B, 0x3A, 0x95, 0x3E, 0x4F, 0x3A, 0x29, 0x21,
+ 0xB7, 0x21, 0x32, 0x3A, 0x48, 0x3E, 0x3E, 0x90,
+ 0x3B, 0x3A, 0x40, 0x30, 0xBF, 0x52, 0x8D, 0x4D,
+ 0x48, 0x3A, 0x2D, 0x32, 0x25, 0x23, 0x22, 0x39,
+ 0x54, 0x54, 0x54, 0x40, 0x21, 0xB7, 0x2C, 0x54,
+ 0x54, 0x54, 0x39, 0x96, 0xB7, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,
+ 0x22, 0x22, 0x21, 0x20, 0x20, 0x20, 0x20, 0x21,
+ 0x21, 0x21, 0x21, 0x21, 0x23, 0x23, 0x24, 0x24,
+ 0x27, 0x29, 0x49, 0x48, 0x47, 0x47, 0x47, 0x51,
+ 0x3A, 0x21, 0x21, 0x22, 0x21, 0x20, 0x20, 0x21,
+ 0x21, 0x21, 0x21, 0x20, 0x21, 0x22, 0x22, 0x21,
+ 0x20, 0x21, 0x23, 0x26, 0x29, 0x2A, 0x38, 0x38,
+ 0x2A, 0x29, 0x26, 0x28, 0x22, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x21, 0x20, 0x21, 0x20, 0x20, 0x20, 0x20, 0x22,
+ 0x22, 0x22, 0x23, 0x4C, 0x3B, 0x4D, 0x95, 0x3A,
+ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x21, 0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x21, 0x28, 0x24, 0x24, 0x24,
+ 0x28, 0x23, 0x22, 0x21, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
+};
X
+
+unsigned char linux_logo_bw[] __initdata = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xCF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFC, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
+ 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
+ 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFD, 0xFF, 0xF3, 0xDF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xF7, 0xEF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF,
+ 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB,
+ 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFB, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xF7, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF,
+ 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB,
+ 0x9F, 0x87, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFB, 0x0F, 0x03, 0xFB, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFB, 0x67, 0x33, 0xFB, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE7, 0x79,
+ 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB,
+ 0xF7, 0x79, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFB, 0xFF, 0xF9, 0xF7, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFB, 0x60, 0x3B, 0xF7, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0x89, 0x07,
+ 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB,
+ 0x00, 0x03, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFB, 0x00, 0x0D, 0xFB, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFB, 0x80, 0x33, 0xFD, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xC0, 0xC3,
+ 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB,
+ 0xFF, 0x0D, 0xDD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFB, 0x40, 0x31, 0xEE, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xF7, 0x20, 0xC1, 0xEE, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x1F, 0x00,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF,
+ 0x00, 0x00, 0x7F, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xEE, 0x00, 0x00, 0x7F, 0xBF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xDE, 0x00, 0x00, 0x7F, 0xDF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0x00, 0x00,
+ 0x3F, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7C,
+ 0x00, 0x00, 0x3F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7C, 0x00, 0x00, 0x1F, 0xF7, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFE, 0xFF, 0x1C, 0x07, 0xDF, 0xFB,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFC, 0x08, 0x0F,
+ 0xEF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xF8,
+ 0x00, 0x01, 0xEF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFB, 0xF0, 0x00, 0x00, 0x7F, 0xFE, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFB, 0xE0, 0x00, 0x00, 0x1F, 0xFE,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xE0, 0x00, 0x00,
+ 0x07, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF, 0xF7, 0xC0,
+ 0x00, 0x00, 0x03, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF,
+ 0xEF, 0xC0, 0x00, 0x00, 0x03, 0xDF, 0xBF, 0xFF,
+ 0xFF, 0xFF, 0xEF, 0x80, 0x00, 0x00, 0x03, 0xDF,
+ 0xBF, 0xFF, 0xFF, 0xFF, 0xDF, 0x80, 0x00, 0x00,
+ 0x03, 0xDF, 0xBF, 0xFF, 0xFF, 0xFF, 0xDF, 0x80,
+ 0x00, 0x00, 0x01, 0xEF, 0xDF, 0xFF, 0xFF, 0xFF,
+ 0xDF, 0x80, 0x00, 0x00, 0x01, 0xEF, 0xDF, 0xFF,
+ 0xFF, 0xFF, 0xBF, 0x00, 0x20, 0x00, 0x01, 0xEF,
+ 0xDF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0x20, 0x00,
+ 0x01, 0xEF, 0xDF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00,
+ 0x20, 0x00, 0x01, 0xEF, 0xDF, 0xFF, 0xFF, 0xFF,


SHAR_EOF
true || echo 'restore of patch-2.4.10 failed'
fi

echo 'End of part 183'
echo 'File patch-2.4.10 is continued in part 184'
echo "184" > _shar_seq_.tmp
exit 0

Thomas Kobienia

unread,
Sep 24, 2001, 8:00:47 PM9/24/01
to
Archive-name: v2.4/patch-2.4.10/part184

#!/bin/sh -x
# this is part 184 of a 197 - part archive


# do not concatenate these parts, unpack them in order with /bin/sh
# file patch-2.4.10 continued
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck

if test "$Scheck" != 184; then


echo "Please unpack part $Scheck next!"
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping patch-2.4.10'
else
echo 'x - continuing with patch-2.4.10'
sed 's/^X//' << 'SHAR_EOF' >> 'patch-2.4.10' &&

+ 0xBF, 0x00, 0x20, 0x00, 0x01, 0xEF, 0xDF, 0xFF,
+ 0xFF, 0xFF, 0xBF, 0x00, 0x20, 0x00, 0x03, 0x03,


+ 0xDF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0x20, 0x00,

+ 0x02, 0xFD, 0xDF, 0xFF, 0xFF, 0xFF, 0xA3, 0x80,
+ 0x00, 0x00, 0x1F, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF,
+ 0xC1, 0xC0, 0x00, 0x00, 0x11, 0xFF, 0x3F, 0xFF,
+ 0xFF, 0xFF, 0x80, 0xE0, 0x00, 0x00, 0x21, 0xFE,
+ 0x3F, 0xFF, 0xFF, 0xFF, 0x00, 0x70, 0x00, 0x00,
+ 0x21, 0xFC, 0x3F, 0xFF, 0xFF, 0xFE, 0x00, 0x3C,
+ 0x00, 0x00, 0x20, 0xF8, 0x3F, 0xFF, 0xFF, 0xF0,
+ 0x00, 0x3E, 0x00, 0x00, 0x20, 0x00, 0x3F, 0xFF,
+ 0xFF, 0xC0, 0x00, 0x1F, 0x00, 0x00, 0x20, 0x00,
+ 0x3F, 0xFF, 0xFF, 0xC0, 0x00, 0x1F, 0x80, 0x00,
+ 0x20, 0x00, 0x1F, 0xFF, 0xFF, 0xC0, 0x00, 0x0F,
+ 0x80, 0x00, 0x20, 0x00, 0x07, 0xFF, 0xFE, 0x00,
+ 0x00, 0x07, 0x80, 0x00, 0x20, 0x00, 0x03, 0x87,
+ 0xF8, 0x00, 0x00, 0x07, 0x80, 0x00, 0x60, 0x00,
+ 0x01, 0x01, 0xF1, 0xFF, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x3C, 0x7D, 0xE7, 0xFF, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x3C, 0x7C, 0xE7, 0xFF,
+ 0x3E, 0x7B, 0xBE, 0x0F, 0xE1, 0xCF, 0x7C, 0x79,
+ 0xCF, 0x80, 0x3E, 0x7B, 0xFF, 0x9F, 0xF9, 0xFF,
+ 0x78, 0xF9, 0xCF, 0xF8, 0x7C, 0x73, 0xFF, 0xBE,
+ 0x79, 0xFE, 0x7F, 0xF9, 0xCF, 0xFC, 0x7C, 0xF7,
+ 0xC7, 0xBF, 0xFB, 0xFE, 0xFF, 0xF3, 0xE7, 0xFE,
+ 0x78, 0xF7, 0x87, 0xBF, 0xFB, 0xF0, 0xFF, 0xF3,
+ 0xC0, 0x3E, 0xF9, 0xE7, 0x8F, 0x7C, 0x03, 0xC0,
+ 0xF8, 0xF3, 0x9F, 0xFE, 0xFF, 0xEF, 0xFF, 0x7F,
+ 0xF3, 0xC4, 0xF1, 0xF3, 0x9F, 0xFC, 0x7F, 0xCF,
+ 0xFE, 0x3F, 0xF7, 0xC9, 0xF1, 0xE7, 0x9F, 0xF8,
+ 0x3F, 0x0F, 0x3C, 0x9F, 0xC7, 0x99, 0xF1, 0xE7,
+ 0xC0, 0x03, 0x00, 0x1E, 0x01, 0xC0, 0x00, 0x3C,
+ 0x04, 0x0F, 0xE0, 0x07, 0xC0, 0xDE, 0x03, 0xE0,
+ 0x38, 0x7E, 0x1E, 0x1F, 0xFF, 0xFF, 0xFF, 0xC0,
+ 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+
+unsigned char linux_logo16[] __initdata = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x88, 0x88, 0x88, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x88, 0x80, 0x00, 0x00, 0x08, 0x88, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x80,
+ 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x08, 0x70, 0x00, 0x00, 0x00, 0x77, 0x70, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x87, 0x77, 0x00, 0x00, 0x07, 0xFF, 0xF7, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08,
+ 0x77, 0xFF, 0x00, 0x00, 0x7F, 0x77, 0xF7, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08,
+ 0x70, 0x0F, 0x80, 0x00, 0xF7, 0x08, 0x7F, 0x70,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08,
+ 0x80, 0x07, 0x80, 0x00, 0xF8, 0x00, 0x8F, 0x70,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08,
+ 0x70, 0x07, 0x88, 0x88, 0xF8, 0x00, 0x8F, 0x70,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0xF0, 0x06, 0xE6, 0xE6, 0xE6, 0x00, 0x8F, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x77, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x77, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x60,
+ 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80,
+ 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0x60,
+ 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80,
+ 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x66, 0x66, 0x80,
+ 0x08, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80,
+ 0x86, 0xE6, 0xE6, 0xE6, 0x66, 0x66, 0x66, 0x80,
+ 0x08, 0x78, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80,
+ 0x86, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x70,
+ 0x00, 0x77, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x87, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x78,
+ 0x00, 0x88, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x87, 0x76, 0x66, 0x66, 0x77, 0x77, 0xFF, 0xF7,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08,
+ 0xFF, 0x77, 0x77, 0x77, 0x77, 0xFF, 0xFF, 0xFF,
+ 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07,
+ 0xFF, 0x77, 0x77, 0x77, 0x7F, 0xFF, 0xFF, 0xFF,
+ 0x70, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x8F,
+ 0xFF, 0xF7, 0x77, 0x77, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xF0, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x7F,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xF7, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x87, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x87, 0x77,
+ 0xFF, 0xF7, 0x77, 0xFF, 0xFF, 0xFF, 0x77, 0x77,
+ 0x77, 0x78, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x77, 0x7F,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x77,
+ 0x77, 0x78, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x7F, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xF7, 0x77, 0x00, 0x08, 0x80, 0x00, 0x00, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0x08, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0x77, 0x80, 0x00, 0x08, 0x00, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x08, 0x00, 0x80, 0x07, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFF, 0x78, 0x00, 0x08, 0x80, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x08, 0x08, 0x00, 0x8F, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFF, 0xF7, 0x08, 0x80, 0x80, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x08, 0x08, 0x08, 0x7F, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFF, 0xF7, 0x08, 0x80, 0x80, 0x00, 0x00,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x80, 0x08, 0x07, 0xFF, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x08, 0x00, 0x00,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x80, 0x80, 0x0F, 0xFF, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFF, 0xFF, 0x70, 0x00, 0x08, 0x00, 0x00,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x00, 0x80, 0x8F, 0xFF, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFF, 0xFF, 0x70, 0x00, 0x08, 0x00, 0x00,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x08, 0x00, 0x7F, 0xFF, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFF, 0xFF, 0x70, 0x00, 0x08, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x80, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x08, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x08, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x08, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x08, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x88, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x08, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x08, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xF0, 0x88, 0x88, 0x80, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x06, 0xE6, 0x00, 0x8F, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x08, 0x80,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x6E, 0x6E, 0x60, 0x08, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xE6, 0xE0, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x06, 0xE6, 0xE6, 0xE6, 0x00, 0x8F, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFE, 0x6E, 0x60, 0x00, 0x00, 0x00, 0x00,
+ 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x6E, 0x6E, 0x6E, 0x6E, 0x60, 0x08, 0xFF, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xF6, 0xE6, 0xE0, 0x00, 0x00, 0x00, 0x06,
+ 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xE6, 0xE6,
+ 0xE6, 0xE6, 0xE6, 0xE6, 0xE0, 0x00, 0x8F, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFE, 0x6E, 0x60, 0x00, 0x00, 0x00, 0x0E,
+ 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x6E, 0x6E,
+ 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x00, 0x08, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0x76, 0xE6, 0xE6, 0x00, 0x00, 0x00, 0xE6,
+ 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xE6, 0xE6,
+ 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE0, 0x00, 0x8F,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xF7, 0x7E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
+ 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x6E, 0x6E,
+ 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x60, 0x00, 0x08,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xF7, 0x76, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
+ 0xE6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xE6, 0xE6, 0xE6,
+ 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0x00, 0x00,
+ 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xF7, 0x7E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
+ 0x6E, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x87, 0x77, 0x7F, 0x7F, 0x7E,
+ 0x7E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x60, 0x00,
+ 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xF7, 0x76, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
+ 0xE6, 0xF7, 0xE7, 0x80, 0x08, 0x78, 0x78, 0x00,
+ 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xE7, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE0, 0x00,
+ 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xF7, 0x7E, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E, 0x7E,
+ 0x6F, 0xFF, 0xFF, 0x88, 0x8F, 0xFF, 0xF7, 0x80,
+ 0x00, 0x00, 0x7F, 0x7C, 0xCC, 0xCC, 0xCC, 0xCC,
+ 0x7E, 0xFF, 0xFF, 0x7E, 0x7F, 0xFF, 0x7E, 0xFF,


+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,

+ 0xFF, 0xFF, 0xF6, 0xE7, 0xFF, 0xF7, 0xEF, 0xFF,
+ 0xEF, 0xCC, 0xCC, 0x77, 0xF7, 0xCC, 0xC7, 0x78,
+ 0x00, 0x07, 0xFC, 0x44, 0x44, 0x44, 0x44, 0x44,
+ 0x7F, 0x7F, 0xF7, 0xF7, 0xFF, 0xFF, 0xF7, 0xFF,
+ 0xF7, 0xFF, 0xF7, 0x7F, 0xFF, 0xFF, 0xF7, 0x77,
+ 0x77, 0x7F, 0xFE, 0x7F, 0xFF, 0xFF, 0xF7, 0x77,
+ 0xF7, 0x4C, 0x4C, 0x7F, 0x74, 0x44, 0x4C, 0xF8,
+ 0x00, 0x8F, 0x74, 0x44, 0x44, 0x44, 0x44, 0x44,
+ 0x7F, 0x44, 0x44, 0x7F, 0xC4, 0x44, 0xCF, 0xC4,
+ 0x44, 0xCC, 0x44, 0x44, 0xCF, 0xF7, 0xC4, 0x44,
+ 0x44, 0x44, 0xCF, 0xFC, 0x44, 0x4C, 0xC4, 0x4C,
+ 0xFC, 0x44, 0x4C, 0xFF, 0x74, 0x44, 0xC7, 0xF8,
+ 0x00, 0x7F, 0xC4, 0x44, 0x4C, 0x77, 0x7C, 0xC7,
+ 0xFC, 0x44, 0x4C, 0xF7, 0x44, 0x44, 0x7F, 0x44,
+ 0x44, 0xC4, 0x44, 0x44, 0x4F, 0xF4, 0x44, 0x44,
+ 0xC4, 0x44, 0x47, 0xF4, 0x44, 0x4C, 0x44, 0x4C,
+ 0xF4, 0x44, 0x4C, 0xFF, 0xC4, 0x44, 0x4F, 0xF0,
+ 0x00, 0x7F, 0xC4, 0x44, 0x4C, 0xC7, 0x77, 0xFF,
+ 0xFC, 0x44, 0x4C, 0xF7, 0x44, 0x44, 0xF7, 0x44,
+ 0x44, 0x44, 0x44, 0x44, 0x4F, 0xC4, 0x44, 0x47,
+ 0xF7, 0x44, 0x4C, 0x74, 0x44, 0x44, 0x44, 0x47,
+ 0xF4, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCF, 0x70,
+ 0x00, 0x7F, 0xC4, 0x44, 0x44, 0x44, 0x44, 0xCF,
+ 0xF4, 0x44, 0x4C, 0xFC, 0x44, 0x4C, 0xFC, 0x44,
+ 0x4C, 0x7F, 0x44, 0x44, 0xC7, 0xC4, 0x44, 0xCC,
+ 0xCC, 0x44, 0x47, 0xC4, 0x44, 0x44, 0x44, 0xCF,
+ 0xC4, 0x44, 0x44, 0x44, 0x44, 0x44, 0x7F, 0x80,
+ 0x00, 0x0F, 0x7C, 0xC4, 0xC4, 0x44, 0x44, 0x4F,
+ 0x74, 0x44, 0xC7, 0xFC, 0x44, 0x4C, 0xFC, 0x44,
+ 0x4C, 0xFF, 0xC4, 0x44, 0xC7, 0x44, 0x44, 0x44,
+ 0x44, 0x44, 0x4F, 0xC4, 0x44, 0x4C, 0x7C, 0x7F,
+ 0xC4, 0x44, 0x44, 0xC4, 0x44, 0x44, 0xFF, 0x00,
+ 0x08, 0x77, 0xFF, 0x7F, 0xF7, 0x44, 0x44, 0x4F,
+ 0xC4, 0x44, 0x4F, 0x74, 0x44, 0x47, 0x74, 0x44,
+ 0x47, 0xFC, 0x44, 0x44, 0x7C, 0x44, 0x44, 0xF7,
+ 0xFF, 0x7F, 0x7F, 0x44, 0x44, 0x7F, 0xFF, 0xF7,
+ 0x44, 0x44, 0x7F, 0xFC, 0x44, 0x4C, 0xF7, 0x00,
+ 0x0F, 0xFC, 0x44, 0x44, 0x44, 0x44, 0x44, 0xCF,
+ 0xC4, 0x44, 0x44, 0x44, 0x44, 0xCF, 0xC4, 0x44,
+ 0x44, 0xC4, 0x44, 0x4C, 0xF7, 0x44, 0x44, 0xCC,
+ 0xCC, 0x4C, 0xF7, 0x44, 0x44, 0xFF, 0xC7, 0xF7,
+ 0x44, 0x44, 0x77, 0xF4, 0x44, 0x4C, 0xF7, 0x00,
+ 0x8F, 0xC4, 0x44, 0x44, 0x44, 0x44, 0x4C, 0x7F,
+ 0xC4, 0x44, 0x44, 0x44, 0x4C, 0x7F, 0xC4, 0x44,
+ 0xC4, 0x44, 0x44, 0x47, 0xF7, 0xC4, 0x44, 0x44,
+ 0x44, 0x47, 0xFC, 0x44, 0x4C, 0xF7, 0x67, 0xFC,
+ 0x44, 0x4C, 0xFF, 0x74, 0x44, 0x47, 0xF8, 0x00,
+ 0x87, 0x77, 0xCC, 0xCC, 0xCC, 0xCC, 0xCF, 0x77,
+ 0xF7, 0xCC, 0xCC, 0xCC, 0xCF, 0xFF, 0x44, 0x44,
+ 0x77, 0xCC, 0xCC, 0x7F, 0x87, 0xFC, 0xCC, 0xCC,
+ 0xCC, 0x7F, 0x7C, 0x7C, 0xC7, 0xE7, 0x08, 0x7C,
+ 0x7C, 0xCC, 0xFC, 0x7C, 0x7C, 0x7F, 0x80, 0x00,
+ 0x08, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
+ 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x44, 0x44,
+ 0xFF, 0xFF, 0xFF, 0xF8, 0x08, 0x7F, 0xFF, 0xFF,
+ 0xFF, 0xF8, 0x7E, 0xFF, 0xFF, 0xC0, 0x00, 0x77,
+ 0xFF, 0xFF, 0x88, 0x7F, 0xFF, 0xF6, 0x00, 0x00,
+ 0x00, 0x88, 0x77, 0x77, 0x77, 0x77, 0x80, 0x00,
+ 0x08, 0x77, 0x77, 0x77, 0x88, 0x77, 0xCC, 0xCC,
+ 0xF6, 0x77, 0x77, 0x00, 0x00, 0x07, 0x77, 0x77,
+ 0x78, 0x60, 0x08, 0x87, 0x88, 0x00, 0x00, 0x08,
+ 0x78, 0x78, 0x00, 0x88, 0x78, 0x70, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xFF, 0xFF,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x77, 0x77,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+
+#endif /* INCLUDE_LINUX_LOGO_DATA */
+
+#include <linux/linux_logo.h>
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/machvec.h linux/include/asm-sh/machvec.h
--- v2.4.9/linux/include/asm-sh/machvec.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/machvec.h Sat Sep 8 12:29:09 2001
@@ -76,6 +76,8 @@
X unsigned int mv_hw_hd64465 : 1;
X unsigned int mv_hw_dreamcast : 1;
X unsigned int mv_hw_bigsur : 1;
+ unsigned int mv_hw_7751se: 1;
+ unsigned int mv_hw_adx : 1;
X };
X
X extern struct sh_machine_vector sh_mv;
@@ -92,13 +94,19 @@
X #define MACH_SH2000 (sh_mv.mv_hw_sh2000)
X #define MACH_DREAMCAST (sh_mv.mv_hw_dreamcast)
X #define MACH_BIGSUR (sh_mv.mv_hw_bigsur)
+#define MACH_7751SE (sh_mv.mv_hw_7751se)
+#define MACH_ADX (sh_mv.mv_hw_adx)
X #else
-# if defined(CONFIG_SH_SOLUTION_ENGINE) || \
- defined(CONFIG_SH_7751_SOLUTION_ENGINE)
+# ifdef CONFIG_SH_SOLUTION_ENGINE
X # define MACH_SE 1
X # else
X # define MACH_SE 0
X # endif
+# ifdef CONFIG_SH_7751_SOLUTION_ENGINE
+# define MACH_7751SE 1
+# else
+# define MACH_7751SE 0
+# endif
X # ifdef CONFIG_SH_HP600
X # define MACH_HP600 1
X # else
@@ -119,7 +127,6 @@
X # else
X # define MACH_HP690 0
X # endif
-# endif
X # ifdef CONFIG_HD64461
X # define MACH_HD64461 1
X # else
@@ -149,6 +156,12 @@
X # define MACH_BIGSUR 1
X # else
X # define MACH_BIGSUR 0
+# endif
+# ifdef CONFIG_SH_ADX
+# define MACH_ADX 1
+# else
+# define MACH_ADX 0
+# endif
X #endif
X
X #endif /* _ASM_SH_MACHVEC_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/mmu_context.h linux/include/asm-sh/mmu_context.h
--- v2.4.9/linux/include/asm-sh/mmu_context.h Thu Jan 4 13:19:13 2001
+++ linux/include/asm-sh/mmu_context.h Sat Sep 8 12:29:09 2001
@@ -29,7 +29,7 @@
X */
X #define MMU_VPN_MASK 0xfffff000
X
-extern __inline__ void
+static __inline__ void
X get_new_mmu_context(struct mm_struct *mm)
X {
X extern void flush_tlb_all(void);
@@ -51,7 +51,7 @@
X /*
X * Get MMU context if needed.
X */
-extern __inline__ void
+static __inline__ void
X get_mmu_context(struct mm_struct *mm)
X {
X if (mm) {
@@ -67,8 +67,8 @@
X * Initialize the context related info for a new mm_struct
X * instance.
X */
-extern __inline__ int init_new_context(struct task_struct *tsk,
- struct mm_struct *mm)
+static __inline__ int init_new_context(struct task_struct *tsk,
+ struct mm_struct *mm)
X {
X mm->context = NO_CONTEXT;
X return 0;
@@ -78,7 +78,7 @@
X * Destroy context related info for an mm_struct that is about
X * to be put to rest.
X */
-extern __inline__ void destroy_context(struct mm_struct *mm)
+static __inline__ void destroy_context(struct mm_struct *mm)
X {
X /* Do nothing */
X }
@@ -126,7 +126,7 @@
X #define MMU_ITLB_VALID 0x100
X #endif
X
-extern __inline__ void set_asid(unsigned long asid)
+static __inline__ void set_asid(unsigned long asid)
X {
X unsigned long __dummy;
X
@@ -139,7 +139,7 @@
X "r" (0xffffff00));
X }
X
-extern __inline__ unsigned long get_asid(void)
+static __inline__ unsigned long get_asid(void)
X {
X unsigned long asid;
X
@@ -154,7 +154,7 @@
X * After we have set current->mm to a new value, this activates
X * the context for the new mm so we see the new mappings.
X */
-extern __inline__ void activate_context(struct mm_struct *mm)
+static __inline__ void activate_context(struct mm_struct *mm)
X {
X get_mmu_context(mm);
X set_asid(mm->context & MMU_CONTEXT_ASID_MASK);
@@ -162,7 +162,7 @@
X
X /* MMU_TTB can be used for optimizing the fault handling.
X (Currently not used) */
-extern __inline__ void switch_mm(struct mm_struct *prev,
+static __inline__ void switch_mm(struct mm_struct *prev,
X struct mm_struct *next,
X struct task_struct *tsk, unsigned int cpu)
X {
@@ -181,7 +181,7 @@
X #define activate_mm(prev, next) \
X switch_mm((prev),(next),NULL,smp_processor_id())
X
-extern __inline__ void
+static __inline__ void
X enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk, unsigned cpu)
X {
X }
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/module.h linux/include/asm-sh/module.h
--- v2.4.9/linux/include/asm-sh/module.h Tue Nov 7 10:46:04 2000
+++ linux/include/asm-sh/module.h Thu Sep 13 16:33:03 2001


@@ -7,5 +7,6 @@
X #define module_map(x) vmalloc(x)
X #define module_unmap(x) vfree(x)
X #define module_arch_init(x) (0)
+#define arch_init_modules(x) do { } while (0)
X

X #endif /* _ASM_SH_MODULE_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/page.h linux/include/asm-sh/page.h
--- v2.4.9/linux/include/asm-sh/page.h Sun Dec 3 17:48:19 2000
+++ linux/include/asm-sh/page.h Sat Sep 8 12:29:09 2001
@@ -24,8 +24,8 @@
X #ifdef __KERNEL__
X #ifndef __ASSEMBLY__
X
-#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
-#define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE)
+extern void clear_page(void *to);
+extern void copy_page(void *to, void *from);
X
X #if defined(__sh3__)
X #define clear_user_page(page, vaddr) clear_page(page)
@@ -33,6 +33,8 @@
X #elif defined(__SH4__)
X extern void clear_user_page(void *to, unsigned long address);
X extern void copy_user_page(void *to, void *from, unsigned long address);
+extern void __clear_user_page(void *to, void *orig_to);
+extern void __copy_user_page(void *to, void *from, void *orig_to);


X #endif
X
X /*

@@ -67,12 +69,24 @@
X */
X
X #define __MEMORY_START CONFIG_MEMORY_START
+#define __MEMORY_SIZE CONFIG_MEMORY_SIZE
+#ifdef CONFIG_DISCONTIGMEM
+/* Just for HP690, for now.. */
+#define __MEMORY_START_2ND (__MEMORY_START+0x02000000)
+#define __MEMORY_SIZE_2ND 0x001000000 /* 16MB */
+#endif
X
X #define PAGE_OFFSET (0x80000000UL)
X #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
X #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
-#define virt_to_page(kaddr) (mem_map + ((__pa(kaddr)-__MEMORY_START) >> PAGE_SHIFT))
+
+#ifndef CONFIG_DISCONTIGMEM
+#define phys_to_page(phys) (mem_map + (((phys)-__MEMORY_START) >> PAGE_SHIFT))
X #define VALID_PAGE(page) ((page - mem_map) < max_mapnr)
+#define page_to_phys(page) (((page - mem_map) << PAGE_SHIFT) + __MEMORY_START)
+#endif
+
+#define virt_to_page(kaddr) phys_to_page(__pa(kaddr))
X
X #ifndef __ASSEMBLY__
X
@@ -89,7 +103,7 @@
X } while (0)
X
X /* Pure 2^n version of get_order */
-extern __inline__ int get_order(unsigned long size)
+static __inline__ int get_order(unsigned long size)
X {
X int order;
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/pci.h linux/include/asm-sh/pci.h
--- v2.4.9/linux/include/asm-sh/pci.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/pci.h Sat Sep 8 12:29:09 2001
@@ -3,6 +3,8 @@


X
X #ifdef __KERNEL__
X

+#include <linux/config.h>
+
X /* Can be used to override the logic in pci_scan_bus for skipping
X already-configured bus numbers - to be used for buggy BIOSes
X or architectures with incomplete PCI setup by the loader */
@@ -24,7 +26,7 @@
X #define PCIBIOS_MIN_IO 0x2000
X #define PCIBIOS_MIN_MEM 0xFD000000
X
-#elif defined(CONFIG_SH_7751_SOLUTION_ENGINE) && defined(CONFIG_CPU_SUBTYPE_SH7751)
+#elif defined(CONFIG_SH_7751_SOLUTION_ENGINE)
X #define PCIBIOS_MIN_IO 0x4000
X #define PCIBIOS_MIN_MEM 0xFD000000
X #endif
@@ -32,10 +34,6 @@
X struct pci_dev;
X
X extern void pcibios_set_master(struct pci_dev *dev);
-//static inline void pcibios_set_master(struct pci_dev *dev)
-//{
- /* No special bus mastering setup handling */
-//}
X
X static inline void pcibios_penalize_isa_irq(int irq)
X {
@@ -80,10 +78,14 @@
X * until either pci_unmap_single or pci_dma_sync_single is performed.
X */
X static inline dma_addr_t pci_map_single(struct pci_dev *hwdev, void *ptr,
- size_t size,int directoin)
+ size_t size, int direction)
X {
-
- flush_cache_all();
+ if (direction == PCI_DMA_NONE)
+ BUG();
+
+#ifdef CONFIG_SH_PCIDMA_NONCOHERENT
+ dma_cache_wback_inv(ptr, size);
+#endif
X return virt_to_bus(ptr);
X }
X
@@ -116,9 +118,17 @@
X * the same here.
X */
X static inline int pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
- int nents,int direction)
+ int nents, int direction)
X {
- flush_cache_all();
+#ifdef CONFIG_SH_PCIDMA_NONCOHERENT
+ int i;
+
+ for (i=0; i<nents; i++)
+ dma_cache_wback_inv(sg[i].address, sg[i].length);
+#endif
+ if (direction == PCI_DMA_NONE)
+ BUG();
+
X return nents;
X }
X
@@ -127,7 +137,7 @@
X * pci_unmap_single() above.
X */
X static inline void pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg,
- int nents,int direction)
+ int nents, int direction)
X {
X /* Nothing to do */
X }
@@ -143,9 +153,15 @@
X */
X static inline void pci_dma_sync_single(struct pci_dev *hwdev,
X dma_addr_t dma_handle,
- size_t size,int direction)
+ size_t size, int direction)
X {
- /* Nothing to do */
+ if (direction == PCI_DMA_NONE)
+ BUG();
+
+#ifdef CONFIG_SH_PCIDMA_NONCOHERENT
+ dma_cache_wback_inv(bus_to_virt(dma_handle), size);
+#endif
+
X }
X
X /* Make physical memory consistent for a set of streaming
@@ -156,9 +172,17 @@
X */
X static inline void pci_dma_sync_sg(struct pci_dev *hwdev,
X struct scatterlist *sg,
- int nelems,int direction)
+ int nelems, int direction)
X {
- /* Nothing to do */
+ if (direction == PCI_DMA_NONE)
+ BUG();
+
+#ifdef CONFIG_SH_PCIDMA_NONCOHERENT
+ int i;
+
+ for (i=0; i<nelems; i++)
+ dma_cache_wback_inv(sg[i].address, sg[i].length);
+#endif
X }
X
X
@@ -167,7 +191,7 @@
X * only drive the low 24-bits during PCI bus mastering, then
X * you would pass 0x00ffffff as the mask to this function.
X */
-extern inline int pci_dma_supported(struct pci_dev *hwdev, dma_addr_t mask)
+static inline int pci_dma_supported(struct pci_dev *hwdev, dma_addr_t mask)
X {
X return 1;
X }
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/pgalloc.h linux/include/asm-sh/pgalloc.h
--- v2.4.9/linux/include/asm-sh/pgalloc.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/pgalloc.h Sat Sep 8 12:29:09 2001
@@ -5,10 +5,10 @@
X #include <linux/threads.h>
X #include <linux/slab.h>
X
-#define pgd_quicklist (current_cpu_data.pgd_quick)
+#define pgd_quicklist ((unsigned long *)0)
X #define pmd_quicklist ((unsigned long *)0)
-#define pte_quicklist (current_cpu_data.pte_quick)
-#define pgtable_cache_size (current_cpu_data.pgtable_cache_sz)
+#define pte_quicklist ((unsigned long *)0)
+#define pgtable_cache_size 0L
X
X #define pmd_populate(mm, pmd, pte) \
X set_pmd(pmd, __pmd(_PAGE_TABLE + __pa(pte)))
@@ -17,7 +17,7 @@
X * Allocate and free page tables.
X */
X
-static inline pgd_t *get_pgd_slow(void)
+static inline pgd_t *pgd_alloc(struct mm_struct *mm)
X {
X unsigned int pgd_size = (USER_PTRS_PER_PGD * sizeof(pgd_t));
X pgd_t *pgd = (pgd_t *)kmalloc(pgd_size, GFP_KERNEL);
@@ -28,36 +28,14 @@
X return pgd;
X }
X
-static inline pgd_t *get_pgd_fast(void)
-{
- unsigned long *ret;
-
- if ((ret = pgd_quicklist) != NULL) {
- pgd_quicklist = (unsigned long *)(*ret);
- ret[0] = 0;
- pgtable_cache_size--;
- } else
- ret = (unsigned long *)get_pgd_slow();
- return (pgd_t *)ret;
-}
-
-static inline void free_pgd_fast(pgd_t *pgd)
-{
- *(unsigned long *)pgd = (unsigned long) pgd_quicklist;
- pgd_quicklist = (unsigned long *) pgd;
- pgtable_cache_size++;
-}
-
-static inline void free_pgd_slow(pgd_t *pgd)
+static inline void pgd_free(pgd_t *pgd)
X {
X kfree(pgd);
X }
X
X static inline pte_t *pte_alloc_one(struct mm_struct *mm, unsigned long address)
X {
- pte_t *pte;
-
- pte = (pte_t *) __get_free_page(GFP_KERNEL);
+ pte_t *pte = (pte_t *) __get_free_page(GFP_KERNEL);
X if (pte)
X clear_page(pte);
X return pte;
@@ -65,21 +43,7 @@
X
X static inline pte_t *pte_alloc_one_fast(struct mm_struct *mm, unsigned long address)
X {
- unsigned long *ret;
-
- if ((ret = (unsigned long *)pte_quicklist) != NULL) {
- pte_quicklist = (unsigned long *)(*ret);
- ret[0] = 0;
- pgtable_cache_size--;
- }
- return (pte_t *)ret;
-}
-
-static inline void pte_free_fast(pte_t *pte)
-{
- *(unsigned long *)pte = (unsigned long) pte_quicklist;
- pte_quicklist = (unsigned long *) pte;
- pgtable_cache_size++;


+ return 0;
X }
X

X static inline void pte_free_slow(pte_t *pte)
@@ -87,9 +51,7 @@
X free_page((unsigned long)pte);
X }
X
-#define pte_free(pte) pte_free_fast(pte)
-#define pgd_free(pgd) free_pgd_fast(pgd)
-#define pgd_alloc(mm) get_pgd_fast()
+#define pte_free(pte) pte_free_slow(pte)
X
X /*
X * allocating and freeing a pmd is trivial: the 1-entry pmd is
@@ -106,7 +68,8 @@
X #define pmd_free(x) do { } while (0)
X #define pgd_populate(mm, pmd, pte) BUG()
X
-extern int do_check_pgt_cache(int, int);
+/* Do nothing */
+static inline int do_check_pgt_cache(int low, int high) { }
X
X /*
X * TLB flushing:
@@ -125,10 +88,69 @@
X extern void flush_tlb_range(struct mm_struct *mm, unsigned long start,
X unsigned long end);
X extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
+extern void __flush_tlb_page(unsigned long asid, unsigned long page);
X
X static inline void flush_tlb_pgtables(struct mm_struct *mm,
X unsigned long start, unsigned long end)
X { /* Nothing to do */
X }
X
+#if defined(__SH4__)
+/*
+ * For SH-4, we have our own implementation for ptep_get_and_clear
+ */
+static inline pte_t ptep_get_and_clear(pte_t *ptep)
+{
+ pte_t pte = *ptep;
+
+ pte_clear(ptep);
+ if (!pte_not_present(pte)) {
+ struct page *page = pte_page(pte);
+ if (VALID_PAGE(page)&&
+ (!page->mapping || !(page->mapping->i_mmap_shared)))
+ __clear_bit(PG_mapped, &page->flags);
+ }
+ return pte;
+}
+#else
+static inline pte_t ptep_get_and_clear(pte_t *ptep)
+{
+ pte_t pte = *ptep;
+ pte_clear(ptep);
+ return pte;
+}
+#endif
+
+/*
+ * Following functions are same as generic ones.
+ */
+static inline int ptep_test_and_clear_young(pte_t *ptep)
+{
+ pte_t pte = *ptep;
+ if (!pte_young(pte))
+ return 0;
+ set_pte(ptep, pte_mkold(pte));
+ return 1;
+}
+
+static inline int ptep_test_and_clear_dirty(pte_t *ptep)
+{
+ pte_t pte = *ptep;
+ if (!pte_dirty(pte))
+ return 0;
+ set_pte(ptep, pte_mkclean(pte));
+ return 1;
+}
+
+static inline void ptep_set_wrprotect(pte_t *ptep)
+{
+ pte_t old_pte = *ptep;
+ set_pte(ptep, pte_wrprotect(old_pte));
+}
+
+static inline void ptep_mkdirty(pte_t *ptep)
+{
+ pte_t old_pte = *ptep;
+ set_pte(ptep, pte_mkdirty(old_pte));
+}
X #endif /* __ASM_SH_PGALLOC_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/pgtable-2level.h linux/include/asm-sh/pgtable-2level.h
--- v2.4.9/linux/include/asm-sh/pgtable-2level.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/pgtable-2level.h Sat Sep 8 12:29:09 2001
@@ -33,7 +33,7 @@
X static inline int pgd_none(pgd_t pgd) { return 0; }
X static inline int pgd_bad(pgd_t pgd) { return 0; }
X static inline int pgd_present(pgd_t pgd) { return 1; }
-static inline void pgd_clear (pgd_t * pgdp) { pgd_val(*(pgdp)) = 0; }
+static inline void pgd_clear (pgd_t * pgdp) { }
X
X /*
X * Certain architectures need to do special things when PTEs
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/pgtable.h linux/include/asm-sh/pgtable.h
--- v2.4.9/linux/include/asm-sh/pgtable.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/pgtable.h Sat Sep 8 12:29:09 2001
@@ -42,22 +42,46 @@
X #define flush_icache_range(start, end) do { } while (0)
X #define flush_icache_page(vma,pg) do { } while (0)
X #define flush_cache_sigtramp(vaddr) do { } while (0)
+
+#define p3_cache_init() do { } while (0)
+
X #elif defined(__SH4__)
X /*
X * Caches are broken on SH-4, so we need them.
X */
+
+/* Page is 4K, OC size is 16K, there are four lines. */
+#define CACHE_ALIAS 0x00003000
+
X extern void flush_cache_all(void);
X extern void flush_cache_mm(struct mm_struct *mm);
X extern void flush_cache_range(struct mm_struct *mm, unsigned long start,
X unsigned long end);
X extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr);
-extern void flush_page_to_ram(struct page *page);
X extern void flush_dcache_page(struct page *pg);
X extern void flush_icache_range(unsigned long start, unsigned long end);
-extern void flush_icache_page(struct vm_area_struct *vma, struct page *pg);
X extern void flush_cache_sigtramp(unsigned long addr);
+
+#define flush_page_to_ram(page) do { } while (0)
+#define flush_icache_page(vma,pg) do { } while (0)
+
+/* Initialization of P3 area for copy_user_page */
+extern void p3_cache_init(void);
+
+#define PG_mapped PG_arch_1
+
+/* We provide our own get_unmapped_area to avoid cache alias issue */
+#define HAVE_ARCH_UNMAPPED_AREA
X #endif
X
+/* Flush (write-back only) a region (smaller than a page) */
+extern void __flush_wback_region(void *start, int size);
+/* Flush (write-back & invalidate) a region (smaller than a page) */
+extern void __flush_purge_region(void *start, int size);
+/* Flush (invalidate only) a region (smaller than a page) */
+extern void __flush_invalidate_region(void *start, int size);
+
+
X /*
X * Basically we have the same two-level (which is the logical three level
X * Linux page table layout folded) page tables as the i386.
@@ -82,8 +106,14 @@
X #define USER_PTRS_PER_PGD (TASK_SIZE/PGDIR_SIZE)
X #define FIRST_USER_PGD_NR 0
X
+#define PTE_PHYS_MASK 0x1ffff000
+
X #ifndef __ASSEMBLY__
-#define VMALLOC_START P3SEG
+/*
+ * First 1MB map is used by fixed purpose.
+ * Currently only 4-enty (16kB) is used (see arch/sh/mm/cache.c)
+ */
+#define VMALLOC_START (P3SEG+0x00100000)
X #define VMALLOC_VMADDR(x) ((unsigned long)(x))
X #define VMALLOC_END P4SEG
X
@@ -180,9 +210,9 @@
X * Permanent address of a page. Obviously must never be
X * called on a highmem page.
X */
-#define page_address(page) ((page)->virtual)
-#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
-#define pte_page(x) (mem_map+(unsigned long)(((pte_val(x) -__MEMORY_START) >> PAGE_SHIFT)))
+#define page_address(page) ((page)->virtual) /* P1 address of the page */
+#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
+#define pte_page(x) phys_to_page(pte_val(x)&PTE_PHYS_MASK)
X
X /*
X * The following only work if pte_present() is true.
@@ -193,7 +223,7 @@
X static inline int pte_dirty(pte_t pte){ return pte_val(pte) & _PAGE_DIRTY; }
X static inline int pte_young(pte_t pte){ return pte_val(pte) & _PAGE_ACCESSED; }
X static inline int pte_write(pte_t pte){ return pte_val(pte) & _PAGE_RW; }
-static inline int pte_shared(pte_t pte){ return pte_val(pte) & _PAGE_SHARED; }
+static inline int pte_not_present(pte_t pte){ return !(pte_val(pte) & _PAGE_PRESENT); }
X
X static inline pte_t pte_rdprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_USER)); return pte; }
X static inline pte_t pte_exprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_USER)); return pte; }
@@ -215,9 +245,8 @@
X #define mk_pte(page,pgprot) \
X ({ pte_t __pte; \
X \
- set_pte(&__pte, __pte(((page)-mem_map) * \
- (unsigned long long)PAGE_SIZE + pgprot_val(pgprot) + \
- __MEMORY_START)); \
+ set_pte(&__pte, __pte(PHYSADDR(page_address(page)) \
+ +pgprot_val(pgprot))); \
X __pte; \
X })
X
@@ -266,8 +295,10 @@
X *
X * We just can use generic implementation, as SuperH has no SMP feature.
X * (We needed atomic implementation for SMP)
+ *
X */
-#include <asm-generic/pgtable.h>
+
+#define pte_same(A,B) (pte_val(A) == pte_val(B))
X
X #endif /* !__ASSEMBLY__ */
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/processor.h linux/include/asm-sh/processor.h
--- v2.4.9/linux/include/asm-sh/processor.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/processor.h Mon Sep 17 15:30:15 2001
@@ -30,13 +30,9 @@
X
X struct sh_cpuinfo {
X enum cpu_type type;
- unsigned long loops_per_jiffy;
-
X char hard_math;
+ unsigned long loops_per_jiffy;
X
- unsigned long *pgd_quick;
- unsigned long *pte_quick;
- unsigned long pgtable_cache_sz;
X unsigned int cpu_clock, master_clock, bus_clock, module_clock;
X #ifdef CONFIG_CPU_SUBTYPE_ST40STB1
X unsigned int memory_clock;
@@ -114,9 +110,6 @@
X union sh_fpu_union fpu;
X };
X
-#define INIT_MMAP \
-{ &init_mm, 0, 0, NULL, PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }
-
X #define INIT_THREAD { \
X sizeof(init_stack) + (long) &init_stack, /* sp */ \
X 0, /* pc */ \
@@ -163,7 +156,7 @@
X * FPU lazy state save handling.
X */
X
-extern __inline__ void release_fpu(void)
+static __inline__ void release_fpu(void)
X {
X unsigned long __dummy;
X
@@ -175,7 +168,7 @@
X : "r" (SR_FD));
X }
X
-extern __inline__ void grab_fpu(void)
+static __inline__ void grab_fpu(void)
X {
X unsigned long __dummy;
X
@@ -207,7 +200,7 @@
X /*


X * Return saved PC of a blocked thread.

X */
-extern __inline__ unsigned long thread_saved_pc(struct thread_struct *t)
+static __inline__ unsigned long thread_saved_pc(struct thread_struct *t)
X {
X return t->pc;
X }
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/ptrace.h linux/include/asm-sh/ptrace.h
--- v2.4.9/linux/include/asm-sh/ptrace.h Thu Jan 4 13:19:13 2001
+++ linux/include/asm-sh/ptrace.h Sat Sep 8 12:29:09 2001
@@ -1,6 +1,8 @@
X #ifndef __ASM_SH_PTRACE_H
X #define __ASM_SH_PTRACE_H
X
+#include <asm/processor.h>
+
X /*
X * Copyright (C) 1999, 2000 Niibe Yutaka
X *
@@ -69,6 +71,12 @@
X
X /* User Break Controller */
X
+#if defined(CONFIG_CPU_SUBTYPE_SH7709)
+#define UBC_TYPE_SH7729 (cpu_data->type == CPU_SH7729)
+#else
+#define UBC_TYPE_SH7729 0
+#endif
+
X #if defined(__sh3__)
X #define UBC_BARA 0xffffffb0
X #define UBC_BAMRA 0xffffffb4
@@ -106,14 +114,17 @@
X #define BBR_INST (1 << 4)
X #define BBR_DATA (2 << 4)
X #define BBR_READ (1 << 2)
-#define BBR_WRITE (2 << 4)
+#define BBR_WRITE (2 << 2)
X #define BBR_BYTE 0x1
X #define BBR_HALF 0x2
X #define BBR_LONG 0x3
-#define BBR_QUAD (1 << 6)
+#define BBR_QUAD (1 << 6) /* SH7750 */
+#define BBR_CPU (1 << 6) /* SH7709A,SH7729 */
+#define BBR_DMA (2 << 6) /* SH7709A,SH7729 */
X
X #define BRCR_CMFA (1 << 15)
X #define BRCR_CMFB (1 << 14)
+#define BRCR_PCTE (1 << 11)
X #define BRCR_PCBA (1 << 10) /* 1: after execution */
X #define BRCR_DBEB (1 << 7)
X #define BRCR_PCBB (1 << 6)
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/semaphore.h linux/include/asm-sh/semaphore.h
--- v2.4.9/linux/include/asm-sh/semaphore.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/semaphore.h Sat Sep 8 12:29:09 2001
@@ -48,7 +48,7 @@
X #define DECLARE_MUTEX(name) __DECLARE_SEMAPHORE_GENERIC(name,1)
X #define DECLARE_MUTEX_LOCKED(name) __DECLARE_SEMAPHORE_GENERIC(name,0)
X
-extern inline void sema_init (struct semaphore *sem, int val)
+static inline void sema_init (struct semaphore *sem, int val)
X {
X /*
X * *sem = (struct semaphore)__SEMAPHORE_INITIALIZER((*sem),val);
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/shmparam.h linux/include/asm-sh/shmparam.h
--- v2.4.9/linux/include/asm-sh/shmparam.h Wed Nov 3 11:31:09 1999
+++ linux/include/asm-sh/shmparam.h Sat Sep 8 12:29:09 2001
@@ -1,6 +1,13 @@
X #ifndef __ASM_SH_SHMPARAM_H
X #define __ASM_SH_SHMPARAM_H
X
+#if defined(__SH4__)
+/*
+ * SH-4 has D-cache alias issue
+ */
+#define SHMLBA (PAGE_SIZE*4) /* attach addr a multiple of this */
+#else
X #define SHMLBA PAGE_SIZE /* attach addr a multiple of this */
+#endif
X
X #endif /* __ASM_SH_SHMPARAM_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/smplock.h linux/include/asm-sh/smplock.h
--- v2.4.9/linux/include/asm-sh/smplock.h Tue Apr 25 16:53:13 2000
+++ linux/include/asm-sh/smplock.h Sat Sep 8 12:29:09 2001
@@ -17,56 +17,7 @@
X #define reacquire_kernel_lock(task, cpu, depth) do { } while(0)
X
X #else
-
-#error "We do not support SMP on SH yet"
-/*
- * Default SMP lock implementation
- */
-
-#include <linux/interrupt.h>
-#include <asm/spinlock.h>
-
-extern spinlock_t kernel_flag;
-
-/*
- * Getting the big kernel lock.
- *
- * This cannot happen asynchronously,
- * so we only need to worry about other
- * CPU's.
- */
-extern __inline__ void lock_kernel(void)
-{
- if (!++current->lock_depth)
- spin_lock(&kernel_flag);
-}
-
-extern __inline__ void unlock_kernel(void)
-{
- if (--current->lock_depth < 0)
- spin_unlock(&kernel_flag);
-}
-
-/*
- * Release global kernel lock and global interrupt lock
- */
-#define release_kernel_lock(task, cpu) \
-do { \
- if (task->lock_depth >= 0) \
- spin_unlock(&kernel_flag); \
- release_irqlock(cpu); \
- __sti(); \
-} while (0)
-
-/*
- * Re-acquire the kernel lock
- */
-#define reacquire_kernel_lock(task) \
-do { \
- if (task->lock_depth >= 0) \
- spin_lock(&kernel_flag); \
-} while (0)
-
+#error "We do not support SMP on SH"
X #endif /* CONFIG_SMP */
X
X #endif /* __ASM_SH_SMPLOCK_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/softirq.h linux/include/asm-sh/softirq.h
--- v2.4.9/linux/include/asm-sh/softirq.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-sh/softirq.h Sat Sep 8 12:29:09 2001
@@ -18,14 +18,12 @@
X
X #define local_bh_enable() \
X do { \
+ barrier(); \
X if (!--local_bh_count(smp_processor_id()) \
X && softirq_pending(smp_processor_id())) { \
X do_softirq(); \
- __sti(); \
X } \
X } while (0)
-


-#define __cpu_raise_softirq(cpu, nr) set_bit((nr), &softirq_pending(cpu));

X

X #define in_softirq() (local_bh_count(smp_processor_id()) != 0)

X
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/string.h linux/include/asm-sh/string.h
--- v2.4.9/linux/include/asm-sh/string.h Tue Jul 3 17:08:21 2001
+++ linux/include/asm-sh/string.h Sat Sep 8 12:29:09 2001
@@ -121,6 +121,9 @@
X #define __HAVE_ARCH_MEMCHR
X extern void *memchr(const void *__s, int __c, size_t __n);
X
+#define __HAVE_ARCH_STRLEN
+extern size_t strlen(const char *);
+
X /* Don't build bcopy at all ... */
X #define __HAVE_ARCH_BCOPY
X
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/system.h linux/include/asm-sh/system.h
--- v2.4.9/linux/include/asm-sh/system.h Sun Jan 28 18:56:00 2001
+++ linux/include/asm-sh/system.h Sat Sep 8 12:29:09 2001
@@ -129,29 +129,54 @@
X : "memory");
X }
X
-#define __save_flags(x) \
-x = (__extension__ ({ unsigned long __sr; \
- __asm__ __volatile__( \
- "stc sr, %0" \
- : "=&r" (__sr) \
- : /* no inputs */ \
- : "memory"); \
- (__sr & 0x000000f0);}))
-
-#define __save_and_cli(x) \
-x = (__extension__ ({ unsigned long __dummy,__sr; \
- __asm__ __volatile__( \
- "stc sr, %1\n\t" \
- "mov %1, %0\n\t" \
- "or #0xf0, %0\n\t" \
- "ldc %0, sr" \
- : "=&z" (__dummy), "=&r" (__sr) \
- : /* no inputs */ \
- : "memory"); (__sr & 0x000000f0); }))
+#define __save_flags(x) \
+ __asm__("stc sr, %0; and #0xf0, %0" : "=&z" (x) :/**/: "memory" )
X
+static __inline__ unsigned long __save_and_cli(void)
+{
+ unsigned long flags, __dummy;
+
+ __asm__ __volatile__("stc sr, %1\n\t"
+ "mov %1, %0\n\t"
+ "or #0xf0, %0\n\t"
+ "ldc %0, sr\n\t"
+ "mov %1, %0\n\t"
+ "and #0xf0, %0"
+ : "=&z" (flags), "=&r" (__dummy)
+ :/**/
+ : "memory" );
+ return flags;
+}
+
+#ifdef DEBUG_CLI_STI
+static __inline__ void __restore_flags(unsigned long x)
+{
+ if ((x & 0x000000f0) != 0x000000f0)
+ __sti();
+ else {
+ unsigned long flags;
+ __save_flags(flags);
+
+ if (flags == 0) {
+ extern void dump_stack(void);
+ printk(KERN_ERR "BUG!\n");
+ dump_stack();
+ __cli();
+ }
+ }
+}
+#else
X #define __restore_flags(x) do { \
- if (x != 0x000000f0) /* not CLI-ed? */ \
+ if ((x & 0x000000f0) != 0x000000f0) \
+ __sti(); \
+} while (0)
+#endif
+
+#define really_restore_flags(x) do { \
+ if ((x & 0x000000f0) != 0x000000f0) \
X __sti(); \
+ else \
+ __cli(); \
X } while (0)
X
X /*
@@ -191,7 +216,7 @@
X } while (0)
X
X /* For spinlocks etc */
-#define local_irq_save(x) __save_and_cli(x)
+#define local_irq_save(x) x = __save_and_cli()
X #define local_irq_restore(x) __restore_flags(x)
X #define local_irq_disable() __cli()
X #define local_irq_enable() __sti()
@@ -212,7 +237,7 @@
X #define cli() __cli()
X #define sti() __sti()
X #define save_flags(x) __save_flags(x)
-#define save_and_cli(x) __save_and_cli(x)
+#define save_and_cli(x) x = __save_and_cli()
X #define restore_flags(x) __restore_flags(x)
X
X #endif
diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/tlb.h linux/include/asm-sh/tlb.h
--- v2.4.9/linux/include/asm-sh/tlb.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-sh/tlb.h Fri Sep 14 08:41:04 2001


@@ -0,0 +1 @@
+#include <asm-generic/tlb.h>

diff -u --recursive --new-file v2.4.9/linux/include/asm-sh/uaccess.h linux/include/asm-sh/uaccess.h
--- v2.4.9/linux/include/asm-sh/uaccess.h Thu Jan 4 13:19:13 2001
+++ linux/include/asm-sh/uaccess.h Sat Sep 8 12:29:09 2001
@@ -1,4 +1,4 @@
-/* $Id: uaccess.h,v 1.10 2000/03/24 13:53:45 gniibe Exp $
+/* $Id: uaccess.h,v 1.12 2001/07/27 06:09:47 gniibe Exp $
X *
X * User space memory access functions
X *
@@ -195,7 +195,7 @@
X /* Generic arbitrary sized copy. */
X /* Return the number of bytes NOT copied */
X /* XXX: should be such that: 4byte and the rest. */
-extern __inline__ __kernel_size_t
+static __inline__ __kernel_size_t
X __copy_user(void *__to, const void *__from, __kernel_size_t __n)
X {
X unsigned long __dummy, _f, _t;
@@ -260,7 +260,7 @@
X
X /* XXX: Not sure it works well..
X should be such that: 4byte clear and the rest. */
-extern __inline__ __kernel_size_t
+static __inline__ __kernel_size_t
X __clear_user(void *addr, __kernel_size_t size)
X {
X unsigned long __a;
@@ -299,7 +299,7 @@
X __cl_size = __clear_user(__cl_addr, __cl_size); \
X __cl_size; })
X
-extern __inline__ int
+static __inline__ int
X __strncpy_from_user(unsigned long __dest, unsigned long __src, int __count)
X {
X __kernel_size_t res;
@@ -351,7 +351,7 @@
X /*
X * Return the size of a string (including the ending 0!)
X */
-extern __inline__ long __strnlen_user(const char *__s, long __n)
+static __inline__ long __strnlen_user(const char *__s, long __n)
X {
X unsigned long res;
X unsigned long __dummy;
@@ -384,7 +384,7 @@


X return res;
X }
X

-extern __inline__ long strnlen_user(const char *s, long n)
+static __inline__ long strnlen_user(const char *s, long n)
X {
X if (!__addr_ok(s))
X return 0;
diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc/fcntl.h linux/include/asm-sparc/fcntl.h
--- v2.4.9/linux/include/asm-sparc/fcntl.h Tue Oct 10 10:33:52 2000
+++ linux/include/asm-sparc/fcntl.h Thu Sep 20 14:11:58 2001
@@ -1,4 +1,4 @@
-/* $Id: fcntl.h,v 1.15 2000/09/23 02:09:21 davem Exp $ */
+/* $Id: fcntl.h,v 1.16 2001/09/20 00:35:33 davem Exp $ */
X #ifndef _SPARC_FCNTL_H
X #define _SPARC_FCNTL_H
X
@@ -20,6 +20,7 @@
X #define O_DIRECTORY 0x10000 /* must be a directory */
X #define O_NOFOLLOW 0x20000 /* don't follow links */
X #define O_LARGEFILE 0x40000
+#define O_DIRECT 0x100000 /* direct disk access hint */
X
X #define F_DUPFD 0 /* dup */
X #define F_GETFD 1 /* get close_on_exec */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc/keyboard.h linux/include/asm-sparc/keyboard.h
--- v2.4.9/linux/include/asm-sparc/keyboard.h Mon Dec 20 22:05:52 1999
+++ linux/include/asm-sparc/keyboard.h Tue Aug 28 07:09:44 2001
@@ -1,4 +1,4 @@
-/* $Id: keyboard.h,v 1.3 1999/11/23 08:56:44 davem Exp $
+/* $Id: keyboard.h,v 1.7 2001/08/18 09:40:46 davem Exp $
X * linux/include/asm-sparc/keyboard.h
X *
X * sparc64 Created Aug 29 1997 by Eddie C. Dost (e...@skynet.be)
@@ -13,7 +13,9 @@


X
X #ifdef __KERNEL__
X

+#include <linux/config.h>


X #include <linux/ioport.h>
+#include <linux/kd.h>
X #include <asm/io.h>
X

X #define KEYBOARD_IRQ 13
diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc/kmap_types.h linux/include/asm-sparc/kmap_types.h
--- v2.4.9/linux/include/asm-sparc/kmap_types.h Thu Apr 12 12:11:39 2001
+++ linux/include/asm-sparc/kmap_types.h Mon Sep 17 13:16:30 2001
@@ -3,9 +3,10 @@


X
X enum km_type {
X KM_BOUNCE_READ,
- KM_BOUNCE_WRITE,
X KM_SKB_DATA,
X KM_SKB_DATA_SOFTIRQ,
+ KM_USER0,
+ KM_USER1,
X KM_TYPE_NR
X };

X
diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc/module.h linux/include/asm-sparc/module.h
--- v2.4.9/linux/include/asm-sparc/module.h Tue Nov 7 10:46:04 2000
+++ linux/include/asm-sparc/module.h Thu Sep 13 16:33:03 2001


@@ -7,5 +7,6 @@
X #define module_map(x) vmalloc(x)
X #define module_unmap(x) vfree(x)
X #define module_arch_init(x) (0)
+#define arch_init_modules(x) do { } while (0)
X

X #endif /* _ASM_SPARC_MODULE_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc/processor.h linux/include/asm-sparc/processor.h
--- v2.4.9/linux/include/asm-sparc/processor.h Thu Apr 12 12:10:25 2001
+++ linux/include/asm-sparc/processor.h Thu Sep 20 14:11:58 2001
@@ -1,4 +1,4 @@
-/* $Id: processor.h,v 1.81 2001/03/27 02:36:37 davem Exp $
+/* $Id: processor.h,v 1.82 2001/09/20 00:35:34 davem Exp $
X * include/asm-sparc/processor.h
X *
X * Copyright (C) 1994 David S. Miller (da...@caip.rutgers.edu)
@@ -90,9 +90,6 @@
X
X #define SPARC_FLAG_KTHREAD 0x1 /* task is a kernel thread */
X #define SPARC_FLAG_UNALIGNED 0x2 /* is allowed to do unaligned accesses */
-
-#define INIT_MMAP { &init_mm, (0), (0), \
- NULL, __pgprot(0x0) , VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }
X
X #define INIT_THREAD { \
X /* uwinmask, kregs, ksp, kpc, kpsr, kwim */ \
diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc/softirq.h linux/include/asm-sparc/softirq.h
--- v2.4.9/linux/include/asm-sparc/softirq.h Wed Jul 25 17:10:25 2001
+++ linux/include/asm-sparc/softirq.h Sat Sep 8 12:02:32 2001
@@ -22,13 +22,6 @@
X __sti(); \
X } \
X } while (0)
-#define __do_cpu_raise_softirq(cpu, nr) (softirq_pending(cpu) |= (1<<nr))
-#define __cpu_raise_softirq(cpu, nr) \
-do { unsigned long flags; \
- local_irq_save(flags); \
- __do_cpu_raise_softirq(cpu, nr); \
- local_irq_restore(flags); \
-} while (0)


X #define in_softirq() (local_bh_count(smp_processor_id()) != 0)
X

X #endif /* __SPARC_SOFTIRQ_H */
diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc/tlb.h linux/include/asm-sparc/tlb.h
--- v2.4.9/linux/include/asm-sparc/tlb.h Wed Dec 31 16:00:00 1969
+++ linux/include/asm-sparc/tlb.h Fri Sep 14 08:41:04 2001


@@ -0,0 +1 @@
+#include <asm-generic/tlb.h>

diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc64/elf.h linux/include/asm-sparc64/elf.h
--- v2.4.9/linux/include/asm-sparc64/elf.h Thu Apr 12 12:10:25 2001
+++ linux/include/asm-sparc64/elf.h Fri Sep 7 11:01:20 2001
@@ -1,4 +1,4 @@
-/* $Id: elf.h,v 1.29 2001/03/30 07:10:48 davem Exp $ */
+/* $Id: elf.h,v 1.30 2001/08/30 23:35:38 kanoj Exp $ */
X #ifndef __ASM_SPARC64_ELF_H
X #define __ASM_SPARC64_ELF_H
X
@@ -40,7 +40,7 @@
X #endif
X
X #define USE_ELF_CORE_DUMP
-#define ELF_EXEC_PAGESIZE 8192
+#define ELF_EXEC_PAGESIZE PAGE_SIZE
X
X /* This is the location that an ET_DYN program is loaded if exec'ed. Typical
X use of this is to invoke "./ld.so someprog" to test out a new version of
diff -u --recursive --new-file v2.4.9/linux/include/asm-sparc64/fcntl.h linux/include/asm-sparc64/fcntl.h
--- v2.4.9/linux/include/asm-sparc64/fcntl.h Tue Oct 10 10:33:52 2000
+++ linux/include/asm-sparc64/fcntl.h Thu Sep 20 14:11:58 2001
@@ -1,4 +1,4 @@
-/* $Id: fcntl.h,v 1.11 2000/09/23 02:09:21 davem Exp $ */
+/* $Id: fcntl.h,v 1.12 2001/09/20 00:35:34 davem Exp $ */
X #ifndef _SPARC64_FCNTL_H
X #define _SPARC64_FCNTL_H
X
@@ -20,6 +20,8 @@
X #define O_DIRECTORY 0x10000 /* must be a directory */
X #define O_NOFOLLOW 0x20000 /* don't follow links */
X #define O_LARGEFILE 0x40000
+#define O_DIRECT 0x100000 /* direct disk access hint */
+
X
X #define F_DUPFD 0 /* dup */
X #define F_GETFD 1 /* get close_on_exec */


SHAR_EOF
true || echo 'restore of patch-2.4.10 failed'
fi

echo 'End of part 184'
echo 'File patch-2.4.10 is continued in part 185'
echo "185" > _shar_seq_.tmp
exit 0

0 new messages