34#ifndef SQSH_FILE_PRIVATE_H
35#define SQSH_FILE_PRIVATE_H
42#include "sqsh_reader_private.h"
137 uint32_t block_index;
179 struct SqshReader reader;
210#define SQSH_INODE_REF_NULL UINT64_MAX
218 const struct SqshDataInode *inode,
222 uint64_t (*
size)(
const struct SqshDataInode *inode);
234 const char *(*symlink_target_path)(
const struct SqshDataInode *inode);
237 uint32_t (*
device_id)(
const struct SqshDataInode *inode);
254 uint64_t parent_inode_ref;
281 struct SqshFile *context, uint64_t parent_inode_ref);
#define SQSH_NO_EXPORT
Do not export symbol.
#define SQSH_NO_UNUSED
Warn if return value is unused.
size_t sqsh_index_t
typedef used for indexing
SqshFileType
enum that represents the file type.
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_directory_impl
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_device_ext_impl
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_symlink_ext_impl
SQSH_NO_EXPORT uint32_t sqsh__file_inode_null_device_id(const struct SqshDataInode *inode)
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_ipc_impl
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_symlink_impl
SQSH_NO_EXPORT int sqsh__file_cleanup(struct SqshFile *context)
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_directory_ext_impl
SQSH_NO_EXPORT SQSH_NO_UNUSED int sqsh__file_iterator_init(struct SqshFileIterator *iterator, const struct SqshFile *file)
SQSH_NO_EXPORT int sqsh__fragment_view_init(struct SqshFragmentView *view, const struct SqshFile *file)
SQSH_NO_EXPORT int sqsh__file_reader_cleanup(struct SqshFileReader *reader)
SQSH_NO_EXPORT uint32_t sqsh__file_inode_null_fragment_block_offset(const struct SqshDataInode *inode)
SQSH_NO_EXPORT int sqsh__fragment_view_cleanup(struct SqshFragmentView *view)
SQSH_NO_EXPORT size_t sqsh__fragment_view_size(const struct SqshFragmentView *view)
SQSH_NO_EXPORT uint32_t sqsh__file_inode_null_symlink_target_size(const struct SqshDataInode *inode)
SQSH_NO_EXPORT uint64_t sqsh__file_inode_null_blocks_start(const struct SqshDataInode *inode)
SQSH_NO_EXPORT uint32_t sqsh__file_inode_null_xattr_index(const struct SqshDataInode *inode)
SQSH_NO_EXPORT uint16_t sqsh__file_inode_null_directory_block_offset(const struct SqshDataInode *inode)
SQSH_NO_EXPORT uint32_t sqsh__file_inode_null_fragment_block_index(const struct SqshDataInode *inode)
SQSH_NO_EXPORT uint32_t sqsh__file_inode_null_directory_parent_inode(const struct SqshDataInode *inode)
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_device_impl
SQSH_NO_EXPORT const uint8_t * sqsh__fragment_view_data(const struct SqshFragmentView *view)
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_ipc_ext_impl
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_file_ext_impl
SQSH_NO_EXPORT const struct SqshInodeImpl sqsh__inode_file_impl
SQSH_NO_EXPORT uint32_t sqsh__file_inode_null_block_size_info(const struct SqshDataInode *inode, sqsh_index_t index)
SQSH_NO_EXPORT const char * sqsh__file_inode_null_symlink_target_path(const struct SqshDataInode *inode)
SQSH_NO_EXPORT SQSH_NO_UNUSED int sqsh__file_reader_init(struct SqshFileReader *reader, const struct SqshFile *file)
SQSH_NO_EXPORT uint32_t sqsh__file_inode_null_directory_block_start(const struct SqshDataInode *inode)
SQSH_NO_EXPORT SQSH_NO_UNUSED int sqsh__file_init(struct SqshFile *context, struct SqshArchive *sqsh, uint64_t inode_ref)
SQSH_NO_EXPORT int sqsh__file_iterator_cleanup(struct SqshFileIterator *iterator)
An iterator over the contents of a file.
A reader over the contents of a file.
SQSH_NO_EXPORT uint64_t sqsh__file_parent_inode_ref(struct SqshFile *context, int *err)
returns the parent inode reference if possible.
SQSH_NO_EXPORT void sqsh__file_set_parent_inode_ref(struct SqshFile *context, uint64_t parent_inode_ref)
sets the parent inode reference.
The fragment table of an archive.
A view over the contents of a fragment.
The file type implementation.
uint32_t(* directory_block_start)(const struct SqshDataInode *inode)
uint32_t(* symlink_target_size)(const struct SqshDataInode *inode)
uint16_t(* directory_block_offset)(const struct SqshDataInode *inode)
uint64_t(* size)(const struct SqshDataInode *inode)
uint32_t(* hard_link_count)(const struct SqshDataInode *inode)
uint32_t(* fragment_block_offset)(const struct SqshDataInode *inode)
uint32_t(* directory_parent_inode)(const struct SqshDataInode *inode)
uint32_t(* block_size_info)(const struct SqshDataInode *inode, sqsh_index_t index)
uint64_t(* blocks_start)(const struct SqshDataInode *inode)
uint32_t(* fragment_block_index)(const struct SqshDataInode *inode)
uint32_t(* device_id)(const struct SqshDataInode *inode)
uint32_t(* xattr_index)(const struct SqshDataInode *inode)
size_t(* payload_size)(const struct SqshDataInode *inode, const struct SqshArchive *archive)
A reader over a mapping of data.