fs.h 890 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* See LICENSE file for copyright and license details. */
  2. #include <limits.h>
  3. #include <sys/stat.h>
  4. #include <sys/types.h>
  5. struct history {
  6. struct history *prev;
  7. dev_t dev;
  8. ino_t ino;
  9. };
  10. struct recursor {
  11. void (*fn)(int, const char *, struct stat *, void *, struct recursor *);
  12. char path[PATH_MAX];
  13. size_t pathlen;
  14. struct history *hist;
  15. int depth;
  16. int maxdepth;
  17. int follow;
  18. int flags;
  19. };
  20. enum {
  21. SAMEDEV = 1 << 0,
  22. DIRFIRST = 1 << 1,
  23. SILENT = 1 << 2,
  24. };
  25. extern int cp_aflag;
  26. extern int cp_fflag;
  27. extern int cp_pflag;
  28. extern int cp_rflag;
  29. extern int cp_vflag;
  30. extern int cp_follow;
  31. extern int cp_status;
  32. extern int rm_fflag;
  33. extern int rm_rflag;
  34. extern int rm_status;
  35. extern int recurse_status;
  36. void recurse(int, const char *, void *, struct recursor *);
  37. int cp(const char *, const char *, int);
  38. void rm(int, const char *, struct stat *st, void *, struct recursor *);