-extern int getdirparams __P((const struct vol *, u_int16_t, char *,
- struct dir *, struct stat *, char *, int *));
-extern int setdirparams __P((const struct vol *, char *, u_int16_t, char *));
-extern int renamedir __P((char *, char *, struct dir *,
- struct dir *, char *, const int));
+extern int getdirparams __P((const struct vol *, u_int16_t, struct path *,
+ struct dir *, char *, int *));
+extern int setdirparams __P((const struct vol *, struct path *, u_int16_t, char *));
+extern int renamedir __P((const struct vol *, char *, char *, struct dir *,
+ struct dir *, char *));
+extern int path_error __P((struct path *, int error));
+
+extern void setdiroffcnt __P((struct dir *dir, struct stat *st, u_int32_t count));
+extern int dirreenumerate __P((struct dir *dir, struct stat *st));
+
+typedef int (*dir_loop)(struct dirent *, char *, void *);