~ubuntu-branches/ubuntu/maverick/u-boot-omap3/maverick

« back to all changes in this revision

Viewing changes to fs/jffs2/jffs2_private.h

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-03-22 15:06:23 UTC
  • Revision ID: james.westby@ubuntu.com-20100322150623-i21g8rgiyl5dohag
Tags: upstream-2010.3git20100315
ImportĀ upstreamĀ versionĀ 2010.3git20100315

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef jffs2_private_h
 
2
#define jffs2_private_h
 
3
 
 
4
#include <jffs2/jffs2.h>
 
5
 
 
6
 
 
7
struct b_node {
 
8
        u32 offset;
 
9
        struct b_node *next;
 
10
        enum { CRC_UNKNOWN = 0, CRC_OK, CRC_BAD } datacrc;
 
11
};
 
12
 
 
13
struct b_list {
 
14
        struct b_node *listTail;
 
15
        struct b_node *listHead;
 
16
#ifdef CONFIG_SYS_JFFS2_SORT_FRAGMENTS
 
17
        struct b_node *listLast;
 
18
        int (*listCompare)(struct b_node *new, struct b_node *node);
 
19
        u32 listLoops;
 
20
#endif
 
21
        u32 listCount;
 
22
        struct mem_block *listMemBase;
 
23
};
 
24
 
 
25
struct b_lists {
 
26
        struct b_list dir;
 
27
        struct b_list frag;
 
28
        void *readbuf;
 
29
};
 
30
 
 
31
struct b_compr_info {
 
32
        u32 num_frags;
 
33
        u32 compr_sum;
 
34
        u32 decompr_sum;
 
35
};
 
36
 
 
37
struct b_jffs2_info {
 
38
        struct b_compr_info compr_info[JFFS2_NUM_COMPR];
 
39
};
 
40
 
 
41
static inline int
 
42
hdr_crc(struct jffs2_unknown_node *node)
 
43
{
 
44
#if 1
 
45
        u32 crc = crc32_no_comp(0, (unsigned char *)node, sizeof(struct jffs2_unknown_node) - 4);
 
46
#else
 
47
        /* what's the semantics of this? why is this here? */
 
48
        u32 crc = crc32_no_comp(~0, (unsigned char *)node, sizeof(struct jffs2_unknown_node) - 4);
 
49
 
 
50
        crc ^= ~0;
 
51
#endif
 
52
        if (node->hdr_crc != crc) {
 
53
                return 0;
 
54
        } else {
 
55
                return 1;
 
56
        }
 
57
}
 
58
 
 
59
static inline int
 
60
dirent_crc(struct jffs2_raw_dirent *node)
 
61
{
 
62
        if (node->node_crc != crc32_no_comp(0, (unsigned char *)node, sizeof(struct jffs2_raw_dirent) - 8)) {
 
63
                return 0;
 
64
        } else {
 
65
                return 1;
 
66
        }
 
67
}
 
68
 
 
69
static inline int
 
70
dirent_name_crc(struct jffs2_raw_dirent *node)
 
71
{
 
72
        if (node->name_crc != crc32_no_comp(0, (unsigned char *)&(node->name), node->nsize)) {
 
73
                return 0;
 
74
        } else {
 
75
                return 1;
 
76
        }
 
77
}
 
78
 
 
79
static inline int
 
80
inode_crc(struct jffs2_raw_inode *node)
 
81
{
 
82
        if (node->node_crc != crc32_no_comp(0, (unsigned char *)node, sizeof(struct jffs2_raw_inode) - 8)) {
 
83
                return 0;
 
84
        } else {
 
85
                return 1;
 
86
        }
 
87
}
 
88
 
 
89
static inline int
 
90
data_crc(struct jffs2_raw_inode *node)
 
91
{
 
92
        if (node->data_crc != crc32_no_comp(0, (unsigned char *)
 
93
                                            ((int) &node->node_crc + sizeof (node->node_crc)),
 
94
                                             node->csize)) {
 
95
                return 0;
 
96
        } else {
 
97
                return 1;
 
98
        }
 
99
}
 
100
 
 
101
#endif /* jffs2_private.h */