#include <stdlib.h>
#include <stdio.h>
+typedef unsigned long int Uint32;
+
typedef struct _bs_t_ t_BlockSort;
typedef struct _bs_data_t_ {
- unsigned long int pos_inicial;
- unsigned long int pos_final;
+ Uint32 pos_inicial;
+ Uint32 pos_final;
char ord; /* indica si esta ordenada */
/* Guardo el puntero al padre */
struct _bs_t_ {
char *data;
t_BlockSortData *array;
- unsigned long int len;
+ Uint32 len;
};
+
/** Inicializa un BlockSorting
*
* \param len Tamaño de página a utilizar
*/
-t_BlockSort *bs_create(unsigned long int len);
+t_BlockSort *bs_create(Uint32 len);
/** Libera un BlockSorting
*
* \param k Puntero donde guardar la posicion del array original.
* \oaram leido Tamaño de in (por si el tamaño de in es menor al de la pagina).
*/
-void bs_solve(char *in, char *out, t_BlockSort *bs, unsigned long int *k, unsigned int leido);
+void bs_solve(char *in, char *out, t_BlockSort *bs, Uint32 *k, Uint32 leido);
/** Obtiene el array original a partir de dst y k
*
* \param k Valor retornado por bs_solve.
* \param len Tamaño de c
*/
-void bs_restore(char *dst, char *c, unsigned long int k, unsigned long int len);
+void bs_restore(char *dst, char *c, Uint32 k, Uint32 len);
+
+int bs_readblock(FILE *fp, char *data, Uint32 pagesize);
#endif