#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <endian.h>

int main(int argc, char **argv) {
	int fd, directory, inode;

	if (argc != 3) {
		fprintf(stderr, "usage: %s filesystem inode\n", argv[0]);
		return -1;
	}

	directory = htobe32(2);
	inode = htobe32(atoi(argv[2]));

	if (!inode) {
		fprintf(stderr, "usage: %s filesystem inode\n", argv[0]);
		return -2;
	}

	fd = open(argv[1], O_RDWR);

	if (fd < 0) {
		perror("open");
		return -3;
	}

	lseek(fd, 0x450, SEEK_SET);
	
	write(fd, &directory, sizeof(int));
	write(fd, &inode, sizeof(int));

	lseek(fd, 0x464, SEEK_SET);

	write(fd, &directory, sizeof(int));

	close(fd);

	return 0;
}
