30#define DIR_PAGESIZE 2048
33#define DIR_MAXPAGES 128
36#define DIR_DATA_IN_RVM 1
37#define DIR_DATA_IN_VM 0
104 int (*hookproc)(
struct DirEntry *de,
void *hook),
113#define ISDIR(fid) ((fid).Vnode & 1)
115#define FID_LT(a, b) \
117 ((((a).Vnode) < ((b).Vnode)) || \
118 ((a).Vnode == (b).Vnode && ((a).Unique) < ((b).Unique)))
120#define FID_LTE(a, b) \
122 ((((a).Vnode) < ((b).Vnode)) || \
123 ((a).Vnode == (b).Vnode && ((a).Unique) <= ((b).Unique)))
148int FID_EQ(
const struct ViceFid *fa,
const struct ViceFid *fb);
149int FID_VolEQ(
const struct ViceFid *fa,
const struct ViceFid *fb);
150int FID_Cmp(
const struct ViceFid *,
const struct ViceFid *);
153void FID_CpyVol(
struct ViceFid *target,
const struct ViceFid *source);
154void FID_VFid2DFid(
const struct ViceFid *vf,
struct DirFid *df);
157void FID_Int2DFid(
struct DirFid *fid,
const int vnode,
const int unique);
161char *
FID_(
const struct ViceFid *fid);
168#define DIR_intrans() DIR_check_trans(__FUNCTION__, __FILE__)
#define REQUIRES_TRANSACTION
Definition: coda_tsa.h:107
int DH_IsEmpty(PDirHandle dh)
Definition: codadir.c:124
PDirHandle DC_DC2DH(PDCEntry)
Definition: dhcache.c:264
char * FID_(const struct ViceFid *fid)
Definition: fid.c:203
int FID_VolEQ(const struct ViceFid *fa, const struct ViceFid *fb)
Definition: fid.c:108
void FID_NFid2Int(const struct DirNFid *fid, VnodeId *vnode, Unique_t *unique)
Definition: fid.c:59
struct DirHeader * PDirHeader
Definition: codadir.h:41
int DI_Count(PDirInode)
Definition: dirinode.c:154
int DH_Create(PDirHandle dh, const char *entry, struct ViceFid *vfid)
Definition: codadir.c:106
struct DCEntry * PDCEntry
Definition: codadir.h:43
PDirInode DC_DC2DI(PDCEntry pdce)
Definition: dhcache.c:276
int FID_EQ(const struct ViceFid *fa, const struct ViceFid *fb)
Definition: fid.c:97
void * DI_Page(PDirInode, int)
Definition: dirinode.c:173
int FID_IsFakeRoot(struct ViceFid *fid)
Definition: fid.c:176
void DC_SetDirty(PDCEntry, int)
Definition: dhcache.c:307
void DC_SetCowpdi(PDCEntry, PDirInode)
Definition: dhcache.c:294
void DH_Free(PDirHandle dh, int in_rvm)
void DIR_Print(PDirHeader, FILE *f)
Definition: dirbody.c:693
#define DIR_MAXPAGES
Definition: codadir.h:33
void DH_UnLockW(PDirHandle dh)
Definition: codadir.c:61
int DH_Lookup(PDirHandle dh, const char *entry, struct ViceFid *vfid, int flags)
Definition: codadir.c:138
void DI_Inc(PDirInode pdi) REQUIRES_TRANSACTION
Definition: dirinode.c:141
PDirHeader DI_DiToDh(PDirInode pdi)
Definition: dirinode.c:36
void DH_Alloc(PDirHandle dh, int size, int in_rvm)
Definition: codadir.c:204
int FID_IsLocalDir(const struct ViceFid *fid)
Definition: fid.c:126
char * DH_FindName(PDirHandle dh, struct DirFid *fid, char *name, int len)
int FID_IsDisco(const struct ViceFid *x)
Definition: fid.c:121
int DC_Refcount(PDCEntry)
Definition: dhcache.c:254
void FID_Int2DFid(struct DirFid *fid, const int vnode, const int unique)
Definition: fid.c:50
void FID_PrintFid(const struct DirFid *fid)
void DC_SetDirh(PDCEntry pdce, PDirHeader pdh)
Definition: dhcache.c:282
int FID_IsLocalFile(const struct ViceFid *fid)
Definition: fid.c:131
int DH_Delete(PDirHandle dh, const char *entry)
Definition: codadir.c:171
struct DirHandle * PDirHandle
Definition: codadir.h:42
int DC_Count(PDCEntry pdce)
Definition: dhcache.c:225
PDCEntry DC_Get(PDirInode)
Definition: dhcache.c:110
PDCEntry DC_DH2DC(PDirHandle pdh)
Definition: dhcache.c:270
PDCEntry DC_New()
Definition: dhcache.c:236
void DH_PrintStats(FILE *fp)
Definition: dirbody.c:416
int DH_LookupByFid(PDirHandle dh, char *entry, struct ViceFid *vfid)
Definition: codadir.c:154
int DH_Length(PDirHandle dh)
Definition: codadir.c:78
void FID_MakeRoot(struct ViceFid *fid)
Definition: fid.c:192
void FID_DFid2VFid(const struct DirFid *df, struct ViceFid *vf)
int DIR_Compare(PDirHeader, PDirHeader)
Definition: dirbody.c:917
void DC_SetRefcount(PDCEntry pdc, int count)
Definition: dhcache.c:259
int DC_Dirty(PDCEntry)
Definition: dhcache.c:314
void DC_SetDI(PDCEntry pdce, PDirInode pdi)
Definition: dhcache.c:288
void DI_Dec(PDirInode pdi) REQUIRES_TRANSACTION
Definition: dirinode.c:114
int DIR_Length(PDirHeader)
void FID_MakeDiscoDir(struct ViceFid *fid, VolumeId vid, Unique_t unique)
Definition: fid.c:143
struct DirInode * PDirInode
Definition: codadir.h:177
void DI_VMCopy(PDirInode oldinode, PDirInode *newinode)
Definition: dirinode.c:208
void DC_SetCount(PDCEntry pdce, int count)
Definition: dhcache.c:230
void FID_MakeLocalFile(struct ViceFid *fid, Unique_t unique)
Definition: fid.c:167
void FID_MakeLocalSubtreeRoot(struct ViceFid *fid, Unique_t unique)
Definition: fid.c:181
void DI_DhToDi(PDCEntry pdce) REQUIRES_TRANSACTION
Definition: dirinode.c:72
void FID_MakeDiscoFile(struct ViceFid *fid, VolumeId vid, Unique_t unique)
Definition: fid.c:136
int DH_EnumerateDir(PDirHandle dh, int(*hookproc)(struct DirEntry *de, void *hook), void *hook)
Definition: codadir.c:267
void DIR_check_trans(const char *where, const char *file)
Definition: dirbody.c:98
struct PageHeader * DIR_Page(struct DirHeader *dirh, int page)
Definition: dirbody.c:280
int DI_Pages(PDirInode)
Definition: dirinode.c:161
struct DirFid * PDirFid
Definition: codadir.h:40
PDirInode DC_Cowpdi(PDCEntry)
Definition: dhcache.c:301
void DC_Put(PDCEntry)
Definition: dhcache.c:211
int FID_Cmp(const struct ViceFid *, const struct ViceFid *)
Definition: fid.c:80
void DC_HashInit()
Definition: dhcache.c:198
void DH_Print(PDirHandle dh, FILE *f)
Definition: codadir.c:228
void DI_VMFree(PDirInode pdi)
Definition: dirinode.c:254
PDirHeader DH_Data(PDirHandle dh)
Definition: codadir.c:223
void DC_Rehash(PDCEntry)
Definition: dhcache.c:167
void FID_MakeLocalDir(struct ViceFid *fid, Unique_t unique)
Definition: fid.c:160
int DH_MakeDir(PDirHandle dh, struct ViceFid *vme, struct ViceFid *vparent)
Definition: codadir.c:246
int DH_Commit(PDirHandle dh)
struct DirEntry * PDirEntry
Definition: codadir.h:39
int DH_Convert(PDirHandle dh, char *file, VolumeId vol, RealmId realm)
Definition: codadir.c:92
int DH_DirOK(PDirHandle dh)
Definition: codadir.c:236
void FID_MakeSubtreeRoot(struct ViceFid *fid, VolumeId vid, Unique_t unique)
Definition: fid.c:152
void DH_LockR(PDirHandle dh)
Definition: codadir.c:56
void DH_LockW(PDirHandle dh)
Definition: codadir.c:51
PDirHandle DH_New(int in_rvm, PDirHeader vmdata, PDirHeader rvmdata)
void DC_Drop(PDCEntry)
Definition: dhcache.c:184
void DI_Copy(PDirInode oldinode, PDirInode *newinode) REQUIRES_TRANSACTION
Definition: dirinode.c:182
void DH_UnLockR(PDirHandle dh)
Definition: codadir.c:66
void FID_CpyVol(struct ViceFid *target, const struct ViceFid *source)
Definition: fid.c:44
void DH_Init(PDirHandle dh)
Definition: codadir.c:71
void DI_VMDec(PDirInode pdi)
Definition: dirinode.c:232
int DIR_Init(int data_loc)
Definition: dirbody.c:403
int FID_IsVolRoot(const struct ViceFid *fid)
Definition: fid.c:198
void DH_Get(PDirHandle, PDirHeader)
void FID_VFid2DFid(const struct ViceFid *vf, struct DirFid *df)
Definition: fid.c:66
void DH_FreeData(PDirHandle dh)
Definition: codadir.c:186
FILE * file
Definition: dirtest.c:723
@ f
Definition: rvm_private.h:416
struct DirNFid fid
Definition: codadir.h:70
char length
Definition: codadir.h:68
char name[16]
Definition: codadir.h:71
char flag
Definition: codadir.h:67
short next
Definition: codadir.h:69
int dh_dirty
Definition: codadir.h:48
Lock dh_lock
Definition: codadir.h:46
PDirHeader dh_data
Definition: codadir.h:47
Definition: codadir.h:173
int di_refcount
Definition: codadir.h:175
void * di_pages[DIR_MAXPAGES]
Definition: codadir.h:174
int dnf_vnode
Definition: codadir.h:61
int dnf_unique
Definition: codadir.h:62
Definition: codamergedump.cc:54