From 2dd5cf430edaae01594d566c9f27d780c3ffb4ef Mon Sep 17 00:00:00 2001 From: Matias Linares Date: Sun, 26 Apr 2015 21:43:42 -0300 Subject: Initial commit --- dir.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 dir.h (limited to 'dir.h') diff --git a/dir.h b/dir.h new file mode 100644 index 0000000..8c04b05 --- /dev/null +++ b/dir.h @@ -0,0 +1,41 @@ +#ifndef _DIR_H +#define _DIR_H + +#define _GNU_SOURCE +#include "inode.h" +#include +#include +#include + + +typedef inode dir; + +/* Crea un directorio con el modo pasado por parametro. + * Retorna el numero de inodo alocado. 0 en caso de error. */ +uint16_t dir_create(const char *disk_mem, mode_t mode); + +/* Agrega un direntry al directorio @d@ pasado por parametro. + * En caso de error retorna 0. */ +uint16_t dir_add_direntry(const char *disk_mem, dir *d, const char *name, + uint16_t inumber, uint16_t sym); +/* Quita un direntry del directorio y devuelve el numero de inodo a liberar + * a posteriori */ +uint16_t dir_remove_direntry(const char *disk_mem, dir *d, const char *name); + +/* Busca un nombre por las direntry del dir. Retorna el inodo del nombre + * buscado o 0 si no lo encuentra. */ +uint16_t dir_search(const char *disk_mem, dir *d,const char *name); + +/* Renombra un inodo pisando el nombre antiguo*/ +int dir_rename_inode(const char *disk_mem, dir *d, + const char *old_name, const char *new_name); + +/* Abstraccion del readdir */ +uint16_t dir_readdir(const char *disk_mem, dir *d, + void *buf, fuse_fill_dir_t filler); + +/* Retorna el ultimo directorio del path dado. + * Ex: path=/usr/share/icons/archlinux.png, retorna el directorio de incons*/ +dir *dir_get_from_path(const char *disk_mem, const char *path); + +#endif -- cgit v1.2.3-70-g09d2