]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/tipo1.c
* BUGFIX : Estaba siendo olvidado verificar de no sobrepasar
[z.facultad/75.06/emufs.git] / emufs / tipo1.c
index eeaef09e97908f73ac4135f6ef775fb09cf10fa3..0db0f3a3c85ccbd695d65dcc931d646072c22744 100644 (file)
 #include "idx.h"
 #include "fsc.h"
 #include "did.h"
+#include <unistd.h>
+#include <sys/types.h>
 #include <stdio.h>
 #include <math.h>
 #include <stdlib.h>
 #include <string.h>
-#include <unistd.h>
 
 #ifndef MIN
 #      define MIN(x, y) (((x) > (y)) ? (y) : (x))
@@ -89,6 +90,7 @@ int emufs_tipo1_inicializar(EMUFS* efs)
        }
        /* Asigna punteros a funciones. */
        efs->leer_bloque       = emufs_tipo1_leer_bloque;
+       efs->leer_bloque_raw   = emufs_tipo1_leer_bloque_raw;
        efs->grabar_registro   = emufs_tipo1_grabar_registro;
        efs->borrar_registro   = emufs_tipo1_borrar_registro;
        efs->leer_registro     = emufs_tipo1_leer_registro;
@@ -734,3 +736,12 @@ long emufs_tipo1_get_file_size(EMUFS* efs, int* err)
        return file_size;
 }
 
+void emufs_tipo1_leer_bloque_raw(EMUFS *efs, EMUFS_BLOCK_ID id, char **actual, char **anterior, char **siguiente, EMUFS_BLOCK_SIZE *size1, EMUFS_BLOCK_SIZE *size2, EMUFS_BLOCK_SIZE *size3)
+{
+       int err;
+       (*actual) = emufs_tipo1_leer_bloque(efs, id, &err);
+       (*anterior) = emufs_tipo1_leer_bloque(efs, id-1, &err);
+       (*siguiente) = emufs_tipo1_leer_bloque(efs, id+1, &err);
+       (*size1) = (*size2) = (*size3) = efs->tam_bloque;
+}
+