diff options
author | Matias Linares <matiaslina@opmbx.org> | 2015-04-26 21:43:42 -0300 |
---|---|---|
committer | Matias Linares <matiaslina@opmbx.org> | 2015-04-26 21:43:42 -0300 |
commit | 2dd5cf430edaae01594d566c9f27d780c3ffb4ef (patch) | |
tree | 13111bc82a73e951d5d7c07865a206c025d15529 /dir.h | |
download | medianinfs-2dd5cf430edaae01594d566c9f27d780c3ffb4ef.tar.gz |
Initial commit
Diffstat (limited to 'dir.h')
-rw-r--r-- | dir.h | 41 |
1 files changed, 41 insertions, 0 deletions
@@ -0,0 +1,41 @@ +#ifndef _DIR_H +#define _DIR_H + +#define _GNU_SOURCE +#include "inode.h" +#include <time.h> +#include <stdlib.h> +#include <fuse.h> + + +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 |