move storage helpers to libbb.h

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-09-28 15:13:04 +02:00
parent aae428f0bf
commit abfa3ec059
5 changed files with 17 additions and 63 deletions

View File

@ -39,23 +39,6 @@
#include <linux/fs.h> #include <linux/fs.h>
#include "bb_e2fs_defs.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 { enum {
OPT_L = 1 << 0, // label OPT_L = 1 << 0, // label
OPT_c = 1 << 1, // max mount count OPT_c = 1 << 1, // max mount count

View File

@ -2127,6 +2127,23 @@ extern const char bb_default_login_shell[] ALIGN1;
# define FB_0 "/dev/fb0" # define FB_0 "/dev/fb0"
#endif #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 ARRAY_SIZE(x) ((unsigned)(sizeof(x) / sizeof((x)[0])))
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))

View File

@ -78,23 +78,6 @@
#define EXT2_FLAGS_SIGNED_HASH 0x0001 #define EXT2_FLAGS_SIGNED_HASH 0x0001
#define EXT2_FLAGS_UNSIGNED_HASH 0x0002 #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 // All fields are little-endian
struct ext2_dir { struct ext2_dir {
uint32_t inode1; uint32_t inode1;

View File

@ -28,22 +28,6 @@
#include "libbb.h" #include "libbb.h"
#include <linux/fs.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 { struct journal_params {
uint32_t jp_journal_1st_block; /* where does journal start from on its device */ uint32_t jp_journal_1st_block; /* where does journal start from on its device */
uint32_t jp_journal_dev; /* journal device st_rdev */ uint32_t jp_journal_dev; /* journal device st_rdev */

View File

@ -206,19 +206,6 @@ static const char boot_code[] ALIGN1 =
#define MARK_CLUSTER(cluster, value) \ #define MARK_CLUSTER(cluster, value) \
((uint32_t *)fat)[cluster] = SWAP_LE32(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: /* compat:
* mkdosfs 2.11 (12 Mar 2005) * mkdosfs 2.11 (12 Mar 2005)
* Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file] * Usage: mkdosfs [-A] [-c] [-C] [-v] [-I] [-l bad-block-file]