- tmp->tipo = T3;
- tmp->tam_bloque = tam_bloque;
- tmp->leer_bloque = emufs_tipo3_leer_bloque;
- tmp->leer_registro = emufs_tipo3_leer_registro;
- tmp->grabar_registro = emufs_tipo3_grabar_registro;
- tmp->borrar_registro = emufs_tipo3_borrar_registro;
- tmp->nombre = str_dup(filename);
-
- strcpy(name, filename);
- strcat(name, EXT_TIPO3_DATA);
- fp = fopen(name, "w");
- if (fp == NULL) {
- /* ERROR */
- free(tmp->nombre);
- free(tmp);
- return NULL;
- }
- /* Guardo el Header */
- fwrite(&tipo, sizeof(char), 1, fp);
- fwrite(&tam_bloque, sizeof(unsigned int), 1, fp);
- fwrite(&tam_reg, sizeof(unsigned int), 1, fp);
- fclose(fp);
-
- strcpy(name, filename);
- strcat(name, EXT_TIPO3_ID);
- fp = fopen(name, "w");
- fclose(fp);
-
- strcpy(name, filename);
- strcat(name, EXT_TIPO3_DISP);
- fp = fopen(name, "w");
- fclose(fp);
-
- strcpy(name, filename);
- strcat(name, EXT_TIPO3_IDS);
- fp = fopen(name, "w");
- fclose(fp);
-
- break;
- default:
- free(tmp);
- return NULL;
+ /* Asigna punteros a funciones. */
+ efs->leer_bloque = emufs_tipo3_leer_bloque;
+ efs->leer_registro = emufs_tipo3_leer_registro;
+ efs->grabar_registro = emufs_tipo3_grabar_registro;
+ efs->borrar_registro = emufs_tipo3_borrar_registro;
+ efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
+
+ /* Guarda cabeceras propias. */
+ fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
+ fwrite(&tam_reg, sizeof(EMUFS_REG_SIZE), 1, fp);
+ break;
+