From 179e4848f2e107c288829b699b7f0a2e7af69c41 Mon Sep 17 00:00:00 2001
From: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Date: Thu, 28 May 2020 20:53:59 +0200
Subject: cleanup: libsqfs: remove hooks from sqfs_block_writer_t

Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
 include/sqfs/block_writer.h | 95 ---------------------------------------------
 lib/sqfs/block_writer.c     | 32 ---------------
 2 files changed, 127 deletions(-)

diff --git a/include/sqfs/block_writer.h b/include/sqfs/block_writer.h
index 06131f5..1fd110a 100644
--- a/include/sqfs/block_writer.h
+++ b/include/sqfs/block_writer.h
@@ -38,86 +38,6 @@
  * This object is not copyable, i.e. @ref sqfs_copy will always return NULL.
  */
 
-/**
- * @struct sqfs_block_hooks_t
- *
- * @brief A set of hooks for tapping into the data writer.
- *
- * This structure can be registered with an @ref sqfs_block_writer_t and
- * contains function pointers that will be called during various stages
- * when writing data to disk.
- *
- * The callbacks can not only be used for accounting but may also write extra
- * data to the output file or make modifications to the blocks before they are
- * writtien.
- *
- * The callbacks can be individually set to NULL to disable them.
- */
-struct sqfs_block_hooks_t {
-	/**
-	 * @brief Set this to the size of the struct.
-	 *
-	 * This is required for future expandabillity while maintaining ABI
-	 * compatibillity. At the current time, the implementation of
-	 * @ref sqfs_block_writer_set_hooks rejects any hook struct where
-	 * this isn't the exact size. If new hooks are added in the future,
-	 * the struct grows and the future implementation can tell by the size
-	 * whether the application uses the new version or the old one.
-	 */
-	size_t size;
-
-	/**
-	 * @brief Gets called before writing a block to disk.
-	 *
-	 * If this is not NULL, it gets called before a block is written to
-	 * disk. If the block has the @ref SQFS_BLK_ALIGN flag set, the
-	 * function is called before padding the file.
-	 *
-	 * The function may write additional data to the file, which is taken
-	 * into account when padding the file.
-	 *
-	 * @param user A user pointer.
-	 * @param flags A pointer to a combination of @ref SQFS_BLK_FLAGS
-	 *              describing the block. The callback can modify the
-	 *              user settable flags.
-	 * @param size The size of the block in bytes.
-	 * @param data A pointer to the raw block data.
-	 * @param file The file that the block will be written to.
-	 */
-	void (*pre_block_write)(void *user, sqfs_u32 *flags, sqfs_u32 size,
-				const sqfs_u8 *data, sqfs_file_t *file);
-
-	/**
-	 * @brief Gets called after writing a block to disk.
-	 *
-	 * If this is not NULL, it gets called after a block is written to
-	 * disk. If the block has the @ref SQFS_BLK_ALIGN flag set, the
-	 * function is called before padding the file.
-	 *
-	 * Modifying the block is rather pointless, but the function may
-	 * write data to the file which is taken into account when padding
-	 * the file.
-	 *
-	 * @param user A user pointer.
-	 * @param flags A combination of @ref SQFS_BLK_FLAGS describing
-	 *              the block.
-	 * @param size The size of the block in bytes.
-	 * @param data A pointer to the raw block data.
-	 * @param file The file that the block was written to.
-	 */
-	void (*post_block_write)(void *user, sqfs_u32 flags, sqfs_u32 size,
-				 const sqfs_u8 *data, sqfs_file_t *file);
-
-	/**
-	 * @brief Gets called before writing a block of padding bytes to disk.
-	 *
-	 * @param user A user pointer.
-	 * @param block The padding bytes that are about to be written.
-	 * @param count The number of padding bytes in the block.
-	 */
-	void (*prepare_padding)(void *user, sqfs_u8 *block, size_t count);
-};
-
 /**
  * @struct sqfs_block_writer_stats_t
  *
@@ -178,21 +98,6 @@ SQFS_API sqfs_block_writer_t *sqfs_block_writer_create(sqfs_file_t *file,
 						       size_t devblksz,
 						       sqfs_u32 flags);
 
-/**
- * @brief Register a set of callbacks with a block writer.
- *
- * @memberof sqfs_block_writer_t
- *
- * @param wr A pointer to a block writer object.
- * @param user_ptr A user data pointer that should be passed to the callbacks.
- * @param hooks A structure holding various callbacks.
- *
- * @return Zero on success, an @ref SQFS_ERROR on failure.
- */
-SQFS_API int sqfs_block_writer_set_hooks(sqfs_block_writer_t *wr,
-					 void *user_ptr,
-					 const sqfs_block_hooks_t *hooks);
-
 /**
  * @brief Submit a data block to a blokc writer.
  *
diff --git a/lib/sqfs/block_writer.c b/lib/sqfs/block_writer.c
index c9d1fc1..b819b58 100644
--- a/lib/sqfs/block_writer.c
+++ b/lib/sqfs/block_writer.c
@@ -36,9 +36,6 @@ struct sqfs_block_writer_t {
 
 	sqfs_block_writer_stats_t stats;
 
-	const sqfs_block_hooks_t *hooks;
-	void *user_ptr;
-
 	sqfs_u64 data_area_start;
 
 	sqfs_u64 start;
@@ -105,9 +102,6 @@ static int align_file(sqfs_block_writer_t *wr)
 	if (padding == 0)
 		return SQFS_ERROR_ALLOC;
 
-	if (wr->hooks != NULL && wr->hooks->prepare_padding != NULL)
-		wr->hooks->prepare_padding(wr->user_ptr, padding, diff);
-
 	ret = wr->file->write_at(wr->file, size, padding, diff);
 	free(padding);
 	if (ret)
@@ -150,17 +144,6 @@ sqfs_block_writer_t *sqfs_block_writer_create(sqfs_file_t *file,
 	return wr;
 }
 
-int sqfs_block_writer_set_hooks(sqfs_block_writer_t *wr, void *user_ptr,
-				const sqfs_block_hooks_t *hooks)
-{
-	if (hooks->size != sizeof(*hooks))
-		return SQFS_ERROR_UNSUPPORTED;
-
-	wr->hooks = hooks;
-	wr->user_ptr = user_ptr;
-	return 0;
-}
-
 int sqfs_block_writer_write(sqfs_block_writer_t *wr, sqfs_u32 size,
 			    sqfs_u32 checksum, sqfs_u32 flags,
 			    const sqfs_u8 *data, sqfs_u64 *location)
@@ -170,16 +153,6 @@ int sqfs_block_writer_write(sqfs_block_writer_t *wr, sqfs_u32 size,
 	sqfs_u32 out;
 	int err;
 
-	if (wr->hooks != NULL && wr->hooks->pre_block_write != NULL) {
-		out = flags;
-		flags &= ~SQFS_BLK_USER_SETTABLE_FLAGS;
-
-		wr->hooks->pre_block_write(wr->user_ptr, &out, size,
-					   data, wr->file);
-
-		flags |= out & SQFS_BLK_USER_SETTABLE_FLAGS;
-	}
-
 	if (flags & SQFS_BLK_FIRST_BLOCK) {
 		wr->start = wr->file->get_size(wr->file);
 		wr->file_start = wr->num_blocks;
@@ -213,11 +186,6 @@ int sqfs_block_writer_write(sqfs_block_writer_t *wr, sqfs_u32 size,
 		wr->stats.bytes_written = offset + size - wr->data_area_start;
 	}
 
-	if (wr->hooks != NULL && wr->hooks->post_block_write != NULL) {
-		wr->hooks->post_block_write(wr->user_ptr, flags, size, data,
-					    wr->file);
-	}
-
 	if (flags & SQFS_BLK_LAST_BLOCK) {
 		if (flags & SQFS_BLK_ALIGN) {
 			err = align_file(wr);
-- 
cgit v1.2.3