storagedir.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /* Copyright (c) 2017, The Tor Project, Inc. */
  2. /* See LICENSE for licensing information */
  3. #ifndef TOR_STORAGEDIR_H
  4. #define TOR_STORAGEDIR_H
  5. typedef struct storage_dir_t storage_dir_t;
  6. struct sandbox_cfg_elem;
  7. storage_dir_t * storage_dir_new(const char *dirname, int n_files);
  8. void storage_dir_free(storage_dir_t *d);
  9. int storage_dir_register_with_sandbox(storage_dir_t *d,
  10. struct sandbox_cfg_elem **cfg);
  11. const smartlist_t *storage_dir_list(storage_dir_t *d);
  12. uint64_t storage_dir_get_usage(storage_dir_t *d);
  13. tor_mmap_t *storage_dir_map(storage_dir_t *d, const char *fname);
  14. uint8_t *storage_dir_read(storage_dir_t *d, const char *fname, int bin,
  15. size_t *sz_out);
  16. int storage_dir_save_bytes_to_file(storage_dir_t *d,
  17. const uint8_t *data,
  18. size_t length,
  19. int binary,
  20. char **fname_out);
  21. int storage_dir_save_string_to_file(storage_dir_t *d,
  22. const char *data,
  23. int binary,
  24. char **fname_out);
  25. void storage_dir_remove_file(storage_dir_t *d,
  26. const char *fname);
  27. int storage_dir_shrink(storage_dir_t *d,
  28. uint64_t target_size,
  29. int min_to_remove);
  30. int storage_dir_remove_all(storage_dir_t *d);
  31. #endif