annotate sources/patches/linux-2.6.19-squashfs-1.patch @ 73:2fa6b59e0210

Added tag 0.1.0 for changeset 478178b9337b
author Rob Landley <rob@landley.net>
date Fri, 29 Dec 2006 20:00:10 -0500
parents 4dfa721aa532
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1 diff -Nru linux-2.6.19.ori2/fs/Kconfig linux-2.6.19.ori/fs/Kconfig
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2 --- linux-2.6.19.ori2/fs/Kconfig 2006-11-29 22:57:37.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3 +++ linux-2.6.19.ori/fs/Kconfig 2006-12-03 00:12:36.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4 @@ -1407,6 +1407,71 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
5
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
6 If unsure, say N.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
7
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
8 +config SQUASHFS
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
9 + tristate "SquashFS 3.1 - Squashed file system support"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
10 + select ZLIB_INFLATE
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
11 + help
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
12 + Saying Y here includes support for SquashFS 3.1 (a Compressed Read-Only File
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
13 + System). Squashfs is a highly compressed read-only filesystem for Linux.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
14 + It uses zlib compression to compress both files, inodes and directories.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
15 + Inodes in the system are very small and all blocks are packed to minimise
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
16 + data overhead. Block sizes greater than 4K are supported up to a maximum of 64K.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
17 + SquashFS 3.1 supports 64 bit filesystems and files (larger than 4GB), full
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
18 + uid/gid information, hard links and timestamps.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
19 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
20 + Squashfs is intended for general read-only filesystem use, for archival
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
21 + use (i.e. in cases where a .tar.gz file may be used), and in embedded
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
22 + systems where low overhead is needed. Further information and filesystem tools
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
23 + are available from http://squashfs.sourceforge.net.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
24 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
25 + If you want to compile this as a module ( = code which can be
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
26 + inserted in and removed from the running kernel whenever you want),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
27 + say M here and read <file:Documentation/modules.txt>. The module
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
28 + will be called squashfs. Note that the root file system (the one
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
29 + containing the directory /) cannot be compiled as a module.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
30 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
31 + If unsure, say N.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
32 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
33 +config SQUASHFS_EMBEDDED
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
34 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
35 + bool "Additional options for memory-constrained systems"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
36 + depends on SQUASHFS
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
37 + default n
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
38 + help
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
39 + Saying Y here allows you to specify cache sizes and how Squashfs
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
40 + allocates memory. This is only intended for memory constrained
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
41 + systems.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
42 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
43 + If unsure, say N.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
44 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
45 +config SQUASHFS_FRAGMENT_CACHE_SIZE
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
46 + int "Number of fragments cached" if SQUASHFS_EMBEDDED
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
47 + depends on SQUASHFS
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
48 + default "3"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
49 + help
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
50 + By default SquashFS caches the last 3 fragments read from
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
51 + the filesystem. Increasing this amount may mean SquashFS
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
52 + has to re-read fragments less often from disk, at the expense
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
53 + of extra system memory. Decreasing this amount will mean
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
54 + SquashFS uses less memory at the expense of extra reads from disk.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
55 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
56 + Note there must be at least one cached fragment. Anything
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
57 + much more than three will probably not make much difference.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
58 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
59 +config SQUASHFS_VMALLOC
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
60 + bool "Use Vmalloc rather than Kmalloc" if SQUASHFS_EMBEDDED
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
61 + depends on SQUASHFS
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
62 + default n
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
63 + help
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
64 + By default SquashFS uses kmalloc to obtain fragment cache memory.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
65 + Kmalloc memory is the standard kernel allocator, but it can fail
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
66 + on memory constrained systems. Because of the way Vmalloc works,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
67 + Vmalloc can succeed when kmalloc fails. Specifying this option
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
68 + will make SquashFS always use Vmalloc to allocate the
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
69 + fragment cache memory.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
70 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
71 + If unsure, say N.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
72 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
73 config VXFS_FS
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
74 tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
75 depends on BLOCK
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
76 diff -Nru linux-2.6.19.ori2/fs/Makefile linux-2.6.19.ori/fs/Makefile
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
77 --- linux-2.6.19.ori2/fs/Makefile 2006-11-29 22:57:37.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
78 +++ linux-2.6.19.ori/fs/Makefile 2006-12-03 00:12:36.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
79 @@ -67,6 +67,7 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
80 obj-$(CONFIG_JBD2) += jbd2/
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
81 obj-$(CONFIG_EXT2_FS) += ext2/
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
82 obj-$(CONFIG_CRAMFS) += cramfs/
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
83 +obj-$(CONFIG_SQUASHFS) += squashfs/
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
84 obj-$(CONFIG_RAMFS) += ramfs/
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
85 obj-$(CONFIG_HUGETLBFS) += hugetlbfs/
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
86 obj-$(CONFIG_CODA_FS) += coda/
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
87 diff -Nru linux-2.6.19.ori2/fs/squashfs/Makefile linux-2.6.19.ori/fs/squashfs/Makefile
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
88 --- linux-2.6.19.ori2/fs/squashfs/Makefile 1970-01-01 01:00:00.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
89 +++ linux-2.6.19.ori/fs/squashfs/Makefile 2006-12-03 00:12:36.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
90 @@ -0,0 +1,7 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
91 +#
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
92 +# Makefile for the linux squashfs routines.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
93 +#
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
94 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
95 +obj-$(CONFIG_SQUASHFS) += squashfs.o
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
96 +squashfs-y += inode.o
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
97 +squashfs-y += squashfs2_0.o
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
98 diff -Nru linux-2.6.19.ori2/fs/squashfs/inode.c linux-2.6.19.ori/fs/squashfs/inode.c
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
99 --- linux-2.6.19.ori2/fs/squashfs/inode.c 1970-01-01 01:00:00.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
100 +++ linux-2.6.19.ori/fs/squashfs/inode.c 2006-12-03 00:13:45.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
101 @@ -0,0 +1,2152 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
102 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
103 + * Squashfs - a compressed read only filesystem for Linux
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
104 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
105 + * Copyright (c) 2002, 2003, 2004, 2005, 2006
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
106 + * Phillip Lougher <phillip@lougher.org.uk>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
107 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
108 + * This program is free software; you can redistribute it and/or
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
109 + * modify it under the terms of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
110 + * as published by the Free Software Foundation; either version 2,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
111 + * or (at your option) any later version.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
112 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
113 + * This program is distributed in the hope that it will be useful,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
114 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
115 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
116 + * GNU General Public License for more details.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
117 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
118 + * You should have received a copy of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
119 + * along with this program; if not, write to the Free Software
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
120 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
121 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
122 + * inode.c
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
123 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
124 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
125 +#include <linux/types.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
126 +#include <linux/squashfs_fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
127 +#include <linux/module.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
128 +#include <linux/errno.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
129 +#include <linux/slab.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
130 +#include <linux/zlib.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
131 +#include <linux/fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
132 +#include <linux/smp_lock.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
133 +#include <linux/slab.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
134 +#include <linux/squashfs_fs_sb.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
135 +#include <linux/squashfs_fs_i.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
136 +#include <linux/buffer_head.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
137 +#include <linux/vfs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
138 +#include <linux/init.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
139 +#include <linux/dcache.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
140 +#include <linux/wait.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
141 +#include <linux/blkdev.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
142 +#include <linux/vmalloc.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
143 +#include <asm/uaccess.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
144 +#include <asm/semaphore.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
145 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
146 +#include "squashfs.h"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
147 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
148 +static void squashfs_put_super(struct super_block *);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
149 +static int squashfs_statfs(struct dentry *, struct kstatfs *);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
150 +static int squashfs_symlink_readpage(struct file *file, struct page *page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
151 +static int squashfs_readpage(struct file *file, struct page *page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
152 +static int squashfs_readpage4K(struct file *file, struct page *page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
153 +static int squashfs_readdir(struct file *, void *, filldir_t);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
154 +static struct inode *squashfs_alloc_inode(struct super_block *sb);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
155 +static void squashfs_destroy_inode(struct inode *inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
156 +static int init_inodecache(void);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
157 +static void destroy_inodecache(void);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
158 +static struct dentry *squashfs_lookup(struct inode *, struct dentry *,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
159 + struct nameidata *);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
160 +static struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
161 +static long long read_blocklist(struct inode *inode, int index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
162 + int readahead_blks, char *block_list,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
163 + unsigned short **block_p, unsigned int *bsize);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
164 +static int squashfs_get_sb(struct file_system_type *, int, const char *, void *,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
165 + struct vfsmount *);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
166 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
167 +static struct file_system_type squashfs_fs_type = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
168 + .owner = THIS_MODULE,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
169 + .name = "squashfs",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
170 + .get_sb = squashfs_get_sb,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
171 + .kill_sb = kill_block_super,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
172 + .fs_flags = FS_REQUIRES_DEV
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
173 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
174 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
175 +static unsigned char squashfs_filetype_table[] = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
176 + DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
177 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
178 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
179 +static struct super_operations squashfs_ops = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
180 + .alloc_inode = squashfs_alloc_inode,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
181 + .destroy_inode = squashfs_destroy_inode,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
182 + .statfs = squashfs_statfs,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
183 + .put_super = squashfs_put_super,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
184 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
185 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
186 +SQSH_EXTERN struct address_space_operations squashfs_symlink_aops = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
187 + .readpage = squashfs_symlink_readpage
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
188 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
189 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
190 +SQSH_EXTERN struct address_space_operations squashfs_aops = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
191 + .readpage = squashfs_readpage
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
192 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
193 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
194 +SQSH_EXTERN struct address_space_operations squashfs_aops_4K = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
195 + .readpage = squashfs_readpage4K
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
196 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
197 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
198 +static struct file_operations squashfs_dir_ops = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
199 + .read = generic_read_dir,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
200 + .readdir = squashfs_readdir
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
201 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
202 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
203 +SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
204 + .lookup = squashfs_lookup
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
205 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
206 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
207 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
208 +static struct buffer_head *get_block_length(struct super_block *s,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
209 + int *cur_index, int *offset, int *c_byte)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
210 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
211 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
212 + unsigned short temp;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
213 + struct buffer_head *bh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
214 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
215 + if (!(bh = sb_bread(s, *cur_index)))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
216 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
217 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
218 + if (msblk->devblksize - *offset == 1) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
219 + if (msblk->swap)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
220 + ((unsigned char *) &temp)[1] = *((unsigned char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
221 + (bh->b_data + *offset));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
222 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
223 + ((unsigned char *) &temp)[0] = *((unsigned char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
224 + (bh->b_data + *offset));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
225 + brelse(bh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
226 + if (!(bh = sb_bread(s, ++(*cur_index))))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
227 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
228 + if (msblk->swap)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
229 + ((unsigned char *) &temp)[0] = *((unsigned char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
230 + bh->b_data);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
231 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
232 + ((unsigned char *) &temp)[1] = *((unsigned char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
233 + bh->b_data);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
234 + *c_byte = temp;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
235 + *offset = 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
236 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
237 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
238 + ((unsigned char *) &temp)[1] = *((unsigned char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
239 + (bh->b_data + *offset));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
240 + ((unsigned char *) &temp)[0] = *((unsigned char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
241 + (bh->b_data + *offset + 1));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
242 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
243 + ((unsigned char *) &temp)[0] = *((unsigned char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
244 + (bh->b_data + *offset));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
245 + ((unsigned char *) &temp)[1] = *((unsigned char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
246 + (bh->b_data + *offset + 1));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
247 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
248 + *c_byte = temp;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
249 + *offset += 2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
250 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
251 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
252 + if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
253 + if (*offset == msblk->devblksize) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
254 + brelse(bh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
255 + if (!(bh = sb_bread(s, ++(*cur_index))))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
256 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
257 + *offset = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
258 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
259 + if (*((unsigned char *) (bh->b_data + *offset)) !=
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
260 + SQUASHFS_MARKER_BYTE) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
261 + ERROR("Metadata block marker corrupt @ %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
262 + *cur_index);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
263 + brelse(bh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
264 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
265 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
266 + (*offset)++;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
267 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
268 + return bh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
269 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
270 +out:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
271 + return NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
272 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
273 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
274 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
275 +SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
276 + long long index, unsigned int length,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
277 + long long *next_index)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
278 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
279 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
280 + struct buffer_head *bh[((SQUASHFS_FILE_MAX_SIZE - 1) >>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
281 + msblk->devblksize_log2) + 2];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
282 + unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
283 + unsigned int cur_index = index >> msblk->devblksize_log2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
284 + int bytes, avail_bytes, b = 0, k;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
285 + char *c_buffer;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
286 + unsigned int compressed;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
287 + unsigned int c_byte = length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
288 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
289 + if (c_byte) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
290 + bytes = msblk->devblksize - offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
291 + compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
292 + c_buffer = compressed ? msblk->read_data : buffer;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
293 + c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
294 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
295 + TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
296 + ? "" : "un", (unsigned int) c_byte);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
297 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
298 + if (!(bh[0] = sb_getblk(s, cur_index)))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
299 + goto block_release;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
300 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
301 + for (b = 1; bytes < c_byte; b++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
302 + if (!(bh[b] = sb_getblk(s, ++cur_index)))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
303 + goto block_release;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
304 + bytes += msblk->devblksize;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
305 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
306 + ll_rw_block(READ, b, bh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
307 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
308 + if (!(bh[0] = get_block_length(s, &cur_index, &offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
309 + &c_byte)))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
310 + goto read_failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
311 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
312 + bytes = msblk->devblksize - offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
313 + compressed = SQUASHFS_COMPRESSED(c_byte);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
314 + c_buffer = compressed ? msblk->read_data : buffer;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
315 + c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
316 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
317 + TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
318 + ? "" : "un", (unsigned int) c_byte);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
319 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
320 + for (b = 1; bytes < c_byte; b++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
321 + if (!(bh[b] = sb_getblk(s, ++cur_index)))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
322 + goto block_release;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
323 + bytes += msblk->devblksize;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
324 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
325 + ll_rw_block(READ, b - 1, bh + 1);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
326 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
327 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
328 + if (compressed)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
329 + down(&msblk->read_data_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
330 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
331 + for (bytes = 0, k = 0; k < b; k++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
332 + avail_bytes = (c_byte - bytes) > (msblk->devblksize - offset) ?
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
333 + msblk->devblksize - offset :
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
334 + c_byte - bytes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
335 + wait_on_buffer(bh[k]);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
336 + if (!buffer_uptodate(bh[k]))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
337 + goto block_release;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
338 + memcpy(c_buffer + bytes, bh[k]->b_data + offset, avail_bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
339 + bytes += avail_bytes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
340 + offset = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
341 + brelse(bh[k]);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
342 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
343 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
344 + /*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
345 + * uncompress block
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
346 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
347 + if (compressed) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
348 + int zlib_err;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
349 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
350 + msblk->stream.next_in = c_buffer;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
351 + msblk->stream.avail_in = c_byte;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
352 + msblk->stream.next_out = buffer;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
353 + msblk->stream.avail_out = msblk->read_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
354 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
355 + if (((zlib_err = zlib_inflateInit(&msblk->stream)) != Z_OK) ||
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
356 + ((zlib_err = zlib_inflate(&msblk->stream, Z_FINISH))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
357 + != Z_STREAM_END) || ((zlib_err =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
358 + zlib_inflateEnd(&msblk->stream)) != Z_OK)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
359 + ERROR("zlib_fs returned unexpected result 0x%x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
360 + zlib_err);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
361 + bytes = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
362 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
363 + bytes = msblk->stream.total_out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
364 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
365 + up(&msblk->read_data_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
366 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
367 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
368 + if (next_index)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
369 + *next_index = index + c_byte + (length ? 0 :
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
370 + (SQUASHFS_CHECK_DATA(msblk->sblk.flags)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
371 + ? 3 : 2));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
372 + return bytes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
373 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
374 +block_release:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
375 + while (--b >= 0)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
376 + brelse(bh[b]);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
377 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
378 +read_failure:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
379 + ERROR("sb_bread failed reading block 0x%x\n", cur_index);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
380 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
381 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
382 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
383 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
384 +SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, char *buffer,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
385 + long long block, unsigned int offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
386 + int length, long long *next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
387 + unsigned int *next_offset)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
388 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
389 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
390 + int n, i, bytes, return_length = length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
391 + long long next_index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
392 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
393 + TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
394 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
395 + while ( 1 ) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
396 + for (i = 0; i < SQUASHFS_CACHED_BLKS; i++)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
397 + if (msblk->block_cache[i].block == block)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
398 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
399 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
400 + down(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
401 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
402 + if (i == SQUASHFS_CACHED_BLKS) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
403 + /* read inode header block */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
404 + for (i = msblk->next_cache, n = SQUASHFS_CACHED_BLKS;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
405 + n ; n --, i = (i + 1) %
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
406 + SQUASHFS_CACHED_BLKS)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
407 + if (msblk->block_cache[i].block !=
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
408 + SQUASHFS_USED_BLK)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
409 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
410 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
411 + if (n == 0) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
412 + wait_queue_t wait;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
413 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
414 + init_waitqueue_entry(&wait, current);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
415 + add_wait_queue(&msblk->waitq, &wait);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
416 + set_current_state(TASK_UNINTERRUPTIBLE);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
417 + up(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
418 + schedule();
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
419 + set_current_state(TASK_RUNNING);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
420 + remove_wait_queue(&msblk->waitq, &wait);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
421 + continue;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
422 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
423 + msblk->next_cache = (i + 1) % SQUASHFS_CACHED_BLKS;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
424 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
425 + if (msblk->block_cache[i].block ==
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
426 + SQUASHFS_INVALID_BLK) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
427 + if (!(msblk->block_cache[i].data =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
428 + kmalloc(SQUASHFS_METADATA_SIZE,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
429 + GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
430 + ERROR("Failed to allocate cache"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
431 + "block\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
432 + up(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
433 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
434 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
435 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
436 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
437 + msblk->block_cache[i].block = SQUASHFS_USED_BLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
438 + up(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
439 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
440 + if (!(msblk->block_cache[i].length =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
441 + squashfs_read_data(s,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
442 + msblk->block_cache[i].data,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
443 + block, 0, &next_index))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
444 + ERROR("Unable to read cache block [%llx:%x]\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
445 + block, offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
446 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
447 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
448 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
449 + down(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
450 + wake_up(&msblk->waitq);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
451 + msblk->block_cache[i].block = block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
452 + msblk->block_cache[i].next_index = next_index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
453 + TRACE("Read cache block [%llx:%x]\n", block, offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
454 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
455 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
456 + if (msblk->block_cache[i].block != block) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
457 + up(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
458 + continue;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
459 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
460 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
461 + if ((bytes = msblk->block_cache[i].length - offset) >= length) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
462 + if (buffer)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
463 + memcpy(buffer, msblk->block_cache[i].data +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
464 + offset, length);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
465 + if (msblk->block_cache[i].length - offset == length) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
466 + *next_block = msblk->block_cache[i].next_index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
467 + *next_offset = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
468 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
469 + *next_block = block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
470 + *next_offset = offset + length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
471 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
472 + up(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
473 + goto finish;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
474 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
475 + if (buffer) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
476 + memcpy(buffer, msblk->block_cache[i].data +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
477 + offset, bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
478 + buffer += bytes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
479 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
480 + block = msblk->block_cache[i].next_index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
481 + up(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
482 + length -= bytes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
483 + offset = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
484 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
485 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
486 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
487 +finish:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
488 + return return_length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
489 +out:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
490 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
491 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
492 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
493 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
494 +static int get_fragment_location(struct super_block *s, unsigned int fragment,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
495 + long long *fragment_start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
496 + unsigned int *fragment_size)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
497 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
498 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
499 + long long start_block =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
500 + msblk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
501 + int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
502 + struct squashfs_fragment_entry fragment_entry;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
503 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
504 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
505 + struct squashfs_fragment_entry sfragment_entry;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
506 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
507 + if (!squashfs_get_cached_block(s, (char *) &sfragment_entry,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
508 + start_block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
509 + sizeof(sfragment_entry), &start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
510 + &offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
511 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
512 + SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
513 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
514 + if (!squashfs_get_cached_block(s, (char *) &fragment_entry,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
515 + start_block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
516 + sizeof(fragment_entry), &start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
517 + &offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
518 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
519 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
520 + *fragment_start_block = fragment_entry.start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
521 + *fragment_size = fragment_entry.size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
522 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
523 + return 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
524 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
525 +out:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
526 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
527 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
528 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
529 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
530 +SQSH_EXTERN void release_cached_fragment(struct squashfs_sb_info *msblk, struct
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
531 + squashfs_fragment_cache *fragment)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
532 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
533 + down(&msblk->fragment_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
534 + fragment->locked --;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
535 + wake_up(&msblk->fragment_wait_queue);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
536 + up(&msblk->fragment_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
537 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
538 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
539 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
540 +SQSH_EXTERN struct squashfs_fragment_cache *get_cached_fragment(struct super_block
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
541 + *s, long long start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
542 + int length)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
543 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
544 + int i, n;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
545 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
546 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
547 + while ( 1 ) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
548 + down(&msblk->fragment_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
549 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
550 + for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
551 + msblk->fragment[i].block != start_block; i++);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
552 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
553 + if (i == SQUASHFS_CACHED_FRAGMENTS) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
554 + for (i = msblk->next_fragment, n =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
555 + SQUASHFS_CACHED_FRAGMENTS; n &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
556 + msblk->fragment[i].locked; n--, i = (i + 1) %
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
557 + SQUASHFS_CACHED_FRAGMENTS);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
558 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
559 + if (n == 0) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
560 + wait_queue_t wait;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
561 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
562 + init_waitqueue_entry(&wait, current);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
563 + add_wait_queue(&msblk->fragment_wait_queue,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
564 + &wait);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
565 + set_current_state(TASK_UNINTERRUPTIBLE);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
566 + up(&msblk->fragment_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
567 + schedule();
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
568 + set_current_state(TASK_RUNNING);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
569 + remove_wait_queue(&msblk->fragment_wait_queue,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
570 + &wait);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
571 + continue;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
572 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
573 + msblk->next_fragment = (msblk->next_fragment + 1) %
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
574 + SQUASHFS_CACHED_FRAGMENTS;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
575 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
576 + if (msblk->fragment[i].data == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
577 + if (!(msblk->fragment[i].data = SQUASHFS_ALLOC
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
578 + (SQUASHFS_FILE_MAX_SIZE))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
579 + ERROR("Failed to allocate fragment "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
580 + "cache block\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
581 + up(&msblk->fragment_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
582 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
583 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
584 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
585 + msblk->fragment[i].block = SQUASHFS_INVALID_BLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
586 + msblk->fragment[i].locked = 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
587 + up(&msblk->fragment_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
588 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
589 + if (!(msblk->fragment[i].length = squashfs_read_data(s,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
590 + msblk->fragment[i].data,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
591 + start_block, length, NULL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
592 + ERROR("Unable to read fragment cache block "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
593 + "[%llx]\n", start_block);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
594 + msblk->fragment[i].locked = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
595 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
596 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
597 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
598 + msblk->fragment[i].block = start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
599 + TRACE("New fragment %d, start block %lld, locked %d\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
600 + i, msblk->fragment[i].block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
601 + msblk->fragment[i].locked);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
602 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
603 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
604 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
605 + msblk->fragment[i].locked++;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
606 + up(&msblk->fragment_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
607 + TRACE("Got fragment %d, start block %lld, locked %d\n", i,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
608 + msblk->fragment[i].block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
609 + msblk->fragment[i].locked);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
610 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
611 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
612 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
613 + return &msblk->fragment[i];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
614 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
615 +out:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
616 + return NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
617 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
618 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
619 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
620 +static struct inode *squashfs_new_inode(struct super_block *s,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
621 + struct squashfs_base_inode_header *inodeb)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
622 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
623 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
624 + struct inode *i = new_inode(s);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
625 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
626 + if (i) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
627 + i->i_ino = inodeb->inode_number;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
628 + i->i_mtime.tv_sec = inodeb->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
629 + i->i_atime.tv_sec = inodeb->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
630 + i->i_ctime.tv_sec = inodeb->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
631 + i->i_uid = msblk->uid[inodeb->uid];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
632 + i->i_mode = inodeb->mode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
633 + i->i_size = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
634 + if (inodeb->guid == SQUASHFS_GUIDS)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
635 + i->i_gid = i->i_uid;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
636 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
637 + i->i_gid = msblk->guid[inodeb->guid];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
638 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
639 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
640 + return i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
641 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
642 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
643 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
644 +static struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
645 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
646 + struct inode *i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
647 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
648 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
649 + long long block = SQUASHFS_INODE_BLK(inode) +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
650 + sblk->inode_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
651 + unsigned int offset = SQUASHFS_INODE_OFFSET(inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
652 + long long next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
653 + unsigned int next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
654 + union squashfs_inode_header id, sid;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
655 + struct squashfs_base_inode_header *inodeb = &id.base,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
656 + *sinodeb = &sid.base;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
657 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
658 + TRACE("Entered squashfs_iget\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
659 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
660 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
661 + if (!squashfs_get_cached_block(s, (char *) sinodeb, block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
662 + offset, sizeof(*sinodeb), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
663 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
664 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
665 + SQUASHFS_SWAP_BASE_INODE_HEADER(inodeb, sinodeb,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
666 + sizeof(*sinodeb));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
667 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
668 + if (!squashfs_get_cached_block(s, (char *) inodeb, block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
669 + offset, sizeof(*inodeb), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
670 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
671 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
672 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
673 + switch(inodeb->inode_type) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
674 + case SQUASHFS_FILE_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
675 + unsigned int frag_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
676 + long long frag_blk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
677 + struct squashfs_reg_inode_header *inodep = &id.reg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
678 + struct squashfs_reg_inode_header *sinodep = &sid.reg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
679 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
680 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
681 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
682 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
683 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
684 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
685 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
686 + SQUASHFS_SWAP_REG_INODE_HEADER(inodep, sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
687 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
688 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
689 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
690 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
691 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
692 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
693 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
694 + frag_blk = SQUASHFS_INVALID_BLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
695 + if (inodep->fragment != SQUASHFS_INVALID_FRAG &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
696 + !get_fragment_location(s,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
697 + inodep->fragment, &frag_blk, &frag_size))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
698 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
699 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
700 + if((i = squashfs_new_inode(s, inodeb)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
701 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
702 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
703 + i->i_nlink = 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
704 + i->i_size = inodep->file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
705 + i->i_fop = &generic_ro_fops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
706 + i->i_mode |= S_IFREG;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
707 + i->i_blocks = ((i->i_size - 1) >> 9) + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
708 + SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
709 + SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
710 + SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
711 + SQUASHFS_I(i)->start_block = inodep->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
712 + SQUASHFS_I(i)->u.s1.block_list_start = next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
713 + SQUASHFS_I(i)->offset = next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
714 + if (sblk->block_size > 4096)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
715 + i->i_data.a_ops = &squashfs_aops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
716 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
717 + i->i_data.a_ops = &squashfs_aops_4K;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
718 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
719 + TRACE("File inode %x:%x, start_block %llx, "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
720 + "block_list_start %llx, offset %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
721 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
722 + inodep->start_block, next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
723 + next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
724 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
725 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
726 + case SQUASHFS_LREG_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
727 + unsigned int frag_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
728 + long long frag_blk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
729 + struct squashfs_lreg_inode_header *inodep = &id.lreg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
730 + struct squashfs_lreg_inode_header *sinodep = &sid.lreg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
731 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
732 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
733 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
734 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
735 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
736 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
737 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
738 + SQUASHFS_SWAP_LREG_INODE_HEADER(inodep, sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
739 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
740 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
741 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
742 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
743 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
744 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
745 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
746 + frag_blk = SQUASHFS_INVALID_BLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
747 + if (inodep->fragment != SQUASHFS_INVALID_FRAG &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
748 + !get_fragment_location(s,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
749 + inodep->fragment, &frag_blk, &frag_size))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
750 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
751 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
752 + if((i = squashfs_new_inode(s, inodeb)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
753 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
754 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
755 + i->i_nlink = inodep->nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
756 + i->i_size = inodep->file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
757 + i->i_fop = &generic_ro_fops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
758 + i->i_mode |= S_IFREG;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
759 + i->i_blocks = ((i->i_size - 1) >> 9) + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
760 + SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
761 + SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
762 + SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
763 + SQUASHFS_I(i)->start_block = inodep->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
764 + SQUASHFS_I(i)->u.s1.block_list_start = next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
765 + SQUASHFS_I(i)->offset = next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
766 + if (sblk->block_size > 4096)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
767 + i->i_data.a_ops = &squashfs_aops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
768 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
769 + i->i_data.a_ops = &squashfs_aops_4K;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
770 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
771 + TRACE("File inode %x:%x, start_block %llx, "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
772 + "block_list_start %llx, offset %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
773 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
774 + inodep->start_block, next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
775 + next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
776 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
777 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
778 + case SQUASHFS_DIR_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
779 + struct squashfs_dir_inode_header *inodep = &id.dir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
780 + struct squashfs_dir_inode_header *sinodep = &sid.dir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
781 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
782 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
783 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
784 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
785 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
786 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
787 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
788 + SQUASHFS_SWAP_DIR_INODE_HEADER(inodep, sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
789 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
790 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
791 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
792 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
793 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
794 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
795 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
796 + if((i = squashfs_new_inode(s, inodeb)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
797 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
798 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
799 + i->i_nlink = inodep->nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
800 + i->i_size = inodep->file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
801 + i->i_op = &squashfs_dir_inode_ops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
802 + i->i_fop = &squashfs_dir_ops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
803 + i->i_mode |= S_IFDIR;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
804 + SQUASHFS_I(i)->start_block = inodep->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
805 + SQUASHFS_I(i)->offset = inodep->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
806 + SQUASHFS_I(i)->u.s2.directory_index_count = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
807 + SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
808 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
809 + TRACE("Directory inode %x:%x, start_block %x, offset "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
810 + "%x\n", SQUASHFS_INODE_BLK(inode),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
811 + offset, inodep->start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
812 + inodep->offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
813 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
814 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
815 + case SQUASHFS_LDIR_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
816 + struct squashfs_ldir_inode_header *inodep = &id.ldir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
817 + struct squashfs_ldir_inode_header *sinodep = &sid.ldir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
818 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
819 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
820 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
821 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
822 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
823 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
824 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
825 + SQUASHFS_SWAP_LDIR_INODE_HEADER(inodep,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
826 + sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
827 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
828 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
829 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
830 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
831 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
832 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
833 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
834 + if((i = squashfs_new_inode(s, inodeb)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
835 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
836 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
837 + i->i_nlink = inodep->nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
838 + i->i_size = inodep->file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
839 + i->i_op = &squashfs_dir_inode_ops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
840 + i->i_fop = &squashfs_dir_ops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
841 + i->i_mode |= S_IFDIR;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
842 + SQUASHFS_I(i)->start_block = inodep->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
843 + SQUASHFS_I(i)->offset = inodep->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
844 + SQUASHFS_I(i)->u.s2.directory_index_start = next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
845 + SQUASHFS_I(i)->u.s2.directory_index_offset =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
846 + next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
847 + SQUASHFS_I(i)->u.s2.directory_index_count =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
848 + inodep->i_count;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
849 + SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
850 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
851 + TRACE("Long directory inode %x:%x, start_block %x, "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
852 + "offset %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
853 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
854 + inodep->start_block, inodep->offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
855 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
856 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
857 + case SQUASHFS_SYMLINK_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
858 + struct squashfs_symlink_inode_header *inodep =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
859 + &id.symlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
860 + struct squashfs_symlink_inode_header *sinodep =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
861 + &sid.symlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
862 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
863 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
864 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
865 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
866 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
867 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
868 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
869 + SQUASHFS_SWAP_SYMLINK_INODE_HEADER(inodep,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
870 + sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
871 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
872 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
873 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
874 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
875 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
876 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
877 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
878 + if((i = squashfs_new_inode(s, inodeb)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
879 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
880 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
881 + i->i_nlink = inodep->nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
882 + i->i_size = inodep->symlink_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
883 + i->i_op = &page_symlink_inode_operations;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
884 + i->i_data.a_ops = &squashfs_symlink_aops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
885 + i->i_mode |= S_IFLNK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
886 + SQUASHFS_I(i)->start_block = next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
887 + SQUASHFS_I(i)->offset = next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
888 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
889 + TRACE("Symbolic link inode %x:%x, start_block %llx, "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
890 + "offset %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
891 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
892 + next_block, next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
893 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
894 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
895 + case SQUASHFS_BLKDEV_TYPE:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
896 + case SQUASHFS_CHRDEV_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
897 + struct squashfs_dev_inode_header *inodep = &id.dev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
898 + struct squashfs_dev_inode_header *sinodep = &sid.dev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
899 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
900 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
901 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
902 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
903 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
904 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
905 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
906 + SQUASHFS_SWAP_DEV_INODE_HEADER(inodep, sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
907 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
908 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
909 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
910 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
911 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
912 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
913 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
914 + if ((i = squashfs_new_inode(s, inodeb)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
915 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
916 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
917 + i->i_nlink = inodep->nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
918 + i->i_mode |= (inodeb->inode_type ==
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
919 + SQUASHFS_CHRDEV_TYPE) ? S_IFCHR :
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
920 + S_IFBLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
921 + init_special_inode(i, i->i_mode,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
922 + old_decode_dev(inodep->rdev));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
923 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
924 + TRACE("Device inode %x:%x, rdev %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
925 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
926 + inodep->rdev);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
927 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
928 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
929 + case SQUASHFS_FIFO_TYPE:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
930 + case SQUASHFS_SOCKET_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
931 + struct squashfs_ipc_inode_header *inodep = &id.ipc;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
932 + struct squashfs_ipc_inode_header *sinodep = &sid.ipc;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
933 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
934 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
935 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
936 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
937 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
938 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
939 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
940 + SQUASHFS_SWAP_IPC_INODE_HEADER(inodep, sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
941 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
942 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
943 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
944 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
945 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
946 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
947 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
948 + if ((i = squashfs_new_inode(s, inodeb)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
949 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
950 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
951 + i->i_nlink = inodep->nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
952 + i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
953 + ? S_IFIFO : S_IFSOCK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
954 + init_special_inode(i, i->i_mode, 0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
955 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
956 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
957 + default:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
958 + ERROR("Unknown inode type %d in squashfs_iget!\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
959 + inodeb->inode_type);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
960 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
961 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
962 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
963 + insert_inode_hash(i);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
964 + return i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
965 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
966 +failed_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
967 + ERROR("Unable to read inode [%llx:%x]\n", block, offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
968 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
969 +failed_read1:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
970 + return NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
971 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
972 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
973 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
974 +static int read_fragment_index_table(struct super_block *s)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
975 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
976 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
977 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
978 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
979 + /* Allocate fragment index table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
980 + if (!(msblk->fragment_index = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
981 + (sblk->fragments), GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
982 + ERROR("Failed to allocate uid/gid table\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
983 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
984 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
985 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
986 + if (SQUASHFS_FRAGMENT_INDEX_BYTES(sblk->fragments) &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
987 + !squashfs_read_data(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
988 + msblk->fragment_index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
989 + sblk->fragment_table_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
990 + SQUASHFS_FRAGMENT_INDEX_BYTES
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
991 + (sblk->fragments) |
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
992 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
993 + ERROR("unable to read fragment index table\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
994 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
995 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
996 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
997 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
998 + int i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
999 + long long fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1000 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1001 + for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sblk->fragments);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1002 + i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1003 + SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1004 + &msblk->fragment_index[i], 1);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1005 + msblk->fragment_index[i] = fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1006 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1007 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1008 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1009 + return 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1010 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1011 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1012 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1013 +static int supported_squashfs_filesystem(struct squashfs_sb_info *msblk, int silent)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1014 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1015 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1016 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1017 + msblk->iget = squashfs_iget;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1018 + msblk->read_blocklist = read_blocklist;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1019 + msblk->read_fragment_index_table = read_fragment_index_table;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1020 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1021 + if (sblk->s_major == 1) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1022 + if (!squashfs_1_0_supported(msblk)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1023 + SERROR("Major/Minor mismatch, Squashfs 1.0 filesystems "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1024 + "are unsupported\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1025 + SERROR("Please recompile with "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1026 + "Squashfs 1.0 support enabled\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1027 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1028 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1029 + } else if (sblk->s_major == 2) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1030 + if (!squashfs_2_0_supported(msblk)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1031 + SERROR("Major/Minor mismatch, Squashfs 2.0 filesystems "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1032 + "are unsupported\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1033 + SERROR("Please recompile with "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1034 + "Squashfs 2.0 support enabled\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1035 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1036 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1037 + } else if(sblk->s_major != SQUASHFS_MAJOR || sblk->s_minor >
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1038 + SQUASHFS_MINOR) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1039 + SERROR("Major/Minor mismatch, trying to mount newer %d.%d "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1040 + "filesystem\n", sblk->s_major, sblk->s_minor);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1041 + SERROR("Please update your kernel\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1042 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1043 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1044 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1045 + return 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1046 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1047 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1048 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1049 +static int squashfs_fill_super(struct super_block *s, void *data, int silent)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1050 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1051 + struct squashfs_sb_info *msblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1052 + struct squashfs_super_block *sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1053 + int i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1054 + char b[BDEVNAME_SIZE];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1055 + struct inode *root;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1056 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1057 + TRACE("Entered squashfs_read_superblock\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1058 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1059 + if (!(s->s_fs_info = kmalloc(sizeof(struct squashfs_sb_info),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1060 + GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1061 + ERROR("Failed to allocate superblock\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1062 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1063 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1064 + memset(s->s_fs_info, 0, sizeof(struct squashfs_sb_info));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1065 + msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1066 + if (!(msblk->stream.workspace = vmalloc(zlib_inflate_workspacesize()))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1067 + ERROR("Failed to allocate zlib workspace\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1068 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1069 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1070 + sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1071 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1072 + msblk->devblksize = sb_min_blocksize(s, BLOCK_SIZE);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1073 + msblk->devblksize_log2 = ffz(~msblk->devblksize);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1074 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1075 + init_MUTEX(&msblk->read_data_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1076 + init_MUTEX(&msblk->read_page_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1077 + init_MUTEX(&msblk->block_cache_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1078 + init_MUTEX(&msblk->fragment_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1079 + init_MUTEX(&msblk->meta_index_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1080 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1081 + init_waitqueue_head(&msblk->waitq);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1082 + init_waitqueue_head(&msblk->fragment_wait_queue);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1083 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1084 + if (!squashfs_read_data(s, (char *) sblk, SQUASHFS_START,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1085 + sizeof(struct squashfs_super_block) |
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1086 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1087 + SERROR("unable to read superblock\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1088 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1089 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1090 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1091 + /* Check it is a SQUASHFS superblock */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1092 + msblk->swap = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1093 + if ((s->s_magic = sblk->s_magic) != SQUASHFS_MAGIC) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1094 + if (sblk->s_magic == SQUASHFS_MAGIC_SWAP) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1095 + struct squashfs_super_block ssblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1096 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1097 + WARNING("Mounting a different endian SQUASHFS "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1098 + "filesystem on %s\n", bdevname(s->s_bdev, b));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1099 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1100 + SQUASHFS_SWAP_SUPER_BLOCK(&ssblk, sblk);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1101 + memcpy(sblk, &ssblk, sizeof(struct squashfs_super_block));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1102 + msblk->swap = 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1103 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1104 + SERROR("Can't find a SQUASHFS superblock on %s\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1105 + bdevname(s->s_bdev, b));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1106 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1107 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1108 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1109 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1110 + /* Check the MAJOR & MINOR versions */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1111 + if(!supported_squashfs_filesystem(msblk, silent))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1112 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1113 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1114 + TRACE("Found valid superblock on %s\n", bdevname(s->s_bdev, b));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1115 + TRACE("Inodes are %scompressed\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1116 + SQUASHFS_UNCOMPRESSED_INODES
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1117 + (sblk->flags) ? "un" : "");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1118 + TRACE("Data is %scompressed\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1119 + SQUASHFS_UNCOMPRESSED_DATA(sblk->flags)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1120 + ? "un" : "");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1121 + TRACE("Check data is %s present in the filesystem\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1122 + SQUASHFS_CHECK_DATA(sblk->flags) ?
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1123 + "" : "not");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1124 + TRACE("Filesystem size %lld bytes\n", sblk->bytes_used);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1125 + TRACE("Block size %d\n", sblk->block_size);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1126 + TRACE("Number of inodes %d\n", sblk->inodes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1127 + if (sblk->s_major > 1)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1128 + TRACE("Number of fragments %d\n", sblk->fragments);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1129 + TRACE("Number of uids %d\n", sblk->no_uids);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1130 + TRACE("Number of gids %d\n", sblk->no_guids);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1131 + TRACE("sblk->inode_table_start %llx\n", sblk->inode_table_start);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1132 + TRACE("sblk->directory_table_start %llx\n", sblk->directory_table_start);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1133 + if (sblk->s_major > 1)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1134 + TRACE("sblk->fragment_table_start %llx\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1135 + sblk->fragment_table_start);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1136 + TRACE("sblk->uid_start %llx\n", sblk->uid_start);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1137 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1138 + s->s_flags |= MS_RDONLY;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1139 + s->s_op = &squashfs_ops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1140 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1141 + /* Init inode_table block pointer array */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1142 + if (!(msblk->block_cache = kmalloc(sizeof(struct squashfs_cache) *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1143 + SQUASHFS_CACHED_BLKS, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1144 + ERROR("Failed to allocate block cache\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1145 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1146 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1147 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1148 + for (i = 0; i < SQUASHFS_CACHED_BLKS; i++)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1149 + msblk->block_cache[i].block = SQUASHFS_INVALID_BLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1150 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1151 + msblk->next_cache = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1152 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1153 + /* Allocate read_data block */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1154 + msblk->read_size = (sblk->block_size < SQUASHFS_METADATA_SIZE) ?
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1155 + SQUASHFS_METADATA_SIZE :
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1156 + sblk->block_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1157 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1158 + if (!(msblk->read_data = kmalloc(msblk->read_size, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1159 + ERROR("Failed to allocate read_data block\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1160 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1161 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1162 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1163 + /* Allocate read_page block */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1164 + if (!(msblk->read_page = kmalloc(sblk->block_size, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1165 + ERROR("Failed to allocate read_page block\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1166 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1167 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1168 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1169 + /* Allocate uid and gid tables */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1170 + if (!(msblk->uid = kmalloc((sblk->no_uids + sblk->no_guids) *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1171 + sizeof(unsigned int), GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1172 + ERROR("Failed to allocate uid/gid table\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1173 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1174 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1175 + msblk->guid = msblk->uid + sblk->no_uids;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1176 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1177 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1178 + unsigned int suid[sblk->no_uids + sblk->no_guids];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1179 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1180 + if (!squashfs_read_data(s, (char *) &suid, sblk->uid_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1181 + ((sblk->no_uids + sblk->no_guids) *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1182 + sizeof(unsigned int)) |
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1183 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1184 + ERROR("unable to read uid/gid table\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1185 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1186 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1187 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1188 + SQUASHFS_SWAP_DATA(msblk->uid, suid, (sblk->no_uids +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1189 + sblk->no_guids), (sizeof(unsigned int) * 8));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1190 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1191 + if (!squashfs_read_data(s, (char *) msblk->uid, sblk->uid_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1192 + ((sblk->no_uids + sblk->no_guids) *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1193 + sizeof(unsigned int)) |
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1194 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1195 + ERROR("unable to read uid/gid table\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1196 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1197 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1198 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1199 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1200 + if (sblk->s_major == 1 && squashfs_1_0_supported(msblk))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1201 + goto allocate_root;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1202 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1203 + if (!(msblk->fragment = kmalloc(sizeof(struct squashfs_fragment_cache) *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1204 + SQUASHFS_CACHED_FRAGMENTS, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1205 + ERROR("Failed to allocate fragment block cache\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1206 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1207 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1208 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1209 + for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1210 + msblk->fragment[i].locked = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1211 + msblk->fragment[i].block = SQUASHFS_INVALID_BLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1212 + msblk->fragment[i].data = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1213 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1214 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1215 + msblk->next_fragment = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1216 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1217 + /* Allocate fragment index table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1218 + if (msblk->read_fragment_index_table(s) == 0)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1219 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1220 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1221 +allocate_root:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1222 + if ((root = (msblk->iget)(s, sblk->root_inode)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1223 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1224 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1225 + if ((s->s_root = d_alloc_root(root)) == NULL) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1226 + ERROR("Root inode create failed\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1227 + iput(root);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1228 + goto failed_mount;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1229 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1230 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1231 + TRACE("Leaving squashfs_read_super\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1232 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1233 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1234 +failed_mount:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1235 + kfree(msblk->fragment_index);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1236 + kfree(msblk->fragment);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1237 + kfree(msblk->uid);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1238 + kfree(msblk->read_page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1239 + kfree(msblk->read_data);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1240 + kfree(msblk->block_cache);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1241 + kfree(msblk->fragment_index_2);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1242 + vfree(msblk->stream.workspace);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1243 + kfree(s->s_fs_info);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1244 + s->s_fs_info = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1245 + return -EINVAL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1246 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1247 +failure:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1248 + return -ENOMEM;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1249 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1250 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1251 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1252 +static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1253 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1254 + struct squashfs_sb_info *msblk = dentry->d_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1255 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1256 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1257 + TRACE("Entered squashfs_statfs\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1258 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1259 + buf->f_type = SQUASHFS_MAGIC;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1260 + buf->f_bsize = sblk->block_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1261 + buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1262 + buf->f_bfree = buf->f_bavail = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1263 + buf->f_files = sblk->inodes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1264 + buf->f_ffree = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1265 + buf->f_namelen = SQUASHFS_NAME_LEN;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1266 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1267 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1268 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1269 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1270 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1271 +static int squashfs_symlink_readpage(struct file *file, struct page *page)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1272 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1273 + struct inode *inode = page->mapping->host;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1274 + int index = page->index << PAGE_CACHE_SHIFT, length, bytes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1275 + long long block = SQUASHFS_I(inode)->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1276 + int offset = SQUASHFS_I(inode)->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1277 + void *pageaddr = kmap(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1278 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1279 + TRACE("Entered squashfs_symlink_readpage, page index %ld, start block "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1280 + "%llx, offset %x\n", page->index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1281 + SQUASHFS_I(inode)->start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1282 + SQUASHFS_I(inode)->offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1283 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1284 + for (length = 0; length < index; length += bytes) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1285 + if (!(bytes = squashfs_get_cached_block(inode->i_sb, NULL,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1286 + block, offset, PAGE_CACHE_SIZE, &block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1287 + &offset))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1288 + ERROR("Unable to read symbolic link [%llx:%x]\n", block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1289 + offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1290 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1291 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1292 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1293 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1294 + if (length != index) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1295 + ERROR("(squashfs_symlink_readpage) length != index\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1296 + bytes = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1297 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1298 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1299 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1300 + bytes = (i_size_read(inode) - length) > PAGE_CACHE_SIZE ? PAGE_CACHE_SIZE :
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1301 + i_size_read(inode) - length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1302 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1303 + if (!(bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1304 + offset, bytes, &block, &offset)))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1305 + ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1306 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1307 +skip_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1308 + memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1309 + kunmap(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1310 + SetPageUptodate(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1311 + unlock_page(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1312 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1313 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1314 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1315 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1316 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1317 +struct meta_index *locate_meta_index(struct inode *inode, int index, int offset)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1318 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1319 + struct meta_index *meta = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1320 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1321 + int i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1322 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1323 + down(&msblk->meta_index_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1324 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1325 + TRACE("locate_meta_index: index %d, offset %d\n", index, offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1326 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1327 + if(msblk->meta_index == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1328 + goto not_allocated;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1329 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1330 + for (i = 0; i < SQUASHFS_META_NUMBER; i ++)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1331 + if (msblk->meta_index[i].inode_number == inode->i_ino &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1332 + msblk->meta_index[i].offset >= offset &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1333 + msblk->meta_index[i].offset <= index &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1334 + msblk->meta_index[i].locked == 0) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1335 + TRACE("locate_meta_index: entry %d, offset %d\n", i,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1336 + msblk->meta_index[i].offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1337 + meta = &msblk->meta_index[i];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1338 + offset = meta->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1339 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1340 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1341 + if (meta)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1342 + meta->locked = 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1343 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1344 +not_allocated:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1345 + up(&msblk->meta_index_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1346 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1347 + return meta;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1348 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1349 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1350 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1351 +struct meta_index *empty_meta_index(struct inode *inode, int offset, int skip)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1352 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1353 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1354 + struct meta_index *meta = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1355 + int i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1356 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1357 + down(&msblk->meta_index_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1358 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1359 + TRACE("empty_meta_index: offset %d, skip %d\n", offset, skip);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1360 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1361 + if(msblk->meta_index == NULL) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1362 + if (!(msblk->meta_index = kmalloc(sizeof(struct meta_index) *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1363 + SQUASHFS_META_NUMBER, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1364 + ERROR("Failed to allocate meta_index\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1365 + goto failed;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1366 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1367 + for(i = 0; i < SQUASHFS_META_NUMBER; i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1368 + msblk->meta_index[i].inode_number = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1369 + msblk->meta_index[i].locked = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1370 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1371 + msblk->next_meta_index = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1372 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1373 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1374 + for(i = SQUASHFS_META_NUMBER; i &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1375 + msblk->meta_index[msblk->next_meta_index].locked; i --)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1376 + msblk->next_meta_index = (msblk->next_meta_index + 1) %
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1377 + SQUASHFS_META_NUMBER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1378 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1379 + if(i == 0) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1380 + TRACE("empty_meta_index: failed!\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1381 + goto failed;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1382 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1383 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1384 + TRACE("empty_meta_index: returned meta entry %d, %p\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1385 + msblk->next_meta_index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1386 + &msblk->meta_index[msblk->next_meta_index]);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1387 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1388 + meta = &msblk->meta_index[msblk->next_meta_index];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1389 + msblk->next_meta_index = (msblk->next_meta_index + 1) %
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1390 + SQUASHFS_META_NUMBER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1391 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1392 + meta->inode_number = inode->i_ino;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1393 + meta->offset = offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1394 + meta->skip = skip;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1395 + meta->entries = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1396 + meta->locked = 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1397 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1398 +failed:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1399 + up(&msblk->meta_index_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1400 + return meta;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1401 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1402 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1403 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1404 +void release_meta_index(struct inode *inode, struct meta_index *meta)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1405 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1406 + meta->locked = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1407 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1408 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1409 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1410 +static int read_block_index(struct super_block *s, int blocks, char *block_list,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1411 + long long *start_block, int *offset)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1412 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1413 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1414 + unsigned int *block_listp;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1415 + int block = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1416 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1417 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1418 + char sblock_list[blocks << 2];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1419 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1420 + if (!squashfs_get_cached_block(s, sblock_list, *start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1421 + *offset, blocks << 2, start_block, offset)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1422 + ERROR("Unable to read block list [%llx:%x]\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1423 + *start_block, *offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1424 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1425 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1426 + SQUASHFS_SWAP_INTS(((unsigned int *)block_list),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1427 + ((unsigned int *)sblock_list), blocks);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1428 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1429 + if (!squashfs_get_cached_block(s, block_list, *start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1430 + *offset, blocks << 2, start_block, offset)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1431 + ERROR("Unable to read block list [%llx:%x]\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1432 + *start_block, *offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1433 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1434 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1435 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1436 + for (block_listp = (unsigned int *) block_list; blocks;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1437 + block_listp++, blocks --)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1438 + block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1439 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1440 + return block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1441 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1442 +failure:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1443 + return -1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1444 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1445 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1446 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1447 +#define SIZE 256
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1448 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1449 +static inline int calculate_skip(int blocks) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1450 + int skip = (blocks - 1) / ((SQUASHFS_SLOTS * SQUASHFS_META_ENTRIES + 1) * SQUASHFS_META_INDEXES);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1451 + return skip >= 7 ? 7 : skip + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1452 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1453 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1454 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1455 +static int get_meta_index(struct inode *inode, int index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1456 + long long *index_block, int *index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1457 + long long *data_block, char *block_list)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1458 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1459 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1460 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1461 + int skip = calculate_skip(i_size_read(inode) >> sblk->block_log);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1462 + int offset = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1463 + struct meta_index *meta;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1464 + struct meta_entry *meta_entry;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1465 + long long cur_index_block = SQUASHFS_I(inode)->u.s1.block_list_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1466 + int cur_offset = SQUASHFS_I(inode)->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1467 + long long cur_data_block = SQUASHFS_I(inode)->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1468 + int i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1469 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1470 + index /= SQUASHFS_META_INDEXES * skip;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1471 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1472 + while ( offset < index ) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1473 + meta = locate_meta_index(inode, index, offset + 1);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1474 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1475 + if (meta == NULL) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1476 + if ((meta = empty_meta_index(inode, offset + 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1477 + skip)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1478 + goto all_done;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1479 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1480 + offset = index < meta->offset + meta->entries ? index :
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1481 + meta->offset + meta->entries - 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1482 + meta_entry = &meta->meta_entry[offset - meta->offset];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1483 + cur_index_block = meta_entry->index_block + sblk->inode_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1484 + cur_offset = meta_entry->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1485 + cur_data_block = meta_entry->data_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1486 + TRACE("get_meta_index: offset %d, meta->offset %d, "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1487 + "meta->entries %d\n", offset, meta->offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1488 + meta->entries);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1489 + TRACE("get_meta_index: index_block 0x%llx, offset 0x%x"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1490 + " data_block 0x%llx\n", cur_index_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1491 + cur_offset, cur_data_block);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1492 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1493 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1494 + for (i = meta->offset + meta->entries; i <= index &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1495 + i < meta->offset + SQUASHFS_META_ENTRIES; i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1496 + int blocks = skip * SQUASHFS_META_INDEXES;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1497 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1498 + while (blocks) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1499 + int block = blocks > (SIZE >> 2) ? (SIZE >> 2) :
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1500 + blocks;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1501 + int res = read_block_index(inode->i_sb, block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1502 + block_list, &cur_index_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1503 + &cur_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1504 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1505 + if (res == -1)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1506 + goto failed;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1507 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1508 + cur_data_block += res;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1509 + blocks -= block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1510 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1511 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1512 + meta_entry = &meta->meta_entry[i - meta->offset];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1513 + meta_entry->index_block = cur_index_block - sblk->inode_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1514 + meta_entry->offset = cur_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1515 + meta_entry->data_block = cur_data_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1516 + meta->entries ++;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1517 + offset ++;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1518 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1519 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1520 + TRACE("get_meta_index: meta->offset %d, meta->entries %d\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1521 + meta->offset, meta->entries);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1522 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1523 + release_meta_index(inode, meta);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1524 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1525 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1526 +all_done:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1527 + *index_block = cur_index_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1528 + *index_offset = cur_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1529 + *data_block = cur_data_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1530 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1531 + return offset * SQUASHFS_META_INDEXES * skip;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1532 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1533 +failed:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1534 + release_meta_index(inode, meta);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1535 + return -1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1536 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1537 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1538 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1539 +static long long read_blocklist(struct inode *inode, int index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1540 + int readahead_blks, char *block_list,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1541 + unsigned short **block_p, unsigned int *bsize)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1542 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1543 + long long block_ptr;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1544 + int offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1545 + long long block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1546 + int res = get_meta_index(inode, index, &block_ptr, &offset, &block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1547 + block_list);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1548 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1549 + TRACE("read_blocklist: res %d, index %d, block_ptr 0x%llx, offset"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1550 + " 0x%x, block 0x%llx\n", res, index, block_ptr, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1551 + block);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1552 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1553 + if(res == -1)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1554 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1555 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1556 + index -= res;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1557 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1558 + while ( index ) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1559 + int blocks = index > (SIZE >> 2) ? (SIZE >> 2) : index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1560 + int res = read_block_index(inode->i_sb, blocks, block_list,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1561 + &block_ptr, &offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1562 + if (res == -1)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1563 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1564 + block += res;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1565 + index -= blocks;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1566 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1567 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1568 + if (read_block_index(inode->i_sb, 1, block_list,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1569 + &block_ptr, &offset) == -1)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1570 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1571 + *bsize = *((unsigned int *) block_list);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1572 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1573 + return block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1574 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1575 +failure:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1576 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1577 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1578 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1579 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1580 +static int squashfs_readpage(struct file *file, struct page *page)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1581 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1582 + struct inode *inode = page->mapping->host;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1583 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1584 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1585 + unsigned char *block_list;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1586 + long long block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1587 + unsigned int bsize, i = 0, bytes = 0, byte_offset = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1588 + int index = page->index >> (sblk->block_log - PAGE_CACHE_SHIFT);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1589 + void *pageaddr;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1590 + struct squashfs_fragment_cache *fragment = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1591 + char *data_ptr = msblk->read_page;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1592 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1593 + int mask = (1 << (sblk->block_log - PAGE_CACHE_SHIFT)) - 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1594 + int start_index = page->index & ~mask;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1595 + int end_index = start_index | mask;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1596 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1597 + TRACE("Entered squashfs_readpage, page index %lx, start block %llx\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1598 + page->index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1599 + SQUASHFS_I(inode)->start_block);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1600 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1601 + if (!(block_list = kmalloc(SIZE, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1602 + ERROR("Failed to allocate block_list\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1603 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1604 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1605 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1606 + if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1607 + PAGE_CACHE_SHIFT))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1608 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1609 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1610 + if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1611 + || index < (i_size_read(inode) >>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1612 + sblk->block_log)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1613 + if ((block = (msblk->read_blocklist)(inode, index, 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1614 + block_list, NULL, &bsize)) == 0)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1615 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1616 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1617 + down(&msblk->read_page_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1618 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1619 + if (!(bytes = squashfs_read_data(inode->i_sb, msblk->read_page,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1620 + block, bsize, NULL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1621 + ERROR("Unable to read page, block %llx, size %x\n", block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1622 + bsize);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1623 + up(&msblk->read_page_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1624 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1625 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1626 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1627 + if ((fragment = get_cached_fragment(inode->i_sb,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1628 + SQUASHFS_I(inode)->
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1629 + u.s1.fragment_start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1630 + SQUASHFS_I(inode)->u.s1.fragment_size))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1631 + == NULL) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1632 + ERROR("Unable to read page, block %llx, size %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1633 + SQUASHFS_I(inode)->
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1634 + u.s1.fragment_start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1635 + (int) SQUASHFS_I(inode)->
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1636 + u.s1.fragment_size);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1637 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1638 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1639 + bytes = SQUASHFS_I(inode)->u.s1.fragment_offset +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1640 + (i_size_read(inode) & (sblk->block_size
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1641 + - 1));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1642 + byte_offset = SQUASHFS_I(inode)->u.s1.fragment_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1643 + data_ptr = fragment->data;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1644 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1645 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1646 + for (i = start_index; i <= end_index && byte_offset < bytes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1647 + i++, byte_offset += PAGE_CACHE_SIZE) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1648 + struct page *push_page;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1649 + int available_bytes = (bytes - byte_offset) > PAGE_CACHE_SIZE ?
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1650 + PAGE_CACHE_SIZE : bytes - byte_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1651 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1652 + TRACE("bytes %d, i %d, byte_offset %d, available_bytes %d\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1653 + bytes, i, byte_offset, available_bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1654 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1655 + if (i == page->index) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1656 + pageaddr = kmap_atomic(page, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1657 + memcpy(pageaddr, data_ptr + byte_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1658 + available_bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1659 + memset(pageaddr + available_bytes, 0,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1660 + PAGE_CACHE_SIZE - available_bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1661 + kunmap_atomic(pageaddr, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1662 + flush_dcache_page(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1663 + SetPageUptodate(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1664 + unlock_page(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1665 + } else if ((push_page =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1666 + grab_cache_page_nowait(page->mapping, i))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1667 + pageaddr = kmap_atomic(push_page, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1668 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1669 + memcpy(pageaddr, data_ptr + byte_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1670 + available_bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1671 + memset(pageaddr + available_bytes, 0,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1672 + PAGE_CACHE_SIZE - available_bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1673 + kunmap_atomic(pageaddr, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1674 + flush_dcache_page(push_page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1675 + SetPageUptodate(push_page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1676 + unlock_page(push_page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1677 + page_cache_release(push_page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1678 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1679 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1680 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1681 + if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1682 + || index < (i_size_read(inode) >>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1683 + sblk->block_log))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1684 + up(&msblk->read_page_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1685 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1686 + release_cached_fragment(msblk, fragment);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1687 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1688 + kfree(block_list);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1689 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1690 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1691 +skip_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1692 + pageaddr = kmap_atomic(page, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1693 + memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1694 + kunmap_atomic(pageaddr, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1695 + flush_dcache_page(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1696 + SetPageUptodate(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1697 + unlock_page(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1698 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1699 + kfree(block_list);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1700 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1701 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1702 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1703 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1704 +static int squashfs_readpage4K(struct file *file, struct page *page)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1705 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1706 + struct inode *inode = page->mapping->host;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1707 + struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1708 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1709 + unsigned char *block_list;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1710 + long long block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1711 + unsigned int bsize, bytes = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1712 + void *pageaddr;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1713 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1714 + TRACE("Entered squashfs_readpage4K, page index %lx, start block %llx\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1715 + page->index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1716 + SQUASHFS_I(inode)->start_block);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1717 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1718 + if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1719 + PAGE_CACHE_SHIFT)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1720 + pageaddr = kmap_atomic(page, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1721 + block_list = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1722 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1723 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1724 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1725 + if (!(block_list = kmalloc(SIZE, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1726 + ERROR("Failed to allocate block_list\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1727 + pageaddr = kmap_atomic(page, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1728 + block_list = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1729 + goto skip_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1730 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1731 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1732 + if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1733 + || page->index < (i_size_read(inode) >>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1734 + sblk->block_log)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1735 + block = (msblk->read_blocklist)(inode, page->index, 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1736 + block_list, NULL, &bsize);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1737 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1738 + down(&msblk->read_page_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1739 + bytes = squashfs_read_data(inode->i_sb, msblk->read_page, block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1740 + bsize, NULL);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1741 + pageaddr = kmap_atomic(page, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1742 + if (bytes)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1743 + memcpy(pageaddr, msblk->read_page, bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1744 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1745 + ERROR("Unable to read page, block %llx, size %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1746 + block, bsize);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1747 + up(&msblk->read_page_mutex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1748 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1749 + struct squashfs_fragment_cache *fragment =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1750 + get_cached_fragment(inode->i_sb,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1751 + SQUASHFS_I(inode)->
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1752 + u.s1.fragment_start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1753 + SQUASHFS_I(inode)-> u.s1.fragment_size);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1754 + pageaddr = kmap_atomic(page, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1755 + if (fragment) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1756 + bytes = i_size_read(inode) & (sblk->block_size - 1);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1757 + memcpy(pageaddr, fragment->data + SQUASHFS_I(inode)->
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1758 + u.s1.fragment_offset, bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1759 + release_cached_fragment(msblk, fragment);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1760 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1761 + ERROR("Unable to read page, block %llx, size %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1762 + SQUASHFS_I(inode)->
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1763 + u.s1.fragment_start_block, (int)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1764 + SQUASHFS_I(inode)-> u.s1.fragment_size);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1765 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1766 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1767 +skip_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1768 + memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1769 + kunmap_atomic(pageaddr, KM_USER0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1770 + flush_dcache_page(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1771 + SetPageUptodate(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1772 + unlock_page(page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1773 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1774 + kfree(block_list);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1775 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1776 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1777 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1778 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1779 +static int get_dir_index_using_offset(struct super_block *s, long long
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1780 + *next_block, unsigned int *next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1781 + long long index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1782 + unsigned int index_offset, int i_count,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1783 + long long f_pos)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1784 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1785 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1786 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1787 + int i, length = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1788 + struct squashfs_dir_index index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1789 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1790 + TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1791 + i_count, (unsigned int) f_pos);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1792 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1793 + f_pos =- 3;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1794 + if (f_pos == 0)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1795 + goto finish;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1796 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1797 + for (i = 0; i < i_count; i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1798 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1799 + struct squashfs_dir_index sindex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1800 + squashfs_get_cached_block(s, (char *) &sindex,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1801 + index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1802 + sizeof(sindex), &index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1803 + &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1804 + SQUASHFS_SWAP_DIR_INDEX(&index, &sindex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1805 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1806 + squashfs_get_cached_block(s, (char *) &index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1807 + index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1808 + sizeof(index), &index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1809 + &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1810 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1811 + if (index.index > f_pos)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1812 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1813 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1814 + squashfs_get_cached_block(s, NULL, index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1815 + index.size + 1, &index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1816 + &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1817 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1818 + length = index.index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1819 + *next_block = index.start_block + sblk->directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1820 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1821 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1822 + *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1823 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1824 +finish:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1825 + return length + 3;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1826 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1827 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1828 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1829 +static int get_dir_index_using_name(struct super_block *s, long long
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1830 + *next_block, unsigned int *next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1831 + long long index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1832 + unsigned int index_offset, int i_count,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1833 + const char *name, int size)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1834 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1835 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1836 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1837 + int i, length = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1838 + struct squashfs_dir_index *index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1839 + char *str;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1840 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1841 + TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1842 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1843 + if (!(str = kmalloc(sizeof(struct squashfs_dir_index) +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1844 + (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1845 + ERROR("Failed to allocate squashfs_dir_index\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1846 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1847 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1848 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1849 + index = (struct squashfs_dir_index *) (str + SQUASHFS_NAME_LEN + 1);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1850 + strncpy(str, name, size);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1851 + str[size] = '\0';
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1852 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1853 + for (i = 0; i < i_count; i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1854 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1855 + struct squashfs_dir_index sindex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1856 + squashfs_get_cached_block(s, (char *) &sindex,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1857 + index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1858 + sizeof(sindex), &index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1859 + &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1860 + SQUASHFS_SWAP_DIR_INDEX(index, &sindex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1861 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1862 + squashfs_get_cached_block(s, (char *) index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1863 + index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1864 + sizeof(struct squashfs_dir_index),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1865 + &index_start, &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1866 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1867 + squashfs_get_cached_block(s, index->name, index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1868 + index_offset, index->size + 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1869 + &index_start, &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1870 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1871 + index->name[index->size + 1] = '\0';
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1872 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1873 + if (strcmp(index->name, str) > 0)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1874 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1875 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1876 + length = index->index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1877 + *next_block = index->start_block + sblk->directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1878 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1879 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1880 + *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1881 + kfree(str);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1882 +failure:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1883 + return length + 3;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1884 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1885 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1886 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1887 +static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1888 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1889 + struct inode *i = file->f_dentry->d_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1890 + struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1891 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1892 + long long next_block = SQUASHFS_I(i)->start_block +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1893 + sblk->directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1894 + int next_offset = SQUASHFS_I(i)->offset, length = 0,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1895 + dir_count;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1896 + struct squashfs_dir_header dirh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1897 + struct squashfs_dir_entry *dire;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1898 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1899 + TRACE("Entered squashfs_readdir [%llx:%x]\n", next_block, next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1900 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1901 + if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1902 + SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1903 + ERROR("Failed to allocate squashfs_dir_entry\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1904 + goto finish;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1905 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1906 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1907 + while(file->f_pos < 3) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1908 + char *name;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1909 + int size, i_ino;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1910 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1911 + if(file->f_pos == 0) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1912 + name = ".";
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1913 + size = 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1914 + i_ino = i->i_ino;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1915 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1916 + name = "..";
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1917 + size = 2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1918 + i_ino = SQUASHFS_I(i)->u.s2.parent_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1919 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1920 + TRACE("Calling filldir(%x, %s, %d, %d, %d, %d)\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1921 + (unsigned int) dirent, name, size, (int)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1922 + file->f_pos, i_ino,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1923 + squashfs_filetype_table[1]);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1924 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1925 + if (filldir(dirent, name, size,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1926 + file->f_pos, i_ino,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1927 + squashfs_filetype_table[1]) < 0) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1928 + TRACE("Filldir returned less than 0\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1929 + goto finish;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1930 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1931 + file->f_pos += size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1932 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1933 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1934 + length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1935 + SQUASHFS_I(i)->u.s2.directory_index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1936 + SQUASHFS_I(i)->u.s2.directory_index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1937 + SQUASHFS_I(i)->u.s2.directory_index_count,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1938 + file->f_pos);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1939 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1940 + while (length < i_size_read(i)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1941 + /* read directory header */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1942 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1943 + struct squashfs_dir_header sdirh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1944 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1945 + if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1946 + next_block, next_offset, sizeof(sdirh),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1947 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1948 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1949 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1950 + length += sizeof(sdirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1951 + SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1952 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1953 + if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1954 + next_block, next_offset, sizeof(dirh),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1955 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1956 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1957 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1958 + length += sizeof(dirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1959 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1960 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1961 + dir_count = dirh.count + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1962 + while (dir_count--) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1963 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1964 + struct squashfs_dir_entry sdire;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1965 + if (!squashfs_get_cached_block(i->i_sb, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1966 + &sdire, next_block, next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1967 + sizeof(sdire), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1968 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1969 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1970 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1971 + length += sizeof(sdire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1972 + SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1973 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1974 + if (!squashfs_get_cached_block(i->i_sb, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1975 + dire, next_block, next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1976 + sizeof(*dire), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1977 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1978 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1979 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1980 + length += sizeof(*dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1981 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1982 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1983 + if (!squashfs_get_cached_block(i->i_sb, dire->name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1984 + next_block, next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1985 + dire->size + 1, &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1986 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1987 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1988 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1989 + length += dire->size + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1990 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1991 + if (file->f_pos >= length)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1992 + continue;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1993 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1994 + dire->name[dire->size + 1] = '\0';
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1995 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1996 + TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d, %d)\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1997 + (unsigned int) dirent, dire->name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1998 + dire->size + 1, (int) file->f_pos,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
1999 + dirh.start_block, dire->offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2000 + dirh.inode_number + dire->inode_number,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2001 + squashfs_filetype_table[dire->type]);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2002 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2003 + if (filldir(dirent, dire->name, dire->size + 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2004 + file->f_pos,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2005 + dirh.inode_number + dire->inode_number,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2006 + squashfs_filetype_table[dire->type])
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2007 + < 0) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2008 + TRACE("Filldir returned less than 0\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2009 + goto finish;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2010 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2011 + file->f_pos = length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2012 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2013 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2014 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2015 +finish:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2016 + kfree(dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2017 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2018 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2019 +failed_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2020 + ERROR("Unable to read directory block [%llx:%x]\n", next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2021 + next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2022 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2023 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2024 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2025 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2026 +static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2027 + struct nameidata *nd)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2028 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2029 + const unsigned char *name = dentry->d_name.name;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2030 + int len = dentry->d_name.len;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2031 + struct inode *inode = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2032 + struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2033 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2034 + long long next_block = SQUASHFS_I(i)->start_block +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2035 + sblk->directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2036 + int next_offset = SQUASHFS_I(i)->offset, length = 0,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2037 + dir_count;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2038 + struct squashfs_dir_header dirh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2039 + struct squashfs_dir_entry *dire;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2040 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2041 + TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2042 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2043 + if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2044 + SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2045 + ERROR("Failed to allocate squashfs_dir_entry\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2046 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2047 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2048 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2049 + if (len > SQUASHFS_NAME_LEN)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2050 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2051 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2052 + length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2053 + SQUASHFS_I(i)->u.s2.directory_index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2054 + SQUASHFS_I(i)->u.s2.directory_index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2055 + SQUASHFS_I(i)->u.s2.directory_index_count, name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2056 + len);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2057 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2058 + while (length < i_size_read(i)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2059 + /* read directory header */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2060 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2061 + struct squashfs_dir_header sdirh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2062 + if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2063 + next_block, next_offset, sizeof(sdirh),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2064 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2065 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2066 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2067 + length += sizeof(sdirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2068 + SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2069 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2070 + if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2071 + next_block, next_offset, sizeof(dirh),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2072 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2073 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2074 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2075 + length += sizeof(dirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2076 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2077 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2078 + dir_count = dirh.count + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2079 + while (dir_count--) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2080 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2081 + struct squashfs_dir_entry sdire;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2082 + if (!squashfs_get_cached_block(i->i_sb, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2083 + &sdire, next_block,next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2084 + sizeof(sdire), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2085 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2086 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2087 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2088 + length += sizeof(sdire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2089 + SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2090 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2091 + if (!squashfs_get_cached_block(i->i_sb, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2092 + dire, next_block,next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2093 + sizeof(*dire), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2094 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2095 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2096 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2097 + length += sizeof(*dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2098 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2099 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2100 + if (!squashfs_get_cached_block(i->i_sb, dire->name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2101 + next_block, next_offset, dire->size + 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2102 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2103 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2104 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2105 + length += dire->size + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2106 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2107 + if (name[0] < dire->name[0])
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2108 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2109 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2110 + if ((len == dire->size + 1) && !strncmp(name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2111 + dire->name, len)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2112 + squashfs_inode_t ino =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2113 + SQUASHFS_MKINODE(dirh.start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2114 + dire->offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2115 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2116 + TRACE("calling squashfs_iget for directory "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2117 + "entry %s, inode %x:%x, %d\n", name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2118 + dirh.start_block, dire->offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2119 + dirh.inode_number + dire->inode_number);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2120 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2121 + inode = (msblk->iget)(i->i_sb, ino);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2122 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2123 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2124 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2125 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2126 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2127 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2128 +exit_loop:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2129 + kfree(dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2130 + d_add(dentry, inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2131 + return ERR_PTR(0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2132 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2133 +failed_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2134 + ERROR("Unable to read directory block [%llx:%x]\n", next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2135 + next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2136 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2137 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2138 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2139 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2140 +static void squashfs_put_super(struct super_block *s)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2141 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2142 + int i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2143 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2144 + if (s->s_fs_info) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2145 + struct squashfs_sb_info *sbi = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2146 + if (sbi->block_cache)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2147 + for (i = 0; i < SQUASHFS_CACHED_BLKS; i++)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2148 + if (sbi->block_cache[i].block !=
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2149 + SQUASHFS_INVALID_BLK)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2150 + kfree(sbi->block_cache[i].data);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2151 + if (sbi->fragment)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2152 + for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2153 + SQUASHFS_FREE(sbi->fragment[i].data);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2154 + kfree(sbi->fragment);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2155 + kfree(sbi->block_cache);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2156 + kfree(sbi->read_data);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2157 + kfree(sbi->read_page);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2158 + kfree(sbi->uid);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2159 + kfree(sbi->fragment_index);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2160 + kfree(sbi->fragment_index_2);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2161 + kfree(sbi->meta_index);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2162 + vfree(sbi->stream.workspace);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2163 + kfree(s->s_fs_info);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2164 + s->s_fs_info = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2165 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2166 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2167 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2168 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2169 +static int squashfs_get_sb(struct file_system_type *fs_type, int flags,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2170 + const char *dev_name, void *data,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2171 + struct vfsmount *mnt)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2172 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2173 + return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2174 + mnt);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2175 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2176 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2177 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2178 +static int __init init_squashfs_fs(void)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2179 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2180 + int err = init_inodecache();
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2181 + if (err)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2182 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2183 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2184 + printk(KERN_INFO "squashfs: version 3.1 (2006/08/19) "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2185 + "Phillip Lougher\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2186 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2187 + if ((err = register_filesystem(&squashfs_fs_type)))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2188 + destroy_inodecache();
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2189 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2190 +out:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2191 + return err;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2192 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2193 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2194 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2195 +static void __exit exit_squashfs_fs(void)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2196 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2197 + unregister_filesystem(&squashfs_fs_type);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2198 + destroy_inodecache();
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2199 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2200 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2201 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2202 +static kmem_cache_t * squashfs_inode_cachep;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2203 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2204 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2205 +static struct inode *squashfs_alloc_inode(struct super_block *sb)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2206 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2207 + struct squashfs_inode_info *ei;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2208 + ei = kmem_cache_alloc(squashfs_inode_cachep, SLAB_KERNEL);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2209 + if (!ei)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2210 + return NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2211 + return &ei->vfs_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2212 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2213 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2214 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2215 +static void squashfs_destroy_inode(struct inode *inode)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2216 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2217 + kmem_cache_free(squashfs_inode_cachep, SQUASHFS_I(inode));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2218 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2219 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2220 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2221 +static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2222 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2223 + struct squashfs_inode_info *ei = foo;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2224 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2225 + if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) ==
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2226 + SLAB_CTOR_CONSTRUCTOR)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2227 + inode_init_once(&ei->vfs_inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2228 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2229 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2230 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2231 +static int __init init_inodecache(void)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2232 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2233 + squashfs_inode_cachep = kmem_cache_create("squashfs_inode_cache",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2234 + sizeof(struct squashfs_inode_info),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2235 + 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2236 + init_once, NULL);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2237 + if (squashfs_inode_cachep == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2238 + return -ENOMEM;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2239 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2240 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2241 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2242 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2243 +static void destroy_inodecache(void)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2244 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2245 + kmem_cache_destroy(squashfs_inode_cachep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2246 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2247 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2248 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2249 +module_init(init_squashfs_fs);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2250 +module_exit(exit_squashfs_fs);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2251 +MODULE_DESCRIPTION("squashfs 3.1, a compressed read-only filesystem");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2252 +MODULE_AUTHOR("Phillip Lougher <phillip@lougher.org.uk>");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2253 +MODULE_LICENSE("GPL");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2254 diff -Nru linux-2.6.19.ori2/fs/squashfs/squashfs.h linux-2.6.19.ori/fs/squashfs/squashfs.h
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2255 --- linux-2.6.19.ori2/fs/squashfs/squashfs.h 1970-01-01 01:00:00.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2256 +++ linux-2.6.19.ori/fs/squashfs/squashfs.h 2006-12-03 00:12:36.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2257 @@ -0,0 +1,86 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2258 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2259 + * Squashfs - a compressed read only filesystem for Linux
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2260 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2261 + * Copyright (c) 2002, 2003, 2004, 2005, 2006
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2262 + * Phillip Lougher <phillip@lougher.org.uk>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2263 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2264 + * This program is free software; you can redistribute it and/or
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2265 + * modify it under the terms of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2266 + * as published by the Free Software Foundation; either version 2,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2267 + * or (at your option) any later version.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2268 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2269 + * This program is distributed in the hope that it will be useful,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2270 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2271 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2272 + * GNU General Public License for more details.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2273 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2274 + * You should have received a copy of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2275 + * along with this program; if not, write to the Free Software
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2276 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2277 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2278 + * squashfs.h
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2279 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2280 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2281 +#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2282 +#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2283 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2284 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2285 +#ifdef SQUASHFS_TRACE
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2286 +#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2287 +#else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2288 +#define TRACE(s, args...) {}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2289 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2290 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2291 +#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2292 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2293 +#define SERROR(s, args...) do { \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2294 + if (!silent) \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2295 + printk(KERN_ERR "SQUASHFS error: "s, ## args);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2296 + } while(0)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2297 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2298 +#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2299 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2300 +static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2301 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2302 + return list_entry(inode, struct squashfs_inode_info, vfs_inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2303 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2304 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2305 +#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2306 +#define SQSH_EXTERN
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2307 +extern unsigned int squashfs_read_data(struct super_block *s, char *buffer,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2308 + long long index, unsigned int length,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2309 + long long *next_index);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2310 +extern int squashfs_get_cached_block(struct super_block *s, char *buffer,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2311 + long long block, unsigned int offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2312 + int length, long long *next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2313 + unsigned int *next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2314 +extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2315 + squashfs_fragment_cache *fragment);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2316 +extern struct squashfs_fragment_cache *get_cached_fragment(struct super_block
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2317 + *s, long long start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2318 + int length);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2319 +extern struct address_space_operations squashfs_symlink_aops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2320 +extern struct address_space_operations squashfs_aops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2321 +extern struct address_space_operations squashfs_aops_4K;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2322 +extern struct inode_operations squashfs_dir_inode_ops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2323 +#else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2324 +#define SQSH_EXTERN static
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2325 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2326 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2327 +#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2328 +extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2329 +#else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2330 +static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2331 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2332 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2333 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2334 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2335 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2336 +#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2337 +extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2338 +#else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2339 +static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2340 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2341 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2342 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2343 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2344 diff -Nru linux-2.6.19.ori2/fs/squashfs/squashfs2_0.c linux-2.6.19.ori/fs/squashfs/squashfs2_0.c
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2345 --- linux-2.6.19.ori2/fs/squashfs/squashfs2_0.c 1970-01-01 01:00:00.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2346 +++ linux-2.6.19.ori/fs/squashfs/squashfs2_0.c 2006-12-03 00:13:45.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2347 @@ -0,0 +1,778 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2348 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2349 + * Squashfs - a compressed read only filesystem for Linux
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2350 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2351 + * Copyright (c) 2002, 2003, 2004, 2005, 2006
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2352 + * Phillip Lougher <phillip@lougher.org.uk>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2353 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2354 + * This program is free software; you can redistribute it and/or
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2355 + * modify it under the terms of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2356 + * as published by the Free Software Foundation; either version 2,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2357 + * or (at your option) any later version.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2358 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2359 + * This program is distributed in the hope that it will be useful,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2360 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2361 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2362 + * GNU General Public License for more details.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2363 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2364 + * You should have received a copy of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2365 + * along with this program; if not, write to the Free Software
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2366 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2367 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2368 + * squashfs2_0.c
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2369 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2370 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2371 +#include <linux/types.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2372 +#include <linux/squashfs_fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2373 +#include <linux/module.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2374 +#include <linux/errno.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2375 +#include <linux/slab.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2376 +#include <linux/zlib.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2377 +#include <linux/fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2378 +#include <linux/smp_lock.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2379 +#include <linux/slab.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2380 +#include <linux/squashfs_fs_sb.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2381 +#include <linux/squashfs_fs_i.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2382 +#include <linux/buffer_head.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2383 +#include <linux/vfs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2384 +#include <linux/init.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2385 +#include <linux/dcache.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2386 +#include <linux/wait.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2387 +#include <linux/zlib.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2388 +#include <linux/blkdev.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2389 +#include <linux/vmalloc.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2390 +#include <asm/uaccess.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2391 +#include <asm/semaphore.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2392 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2393 +#include "squashfs.h"
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2394 +static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2395 +static struct dentry *squashfs_lookup_2(struct inode *, struct dentry *,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2396 + struct nameidata *);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2397 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2398 +static struct file_operations squashfs_dir_ops_2 = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2399 + .read = generic_read_dir,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2400 + .readdir = squashfs_readdir_2
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2401 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2402 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2403 +static struct inode_operations squashfs_dir_inode_ops_2 = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2404 + .lookup = squashfs_lookup_2
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2405 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2406 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2407 +static unsigned char squashfs_filetype_table[] = {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2408 + DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2409 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2410 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2411 +static int read_fragment_index_table_2(struct super_block *s)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2412 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2413 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2414 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2415 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2416 + if (!(msblk->fragment_index_2 = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES_2
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2417 + (sblk->fragments), GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2418 + ERROR("Failed to allocate uid/gid table\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2419 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2420 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2421 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2422 + if (SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments) &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2423 + !squashfs_read_data(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2424 + msblk->fragment_index_2,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2425 + sblk->fragment_table_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2426 + SQUASHFS_FRAGMENT_INDEX_BYTES_2
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2427 + (sblk->fragments) |
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2428 + SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2429 + ERROR("unable to read fragment index table\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2430 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2431 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2432 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2433 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2434 + int i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2435 + unsigned int fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2436 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2437 + for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES_2(sblk->fragments);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2438 + i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2439 + SQUASHFS_SWAP_FRAGMENT_INDEXES_2((&fragment),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2440 + &msblk->fragment_index_2[i], 1);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2441 + msblk->fragment_index_2[i] = fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2442 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2443 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2444 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2445 + return 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2446 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2447 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2448 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2449 +static int get_fragment_location_2(struct super_block *s, unsigned int fragment,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2450 + long long *fragment_start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2451 + unsigned int *fragment_size)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2452 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2453 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2454 + long long start_block =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2455 + msblk->fragment_index_2[SQUASHFS_FRAGMENT_INDEX_2(fragment)];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2456 + int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET_2(fragment);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2457 + struct squashfs_fragment_entry_2 fragment_entry;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2458 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2459 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2460 + struct squashfs_fragment_entry_2 sfragment_entry;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2461 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2462 + if (!squashfs_get_cached_block(s, (char *) &sfragment_entry,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2463 + start_block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2464 + sizeof(sfragment_entry), &start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2465 + &offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2466 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2467 + SQUASHFS_SWAP_FRAGMENT_ENTRY_2(&fragment_entry, &sfragment_entry);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2468 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2469 + if (!squashfs_get_cached_block(s, (char *) &fragment_entry,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2470 + start_block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2471 + sizeof(fragment_entry), &start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2472 + &offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2473 + goto out;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2474 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2475 + *fragment_start_block = fragment_entry.start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2476 + *fragment_size = fragment_entry.size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2477 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2478 + return 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2479 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2480 +out:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2481 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2482 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2483 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2484 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2485 +static struct inode *squashfs_new_inode(struct super_block *s,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2486 + struct squashfs_base_inode_header_2 *inodeb, unsigned int ino)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2487 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2488 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2489 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2490 + struct inode *i = new_inode(s);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2491 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2492 + if (i) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2493 + i->i_ino = ino;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2494 + i->i_mtime.tv_sec = sblk->mkfs_time;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2495 + i->i_atime.tv_sec = sblk->mkfs_time;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2496 + i->i_ctime.tv_sec = sblk->mkfs_time;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2497 + i->i_uid = msblk->uid[inodeb->uid];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2498 + i->i_mode = inodeb->mode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2499 + i->i_nlink = 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2500 + i->i_size = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2501 + if (inodeb->guid == SQUASHFS_GUIDS)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2502 + i->i_gid = i->i_uid;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2503 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2504 + i->i_gid = msblk->guid[inodeb->guid];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2505 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2506 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2507 + return i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2508 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2509 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2510 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2511 +static struct inode *squashfs_iget_2(struct super_block *s, squashfs_inode_t inode)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2512 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2513 + struct inode *i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2514 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2515 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2516 + unsigned int block = SQUASHFS_INODE_BLK(inode) +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2517 + sblk->inode_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2518 + unsigned int offset = SQUASHFS_INODE_OFFSET(inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2519 + unsigned int ino = SQUASHFS_MK_VFS_INODE(block
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2520 + - sblk->inode_table_start, offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2521 + long long next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2522 + unsigned int next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2523 + union squashfs_inode_header_2 id, sid;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2524 + struct squashfs_base_inode_header_2 *inodeb = &id.base,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2525 + *sinodeb = &sid.base;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2526 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2527 + TRACE("Entered squashfs_iget\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2528 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2529 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2530 + if (!squashfs_get_cached_block(s, (char *) sinodeb, block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2531 + offset, sizeof(*sinodeb), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2532 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2533 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2534 + SQUASHFS_SWAP_BASE_INODE_HEADER_2(inodeb, sinodeb,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2535 + sizeof(*sinodeb));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2536 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2537 + if (!squashfs_get_cached_block(s, (char *) inodeb, block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2538 + offset, sizeof(*inodeb), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2539 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2540 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2541 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2542 + switch(inodeb->inode_type) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2543 + case SQUASHFS_FILE_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2544 + struct squashfs_reg_inode_header_2 *inodep = &id.reg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2545 + struct squashfs_reg_inode_header_2 *sinodep = &sid.reg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2546 + long long frag_blk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2547 + unsigned int frag_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2548 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2549 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2550 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2551 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2552 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2553 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2554 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2555 + SQUASHFS_SWAP_REG_INODE_HEADER_2(inodep, sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2556 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2557 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2558 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2559 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2560 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2561 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2562 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2563 + frag_blk = SQUASHFS_INVALID_BLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2564 + if (inodep->fragment != SQUASHFS_INVALID_FRAG &&
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2565 + !get_fragment_location_2(s,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2566 + inodep->fragment, &frag_blk, &frag_size))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2567 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2568 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2569 + if((i = squashfs_new_inode(s, inodeb, ino)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2570 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2571 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2572 + i->i_size = inodep->file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2573 + i->i_fop = &generic_ro_fops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2574 + i->i_mode |= S_IFREG;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2575 + i->i_mtime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2576 + i->i_atime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2577 + i->i_ctime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2578 + i->i_blocks = ((i->i_size - 1) >> 9) + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2579 + SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2580 + SQUASHFS_I(i)->u.s1.fragment_size = frag_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2581 + SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2582 + SQUASHFS_I(i)->start_block = inodep->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2583 + SQUASHFS_I(i)->u.s1.block_list_start = next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2584 + SQUASHFS_I(i)->offset = next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2585 + if (sblk->block_size > 4096)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2586 + i->i_data.a_ops = &squashfs_aops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2587 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2588 + i->i_data.a_ops = &squashfs_aops_4K;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2589 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2590 + TRACE("File inode %x:%x, start_block %x, "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2591 + "block_list_start %llx, offset %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2592 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2593 + inodep->start_block, next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2594 + next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2595 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2596 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2597 + case SQUASHFS_DIR_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2598 + struct squashfs_dir_inode_header_2 *inodep = &id.dir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2599 + struct squashfs_dir_inode_header_2 *sinodep = &sid.dir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2600 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2601 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2602 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2603 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2604 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2605 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2606 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2607 + SQUASHFS_SWAP_DIR_INODE_HEADER_2(inodep, sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2608 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2609 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2610 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2611 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2612 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2613 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2614 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2615 + if((i = squashfs_new_inode(s, inodeb, ino)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2616 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2617 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2618 + i->i_size = inodep->file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2619 + i->i_op = &squashfs_dir_inode_ops_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2620 + i->i_fop = &squashfs_dir_ops_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2621 + i->i_mode |= S_IFDIR;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2622 + i->i_mtime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2623 + i->i_atime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2624 + i->i_ctime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2625 + SQUASHFS_I(i)->start_block = inodep->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2626 + SQUASHFS_I(i)->offset = inodep->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2627 + SQUASHFS_I(i)->u.s2.directory_index_count = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2628 + SQUASHFS_I(i)->u.s2.parent_inode = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2629 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2630 + TRACE("Directory inode %x:%x, start_block %x, offset "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2631 + "%x\n", SQUASHFS_INODE_BLK(inode),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2632 + offset, inodep->start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2633 + inodep->offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2634 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2635 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2636 + case SQUASHFS_LDIR_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2637 + struct squashfs_ldir_inode_header_2 *inodep = &id.ldir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2638 + struct squashfs_ldir_inode_header_2 *sinodep = &sid.ldir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2639 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2640 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2641 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2642 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2643 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2644 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2645 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2646 + SQUASHFS_SWAP_LDIR_INODE_HEADER_2(inodep,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2647 + sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2648 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2649 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2650 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2651 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2652 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2653 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2654 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2655 + if((i = squashfs_new_inode(s, inodeb, ino)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2656 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2657 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2658 + i->i_size = inodep->file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2659 + i->i_op = &squashfs_dir_inode_ops_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2660 + i->i_fop = &squashfs_dir_ops_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2661 + i->i_mode |= S_IFDIR;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2662 + i->i_mtime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2663 + i->i_atime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2664 + i->i_ctime.tv_sec = inodep->mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2665 + SQUASHFS_I(i)->start_block = inodep->start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2666 + SQUASHFS_I(i)->offset = inodep->offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2667 + SQUASHFS_I(i)->u.s2.directory_index_start = next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2668 + SQUASHFS_I(i)->u.s2.directory_index_offset =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2669 + next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2670 + SQUASHFS_I(i)->u.s2.directory_index_count =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2671 + inodep->i_count;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2672 + SQUASHFS_I(i)->u.s2.parent_inode = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2673 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2674 + TRACE("Long directory inode %x:%x, start_block %x, "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2675 + "offset %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2676 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2677 + inodep->start_block, inodep->offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2678 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2679 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2680 + case SQUASHFS_SYMLINK_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2681 + struct squashfs_symlink_inode_header_2 *inodep =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2682 + &id.symlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2683 + struct squashfs_symlink_inode_header_2 *sinodep =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2684 + &sid.symlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2685 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2686 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2687 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2688 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2689 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2690 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2691 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2692 + SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(inodep,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2693 + sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2694 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2695 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2696 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2697 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2698 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2699 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2700 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2701 + if((i = squashfs_new_inode(s, inodeb, ino)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2702 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2703 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2704 + i->i_size = inodep->symlink_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2705 + i->i_op = &page_symlink_inode_operations;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2706 + i->i_data.a_ops = &squashfs_symlink_aops;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2707 + i->i_mode |= S_IFLNK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2708 + SQUASHFS_I(i)->start_block = next_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2709 + SQUASHFS_I(i)->offset = next_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2710 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2711 + TRACE("Symbolic link inode %x:%x, start_block %llx, "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2712 + "offset %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2713 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2714 + next_block, next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2715 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2716 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2717 + case SQUASHFS_BLKDEV_TYPE:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2718 + case SQUASHFS_CHRDEV_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2719 + struct squashfs_dev_inode_header_2 *inodep = &id.dev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2720 + struct squashfs_dev_inode_header_2 *sinodep = &sid.dev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2721 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2722 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2723 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2724 + sinodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2725 + sizeof(*sinodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2726 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2727 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2728 + SQUASHFS_SWAP_DEV_INODE_HEADER_2(inodep, sinodep);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2729 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2730 + if (!squashfs_get_cached_block(s, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2731 + inodep, block, offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2732 + sizeof(*inodep), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2733 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2734 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2735 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2736 + if ((i = squashfs_new_inode(s, inodeb, ino)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2737 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2738 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2739 + i->i_mode |= (inodeb->inode_type ==
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2740 + SQUASHFS_CHRDEV_TYPE) ? S_IFCHR :
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2741 + S_IFBLK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2742 + init_special_inode(i, i->i_mode,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2743 + old_decode_dev(inodep->rdev));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2744 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2745 + TRACE("Device inode %x:%x, rdev %x\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2746 + SQUASHFS_INODE_BLK(inode), offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2747 + inodep->rdev);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2748 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2749 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2750 + case SQUASHFS_FIFO_TYPE:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2751 + case SQUASHFS_SOCKET_TYPE: {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2752 + if ((i = squashfs_new_inode(s, inodeb, ino)) == NULL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2753 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2754 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2755 + i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2756 + ? S_IFIFO : S_IFSOCK;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2757 + init_special_inode(i, i->i_mode, 0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2758 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2759 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2760 + default:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2761 + ERROR("Unknown inode type %d in squashfs_iget!\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2762 + inodeb->inode_type);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2763 + goto failed_read1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2764 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2765 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2766 + insert_inode_hash(i);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2767 + return i;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2768 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2769 +failed_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2770 + ERROR("Unable to read inode [%x:%x]\n", block, offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2771 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2772 +failed_read1:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2773 + return NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2774 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2775 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2776 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2777 +static int get_dir_index_using_offset(struct super_block *s, long long
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2778 + *next_block, unsigned int *next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2779 + long long index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2780 + unsigned int index_offset, int i_count,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2781 + long long f_pos)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2782 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2783 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2784 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2785 + int i, length = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2786 + struct squashfs_dir_index_2 index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2787 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2788 + TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2789 + i_count, (unsigned int) f_pos);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2790 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2791 + if (f_pos == 0)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2792 + goto finish;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2793 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2794 + for (i = 0; i < i_count; i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2795 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2796 + struct squashfs_dir_index_2 sindex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2797 + squashfs_get_cached_block(s, (char *) &sindex,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2798 + index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2799 + sizeof(sindex), &index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2800 + &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2801 + SQUASHFS_SWAP_DIR_INDEX_2(&index, &sindex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2802 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2803 + squashfs_get_cached_block(s, (char *) &index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2804 + index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2805 + sizeof(index), &index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2806 + &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2807 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2808 + if (index.index > f_pos)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2809 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2810 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2811 + squashfs_get_cached_block(s, NULL, index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2812 + index.size + 1, &index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2813 + &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2814 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2815 + length = index.index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2816 + *next_block = index.start_block + sblk->directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2817 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2818 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2819 + *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2820 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2821 +finish:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2822 + return length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2823 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2824 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2825 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2826 +static int get_dir_index_using_name(struct super_block *s, long long
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2827 + *next_block, unsigned int *next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2828 + long long index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2829 + unsigned int index_offset, int i_count,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2830 + const char *name, int size)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2831 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2832 + struct squashfs_sb_info *msblk = s->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2833 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2834 + int i, length = 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2835 + struct squashfs_dir_index_2 *index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2836 + char *str;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2837 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2838 + TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2839 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2840 + if (!(str = kmalloc(sizeof(struct squashfs_dir_index) +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2841 + (SQUASHFS_NAME_LEN + 1) * 2, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2842 + ERROR("Failed to allocate squashfs_dir_index\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2843 + goto failure;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2844 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2845 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2846 + index = (struct squashfs_dir_index_2 *) (str + SQUASHFS_NAME_LEN + 1);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2847 + strncpy(str, name, size);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2848 + str[size] = '\0';
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2849 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2850 + for (i = 0; i < i_count; i++) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2851 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2852 + struct squashfs_dir_index_2 sindex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2853 + squashfs_get_cached_block(s, (char *) &sindex,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2854 + index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2855 + sizeof(sindex), &index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2856 + &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2857 + SQUASHFS_SWAP_DIR_INDEX_2(index, &sindex);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2858 + } else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2859 + squashfs_get_cached_block(s, (char *) index,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2860 + index_start, index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2861 + sizeof(struct squashfs_dir_index_2),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2862 + &index_start, &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2863 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2864 + squashfs_get_cached_block(s, index->name, index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2865 + index_offset, index->size + 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2866 + &index_start, &index_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2867 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2868 + index->name[index->size + 1] = '\0';
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2869 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2870 + if (strcmp(index->name, str) > 0)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2871 + break;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2872 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2873 + length = index->index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2874 + *next_block = index->start_block + sblk->directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2875 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2876 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2877 + *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2878 + kfree(str);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2879 +failure:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2880 + return length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2881 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2882 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2883 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2884 +static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2885 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2886 + struct inode *i = file->f_dentry->d_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2887 + struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2888 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2889 + long long next_block = SQUASHFS_I(i)->start_block +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2890 + sblk->directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2891 + int next_offset = SQUASHFS_I(i)->offset, length = 0,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2892 + dir_count;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2893 + struct squashfs_dir_header_2 dirh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2894 + struct squashfs_dir_entry_2 *dire;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2895 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2896 + TRACE("Entered squashfs_readdir_2 [%llx:%x]\n", next_block, next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2897 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2898 + if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2899 + SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2900 + ERROR("Failed to allocate squashfs_dir_entry\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2901 + goto finish;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2902 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2903 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2904 + length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2905 + SQUASHFS_I(i)->u.s2.directory_index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2906 + SQUASHFS_I(i)->u.s2.directory_index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2907 + SQUASHFS_I(i)->u.s2.directory_index_count,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2908 + file->f_pos);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2909 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2910 + while (length < i_size_read(i)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2911 + /* read directory header */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2912 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2913 + struct squashfs_dir_header_2 sdirh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2914 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2915 + if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2916 + next_block, next_offset, sizeof(sdirh),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2917 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2918 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2919 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2920 + length += sizeof(sdirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2921 + SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2922 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2923 + if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2924 + next_block, next_offset, sizeof(dirh),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2925 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2926 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2927 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2928 + length += sizeof(dirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2929 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2930 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2931 + dir_count = dirh.count + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2932 + while (dir_count--) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2933 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2934 + struct squashfs_dir_entry_2 sdire;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2935 + if (!squashfs_get_cached_block(i->i_sb, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2936 + &sdire, next_block, next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2937 + sizeof(sdire), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2938 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2939 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2940 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2941 + length += sizeof(sdire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2942 + SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2943 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2944 + if (!squashfs_get_cached_block(i->i_sb, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2945 + dire, next_block, next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2946 + sizeof(*dire), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2947 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2948 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2949 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2950 + length += sizeof(*dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2951 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2952 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2953 + if (!squashfs_get_cached_block(i->i_sb, dire->name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2954 + next_block, next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2955 + dire->size + 1, &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2956 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2957 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2958 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2959 + length += dire->size + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2960 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2961 + if (file->f_pos >= length)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2962 + continue;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2963 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2964 + dire->name[dire->size + 1] = '\0';
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2965 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2966 + TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2967 + (unsigned int) dirent, dire->name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2968 + dire->size + 1, (int) file->f_pos,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2969 + dirh.start_block, dire->offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2970 + squashfs_filetype_table[dire->type]);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2971 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2972 + if (filldir(dirent, dire->name, dire->size + 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2973 + file->f_pos, SQUASHFS_MK_VFS_INODE(
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2974 + dirh.start_block, dire->offset),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2975 + squashfs_filetype_table[dire->type])
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2976 + < 0) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2977 + TRACE("Filldir returned less than 0\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2978 + goto finish;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2979 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2980 + file->f_pos = length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2981 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2982 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2983 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2984 +finish:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2985 + kfree(dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2986 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2987 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2988 +failed_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2989 + ERROR("Unable to read directory block [%llx:%x]\n", next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2990 + next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2991 + kfree(dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2992 + return 0;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2993 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2994 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2995 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2996 +static struct dentry *squashfs_lookup_2(struct inode *i, struct dentry *dentry,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2997 + struct nameidata *nd)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2998 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
2999 + const unsigned char *name = dentry->d_name.name;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3000 + int len = dentry->d_name.len;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3001 + struct inode *inode = NULL;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3002 + struct squashfs_sb_info *msblk = i->i_sb->s_fs_info;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3003 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3004 + long long next_block = SQUASHFS_I(i)->start_block +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3005 + sblk->directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3006 + int next_offset = SQUASHFS_I(i)->offset, length = 0,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3007 + dir_count;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3008 + struct squashfs_dir_header_2 dirh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3009 + struct squashfs_dir_entry_2 *dire;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3010 + int sorted = sblk->s_major == 2 && sblk->s_minor >= 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3011 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3012 + TRACE("Entered squashfs_lookup_2 [%llx:%x]\n", next_block, next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3013 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3014 + if (!(dire = kmalloc(sizeof(struct squashfs_dir_entry) +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3015 + SQUASHFS_NAME_LEN + 1, GFP_KERNEL))) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3016 + ERROR("Failed to allocate squashfs_dir_entry\n");
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3017 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3018 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3019 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3020 + if (len > SQUASHFS_NAME_LEN)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3021 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3022 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3023 + length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3024 + SQUASHFS_I(i)->u.s2.directory_index_start,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3025 + SQUASHFS_I(i)->u.s2.directory_index_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3026 + SQUASHFS_I(i)->u.s2.directory_index_count, name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3027 + len);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3028 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3029 + while (length < i_size_read(i)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3030 + /* read directory header */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3031 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3032 + struct squashfs_dir_header_2 sdirh;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3033 + if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3034 + next_block, next_offset, sizeof(sdirh),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3035 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3036 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3037 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3038 + length += sizeof(sdirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3039 + SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3040 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3041 + if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3042 + next_block, next_offset, sizeof(dirh),
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3043 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3044 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3045 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3046 + length += sizeof(dirh);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3047 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3048 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3049 + dir_count = dirh.count + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3050 + while (dir_count--) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3051 + if (msblk->swap) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3052 + struct squashfs_dir_entry_2 sdire;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3053 + if (!squashfs_get_cached_block(i->i_sb, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3054 + &sdire, next_block,next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3055 + sizeof(sdire), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3056 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3057 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3058 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3059 + length += sizeof(sdire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3060 + SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3061 + } else {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3062 + if (!squashfs_get_cached_block(i->i_sb, (char *)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3063 + dire, next_block,next_offset,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3064 + sizeof(*dire), &next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3065 + &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3066 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3067 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3068 + length += sizeof(*dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3069 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3070 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3071 + if (!squashfs_get_cached_block(i->i_sb, dire->name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3072 + next_block, next_offset, dire->size + 1,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3073 + &next_block, &next_offset))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3074 + goto failed_read;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3075 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3076 + length += dire->size + 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3077 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3078 + if (sorted && name[0] < dire->name[0])
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3079 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3080 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3081 + if ((len == dire->size + 1) && !strncmp(name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3082 + dire->name, len)) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3083 + squashfs_inode_t ino =
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3084 + SQUASHFS_MKINODE(dirh.start_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3085 + dire->offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3086 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3087 + TRACE("calling squashfs_iget for directory "
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3088 + "entry %s, inode %x:%x, %lld\n", name,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3089 + dirh.start_block, dire->offset, ino);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3090 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3091 + inode = (msblk->iget)(i->i_sb, ino);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3092 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3093 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3094 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3095 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3096 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3097 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3098 +exit_loop:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3099 + kfree(dire);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3100 + d_add(dentry, inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3101 + return ERR_PTR(0);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3102 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3103 +failed_read:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3104 + ERROR("Unable to read directory block [%llx:%x]\n", next_block,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3105 + next_offset);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3106 + goto exit_loop;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3107 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3108 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3109 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3110 +int squashfs_2_0_supported(struct squashfs_sb_info *msblk)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3111 +{
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3112 + struct squashfs_super_block *sblk = &msblk->sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3113 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3114 + msblk->iget = squashfs_iget_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3115 + msblk->read_fragment_index_table = read_fragment_index_table_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3116 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3117 + sblk->bytes_used = sblk->bytes_used_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3118 + sblk->uid_start = sblk->uid_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3119 + sblk->guid_start = sblk->guid_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3120 + sblk->inode_table_start = sblk->inode_table_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3121 + sblk->directory_table_start = sblk->directory_table_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3122 + sblk->fragment_table_start = sblk->fragment_table_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3123 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3124 + return 1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3125 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3126 diff -Nru linux-2.6.19.ori2/include/linux/squashfs_fs.h linux-2.6.19.ori/include/linux/squashfs_fs.h
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3127 --- linux-2.6.19.ori2/include/linux/squashfs_fs.h 1970-01-01 01:00:00.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3128 +++ linux-2.6.19.ori/include/linux/squashfs_fs.h 2006-12-03 00:12:36.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3129 @@ -0,0 +1,911 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3130 +#ifndef SQUASHFS_FS
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3131 +#define SQUASHFS_FS
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3132 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3133 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3134 + * Squashfs
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3135 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3136 + * Copyright (c) 2002, 2003, 2004, 2005, 2006
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3137 + * Phillip Lougher <phillip@lougher.org.uk>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3138 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3139 + * This program is free software; you can redistribute it and/or
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3140 + * modify it under the terms of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3141 + * as published by the Free Software Foundation; either version 2,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3142 + * or (at your option) any later version.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3143 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3144 + * This program is distributed in the hope that it will be useful,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3145 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3146 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3147 + * GNU General Public License for more details.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3148 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3149 + * You should have received a copy of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3150 + * along with this program; if not, write to the Free Software
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3151 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3152 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3153 + * squashfs_fs.h
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3154 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3155 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3156 +#ifndef CONFIG_SQUASHFS_2_0_COMPATIBILITY
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3157 +#define CONFIG_SQUASHFS_2_0_COMPATIBILITY
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3158 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3159 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3160 +#ifdef CONFIG_SQUASHFS_VMALLOC
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3161 +#define SQUASHFS_ALLOC(a) vmalloc(a)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3162 +#define SQUASHFS_FREE(a) vfree(a)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3163 +#else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3164 +#define SQUASHFS_ALLOC(a) kmalloc(a, GFP_KERNEL)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3165 +#define SQUASHFS_FREE(a) kfree(a)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3166 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3167 +#define SQUASHFS_CACHED_FRAGMENTS CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3168 +#define SQUASHFS_MAJOR 3
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3169 +#define SQUASHFS_MINOR 0
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3170 +#define SQUASHFS_MAGIC 0x73717368
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3171 +#define SQUASHFS_MAGIC_SWAP 0x68737173
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3172 +#define SQUASHFS_START 0
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3173 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3174 +/* size of metadata (inode and directory) blocks */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3175 +#define SQUASHFS_METADATA_SIZE 8192
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3176 +#define SQUASHFS_METADATA_LOG 13
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3177 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3178 +/* default size of data blocks */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3179 +#define SQUASHFS_FILE_SIZE 65536
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3180 +#define SQUASHFS_FILE_LOG 16
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3181 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3182 +#define SQUASHFS_FILE_MAX_SIZE 65536
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3183 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3184 +/* Max number of uids and gids */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3185 +#define SQUASHFS_UIDS 256
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3186 +#define SQUASHFS_GUIDS 255
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3187 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3188 +/* Max length of filename (not 255) */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3189 +#define SQUASHFS_NAME_LEN 256
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3190 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3191 +#define SQUASHFS_INVALID ((long long) 0xffffffffffff)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3192 +#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3193 +#define SQUASHFS_INVALID_BLK ((long long) -1)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3194 +#define SQUASHFS_USED_BLK ((long long) -2)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3195 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3196 +/* Filesystem flags */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3197 +#define SQUASHFS_NOI 0
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3198 +#define SQUASHFS_NOD 1
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3199 +#define SQUASHFS_CHECK 2
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3200 +#define SQUASHFS_NOF 3
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3201 +#define SQUASHFS_NO_FRAG 4
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3202 +#define SQUASHFS_ALWAYS_FRAG 5
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3203 +#define SQUASHFS_DUPLICATE 6
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3204 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3205 +#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3206 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3207 +#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3208 + SQUASHFS_NOI)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3209 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3210 +#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3211 + SQUASHFS_NOD)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3212 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3213 +#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3214 + SQUASHFS_NOF)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3215 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3216 +#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3217 + SQUASHFS_NO_FRAG)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3218 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3219 +#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3220 + SQUASHFS_ALWAYS_FRAG)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3221 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3222 +#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3223 + SQUASHFS_DUPLICATE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3224 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3225 +#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3226 + SQUASHFS_CHECK)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3227 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3228 +#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3229 + duplicate_checking) (noi | (nod << 1) | (check_data << 2) \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3230 + | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3231 + (duplicate_checking << 6))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3232 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3233 +/* Max number of types and file types */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3234 +#define SQUASHFS_DIR_TYPE 1
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3235 +#define SQUASHFS_FILE_TYPE 2
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3236 +#define SQUASHFS_SYMLINK_TYPE 3
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3237 +#define SQUASHFS_BLKDEV_TYPE 4
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3238 +#define SQUASHFS_CHRDEV_TYPE 5
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3239 +#define SQUASHFS_FIFO_TYPE 6
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3240 +#define SQUASHFS_SOCKET_TYPE 7
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3241 +#define SQUASHFS_LDIR_TYPE 8
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3242 +#define SQUASHFS_LREG_TYPE 9
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3243 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3244 +/* 1.0 filesystem type definitions */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3245 +#define SQUASHFS_TYPES 5
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3246 +#define SQUASHFS_IPC_TYPE 0
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3247 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3248 +/* Flag whether block is compressed or uncompressed, bit is set if block is
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3249 + * uncompressed */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3250 +#define SQUASHFS_COMPRESSED_BIT (1 << 15)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3251 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3252 +#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3253 + (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3254 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3255 +#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3256 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3257 +#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3258 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3259 +#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) (((B) & \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3260 + ~SQUASHFS_COMPRESSED_BIT_BLOCK) ? (B) & \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3261 + ~SQUASHFS_COMPRESSED_BIT_BLOCK : SQUASHFS_COMPRESSED_BIT_BLOCK)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3262 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3263 +#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3264 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3265 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3266 + * Inode number ops. Inodes consist of a compressed block number, and an
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3267 + * uncompressed offset within that block
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3268 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3269 +#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3270 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3271 +#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3272 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3273 +#define SQUASHFS_MKINODE(A, B) ((squashfs_inode_t)(((squashfs_inode_t) (A)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3274 + << 16) + (B)))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3275 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3276 +/* Compute 32 bit VFS inode number from squashfs inode number */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3277 +#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3278 + ((b) >> 2) + 1))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3279 +/* XXX */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3280 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3281 +/* Translate between VFS mode and squashfs mode */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3282 +#define SQUASHFS_MODE(a) ((a) & 0xfff)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3283 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3284 +/* fragment and fragment table defines */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3285 +#define SQUASHFS_FRAGMENT_BYTES(A) (A * sizeof(struct squashfs_fragment_entry))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3286 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3287 +#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3288 + SQUASHFS_METADATA_SIZE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3289 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3290 +#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3291 + SQUASHFS_METADATA_SIZE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3292 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3293 +#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3294 + SQUASHFS_METADATA_SIZE - 1) / \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3295 + SQUASHFS_METADATA_SIZE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3296 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3297 +#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3298 + sizeof(long long))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3299 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3300 +/* cached data constants for filesystem */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3301 +#define SQUASHFS_CACHED_BLKS 8
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3302 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3303 +#define SQUASHFS_MAX_FILE_SIZE_LOG 64
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3304 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3305 +#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3306 + (SQUASHFS_MAX_FILE_SIZE_LOG - 2))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3307 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3308 +#define SQUASHFS_MARKER_BYTE 0xff
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3309 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3310 +/* meta index cache */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3311 +#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3312 +#define SQUASHFS_META_ENTRIES 31
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3313 +#define SQUASHFS_META_NUMBER 8
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3314 +#define SQUASHFS_SLOTS 4
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3315 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3316 +struct meta_entry {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3317 + long long data_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3318 + unsigned int index_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3319 + unsigned short offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3320 + unsigned short pad;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3321 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3322 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3323 +struct meta_index {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3324 + unsigned int inode_number;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3325 + unsigned int offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3326 + unsigned short entries;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3327 + unsigned short skip;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3328 + unsigned short locked;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3329 + unsigned short pad;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3330 + struct meta_entry meta_entry[SQUASHFS_META_ENTRIES];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3331 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3332 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3333 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3334 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3335 + * definitions for structures on disk
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3336 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3337 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3338 +typedef long long squashfs_block_t;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3339 +typedef long long squashfs_inode_t;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3340 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3341 +struct squashfs_super_block {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3342 + unsigned int s_magic;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3343 + unsigned int inodes;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3344 + unsigned int bytes_used_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3345 + unsigned int uid_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3346 + unsigned int guid_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3347 + unsigned int inode_table_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3348 + unsigned int directory_table_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3349 + unsigned int s_major:16;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3350 + unsigned int s_minor:16;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3351 + unsigned int block_size_1:16;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3352 + unsigned int block_log:16;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3353 + unsigned int flags:8;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3354 + unsigned int no_uids:8;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3355 + unsigned int no_guids:8;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3356 + unsigned int mkfs_time /* time of filesystem creation */;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3357 + squashfs_inode_t root_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3358 + unsigned int block_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3359 + unsigned int fragments;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3360 + unsigned int fragment_table_start_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3361 + long long bytes_used;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3362 + long long uid_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3363 + long long guid_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3364 + long long inode_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3365 + long long directory_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3366 + long long fragment_table_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3367 + long long unused;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3368 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3369 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3370 +struct squashfs_dir_index {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3371 + unsigned int index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3372 + unsigned int start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3373 + unsigned char size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3374 + unsigned char name[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3375 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3376 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3377 +#define SQUASHFS_BASE_INODE_HEADER \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3378 + unsigned int inode_type:4; \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3379 + unsigned int mode:12; \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3380 + unsigned int uid:8; \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3381 + unsigned int guid:8; \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3382 + unsigned int mtime; \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3383 + unsigned int inode_number;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3384 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3385 +struct squashfs_base_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3386 + SQUASHFS_BASE_INODE_HEADER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3387 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3388 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3389 +struct squashfs_ipc_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3390 + SQUASHFS_BASE_INODE_HEADER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3391 + unsigned int nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3392 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3393 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3394 +struct squashfs_dev_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3395 + SQUASHFS_BASE_INODE_HEADER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3396 + unsigned int nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3397 + unsigned short rdev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3398 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3399 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3400 +struct squashfs_symlink_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3401 + SQUASHFS_BASE_INODE_HEADER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3402 + unsigned int nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3403 + unsigned short symlink_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3404 + char symlink[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3405 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3406 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3407 +struct squashfs_reg_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3408 + SQUASHFS_BASE_INODE_HEADER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3409 + squashfs_block_t start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3410 + unsigned int fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3411 + unsigned int offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3412 + unsigned int file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3413 + unsigned short block_list[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3414 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3415 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3416 +struct squashfs_lreg_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3417 + SQUASHFS_BASE_INODE_HEADER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3418 + unsigned int nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3419 + squashfs_block_t start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3420 + unsigned int fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3421 + unsigned int offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3422 + long long file_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3423 + unsigned short block_list[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3424 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3425 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3426 +struct squashfs_dir_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3427 + SQUASHFS_BASE_INODE_HEADER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3428 + unsigned int nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3429 + unsigned int file_size:19;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3430 + unsigned int offset:13;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3431 + unsigned int start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3432 + unsigned int parent_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3433 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3434 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3435 +struct squashfs_ldir_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3436 + SQUASHFS_BASE_INODE_HEADER;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3437 + unsigned int nlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3438 + unsigned int file_size:27;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3439 + unsigned int offset:13;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3440 + unsigned int start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3441 + unsigned int i_count:16;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3442 + unsigned int parent_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3443 + struct squashfs_dir_index index[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3444 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3445 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3446 +union squashfs_inode_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3447 + struct squashfs_base_inode_header base;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3448 + struct squashfs_dev_inode_header dev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3449 + struct squashfs_symlink_inode_header symlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3450 + struct squashfs_reg_inode_header reg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3451 + struct squashfs_lreg_inode_header lreg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3452 + struct squashfs_dir_inode_header dir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3453 + struct squashfs_ldir_inode_header ldir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3454 + struct squashfs_ipc_inode_header ipc;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3455 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3456 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3457 +struct squashfs_dir_entry {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3458 + unsigned int offset:13;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3459 + unsigned int type:3;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3460 + unsigned int size:8;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3461 + int inode_number:16;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3462 + char name[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3463 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3464 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3465 +struct squashfs_dir_header {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3466 + unsigned int count:8;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3467 + unsigned int start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3468 + unsigned int inode_number;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3469 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3470 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3471 +struct squashfs_fragment_entry {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3472 + long long start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3473 + unsigned int size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3474 + unsigned int unused;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3475 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3476 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3477 +extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3478 +extern int squashfs_uncompress_init(void);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3479 +extern int squashfs_uncompress_exit(void);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3480 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3481 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3482 + * macros to convert each packed bitfield structure from little endian to big
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3483 + * endian and vice versa. These are needed when creating or using a filesystem
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3484 + * on a machine with different byte ordering to the target architecture.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3485 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3486 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3487 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3488 +#define SQUASHFS_SWAP_START \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3489 + int bits;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3490 + int b_pos;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3491 + unsigned long long val;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3492 + unsigned char *s;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3493 + unsigned char *d;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3494 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3495 +#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3496 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3497 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_super_block));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3498 + SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3499 + SQUASHFS_SWAP((s)->inodes, d, 32, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3500 + SQUASHFS_SWAP((s)->bytes_used_2, d, 64, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3501 + SQUASHFS_SWAP((s)->uid_start_2, d, 96, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3502 + SQUASHFS_SWAP((s)->guid_start_2, d, 128, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3503 + SQUASHFS_SWAP((s)->inode_table_start_2, d, 160, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3504 + SQUASHFS_SWAP((s)->directory_table_start_2, d, 192, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3505 + SQUASHFS_SWAP((s)->s_major, d, 224, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3506 + SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3507 + SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3508 + SQUASHFS_SWAP((s)->block_log, d, 272, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3509 + SQUASHFS_SWAP((s)->flags, d, 288, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3510 + SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3511 + SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3512 + SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3513 + SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3514 + SQUASHFS_SWAP((s)->block_size, d, 408, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3515 + SQUASHFS_SWAP((s)->fragments, d, 440, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3516 + SQUASHFS_SWAP((s)->fragment_table_start_2, d, 472, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3517 + SQUASHFS_SWAP((s)->bytes_used, d, 504, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3518 + SQUASHFS_SWAP((s)->uid_start, d, 568, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3519 + SQUASHFS_SWAP((s)->guid_start, d, 632, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3520 + SQUASHFS_SWAP((s)->inode_table_start, d, 696, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3521 + SQUASHFS_SWAP((s)->directory_table_start, d, 760, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3522 + SQUASHFS_SWAP((s)->fragment_table_start, d, 824, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3523 + SQUASHFS_SWAP((s)->unused, d, 888, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3524 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3525 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3526 +#define SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3527 + SQUASHFS_MEMSET(s, d, n);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3528 + SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3529 + SQUASHFS_SWAP((s)->mode, d, 4, 12);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3530 + SQUASHFS_SWAP((s)->uid, d, 16, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3531 + SQUASHFS_SWAP((s)->guid, d, 24, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3532 + SQUASHFS_SWAP((s)->mtime, d, 32, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3533 + SQUASHFS_SWAP((s)->inode_number, d, 64, 32);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3534 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3535 +#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3536 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3537 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3538 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3539 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3540 +#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3541 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3542 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3543 + sizeof(struct squashfs_ipc_inode_header))\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3544 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3545 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3546 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3547 +#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3548 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3549 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3550 + sizeof(struct squashfs_dev_inode_header)); \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3551 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3552 + SQUASHFS_SWAP((s)->rdev, d, 128, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3553 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3554 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3555 +#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3556 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3557 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3558 + sizeof(struct squashfs_symlink_inode_header));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3559 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3560 + SQUASHFS_SWAP((s)->symlink_size, d, 128, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3561 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3562 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3563 +#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3564 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3565 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3566 + sizeof(struct squashfs_reg_inode_header));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3567 + SQUASHFS_SWAP((s)->start_block, d, 96, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3568 + SQUASHFS_SWAP((s)->fragment, d, 160, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3569 + SQUASHFS_SWAP((s)->offset, d, 192, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3570 + SQUASHFS_SWAP((s)->file_size, d, 224, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3571 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3572 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3573 +#define SQUASHFS_SWAP_LREG_INODE_HEADER(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3574 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3575 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3576 + sizeof(struct squashfs_lreg_inode_header));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3577 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3578 + SQUASHFS_SWAP((s)->start_block, d, 128, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3579 + SQUASHFS_SWAP((s)->fragment, d, 192, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3580 + SQUASHFS_SWAP((s)->offset, d, 224, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3581 + SQUASHFS_SWAP((s)->file_size, d, 256, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3582 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3583 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3584 +#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3585 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3586 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3587 + sizeof(struct squashfs_dir_inode_header));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3588 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3589 + SQUASHFS_SWAP((s)->file_size, d, 128, 19);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3590 + SQUASHFS_SWAP((s)->offset, d, 147, 13);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3591 + SQUASHFS_SWAP((s)->start_block, d, 160, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3592 + SQUASHFS_SWAP((s)->parent_inode, d, 192, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3593 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3594 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3595 +#define SQUASHFS_SWAP_LDIR_INODE_HEADER(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3596 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3597 + SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3598 + sizeof(struct squashfs_ldir_inode_header));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3599 + SQUASHFS_SWAP((s)->nlink, d, 96, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3600 + SQUASHFS_SWAP((s)->file_size, d, 128, 27);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3601 + SQUASHFS_SWAP((s)->offset, d, 155, 13);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3602 + SQUASHFS_SWAP((s)->start_block, d, 168, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3603 + SQUASHFS_SWAP((s)->i_count, d, 200, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3604 + SQUASHFS_SWAP((s)->parent_inode, d, 216, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3605 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3606 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3607 +#define SQUASHFS_SWAP_DIR_INDEX(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3608 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3609 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3610 + SQUASHFS_SWAP((s)->index, d, 0, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3611 + SQUASHFS_SWAP((s)->start_block, d, 32, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3612 + SQUASHFS_SWAP((s)->size, d, 64, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3613 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3614 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3615 +#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3616 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3617 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3618 + SQUASHFS_SWAP((s)->count, d, 0, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3619 + SQUASHFS_SWAP((s)->start_block, d, 8, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3620 + SQUASHFS_SWAP((s)->inode_number, d, 40, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3621 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3622 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3623 +#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3624 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3625 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3626 + SQUASHFS_SWAP((s)->offset, d, 0, 13);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3627 + SQUASHFS_SWAP((s)->type, d, 13, 3);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3628 + SQUASHFS_SWAP((s)->size, d, 16, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3629 + SQUASHFS_SWAP((s)->inode_number, d, 24, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3630 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3631 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3632 +#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3633 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3634 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3635 + SQUASHFS_SWAP((s)->start_block, d, 0, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3636 + SQUASHFS_SWAP((s)->size, d, 64, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3637 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3638 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3639 +#define SQUASHFS_SWAP_SHORTS(s, d, n) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3640 + int entry;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3641 + int bit_position;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3642 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3643 + SQUASHFS_MEMSET(s, d, n * 2);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3644 + for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3645 + 16)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3646 + SQUASHFS_SWAP(s[entry], d, bit_position, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3647 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3648 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3649 +#define SQUASHFS_SWAP_INTS(s, d, n) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3650 + int entry;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3651 + int bit_position;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3652 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3653 + SQUASHFS_MEMSET(s, d, n * 4);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3654 + for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3655 + 32)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3656 + SQUASHFS_SWAP(s[entry], d, bit_position, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3657 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3658 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3659 +#define SQUASHFS_SWAP_LONG_LONGS(s, d, n) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3660 + int entry;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3661 + int bit_position;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3662 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3663 + SQUASHFS_MEMSET(s, d, n * 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3664 + for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3665 + 64)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3666 + SQUASHFS_SWAP(s[entry], d, bit_position, 64);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3667 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3668 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3669 +#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3670 + int entry;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3671 + int bit_position;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3672 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3673 + SQUASHFS_MEMSET(s, d, n * bits / 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3674 + for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3675 + bits)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3676 + SQUASHFS_SWAP(s[entry], d, bit_position, bits);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3677 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3678 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3679 +#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3680 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3681 +#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3682 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3683 +struct squashfs_base_inode_header_1 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3684 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3685 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3686 + unsigned int uid:4; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3687 + unsigned int guid:4; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3688 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3689 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3690 +struct squashfs_ipc_inode_header_1 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3691 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3692 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3693 + unsigned int uid:4; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3694 + unsigned int guid:4; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3695 + unsigned int type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3696 + unsigned int offset:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3697 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3698 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3699 +struct squashfs_dev_inode_header_1 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3700 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3701 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3702 + unsigned int uid:4; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3703 + unsigned int guid:4; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3704 + unsigned short rdev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3705 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3706 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3707 +struct squashfs_symlink_inode_header_1 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3708 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3709 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3710 + unsigned int uid:4; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3711 + unsigned int guid:4; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3712 + unsigned short symlink_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3713 + char symlink[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3714 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3715 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3716 +struct squashfs_reg_inode_header_1 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3717 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3718 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3719 + unsigned int uid:4; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3720 + unsigned int guid:4; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3721 + unsigned int mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3722 + unsigned int start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3723 + unsigned int file_size:32;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3724 + unsigned short block_list[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3725 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3726 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3727 +struct squashfs_dir_inode_header_1 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3728 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3729 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3730 + unsigned int uid:4; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3731 + unsigned int guid:4; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3732 + unsigned int file_size:19;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3733 + unsigned int offset:13;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3734 + unsigned int mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3735 + unsigned int start_block:24;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3736 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3737 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3738 +#define SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n) \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3739 + SQUASHFS_MEMSET(s, d, n);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3740 + SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3741 + SQUASHFS_SWAP((s)->mode, d, 4, 12);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3742 + SQUASHFS_SWAP((s)->uid, d, 16, 4);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3743 + SQUASHFS_SWAP((s)->guid, d, 20, 4);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3744 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3745 +#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3746 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3747 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3748 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3749 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3750 +#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3751 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3752 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3753 + sizeof(struct squashfs_ipc_inode_header_1));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3754 + SQUASHFS_SWAP((s)->type, d, 24, 4);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3755 + SQUASHFS_SWAP((s)->offset, d, 28, 4);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3756 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3757 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3758 +#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3759 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3760 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3761 + sizeof(struct squashfs_dev_inode_header_1));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3762 + SQUASHFS_SWAP((s)->rdev, d, 24, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3763 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3764 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3765 +#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3766 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3767 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3768 + sizeof(struct squashfs_symlink_inode_header_1));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3769 + SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3770 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3771 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3772 +#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3773 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3774 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3775 + sizeof(struct squashfs_reg_inode_header_1));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3776 + SQUASHFS_SWAP((s)->mtime, d, 24, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3777 + SQUASHFS_SWAP((s)->start_block, d, 56, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3778 + SQUASHFS_SWAP((s)->file_size, d, 88, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3779 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3780 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3781 +#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3782 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3783 + SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3784 + sizeof(struct squashfs_dir_inode_header_1));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3785 + SQUASHFS_SWAP((s)->file_size, d, 24, 19);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3786 + SQUASHFS_SWAP((s)->offset, d, 43, 13);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3787 + SQUASHFS_SWAP((s)->mtime, d, 56, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3788 + SQUASHFS_SWAP((s)->start_block, d, 88, 24);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3789 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3790 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3791 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3792 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3793 +#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3794 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3795 +struct squashfs_dir_index_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3796 + unsigned int index:27;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3797 + unsigned int start_block:29;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3798 + unsigned char size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3799 + unsigned char name[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3800 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3801 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3802 +struct squashfs_base_inode_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3803 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3804 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3805 + unsigned int uid:8; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3806 + unsigned int guid:8; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3807 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3808 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3809 +struct squashfs_ipc_inode_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3810 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3811 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3812 + unsigned int uid:8; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3813 + unsigned int guid:8; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3814 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3815 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3816 +struct squashfs_dev_inode_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3817 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3818 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3819 + unsigned int uid:8; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3820 + unsigned int guid:8; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3821 + unsigned short rdev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3822 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3823 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3824 +struct squashfs_symlink_inode_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3825 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3826 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3827 + unsigned int uid:8; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3828 + unsigned int guid:8; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3829 + unsigned short symlink_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3830 + char symlink[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3831 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3832 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3833 +struct squashfs_reg_inode_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3834 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3835 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3836 + unsigned int uid:8; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3837 + unsigned int guid:8; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3838 + unsigned int mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3839 + unsigned int start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3840 + unsigned int fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3841 + unsigned int offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3842 + unsigned int file_size:32;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3843 + unsigned short block_list[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3844 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3845 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3846 +struct squashfs_dir_inode_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3847 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3848 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3849 + unsigned int uid:8; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3850 + unsigned int guid:8; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3851 + unsigned int file_size:19;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3852 + unsigned int offset:13;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3853 + unsigned int mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3854 + unsigned int start_block:24;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3855 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3856 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3857 +struct squashfs_ldir_inode_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3858 + unsigned int inode_type:4;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3859 + unsigned int mode:12; /* protection */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3860 + unsigned int uid:8; /* index into uid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3861 + unsigned int guid:8; /* index into guid table */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3862 + unsigned int file_size:27;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3863 + unsigned int offset:13;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3864 + unsigned int mtime;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3865 + unsigned int start_block:24;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3866 + unsigned int i_count:16;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3867 + struct squashfs_dir_index_2 index[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3868 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3869 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3870 +union squashfs_inode_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3871 + struct squashfs_base_inode_header_2 base;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3872 + struct squashfs_dev_inode_header_2 dev;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3873 + struct squashfs_symlink_inode_header_2 symlink;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3874 + struct squashfs_reg_inode_header_2 reg;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3875 + struct squashfs_dir_inode_header_2 dir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3876 + struct squashfs_ldir_inode_header_2 ldir;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3877 + struct squashfs_ipc_inode_header_2 ipc;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3878 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3879 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3880 +struct squashfs_dir_header_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3881 + unsigned int count:8;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3882 + unsigned int start_block:24;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3883 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3884 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3885 +struct squashfs_dir_entry_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3886 + unsigned int offset:13;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3887 + unsigned int type:3;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3888 + unsigned int size:8;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3889 + char name[0];
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3890 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3891 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3892 +struct squashfs_fragment_entry_2 {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3893 + unsigned int start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3894 + unsigned int size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3895 +} __attribute__ ((packed));
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3896 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3897 +#define SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3898 + SQUASHFS_MEMSET(s, d, n);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3899 + SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3900 + SQUASHFS_SWAP((s)->mode, d, 4, 12);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3901 + SQUASHFS_SWAP((s)->uid, d, 16, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3902 + SQUASHFS_SWAP((s)->guid, d, 24, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3903 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3904 +#define SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, n) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3905 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3906 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3907 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3908 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3909 +#define SQUASHFS_SWAP_IPC_INODE_HEADER_2(s, d) \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3910 + SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, sizeof(struct squashfs_ipc_inode_header_2))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3911 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3912 +#define SQUASHFS_SWAP_DEV_INODE_HEADER_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3913 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3914 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3915 + sizeof(struct squashfs_dev_inode_header_2)); \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3916 + SQUASHFS_SWAP((s)->rdev, d, 32, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3917 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3918 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3919 +#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3920 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3921 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3922 + sizeof(struct squashfs_symlink_inode_header_2));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3923 + SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3924 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3925 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3926 +#define SQUASHFS_SWAP_REG_INODE_HEADER_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3927 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3928 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3929 + sizeof(struct squashfs_reg_inode_header_2));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3930 + SQUASHFS_SWAP((s)->mtime, d, 32, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3931 + SQUASHFS_SWAP((s)->start_block, d, 64, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3932 + SQUASHFS_SWAP((s)->fragment, d, 96, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3933 + SQUASHFS_SWAP((s)->offset, d, 128, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3934 + SQUASHFS_SWAP((s)->file_size, d, 160, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3935 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3936 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3937 +#define SQUASHFS_SWAP_DIR_INODE_HEADER_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3938 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3939 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3940 + sizeof(struct squashfs_dir_inode_header_2));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3941 + SQUASHFS_SWAP((s)->file_size, d, 32, 19);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3942 + SQUASHFS_SWAP((s)->offset, d, 51, 13);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3943 + SQUASHFS_SWAP((s)->mtime, d, 64, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3944 + SQUASHFS_SWAP((s)->start_block, d, 96, 24);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3945 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3946 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3947 +#define SQUASHFS_SWAP_LDIR_INODE_HEADER_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3948 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3949 + SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3950 + sizeof(struct squashfs_ldir_inode_header_2));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3951 + SQUASHFS_SWAP((s)->file_size, d, 32, 27);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3952 + SQUASHFS_SWAP((s)->offset, d, 59, 13);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3953 + SQUASHFS_SWAP((s)->mtime, d, 72, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3954 + SQUASHFS_SWAP((s)->start_block, d, 104, 24);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3955 + SQUASHFS_SWAP((s)->i_count, d, 128, 16);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3956 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3957 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3958 +#define SQUASHFS_SWAP_DIR_INDEX_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3959 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3960 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index_2));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3961 + SQUASHFS_SWAP((s)->index, d, 0, 27);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3962 + SQUASHFS_SWAP((s)->start_block, d, 27, 29);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3963 + SQUASHFS_SWAP((s)->size, d, 56, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3964 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3965 +#define SQUASHFS_SWAP_DIR_HEADER_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3966 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3967 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header_2));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3968 + SQUASHFS_SWAP((s)->count, d, 0, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3969 + SQUASHFS_SWAP((s)->start_block, d, 8, 24);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3970 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3971 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3972 +#define SQUASHFS_SWAP_DIR_ENTRY_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3973 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3974 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry_2));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3975 + SQUASHFS_SWAP((s)->offset, d, 0, 13);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3976 + SQUASHFS_SWAP((s)->type, d, 13, 3);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3977 + SQUASHFS_SWAP((s)->size, d, 16, 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3978 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3979 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3980 +#define SQUASHFS_SWAP_FRAGMENT_ENTRY_2(s, d) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3981 + SQUASHFS_SWAP_START\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3982 + SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry_2));\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3983 + SQUASHFS_SWAP((s)->start_block, d, 0, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3984 + SQUASHFS_SWAP((s)->size, d, 32, 32);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3985 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3986 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3987 +#define SQUASHFS_SWAP_FRAGMENT_INDEXES_2(s, d, n) SQUASHFS_SWAP_INTS(s, d, n)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3988 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3989 +/* fragment and fragment table defines */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3990 +#define SQUASHFS_FRAGMENT_BYTES_2(A) (A * sizeof(struct squashfs_fragment_entry_2))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3991 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3992 +#define SQUASHFS_FRAGMENT_INDEX_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) / \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3993 + SQUASHFS_METADATA_SIZE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3994 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3995 +#define SQUASHFS_FRAGMENT_INDEX_OFFSET_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) % \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3996 + SQUASHFS_METADATA_SIZE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3997 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3998 +#define SQUASHFS_FRAGMENT_INDEXES_2(A) ((SQUASHFS_FRAGMENT_BYTES_2(A) + \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
3999 + SQUASHFS_METADATA_SIZE - 1) / \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4000 + SQUASHFS_METADATA_SIZE)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4001 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4002 +#define SQUASHFS_FRAGMENT_INDEX_BYTES_2(A) (SQUASHFS_FRAGMENT_INDEXES_2(A) *\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4003 + sizeof(int))
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4004 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4005 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4006 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4007 +#ifdef __KERNEL__
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4008 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4009 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4010 + * macros used to swap each structure entry, taking into account
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4011 + * bitfields and different bitfield placing conventions on differing
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4012 + * architectures
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4013 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4014 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4015 +#include <asm/byteorder.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4016 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4017 +#ifdef __BIG_ENDIAN
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4018 + /* convert from little endian to big endian */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4019 +#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4020 + tbits, b_pos)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4021 +#else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4022 + /* convert from big endian to little endian */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4023 +#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4024 + tbits, 64 - tbits - b_pos)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4025 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4026 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4027 +#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4028 + b_pos = pos % 8;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4029 + val = 0;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4030 + s = (unsigned char *)p + (pos / 8);\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4031 + d = ((unsigned char *) &val) + 7;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4032 + for(bits = 0; bits < (tbits + b_pos); bits += 8) \
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4033 + *d-- = *s++;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4034 + value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4035 +}
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4036 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4037 +#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4038 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4039 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4040 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4041 diff -Nru linux-2.6.19.ori2/include/linux/squashfs_fs_i.h linux-2.6.19.ori/include/linux/squashfs_fs_i.h
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4042 --- linux-2.6.19.ori2/include/linux/squashfs_fs_i.h 1970-01-01 01:00:00.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4043 +++ linux-2.6.19.ori/include/linux/squashfs_fs_i.h 2006-12-03 00:12:36.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4044 @@ -0,0 +1,45 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4045 +#ifndef SQUASHFS_FS_I
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4046 +#define SQUASHFS_FS_I
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4047 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4048 + * Squashfs
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4049 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4050 + * Copyright (c) 2002, 2003, 2004, 2005, 2006
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4051 + * Phillip Lougher <phillip@lougher.org.uk>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4052 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4053 + * This program is free software; you can redistribute it and/or
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4054 + * modify it under the terms of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4055 + * as published by the Free Software Foundation; either version 2,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4056 + * or (at your option) any later version.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4057 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4058 + * This program is distributed in the hope that it will be useful,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4059 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4060 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4061 + * GNU General Public License for more details.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4062 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4063 + * You should have received a copy of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4064 + * along with this program; if not, write to the Free Software
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4065 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4066 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4067 + * squashfs_fs_i.h
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4068 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4069 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4070 +struct squashfs_inode_info {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4071 + long long start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4072 + unsigned int offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4073 + union {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4074 + struct {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4075 + long long fragment_start_block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4076 + unsigned int fragment_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4077 + unsigned int fragment_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4078 + long long block_list_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4079 + } s1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4080 + struct {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4081 + long long directory_index_start;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4082 + unsigned int directory_index_offset;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4083 + unsigned int directory_index_count;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4084 + unsigned int parent_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4085 + } s2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4086 + } u;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4087 + struct inode vfs_inode;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4088 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4089 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4090 diff -Nru linux-2.6.19.ori2/include/linux/squashfs_fs_sb.h linux-2.6.19.ori/include/linux/squashfs_fs_sb.h
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4091 --- linux-2.6.19.ori2/include/linux/squashfs_fs_sb.h 1970-01-01 01:00:00.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4092 +++ linux-2.6.19.ori/include/linux/squashfs_fs_sb.h 2006-12-03 00:12:36.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4093 @@ -0,0 +1,75 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4094 +#ifndef SQUASHFS_FS_SB
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4095 +#define SQUASHFS_FS_SB
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4096 +/*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4097 + * Squashfs
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4098 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4099 + * Copyright (c) 2002, 2003, 2004, 2005, 2006
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4100 + * Phillip Lougher <phillip@lougher.org.uk>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4101 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4102 + * This program is free software; you can redistribute it and/or
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4103 + * modify it under the terms of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4104 + * as published by the Free Software Foundation; either version 2,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4105 + * or (at your option) any later version.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4106 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4107 + * This program is distributed in the hope that it will be useful,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4108 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4109 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4110 + * GNU General Public License for more details.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4111 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4112 + * You should have received a copy of the GNU General Public License
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4113 + * along with this program; if not, write to the Free Software
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4114 + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4115 + *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4116 + * squashfs_fs_sb.h
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4117 + */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4118 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4119 +#include <linux/squashfs_fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4120 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4121 +struct squashfs_cache {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4122 + long long block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4123 + int length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4124 + long long next_index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4125 + char *data;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4126 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4127 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4128 +struct squashfs_fragment_cache {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4129 + long long block;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4130 + int length;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4131 + unsigned int locked;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4132 + char *data;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4133 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4134 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4135 +struct squashfs_sb_info {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4136 + struct squashfs_super_block sblk;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4137 + int devblksize;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4138 + int devblksize_log2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4139 + int swap;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4140 + struct squashfs_cache *block_cache;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4141 + struct squashfs_fragment_cache *fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4142 + int next_cache;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4143 + int next_fragment;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4144 + int next_meta_index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4145 + unsigned int *uid;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4146 + unsigned int *guid;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4147 + long long *fragment_index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4148 + unsigned int *fragment_index_2;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4149 + unsigned int read_size;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4150 + char *read_data;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4151 + char *read_page;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4152 + struct semaphore read_data_mutex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4153 + struct semaphore read_page_mutex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4154 + struct semaphore block_cache_mutex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4155 + struct semaphore fragment_mutex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4156 + struct semaphore meta_index_mutex;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4157 + wait_queue_head_t waitq;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4158 + wait_queue_head_t fragment_wait_queue;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4159 + struct meta_index *meta_index;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4160 + z_stream stream;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4161 + struct inode *(*iget)(struct super_block *s, squashfs_inode_t
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4162 + inode);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4163 + long long (*read_blocklist)(struct inode *inode, int
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4164 + index, int readahead_blks, char *block_list,
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4165 + unsigned short **block_p, unsigned int *bsize);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4166 + int (*read_fragment_index_table)(struct super_block *s);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4167 +};
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4168 +#endif
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4169 diff -Nru linux-2.6.19.ori2/init/do_mounts_rd.c linux-2.6.19.ori/init/do_mounts_rd.c
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4170 --- linux-2.6.19.ori2/init/do_mounts_rd.c 2006-11-29 22:57:37.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4171 +++ linux-2.6.19.ori/init/do_mounts_rd.c 2006-12-03 00:12:36.000000000 +0100
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4172 @@ -5,6 +5,7 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4173 #include <linux/ext2_fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4174 #include <linux/romfs_fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4175 #include <linux/cramfs_fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4176 +#include <linux/squashfs_fs.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4177 #include <linux/initrd.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4178 #include <linux/string.h>
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4179
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4180 @@ -39,6 +40,7 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4181 * numbers could not be found.
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4182 *
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4183 * We currently check for the following magic numbers:
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4184 + * squashfs
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4185 * minix
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4186 * ext2
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4187 * romfs
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4188 @@ -53,6 +55,7 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4189 struct ext2_super_block *ext2sb;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4190 struct romfs_super_block *romfsb;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4191 struct cramfs_super *cramfsb;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4192 + struct squashfs_super_block *squashfsb;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4193 int nblocks = -1;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4194 unsigned char *buf;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4195
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4196 @@ -64,6 +67,7 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4197 ext2sb = (struct ext2_super_block *) buf;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4198 romfsb = (struct romfs_super_block *) buf;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4199 cramfsb = (struct cramfs_super *) buf;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4200 + squashfsb = (struct squashfs_super_block *) buf;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4201 memset(buf, 0xe5, size);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4202
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4203 /*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4204 @@ -101,6 +105,18 @@
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4205 goto done;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4206 }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4207
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4208 + /* squashfs is at block zero too */
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4209 + if (squashfsb->s_magic == SQUASHFS_MAGIC) {
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4210 + printk(KERN_NOTICE
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4211 + "RAMDISK: squashfs filesystem found at block %d\n",
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4212 + start_block);
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4213 + if (squashfsb->s_major < 3)
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4214 + nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4215 + else
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4216 + nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4217 + goto done;
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4218 + }
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4219 +
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4220 /*
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4221 * Read block 1 to test for minix and ext2 superblock
4dfa721aa532 Add squashfs support. This triggers a compiler bug in gcc 4.1.1 for armv4,
Rob Landley <rob@landley.net>
parents:
diff changeset
4222 */