squashfs.h 4.3 KB

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