diff options
Diffstat (limited to 'subversion/include/svn_fs.h')
-rw-r--r-- | subversion/include/svn_fs.h | 58 |
1 files changed, 53 insertions, 5 deletions
diff --git a/subversion/include/svn_fs.h b/subversion/include/svn_fs.h index 179774e..198757c 100644 --- a/subversion/include/svn_fs.h +++ b/subversion/include/svn_fs.h @@ -1744,7 +1744,7 @@ svn_fs_paths_changed3(svn_fs_path_change_iterator_t **iterator, * * Use @a pool for all allocations, including the hash and its values. * - * @note Retrieving the #node_rev_id element of #svn_fs_path_change2_t may + * @note Retrieving the #svn_fs_path_change2_t.node_rev_id element may * be expensive in some FS backends. * * @since New in 1.6. @@ -1828,9 +1828,9 @@ svn_fs_node_history(svn_fs_history_t **history_p, * the same as the original. This will happen if the original * location was an interesting one (where the node was modified, or * took place in a copy event). This behavior allows looping callers - * to avoid the calling svn_fs_history_location() on the object - * returned by svn_fs_node_history(), and instead go ahead and begin - * calling svn_fs_history_prev(). + * to avoid calling svn_fs_history_location() on the object returned + * by svn_fs_node_history(), and instead go ahead and begin calling + * svn_fs_history_prev(). * * @note This function uses node-id ancestry alone to determine * modifiedness, and therefore does NOT claim that in any of the @@ -2492,7 +2492,7 @@ svn_fs_file_md5_checksum(unsigned char digest[], * svn_fs_file_contents(). In that case, the result of reading from * @a *contents is undefined. * - * ### @todo kff: I am worried about lifetime issues with this pool vs + * @todo kff: I am worried about lifetime issues with this pool vs * the trail created farther down the call stack. Trace this function * to investigate... */ @@ -3503,6 +3503,54 @@ svn_fs_info_dup(const void *info, apr_pool_t *result_pool, apr_pool_t *scratch_pool); +/** + * A structure specifying the filesystem-specific input/output operation. + * + * @see svn_fs_ioctl() + * + * @since New in 1.13. + */ +typedef struct svn_fs_ioctl_code_t +{ + const char *fs_type; + int code; +} svn_fs_ioctl_code_t; + +/** + * A convenience macro to declare #svn_fs_ioctl_code_t codes. + * + * @since New in 1.13. + */ +#define SVN_FS_DECLARE_IOCTL_CODE(name, fs_type, code) \ + static const svn_fs_ioctl_code_t name = { fs_type, code } + +/** + * Issue a filesystem-specific input/output operation defined by @a ctlcode + * (usually, a low-level operation which cannot be expressed by other + * filesystem APIs). If @a fs is @c NULL, issue a global operation. + * If @a fs is not @c NULL, issue an operation that is specific to this + * filesystem instance. + * + * If the filesystem cannot handle this ioctl code, return the + * #SVN_ERR_FS_UNRECOGNIZED_IOCTL_CODE error. + * + * Allocate the result in @a result_pool, use @a scratch_pool for temporary + * allocations. + * + * @see #svn_fs_ioctl_code_t + * + * @since New in 1.13. + */ +svn_error_t * +svn_fs_ioctl(svn_fs_t *fs, + svn_fs_ioctl_code_t ctlcode, + void *input, + void **output_p, + svn_cancel_func_t cancel_func, + void *cancel_baton, + apr_pool_t *result_pool, + apr_pool_t *scratch_pool); + /** @} */ #ifdef __cplusplus |