OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [LINUX_2_4_26_OR32/] [linux/] [linux-2.4/] [include/] [linux/] [jffs2_fs_i.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* $Id: jffs2_fs_i.h,v 1.1.1.1 2004-04-15 02:36:12 phoenix Exp $ */
2
 
3
#ifndef _JFFS2_FS_I
4
#define _JFFS2_FS_I
5
 
6
/* Include the pipe_inode_info at the beginning so that we can still
7
   use the storage space in the inode when we have a pipe inode.
8
   This sucks.
9
*/
10
 
11
#undef THISSUCKS /* Only for 2.2 */
12
#ifdef THISSUCKS
13
#include <linux/pipe_fs_i.h>
14
#endif
15
 
16
struct jffs2_inode_info {
17
#ifdef THISSUCKS
18
        struct pipe_inode_info pipecrap;
19
#endif
20
        /* We need an internal semaphore similar to inode->i_sem.
21
           Unfortunately, we can't used the existing one, because
22
           either the GC would deadlock, or we'd have to release it
23
           before letting GC proceed. Or we'd have to put ugliness
24
           into the GC code so it didn't attempt to obtain the i_sem
25
           for the inode(s) which are already locked */
26
        struct semaphore sem;
27
 
28
        /* The highest (datanode) version number used for this ino */
29
        __u32 highest_version;
30
 
31
        /* List of data fragments which make up the file */
32
        struct jffs2_node_frag *fraglist;
33
 
34
        /* There may be one datanode which isn't referenced by any of the
35
           above fragments, if it contains a metadata update but no actual
36
           data - or if this is a directory inode */
37
        /* This also holds the _only_ dnode for symlinks/device nodes,
38
           etc. */
39
        struct jffs2_full_dnode *metadata;
40
 
41
        /* Directory entries */
42
        struct jffs2_full_dirent *dents;
43
 
44
        /* Some stuff we just have to keep in-core at all times, for each inode. */
45
        struct jffs2_inode_cache *inocache;
46
 
47
        /* Keep a pointer to the last physical node in the list. We don't
48
           use the doubly-linked lists because we don't want to increase
49
           the memory usage that much. This is simpler */
50
        //      struct jffs2_raw_node_ref *lastnode;
51
        __u16 flags;
52
        __u8 usercompr;
53
};
54
 
55
#ifdef JFFS2_OUT_OF_KERNEL
56
#define JFFS2_INODE_INFO(i) ((struct jffs2_inode_info *) &(i)->u)
57
#else
58
#define JFFS2_INODE_INFO(i) (&i->u.jffs2_i)
59
#endif
60
 
61
#endif /* _JFFS2_FS_I */
62
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.