18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _LINUX_FIEMAP_H
38c2ecf20Sopenharmony_ci#define _LINUX_FIEMAP_H 1
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <uapi/linux/fiemap.h>
68c2ecf20Sopenharmony_ci#include <linux/fs.h>
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cistruct fiemap_extent_info {
98c2ecf20Sopenharmony_ci	unsigned int fi_flags;		/* Flags as passed from user */
108c2ecf20Sopenharmony_ci	unsigned int fi_extents_mapped;	/* Number of mapped extents */
118c2ecf20Sopenharmony_ci	unsigned int fi_extents_max;	/* Size of fiemap_extent array */
128c2ecf20Sopenharmony_ci	struct fiemap_extent __user *fi_extents_start; /* Start of
138c2ecf20Sopenharmony_ci							fiemap_extent array */
148c2ecf20Sopenharmony_ci};
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciint fiemap_prep(struct inode *inode, struct fiemap_extent_info *fieinfo,
178c2ecf20Sopenharmony_ci		u64 start, u64 *len, u32 supported_flags);
188c2ecf20Sopenharmony_ciint fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical,
198c2ecf20Sopenharmony_ci			    u64 phys, u64 len, u32 flags);
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciint generic_block_fiemap(struct inode *inode,
228c2ecf20Sopenharmony_ci		struct fiemap_extent_info *fieinfo, u64 start, u64 len,
238c2ecf20Sopenharmony_ci		get_block_t *get_block);
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci#endif /* _LINUX_FIEMAP_H 1 */
26