fs-api-private.h revision e13e798694ba1b0d0a5cf471600168eeaa8d2af4
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen enum fs_properties (*get_properties)(struct fs *fs);
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen struct fs_file *(*file_init)(struct fs *fs, const char *path,
3dcb9fd82c1edd40bea1ad572ed39f024686e463Timo Sirainen const char *(*get_path)(struct fs_file *file);
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen void (*set_async_callback)(struct fs_file *file,
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen void (*set_metadata)(struct fs_file *file, const char *key,
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen const char *value);
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen bool (*prefetch)(struct fs_file *file, uoff_t length);
c33d3f93abf8392fdc60e12bea41ffd12cc85a8dTimo Sirainen ssize_t (*read)(struct fs_file *file, void *buf, size_t size);
c33d3f93abf8392fdc60e12bea41ffd12cc85a8dTimo Sirainen struct istream *(*read_stream)(struct fs_file *file,
c33d3f93abf8392fdc60e12bea41ffd12cc85a8dTimo Sirainen int (*write)(struct fs_file *file, const void *data, size_t size);
c33d3f93abf8392fdc60e12bea41ffd12cc85a8dTimo Sirainen int (*write_stream_finish)(struct fs_file *file, bool success);
c33d3f93abf8392fdc60e12bea41ffd12cc85a8dTimo Sirainen int (*lock)(struct fs_file *file, unsigned int secs,
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen int (*stat)(struct fs_file *file, struct stat *st_r);
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen int (*copy)(struct fs_file *src, struct fs_file *dest);
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen int (*rename)(struct fs_file *src, struct fs_file *dest);
63e94e8f57920b510fcdc479c5482ba9f4337a5cTimo Sirainen struct fs_iter *(*iter_init)(struct fs *fs, const char *path,
c59b9c273b41f7bcf51f6803110b67813879ff05Timo Sirainen const char *(*iter_next)(struct fs_iter *iter);
c4e3c997c04eb6f93f782c5fa53354390ed07a02Timo Sirainen struct fs *parent; /* for wrapper filesystems */
5804ddddad82319839785885fdacbba60e0c9581Timo Sirainen /* may be used by fs_wait_async() to do the waiting */
e13e798694ba1b0d0a5cf471600168eeaa8d2af4Timo Sirainen /* linked list of all files */
67a163f3a07593446fab1cbbb8f92a89d4c6cb57Timo Sirainen const struct hash_method *write_digest_method;
e13e798694ba1b0d0a5cf471600168eeaa8d2af4Timo Sirainen /* linked list of all iters */
c33d3f93abf8392fdc60e12bea41ffd12cc85a8dTimo Sirainenvoid fs_set_error(struct fs *fs, const char *fmt, ...) ATTR_FORMAT(2, 3);
c33d3f93abf8392fdc60e12bea41ffd12cc85a8dTimo Sirainenvoid fs_set_critical(struct fs *fs, const char *fmt, ...) ATTR_FORMAT(2, 3);
84669c712403b742cc07ae70229725c486ef1235Timo Sirainenssize_t fs_read_via_stream(struct fs_file *file, void *buf, size_t size);
84669c712403b742cc07ae70229725c486ef1235Timo Sirainenint fs_write_via_stream(struct fs_file *file, const void *data, size_t size);
84669c712403b742cc07ae70229725c486ef1235Timo Sirainenvoid fs_default_set_metadata(struct fs_file *file,
84669c712403b742cc07ae70229725c486ef1235Timo Sirainenint fs_default_copy(struct fs_file *src, struct fs_file *dest);