return registro;
}
-/* @todo TODO hacer que soporte registros de más de un bloque */
-void* emufs_tipo1_leer_registro_raw(EMUFS *efs, EMUFS_REG_ID id,
- EMUFS_REG_SIZE *size, int *pos)
+void* emufs_tipo1_leer_registro_raw(EMUFS *efs, EMUFS_REG_ID id, EMUFS_REG_SIZE *size, int *pos)
{
char *chunk_ptr;
char* block; /* bloque leido (en donde está el registro a leer) */
cant_bloques = curr_reg_header.size / block_space + 1;
*size = cant_bloques*efs->tam_bloque;
- registro = chunk_ptr = (char*) malloc(*size - (cant_bloques-1)*sizeof(EMUFS_TIPO1_REG_HEADER));
+ registro = chunk_ptr = (char*) malloc(*size - (cant_bloques-1)*sizeof(EMUFS_TIPO1_REG_HEADER) + (cant_bloques-1)*2);
if (registro == NULL) {
/* TODO Manejo de errores */
free(block);
err = 0;
block = (char*)emufs_tipo1_leer_bloque(efs, block_id+i, &err);
/* Solo grabo el header del primer pedazo! */
- memcpy(registro, block+sizeof(EMUFS_TIPO1_REG_HEADER), efs->tam_bloque);
- chunk_ptr += efs->tam_bloque;
+ memcpy(chunk_ptr, "<>", 2);
+ chunk_ptr += 2;
+ memcpy(chunk_ptr, block+sizeof(EMUFS_TIPO1_REG_HEADER), efs->tam_bloque-sizeof(EMUFS_TIPO1_REG_HEADER));
+ chunk_ptr += efs->tam_bloque-sizeof(EMUFS_TIPO1_REG_HEADER);
free(block);
}
/* Todo listo! */