switch (tipo) {
case T1:
- /* Inicializa archivo (punteros a funciones, chequeos, etc). */
- if (emufs_tipo1_inicializar(efs)) {
- /* TODO ERROR */
- free(efs->nombre);
- free(efs);
- return NULL;
- }
+ /* Asigna punteros a funciones. */
+ /* TODO verificar que el tamaño de bloque sea como mínimo del
+ * tamaño de la cabecera de un registro + N */
+ emufs_tipo1_inicializar(efs);
- /* Guarda cabeceras propias.
- * FIXME esto me gustaria que vaya a inicializar() */
+ /* Guarda cabeceras propias. */
fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
break;
efs->borrar_registro = emufs_tipo3_borrar_registro;
efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
efs->modificar_registro = emufs_tipo3_modificar_registro;
+ efs->compactar = emufs_tipo3_compactar;
/* Guarda cabeceras propias. */
fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
fwrite(&tam_reg, sizeof(EMUFS_REG_SIZE), 1, fp);
efs->borrar_registro = emufs_tipo3_borrar_registro;
efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
efs->modificar_registro = emufs_tipo3_modificar_registro;
+ efs->compactar = emufs_tipo3_compactar;
break;
}