
/*
 * fillmem.c
 * 
 * Empty all the memory
 * 
 * (C) Jeff Garzik <jgarzik@mandrakesoft.com>, 2000
 */


#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <stdio.h>

#define MEGA		(1024 * 1024)

int main (int argc, char *argv[])
{
	void **data;
	int i, r;
	size_t megs = 512;

	if ((argc >= 2) && (atoi(argv[1]) > 0))
		megs = atoi(argv[1]);

	data = malloc(megs * sizeof(void*));
	if (!data)
		exit(1);

	memset (data, 0, megs * sizeof (void*));

	srand(time(NULL));

	for (i = 0; (unsigned int)i < megs; i++) {
		data[i] = malloc(MEGA);
		if (!data[i])
			exit(2);
		memset (data[i], i, MEGA);
		printf("malloc/memset %03d/%03u\n", i+1, megs);
	}
	for (i = megs - 1; i >= 0; i--) {
		r = rand() % 200;
		memset (data[i], r, MEGA);
		printf("memset #2 %03d/%03u = %u\n", i+1, megs, r);
	}
	printf("done\n");
	return 0;
}
