diff options
| author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-09-25 10:11:19 +0200 | 
|---|---|---|
| committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-09-25 10:12:40 +0200 | 
| commit | f64986ac1d95ffb2604cfef0efa8e7d2e0b7f8ce (patch) | |
| tree | e95c705047581b5bd7e318bf88c258f1c316b3be /include/sqfs | |
| parent | 50a551eda7105c90f529efc2f2907dc0cd1c58cf (diff) | |
Move sqfs_block_t to its own header
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include/sqfs')
| -rw-r--r-- | include/sqfs/block.h | 140 | ||||
| -rw-r--r-- | include/sqfs/data_writer.h | 109 | 
2 files changed, 140 insertions, 109 deletions
| diff --git a/include/sqfs/block.h b/include/sqfs/block.h new file mode 100644 index 0000000..5216fd7 --- /dev/null +++ b/include/sqfs/block.h @@ -0,0 +1,140 @@ +/* SPDX-License-Identifier: LGPL-3.0-or-later */ +/* + * block.h - This file is part of libsquashfs + * + * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program.  If not, see <https://www.gnu.org/licenses/>. + */ +#ifndef SQFS_BLOCK_H +#define SQFS_BLOCK_H + +#include "sqfs/predef.h" + +/** + * @file block.h + * + * @brief Contains the definition of the @ref sqfs_block_t data structure. + */ + +/** + * @enum E_SQFS_BLK_FLAGS + * + * @brief Generic flags that tell the processor what to do with a block and + *        flags that the processor sets when it is done with a block. + */ +typedef enum { +	/** +	 * @brief Only calculate checksum, do NOT compress the data. +	 */ +	SQFS_BLK_DONT_COMPRESS = 0x0001, + +	/** +	 * @brief Indicates that an equeued block is the first block of a file. +	 */ +	SQFS_BLK_FIRST_BLOCK = 0x0002, + +	/** +	 * @brief Indicates that an equeued block is the last block of a file. +	 */ +	SQFS_BLK_LAST_BLOCK = 0x0004, + +	/** +	 * @brief Allign the block on disk to device block size. +	 * +	 * If set in combination with @ref SQFS_BLK_FIRST_BLOCK, the output +	 * file is padded to a multiple of the device block size before writing +	 * the block. +	 * +	 * If used with @ref SQFS_BLK_LAST_BLOCK, the output file is padded +	 * after writing the block. +	 */ +	SQFS_BLK_ALLIGN = 0x0008, + +	/** +	 * @brief Indicates that a block is a tail end of a file and the block +	 *        processor should take care of fragment packing and accounting. +	 */ +	SQFS_BLK_IS_FRAGMENT = 0x0010, + +	/** +	 * @brief Set by the block processor on fragment blocks that +	 *        it generates. +	 */ +	SQFS_BLK_FRAGMENT_BLOCK = 0x4000, + +	/** +	 * @brief Set by compressor worker if the block was actually compressed. +	 */ +	SQFS_BLK_IS_COMPRESSED = 0x8000, + +	/** +	 * @brief The combination of all flags that are user settable. +	 */ +	SQFS_BLK_USER_SETTABLE_FLAGS = 0x001F, +} E_SQFS_BLK_FLAGS; + +/** + * @struct sqfs_block_t + * + * @brief Encapsulates a chunk of data to be processed by the block processor. + */ +struct sqfs_block_t { +	/** +	 * @brief Used internally, existing value is ignored and overwritten +	 *        when enqueueing a block. +	 */ +	sqfs_block_t *next; + +	/** +	 * @brief Used internally, existing value is ignored and overwritten +	 *        when enqueueing a block. +	 */ +	uint32_t sequence_number; + +	/** +	 * @brief Size of the data area. +	 */ +	uint32_t size; + +	/** +	 * @brief Checksum of the input data. +	 */ +	uint32_t checksum; + +	/** +	 * @brief Data block index within the inode. +	 */ +	uint32_t index; + +	/** +	 * @brief The squashfs inode related to this block. +	 */ +	sqfs_inode_generic_t *inode; + +	/** +	 * @brief User settable flag field. +	 * +	 * A combination of @ref E_SQFS_BLK_FLAGS and custom, user +	 * settable flags. +	 */ +	uint32_t flags; + +	/** +	 * @brief Raw data to be processed. +	 */ +	uint8_t data[]; +}; + +#endif /* SQFS_BLOCK_H */ diff --git a/include/sqfs/data_writer.h b/include/sqfs/data_writer.h index 8dedba0..3f1ad02 100644 --- a/include/sqfs/data_writer.h +++ b/include/sqfs/data_writer.h @@ -42,115 +42,6 @@   * is called for each one.   */ -/** - * @enum E_SQFS_BLK_FLAGS - * - * @brief Generic flags that tell the processor what to do with a block and - *        flags that the processor sets when it is done with a block. - */ -typedef enum { -	/** -	 * @brief Only calculate checksum, do NOT compress the data. -	 */ -	SQFS_BLK_DONT_COMPRESS = 0x0001, - -	/** -	 * @brief Indicates that an equeued block is the first block of a file. -	 */ -	SQFS_BLK_FIRST_BLOCK = 0x0002, - -	/** -	 * @brief Indicates that an equeued block is the last block of a file. -	 */ -	SQFS_BLK_LAST_BLOCK = 0x0004, - -	/** -	 * @brief Allign the block on disk to device block size. -	 * -	 * If set in combination with @ref SQFS_BLK_FIRST_BLOCK, the output -	 * file is padded to a multiple of the device block size before writing -	 * the block. -	 * -	 * If used with @ref SQFS_BLK_LAST_BLOCK, the output file is padded -	 * after writing the block. -	 */ -	SQFS_BLK_ALLIGN = 0x0008, - -	/** -	 * @brief Indicates that a block is a tail end of a file and the block -	 *        processor should take care of fragment packing and accounting. -	 */ -	SQFS_BLK_IS_FRAGMENT = 0x0010, - -	/** -	 * @brief Set by the block processor on fragment blocks that -	 *        it generates. -	 */ -	SQFS_BLK_FRAGMENT_BLOCK = 0x4000, - -	/** -	 * @brief Set by compressor worker if the block was actually compressed. -	 */ -	SQFS_BLK_IS_COMPRESSED = 0x8000, - -	/** -	 * @brief The combination of all flags that are user settable. -	 */ -	SQFS_BLK_USER_SETTABLE_FLAGS = 0x001F, -} E_SQFS_BLK_FLAGS; - -/** - * @struct sqfs_block_t - * - * @brief Encapsulates a chunk of data to be processed by the block processor. - */ -struct sqfs_block_t { -	/** -	 * @brief Used internally, existing value is ignored and overwritten -	 *        when enqueueing a block. -	 */ -	sqfs_block_t *next; - -	/** -	 * @brief Used internally, existing value is ignored and overwritten -	 *        when enqueueing a block. -	 */ -	uint32_t sequence_number; - -	/** -	 * @brief Size of the data area. -	 */ -	uint32_t size; - -	/** -	 * @brief Checksum of the input data. -	 */ -	uint32_t checksum; - -	/** -	 * @brief Data block index within the inode. -	 */ -	uint32_t index; - -	/** -	 * @brief The squashfs inode related to this block. -	 */ -	sqfs_inode_generic_t *inode; - -	/** -	 * @brief User settable flag field. -	 * -	 * A combination of @ref E_SQFS_BLK_FLAGS and custom, user -	 * settable flags. -	 */ -	uint32_t flags; - -	/** -	 * @brief Raw data to be processed. -	 */ -	uint8_t data[]; -}; -  #ifdef __cplusplus  extern "C" {  #endif | 
