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