+extern void dir_free_invalid_q(void);
+extern struct dir *dir_new(const char *mname, const char *uname, const struct vol *,
+ cnid_t pdid, cnid_t did, bstring fullpath, struct stat *);
+extern void dir_free (struct dir *);
+extern struct dir *dir_add(struct vol *, const struct dir *, struct path *, int);
+extern int dir_modify(const struct vol *vol, struct dir *dir, cnid_t pdid, cnid_t did,
+ const char *new_mname, const char *new_uname, bstring pdir_fullpath);
+extern int dir_remove(const struct vol *vol, struct dir *dir);
+extern struct dir *dirlookup (const struct vol *, cnid_t);
+extern struct dir *dirlookup_bypath(const struct vol *vol, const char *path);
+
+extern int movecwd (const struct vol *, struct dir *);
+extern struct path *cname (struct vol *, struct dir *, char **);
+
+extern int deletecurdir (struct vol *);
+extern mode_t mtoumode (struct maccess *);
+extern void utommode (struct stat *, struct maccess *);
+extern int getdirparams (const struct vol *, u_int16_t, struct path *,
+ struct dir *, char *, size_t *);
+
+extern int setdirparams(struct vol *, struct path *, u_int16_t, char *);
+extern int renamedir(const struct vol *, int, char *, char *, struct dir *,
+ struct dir *, char *);
+extern int path_error(struct path *, int error);
+extern void setdiroffcnt(struct dir *dir, struct stat *st, u_int32_t count);
+extern int dirreenumerate(struct dir *dir, struct stat *st);
+extern int for_each_dirent(const struct vol *, char *, dir_loop , void *);
+extern int check_access(char *name , int mode);
+extern int file_access(struct path *path, int mode);
+extern int netatalk_unlink (const char *name);
+extern int caseenumerate (const struct vol *, struct path *, struct dir *);