flash_eraseall: stop using obsolete mtd/jffs2-user.h; code shrink
function old new delta show_progress 68 67 -1 flash_eraseall_main 1007 882 -125 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-126) Total: -126 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -12,22 +12,35 @@
 | 
			
		||||
 | 
			
		||||
#include "libbb.h"
 | 
			
		||||
#include <mtd/mtd-user.h>
 | 
			
		||||
#include <mtd/jffs2-user.h>
 | 
			
		||||
#include <linux/jffs2.h>
 | 
			
		||||
 | 
			
		||||
#define OPTION_J	(1 << 0)
 | 
			
		||||
#define OPTION_Q	(1 << 1)
 | 
			
		||||
#define IS_NAND		(1 << 2)
 | 
			
		||||
#define BBTEST		(1 << 3)
 | 
			
		||||
 | 
			
		||||
struct globals {
 | 
			
		||||
	/* This is used in the cpu_to_je/je_to_cpu macros in jffs2_user.h */
 | 
			
		||||
	int tgt_endian;
 | 
			
		||||
};
 | 
			
		||||
#define G (*(struct globals*)&bb_common_bufsiz1)
 | 
			
		||||
#define target_endian	(G.tgt_endian)
 | 
			
		||||
#define INIT_G() do { \
 | 
			
		||||
	target_endian = __BYTE_ORDER; \
 | 
			
		||||
} while (0)
 | 
			
		||||
/* mtd/jffs2-user.h used to have this atrocity:
 | 
			
		||||
extern int target_endian;
 | 
			
		||||
 | 
			
		||||
#define t16(x) ({ __u16 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_16(__b); })
 | 
			
		||||
#define t32(x) ({ __u32 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_32(__b); })
 | 
			
		||||
 | 
			
		||||
#define cpu_to_je16(x) ((jint16_t){t16(x)})
 | 
			
		||||
#define cpu_to_je32(x) ((jint32_t){t32(x)})
 | 
			
		||||
#define cpu_to_jemode(x) ((jmode_t){t32(x)})
 | 
			
		||||
 | 
			
		||||
#define je16_to_cpu(x) (t16((x).v16))
 | 
			
		||||
#define je32_to_cpu(x) (t32((x).v32))
 | 
			
		||||
#define jemode_to_cpu(x) (t32((x).m))
 | 
			
		||||
 | 
			
		||||
but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore)
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/* We always use native endianness */
 | 
			
		||||
#undef cpu_to_je16
 | 
			
		||||
#undef cpu_to_je32
 | 
			
		||||
#define cpu_to_je16(v) ((jint16_t){(v)})
 | 
			
		||||
#define cpu_to_je32(v) ((jint32_t){(v)})
 | 
			
		||||
 | 
			
		||||
static uint32_t crc32(uint32_t val, const void *ss, int len,
 | 
			
		||||
		uint32_t *crc32_table)
 | 
			
		||||
@@ -40,9 +53,11 @@ static uint32_t crc32(uint32_t val, const void *ss, int len,
 | 
			
		||||
 | 
			
		||||
static void show_progress(mtd_info_t *meminfo, erase_info_t *erase)
 | 
			
		||||
{
 | 
			
		||||
	printf("\rErasing %d Kibyte @ %x -- %2llu %% complete.",
 | 
			
		||||
		(unsigned)meminfo->erasesize / 1024, erase->start,
 | 
			
		||||
		(unsigned long long) erase->start * 100 / meminfo->size);
 | 
			
		||||
	printf("\rErasing %u Kibyte @ %x - %2u%% complete.",
 | 
			
		||||
		(unsigned)meminfo->erasesize / 1024,
 | 
			
		||||
		erase->start,
 | 
			
		||||
		(unsigned) ((unsigned long long) erase->start * 100 / meminfo->size)
 | 
			
		||||
	);
 | 
			
		||||
	fflush_all();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -57,17 +72,15 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv)
 | 
			
		||||
	unsigned int flags;
 | 
			
		||||
	char *mtd_name;
 | 
			
		||||
 | 
			
		||||
	INIT_G();
 | 
			
		||||
	opt_complementary = "=1";
 | 
			
		||||
	flags = BBTEST | getopt32(argv, "jq");
 | 
			
		||||
 | 
			
		||||
	mtd_name = argv[optind];
 | 
			
		||||
	xstat(mtd_name, &st);
 | 
			
		||||
	fd = xopen(mtd_name, O_RDWR);
 | 
			
		||||
	fstat(fd, &st);
 | 
			
		||||
	if (!S_ISCHR(st.st_mode))
 | 
			
		||||
		bb_error_msg_and_die("%s: not a char device", mtd_name);
 | 
			
		||||
 | 
			
		||||
	fd = xopen(mtd_name, O_RDWR);
 | 
			
		||||
 | 
			
		||||
	xioctl(fd, MEMGETINFO, &meminfo);
 | 
			
		||||
	erase.length = meminfo.erasesize;
 | 
			
		||||
	if (meminfo.type == MTD_NANDFLASH)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user