#include "fsc.h"
/** Lee el registro \param id_reg y lo almacena en \param ptr */
-int emufs_tipo3_leer_registro(EMUFS *emu, EMUFS_REG_ID id_reg, void *ptr);
+void* emufs_tipo3_leer_registro(EMUFS*, EMUFS_REG_ID, EMUFS_REG_SIZE*, int*);
/** Lee el bloque \param num_bloque y lo almacena en \param ptr */
-int emufs_tipo3_leer_bloque(EMUFS *emu, EMUFS_BLOCK_ID num_bloque, void *ptr);
+void* emufs_tipo3_leer_bloque(EMUFS*, EMUFS_BLOCK_ID, int*);
/** Graba el registro apuntado por \param ptr en el archivo */
-EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr);
+EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE, int*);
/** Graba el bloque apuntado por \param ptr en el archivo */
int emufs_tipo3_grabar_bloque(EMUFS *emu, void *ptr, EMUFS_BLOCK_ID num_bloque);
-EMUFS_REG_ID emufs_tipo3_get_id(EMUFS *emu);
+/** Borra el registro \param id_reg del archivo de datos */
+int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
-int emufs_tipo3_buscar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
+/** Método para modificar un registro */
+EMUFS_REG_ID emufs_tipo3_modificar_registro(EMUFS *emu, EMUFS_REG_ID, void*, EMUFS_REG_SIZE, int*);
-int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID id_reg);
+/** Carga una estructura del tipo EMUFS_Estadisticas con las estadisticas del archivo */
+EMUFS_Estadisticas emufs_tipo3_leer_estadisticas(EMUFS *);
+
+/** Lee un registro con su informacion de control */
+void* emufs_tipo3_leer_registro_raw(struct _emu_fs_t*, EMUFS_REG_ID, EMUFS_REG_SIZE*, int *);
+
+/** Elimina los espacios libres que hay en el archivo */
+void emufs_tipo3_compactar(EMUFS *emu);
+
+void emufs_tipo3_leer_bloque_raw(EMUFS *efs, EMUFS_BLOCK_ID id, char **actual, char **anterior, char **siguiente, EMUFS_BLOCK_SIZE *size1, EMUFS_BLOCK_SIZE *size2, EMUFS_BLOCK_SIZE *size3);
#endif /* _EMUFS_TIPO3_H_ */