]>
Commit | Line | Data |
---|---|---|
0b61f8a4 | 1 | // SPDX-License-Identifier: GPL-2.0+ |
e89c0413 DW |
2 | /* |
3 | * Copyright (C) 2017 Oracle. All Rights Reserved. | |
e89c0413 | 4 | * Author: Darrick J. Wong <[email protected]> |
e89c0413 DW |
5 | */ |
6 | #ifndef __XFS_FSMAP_H__ | |
7 | #define __XFS_FSMAP_H__ | |
8 | ||
9 | struct fsmap; | |
10 | ||
11 | /* internal fsmap representation */ | |
12 | struct xfs_fsmap { | |
13 | dev_t fmr_device; /* device id */ | |
14 | uint32_t fmr_flags; /* mapping flags */ | |
15 | uint64_t fmr_physical; /* device offset of segment */ | |
16 | uint64_t fmr_owner; /* owner id */ | |
17 | xfs_fileoff_t fmr_offset; /* file offset of segment */ | |
18 | xfs_filblks_t fmr_length; /* length of segment, blocks */ | |
19 | }; | |
20 | ||
21 | struct xfs_fsmap_head { | |
22 | uint32_t fmh_iflags; /* control flags */ | |
23 | uint32_t fmh_oflags; /* output flags */ | |
24 | unsigned int fmh_count; /* # of entries in array incl. input */ | |
25 | unsigned int fmh_entries; /* # of entries filled in (output). */ | |
26 | ||
27 | struct xfs_fsmap fmh_keys[2]; /* low and high keys */ | |
28 | }; | |
29 | ||
30 | void xfs_fsmap_from_internal(struct fsmap *dest, struct xfs_fsmap *src); | |
31 | void xfs_fsmap_to_internal(struct xfs_fsmap *dest, struct fsmap *src); | |
32 | ||
33 | /* fsmap to userspace formatter - copy to user & advance pointer */ | |
34 | typedef int (*xfs_fsmap_format_t)(struct xfs_fsmap *, void *); | |
35 | ||
36 | int xfs_getfsmap(struct xfs_mount *mp, struct xfs_fsmap_head *head, | |
37 | xfs_fsmap_format_t formatter, void *arg); | |
38 | ||
39 | #endif /* __XFS_FSMAP_H__ */ |