running out of space dd'ing JFFS2 image to /dev/mtdblock/0

Jörn Engel joern at
Mon Jan 31 11:39:19 EST 2005

On Mon, 31 January 2005 11:14:49 -0500, Robert P. J. Day wrote:
> first, it's necessary to define a simple standard, so what about
> something like the following?  any size values in *any* of the
> JFFS2-related programs shall be in one of the following formats:
>   ###		(interpreted as bytes)
>   ###KiB	(obvious)
>   ###MiB	(obvious)
> at the moment, this is not being followed.  for instance, mkfs.jffs2
> has the --pad=SIZE option, where a simple number is treated as KiB.
> anyway, you get idea -- it's pretty confusing.
> so, do we at least have some agreement on a standard?  which would
> hold across *all* programs and modules?  i'm not even going to
> *consider* looking at patches to do this unless i'm convinced everyone
> agrees, since changes like this will clearly force people to change
> the way they do some things.  and i know how fond some people are of
> *that* idea. :-)

I agree on a standard, if that helps you:

0x[0-9]...	hex
0[1-9]...	octal
[1-9]...	decimal

If followed by "ki", "Mi", or "Gi", they are multiplied by 1024, etc.

Example code, taken from phram:

static int ustrtoul(const char *cp, char **endp, unsigned int base)
	unsigned long result = simple_strtoul(cp, endp, base);

	switch (**endp) {
	case 'G':
		result *= 1024;
	case 'M':
		result *= 1024;
	case 'k':
		result *= 1024;
	/* By dwmw2 editorial decree, "ki", "Mi" or "Gi" are to be used. */
		if ((*endp)[1] == 'i')
			(*endp) += 2;
	return result;

static int parse_num32(uint32_t *num32, const char *token)
	char *endp;
	unsigned long n;

	n = ustrtoul(token, &endp, 0);
	if (*endp)
		return -EINVAL;

	*num32 = n;
	return 0;

This allows different people with different taste to specify numbers
in various simple formats.  If you think you can improve on this,
please send me a patch.


But this is not to say that the main benefit of Linux and other GPL
software is lower-cost. Control is the main benefit--cost is secondary.
-- Bruce Perens

More information about the linux-mtd mailing list