X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fatalk%2Fdirectory.h;h=e474faf59fec95c9b1bdc27e81edaa767a1e54ad;hb=b0bcb8f6b0571592a50ce039882c9319e012a270;hp=dd889dbb874018677e8dcc0861c4e2fe777101bf;hpb=8f6bea54f2115259a524ebade0fa346be1e0c2dd;p=netatalk.git diff --git a/include/atalk/directory.h b/include/atalk/directory.h index dd889dbb..e474faf5 100644 --- a/include/atalk/directory.h +++ b/include/atalk/directory.h @@ -1,6 +1,4 @@ /* - * $Id: directory.h,v 1.3.2.1 2010-02-01 10:56:08 franklahm Exp $ - * * Copyright (c) 1990,1991 Regents of The University of Michigan. * All Rights Reserved. * @@ -26,9 +24,8 @@ #ifndef ATALK_DIRECTORY_H #define ATALK_DIRECTORY_H 1 -#include #include -#include +#include #include #include @@ -49,22 +46,36 @@ #define DIRDID_ROOT_PARENT htonl(1) /* parent directory of root */ #define DIRDID_ROOT htonl(2) /* root directory */ +/* struct dir.d_flags */ +#define DIRF_FSMASK (3<<0) +#define DIRF_NOFS (0<<0) +#define DIRF_AFS (1<<0) +#define DIRF_UFS (1<<1) +#define DIRF_ISFILE (1<<3) /* it's cached file, not a directory */ +#define DIRF_OFFCNT (1<<4) /* offsprings count is valid */ +#define DIRF_CNID (1<<5) /* renumerate id */ + struct dir { - bstring d_fullpath; /* complete unix path to dir */ + bstring d_fullpath; /* complete unix path to dir (or file) */ bstring d_m_name; /* mac name */ bstring d_u_name; /* unix name */ /* be careful here! if d_m_name == d_u_name, d_u_name */ /* will just point to the same storage as d_m_name !! */ ucs2_t *d_m_name_ucs2; /* mac name as UCS2 */ qnode_t *qidx_node; /* pointer to position in queue index */ - void *d_ofork; /* oforks using this directory. */ - time_t ctime; /* inode ctime */ + time_t d_ctime; /* inode ctime, used and modified by reenumeration */ + int d_flags; /* directory flags */ cnid_t d_pdid; /* CNID of parent directory */ cnid_t d_did; /* CNID of directory */ - uint32_t offcnt; /* offspring count */ + uint32_t d_offcnt; /* offspring count */ uint16_t d_vid; /* only needed in the dircache, because we put all directories in one cache. */ + uint32_t d_rights_cache; /* cached rights combinded from mode and possible ACL */ + + /* Stuff used in the dircache */ + time_t dcache_ctime; /* inode ctime, used and modified by dircache */ + ino_t dcache_ino; /* inode number, used to detect changes in the dircache */ }; struct path {