jffs2_fs_i.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* $Id: jffs2_fs_i.h,v 1.17 2004/11/11 23:51:27 dwmw2 Exp $ */
  2. #ifndef _JFFS2_FS_I
  3. #define _JFFS2_FS_I
  4. #include <linux/version.h>
  5. #include <linux/rbtree.h>
  6. #include <asm/semaphore.h>
  7. struct jffs2_inode_info {
  8. /* We need an internal semaphore similar to inode->i_sem.
  9.    Unfortunately, we can't used the existing one, because
  10.    either the GC would deadlock, or we'd have to release it
  11.    before letting GC proceed. Or we'd have to put ugliness
  12.    into the GC code so it didn't attempt to obtain the i_sem
  13.    for the inode(s) which are already locked */
  14. struct semaphore sem;
  15. /* The highest (datanode) version number used for this ino */
  16. uint32_t highest_version;
  17. /* List of data fragments which make up the file */
  18. struct rb_root fragtree;
  19. /* There may be one datanode which isn't referenced by any of the
  20.    above fragments, if it contains a metadata update but no actual
  21.    data - or if this is a directory inode */
  22. /* This also holds the _only_ dnode for symlinks/device nodes, 
  23.    etc. */
  24. struct jffs2_full_dnode *metadata;
  25. /* Directory entries */
  26. struct jffs2_full_dirent *dents;
  27. /* Some stuff we just have to keep in-core at all times, for each inode. */
  28. struct jffs2_inode_cache *inocache;
  29. uint16_t flags;
  30. uint8_t usercompr;
  31. #if !defined (__ECOS)
  32. #if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,2)
  33. struct inode vfs_inode;
  34. #endif
  35. #endif
  36. };
  37. #endif /* _JFFS2_FS_I */