+/** Lee un registro con su informacion de control
+ * \param emu Esructura para manejar los archivos.
+ * \param ID Id del registro a leer.
+ * \param reg_size Tamaño del registro.
+ * \param err Codigo de error devuelto en caso de falla.
+ */
+void* emufs_tipo3_leer_registro_raw(EMUFS *emu, EMUFS_REG_ID reg_id, EMUFS_REG_SIZE *reg_size, int *err);
+
+/** Elimina los espacios libres que hay en el archivo
+ * \param emu Esructura para manejar los archivos.
+ */
+void emufs_tipo3_compactar(EMUFS *emu);
+
+/** Lee un bloque, el anterior y el siguiente
+ * \param emu Esructura para manejar los archivos.
+ * \param block_id Id del bloque a leer.
+ * \param actual Cadena de datos que almacena el bloque indicado por \c block_id.
+ * \param anterior Cadena de datos que almacena el bloque anterior al \c actual.
+ * \param siguiente Cadena de datos que almacena el bloque siguiente al \c actual.
+ * \param size1 Tamaño del bloque actual.
+ * \param size2 Tamaño del bloque anterior.
+ * \param size3 Tamaño del bloque siguiente.
+ */
+void emufs_tipo3_leer_bloque_raw(EMUFS *emu, EMUFS_BLOCK_ID block_id, char **actual, char **anterior, char **siguiente, EMUFS_BLOCK_SIZE *size1, EMUFS_BLOCK_SIZE *size2, EMUFS_BLOCK_SIZE *size3);
+
+/** Inserta un registro ordenado segun el Arbol B+ lo indique
+ * \param emu Esructura para manejar los archivos.
+ * \param ptr Cadena de datos contenedora del registro.
+ * \param clave Clave de ordenamiento.
+ * \param offset Distancia en bytes hasta la clave.
+ * \param num_bloque Numero de bloque donde se insertara el registro.
+ */
+int emufs_tipo3_insertar_ordenado(EMUFS *emu, void *ptr, CLAVE clave, int offset, EMUFS_BLOCK_ID num_bloque, int *err);