move storage helpers to libbb.h
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -39,23 +39,6 @@
 | 
			
		||||
#include <linux/fs.h>
 | 
			
		||||
#include "bb_e2fs_defs.h"
 | 
			
		||||
 | 
			
		||||
// storage helpers
 | 
			
		||||
char BUG_wrong_field_size(void);
 | 
			
		||||
#define STORE_LE(field, value) \
 | 
			
		||||
do { \
 | 
			
		||||
	if (sizeof(field) == 4) \
 | 
			
		||||
		field = SWAP_LE32(value); \
 | 
			
		||||
	else if (sizeof(field) == 2) \
 | 
			
		||||
		field = SWAP_LE16(value); \
 | 
			
		||||
	else if (sizeof(field) == 1) \
 | 
			
		||||
		field = (value); \
 | 
			
		||||
	else \
 | 
			
		||||
		BUG_wrong_field_size(); \
 | 
			
		||||
} while (0)
 | 
			
		||||
 | 
			
		||||
#define FETCH_LE32(field) \
 | 
			
		||||
	(sizeof(field) == 4 ? SWAP_LE32(field) : BUG_wrong_field_size())
 | 
			
		||||
 | 
			
		||||
enum {
 | 
			
		||||
	OPT_L = 1 << 0, // label
 | 
			
		||||
	OPT_c = 1 << 1, // max mount count
 | 
			
		||||
 
 | 
			
		||||
@@ -2127,6 +2127,23 @@ extern const char bb_default_login_shell[] ALIGN1;
 | 
			
		||||
# define FB_0 "/dev/fb0"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// storage helpers for mk*fs utilities
 | 
			
		||||
char BUG_wrong_field_size(void);
 | 
			
		||||
#define STORE_LE(field, value) \
 | 
			
		||||
do { \
 | 
			
		||||
	if (sizeof(field) == 4) \
 | 
			
		||||
		field = SWAP_LE32((uint32_t)(value)); \
 | 
			
		||||
	else if (sizeof(field) == 2) \
 | 
			
		||||
		field = SWAP_LE16((uint16_t)(value)); \
 | 
			
		||||
	else if (sizeof(field) == 1) \
 | 
			
		||||
		field = (uint8_t)(value); \
 | 
			
		||||
	else \
 | 
			
		||||
		BUG_wrong_field_size(); \
 | 
			
		||||
} while (0)
 | 
			
		||||
 | 
			
		||||
#define FETCH_LE32(field) \
 | 
			
		||||
	(sizeof(field) == 4 ? SWAP_LE32(field) : BUG_wrong_field_size())
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define ARRAY_SIZE(x) ((unsigned)(sizeof(x) / sizeof((x)[0])))
 | 
			
		||||
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
 | 
			
		||||
 
 | 
			
		||||
@@ -78,23 +78,6 @@
 | 
			
		||||
#define EXT2_FLAGS_SIGNED_HASH   0x0001
 | 
			
		||||
#define EXT2_FLAGS_UNSIGNED_HASH 0x0002
 | 
			
		||||
 | 
			
		||||
// storage helpers
 | 
			
		||||
char BUG_wrong_field_size(void);
 | 
			
		||||
#define STORE_LE(field, value) \
 | 
			
		||||
do { \
 | 
			
		||||
	if (sizeof(field) == 4) \
 | 
			
		||||
		field = SWAP_LE32((uint32_t)(value)); \
 | 
			
		||||
	else if (sizeof(field) == 2) \
 | 
			
		||||
		field = SWAP_LE16((uint16_t)(value)); \
 | 
			
		||||
	else if (sizeof(field) == 1) \
 | 
			
		||||
		field = (uint8_t)(value); \
 | 
			
		||||
	else \
 | 
			
		||||
		BUG_wrong_field_size(); \
 | 
			
		||||
} while (0)
 | 
			
		||||
 | 
			
		||||
#define FETCH_LE32(field) \
 | 
			
		||||
	(sizeof(field) == 4 ? SWAP_LE32(field) : BUG_wrong_field_size())
 | 
			
		||||
 | 
			
		||||
// All fields are little-endian
 | 
			
		||||
struct ext2_dir {
 | 
			
		||||
	uint32_t inode1;
 | 
			
		||||
 
 | 
			
		||||
@@ -28,22 +28,6 @@
 | 
			
		||||
#include "libbb.h"
 | 
			
		||||
#include <linux/fs.h>
 | 
			
		||||
 | 
			
		||||
char BUG_wrong_field_size(void);
 | 
			
		||||
#define STORE_LE(field, value) \
 | 
			
		||||
do { \
 | 
			
		||||
	if (sizeof(field) == 4) \
 | 
			
		||||
		field = SWAP_LE32(value); \
 | 
			
		||||
	else if (sizeof(field) == 2) \
 | 
			
		||||
		field = SWAP_LE16(value); \
 | 
			
		||||
	else if (sizeof(field) == 1) \
 | 
			
		||||
		field = (value); \
 | 
			
		||||
	else \
 | 
			
		||||
		BUG_wrong_field_size(); \
 | 
			
		||||
} while (0)
 | 
			
		||||
 | 
			
		||||
#define FETCH_LE32(field) \
 | 
			
		||||
	(sizeof(field) == 4 ? SWAP_LE32(field) : BUG_wrong_field_size())
 | 
			
		||||
 | 
			
		||||
struct journal_params {
 | 
			
		||||
	uint32_t jp_journal_1st_block;      /* where does journal start from on its device */
 | 
			
		||||
	uint32_t jp_journal_dev;            /* journal device st_rdev */
 | 
			
		||||
 
 | 
			
		||||
@@ -206,19 +206,6 @@ static const char boot_code[] ALIGN1 =
 | 
			
		||||
#define MARK_CLUSTER(cluster, value) \
 | 
			
		||||
	((uint32_t *)fat)[cluster] = SWAP_LE32(value)
 | 
			
		||||
 | 
			
		||||
void BUG_unsupported_field_size(void);
 | 
			
		||||
#define STORE_LE(field, value) \
 | 
			
		||||
do { \
 | 
			
		||||
	if (sizeof(field) == 4) \
 | 
			
		||||
		field = SWAP_LE32((uint32_t)(value)); \
 | 
			
		||||
	else if (sizeof(field) == 2) \
 | 
			
		||||
		field = SWAP_LE16((uint16_t)(value)); \
 | 
			
		||||
	else if (sizeof(field) == 1) \
 | 
			
		||||
		field = (uint8_t)(value); \
 | 
			
		||||
	else \
 | 
			
		||||
		BUG_unsupported_field_size(); \
 | 
			
		||||
} while (0)
 | 
			
		||||
 | 
			
		||||
/* compat:
 | 
			
		||||
 * mkdosfs 2.11 (12 Mar 2005)
 | 
			
		||||
 * Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user