special usb hub handling, IDE disks, and retries all over the place
[linux-2.4.git] / include / asm-arm / arch-ebsa110 / uncompress.h
1 /*
2  *  linux/include/asm-arm/arch-ebsa110/uncompress.h
3  *
4  *  Copyright (C) 1996,1997,1998 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10
11 /*
12  * This does not append a newline
13  */
14 static void puts(const char *s)
15 {
16         unsigned long tmp1, tmp2;
17
18         __asm__ __volatile__("                  \n\
19         ldrb    %0, [%2], #1                    \n\
20         teq     %0, #0                          \n\
21         beq     3f                              \n\
22 1:      strb    %0, [%3]                        \n\
23 2:      ldrb    %1, [%3, #0x14]                 \n\
24         and     %1, %1, #0x60                   \n\
25         teq     %1, #0x60                       \n\
26         bne     2b                              \n\
27         teq     %0, #'\n'                       \n\
28         moveq   %0, #'\r'                       \n\
29         beq     1b                              \n\
30         ldrb    %0, [%2], #1                    \n\
31         teq     %0, #0                          \n\
32         bne     1b                              \n\
33 3:      ldrb    %1, [%3, #0x14]                 \n\
34         and     %1, %1, #0x60                   \n\
35         teq     %1, #0x60                       \n\
36         bne     3b                              \n\
37         "
38          : "=&r" (tmp1), "=&r" (tmp2)
39          : "r" (s), "r" (0xf0000be0) : "cc");
40 }
41
42 /*
43  * nothing to do
44  */
45 #define arch_decomp_setup()
46 #define arch_decomp_wdog()