1 | // SPDX-License-Identifier: GPL-2.0+ |
2 | /* |
3 | * Copyright (C) 2017 Oracle. All Rights Reserved. |
4 | * Author: Darrick J. Wong <darrick.wong@oracle.com> |
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_to_internal(struct xfs_fsmap *dest, struct fsmap *src); |
31 | |
32 | int xfs_getfsmap(struct xfs_mount *mp, struct xfs_fsmap_head *head, |
33 | struct fsmap *out_recs); |
34 | |
35 | #endif /* __XFS_FSMAP_H__ */ |
36 | |