+/* Borra un registro del indice dada la eliminacion fisica de un reg */
+int emufs_idx_borrar(EMUFS *emu, EMUFS_REG_ID idreg)
+{
+ FILE *f_idx;
+ EMUFS_IDX reg;
+ char name_f_idx[255];
+
+ strcpy(name_f_idx,emu->nombre);
+ strcat(name_f_idx, EMUFS_IDX_EXT);
+
+ if ( (f_idx = fopen(name_f_idx,"r+"))==NULL ) return 1;
+
+ if (fseek(f_idx, sizeof(EMUFS_IDX)*idreg, SEEK_SET) == 0) {
+ reg.id_reg = idreg;
+ reg.location = EMUFS_NOT_FOUND;
+ fwrite(®, sizeof(EMUFS_IDX), 1, f_idx);
+ }
+ fclose(f_idx);
+
+ return 0;
+}
+
+EMUFS_REG_ID emufs_idx_get_new_id(EMUFS* efs, int* err)
+{
+ EMUFS_REG_ID id;
+
+ id = emufs_did_get_last(efs, err);
+ if (id == EMUFS_NOT_FOUND) {
+ if (*err) {
+ PERR("error al obtener ultimo id");
+ return id;
+ }
+ id = emufs_idx_buscar_mayor_id_libre(efs, err);
+ if (*err) {
+ PERR("error al obtener id mayor");
+ return EMUFS_NOT_FOUND;
+ }
+ }
+
+ return id;
+}
+
+EMUFS_REG_ID *emufs_idx_get(EMUFS *emu, EMUFS_REG_ID *cant)