]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - scrub/read_verify.h
Remove use of LFS64 interfaces
[thirdparty/xfsprogs-dev.git] / scrub / read_verify.h
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3 * Copyright (C) 2018-2024 Oracle. All Rights Reserved.
4 * Author: Darrick J. Wong <djwong@kernel.org>
5 */
6 #ifndef XFS_SCRUB_READ_VERIFY_H_
7 #define XFS_SCRUB_READ_VERIFY_H_
8
9 struct scrub_ctx;
10 struct read_verify_pool;
11 struct disk;
12
13 /* Function called when an IO error happens. */
14 typedef void (*read_verify_ioerr_fn_t)(struct scrub_ctx *ctx,
15 struct disk *disk, uint64_t start, uint64_t length,
16 int error, void *arg);
17
18 int read_verify_pool_alloc(struct scrub_ctx *ctx, struct disk *disk,
19 size_t miniosz, read_verify_ioerr_fn_t ioerr_fn,
20 unsigned int submitter_threads,
21 struct read_verify_pool **prvp);
22 void read_verify_pool_abort(struct read_verify_pool *rvp);
23 int read_verify_pool_flush(struct read_verify_pool *rvp);
24 void read_verify_pool_destroy(struct read_verify_pool *rvp);
25
26 int read_verify_schedule_io(struct read_verify_pool *rvp, uint64_t start,
27 uint64_t length, void *end_arg);
28 int read_verify_force_io(struct read_verify_pool *rvp);
29 int read_verify_bytes(struct read_verify_pool *rvp, uint64_t *bytes);
30
31 #endif /* XFS_SCRUB_READ_VERIFY_H_ */