squashfs.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /*
  2. * Squashfs - a compressed read only filesystem for Linux
  3. *
  4. * Copyright (c) 2002, 2003, 2004, 2005, 2006, 2007, 2008
  5. * Phillip Lougher <phillip@lougher.demon.co.uk>
  6. *
  7. * This program is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU General Public License
  9. * as published by the Free Software Foundation; either version 2,
  10. * or (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  20. *
  21. * squashfs.h
  22. */
  23. #define TRACE(s, args...) pr_debug("SQUASHFS: "s, ## args)
  24. #define ERROR(s, args...) pr_err("SQUASHFS error: "s, ## args)
  25. #define WARNING(s, args...) pr_warning("SQUASHFS: "s, ## args)
  26. static inline struct squashfs_inode_info *squashfs_i(struct inode *inode)
  27. {
  28. return list_entry(inode, struct squashfs_inode_info, vfs_inode);
  29. }
  30. /* block.c */
  31. extern int squashfs_read_data(struct super_block *, void **, u64, int, u64 *,
  32. int, int);
  33. /* cache.c */
  34. extern struct squashfs_cache *squashfs_cache_init(char *, int, int);
  35. extern void squashfs_cache_delete(struct squashfs_cache *);
  36. extern struct squashfs_cache_entry *squashfs_cache_get(struct super_block *,
  37. struct squashfs_cache *, u64, int);
  38. extern void squashfs_cache_put(struct squashfs_cache_entry *);
  39. extern int squashfs_copy_data(void *, struct squashfs_cache_entry *, int, int);
  40. extern int squashfs_read_metadata(struct super_block *, void *, u64 *,
  41. int *, int);
  42. extern struct squashfs_cache_entry *squashfs_get_fragment(struct super_block *,
  43. u64, int);
  44. extern struct squashfs_cache_entry *squashfs_get_datablock(struct super_block *,
  45. u64, int);
  46. extern int squashfs_read_table(struct super_block *, void *, u64, int);
  47. /* export.c */
  48. extern __le64 *squashfs_read_inode_lookup_table(struct super_block *, u64,
  49. unsigned int);
  50. /* fragment.c */
  51. extern int squashfs_frag_lookup(struct super_block *, unsigned int, u64 *);
  52. extern __le64 *squashfs_read_fragment_index_table(struct super_block *,
  53. u64, unsigned int);
  54. /* id.c */
  55. extern int squashfs_get_id(struct super_block *, unsigned int, unsigned int *);
  56. extern __le64 *squashfs_read_id_index_table(struct super_block *, u64,
  57. unsigned short);
  58. /* inode.c */
  59. extern struct inode *squashfs_iget(struct super_block *, long long,
  60. unsigned int);
  61. extern int squashfs_read_inode(struct inode *, long long);
  62. /*
  63. * Inodes and files operations
  64. */
  65. /* dir.c */
  66. extern const struct file_operations squashfs_dir_ops;
  67. /* export.c */
  68. extern const struct export_operations squashfs_export_ops;
  69. /* file.c */
  70. extern const struct address_space_operations squashfs_aops;
  71. /* namei.c */
  72. extern const struct inode_operations squashfs_dir_inode_ops;
  73. /* symlink.c */
  74. extern const struct address_space_operations squashfs_symlink_aops;