squashfs.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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@squashfs.org.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_warn("SQUASHFS: "s, ## args)
  26. /* block.c */
  27. extern int squashfs_read_data(struct super_block *, u64, int, u64 *,
  28. struct squashfs_page_actor *);
  29. /* cache.c */
  30. extern struct squashfs_cache *squashfs_cache_init(char *, int, int);
  31. extern void squashfs_cache_delete(struct squashfs_cache *);
  32. extern struct squashfs_cache_entry *squashfs_cache_get(struct super_block *,
  33. struct squashfs_cache *, u64, int);
  34. extern void squashfs_cache_put(struct squashfs_cache_entry *);
  35. extern int squashfs_copy_data(void *, struct squashfs_cache_entry *, int, int);
  36. extern int squashfs_read_metadata(struct super_block *, void *, u64 *,
  37. int *, int);
  38. extern struct squashfs_cache_entry *squashfs_get_fragment(struct super_block *,
  39. u64, int);
  40. extern struct squashfs_cache_entry *squashfs_get_datablock(struct super_block *,
  41. u64, int);
  42. extern void *squashfs_read_table(struct super_block *, u64, int);
  43. /* decompressor.c */
  44. extern const struct squashfs_decompressor *squashfs_lookup_decompressor(int);
  45. extern void *squashfs_decompressor_setup(struct super_block *, unsigned short);
  46. /* decompressor_xxx.c */
  47. extern void *squashfs_decompressor_create(struct squashfs_sb_info *, void *);
  48. extern void squashfs_decompressor_destroy(struct squashfs_sb_info *);
  49. extern int squashfs_decompress(struct squashfs_sb_info *, struct buffer_head **,
  50. int, int, int, struct squashfs_page_actor *);
  51. extern int squashfs_max_decompressors(void);
  52. /* export.c */
  53. extern __le64 *squashfs_read_inode_lookup_table(struct super_block *, u64, u64,
  54. unsigned int);
  55. /* fragment.c */
  56. extern int squashfs_frag_lookup(struct super_block *, unsigned int, u64 *);
  57. extern __le64 *squashfs_read_fragment_index_table(struct super_block *,
  58. u64, u64, unsigned int);
  59. /* file.c */
  60. void squashfs_fill_page(struct page *, struct squashfs_cache_entry *, int, int);
  61. void squashfs_copy_cache(struct page *, struct squashfs_cache_entry *, int,
  62. int);
  63. /* file_xxx.c */
  64. extern int squashfs_readpage_block(struct page *, u64, int, int);
  65. /* id.c */
  66. extern int squashfs_get_id(struct super_block *, unsigned int, unsigned int *);
  67. extern __le64 *squashfs_read_id_index_table(struct super_block *, u64, u64,
  68. unsigned short);
  69. /* inode.c */
  70. extern struct inode *squashfs_iget(struct super_block *, long long,
  71. unsigned int);
  72. extern int squashfs_read_inode(struct inode *, long long);
  73. /* xattr.c */
  74. extern ssize_t squashfs_listxattr(struct dentry *, char *, size_t);
  75. /*
  76. * Inodes, files, decompressor and xattr operations
  77. */
  78. /* dir.c */
  79. extern const struct file_operations squashfs_dir_ops;
  80. /* export.c */
  81. extern const struct export_operations squashfs_export_ops;
  82. /* file.c */
  83. extern const struct address_space_operations squashfs_aops;
  84. /* inode.c */
  85. extern const struct inode_operations squashfs_inode_ops;
  86. /* namei.c */
  87. extern const struct inode_operations squashfs_dir_inode_ops;
  88. /* symlink.c */
  89. extern const struct address_space_operations squashfs_symlink_aops;
  90. extern const struct inode_operations squashfs_symlink_inode_ops;
  91. /* xattr.c */
  92. extern const struct xattr_handler *squashfs_xattr_handlers[];