diff options
Diffstat (limited to 'include/asm-mips')
-rw-r--r-- | include/asm-mips/bootinfo.h | 6 | ||||
-rw-r--r-- | include/asm-mips/byteorder.h | 17 | ||||
-rw-r--r-- | include/asm-mips/delay.h | 20 | ||||
-rw-r--r-- | include/asm-mips/dma.h | 22 | ||||
-rw-r--r-- | include/asm-mips/fcntl.h | 4 | ||||
-rw-r--r-- | include/asm-mips/floppy.h | 3 | ||||
-rw-r--r-- | include/asm-mips/io.h | 21 | ||||
-rw-r--r-- | include/asm-mips/irq.h | 16 | ||||
-rw-r--r-- | include/asm-mips/keyboard.h | 76 | ||||
-rw-r--r-- | include/asm-mips/linux_logo.h | 925 | ||||
-rw-r--r-- | include/asm-mips/mmu_context.h | 90 | ||||
-rw-r--r-- | include/asm-mips/namei.h | 15 | ||||
-rw-r--r-- | include/asm-mips/page.h | 54 | ||||
-rw-r--r-- | include/asm-mips/pci.h | 4 | ||||
-rw-r--r-- | include/asm-mips/processor.h | 3 | ||||
-rw-r--r-- | include/asm-mips/ptrace.h | 11 | ||||
-rw-r--r-- | include/asm-mips/resource.h | 23 | ||||
-rw-r--r-- | include/asm-mips/semaphore.h | 6 | ||||
-rw-r--r-- | include/asm-mips/shmparam.h | 4 | ||||
-rw-r--r-- | include/asm-mips/sni.h | 14 | ||||
-rw-r--r-- | include/asm-mips/termios.h | 2 | ||||
-rw-r--r-- | include/asm-mips/uaccess.h | 35 | ||||
-rw-r--r-- | include/asm-mips/unistd.h | 50 | ||||
-rw-r--r-- | include/asm-mips/vga.h | 29 |
24 files changed, 1147 insertions, 303 deletions
diff --git a/include/asm-mips/bootinfo.h b/include/asm-mips/bootinfo.h index dc2b1c2fa..cd812982a 100644 --- a/include/asm-mips/bootinfo.h +++ b/include/asm-mips/bootinfo.h @@ -1,4 +1,4 @@ -/* $Id: bootinfo.h,v 1.4 1998/08/25 09:21:55 ralf Exp $ +/* $Id: bootinfo.h,v 1.5 1998/10/18 13:23:45 tsbogend Exp $ * * bootinfo.h -- Definition of the Linux/MIPS boot information structure * @@ -157,8 +157,8 @@ typedef struct mips_arc_DisplayInfo { /* video adapter information */ #define DEFAULT_SCREEN_INFO {0, 0, 0, 0, 0, 160, 0, 0, 0, 64, 0, 16} #define DEFAULT_DRIVE_INFO { {0,}} #else -/* default values for screen_info variable */ -#define DEFAULT_SCREEN_INFO {0, 0, 0, 52, 3, 80, 4626, 3, 9, 50} +/* default values for screen_info variable (Colour VGA) */ +#define DEFAULT_SCREEN_INFO {0, 0, 0, 52, 3, 80, 4626, 3, 9, 50, 0x22, 16} #endif /* default values for drive info */ diff --git a/include/asm-mips/byteorder.h b/include/asm-mips/byteorder.h index 28f6376db..b9604cf20 100644 --- a/include/asm-mips/byteorder.h +++ b/include/asm-mips/byteorder.h @@ -1,8 +1,25 @@ +/* $Id: byteorder.h,v 1.8 1998/11/02 09:29:32 ralf Exp $ + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) by Ralf Baechle + */ #ifndef _MIPS_BYTEORDER_H #define _MIPS_BYTEORDER_H #include <asm/types.h> +#ifdef __GNUC__ + +#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) +# define __BYTEORDER_HAS_U64__ +# define __SWAB_64_THRU_32__ +#endif + +#endif /* __GNUC__ */ + #if defined (__MIPSEB__) # include <linux/byteorder/big_endian.h> #elif defined (__MIPSEL__) diff --git a/include/asm-mips/delay.h b/include/asm-mips/delay.h index ec2ad70f3..0f5660a83 100644 --- a/include/asm-mips/delay.h +++ b/include/asm-mips/delay.h @@ -1,3 +1,12 @@ +/* $Id: delay.h,v 1.3 1998/10/27 21:46:33 ralf Exp $ + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 1994 by Waldorf Electronics + * Copyright (C) 1995 - 1998 by Ralf Baechle + */ #ifndef __ASM_MIPS_DELAY_H #define __ASM_MIPS_DELAY_H @@ -25,7 +34,7 @@ extern __inline__ void __delay(int loops) extern __inline__ void __udelay(unsigned long usecs, unsigned long lps) { usecs *= 0x000010c6; /* 2**32 / 1000000 */ - __asm__("multu\t%0,%1\n\t" + __asm__("multu\t%0,%2\n\t" "mfhi\t%0" :"=r" (usecs) :"0" (usecs),"r" (lps)); @@ -40,13 +49,4 @@ extern __inline__ void __udelay(unsigned long usecs, unsigned long lps) #define udelay(usecs) __udelay((usecs),__udelay_val) -/* - * The different variants for 32/64 bit are pure paranoia. The typical - * range of numbers that appears for MIPS machines avoids overflows. - */ -extern __inline__ unsigned long muldiv(unsigned long a, unsigned long b, unsigned long c) -{ - return (a*b)/c; -} - #endif /* __ASM_MIPS_DELAY_H */ diff --git a/include/asm-mips/dma.h b/include/asm-mips/dma.h index 320022c76..1432efa8e 100644 --- a/include/asm-mips/dma.h +++ b/include/asm-mips/dma.h @@ -1,4 +1,4 @@ -/* $Id: dma.h,v 1.7 1992/12/14 00:29:34 root Exp root $ +/* $Id: dma.h,v 1.4 1998/11/15 03:25:44 ralf Exp $ * linux/include/asm/dma.h: Defines for using and allocating dma channels. * Written by Hennus Bergman, 1992. * High DMA channel support & info by Hannu Savolainen @@ -14,6 +14,9 @@ #include <linux/config.h> #include <asm/io.h> /* need byte IO */ +#include <asm/spinlock.h> /* And spinlocks */ +#include <linux/delay.h> +#include <asm/system.h> #ifdef HAVE_REALLY_SLOW_DMA_CONTROLLER @@ -143,6 +146,21 @@ #define DMA_MODE_WRITE 0x48 /* memory to I/O, no autoinit, increment, single mode */ #define DMA_MODE_CASCADE 0xC0 /* pass thru DREQ->HRQ, DACK<-HLDA only */ + +extern spinlock_t dma_spin_lock; + +static __inline__ unsigned long claim_dma_lock(void) +{ + unsigned long flags; + spin_lock_irqsave(&dma_spin_lock, flags); + return flags; +} + +static __inline__ void release_dma_lock(unsigned long flags) +{ + spin_unlock_irqrestore(&dma_spin_lock, flags); +} + /* enable/disable a specific DMA channel */ static __inline__ void enable_dma(unsigned int dmanr) { @@ -165,7 +183,7 @@ static __inline__ void disable_dma(unsigned int dmanr) * Use this once to initialize the FF to a known state. * After that, keep track of it. :-) * --- In order to do that, the DMA routines below should --- - * --- only be used while interrupts are disabled! --- + * --- only be used while holding the DMA lock ! --- */ static __inline__ void clear_dma_ff(unsigned int dmanr) { diff --git a/include/asm-mips/fcntl.h b/include/asm-mips/fcntl.h index f67501e17..02b0c7dae 100644 --- a/include/asm-mips/fcntl.h +++ b/include/asm-mips/fcntl.h @@ -1,4 +1,4 @@ -/* $Id: fcntl.h,v 1.3 1998/08/29 20:41:02 ralf Exp $ +/* $Id: fcntl.h,v 1.4 1998/09/19 19:19:36 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -25,6 +25,8 @@ #define FASYNC 0x1000 /* fcntl, for BSD compatibility */ #define O_LARGEFILE 0x2000 /* allow large file opens - currently ignored */ #define O_DIRECT 0x8000 /* direct disk access hint - currently ignored */ +#define O_DIRECTORY 0x10000 /* must be a directory */ +#define O_NOFOLLOW 0x20000 /* don't follow links */ #define O_NDELAY O_NONBLOCK diff --git a/include/asm-mips/floppy.h b/include/asm-mips/floppy.h index 39a68b582..a1343749d 100644 --- a/include/asm-mips/floppy.h +++ b/include/asm-mips/floppy.h @@ -1,4 +1,4 @@ -/* $Id: floppy.h,v 1.4 1997/12/01 18:00:37 ralf Exp $ +/* $Id: floppy.h,v 1.5 1998/06/30 00:23:09 ralf Exp $ * * Architecture specific parts of the Floppy driver * @@ -11,7 +11,6 @@ #ifndef __ASM_MIPS_FLOPPY_H #define __ASM_MIPS_FLOPPY_H -#include <linux/config.h> #include <asm/bootinfo.h> #include <asm/jazz.h> #include <asm/jazzdma.h> diff --git a/include/asm-mips/io.h b/include/asm-mips/io.h index 2319c27c9..bc9390c2a 100644 --- a/include/asm-mips/io.h +++ b/include/asm-mips/io.h @@ -140,18 +140,21 @@ extern inline void iounmap(void *addr) /* * XXX We need system specific versions of these to handle EISA address bits * 24-31 on SNI. + * XXX more SNI hacks. */ -#define readb(addr) (*(volatile unsigned char *) (isa_slot_offset + (unsigned long)(addr))) -#define readw(addr) (*(volatile unsigned short *) (isa_slot_offset + (unsigned long)(addr))) -#define readl(addr) (*(volatile unsigned int *) (isa_slot_offset + (unsigned long)(addr))) +#define readb(addr) (*(volatile unsigned char *) (0xa0000000 + (unsigned long)(addr))) +#define readw(addr) (*(volatile unsigned short *) (0xa0000000 + (unsigned long)(addr))) +#define readl(addr) (*(volatile unsigned int *) (0xa0000000 + (unsigned long)(addr))) -#define writeb(b,addr) (*(volatile unsigned char *) (isa_slot_offset + (unsigned long)(addr)) = (b)) -#define writew(b,addr) (*(volatile unsigned short *) (isa_slot_offset + (unsigned long)(addr)) = (b)) -#define writel(b,addr) (*(volatile unsigned int *) (isa_slot_offset + (unsigned long)(addr)) = (b)) +#define writeb(b,addr) (*(volatile unsigned char *) (0xa0000000 + (unsigned long)(addr)) = (b)) +#define writew(b,addr) (*(volatile unsigned short *) (0xa0000000 + (unsigned long)(addr)) = (b)) +#define writel(b,addr) (*(volatile unsigned int *) (0xa0000000 + (unsigned long)(addr)) = (b)) -#define memset_io(a,b,c) memset((void *)(isa_slot_offset + (unsigned long)a),(b),(c)) -#define memcpy_fromio(a,b,c) memcpy((a),(void *)(isa_slot_offset + (unsigned long)(b)),(c)) -#define memcpy_toio(a,b,c) memcpy((void *)(isa_slot_offset + (unsigned long)(a)),(b),(c)) +#define memset_io(a,b,c) memset((void *)(0xa0000000 + (unsigned long)a),(b),(c)) +#define memcpy_fromio(a,b,c) memcpy((a),(void *)(0xa0000000 + (unsigned long)(b)),(c)) +#define memcpy_toio(a,b,c) memcpy((void *)(0xa0000000 + (unsigned long)(a)),(b),(c)) + +/* END SNI HACKS ... */ /* * We don't have csum_partial_copy_fromio() yet, so we cheat here and diff --git a/include/asm-mips/irq.h b/include/asm-mips/irq.h index ce3f5fdbe..2d783fd5a 100644 --- a/include/asm-mips/irq.h +++ b/include/asm-mips/irq.h @@ -1,4 +1,4 @@ -/* $Id: irq.h,v 1.4 1998/05/28 03:18:13 ralf Exp $ +/* $Id: irq.h,v 1.4 1998/06/30 00:23:10 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -10,9 +10,6 @@ #ifndef __ASM_MIPS_IRQ_H #define __ASM_MIPS_IRQ_H -/* - * Actually this is a lie but we hide the local device's interrupts ... - */ #define NR_IRQS 64 #define TIMER_IRQ 0 @@ -20,19 +17,10 @@ extern int (*irq_cannonicalize)(int irq); struct irqaction; -extern int setup_x86_irq(int irq, struct irqaction * new); +extern int i8259_setup_irq(int irq, struct irqaction * new); extern void disable_irq(unsigned int); extern void enable_irq(unsigned int); -extern unsigned int local_irq_count[]; - -#ifdef __SMP__ -#error Send superfluous SMP boxes to ralf@uni-koblenz.de -#else -#define irq_enter(cpu, irq) (++local_irq_count[cpu]) -#define irq_exit(cpu, irq) (--local_irq_count[cpu]) -#endif - /* Machine specific interrupt initialization */ extern void (*irq_setup)(void); diff --git a/include/asm-mips/keyboard.h b/include/asm-mips/keyboard.h index d6cc1fbfc..2b1901a9e 100644 --- a/include/asm-mips/keyboard.h +++ b/include/asm-mips/keyboard.h @@ -5,7 +5,7 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * $Id: keyboard.h,v 1.10 1998/08/26 22:12:32 tsbogend Exp $ + * $Id: keyboard.h,v 1.11 1998/09/19 19:19:37 ralf Exp $ */ #ifndef __ASM_MIPS_KEYBOARD_H #define __ASM_MIPS_KEYBOARD_H @@ -17,6 +17,8 @@ #include <linux/ioport.h> #include <asm/bootinfo.h> +#define DISABLE_KBD_DURING_INTERRUPTS 0 + extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode); extern int pckbd_getkeycode(unsigned int scancode); extern int pckbd_pretranslate(unsigned char scancode, char raw_mode); @@ -41,60 +43,36 @@ extern unsigned char pckbd_sysrq_xlate[128]; /* Some stoneage hardware needs delays after some operations. */ #define kbd_pause() do { } while(0) -/* Pointers to keyboard hardware access and init functions. */ -unsigned char (*kbd_read_input)(void); -void (*kbd_write_output)(unsigned char val); -void (*kbd_write_command)(unsigned char val); -unsigned char (*kbd_read_status)(void); - -void (*keyboard_setup)(void); - -#ifdef CONFIG_MIPS_JAZZ - -extern int jazz_ps2_request_irq(void); -extern void jazz_ps2_free_irq(void); - -#define ps2_request_irq() jazz_ps2_request_irq() -#define ps2_free_irq(inode) jazz_ps2_free_irq() - -#endif /* CONFIG_MIPS_JAZZ */ - -#ifdef CONFIG_SGI - -#define DISABLE_KBD_DURING_INTERRUPTS 1 - -/* - * Machine specific bits for the PS/2 driver. - * Aux device and keyboard share the interrupt on the Indy. - */ -#define ps2_request_irq() 0 -#define ps2_free_irq(void) do { } while(0); +struct kbd_ops { + /* Keyboard driver resource allocation */ + void (*kbd_request_region)(void); + int (*kbd_request_irq)(void (*handler)(int, void *, struct pt_regs *)); -#endif /* CONFIG_SGI */ + /* PSaux driver resource managment */ + int (*aux_request_irq)(void (*handler)(int, void *, struct pt_regs *)); + void (*aux_free_irq)(void); -#if defined(CONFIG_ACER_PICA_61) || defined(CONFIG_SNI_RM200_PCI) -#define CONF_KEYBOARD_USES_IO_PORTS -#endif + /* Methods to access the keyboard processor's I/O registers */ + unsigned char (*kbd_read_input)(void); + void (*kbd_write_output)(unsigned char val); + void (*kbd_write_command)(unsigned char val); + unsigned char (*kbd_read_status)(void); +}; -#ifdef CONF_KEYBOARD_USES_IO_PORTS -/* - * Most other MIPS machines access the keyboard controller via - * memory mapped I/O ports. - */ -#include <asm/io.h> +extern struct kbd_ops *kbd_ops; -/* - * Machine specific bits for the PS/2 driver - */ - -#define AUX_IRQ 12 +/* Do the actual calls via kbd_ops vector */ +#define kbd_request_region() kbd_ops->kbd_request_region() +#define kbd_request_irq(handler) kbd_ops->kbd_request_irq(handler) -#define ps2_request_irq() \ - request_irq(AUX_IRQ, aux_interrupt, 0, "PS/2 Mouse", NULL) +#define aux_request_irq(hand, dev_id) kbd_ops->aux_request_irq(hand) +#define aux_free_irq(dev_id) kbd_ops->aux_free_irq() -#define ps2_free_irq(inode) free_irq(AUX_IRQ, NULL) - -#endif /* CONF_KEYBOARD_USES_IO_PORTS */ +#define kbd_read_input() kbd_ops->kbd_read_input() +#define kbd_write_output(val) kbd_ops->kbd_write_output(val) +#define kbd_write_command(val) kbd_ops->kbd_write_command(val) +#define kbd_read_status() kbd_ops->kbd_read_status() #endif /* __KERNEL */ + #endif /* __ASM_MIPS_KEYBOARD_H */ diff --git a/include/asm-mips/linux_logo.h b/include/asm-mips/linux_logo.h index cf54ec3cf..31450dbeb 100644 --- a/include/asm-mips/linux_logo.h +++ b/include/asm-mips/linux_logo.h @@ -1,10 +1,10 @@ -/* $Id: linux_logo.h,v 1.2 1998/08/28 23:23:12 tsbogend Exp $ +/* $Id: linux_logo.h,v 1.3 1998/09/19 19:19:38 ralf Exp $ * * include/asm-mips/linux_logo.h: This is a linux logo - * to be displayed on boot. + * to be displayed on boot. * * Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu) - * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz) + * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) * * You can put anything here, but: * LINUX_LOGO_COLORS has to be less than 224 @@ -24,32 +24,906 @@ #define linux_logo_banner "Linux/MIPS version " UTS_RELEASE -#define LINUX_LOGO_COLORS 221 +#define LINUX_LOGO_COLORS 212 #ifdef INCLUDE_LINUX_LOGO_DATA -#define INCLUDE_LINUX_LOGO16 -#include <linux/linux_logo.h> +unsigned char linux_logo_red[] __initdata = { + 0x03, 0x82, 0xE9, 0xBF, 0x42, 0xC9, 0x7E, 0xC0, + 0xE9, 0xE3, 0xC2, 0x24, 0xA4, 0x65, 0xEC, 0xC4, + 0x82, 0x9F, 0xF3, 0x12, 0x5F, 0xA0, 0xC2, 0xED, + 0x3E, 0xD5, 0xDB, 0xA0, 0x1C, 0xF4, 0xEB, 0xA4, + 0xCD, 0x0A, 0x9A, 0x51, 0xCC, 0xBE, 0xC0, 0xBA, + 0x74, 0xDC, 0xAA, 0xF6, 0xD3, 0xC5, 0xE6, 0x26, + 0xC2, 0x83, 0x38, 0xEA, 0x49, 0xB0, 0xED, 0xE5, + 0xF4, 0x96, 0x96, 0x1B, 0xFA, 0xCC, 0xF2, 0x0F, + 0xCD, 0xE5, 0xF4, 0xD3, 0x50, 0x7A, 0xB5, 0xDE, + 0xD5, 0xB6, 0x60, 0x0A, 0x6A, 0xEA, 0xD4, 0xEB, + 0xC1, 0xCA, 0xEA, 0xEC, 0x2A, 0x96, 0x95, 0xDC, + 0xE4, 0xCE, 0xEC, 0x1E, 0xDC, 0x8A, 0xD1, 0xF6, + 0x3C, 0x5E, 0xC6, 0xB4, 0xB2, 0xAC, 0xBA, 0x9E, + 0x0F, 0x59, 0xBA, 0xFA, 0xCC, 0xBF, 0x82, 0xCE, + 0xE6, 0x4F, 0xAA, 0x4C, 0xCA, 0x8E, 0x8E, 0xDF, + 0x2C, 0xB6, 0x3B, 0xDE, 0xCE, 0xEE, 0x46, 0x4A, + 0x6F, 0x7A, 0x82, 0xE4, 0xAA, 0x88, 0xE2, 0xCE, + 0xAE, 0xB6, 0x70, 0xC2, 0x9A, 0xDA, 0x35, 0x9E, + 0x95, 0xC0, 0x7E, 0x8C, 0xC2, 0xB6, 0xCE, 0xB9, + 0xD5, 0xAA, 0xC1, 0xF4, 0xC7, 0xB6, 0xB6, 0xA3, + 0xF2, 0x68, 0xDB, 0x76, 0xDC, 0x57, 0xD3, 0xA8, + 0xC0, 0xEF, 0x46, 0xF4, 0x2F, 0xD7, 0x53, 0x36, + 0xE6, 0xA7, 0xCA, 0xCB, 0x7E, 0xE4, 0x86, 0x9A, + 0xCE, 0x94, 0xB4, 0x1D, 0xDA, 0xCE, 0x6C, 0xE6, + 0x9E, 0xC6, 0xDA, 0x16, 0xFA, 0xAA, 0x56, 0xB6, + 0xFE, 0x6E, 0xEA, 0xCE, 0xE5, 0xCC, 0xDB, 0xD3, + 0xED, 0xDC, 0xF4, 0x72 +}; -/* Painted by Johnny Stenback <jst@uwasa.fi> */ +unsigned char linux_logo_green[] __initdata = { + 0x03, 0x82, 0xC4, 0x83, 0x42, 0xA2, 0x4A, 0xA4, + 0xE5, 0xA6, 0xC2, 0x24, 0xA4, 0x65, 0xB4, 0x94, + 0x66, 0x87, 0xB6, 0x12, 0x44, 0x6C, 0x96, 0xD4, + 0x36, 0x95, 0xB2, 0x92, 0x0E, 0xF4, 0xBC, 0x77, + 0xA5, 0x0A, 0x92, 0x52, 0xB4, 0x9A, 0x8C, 0xB2, + 0x74, 0xC2, 0x8E, 0xBD, 0xA2, 0xCA, 0xD2, 0x12, + 0xB6, 0x61, 0x24, 0xDA, 0x33, 0x79, 0xCB, 0xAC, + 0xDA, 0x84, 0x7A, 0x1B, 0xFA, 0x8D, 0xBE, 0x06, + 0x93, 0xBB, 0xBC, 0xAB, 0x44, 0x62, 0x83, 0xDA, + 0x9B, 0xA2, 0x4C, 0x04, 0x6A, 0xB6, 0xC8, 0xBD, + 0x8D, 0xB6, 0xAD, 0xEC, 0x2A, 0x68, 0x62, 0x9D, + 0xC4, 0xC4, 0xB4, 0x13, 0xA3, 0x8A, 0xD2, 0xD6, + 0x3C, 0x5D, 0x8C, 0x7E, 0x82, 0xAC, 0x96, 0x7E, + 0x0D, 0x5A, 0xBA, 0xBB, 0xCC, 0xBE, 0x76, 0xB6, + 0xDE, 0x4E, 0x9A, 0x3C, 0xBE, 0x8E, 0x6E, 0xCB, + 0x1C, 0xAA, 0x2E, 0xBE, 0xAA, 0xDE, 0x3E, 0x4B, + 0x4D, 0x7A, 0x54, 0xE4, 0x8E, 0x6E, 0xCA, 0x9B, + 0x70, 0x9E, 0x5A, 0xAA, 0x9A, 0xBE, 0x34, 0x9E, + 0x71, 0x9E, 0x7E, 0x5F, 0xAA, 0x8A, 0xBE, 0x91, + 0xCE, 0x88, 0x92, 0xDB, 0xC6, 0xAB, 0x8A, 0x72, + 0xE2, 0x44, 0xC3, 0x54, 0xAA, 0x45, 0xBB, 0x92, + 0xBA, 0xC4, 0x46, 0xCA, 0x2D, 0xD6, 0x3B, 0x1A, + 0xC2, 0x7E, 0xA6, 0xCB, 0x7A, 0xDC, 0x86, 0x72, + 0xB6, 0x94, 0xB4, 0x1C, 0xBC, 0xAE, 0x4C, 0xD6, + 0x62, 0x86, 0xD3, 0x16, 0xF6, 0x7A, 0x55, 0x79, + 0xFE, 0x6E, 0xC6, 0xC6, 0xAA, 0x93, 0xDC, 0x9D, + 0xAE, 0xA4, 0xD4, 0x56 +}; -unsigned char *linux_serial_image __initdata = "\n" -" .u$e.\n" -" .$$$$$:S\n" -" $\"*$/\"*$$\n" -" $.`$ . ^F\n" -" 4k+#+T.$F\n" -" 4P+++\"$\"$\n" -" :R\"+ t$$B\n" -" ___# $$$\n" -" | | R$$k\n" -" dd. | Linux $!$\n" -" ddd | MIPS $9$F\n" -" '!!!!!$ !!#!`\n" -" !!!!!* .!!!!!`\n" -"'!!!!!!!W..e$$!!!!!!` %s\n" -" \"~^^~ ^~~^\n" -"\n"; +unsigned char linux_logo_blue[] __initdata = { + 0x04, 0x84, 0x10, 0x0C, 0x41, 0x14, 0x04, 0x78, + 0xC7, 0x0E, 0xC4, 0x24, 0xA4, 0x64, 0x0C, 0x0D, + 0x17, 0x24, 0x0D, 0x13, 0x11, 0x07, 0x40, 0x22, + 0x0C, 0x0C, 0x11, 0x78, 0x06, 0xF4, 0x0B, 0x0A, + 0x47, 0x0B, 0x7C, 0x54, 0x6C, 0x0C, 0x0D, 0x9C, + 0x73, 0x54, 0x14, 0x0C, 0x0F, 0xC7, 0x94, 0x04, + 0x94, 0x17, 0x0A, 0x6C, 0x08, 0x0F, 0x14, 0x0B, + 0x12, 0x68, 0x28, 0x11, 0xFA, 0x0A, 0x34, 0x09, + 0x0A, 0x2F, 0x15, 0x19, 0x14, 0x3C, 0x06, 0xC4, + 0x0B, 0x84, 0x24, 0x08, 0x69, 0x38, 0xBC, 0x15, + 0x1F, 0xA0, 0x0A, 0xEC, 0x2A, 0x0C, 0x0C, 0x0C, + 0x2C, 0xA0, 0x15, 0x07, 0x0B, 0x8C, 0xD3, 0x10, + 0x3B, 0x5C, 0x0C, 0x04, 0x3C, 0xAC, 0x54, 0x1C, + 0x0B, 0x5B, 0xBB, 0x0A, 0xC1, 0xBB, 0x5C, 0x3C, + 0xBC, 0x4D, 0x74, 0x10, 0x8C, 0x8C, 0x14, 0x91, + 0x0C, 0x74, 0x17, 0x0C, 0x48, 0x9C, 0x3C, 0x4C, + 0x09, 0x7C, 0x05, 0xE4, 0x34, 0x38, 0x6C, 0x11, + 0x08, 0x7C, 0x18, 0x2C, 0x9C, 0x4C, 0x34, 0x9C, + 0x29, 0x54, 0x7C, 0x0C, 0x78, 0x18, 0x9C, 0x14, + 0xBA, 0x30, 0x27, 0x31, 0xC2, 0x97, 0x24, 0x09, + 0xB4, 0x04, 0x87, 0x0C, 0x14, 0x1F, 0x7C, 0x64, + 0xB0, 0x0F, 0x45, 0x10, 0x2C, 0xD4, 0x0A, 0x04, + 0x44, 0x1F, 0x2C, 0xCC, 0x7C, 0xD8, 0x84, 0x0C, + 0x8C, 0x94, 0xB4, 0x1D, 0x20, 0x5C, 0x18, 0xB4, + 0x04, 0x09, 0xBC, 0x14, 0xF4, 0x08, 0x54, 0x07, + 0xFC, 0x6C, 0x24, 0xB4, 0x15, 0x18, 0xDB, 0x17, + 0x17, 0x18, 0x21, 0x24 +}; + +unsigned char linux_logo[] __initdata = { + 0xBC, 0xAC, 0x7D, 0x95, 0xAF, 0x85, 0x2C, 0x2C, + 0xAC, 0xD9, 0x95, 0x7D, 0x95, 0xAC, 0x2C, 0xAF, + 0x7D, 0x48, 0xB2, 0xAC, 0x85, 0xDA, 0xDA, 0x2C, + 0x7D, 0x48, 0x21, 0x2C, 0x8D, 0x2A, 0x8A, 0xDA, + 0x85, 0x2C, 0xD9, 0xAC, 0x2C, 0x2C, 0xD9, 0xD9, + 0xAF, 0x85, 0x85, 0x85, 0x8D, 0xBC, 0x2A, 0x2A, + 0xBC, 0x8C, 0xBC, 0xAC, 0x7D, 0x95, 0xAF, 0x85, + 0x2C, 0x2C, 0xAC, 0xD9, 0x95, 0x7D, 0x95, 0xAC, + 0x2C, 0xAF, 0x7D, 0x48, 0xB2, 0xAC, 0x85, 0xDA, + 0xDA, 0x2C, 0x7D, 0x48, 0x21, 0x2C, 0x8D, 0x2A, + 0xAF, 0xA1, 0x48, 0x7D, 0xAF, 0x2C, 0x2C, 0xAC, + 0xD9, 0xD9, 0x95, 0x7D, 0x95, 0xAC, 0xD9, 0x7D, + 0x48, 0xE9, 0x21, 0xAF, 0xDA, 0xDA, 0x85, 0x2C, + 0xD9, 0xD9, 0xAC, 0xDA, 0x8A, 0xDA, 0x85, 0x2C, + 0x2C, 0xAC, 0xD9, 0xAC, 0xAF, 0xAF, 0x2C, 0x2C, + 0x2C, 0x85, 0x2C, 0x2C, 0x85, 0xDA, 0xDA, 0xDA, + 0xDA, 0xDA, 0xAF, 0xA1, 0x48, 0x7D, 0xAF, 0x2C, + 0x2C, 0xAC, 0xD9, 0xD9, 0x95, 0x7D, 0x95, 0xAC, + 0xD9, 0x7D, 0x48, 0xE9, 0x21, 0xAF, 0xDA, 0xDA, + 0x85, 0x2C, 0xD9, 0xD9, 0xAC, 0xDA, 0x8A, 0xDA, + 0x7D, 0x48, 0x48, 0x7D, 0x2C, 0x85, 0x2C, 0xAF, + 0xD9, 0xD9, 0x7D, 0x95, 0xD9, 0xD9, 0xD9, 0x7D, + 0xB2, 0x21, 0xD9, 0x85, 0xDA, 0xDA, 0x85, 0x2C, + 0xAF, 0x2C, 0x2C, 0xDA, 0x85, 0x85, 0x2C, 0x2C, + 0xAC, 0xD9, 0xD9, 0xAF, 0xDA, 0x85, 0x2C, 0x2C, + 0x85, 0xDA, 0xDA, 0x85, 0x85, 0xDA, 0x85, 0x85, + 0x85, 0xAF, 0x7D, 0x48, 0x48, 0x7D, 0x2C, 0x85, + 0x2C, 0xAF, 0xD9, 0xD9, 0x7D, 0x95, 0xD9, 0xD9, + 0xD9, 0x7D, 0xB2, 0x21, 0xD9, 0x85, 0xDA, 0xDA, + 0x85, 0x2C, 0xAF, 0x2C, 0x2C, 0xDA, 0xDA, 0x85, + 0xA1, 0xE9, 0x48, 0x95, 0x85, 0xDA, 0x85, 0xAF, + 0xD9, 0xD9, 0x95, 0x95, 0xD9, 0xD9, 0x95, 0x95, + 0xD9, 0xAC, 0x85, 0x85, 0xDA, 0xDA, 0x85, 0x2C, + 0xAC, 0xAC, 0x2C, 0x2C, 0x85, 0x2C, 0x2C, 0xAC, + 0xD9, 0xD9, 0x2C, 0x91, 0x41, 0x20, 0x6B, 0x20, + 0x6B, 0x20, 0x6B, 0xAE, 0x2C, 0x85, 0x2C, 0x2C, + 0xAC, 0xD9, 0xA1, 0xE9, 0x48, 0x95, 0x85, 0xDA, + 0x85, 0xAF, 0xD9, 0xD9, 0x95, 0x95, 0xD9, 0xD9, + 0x95, 0x95, 0xD9, 0xAC, 0x85, 0x85, 0xDA, 0xDA, + 0x85, 0x2C, 0xAC, 0xAC, 0x2C, 0x2C, 0x2C, 0x2C, + 0xA1, 0xA1, 0xD6, 0xAF, 0xDA, 0xDA, 0x85, 0x2C, + 0xD9, 0xD9, 0x95, 0x95, 0xD9, 0xD9, 0xD9, 0xD9, + 0x2C, 0x2C, 0xDA, 0xDA, 0xDA, 0x85, 0x2C, 0xD9, + 0xD9, 0xD9, 0xD9, 0xAC, 0xAC, 0xAC, 0xAF, 0xAC, + 0x2C, 0xB2, 0x88, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x6B, 0x80, 0x85, 0x2C, + 0xD9, 0xD6, 0xA1, 0xA1, 0xD6, 0xAF, 0xDA, 0xDA, + 0x85, 0x2C, 0xD9, 0xD9, 0x95, 0x95, 0xD9, 0xD9, + 0xD9, 0xD9, 0x2C, 0x2C, 0xDA, 0xDA, 0xDA, 0x85, + 0x2C, 0xD9, 0xD9, 0xD9, 0xD9, 0xAF, 0xAF, 0xAF, + 0xD6, 0xD6, 0xD9, 0x2C, 0xDA, 0xDA, 0x2C, 0xAC, + 0xD9, 0x7D, 0x95, 0xD9, 0xD9, 0xD9, 0xAF, 0x2C, + 0x85, 0x85, 0x85, 0x85, 0x2C, 0x2C, 0xAC, 0xD9, + 0xD9, 0xD9, 0xAF, 0xAF, 0x2C, 0x2C, 0xAF, 0xDA, + 0xAE, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0xE3, 0x20, 0x6B, 0x48, + 0xAC, 0x95, 0xD6, 0xD6, 0xD9, 0x2C, 0xDA, 0xDA, + 0x2C, 0xAC, 0xD9, 0x7D, 0x95, 0xD9, 0xD9, 0xD9, + 0xAF, 0x2C, 0x85, 0x85, 0x85, 0x85, 0x2C, 0x2C, + 0xAC, 0xD9, 0xD9, 0xD9, 0xAF, 0xAF, 0xAF, 0xAF, + 0xD9, 0xD9, 0xD9, 0x2C, 0x85, 0x85, 0x2C, 0xD9, + 0x7D, 0x21, 0xD6, 0xD9, 0xAF, 0x2C, 0x85, 0x85, + 0x85, 0x85, 0x85, 0x85, 0x2C, 0xAF, 0xAF, 0xAC, + 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x89, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x74, 0x43, 0x80, 0x41, 0x20, + 0x9F, 0x2C, 0xD9, 0xD9, 0xD9, 0x2C, 0x85, 0x85, + 0x2C, 0xD9, 0x7D, 0x21, 0xD6, 0xD9, 0xAF, 0x2C, + 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x2C, 0xAF, + 0xAF, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, + 0xD9, 0x7D, 0xD9, 0xAF, 0x85, 0x85, 0x2C, 0xD9, + 0xB2, 0x21, 0x7D, 0xD9, 0xAF, 0x2C, 0x85, 0x85, + 0x85, 0x2C, 0x2C, 0x2C, 0x2C, 0xAF, 0xAF, 0xAC, + 0xAF, 0xAC, 0xAF, 0xAF, 0xAC, 0xAC, 0x85, 0x41, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0xAE, 0x48, 0x89, 0x74, 0x41, + 0x6B, 0xD6, 0xD9, 0x7D, 0xD9, 0xAF, 0x85, 0x85, + 0x2C, 0xD9, 0xB2, 0x21, 0x7D, 0xD9, 0xAF, 0x2C, + 0x85, 0x85, 0x85, 0x2C, 0x2C, 0x2C, 0x2C, 0xAF, + 0xAF, 0xAC, 0xAF, 0xAC, 0xAC, 0x2C, 0xAF, 0xAC, + 0x2C, 0x7D, 0xD9, 0x2C, 0xDA, 0x85, 0x2C, 0x7D, + 0xB2, 0xD6, 0xD9, 0xAF, 0x85, 0x85, 0x85, 0x85, + 0xAF, 0xAC, 0xAC, 0xAF, 0xAF, 0xAC, 0xAC, 0xD9, + 0x95, 0x7D, 0x95, 0x95, 0xD9, 0xD9, 0x48, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x6B, 0xAE, 0xE6, 0x80, 0x2B, 0x88, + 0x20, 0x33, 0xDA, 0x95, 0xD9, 0x2C, 0xDA, 0x85, + 0x2C, 0x7D, 0xB2, 0xD6, 0xD9, 0xAF, 0x85, 0x85, + 0x85, 0x85, 0xAF, 0xAC, 0xAC, 0xAF, 0xAF, 0xAC, + 0xAC, 0xD9, 0x95, 0x95, 0x7D, 0x95, 0x95, 0xD9, + 0x85, 0xD9, 0x2C, 0x85, 0xDA, 0xDA, 0xD9, 0x21, + 0xA1, 0xD9, 0xAF, 0x2C, 0x85, 0xDA, 0x85, 0xAF, + 0xD9, 0xD9, 0xAC, 0xAC, 0xAC, 0xD9, 0x7D, 0xD6, + 0xD6, 0x7D, 0x95, 0xD9, 0xD9, 0x85, 0xDB, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0xDB, 0xE3, 0x6B, 0x20, 0x20, + 0x20, 0x20, 0xE9, 0xD9, 0x2C, 0x85, 0xDA, 0xDA, + 0xD9, 0x21, 0xA1, 0xD9, 0xAF, 0x2C, 0x85, 0xDA, + 0x85, 0xAF, 0xD9, 0xD9, 0xAC, 0xAC, 0xAC, 0xD9, + 0x7D, 0xD6, 0xD6, 0x7D, 0x95, 0xD9, 0xD9, 0xD9, + 0xDA, 0x2C, 0x85, 0xDA, 0xDA, 0x85, 0x95, 0x21, + 0x21, 0xD9, 0x85, 0x85, 0x85, 0x2C, 0x2C, 0xD9, + 0x95, 0x95, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, + 0xAC, 0xAC, 0x2C, 0xAF, 0x2C, 0x85, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x88, 0xDA, 0x85, 0xDA, 0xDA, 0x85, + 0x95, 0x21, 0x21, 0xD9, 0x85, 0x85, 0x85, 0x2C, + 0x2C, 0xD9, 0x95, 0x95, 0xD9, 0xD9, 0xD9, 0xD9, + 0xD9, 0xD9, 0xD9, 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, + 0xDA, 0x2C, 0x85, 0x85, 0x2C, 0xD9, 0xD6, 0xB2, + 0x95, 0x2C, 0x85, 0x85, 0xAF, 0xAC, 0x95, 0x95, + 0x7D, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0x2C, 0x85, + 0x85, 0x85, 0x85, 0x85, 0x85, 0xAC, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0xAC, 0x85, 0x85, 0x2C, 0xD9, + 0xD6, 0xB2, 0x95, 0x2C, 0x85, 0x85, 0xAF, 0xAC, + 0x95, 0x95, 0x7D, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, + 0x2C, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, + 0x85, 0x2C, 0x2C, 0x2C, 0xAC, 0x95, 0xD6, 0x7D, + 0xD9, 0x2C, 0x2C, 0xAF, 0x95, 0x7D, 0x7D, 0x95, + 0x95, 0xD9, 0xD9, 0x95, 0xD9, 0xD9, 0x2C, 0x85, + 0xDA, 0xDA, 0xDA, 0x85, 0x85, 0x21, 0x20, 0x20, + 0x6B, 0x41, 0xDB, 0x6B, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x41, 0xDB, 0xDB, 0x20, 0x20, + 0x20, 0x20, 0x20, 0xE6, 0x2C, 0x2C, 0xAC, 0x95, + 0xD6, 0x7D, 0xD9, 0x2C, 0x2C, 0xAF, 0x95, 0x7D, + 0x7D, 0x95, 0x95, 0xD9, 0xD9, 0x95, 0xD9, 0xD9, + 0x2C, 0x85, 0xDA, 0xDA, 0xDA, 0x85, 0x2C, 0x2C, + 0x2C, 0xAF, 0xAC, 0xD9, 0x95, 0xD6, 0xD6, 0xD9, + 0x2C, 0x2C, 0x2C, 0xD9, 0xD6, 0xD6, 0xD9, 0xAF, + 0xAC, 0x95, 0xD6, 0x7D, 0x7D, 0xD9, 0x2C, 0x85, + 0xDA, 0xDA, 0x2C, 0xAF, 0xAF, 0x21, 0x20, 0x20, + 0x88, 0x2B, 0x88, 0x74, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xAE, 0x2D, 0x2D, 0x74, 0x74, 0x88, 0x20, + 0x20, 0x20, 0x20, 0x80, 0xAC, 0xD9, 0x95, 0xD6, + 0xD6, 0xD9, 0x2C, 0x2C, 0x2C, 0xD9, 0xD6, 0xD6, + 0xD9, 0xAF, 0xAC, 0x95, 0xD6, 0x7D, 0x7D, 0xD9, + 0x2C, 0xDA, 0xDA, 0x85, 0x2C, 0xAF, 0xAF, 0xAF, + 0x2C, 0xAF, 0xD9, 0x95, 0xD6, 0xD6, 0x95, 0xAF, + 0x2C, 0x2C, 0xD9, 0x95, 0xD6, 0x95, 0xAF, 0x2C, + 0xAC, 0x7D, 0x21, 0x95, 0xD9, 0x2C, 0x85, 0x85, + 0x85, 0xAF, 0xD9, 0x95, 0xD9, 0x7D, 0x20, 0x33, + 0x7D, 0x8A, 0x7D, 0x5B, 0x6B, 0x20, 0x20, 0x6B, + 0xE6, 0xD9, 0x85, 0x2A, 0xDA, 0x2B, 0x41, 0x20, + 0x20, 0x20, 0x6B, 0x74, 0xD9, 0x95, 0xD6, 0xD6, + 0x95, 0xAF, 0x2C, 0x2C, 0xD9, 0x95, 0xD6, 0x95, + 0xAF, 0x2C, 0xAC, 0x7D, 0x21, 0x95, 0xD9, 0x2C, + 0x85, 0x85, 0x85, 0x2C, 0xD9, 0xD9, 0xD9, 0xD9, + 0x85, 0xD9, 0x7D, 0x21, 0x21, 0x7D, 0xAC, 0x2C, + 0x2C, 0xAC, 0xD9, 0x7D, 0xD9, 0xAF, 0x2C, 0x85, + 0xAC, 0x7D, 0x7D, 0xAC, 0x85, 0xDA, 0x8A, 0xDA, + 0x85, 0xAF, 0xD9, 0x7D, 0xD9, 0x95, 0x20, 0x91, + 0xBC, 0x73, 0xEE, 0x7D, 0x20, 0x20, 0x20, 0x80, + 0x4D, 0x3D, 0x73, 0x73, 0xA3, 0xD6, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2B, 0x7D, 0x21, 0x21, 0x7D, + 0xAC, 0x2C, 0x2C, 0xAC, 0xD9, 0x7D, 0xD9, 0xAF, + 0x2C, 0x85, 0xAC, 0x7D, 0x7D, 0xAC, 0x85, 0xDA, + 0x8A, 0x8A, 0x85, 0xAC, 0xD9, 0x7D, 0xD9, 0xAC, + 0x2C, 0xD9, 0xD6, 0xB2, 0xB2, 0x7D, 0xAF, 0x85, + 0x2C, 0xD9, 0x95, 0x95, 0xAF, 0x2C, 0x2C, 0x2C, + 0xD9, 0xD9, 0xAC, 0x85, 0x8D, 0x2A, 0x2A, 0xDA, + 0xAF, 0xD9, 0x95, 0x95, 0xD9, 0xAC, 0x20, 0xAF, + 0x2C, 0xE6, 0x8D, 0x73, 0xE3, 0x20, 0x20, 0x48, + 0x5C, 0xDA, 0x5B, 0x43, 0xBC, 0x73, 0x2B, 0x20, + 0x20, 0x20, 0x20, 0x41, 0xD6, 0xB2, 0xB2, 0x7D, + 0xAF, 0x85, 0x2C, 0xD9, 0x95, 0x95, 0xAF, 0x2C, + 0x2C, 0x2C, 0xD9, 0xD9, 0xAC, 0x85, 0x8A, 0x2A, + 0x8D, 0xDA, 0xAF, 0xD9, 0x95, 0x95, 0xD9, 0xAF, + 0xAC, 0xD9, 0xD6, 0xB2, 0x21, 0xD9, 0x2C, 0x85, + 0x2C, 0xD9, 0x95, 0xD9, 0xAF, 0x2C, 0x2C, 0xAC, + 0xAC, 0xAF, 0x85, 0x8D, 0xBC, 0xBC, 0xDA, 0xD9, + 0xD6, 0xA1, 0xA1, 0x21, 0xD9, 0xAC, 0x20, 0x2A, + 0xCC, 0xAE, 0x9F, 0xE4, 0xAE, 0x5B, 0x74, 0xA1, + 0xE4, 0xAE, 0x20, 0x9F, 0x89, 0xE8, 0xE6, 0x20, + 0x20, 0x20, 0x20, 0x41, 0xD6, 0xB2, 0x21, 0xD9, + 0x2C, 0x85, 0x2C, 0xD9, 0x95, 0xD9, 0xAF, 0x2C, + 0x2C, 0xAC, 0xAC, 0xAF, 0x85, 0x8D, 0xBC, 0x2A, + 0xDA, 0xD9, 0xD6, 0xA1, 0xA1, 0x21, 0xD9, 0xD9, + 0xD9, 0x95, 0x21, 0xA1, 0x21, 0xAC, 0x85, 0x85, + 0xAC, 0xD9, 0xD9, 0xAF, 0x2C, 0x2C, 0xAF, 0xAC, + 0xAF, 0x85, 0x8A, 0x2A, 0x2A, 0xDA, 0xD9, 0xA1, + 0x48, 0xE9, 0x48, 0x21, 0x95, 0xAC, 0x20, 0x2A, + 0xDB, 0x41, 0x74, 0xBC, 0x2B, 0x7B, 0x7B, 0x80, + 0x73, 0x41, 0x20, 0x6B, 0x2B, 0xE8, 0x2D, 0x20, + 0x20, 0x20, 0x20, 0x33, 0x21, 0xA1, 0x21, 0xAC, + 0x85, 0x85, 0xAC, 0xD9, 0xD9, 0xAF, 0x2C, 0x2C, + 0xAF, 0xAC, 0xAF, 0x85, 0x8A, 0xBC, 0x2A, 0xDA, + 0xD9, 0xA1, 0x48, 0xE9, 0x48, 0x21, 0xD9, 0xD9, + 0xA1, 0xB2, 0xB2, 0x48, 0xD6, 0xAC, 0x2C, 0x2C, + 0xD9, 0x95, 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, + 0x85, 0x8A, 0x8D, 0x8D, 0x85, 0x95, 0xA1, 0x6C, + 0x6C, 0x48, 0xD6, 0xD9, 0x2C, 0x85, 0x20, 0x2C, + 0x89, 0x20, 0x3C, 0xB9, 0xA7, 0x63, 0xD2, 0xB9, + 0xC6, 0x9A, 0x20, 0x20, 0x43, 0x5C, 0xE6, 0x20, + 0x20, 0x20, 0x20, 0x33, 0xB2, 0x48, 0xD6, 0xAC, + 0x2C, 0x2C, 0xD9, 0x95, 0xAF, 0x2C, 0x2C, 0x2C, + 0x2C, 0x2C, 0x85, 0x8A, 0x8D, 0x8D, 0x85, 0x95, + 0xA1, 0x6C, 0x6C, 0x48, 0xD6, 0xD9, 0xAF, 0xAC, + 0xA1, 0xD6, 0x7D, 0xB2, 0xD6, 0xAF, 0x85, 0x85, + 0xD9, 0x95, 0x2C, 0x85, 0xDA, 0x85, 0x85, 0x2C, + 0x85, 0x8A, 0x8D, 0xDA, 0xD9, 0x48, 0x81, 0x2D, + 0x48, 0xD6, 0xD9, 0xAC, 0x2C, 0x85, 0x20, 0x2D, + 0xEE, 0x93, 0xD1, 0xA7, 0x3E, 0x3E, 0x3A, 0x25, + 0x56, 0xAB, 0xAA, 0xC5, 0xEE, 0xEE, 0x33, 0x20, + 0x20, 0x20, 0x20, 0x41, 0xD9, 0xB2, 0xD6, 0xAF, + 0x85, 0x85, 0xD9, 0x95, 0x2C, 0x85, 0xDA, 0x85, + 0x85, 0x2C, 0x85, 0x8A, 0x8D, 0xDA, 0xD9, 0x48, + 0x81, 0x2D, 0x48, 0xD6, 0xD9, 0xAF, 0x2C, 0x2C, + 0xAC, 0xAF, 0xD9, 0x7D, 0xD6, 0x2C, 0x85, 0x2C, + 0xD9, 0xD9, 0x2C, 0xDA, 0xDA, 0xDA, 0x2C, 0x2C, + 0x85, 0x8D, 0x8D, 0x2C, 0x21, 0x2D, 0x2D, 0xE9, + 0xD6, 0xD9, 0xAF, 0x2C, 0x85, 0xDA, 0x20, 0xE3, + 0xB4, 0xBE, 0xF1, 0x3E, 0x9B, 0x22, 0x56, 0xF2, + 0xBB, 0x7F, 0x56, 0xDC, 0x8F, 0x5A, 0x5F, 0x20, + 0x20, 0x20, 0x20, 0x6B, 0x2C, 0x7D, 0xD6, 0x2C, + 0x85, 0x2C, 0xD9, 0xD9, 0x2C, 0xDA, 0xDA, 0xDA, + 0x2C, 0x2C, 0x85, 0x8D, 0x8A, 0x85, 0x21, 0x2D, + 0x2D, 0xE9, 0xD6, 0xD9, 0xAF, 0x2C, 0x85, 0x85, + 0x2A, 0x85, 0xAC, 0x95, 0x95, 0x2C, 0x85, 0x85, + 0xAC, 0xAF, 0x85, 0xDA, 0xDA, 0x85, 0x2C, 0x2C, + 0xDA, 0x8A, 0x8A, 0xAF, 0xA1, 0x2D, 0xE9, 0xD6, + 0xD9, 0xAC, 0x85, 0x85, 0x85, 0xDA, 0x20, 0x52, + 0x55, 0xED, 0x57, 0x3E, 0x22, 0x56, 0x37, 0xBB, + 0xBB, 0x58, 0x7F, 0x7F, 0x56, 0x5E, 0xC5, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2C, 0x95, 0x95, 0x2C, + 0x85, 0x85, 0xAC, 0xAF, 0x85, 0xDA, 0xDA, 0x85, + 0x2C, 0x2C, 0xDA, 0x8D, 0xDA, 0xAF, 0xA1, 0x2D, + 0xE9, 0xD6, 0xD9, 0xAF, 0x2C, 0x85, 0x85, 0x85, + 0xCD, 0xAF, 0xD9, 0x95, 0xD9, 0x2C, 0xDA, 0x85, + 0xAF, 0xD9, 0x85, 0xDA, 0x85, 0x2C, 0xAC, 0xAF, + 0x85, 0x8A, 0x85, 0xD9, 0x48, 0x48, 0xB2, 0x95, + 0x95, 0xAC, 0x2C, 0x85, 0xDA, 0xDA, 0x6B, 0xB3, + 0x46, 0x7C, 0x2E, 0x9B, 0x22, 0x56, 0xBB, 0x37, + 0x58, 0x58, 0xF2, 0x3A, 0x46, 0x63, 0x64, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x2D, 0x95, 0xD9, 0x2C, + 0xDA, 0x85, 0xAF, 0xD9, 0x85, 0xDA, 0x85, 0x2C, + 0xAC, 0xAF, 0x85, 0xDA, 0x85, 0xD9, 0x48, 0x48, + 0xB2, 0x95, 0x95, 0xD9, 0x85, 0xDA, 0x85, 0x85, + 0xBC, 0xB2, 0xB2, 0x7D, 0xD9, 0x2C, 0xDA, 0x85, + 0xAF, 0xD9, 0x85, 0xDA, 0x85, 0x85, 0xAF, 0x2C, + 0x85, 0xDA, 0x2C, 0x7D, 0xA1, 0x48, 0xB2, 0x21, + 0xD6, 0xD9, 0x85, 0xDA, 0x85, 0xDA, 0x41, 0x51, + 0xB7, 0xEC, 0x2E, 0x22, 0x56, 0x37, 0xBB, 0xF2, + 0x37, 0xEA, 0x2F, 0x2F, 0x77, 0xA7, 0x38, 0x20, + 0x20, 0x6B, 0x20, 0x20, 0x5B, 0x2C, 0xD9, 0x2C, + 0xDA, 0x85, 0xAF, 0xD9, 0x85, 0xDA, 0x85, 0x85, + 0xAF, 0x2C, 0xDA, 0xDA, 0x2C, 0x7D, 0xA1, 0x48, + 0xB2, 0x21, 0xD6, 0xD9, 0x2C, 0xDA, 0x85, 0xAF, + 0x2C, 0x2D, 0x48, 0x7D, 0xAF, 0x2C, 0x85, 0x2C, + 0xD9, 0xAC, 0xAF, 0x85, 0x85, 0x2C, 0x2C, 0x2C, + 0x85, 0x2C, 0xD9, 0xD6, 0xA1, 0xA1, 0x48, 0xA1, + 0x21, 0x2C, 0xDA, 0xDA, 0x2C, 0x85, 0x41, 0x98, + 0xA2, 0xA7, 0x6F, 0xC9, 0x37, 0xF2, 0xF2, 0x9B, + 0xB7, 0x66, 0x60, 0x4C, 0xED, 0x84, 0x3C, 0x20, + 0x5B, 0x2D, 0x2B, 0x6B, 0x20, 0xAF, 0xAF, 0x2C, + 0x85, 0x2C, 0xD9, 0xAC, 0xAF, 0x85, 0x85, 0x2C, + 0x2C, 0x2C, 0x2C, 0x85, 0xD9, 0xD6, 0xA1, 0xA1, + 0x48, 0xA1, 0xD6, 0xAF, 0xDA, 0x8A, 0x2C, 0xD9, + 0xB2, 0x2D, 0x48, 0x95, 0x2C, 0x2C, 0x2C, 0x85, + 0xAC, 0xAC, 0xAF, 0x85, 0xDA, 0x85, 0xAF, 0xAC, + 0xAF, 0x2C, 0xD9, 0xD6, 0xD6, 0xD6, 0x21, 0xD6, + 0xD9, 0xDA, 0x8D, 0xDA, 0xAF, 0x2C, 0x20, 0x88, + 0x42, 0x51, 0x3F, 0x2F, 0x45, 0xB7, 0x66, 0x55, + 0x46, 0x60, 0x5D, 0x36, 0xD8, 0x71, 0x43, 0x20, + 0x20, 0x2D, 0xB2, 0x80, 0x20, 0x2D, 0x2C, 0x2C, + 0x2C, 0x85, 0xAC, 0xAC, 0xAF, 0x85, 0xDA, 0x85, + 0xAF, 0xAC, 0xAC, 0xAF, 0xD9, 0xD6, 0xD6, 0xD6, + 0x21, 0xD6, 0xD9, 0xDA, 0x8D, 0x8A, 0x2C, 0xD9, + 0xB2, 0x48, 0xD6, 0xAC, 0xAF, 0x2C, 0x2C, 0x85, + 0x2C, 0xAC, 0x2C, 0xDA, 0xDA, 0x85, 0xAF, 0xD9, + 0xD9, 0xAC, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xAC, + 0x85, 0x8D, 0xBC, 0xDA, 0xD9, 0xDA, 0x20, 0xE3, + 0xDA, 0x69, 0x96, 0xB5, 0xF1, 0x68, 0x5D, 0x82, + 0xE1, 0xBE, 0x27, 0x8D, 0x4D, 0xD3, 0x7D, 0x20, + 0x20, 0xDB, 0xA1, 0xCA, 0x20, 0x88, 0x85, 0x2C, + 0x2C, 0x85, 0x2C, 0xAC, 0x2C, 0xDA, 0xDA, 0x85, + 0xAF, 0xD9, 0xAC, 0xAF, 0xD9, 0xD9, 0xD9, 0xD9, + 0xD9, 0xAC, 0xDA, 0x8D, 0xBC, 0xDA, 0xD9, 0x95, + 0xD9, 0x95, 0xAC, 0x2C, 0x2C, 0x2C, 0x2C, 0x85, + 0x85, 0xAF, 0xAF, 0x85, 0x85, 0x2C, 0x2C, 0xAC, + 0xD9, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, 0x85, + 0x8D, 0x2A, 0x2A, 0x85, 0xD9, 0x95, 0x20, 0xDB, + 0x8D, 0x8D, 0x99, 0xB0, 0x35, 0xE5, 0x3F, 0x35, + 0xB9, 0x50, 0x8A, 0x4D, 0x73, 0xE8, 0xA3, 0xCC, + 0x20, 0x20, 0x33, 0x6B, 0x20, 0x20, 0xCC, 0x85, + 0x2C, 0x85, 0x85, 0xAF, 0xAF, 0x85, 0x85, 0x85, + 0x2C, 0xD9, 0xD9, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, + 0x2C, 0x85, 0x8A, 0x2A, 0x8D, 0x2C, 0xD9, 0xD9, + 0xAF, 0xAF, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, 0x85, + 0x2C, 0xAF, 0xAF, 0xAF, 0x2C, 0x2C, 0x2C, 0xAC, + 0xD9, 0xAC, 0xAF, 0x2C, 0x85, 0x85, 0xDA, 0xDA, + 0x8A, 0x8A, 0x85, 0xD9, 0x2C, 0x2B, 0x20, 0xAE, + 0xA3, 0xBC, 0x8D, 0xC8, 0xA9, 0xC7, 0x92, 0x47, + 0x8D, 0x8D, 0x7E, 0xE4, 0xE8, 0xE8, 0x5C, 0x2C, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6B, 0xAF, + 0x2C, 0x85, 0x2C, 0xAF, 0xAF, 0xAF, 0x2C, 0x2C, + 0x2C, 0xAF, 0xD9, 0xAC, 0x2C, 0x2C, 0x85, 0x85, + 0x85, 0xDA, 0x8D, 0x8A, 0x85, 0xAC, 0x95, 0xD9, + 0xAC, 0xAC, 0xAC, 0xAC, 0x2C, 0xAF, 0xAF, 0x2C, + 0x2C, 0xAF, 0xAF, 0xAC, 0x2C, 0xAF, 0x2C, 0xAF, + 0xD9, 0xAC, 0x2C, 0x2C, 0x85, 0x85, 0x85, 0x85, + 0x85, 0x2C, 0xD9, 0xD9, 0x2D, 0x6B, 0x41, 0x2A, + 0xE8, 0xA3, 0xC8, 0x8D, 0x8A, 0x8A, 0x8A, 0x8D, + 0x4D, 0xA3, 0x3D, 0xE8, 0xE8, 0xE8, 0xE8, 0x5C, + 0xAE, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xDB, + 0xDA, 0x2C, 0x2C, 0xAF, 0xAF, 0xAC, 0xAC, 0xAF, + 0x2C, 0xAC, 0xD9, 0xAC, 0x2C, 0x2C, 0x85, 0x85, + 0x85, 0x85, 0x85, 0x2C, 0xD9, 0x95, 0x7D, 0xD9, + 0x7D, 0x7D, 0xD9, 0xAC, 0xAC, 0xAF, 0xAF, 0xAF, + 0x2C, 0x2C, 0xAC, 0xAC, 0xD9, 0xAC, 0xAC, 0xD9, + 0x95, 0xD9, 0xAC, 0xAF, 0xAF, 0xAC, 0xAF, 0xAC, + 0xD9, 0x7D, 0x7D, 0x7D, 0x33, 0x41, 0x2D, 0xE8, + 0xE8, 0x5C, 0xD3, 0x8D, 0x8D, 0x8D, 0x8D, 0x7E, + 0x3D, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xDA, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x81, 0x2C, 0x2C, 0x2C, 0xAC, 0xAC, 0xAC, 0xAC, + 0xAC, 0xD9, 0x95, 0x95, 0xAC, 0xAF, 0xAF, 0xAF, + 0xAF, 0xAC, 0xD9, 0x95, 0x7D, 0xD6, 0xD6, 0x7D, + 0x21, 0xD6, 0x95, 0xD9, 0xD9, 0xAC, 0xAF, 0xAF, + 0x2C, 0xAF, 0xAC, 0xAC, 0xD9, 0xD9, 0xD9, 0xD9, + 0x21, 0x21, 0x7D, 0x95, 0x95, 0x7D, 0xD6, 0x21, + 0xB2, 0xA1, 0x2C, 0x88, 0x20, 0xE3, 0xA3, 0xE8, + 0xE8, 0xE8, 0xE4, 0xEE, 0xD3, 0x7E, 0x73, 0x5C, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0x5C, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2C, 0xAF, 0xAF, 0xAC, 0xD9, 0xD9, 0xD9, + 0xD9, 0xD9, 0xD6, 0x21, 0x7D, 0x95, 0x95, 0x7D, + 0xD6, 0xB2, 0xA1, 0xA1, 0xB2, 0xD6, 0x21, 0x21, + 0x21, 0xD9, 0xD9, 0xD9, 0xAC, 0xAF, 0xAC, 0xAF, + 0x2C, 0x2C, 0xAC, 0xD9, 0xD9, 0xD9, 0xD9, 0x95, + 0x7D, 0xB2, 0xD6, 0x95, 0xD9, 0x95, 0xD6, 0xA1, + 0xA1, 0xAF, 0x5B, 0x20, 0x20, 0xD6, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE8, 0x5C, 0xE8, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE8, 0x48, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xE3, 0x8A, 0x2C, 0xAC, 0xAC, 0xD9, 0xD9, + 0xD9, 0x95, 0xD6, 0xB2, 0xD6, 0x95, 0xD9, 0x95, + 0x21, 0xB2, 0xA1, 0xB2, 0xD6, 0xD6, 0xD6, 0xA1, + 0xD9, 0x2C, 0x2C, 0x2C, 0xAF, 0xAF, 0xAC, 0xAF, + 0x2C, 0x2C, 0xAF, 0xAC, 0xD9, 0xAC, 0xD9, 0xD9, + 0xD9, 0x95, 0xAC, 0x2C, 0x2C, 0xAC, 0x95, 0x7D, + 0xD9, 0x91, 0x20, 0x20, 0xE3, 0xA3, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE8, 0x85, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x2B, 0x8A, 0xAF, 0xAC, 0xD9, 0xAC, + 0xD9, 0xD9, 0xD9, 0x95, 0xAC, 0x2C, 0x2C, 0xAC, + 0x95, 0x7D, 0x95, 0x95, 0xD9, 0x95, 0x7D, 0x21, + 0x2C, 0xDA, 0xDA, 0x85, 0x2C, 0xAF, 0xAF, 0xAF, + 0xAF, 0xAF, 0x2C, 0xAF, 0xAF, 0xAC, 0xAC, 0xAC, + 0xD9, 0xAF, 0x85, 0x85, 0x2C, 0xAF, 0xD9, 0xAF, + 0x48, 0x20, 0x20, 0x20, 0xE6, 0xA3, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0x5C, + 0xE4, 0x73, 0x41, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x2B, 0xDA, 0xAF, 0xAF, 0xAC, + 0xAC, 0xAF, 0xD9, 0x2C, 0x85, 0x85, 0x2C, 0xAF, + 0xD9, 0xD9, 0xAC, 0xAF, 0xAC, 0xD9, 0xD9, 0xD9, + 0x85, 0xDA, 0xDA, 0x85, 0x2C, 0x2C, 0xAC, 0xAF, + 0xAF, 0xAF, 0xAF, 0x2C, 0xAF, 0xAF, 0xAC, 0xAC, + 0xAF, 0x2C, 0x2C, 0x2C, 0xAC, 0x95, 0x95, 0xA1, + 0x20, 0x20, 0x20, 0x20, 0xE9, 0x8C, 0x5C, 0xE8, + 0xE8, 0xE8, 0xE8, 0x3D, 0x73, 0x73, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE4, 0x73, 0x73, 0x73, 0xCD, + 0x7E, 0xA3, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x24, 0x85, 0xAF, 0xAF, + 0xAC, 0xAC, 0xAC, 0xAF, 0x85, 0x2C, 0xAC, 0x95, + 0x95, 0xD9, 0xAC, 0xAC, 0xAC, 0xD9, 0xAC, 0xAF, + 0x8A, 0x8A, 0xDA, 0xDA, 0x85, 0x2C, 0x2C, 0x2C, + 0x2C, 0x2C, 0x2C, 0xAF, 0xAF, 0xAC, 0xAF, 0xAC, + 0xAC, 0xAF, 0xAF, 0xD9, 0xD6, 0xD6, 0x2C, 0x88, + 0x20, 0x20, 0x20, 0x88, 0xB2, 0xDA, 0x7E, 0x73, + 0xE8, 0xE8, 0xE8, 0x3D, 0x73, 0xE8, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xA3, 0xCD, 0xD3, 0x2A, 0x2A, + 0x2A, 0x8C, 0x8D, 0x88, 0x20, 0xE3, 0x6B, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x41, 0x85, 0xAF, 0xAC, + 0xAC, 0xAC, 0xAC, 0xAF, 0xAC, 0xD9, 0x7D, 0xD6, + 0x7D, 0x7D, 0xD9, 0x95, 0xD9, 0xAC, 0xAC, 0xAF, + 0xD3, 0x8D, 0xDA, 0xDA, 0x85, 0x85, 0x2C, 0x2C, + 0x2C, 0xAF, 0xAF, 0xAC, 0xD9, 0xD9, 0xD9, 0xD9, + 0xAF, 0xAF, 0xAC, 0xD9, 0x95, 0x7D, 0xAC, 0x20, + 0x20, 0x20, 0x20, 0xDB, 0x2C, 0xA3, 0x5C, 0xE8, + 0xE8, 0xE8, 0xE8, 0x5C, 0x3D, 0x3D, 0xE8, 0xE8, + 0xE8, 0xE4, 0xE8, 0xE8, 0xE8, 0xE4, 0x73, 0xEE, + 0xD3, 0x2A, 0xEE, 0xAC, 0x20, 0x33, 0x2B, 0xE3, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x9F, 0xAF, 0xD9, + 0xD9, 0xAC, 0xAF, 0xAF, 0xAC, 0xD9, 0x95, 0x7D, + 0xD9, 0x95, 0x95, 0x95, 0x95, 0xD9, 0xAF, 0xAF, + 0x7E, 0x85, 0x85, 0x2C, 0x85, 0x85, 0x85, 0x2C, + 0x2C, 0x2C, 0xAF, 0xD9, 0xD9, 0x95, 0xD9, 0xAC, + 0xAC, 0xAF, 0xAF, 0xAC, 0xAC, 0xAC, 0x91, 0x20, + 0x33, 0xE3, 0x41, 0x48, 0x73, 0x5C, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xA3, 0xD6, 0x6C, 0x85, 0xE8, + 0xDA, 0xAE, 0xB2, 0xA3, 0x5C, 0xE8, 0xE8, 0xE8, + 0x3D, 0xEE, 0x4D, 0xA3, 0x24, 0x20, 0x6B, 0xDB, + 0x2B, 0x20, 0x20, 0x20, 0x20, 0x20, 0x85, 0x95, + 0xD9, 0xD9, 0xAC, 0xAF, 0xAF, 0xAC, 0xD9, 0xAC, + 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xAC, 0xD9, 0xAC, + 0x8A, 0xD9, 0xAC, 0xD9, 0xAC, 0xAC, 0x2C, 0x2C, + 0xAF, 0xAF, 0xAF, 0xAC, 0xD9, 0xD9, 0xD9, 0xD9, + 0xAF, 0xAF, 0xAF, 0xAC, 0xAC, 0x85, 0x33, 0x20, + 0xCC, 0x20, 0xE3, 0xA3, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE8, 0xA3, 0xD9, 0x81, 0xAC, 0xDA, 0x2D, 0x5C, + 0x48, 0x41, 0x88, 0x74, 0x21, 0xA3, 0xE8, 0xE8, + 0xE8, 0xE8, 0x73, 0x8C, 0x8A, 0x20, 0x20, 0x20, + 0xDB, 0x33, 0x20, 0x20, 0x20, 0x20, 0xE6, 0xD9, + 0xD9, 0xAC, 0xAC, 0xAF, 0xAC, 0xAF, 0xAC, 0xAF, + 0xAF, 0xAC, 0xD9, 0xAF, 0xD9, 0xAC, 0xAC, 0xAF, + 0x85, 0xD9, 0x95, 0xD9, 0x95, 0xD9, 0xD9, 0xAC, + 0xAF, 0xAC, 0xAF, 0xAF, 0x2C, 0xAF, 0x2C, 0x2C, + 0xAF, 0xAF, 0xAF, 0xAC, 0xAC, 0x2C, 0x20, 0x5B, + 0x33, 0x20, 0xD6, 0xE8, 0xE8, 0xE8, 0xE8, 0x73, + 0xAF, 0x2D, 0xD9, 0xDA, 0xB2, 0x81, 0x81, 0xE4, + 0xA1, 0x91, 0x2B, 0x88, 0x33, 0x80, 0xAF, 0x73, + 0xE8, 0xE8, 0xE8, 0x5C, 0xA3, 0x80, 0x41, 0xCC, + 0x2B, 0xCC, 0x20, 0x20, 0x20, 0x20, 0x88, 0xDA, + 0x2C, 0x2C, 0x2C, 0xAF, 0xAF, 0xAC, 0xAC, 0xAF, + 0xAF, 0xAF, 0xAF, 0xAC, 0xAF, 0xAF, 0xAF, 0x2C, + 0x85, 0xD9, 0xD9, 0xD9, 0xD9, 0xAC, 0xAC, 0xD9, + 0xD9, 0xD9, 0xAC, 0x2C, 0x2C, 0x2C, 0x85, 0x85, + 0x85, 0x2C, 0x2C, 0xAF, 0x2C, 0x91, 0x20, 0xAE, + 0x20, 0xDB, 0x3D, 0xE8, 0xE8, 0x5C, 0xB2, 0x80, + 0xB2, 0xAF, 0x48, 0xB2, 0x48, 0x89, 0x89, 0x3D, + 0x21, 0x48, 0x6C, 0x2D, 0x2B, 0x41, 0xE3, 0xAE, + 0xD9, 0x5C, 0xE8, 0xE8, 0xE8, 0x95, 0x33, 0x80, + 0xAE, 0x33, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x95, + 0x85, 0x2C, 0x85, 0x2C, 0x2C, 0xAF, 0x2C, 0x2C, + 0x2C, 0xAF, 0xAC, 0xAF, 0xAF, 0x2C, 0x2C, 0x2C, + 0xDA, 0xAF, 0xD9, 0xD9, 0xAF, 0x2C, 0x2C, 0x2C, + 0xAC, 0xD9, 0xAC, 0xAF, 0x2C, 0x85, 0x2C, 0x85, + 0x85, 0x2C, 0x2C, 0x2C, 0x8A, 0x41, 0xDB, 0x33, + 0x20, 0x95, 0xE8, 0xE8, 0xE8, 0xA3, 0xDB, 0x88, + 0xDB, 0x80, 0xD6, 0x7E, 0x85, 0x2D, 0xE6, 0x5C, + 0x21, 0x48, 0xD9, 0x7E, 0xD6, 0x2B, 0xCC, 0xAC, + 0x85, 0xBC, 0xE8, 0xE8, 0xE8, 0xCD, 0x88, 0x5B, + 0x41, 0x20, 0xAE, 0x20, 0x20, 0x20, 0x20, 0x74, + 0xDA, 0x85, 0x85, 0x85, 0x2C, 0x2C, 0x2C, 0x2C, + 0xAF, 0xAC, 0xD9, 0xD9, 0xAC, 0xAC, 0xAC, 0xD9, + 0x8A, 0xAF, 0xAC, 0xAC, 0x2C, 0x85, 0x2C, 0xAF, + 0xD9, 0xD9, 0xAF, 0xAF, 0xAF, 0x2C, 0xAF, 0x2C, + 0x2C, 0x2C, 0x2C, 0xAF, 0x95, 0x20, 0x74, 0x20, + 0x33, 0xA3, 0xE8, 0xE8, 0xE8, 0xE4, 0x7D, 0xCC, + 0x6B, 0x33, 0xAE, 0x2C, 0x85, 0x2D, 0x9F, 0x73, + 0xA1, 0x2D, 0x2C, 0xDA, 0x89, 0x48, 0xD3, 0xD9, + 0x21, 0xA3, 0xE8, 0xE8, 0xE8, 0xE8, 0xE3, 0x20, + 0x20, 0x20, 0xDB, 0x41, 0x20, 0x20, 0x20, 0x20, + 0xDA, 0x2C, 0x2C, 0x2C, 0x2C, 0xAF, 0xAC, 0xAC, + 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0x95, 0x95, 0xD9, + 0x2C, 0xD9, 0xD9, 0xAC, 0x2C, 0x2C, 0x85, 0xAF, + 0xAF, 0xAF, 0xAC, 0xAC, 0xD9, 0xAC, 0xAF, 0xAC, + 0xAC, 0x95, 0xD6, 0x7D, 0xAE, 0x88, 0x2B, 0x20, + 0x6C, 0xE8, 0xE8, 0xE8, 0x73, 0xEE, 0x73, 0x2C, + 0x89, 0x2B, 0x41, 0x33, 0xCC, 0xCC, 0x80, 0x3D, + 0x2D, 0x74, 0x80, 0x48, 0x8D, 0x95, 0x48, 0x95, + 0xEE, 0x5C, 0x5C, 0xE8, 0xE8, 0xE8, 0x24, 0x20, + 0x20, 0x20, 0x5B, 0xDB, 0x20, 0x20, 0x20, 0x20, + 0xAF, 0xAC, 0xD9, 0x95, 0xD6, 0xD6, 0xD6, 0x7D, + 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0xD9, 0xAC, + 0xAC, 0xD9, 0xD9, 0xAC, 0x2C, 0x2C, 0x2C, 0xAF, + 0xAC, 0xAC, 0xAC, 0xAC, 0xD9, 0xAC, 0xAC, 0xD9, + 0xD6, 0x48, 0xE9, 0x95, 0x20, 0x2B, 0x41, 0x6B, + 0x8D, 0xE8, 0xE8, 0xCD, 0x2B, 0x2B, 0x2C, 0x73, + 0xCD, 0x48, 0xCA, 0x5B, 0x41, 0x5B, 0x74, 0xDA, + 0x80, 0xE6, 0xC8, 0x85, 0xA1, 0x7D, 0x8D, 0x3D, + 0x7E, 0xE9, 0x7D, 0xEE, 0xE8, 0xE8, 0x81, 0x20, + 0x20, 0x20, 0xE3, 0xE3, 0x20, 0x20, 0x20, 0x20, + 0x2D, 0xD9, 0xD6, 0x48, 0x6C, 0xE9, 0xA1, 0xD6, + 0xD9, 0xD9, 0xAC, 0xD9, 0xD9, 0x95, 0xAC, 0x2C, + 0x2C, 0x2C, 0x2C, 0xD9, 0xAC, 0x2C, 0x2C, 0x2C, + 0xAF, 0x2C, 0xAF, 0xD9, 0xAC, 0xAF, 0xAF, 0x95, + 0xB2, 0xE9, 0x21, 0x2B, 0x41, 0x2B, 0x20, 0x5B, + 0x3D, 0xE8, 0xE8, 0x8D, 0x2B, 0x88, 0x5B, 0xE6, + 0xBC, 0x73, 0x85, 0x89, 0x80, 0x5B, 0xE3, 0xAE, + 0x2C, 0x8A, 0xD6, 0xB2, 0x2C, 0xA3, 0xA3, 0xD9, + 0xA1, 0x2C, 0x85, 0x8D, 0xE8, 0xE8, 0x48, 0x20, + 0x20, 0x20, 0xE3, 0x88, 0x20, 0x20, 0x20, 0x20, + 0xAE, 0xD9, 0xB2, 0xE9, 0x6C, 0x48, 0xD6, 0xD9, + 0x2C, 0x85, 0x2C, 0xD9, 0x7D, 0xD9, 0x2C, 0x85, + 0x8D, 0x85, 0x2C, 0xAC, 0xAF, 0x2C, 0x2C, 0x85, + 0x2C, 0x2C, 0xAF, 0xAC, 0xAC, 0xAF, 0xAF, 0xD9, + 0xB2, 0x48, 0xB2, 0x20, 0x20, 0xCC, 0x20, 0x9F, + 0xE8, 0xE8, 0xE8, 0xCD, 0x48, 0x89, 0xDB, 0x88, + 0x2B, 0xE9, 0xCD, 0x2A, 0x48, 0x80, 0xAE, 0xAE, + 0x7D, 0x48, 0x21, 0xEE, 0x3D, 0x2C, 0x48, 0x85, + 0x2C, 0x95, 0x7D, 0x8C, 0xE8, 0xE8, 0xB2, 0x20, + 0x20, 0x20, 0xDB, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xDB, 0x2C, 0xB2, 0x48, 0x48, 0x7D, 0xD9, 0xAF, + 0x85, 0x8A, 0x85, 0x7D, 0xB2, 0x95, 0x85, 0xDA, + 0xD3, 0x85, 0xAF, 0xAC, 0x2C, 0x85, 0x85, 0x2C, + 0xAC, 0xAC, 0xAC, 0xD9, 0xD9, 0xAC, 0x2C, 0x2C, + 0xD9, 0xAC, 0x5B, 0x20, 0x20, 0xAE, 0x20, 0x2D, + 0xE8, 0xE8, 0xE8, 0x7E, 0xD6, 0x48, 0xE9, 0xAE, + 0x88, 0x5B, 0x80, 0x6C, 0xAE, 0xCA, 0x91, 0xE9, + 0x43, 0x9F, 0xE6, 0x2C, 0x48, 0x21, 0xBC, 0x95, + 0x95, 0xD6, 0x21, 0x7E, 0xE8, 0xE8, 0x7D, 0x20, + 0x20, 0x20, 0x2B, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6B, 0xDA, 0xD9, 0x48, 0xB2, 0xD9, 0x2C, 0x85, + 0xDA, 0xDA, 0x2C, 0xA1, 0x48, 0xAC, 0xDA, 0x8D, + 0x2A, 0xAC, 0x7D, 0x95, 0xAF, 0x85, 0x2C, 0x2C, + 0xAC, 0xD9, 0x95, 0x7D, 0x95, 0xAC, 0x2C, 0xAF, + 0x7D, 0xD6, 0x20, 0x20, 0x88, 0x9F, 0x20, 0xA1, + 0xE8, 0xE8, 0xE8, 0xA3, 0xD6, 0x6C, 0xB2, 0x2C, + 0x89, 0xE3, 0x88, 0xDB, 0xCC, 0x24, 0x7D, 0xEE, + 0xB2, 0xCC, 0xAE, 0x2D, 0xDA, 0x2C, 0xD6, 0x2C, + 0xB2, 0x2D, 0xD6, 0xEE, 0xE8, 0xE8, 0x95, 0x20, + 0x20, 0x20, 0xDB, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6B, 0xDA, 0x95, 0xA1, 0xB2, 0xAC, 0x85, 0x85, + 0xDA, 0x2C, 0x95, 0xA1, 0x21, 0x2C, 0x8A, 0x2A, + 0xAF, 0xA1, 0x48, 0xD6, 0xAF, 0x2C, 0x2C, 0xAC, + 0xD9, 0xD9, 0x95, 0x7D, 0x95, 0xAC, 0xD9, 0x7D, + 0x48, 0xE6, 0x20, 0x20, 0x33, 0x89, 0x6B, 0x95, + 0xE8, 0xE8, 0xE8, 0xA3, 0x21, 0x48, 0xAF, 0xAF, + 0x9F, 0xE9, 0x43, 0x33, 0x33, 0x2D, 0xDA, 0xCD, + 0xD6, 0xAE, 0x85, 0x2C, 0x7D, 0xD6, 0x91, 0xB8, + 0xD4, 0x48, 0x7D, 0xA3, 0xE8, 0xE8, 0x95, 0x20, + 0x20, 0x33, 0xE3, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x2C, 0x48, 0x6C, 0xB2, 0xAF, 0xDA, 0xDA, + 0x85, 0xAF, 0xD9, 0x95, 0xAC, 0xDA, 0x8A, 0xDA, + 0x7D, 0x48, 0x48, 0x7D, 0x2C, 0x85, 0x2C, 0xAF, + 0xD9, 0xD9, 0x7D, 0x95, 0xD9, 0xD9, 0x95, 0xD6, + 0x21, 0x24, 0x20, 0x20, 0x20, 0x5B, 0xDB, 0xAC, + 0xE8, 0xE8, 0xE8, 0x3D, 0x7D, 0x48, 0xE6, 0x2D, + 0x85, 0x81, 0x81, 0x48, 0xAE, 0xCA, 0x89, 0xCC, + 0xAE, 0xDB, 0x2D, 0x95, 0x21, 0xCC, 0xDB, 0xAE, + 0x91, 0xE9, 0x7D, 0x73, 0xE8, 0xE8, 0x48, 0x20, + 0x6B, 0x74, 0x41, 0x88, 0x6B, 0x20, 0x20, 0x20, + 0x6B, 0x95, 0xB2, 0xD6, 0xD9, 0x85, 0xDA, 0xDA, + 0xDA, 0x2C, 0xAF, 0xAF, 0x2C, 0xDA, 0xDA, 0x85, + 0xA1, 0xE9, 0x48, 0x95, 0x85, 0xDA, 0x85, 0xAC, + 0xD9, 0xD9, 0x95, 0x95, 0xD9, 0xD9, 0xD9, 0x95, + 0x95, 0x6C, 0x41, 0x93, 0x93, 0x41, 0xDB, 0x95, + 0xE8, 0xE8, 0xE8, 0x3D, 0x95, 0xD4, 0x6C, 0x21, + 0x2D, 0x95, 0xCD, 0x2C, 0xD6, 0xD9, 0x6C, 0x91, + 0x89, 0x7D, 0xAC, 0x2A, 0x8D, 0xE6, 0xCC, 0x88, + 0x74, 0x48, 0xD9, 0xE4, 0xE8, 0xE8, 0xE6, 0x88, + 0x2B, 0x88, 0x20, 0x33, 0xDB, 0x2B, 0xDB, 0x20, + 0x91, 0x7D, 0xD9, 0xD9, 0x85, 0x85, 0xDA, 0xDA, + 0x85, 0xAF, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, + 0xA1, 0xA1, 0xD6, 0xAF, 0x85, 0xDA, 0x85, 0x2C, + 0xD9, 0xD9, 0x95, 0x95, 0xD9, 0xD9, 0xD9, 0xAC, + 0x2C, 0x47, 0x87, 0x3E, 0x3E, 0xA4, 0x7B, 0x80, + 0xA3, 0xE8, 0xE8, 0x5C, 0x7D, 0x48, 0xE6, 0xD9, + 0xBC, 0xEE, 0x7D, 0x43, 0xD6, 0x21, 0x43, 0x6C, + 0x43, 0x7D, 0x7D, 0xB2, 0x8A, 0xEE, 0x2C, 0xCA, + 0xAE, 0x48, 0x2C, 0xE4, 0xE8, 0x5C, 0xCC, 0x88, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x41, 0x91, 0xE3, + 0x21, 0xD9, 0x2C, 0x2C, 0xDA, 0xDA, 0xDA, 0x85, + 0x2C, 0xAC, 0xD9, 0xD9, 0xAC, 0xAF, 0xAF, 0xAF, + 0xD6, 0x7D, 0xD9, 0x2C, 0xDA, 0xDA, 0x85, 0xAC, + 0xD9, 0x7D, 0x7D, 0xD9, 0xD9, 0xD9, 0x2C, 0x2C, + 0xB8, 0x9C, 0xEC, 0x62, 0x6F, 0x62, 0x70, 0x3C, + 0xAE, 0xCD, 0xE8, 0xE8, 0x8C, 0x7D, 0xC8, 0x3D, + 0x8A, 0xE9, 0x2D, 0x9E, 0xA1, 0xD6, 0x48, 0x73, + 0x81, 0xD6, 0xD6, 0xAE, 0x5B, 0x2D, 0xA3, 0xA3, + 0x21, 0x21, 0xCD, 0xE8, 0xC0, 0x56, 0x31, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x33, 0xCC, 0xDB, + 0x42, 0x85, 0x85, 0x85, 0x85, 0x85, 0x2C, 0x2C, + 0xAC, 0xD9, 0xD9, 0xD9, 0xAC, 0xAF, 0xAF, 0xAF, + 0xD9, 0x95, 0xAC, 0x2C, 0x85, 0x85, 0x2C, 0xD9, + 0x7D, 0xD6, 0xD6, 0xD9, 0xAC, 0xAF, 0x8A, 0xBC, + 0xC2, 0x68, 0x2E, 0x4B, 0xC9, 0x8B, 0x62, 0x87, + 0x3C, 0x74, 0xBC, 0xE8, 0xE8, 0xE4, 0xEE, 0xA1, + 0xE9, 0x21, 0xE6, 0x89, 0x48, 0x7D, 0xB2, 0x5C, + 0x6C, 0x7D, 0x21, 0x80, 0xE3, 0x33, 0xCC, 0x2C, + 0x3D, 0x3D, 0xE8, 0xE8, 0xEC, 0xCB, 0x5A, 0x6B, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x88, 0x41, 0x51, + 0x49, 0x28, 0x85, 0x85, 0x85, 0x85, 0x2C, 0xAF, + 0xAC, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, + 0xD9, 0x95, 0xD9, 0x2C, 0x85, 0x85, 0x2C, 0xD9, + 0xB2, 0xB2, 0x2C, 0x2A, 0x79, 0x79, 0x97, 0x44, + 0xED, 0x29, 0x32, 0x62, 0x4B, 0x62, 0x6F, 0x22, + 0xF3, 0x6B, 0x33, 0x85, 0x73, 0xE4, 0x2D, 0x2B, + 0xCC, 0x9F, 0xDA, 0xBC, 0x48, 0xD6, 0xA1, 0xE4, + 0xE9, 0xD6, 0xD9, 0x2A, 0xB2, 0x2B, 0x2B, 0xA1, + 0xB8, 0xE8, 0xE8, 0xE8, 0xEC, 0x3E, 0x30, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x6B, 0x54, 0xDC, + 0xC9, 0x53, 0xBC, 0x2C, 0x2C, 0x2C, 0xAF, 0xAF, + 0xAF, 0xAC, 0xAF, 0xAC, 0xAC, 0x2C, 0xAF, 0xAC, + 0x2C, 0x7D, 0xD9, 0x2C, 0x85, 0xDA, 0xAF, 0x7D, + 0xB2, 0xAC, 0xC6, 0xBA, 0x4C, 0xEF, 0xA7, 0xEF, + 0xEC, 0x7A, 0x62, 0x4B, 0x62, 0x4B, 0x8B, 0x4B, + 0x3A, 0x52, 0x20, 0x6B, 0x21, 0x73, 0xAC, 0x2B, + 0x41, 0x33, 0x48, 0x67, 0xA1, 0xD6, 0xD6, 0x5C, + 0xE9, 0xD6, 0x2C, 0xEE, 0xB2, 0x9F, 0x8A, 0x95, + 0x4D, 0xE8, 0xE8, 0x3D, 0x7A, 0x57, 0xD1, 0x7B, + 0x20, 0x20, 0x20, 0x20, 0x6B, 0xCF, 0xBA, 0x3E, + 0x3E, 0xD0, 0xBC, 0xAC, 0xAC, 0x2C, 0x2C, 0xAC, + 0xD9, 0xD9, 0x95, 0x95, 0x7D, 0x95, 0x95, 0xD9, + 0x85, 0xD9, 0xAF, 0xDA, 0xDA, 0x85, 0xAC, 0x21, + 0xB2, 0x2A, 0xBA, 0x57, 0x2E, 0x2E, 0x2E, 0x7A, + 0x32, 0x62, 0x8B, 0x4B, 0x8B, 0x4B, 0x4B, 0x4B, + 0xC9, 0x4A, 0x5F, 0x20, 0x20, 0x2D, 0xA3, 0xD9, + 0xCA, 0x88, 0xDB, 0x24, 0x48, 0x7D, 0xB2, 0xE4, + 0x2D, 0x7D, 0x7D, 0x81, 0xA1, 0xDA, 0x21, 0xDA, + 0xE4, 0xE8, 0xEE, 0xF1, 0x2E, 0x57, 0x82, 0x76, + 0x52, 0x4F, 0x4F, 0x98, 0xDE, 0xB5, 0xEC, 0x2E, + 0x3E, 0x6D, 0x85, 0x2C, 0xAC, 0xAC, 0xD9, 0xD9, + 0x95, 0xD6, 0x7D, 0x7D, 0x95, 0xD9, 0xD9, 0xD9, + 0xDA, 0x2C, 0x85, 0xDA, 0xDA, 0x2C, 0x95, 0xB2, + 0x21, 0xB8, 0xED, 0x2E, 0x3E, 0x4B, 0xC9, 0x4B, + 0x8B, 0x62, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x22, 0x6F, 0xCE, 0x20, 0x20, 0x20, 0x80, 0xCD, + 0xDA, 0x2D, 0x2B, 0xDB, 0xE9, 0xD6, 0x95, 0x5C, + 0x2D, 0x7D, 0x7D, 0xAF, 0xAF, 0xAC, 0xEE, 0x5C, + 0xE8, 0xE8, 0xEB, 0x25, 0x7A, 0x57, 0x39, 0xE1, + 0x83, 0xA8, 0x55, 0x83, 0x82, 0x57, 0x32, 0x8B, + 0x62, 0x6D, 0xEB, 0x95, 0xD9, 0xD9, 0xD9, 0xD9, + 0xD9, 0xD9, 0xD9, 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, + 0xDA, 0x2C, 0x85, 0x85, 0x85, 0xAC, 0xD6, 0x21, + 0x95, 0x6E, 0xED, 0x57, 0x62, 0x4B, 0x8B, 0x4B, + 0x4B, 0x62, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x62, + 0x62, 0x62, 0x25, 0x3C, 0x20, 0x20, 0x20, 0xE3, + 0x2A, 0xBC, 0x7D, 0xCA, 0x6C, 0xD6, 0x95, 0x3D, + 0x81, 0x7D, 0xD6, 0xD6, 0xDA, 0x73, 0xE8, 0xE8, + 0xE8, 0x4D, 0x94, 0xED, 0x72, 0x3A, 0xF1, 0xA7, + 0x39, 0xED, 0x39, 0xEF, 0x57, 0x32, 0x8B, 0x4B, + 0x62, 0x62, 0xA6, 0x2A, 0xD9, 0xD9, 0xD9, 0xD9, + 0x2C, 0x2C, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, + 0x85, 0x2C, 0x2C, 0xAF, 0xAC, 0x95, 0x21, 0x7D, + 0xAC, 0x8C, 0x46, 0xC4, 0x62, 0x8B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x62, 0xC9, 0x30, 0x7B, 0x20, 0x20, 0x20, + 0x41, 0x4D, 0x3D, 0x85, 0x48, 0x21, 0xDA, 0x3D, + 0xE9, 0xD6, 0xD9, 0xCD, 0x5C, 0xE8, 0xE8, 0xE8, + 0xE8, 0x4D, 0x71, 0x46, 0xEC, 0x2E, 0x72, 0xEC, + 0x29, 0x29, 0x7C, 0x29, 0x2E, 0x4B, 0x4B, 0x62, + 0x62, 0x4B, 0x3A, 0xAD, 0xE2, 0xAF, 0xD9, 0xD9, + 0x2C, 0xDA, 0xDA, 0xDA, 0xDA, 0x85, 0x2C, 0x2C, + 0x2C, 0xAF, 0xAC, 0xD9, 0x95, 0xD6, 0xD6, 0xD9, + 0x2C, 0x8C, 0xBA, 0x7C, 0x2E, 0x4B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x62, 0xC9, 0xDC, 0x34, 0x20, 0x20, 0x20, + 0x20, 0xAC, 0xE8, 0x5C, 0x8C, 0xBC, 0xE4, 0xE8, + 0xEE, 0x2A, 0xA3, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE4, 0x7E, 0x65, 0x46, 0x29, 0x62, 0x62, 0x2E, + 0x2E, 0x72, 0x2E, 0x2E, 0x32, 0x4B, 0x4B, 0x62, + 0x4B, 0x4B, 0x4B, 0x32, 0x61, 0x9D, 0x2C, 0xD9, + 0x2C, 0x85, 0xDA, 0x85, 0x2C, 0xAF, 0xAF, 0xAF, + 0x2C, 0xAC, 0xD9, 0x95, 0xD6, 0x7D, 0x95, 0xAC, + 0x2C, 0xDA, 0x40, 0x7C, 0x2E, 0x4B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x62, 0x62, 0x22, 0xB7, 0xCE, 0x20, 0x20, + 0x20, 0x95, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0x5C, + 0x3D, 0xE9, 0x9A, 0x46, 0x7C, 0x32, 0x8B, 0x62, + 0x4B, 0x8B, 0x8B, 0x4B, 0x4B, 0x4B, 0x4B, 0x62, + 0x4B, 0x4B, 0x4B, 0x4B, 0x62, 0x61, 0x4E, 0xDA, + 0x85, 0x85, 0x85, 0x2C, 0xD9, 0xD9, 0xD9, 0xD9, + 0x85, 0xD9, 0x7D, 0x21, 0x21, 0xD6, 0xAC, 0x2C, + 0x2C, 0xDA, 0xDD, 0x77, 0x8B, 0x62, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x3E, 0x8B, 0x32, 0xC9, 0x22, 0x68, 0x88, 0x33, + 0xA1, 0x73, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0x5C, 0x5C, 0x5C, 0x5C, 0x3D, + 0x89, 0x20, 0x54, 0x23, 0x29, 0x2E, 0x4B, 0x62, + 0x4B, 0x3E, 0x4B, 0x62, 0x4B, 0x4B, 0x4B, 0x8B, + 0x8B, 0xC9, 0x6F, 0x4B, 0x8B, 0x4B, 0x78, 0xE2, + 0x8A, 0x8A, 0x85, 0xAC, 0xD9, 0x7D, 0xD9, 0xAC, + 0x2C, 0xD9, 0xD6, 0xB2, 0x21, 0x7D, 0xAF, 0x85, + 0x2C, 0xDA, 0x40, 0xEF, 0x62, 0x62, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x8B, 0x4B, 0xC9, 0x63, 0xB4, 0x5C, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0xE8, 0xE8, 0xE8, 0xE8, 0x5C, 0x5C, 0xCD, 0xAE, + 0x20, 0x20, 0xCE, 0xE1, 0x57, 0x32, 0x4B, 0x4B, + 0x8B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x8B, 0x4B, 0x62, 0x4B, 0x62, 0x2E, 0x61, 0x28, + 0x8D, 0xDA, 0xAF, 0xD9, 0x95, 0x95, 0xD9, 0xAF, + 0xAF, 0xD9, 0xD6, 0xB2, 0x21, 0xD9, 0x2C, 0x85, + 0xAF, 0xEB, 0xE1, 0x57, 0x2E, 0x62, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x3E, 0x9B, 0x31, 0x6E, + 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, + 0x5C, 0xE8, 0xE8, 0xE8, 0x3D, 0x7D, 0x33, 0x6B, + 0x20, 0x20, 0x34, 0x23, 0x29, 0x3E, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x3E, 0x62, 0x62, 0x2E, 0xC4, 0x49, 0xD5, + 0xDA, 0xD9, 0xD6, 0xA1, 0xA1, 0x21, 0xD9, 0xD9, + 0xD9, 0x95, 0x21, 0x48, 0xD6, 0xAC, 0x85, 0x85, + 0xAF, 0xB6, 0x5D, 0x2E, 0x32, 0x4B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x62, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x62, 0x2E, 0x45, 0xDE, + 0xDA, 0x5C, 0xE8, 0x5C, 0xE8, 0xE8, 0x5C, 0xE8, + 0x5C, 0x5C, 0xA3, 0xAC, 0x2B, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x34, 0x23, 0x29, 0x62, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x62, 0x4B, 0x4B, 0x4B, + 0x4B, 0x3E, 0x3E, 0x63, 0x40, 0x97, 0x28, 0xDA, + 0xD9, 0xA1, 0x48, 0xE9, 0x48, 0x21, 0xD9, 0xD9, + 0xA1, 0xB2, 0xB2, 0xA1, 0x21, 0xAC, 0x85, 0x2C, + 0xDA, 0x36, 0x77, 0x72, 0x62, 0x8B, 0x62, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x3E, 0xEC, 0x2F, 0x51, + 0xE3, 0xAE, 0x48, 0x2C, 0xDA, 0xDA, 0x85, 0xAC, + 0x48, 0x9E, 0x88, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x41, 0xA0, 0x23, 0x72, 0x2E, 0x4B, 0x4B, + 0x4B, 0x62, 0x62, 0x4B, 0x4B, 0x4B, 0x2E, 0x8B, + 0xF0, 0x4C, 0x40, 0xC2, 0x90, 0x8D, 0x85, 0xD9, + 0xA1, 0x6C, 0x6C, 0x48, 0xD6, 0xD9, 0xAF, 0xAC, + 0xA1, 0xD6, 0xD6, 0xB2, 0xD6, 0xAC, 0x85, 0x85, + 0x4D, 0xBE, 0x39, 0x4C, 0x57, 0x2E, 0x2E, 0x2E, + 0x3E, 0x3E, 0x62, 0x3E, 0x4B, 0x4B, 0x4B, 0x4B, + 0x4B, 0x4B, 0x4B, 0x8B, 0x8B, 0x57, 0x60, 0x76, + 0x52, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x3C, 0xA0, 0x23, 0x7C, 0x2E, 0x4B, 0x4B, + 0x8B, 0x62, 0x4B, 0x4B, 0x3E, 0x7A, 0xF0, 0x29, + 0x36, 0x97, 0xBC, 0x8A, 0x8D, 0xDA, 0xD9, 0x48, + 0x81, 0x2D, 0x48, 0xD6, 0xD9, 0xAF, 0x2C, 0x2C, + 0xAC, 0xAF, 0xD9, 0x7D, 0x7D, 0x2C, 0x85, 0x85, + 0x85, 0xB4, 0x66, 0x23, 0x46, 0x2F, 0x60, 0x68, + 0x77, 0x29, 0x29, 0xF0, 0x2E, 0x2E, 0x62, 0x4B, + 0x4B, 0x4B, 0x4B, 0x4B, 0x32, 0x7C, 0x83, 0xB3, + 0x54, 0x6B, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6B, 0x7B, 0xC3, 0xE7, 0x39, 0x72, 0x62, 0x62, + 0x62, 0x62, 0x62, 0x2E, 0x29, 0x77, 0xA7, 0x36, + 0xB8, 0x85, 0x85, 0x8D, 0x8D, 0x85, 0xB2, 0x2D, + 0x2D, 0xE9, 0xD6, 0xD9, 0xAF, 0x2C, 0x85, 0x85, + 0x2A, 0x85, 0xAC, 0x95, 0x95, 0xAF, 0x85, 0x85, + 0xAF, 0x8C, 0xDF, 0xC6, 0xB1, 0xD1, 0xE5, 0xE7, + 0x83, 0x23, 0x5D, 0x60, 0x39, 0x77, 0xEC, 0x2E, + 0x2E, 0x32, 0x32, 0x2E, 0x7C, 0x5D, 0x35, 0xA2, + 0x54, 0x6B, 0x6B, 0x20, 0x6B, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x6B, 0x88, 0xC1, 0x35, 0xE1, 0x77, 0x57, 0x2E, + 0x2E, 0x72, 0x29, 0x77, 0x60, 0xB5, 0x44, 0xE2, + 0x2C, 0x2C, 0xDA, 0x8A, 0xDA, 0xAF, 0xA1, 0x2D, + 0xE9, 0xD6, 0xD9, 0xAF, 0x2C, 0x85, 0x85, 0x85, + 0xEE, 0xAF, 0xD9, 0x7D, 0xD9, 0x2C, 0xDA, 0x85, + 0xAC, 0xAF, 0x85, 0xDA, 0x8A, 0x2A, 0xE2, 0x50, + 0x86, 0xD7, 0x75, 0x35, 0xA8, 0xE7, 0xE1, 0x5D, + 0x68, 0x7C, 0xF1, 0x68, 0xE1, 0xBF, 0xA2, 0xC1, + 0x52, 0x2B, 0x7D, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, + 0x2C, 0x85, 0x85, 0x85, 0x2C, 0x2C, 0x2C, 0x95, + 0xE9, 0x74, 0xCE, 0xE0, 0xE7, 0x60, 0x77, 0x77, + 0x7C, 0xEF, 0x5D, 0x23, 0x3F, 0xB6, 0x8A, 0x2C, + 0xAC, 0xAF, 0x85, 0x8A, 0x85, 0xD9, 0x48, 0x48, + 0xB2, 0x95, 0x95, 0xD9, 0x85, 0xDA, 0x85, 0x85, + 0xD3, 0xB2, 0x21, 0x7D, 0xAC, 0x2C, 0xDA, 0x85, + 0xAC, 0xAC, 0x85, 0x85, 0x85, 0x2C, 0xAF, 0x2C, + 0xDA, 0x8C, 0x79, 0xC7, 0xB0, 0x51, 0xB3, 0x35, + 0xBF, 0xE5, 0xE7, 0xA8, 0xE0, 0xA2, 0xC1, 0x34, + 0x7D, 0x85, 0xAC, 0xD9, 0xAC, 0xAF, 0xAC, 0xAC, + 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, 0xAF, 0xAF, 0x85, + 0xC8, 0xCD, 0x6A, 0x26, 0x35, 0x3F, 0x83, 0x23, + 0x23, 0xE7, 0xBF, 0x96, 0xEB, 0xDA, 0xDA, 0x2C, + 0x2C, 0x2C, 0x85, 0xDA, 0x2C, 0x7D, 0xA1, 0x48, + 0xB2, 0x21, 0xD6, 0xD9, 0x2C, 0xDA, 0x85, 0xAF, + 0xAF, 0x2D, 0xE9, 0x7D, 0xAC, 0x2C, 0x85, 0x2C, + 0xD9, 0xD9, 0xAF, 0x85, 0x85, 0x85, 0x2C, 0x2C, + 0x2C, 0x85, 0xD9, 0x21, 0xAC, 0x2C, 0xBD, 0xA5, + 0xC3, 0xA2, 0xA2, 0xA2, 0x26, 0xC1, 0xCE, 0x2A, + 0xAF, 0x95, 0xD9, 0x2C, 0x2C, 0x85, 0x2C, 0xAF, + 0xAC, 0x2C, 0x85, 0x2C, 0xAF, 0x2C, 0x85, 0xDA, + 0x8D, 0x2A, 0x85, 0x34, 0xC1, 0xB3, 0x76, 0x35, + 0xE0, 0x30, 0xA5, 0xB6, 0x2C, 0x85, 0x85, 0x85, + 0xAF, 0x2C, 0x85, 0x85, 0xD9, 0xD6, 0xA1, 0xA1, + 0x48, 0xA1, 0xD6, 0xAF, 0xDA, 0x8A, 0x2C, 0xD9, + 0xB2, 0x2D, 0x48, 0xD9, 0xAF, 0x2C, 0x2C, 0x85, + 0xAF, 0xAC, 0x2C, 0x85, 0x85, 0x85, 0xAF, 0xAC, + 0xAC, 0x2C, 0xD9, 0xD6, 0xD6, 0x21, 0xB2, 0x2C, + 0xC8, 0x3B, 0x65, 0xC5, 0xCE, 0x8E, 0xC8, 0x2C, + 0xD9, 0x95, 0xAC, 0x2C, 0x2C, 0x2C, 0xAF, 0xAC, + 0xAC, 0xAF, 0x2C, 0x85, 0x2C, 0x2C, 0x2C, 0x85, + 0xDA, 0x2C, 0xD6, 0xAF, 0x59, 0x65, 0xDE, 0xF3, + 0xF3, 0x59, 0xBC, 0xAC, 0xAF, 0x85, 0x85, 0x85, + 0xAF, 0xD9, 0xAF, 0x2C, 0xD9, 0xD6, 0xD6, 0xD6, + 0x21, 0xD6, 0xD9, 0xDA, 0x8D, 0x8A, 0x2C, 0xD9, + 0xB2, 0xA1, 0xD6, 0xAC, 0x2C, 0x2C, 0x2C, 0x85, + 0x2C, 0xAC, 0x2C, 0xDA, 0xDA, 0x85, 0xAF, 0xD9, + 0xD9, 0xAC, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xAC, + 0x85, 0x2A, 0x4D, 0xBC, 0x85, 0xAC, 0xAF, 0xAF, + 0xAC, 0xD9, 0xAF, 0x2C, 0xAF, 0xD9, 0xD9, 0xAC, + 0xAC, 0xAF, 0x85, 0x2C, 0x85, 0x2C, 0x2C, 0x2C, + 0x2C, 0xD9, 0xB2, 0xD4, 0xD6, 0x2C, 0x8A, 0xDA, + 0xC8, 0x85, 0x2C, 0xAC, 0x2C, 0xDA, 0xDA, 0x85, + 0xAF, 0xAC, 0xD9, 0xAC, 0xD9, 0xD9, 0xD9, 0xD9, + 0xD9, 0xAC, 0xDA, 0x8D, 0xBC, 0xDA, 0xD9, 0x95, + 0x95, 0xD9, 0xD9, 0xAF, 0x2C, 0x2C, 0x2C, 0x85, + 0x2C, 0xAF, 0xAF, 0x85, 0x85, 0x85, 0x2C, 0xAC, + 0xD9, 0xAF, 0xAF, 0xAF, 0x2C, 0x2C, 0x2C, 0x85, + 0x8A, 0x2A, 0x8D, 0x2C, 0xD9, 0x95, 0xAC, 0xAC, + 0xD9, 0xD9, 0xD9, 0xD9, 0x95, 0x95, 0xD9, 0xAF, + 0xAF, 0x2C, 0x85, 0x85, 0x85, 0x85, 0x85, 0x2C, + 0x85, 0x2C, 0xD9, 0xD9, 0xD9, 0x2C, 0x2C, 0x2C, + 0x2C, 0x85, 0x85, 0xAF, 0xAF, 0x85, 0x85, 0x85, + 0xAF, 0xD9, 0xD9, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, + 0x2C, 0x85, 0x8A, 0x2A, 0x8D, 0x2C, 0xD9, 0xD9, + 0x2C, 0xAC, 0xAF, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, + 0x85, 0xAF, 0xAC, 0x2C, 0x2C, 0x2C, 0x2C, 0xAC, + 0xD9, 0xD9, 0xAF, 0x85, 0x85, 0x85, 0xDA, 0xDA, + 0x8A, 0x8A, 0x85, 0xAC, 0xD9, 0xD9, 0xAC, 0xD9, + 0xD6, 0xD6, 0x7D, 0x95, 0x7D, 0xD9, 0xAF, 0xAF, + 0xAF, 0x2C, 0x85, 0x85, 0xDA, 0x85, 0x2C, 0x85, + 0x85, 0x2C, 0xAF, 0xAC, 0xAF, 0xAF, 0x2C, 0x2C, + 0x2C, 0x2C, 0x2C, 0xAF, 0xAC, 0x2C, 0x2C, 0x2C, + 0x2C, 0xAF, 0xD9, 0xAC, 0xAF, 0x2C, 0x85, 0x85, + 0x85, 0xDA, 0x8D, 0x8A, 0x85, 0xAC, 0x95, 0xD9 +}; + +#define INCLUDE_LINUX_LOGOBW +#define INCLUDE_LINUX_LOGO16 +#include <linux/linux_logo.h> #else @@ -63,8 +937,5 @@ extern unsigned char linux_logo16_red[]; extern unsigned char linux_logo16_green[]; extern unsigned char linux_logo16_blue[]; extern unsigned char linux_logo16[]; -extern unsigned char *linux_serial_image; - -extern int (*console_show_logo)(void); #endif diff --git a/include/asm-mips/mmu_context.h b/include/asm-mips/mmu_context.h index 9e237fade..b7c4c90cd 100644 --- a/include/asm-mips/mmu_context.h +++ b/include/asm-mips/mmu_context.h @@ -1,4 +1,4 @@ -/* $Id: mmu_context.h,v 1.2 1998/05/05 10:22:01 ralf Exp $ +/* $Id: mmu_context.h,v 1.2 1998/05/07 03:02:50 ralf Exp $ * * Switch a MMU context. * @@ -11,29 +11,61 @@ #ifndef __ASM_MIPS_MMU_CONTEXT_H #define __ASM_MIPS_MMU_CONTEXT_H -#define MAX_ASID 255 - +/* Fuck. The f-word is here so you can grep for it :-) */ extern unsigned long asid_cache; -#define ASID_VERSION_SHIFT 16 -#define ASID_VERSION_MASK ((~0UL) << ASID_VERSION_SHIFT) -#define ASID_FIRST_VERSION (1UL << ASID_VERSION_SHIFT) +/* I patch, therefore I am ... */ +#define ASID_INC(asid) \ + ({ unsigned long __asid = asid; \ + __asm__("1:\taddiu\t%0,0\t\t\t\t# patched\n\t" \ + ".section\t__asid_inc,\"a\"\n\t" \ + ".word\t1b\n\t" \ + ".previous" \ + :"=r" (__asid) \ + :"0" (__asid)); \ + __asid; }) +#define ASID_MASK(asid) \ + ({ unsigned long __asid = asid; \ + __asm__("1:\tandi\t%0,%1,0\t\t\t# patched\n\t" \ + ".section\t__asid_mask,\"a\"\n\t" \ + ".word\t1b\n\t" \ + ".previous" \ + :"=r" (__asid) \ + :"r" (__asid)); \ + __asid; }) +#define ASID_VERSION_MASK \ + ({ unsigned long __asid; \ + __asm__("1:\tli\t%0,0\t\t\t\t# patched\n\t" \ + ".section\t__asid_version_mask,\"a\"\n\t" \ + ".word\t1b\n\t" \ + ".previous" \ + :"=r" (__asid)); \ + __asid; }) +#define ASID_FIRST_VERSION \ + ({ unsigned long __asid = asid; \ + __asm__("1:\tli\t%0,0\t\t\t\t# patched\n\t" \ + ".section\t__asid_first_version,\"a\"\n\t" \ + ".word\t1b\n\t" \ + ".previous" \ + :"=r" (__asid)); \ + __asid; }) + +#define ASID_FIRST_VERSION_R3000 0x1000 +#define ASID_FIRST_VERSION_R4000 0x100 -extern inline void get_new_mmu_context(struct mm_struct *mm, unsigned long asid) +extern inline void +get_new_mmu_context(struct mm_struct *mm, unsigned long asid) { - /* check if it's legal.. */ - if ((asid & ~ASID_VERSION_MASK) > MAX_ASID) { - /* start a new version, invalidate all old asid's */ - flush_tlb_all(); - asid = (asid & ASID_VERSION_MASK) + ASID_FIRST_VERSION; - if (!asid) + if (!ASID_MASK((asid = ASID_INC(asid)))) { + flush_tlb_all(); /* start new asid cycle */ + if (!asid) /* fix version if needed */ asid = ASID_FIRST_VERSION; } - asid_cache = asid + 1; - mm->context = asid; /* full version + asid */ + mm->context = asid_cache = asid; } -extern inline void get_mmu_context(struct task_struct *p) +extern inline void +get_mmu_context(struct task_struct *p) { struct mm_struct *mm = p->mm; @@ -73,4 +105,30 @@ extern inline void activate_context(struct task_struct *tsk) set_entryhi(tsk->mm->context); } +extern void __asid_setup(unsigned int inc, unsigned int mask, + unsigned int version_mask, unsigned int first_version); + +extern inline void r3000_asid_setup(void) +{ + __asid_setup(0x40, 0xfc0, 0xf000, ASID_FIRST_VERSION_R3000); +} + +extern inline void r6000_asid_setup(void) +{ + panic("r6000_asid_setup: implement me"); /* No idea ... */ +} + +extern inline void tfp_asid_setup(void) +{ + panic("tfp_asid_setup: implement me"); /* No idea ... */ +} + +extern inline void r4xx0_asid_setup(void) +{ + __asid_setup(1, 0xff, 0xff00, ASID_FIRST_VERSION_R4000); +} + +/* R10000 has the same ASID mechanism as the R4000. */ +#define andes_asid_setup r4xx0_asid_setup + #endif /* __ASM_MIPS_MMU_CONTEXT_H */ diff --git a/include/asm-mips/namei.h b/include/asm-mips/namei.h index eb895b003..d61b3cd82 100644 --- a/include/asm-mips/namei.h +++ b/include/asm-mips/namei.h @@ -3,7 +3,7 @@ * * Included from linux/fs/namei.c * - * $Id: namei.h,v 1.6 1997/09/18 07:59:31 root Exp $ + * $Id: namei.h,v 1.5 1997/12/01 18:00:40 ralf Exp $ */ #ifndef __ASM_MIPS_NAMEI_H #define __ASM_MIPS_NAMEI_H @@ -14,7 +14,7 @@ #define IRIX32_EMUL "usr/gnemul/irix/" static inline struct dentry * -__mips_lookup_dentry(const char *name, int follow_link) +__mips_lookup_dentry(const char *name, int lookup_flags) { struct dentry *base; @@ -22,11 +22,12 @@ __mips_lookup_dentry(const char *name, int follow_link) return ERR_PTR(-ENOENT); base = lookup_dentry (IRIX32_EMUL, - dget (current->fs->root), 1); + dget (current->fs->root), + (LOOKUP_FOLLOW | LOOKUP_DIRECTORY | LOOKUP_SLASHOK)); if (IS_ERR (base)) return base; - base = lookup_dentry (name, base, follow_link); + base = lookup_dentry (name, base, lookup_flags); if (IS_ERR (base)) return base; @@ -40,13 +41,13 @@ __mips_lookup_dentry(const char *name, int follow_link) #ifdef CONFIG_BINFMT_IRIX -#define __prefix_lookup_dentry(name, follow_link) \ - dentry = __mips_lookup_dentry (name, follow_link); \ +#define __prefix_lookup_dentry(name, lookup_flags) \ + dentry = __mips_lookup_dentry (name, lookup_flags); \ if (!IS_ERR (dentry)) return dentry; #else /* !defined(CONFIG_BINFMT_IRIX) */ -#define __prefix_lookup_dentry(name, follow_link) \ +#define __prefix_lookup_dentry(name, lookup_flags) \ do {} while (0) #endif /* !defined(CONFIG_BINFMT_IRIX) */ diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index 3629f496d..397e9b008 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h @@ -1,4 +1,4 @@ -/* $Id: page.h,v 1.4 1998/08/25 09:21:59 ralf Exp $ +/* $Id: page.h,v 1.5 1998/08/28 23:24:03 tsbogend Exp $ * * Definitions for page handling * @@ -22,58 +22,6 @@ #ifndef _LANGUAGE_ASSEMBLY -#ifdef __SMP__ -#define ULOCK_DECLARE extern spinlock_t user_page_lock; -#else -#define ULOCK_DECLARE -#endif -struct upcache { - struct page *list; - unsigned long count; -}; -extern struct upcache user_page_cache[8]; -#define USER_PAGE_WATER 16 - -extern unsigned long get_user_page_slow(int which); -extern unsigned long user_page_colours, user_page_order; - -#define get_user_page(__vaddr) \ -({ \ - ULOCK_DECLARE \ - int which = ((__vaddr) >> PAGE_SHIFT) & user_page_colours; \ - struct upcache *up = &user_page_cache[which]; \ - struct page *p; \ - unsigned long ret; \ - spin_lock(&user_page_lock); \ - if((p = up->list) != NULL) { \ - up->list = p->next; \ - up->count--; \ - } \ - spin_unlock(&user_page_lock); \ - if(p != NULL) \ - ret = PAGE_OFFSET+PAGE_SIZE*p->map_nr; \ - else \ - ret = get_user_page_slow(which); \ - ret; \ -}) - -#define free_user_page(__page, __addr) \ -do { \ - ULOCK_DECLARE \ - int which = ((__addr) >> PAGE_SHIFT) & user_page_colours; \ - struct upcache *up = &user_page_cache[which]; \ - if(atomic_read(&(__page)->count) == 1 && \ - up->count < USER_PAGE_WATER) { \ - spin_lock(&user_page_lock); \ - (__page)->age = PAGE_INITIAL_AGE; \ - (__page)->next = up->list; \ - up->list = (__page); \ - up->count++; \ - spin_unlock(&user_page_lock); \ - } else \ - free_page(__addr); \ -} while(0) - extern void (*clear_page)(unsigned long page); extern void (*copy_page)(unsigned long to, unsigned long from); diff --git a/include/asm-mips/pci.h b/include/asm-mips/pci.h index 40781ed92..a8b7318fd 100644 --- a/include/asm-mips/pci.h +++ b/include/asm-mips/pci.h @@ -1,4 +1,4 @@ -/* $Id: pci.h,v 1.3 1998/05/07 14:18:11 ralf Exp $ +/* $Id: pci.h,v 1.4 1998/08/25 09:21:59 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -10,7 +10,7 @@ #define __ASM_MIPS_PCI_H struct pci_ops { - unsigned long (*pcibios_fixup) (void); + void (*pcibios_fixup) (void); int (*pcibios_read_config_byte) (unsigned char bus, unsigned char dev_fn, unsigned char where, diff --git a/include/asm-mips/processor.h b/include/asm-mips/processor.h index 5c4061437..a1e8aa831 100644 --- a/include/asm-mips/processor.h +++ b/include/asm-mips/processor.h @@ -1,4 +1,4 @@ -/* $Id: processor.h,v 1.12 1998/08/25 09:22:00 ralf Exp $ +/* $Id: processor.h,v 1.13 1998/10/14 23:40:47 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -174,6 +174,7 @@ struct thread_struct { /* Free all resources held by a thread. */ extern void release_thread(struct task_struct *); +extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); /* Copy and release all segment info associated with a VM */ #define copy_segments(nr, p, mm) do { } while(0) diff --git a/include/asm-mips/ptrace.h b/include/asm-mips/ptrace.h index 7fccd703e..4a52e9440 100644 --- a/include/asm-mips/ptrace.h +++ b/include/asm-mips/ptrace.h @@ -1,4 +1,4 @@ -/* $Id: ptrace.h,v 1.3 1998/07/09 21:45:21 ralf Exp $ +/* $Id: ptrace.h,v 1.3 1998/07/10 01:14:55 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -15,13 +15,14 @@ #include <linux/types.h> /* 0 - 31 are integer registers, 32 - 63 are fp registers. */ +#define FPR_BASE 32 #define PC 64 #define CAUSE 65 -#define MMLO 66 +#define BADVADDR 66 #define MMHI 67 -#define FPC_CSR 68 /* XXX */ -#define FPC_EIR 69 /* XXX */ -#define FPR_BASE 70 /* XXX */ +#define MMLO 68 +#define FPC_CSR 69 +#define FPC_EIR 70 #ifndef __ASSEMBLY__ /* diff --git a/include/asm-mips/resource.h b/include/asm-mips/resource.h index 16c83544d..42eb9e66e 100644 --- a/include/asm-mips/resource.h +++ b/include/asm-mips/resource.h @@ -1,11 +1,10 @@ -/* - * Process resource limits +/* $Id: resource.h,v 1.2 1998/12/08 20:51:59 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Copyright (C) 1995, 1996 by Ralf Baechle + * Copyright (C) 1995, 1996, 1998 by Ralf Baechle */ #ifndef __ASM_MIPS_RESOURCE_H #define __ASM_MIPS_RESOURCE_H @@ -30,15 +29,15 @@ #define INIT_RLIMITS \ { \ - {LONG_MAX, LONG_MAX}, \ - {LONG_MAX, LONG_MAX}, \ - {LONG_MAX, LONG_MAX}, \ - {_STK_LIM, _STK_LIM}, \ - { 0, LONG_MAX}, \ - {NR_OPEN, NR_OPEN}, \ - {LONG_MAX, LONG_MAX}, \ - {LONG_MAX, LONG_MAX}, \ - {MAX_TASKS_PER_USER, MAX_TASKS_PER_USER}, \ + { LONG_MAX, LONG_MAX }, \ + { LONG_MAX, LONG_MAX }, \ + { LONG_MAX, LONG_MAX }, \ + { _STK_LIM, LONG_MAX }, \ + { 0, LONG_MAX }, \ + { NR_OPEN, NR_OPEN }, \ + { LONG_MAX, LONG_MAX }, \ + { LONG_MAX, LONG_MAX }, \ + { MAX_TASKS_PER_USER, MAX_TASKS_PER_USER }, \ { LONG_MAX, LONG_MAX }, \ } diff --git a/include/asm-mips/semaphore.h b/include/asm-mips/semaphore.h index 71ffec761..aff081776 100644 --- a/include/asm-mips/semaphore.h +++ b/include/asm-mips/semaphore.h @@ -23,9 +23,9 @@ struct semaphore { #define MUTEX ((struct semaphore) { ATOMIC_INIT(1), ATOMIC_INIT(0), NULL }) #define MUTEX_LOCKED ((struct semaphore) { ATOMIC_INIT(0), ATOMIC_INIT(0), NULL }) -extern void __down(struct semaphore * sem); -extern int __down_interruptible(struct semaphore * sem); -extern void __up(struct semaphore * sem); +asmlinkage void __down(struct semaphore * sem); +asmlinkage int __down_interruptible(struct semaphore * sem); +asmlinkage void __up(struct semaphore * sem); extern spinlock_t semaphore_wake_lock; diff --git a/include/asm-mips/shmparam.h b/include/asm-mips/shmparam.h index b2441c81a..b4ed1faaf 100644 --- a/include/asm-mips/shmparam.h +++ b/include/asm-mips/shmparam.h @@ -33,7 +33,9 @@ * SHMMAX <= (PAGE_SIZE << _SHM_IDX_BITS). */ -#define SHMMAX 0x1000000 /* max shared seg size (bytes) */ +#define SHMMAX 0x2000000 /* max shared seg size (bytes) */ +/* Try not to change the default shipped SHMMAX - people rely on it */ + #define SHMMIN 1 /* really PAGE_SIZE */ /* min shared seg size (bytes) */ #define SHMMNI (1<<_SHM_ID_BITS) /* max num of segs system wide */ #define SHMALL /* max shm system wide (pages) */ \ diff --git a/include/asm-mips/sni.h b/include/asm-mips/sni.h index 16a4ace09..1e2391ddb 100644 --- a/include/asm-mips/sni.h +++ b/include/asm-mips/sni.h @@ -1,4 +1,4 @@ -/* $Id: sni.h,v 1.2 1998/09/16 22:52:43 ralf Exp $ +/* $Id: sni.h,v 1.2 1998/09/19 19:19:39 ralf Exp $ * * SNI specific definitions * @@ -69,10 +69,10 @@ #define PCIMT_PWDN 0xbfdf0000 /* - * Interrupt 0-16 are reserved for PCI and EISA interrupts. The - * interrupts from 16 are assigned to the other interrupts generated - * by the PCI chipset. + * Interrupt 0-16 are EISA interrupts. Interrupts from 16 on are assigned + * to the other interrupts generated by ASIC PCI. */ +#define PCIMT_KEYBOARD_IRQ 1 #define PCIMT_IRQ_ETHERNET 16 #define PCIMT_IRQ_TEMPERATURE 17 #define PCIMT_IRQ_EISA_NMI 18 @@ -89,9 +89,7 @@ */ #define PCIMT_EISA_BASE 0xb0000000 -/* - * The keyboard interrupt is an ISA interrupt - */ -#define SNI_KEYBOARD_IRQ 1 +/* PCI EISA Interrupt acknowledge */ +#define PCIMT_INT_ACKNOWLEDGE 0xba000000 #endif /* __ASM_MIPS_SNI_H */ diff --git a/include/asm-mips/termios.h b/include/asm-mips/termios.h index ae1e770aa..4a6553c17 100644 --- a/include/asm-mips/termios.h +++ b/include/asm-mips/termios.h @@ -94,6 +94,8 @@ struct termio { #define N_X25 6 /* X.25 async */ #define N_6PACK 7 #define N_MASC 8 /* Reserved fo Mobitex module <kaz@cafe.net> */ +#define N_R3964 9 /* Reserved for Simatic R3964 module */ +#define N_PROFIBUS_FDL 10 /* Reserved for Profibus <Dave@mvhi.com> */ #ifdef __KERNEL__ diff --git a/include/asm-mips/uaccess.h b/include/asm-mips/uaccess.h index 8b139fe23..e6750b4e5 100644 --- a/include/asm-mips/uaccess.h +++ b/include/asm-mips/uaccess.h @@ -7,7 +7,7 @@ * * Copyright (C) 1996, 1997, 1998 by Ralf Baechle * - * $Id: uaccess.h,v 1.15 1998/05/03 11:13:54 ralf Exp $ + * $Id: uaccess.h,v 1.7 1998/05/04 09:13:02 ralf Exp $ */ #ifndef __ASM_MIPS_UACCESS_H #define __ASM_MIPS_UACCESS_H @@ -265,6 +265,21 @@ __asm__ __volatile__( \ extern void __put_user_unknown(void); +/* + * We're generating jump to subroutines which will be outside the range of + * jump instructions + */ +#ifdef MODULE +#define __MODULE_JAL(destination) \ + ".set\tnoat\n\t" \ + "la\t$1, " #destination "\n\t" \ + "jalr\t$1\n\t" \ + ".set\tat\n\t" +#else +#define __MODULE_JAL(destination) \ + "jal\t" #destination "\n\t" +#endif + #define copy_to_user_ret(to,from,n,retval) ({ \ if (copy_to_user(to,from,n)) \ return retval; \ @@ -289,7 +304,7 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n); "move\t$4, %1\n\t" \ "move\t$5, %2\n\t" \ "move\t$6, %3\n\t" \ - "jal\t__copy_user\n\t" \ + __MODULE_JAL(__copy_user) \ "move\t%0, $6" \ : "=r" (__cu_len) \ : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \ @@ -313,7 +328,7 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n); ".set\tnoat\n\t" \ "addu\t$1, %2, %3\n\t" \ ".set\tat\n\t" \ - "jal\t__copy_user\n\t" \ + __MODULE_JAL(__copy_user) \ "move\t%0, $6" \ : "=r" (__cu_len) \ : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \ @@ -335,7 +350,7 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n); "move\t$4, %1\n\t" \ "move\t$5, %2\n\t" \ "move\t$6, %3\n\t" \ - "jal\t__copy_user\n\t" \ + __MODULE_JAL(__copy_user) \ "move\t%0, $6" \ : "=r" (__cu_len) \ : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \ @@ -360,7 +375,7 @@ extern size_t __copy_user(void *__to, const void *__from, size_t __n); ".set\tnoat\n\t" \ "addu\t$1, %2, %3\n\t" \ ".set\tat\n\t" \ - "jal\t__copy_user\n\t" \ + __MODULE_JAL(__copy_user) \ "move\t%0, $6" \ : "=r" (__cu_len) \ : "r" (__cu_to), "r" (__cu_from), "r" (__cu_len) \ @@ -378,7 +393,7 @@ __clear_user(void *addr, __kernel_size_t size) "move\t$4, %1\n\t" "move\t$5, $0\n\t" "move\t$6, %2\n\t" - "jal\t__bzero\n\t" + __MODULE_JAL(__bzero) "move\t%0, $6" : "=r" (res) : "r" (addr), "r" (size) @@ -407,7 +422,7 @@ __strncpy_from_user(char *__to, const char *__from, long __len) "move\t$4, %1\n\t" "move\t$5, %2\n\t" "move\t$6, %3\n\t" - "jal\t__strncpy_from_user_nocheck_asm\n\t" + __MODULE_JAL(__strncpy_from_user_nocheck_asm) "move\t%0, $2" : "=r" (res) : "r" (__to), "r" (__from), "r" (__len) @@ -425,7 +440,7 @@ strncpy_from_user(char *__to, const char *__from, long __len) "move\t$4, %1\n\t" "move\t$5, %2\n\t" "move\t$6, %3\n\t" - "jal\t__strncpy_from_user_asm\n\t" + __MODULE_JAL(__strncpy_from_user_asm) "move\t%0, $2" : "=r" (res) : "r" (__to), "r" (__from), "r" (__len) @@ -442,7 +457,7 @@ extern inline long __strlen_user(const char *s) __asm__ __volatile__( "move\t$4, %1\n\t" - "jal\t__strlen_user_nocheck_asm\n\t" + __MODULE_JAL(__strlen_user_nocheck_asm) "move\t%0, $2" : "=r" (res) : "r" (s) @@ -457,7 +472,7 @@ extern inline long strlen_user(const char *s) __asm__ __volatile__( "move\t$4, %1\n\t" - "jal\t__strlen_user_asm\n\t" + __MODULE_JAL(__strlen_user_asm) "move\t%0, $2" : "=r" (res) : "r" (s) diff --git a/include/asm-mips/unistd.h b/include/asm-mips/unistd.h index 1907a49ac..4c68fe0ee 100644 --- a/include/asm-mips/unistd.h +++ b/include/asm-mips/unistd.h @@ -1,4 +1,4 @@ -/* $Id: unistd.h,v 1.11 1998/08/25 09:22:03 ralf Exp $ +/* $Id: unistd.h,v 1.12 1998/09/19 19:19:40 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -1194,8 +1194,8 @@ #define __NR_capset (__NR_Linux + 205) #define __NR_sigaltstack (__NR_Linux + 206) #define __NR_sendfile (__NR_Linux + 207) -#define __NR_streams1 (__NR_Linux + 208) -#define __NR_streams2 (__NR_Linux + 209) +#define __NR_getpmsg (__NR_Linux + 208) +#define __NR_putpmsg (__NR_Linux + 209) /* * Offset of the last Linux flavoured syscall @@ -1300,7 +1300,7 @@ __asm__ volatile ("move\t$4,%3\n\t" \ "r" ((long)(b)), \ "r" ((long)(c)), \ "r" ((long)(d)) \ - : "$4","$5","$6""$8","$9","$10","$11","$12","$13","$14", \ + : "$4","$5","$6","$8","$9","$10","$11","$12","$13","$14", \ "$15","$24"); \ if (__err == 0) \ return (type) __res; \ @@ -1437,48 +1437,6 @@ static inline pid_t wait(int * wait_stat) return waitpid(-1,wait_stat,0); } -/* - * This is the mechanism for creating a new kernel thread. - * - * NOTE! Only a kernel-only process(ie the swapper or direct descendants - * who haven't done an "execve()") should use this: it will work within - * a system call from a "real" process, but the process memory space will - * not be free'd until both the parent and the child have exited. - */ -static inline pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) -{ - long retval; - - __asm__ __volatile__( - ".set\tnoreorder\n\t" - "move\t$6,$sp\n\t" - "move\t$4,%5\n\t" - "li\t$2,%1\n\t" - "syscall\n\t" - "beq\t$6,$sp,1f\n\t" - "subu\t$sp,32\n\t" /* delay slot */ - "jalr\t%4\n\t" - "move\t$4,%3\n\t" /* delay slot */ - "move\t$4,$2\n\t" - "li\t$2,%2\n\t" - "syscall\n" - "1:\taddiu\t$sp,32\n\t" - "move\t%0,$2\n\t" - ".set\treorder" - :"=r" (retval) - :"i" (__NR_clone), "i" (__NR_exit), - "r" (arg), "r" (fn), - "r" (flags | CLONE_VM) - /* - * The called subroutine might have destroyed any of the - * at, result, argument or temporary registers ... - */ - :"$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8", - "$9","$10","$11","$12","$13","$14","$15","$24","$25"); - - return retval; -} - #endif /* !defined (__KERNEL_SYSCALLS__) */ #endif /* !defined (_LANGUAGE_ASSEMBLY) */ diff --git a/include/asm-mips/vga.h b/include/asm-mips/vga.h index 5fc680563..a74df2d2d 100644 --- a/include/asm-mips/vga.h +++ b/include/asm-mips/vga.h @@ -7,29 +7,14 @@ #ifndef _LINUX_ASM_VGA_H_ #define _LINUX_ASM_VGA_H_ -#include <asm/io.h> - -#define VT_BUF_HAVE_RW - -extern inline void scr_writew(u16 val, u16 *addr) -{ - if ((long) addr < 0) - *addr = val; - else - writew(val, (unsigned long) addr); -} - -extern inline u16 scr_readw(u16 *addr) -{ - if ((long) addr < 0) - return *addr; - else - return readw((unsigned long) addr); -} +/* + * On the PC, we can just recalculate addresses and then + * access the videoram directly without any black magic. + */ -#define vga_readb readb -#define vga_writeb writeb +#define VGA_MAP_MEM(x) ((unsigned long)0xb0000000 + (unsigned long)(x)) -#define VGA_MAP_MEM(x) (x) +#define vga_readb(x) (*(x)) +#define vga_writeb(x,y) (*(y) = (x)) #endif |