*/
#include "tipo3.h"
+#include "error.h"
#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
registro = (char*) malloc(emu->tam_reg);
if (registro == NULL) {
- /* TODO Manejo de errores */
PERR("No hay memoria");
- *err = 2; /* EMUFS_ERROR_OUT_OF_MEMORY */
+ *err = EMUFS_ERROR_OUT_OF_MEMORY;
return NULL;
}
if ((file = fopen(name_f, "r")) == NULL) {
PERR("No se pudo abrir el archivo de datos");
- *err = 4; /* EMUFS_ERROR_CANT_OPEN_FILE */
- return NULL; /* FIXME ERROR */
+ *err = EMUFS_ERROR_CANT_OPEN_FILE;
+ return NULL;
}
fseek(file,sizeof(EMUFS_Tipo)+sizeof(EMUFS_BLOCK_SIZE)+sizeof(EMUFS_REG_SIZE),SEEK_SET);
/*FIXME: verificar que no se pase de fin de archivo*/
block = (char*) malloc(emu->tam_bloque);
if (block == NULL) {
- /* TODO Manejo de errores */
PERR("No hay memoria");
- *err = 2; /* EMUFS_ERROR_OUT_OF_MEMORY */
+ *err = EMUFS_ERROR_OUT_OF_MEMORY;
return NULL;
}
if (fread(block, emu->tam_bloque, 1, file) != 1) {
/* TODO Manejo de errores */
free(block);
PERR("Error al leer bloque");
- *err = 3; /* EMUFS_ERROR_FILE_READ */
+ *err = EMUFS_ERROR_FILE_READ;
return NULL;
}
fseek(file, 0, SEEK_END);
/* grabo el bloque en el final del archivo */
fwrite(bloque,emu->tam_bloque,1,file);
- /*actualizo el archivo de espacios libres*/
/*tengo que buscar la cantidad de bloques que existen*/
fseek(file, 0, SEEK_END); /* Me paro al final */
cant = (ftell(file)-(sizeof(EMUFS_Tipo)+sizeof(EMUFS_REG_SIZE)+sizeof(EMUFS_BLOCK_SIZE))) / emu->tam_bloque;
free(bloque);
return -1;
}
-
}
fclose(file);
} else {
fseek(f,0,SEEK_END);
stats.tam_archivo_bytes = ftell(f);
- stats.cant_bloques =(stats.tam_archivo_bytes-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE)-sizeof(EMUFS_REG_SIZE))/
- emu->tam_bloque;
+ stats.cant_bloques = (stats.tam_archivo_bytes-sizeof(EMUFS_Tipo)-sizeof(EMUFS_BLOCK_SIZE)-sizeof(EMUFS_REG_SIZE))/
+ emu->tam_bloque;
tmp = emufs_idx_get(emu, &stats.tam_archivo);
if (tmp) free(tmp);
- stats.info_control=stats.tam_archivo*sizeof(EMUFS_REG_ID)+sizeof(EMUFS_Tipo)+
- sizeof(EMUFS_BLOCK_SIZE)+sizeof(EMUFS_REG_SIZE);
+ stats.info_control = stats.tam_archivo*sizeof(EMUFS_REG_ID)+sizeof(EMUFS_Tipo)+
+ sizeof(EMUFS_BLOCK_SIZE)+sizeof(EMUFS_REG_SIZE);
/* Obtengo las stats de FSC */
stats.total_fs = emufs_fsc_get_total_fs(emu);
stats.media_fs = emufs_fsc_get_media_fs(emu);
strcpy(name, emu->nombre);
strcat(name, ".dat");
-
- /* si el bloque es mas chico que el registro no hace falta compactar */
- /*if( emu->tam_reg-sizeof(EMUFS_REG_ID) > emu->tam_bloque ) return; */
tmp = emufs_idx_get(emu, &max_id);
if (tmp) free(tmp);