34#if defined(_WIN32) || defined(__CYGWIN__)
35 #if defined(SQFS_STATIC)
37 #elif defined(SQFS_BUILDING_DLL)
38 #if defined(__GNUC__) || defined(__clang__)
39 #define SQFS_API __attribute__ ((dllexport))
41 #define SQFS_API __declspec(dllexport)
44 #if defined(__GNUC__) || defined(__clang__)
45 #define SQFS_API __attribute__ ((dllimport))
47 #define SQFS_API __declspec(dllimport)
53 #if defined(__GNUC__) || defined(__clang__)
54 #define SQFS_API __attribute__ ((visibility ("default")))
55 #define SQFS_INTERNAL __attribute__ ((visibility ("hidden")))
63 #define SQFS_INLINE __forceinline
65 #define SQFS_INLINE __inline__ __attribute__((always_inline))
68typedef uint8_t sqfs_u8;
69typedef uint16_t sqfs_u16;
70typedef uint32_t sqfs_u32;
71typedef uint64_t sqfs_u64;
73typedef int8_t sqfs_s8;
74typedef int16_t sqfs_s16;
75typedef int32_t sqfs_s32;
76typedef int64_t sqfs_s64;
90typedef struct sqfs_block_hooks_t sqfs_block_hooks_t;
94typedef struct sqfs_block_writer_stats_t sqfs_block_writer_stats_t;
SQFS_API void sqfs_free(void *ptr)
Free a block of memory created by the squashfs library.
Encapsulates a description for an sqfs_block_processor_t.
Used to store runtime statistics about the sqfs_block_processor_t.
Abstracts generating of file data and fragment blocks.
Abstracts writing and deduplicating of data and fragment blocks.
Configuration parameters for instantiating a compressor backend.
Encapsultes a compressor with a simple interface to compress or extract chunks of data.
Abstracts access to data blocks stored in a SquashFS image.
On-disk data structure of a directory entry. Many of these follow a single sqfs_dir_header_t.
On-disk data structure of a directory index. A series of those can follow an sqfs_inode_dir_ext_t.
Abstracts reading of directory entries.
Abstracts generating of directory entries.
Abstracts file I/O to make it easy to embedd SquashFS.
Abstracts reading, writing and management of the fragment table.
Data structure that makes up the fragment table entries.
A simple data structure that encapsulates ID to index mapping for user and group IDs.
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_BDEV or SQFS_INODE_EXT_CDEV.
Follows a sqfs_inode_t if type is SQFS_INODE_BDEV or SQFS_INODE_CDEV.
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_DIR.
Follows a sqfs_inode_t if type is SQFS_INODE_DIR.
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_FILE.
Follows a sqfs_inode_t if type is SQFS_INODE_FILE.
A generic inode structure that combines all others and provides additional information.
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_FIFO or SQFS_INODE_EXT_SOCKET.
Follows a sqfs_inode_t if type is SQFS_INODE_FIFO or SQFS_INODE_SOCKET.
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_SLINK.
Follows a sqfs_inode_t if type is SQFS_INODE_SLINK.
Base interface for all libsquashfs in-memory data structures.
static SQFS_INLINE void * sqfs_copy(const void *obj)
Create a deep copy of an object if possible.
static SQFS_INLINE void sqfs_destroy(void *obj)
Destroy an object and free all its memory.
Encapsulates state for simple directory reading.
The SquashFS super block, located at the beginning of the file system to describe the layout of the f...
Encapsulates a node in the filesystem tree read by sqfs_dir_reader_get_full_hierarchy.
On-disk data structure that holds a single xattr key.
On-disk data structure that describes a set of key-value pairs.
On-disk data structure that the super block points to.
Abstracts read access to extended attributes in a SquashFS filesystem.
On-disk data structure that holds a single xattr value.
Abstracts writing of extended attributes to a SquashFS filesystem.