#include <common.h>
#include <command.h>
#include <linux/stat.h>
#include <malloc.h>
#include <fs.h>

#define MAGIC		0x19691228

static int do_alternate(struct command *cmdtp, int argc, char *argv[])
{
	void *buf;
	size_t size;
	ulong *ptr, val = 0, bitcount = 0;

	if (argc != 2)
		return COMMAND_ERROR_USAGE;

	buf = read_file(argv[1], &size);
	if (!buf)
		return 1;

	ptr = buf;
	if ((*ptr) != MAGIC) {
		printf("Wrong magic! Expected 0x%08x, got 0x%08lx.\n", MAGIC, *ptr);
		return 1;
	}

	ptr++;

	while ((ulong)ptr <= (ulong)buf + size && !(val = *ptr++))
		bitcount += 32;

	if (val) {
		do {
			if (val & 1)
				break;
			bitcount++;
		} while (val >>= 1);
	}

	printf("Bitcount : %ld\n", bitcount);

	free(buf);
	return (bitcount & 1) ? 3 : 2;
}

static const __maybe_unused char cmd_alternate_help[] =
"Usage: alternate <file>"
"\n";

BAREBOX_CMD_START(alternate)
	.cmd		= do_alternate,
	.usage		= "count zero bits in a file",
	BAREBOX_CMD_HELP(cmd_alternate_help)
BAREBOX_CMD_END

