X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/a41bfdd272e2ca232e06677b4e5400e367ba8f81..a499b030d1840a0714721695cd6fcf54bc7dbb68:/emufs/indices.h?ds=sidebyside diff --git a/emufs/indices.h b/emufs/indices.h index 935bc6e..7e3d70a 100644 --- a/emufs/indices.h +++ b/emufs/indices.h @@ -5,9 +5,11 @@ #include #include +#define STRUCT_OFFSET(x, y) ((int)(&(x->y))-(int)(x)) + typedef struct _emu_fs_t EMUFS; -typedef enum {IND_B_MAS, IND_B_ASC} INDICE_TIPO; +typedef enum {IND_B, IND_B_ASC} INDICE_TIPO; typedef enum {IDX_FLOAT, IDX_INT} INDICE_TIPO_DATO; @@ -20,6 +22,7 @@ typedef struct _indices_h_ { INDICE_TIPO tipo; INDICE_TIPO_DATO tipo_dato; int offset; + unsigned int tam_bloque; /* debe ser multiplo de 512! */ /** Agrega la clave k de posicion location en el * indice de forma ordenada @@ -38,9 +41,13 @@ typedef struct _indices_h_ { struct _indices_h_ *sig; } INDICE; -INDICE *emufs_indice_crear(EMUFS *emu, char *nombre, INDICE_TIPO tipo, INDICE_TIPO_DATO tipo_dato, unsigned int offset); +INDICE *emufs_indice_crear(EMUFS *emu, char *nombre, INDICE_TIPO tipo, INDICE_TIPO_DATO tipo_dato, unsigned int offset, unsigned tam_bloque); void emufs_indice_destruir(EMUFS *emu, INDICE *i); +void emufs_indice_agregar(INDICE *primero, char *data, int ubicacion); CLAVE emufs_indice_obtenet_clave(INDICE *idx, char *data); + +int emufs_indice_es_menor(INDICE *idx, CLAVE c1, CLAVE c2); +int emufs_indice_es_igual(INDICE *idx, CLAVE c1, CLAVE c2); #endif