summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/common.h90
-rw-r--r--include/compress_cli.h42
-rw-r--r--include/simple_writer.h87
3 files changed, 131 insertions, 88 deletions
diff --git a/include/common.h b/include/common.h
index ea27edc..b0c7abb 100644
--- a/include/common.h
+++ b/include/common.h
@@ -9,25 +9,17 @@
#include "config.h"
-#include "sqfs/xattr_writer.h"
#include "sqfs/xattr_reader.h"
-#include "sqfs/compressor.h"
-#include "sqfs/id_table.h"
#include "sqfs/inode.h"
#include "sqfs/table.h"
-#include "sqfs/error.h"
-#include "sqfs/meta_writer.h"
#include "sqfs/data_reader.h"
-#include "sqfs/block_processor.h"
-#include "sqfs/block_writer.h"
-#include "sqfs/frag_table.h"
-#include "sqfs/dir_writer.h"
#include "sqfs/dir_reader.h"
#include "sqfs/block.h"
#include "sqfs/xattr.h"
#include "sqfs/dir.h"
-#include "sqfs/io.h"
+#include "simple_writer.h"
+#include "compress_cli.h"
#include "fstream.h"
#include "compat.h"
#include "fstree.h"
@@ -35,39 +27,6 @@
#include <stddef.h>
-typedef struct {
- const char *filename;
- sqfs_block_writer_t *blkwr;
- sqfs_frag_table_t *fragtbl;
- sqfs_block_processor_t *data;
- sqfs_dir_writer_t *dirwr;
- sqfs_meta_writer_t *dm;
- sqfs_meta_writer_t *im;
- sqfs_compressor_t *cmp;
- sqfs_id_table_t *idtbl;
- sqfs_file_t *outfile;
- sqfs_super_t super;
- fstree_t fs;
- sqfs_xattr_writer_t *xwr;
-} sqfs_writer_t;
-
-typedef struct {
- const char *filename;
- char *fs_defaults;
- char *comp_extra;
- size_t block_size;
- size_t devblksize;
- size_t max_backlog;
- size_t num_jobs;
-
- int outmode;
- SQFS_COMPRESSOR comp_id;
-
- bool exportable;
- bool no_xattr;
- bool quiet;
-} sqfs_writer_cfg_t;
-
typedef struct sqfs_hard_link_t {
struct sqfs_hard_link_t *next;
sqfs_u32 inode_number;
@@ -77,35 +36,6 @@ typedef struct sqfs_hard_link_t {
#define container_of(ptr, type, member) \
((type *)((char *)ptr - offsetof(type, member)))
-/*
- High level helper function to serialize an entire file system tree to
- a squashfs inode table and directory table.
-
- The data is written to the given file descriptor and the super block is
- update accordingly (inode and directory table start and total size).
-
- The function internally creates two meta data writers and uses
- meta_writer_write_inode to serialize the inode table of the fstree.
-
- Returns 0 on success. Prints error messages to stderr on failure.
- */
-int sqfs_serialize_fstree(const char *filename, sqfs_writer_t *wr);
-
-/* Print out fancy statistics for squashfs packing tools */
-void sqfs_print_statistics(const sqfs_super_t *super,
- const sqfs_block_processor_t *blk,
- const sqfs_block_writer_t *wr);
-
-void compressor_print_available(void);
-
-SQFS_COMPRESSOR compressor_get_default(void);
-
-int compressor_cfg_init_options(sqfs_compressor_config_t *cfg,
- SQFS_COMPRESSOR id,
- size_t block_size, char *options);
-
-void compressor_print_help(SQFS_COMPRESSOR id);
-
int inode_stat(const sqfs_tree_node_t *node, struct stat *sb);
char *sqfs_tree_node_get_path(const sqfs_tree_node_t *node);
@@ -118,14 +48,6 @@ int write_data_from_file(const char *filename, sqfs_block_processor_t *data,
sqfs_inode_generic_t **inode,
sqfs_file_t *file, int flags);
-void sqfs_writer_cfg_init(sqfs_writer_cfg_t *cfg);
-
-int sqfs_writer_init(sqfs_writer_t *sqfs, const sqfs_writer_cfg_t *wrcfg);
-
-int sqfs_writer_finish(sqfs_writer_t *sqfs, const sqfs_writer_cfg_t *cfg);
-
-void sqfs_writer_cleanup(sqfs_writer_t *sqfs, int status);
-
void sqfs_perror(const char *file, const char *action, int error_code);
int sqfs_tree_find_hard_links(const sqfs_tree_node_t *root,
@@ -143,14 +65,6 @@ int mkdir_p(const char *path);
void print_version(const char *progname);
/*
- Create an liblzo2 based LZO compressor.
-
- XXX: This must be in libcommon instead of libsquashfs for legal reasons.
- */
-int lzo_compressor_create(const sqfs_compressor_config_t *cfg,
- sqfs_compressor_t **out);
-
-/*
Parse a number optionally followed by a KMG suffix (case insensitive). Prints
an error message to stderr and returns -1 on failure, 0 on success.
diff --git a/include/compress_cli.h b/include/compress_cli.h
new file mode 100644
index 0000000..1ac7972
--- /dev/null
+++ b/include/compress_cli.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: GPL-3.0-or-later */
+/*
+ * compress_cli.h
+ *
+ * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
+ */
+#ifndef COMPRESS_CLI_H
+#define COMPRESS_CLI_H
+
+#include "sqfs/compressor.h"
+#include "sqfs/super.h"
+#include "sqfs/block.h"
+#include "sqfs/error.h"
+#include "sqfs/io.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void compressor_print_available(void);
+
+SQFS_COMPRESSOR compressor_get_default(void);
+
+int compressor_cfg_init_options(sqfs_compressor_config_t *cfg,
+ SQFS_COMPRESSOR id,
+ size_t block_size, char *options);
+
+void compressor_print_help(SQFS_COMPRESSOR id);
+
+/*
+ Create an liblzo2 based LZO compressor.
+
+ XXX: This must be in libcommon instead of libsquashfs for legal reasons.
+ */
+int lzo_compressor_create(const sqfs_compressor_config_t *cfg,
+ sqfs_compressor_t **out);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* COMPRESS_CLI_H */
diff --git a/include/simple_writer.h b/include/simple_writer.h
new file mode 100644
index 0000000..1a3302b
--- /dev/null
+++ b/include/simple_writer.h
@@ -0,0 +1,87 @@
+/* SPDX-License-Identifier: GPL-3.0-or-later */
+/*
+ * simple_writer.h
+ *
+ * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
+ */
+#ifndef SIMPLE_WRITER_H
+#define SIMPLE_WRITER_H
+
+#include "config.h"
+
+#include "sqfs/block_processor.h"
+#include "sqfs/block_writer.h"
+#include "sqfs/xattr_writer.h"
+#include "sqfs/meta_writer.h"
+#include "sqfs/frag_table.h"
+#include "sqfs/dir_writer.h"
+#include "sqfs/compressor.h"
+#include "sqfs/id_table.h"
+#include "sqfs/error.h"
+#include "sqfs/io.h"
+
+#include "fstree.h"
+
+typedef struct {
+ const char *filename;
+ sqfs_block_writer_t *blkwr;
+ sqfs_frag_table_t *fragtbl;
+ sqfs_block_processor_t *data;
+ sqfs_dir_writer_t *dirwr;
+ sqfs_meta_writer_t *dm;
+ sqfs_meta_writer_t *im;
+ sqfs_compressor_t *cmp;
+ sqfs_id_table_t *idtbl;
+ sqfs_file_t *outfile;
+ sqfs_super_t super;
+ fstree_t fs;
+ sqfs_xattr_writer_t *xwr;
+} sqfs_writer_t;
+
+typedef struct {
+ const char *filename;
+ char *fs_defaults;
+ char *comp_extra;
+ size_t block_size;
+ size_t devblksize;
+ size_t max_backlog;
+ size_t num_jobs;
+
+ int outmode;
+ SQFS_COMPRESSOR comp_id;
+
+ bool exportable;
+ bool no_xattr;
+ bool quiet;
+} sqfs_writer_cfg_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void sqfs_writer_cfg_init(sqfs_writer_cfg_t *cfg);
+
+int sqfs_writer_init(sqfs_writer_t *sqfs, const sqfs_writer_cfg_t *wrcfg);
+
+int sqfs_writer_finish(sqfs_writer_t *sqfs, const sqfs_writer_cfg_t *cfg);
+
+void sqfs_writer_cleanup(sqfs_writer_t *sqfs, int status);
+
+/*
+ High level helper function to serialize an entire file system tree to
+ a squashfs inode table and directory table. The super block is update
+ accordingly.
+
+ The function internally creates two meta data writers and uses
+ meta_writer_write_inode to serialize the inode table of the fstree.
+
+ Returns 0 on success. Prints error messages to stderr on failure.
+ The filename is used to prefix error messages.
+ */
+int sqfs_serialize_fstree(const char *filename, sqfs_writer_t *wr);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SIMPLE_WRITER_H */