// File: /workspace/github_c_makefile_star2_O2/carlitosmarin[P]Sistema-Ficheros-SOII/simulacion.c
// Function: main
int main (int argc, char **argv) {
	if (argc != 2) {
		printf("Número de parametros incorrectos\n");
		return -1;
	}
	bmount(argv[1]);

	char fech[16];
	char f[8] = "/simul_";

	struct tm *ts;
	time_t t = time(NULL);
	ts = localtime(&t);
	strftime(fech, sizeof(fech), "%Y%m%d%H%M%S/", ts);
	strcpy(directorio, f);
	strcat(directorio, fech);

	if(mi_creat(directorio, 7) < 0){ //Creamos el directorio
		printf("ERROR: El directorio (%s) no se ha podido crear\n", directorio);
		bumount(); //Desmontamos el sistema de ficheros
		return -1;
	}

	acabados = 0;
	signal(SIGCHLD, reaper);
	while(acabados < PROCESOS) {
		if(fork() == 0) proceso(getpid()); //Creamos un nuevo proceso
		usleep(200000); //Provocamos la espera de creacion de procesos (0.2 s)
	}

	if(acabados < PROCESOS) pause(); //Esperamos a que todos los procesos acaben

	char buffer[64*200];
	memset(buffer,0,tamBloque);
	printf("Directorio raiz %s:\n", directorio);

	if(mi_dir (directorio,(char *)buffer) >= 0) {
		printf("%c[%d;%dmTipo\tPerm.\tmTime\t\t\tNombre%c[%dm\n",27,0,32,27,0);
		puts("-------------------------------------------------------------------");
		printf("%s\n", buffer);
	} else puts("Error: No se ha podido llevar a cabo mi_ls\n");

	puts("\n-----------------FINIQUITAO------------------");
	bumount(); //Desmontamos el sistema de ficheros
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x3228, %rsp           # imm = 0x3228
cmpl $0x2, %edi
jne 0x3edb
movq 0x8(%rsi), %rdi
callq 0x130c
xorl %edi, %edi
callq 0x1160
leaq 0x8(%rsp), %rdi
movq %rax, (%rdi)
callq 0x1030
leaq 0x80c(%rip), %rdx       # 0x4666
leaq 0x10(%rsp), %rbx
pushq $0x10
popq %rsi
movq %rbx, %rdi
movq %rax, %rcx
callq 0x1180
movabsq $0x5f6c756d69732f, %rax # imm = 0x5F6C756D69732F
movq %rax, 0x32d2(%rip)      # 0x7150
leaq 0x32cb(%rip), %r14      # 0x7150
movq %r14, %rdi
movq %rbx, %rsi
callq 0x11a0
pushq $0x7
popq %rsi
movq %r14, %rdi
callq 0x309d
testl %eax, %eax
js 0x3f56
andl $0x0, 0x3296(%rip)      # 0x7140
leaq -0x265(%rip), %rsi      # 0x3c4c
pushq $0x11
popq %rdi
callq 0x1140
cmpl $0x63, 0x3280(%rip)     # 0x7140
jg 0x3eec
callq 0x11e0
testl %eax, %eax
je 0x3fa5
movl $0x30d40, %edi          # imm = 0x30D40
callq 0x1200
jmp 0x3eb9
leaq 0x807(%rip), %rdi       # 0x46e9
callq 0x1060
jmp 0x3f72
leaq 0x20(%rsp), %rbx
movl $0x400, %edx            # imm = 0x400
movq %rbx, %rdi
xorl %esi, %esi
callq 0x10d0
leaq 0x79e(%rip), %rdi       # 0x46a5
leaq 0x3242(%rip), %r14      # 0x7150
movq %r14, %rsi
xorl %eax, %eax
callq 0x10b0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x317e
testl %eax, %eax
js 0x3f77
leaq 0x684(%rip), %rdi       # 0x45b2
pushq $0x20
popq %rcx
pushq $0x1b
popq %rsi
xorl %edx, %edx
movl %esi, %r8d
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x10b0
leaq 0x692(%rip), %rdi       # 0x45dc
callq 0x1060
leaq 0x20(%rsp), %rdi
jmp 0x3f7e
leaq 0x717(%rip), %rdi       # 0x4674
leaq 0x31ec(%rip), %rsi      # 0x7150
xorl %eax, %eax
callq 0x10b0
xorl %eax, %eax
callq 0x1348
pushq $-0x1
popq %rbx
jmp 0x3f98
leaq 0x6a2(%rip), %rdi       # 0x4620
callq 0x1060
leaq 0x730(%rip), %rdi       # 0x46ba
callq 0x1060
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x1348
movl %ebx, %eax
addq $0x3228, %rsp           # imm = 0x3228
popq %rbx
popq %r14
retq
callq 0x1080
movl %eax, %edi
callq 0x3c69