xref: /openbmc/linux/fs/xfs/xfs_ioctl.h (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
10b61f8a4SDave Chinner // SPDX-License-Identifier: GPL-2.0
2c59d87c4SChristoph Hellwig /*
3c59d87c4SChristoph Hellwig  * Copyright (c) 2008 Silicon Graphics, Inc.
4c59d87c4SChristoph Hellwig  * All Rights Reserved.
5c59d87c4SChristoph Hellwig  */
6c59d87c4SChristoph Hellwig #ifndef __XFS_IOCTL_H__
7c59d87c4SChristoph Hellwig #define __XFS_IOCTL_H__
8c59d87c4SChristoph Hellwig 
93e7a7799SChristoph Hellwig struct xfs_bstat;
103e7a7799SChristoph Hellwig struct xfs_ibulk;
113e7a7799SChristoph Hellwig struct xfs_inogrp;
123e7a7799SChristoph Hellwig 
13a133d952SDave Chinner int
14a133d952SDave Chinner xfs_ioc_swapext(
15a133d952SDave Chinner 	xfs_swapext_t	*sxp);
16a133d952SDave Chinner 
17c59d87c4SChristoph Hellwig extern int
18c59d87c4SChristoph Hellwig xfs_find_handle(
19c59d87c4SChristoph Hellwig 	unsigned int		cmd,
20c59d87c4SChristoph Hellwig 	xfs_fsop_handlereq_t	*hreq);
21c59d87c4SChristoph Hellwig 
22c59d87c4SChristoph Hellwig extern int
23c59d87c4SChristoph Hellwig xfs_open_by_handle(
24c59d87c4SChristoph Hellwig 	struct file		*parfilp,
25c59d87c4SChristoph Hellwig 	xfs_fsop_handlereq_t	*hreq);
26c59d87c4SChristoph Hellwig 
27c59d87c4SChristoph Hellwig extern int
28c59d87c4SChristoph Hellwig xfs_readlink_by_handle(
29c59d87c4SChristoph Hellwig 	struct file		*parfilp,
30c59d87c4SChristoph Hellwig 	xfs_fsop_handlereq_t	*hreq);
31c59d87c4SChristoph Hellwig 
32d0ce6439SChristoph Hellwig int xfs_ioc_attrmulti_one(struct file *parfilp, struct inode *inode,
33d0ce6439SChristoph Hellwig 		uint32_t opcode, void __user *uname, void __user *value,
34d0ce6439SChristoph Hellwig 		uint32_t *len, uint32_t flags);
356ed6356bSDan Carpenter int xfs_ioc_attr_list(struct xfs_inode *dp, void __user *ubuf,
366ed6356bSDan Carpenter 		      size_t bufsize, int flags,
376ed6356bSDan Carpenter 		      struct xfs_attrlist_cursor __user *ucursor);
38c59d87c4SChristoph Hellwig 
39c59d87c4SChristoph Hellwig extern struct dentry *
40c59d87c4SChristoph Hellwig xfs_handle_to_dentry(
41c59d87c4SChristoph Hellwig 	struct file		*parfilp,
42c59d87c4SChristoph Hellwig 	void __user		*uhandle,
43c59d87c4SChristoph Hellwig 	u32			hlen);
44c59d87c4SChristoph Hellwig 
459fefd5dbSMiklos Szeredi extern int
469fefd5dbSMiklos Szeredi xfs_fileattr_get(
479fefd5dbSMiklos Szeredi 	struct dentry		*dentry,
489fefd5dbSMiklos Szeredi 	struct fileattr		*fa);
499fefd5dbSMiklos Szeredi 
509fefd5dbSMiklos Szeredi extern int
519fefd5dbSMiklos Szeredi xfs_fileattr_set(
52*8782a9aeSChristian Brauner 	struct mnt_idmap	*idmap,
539fefd5dbSMiklos Szeredi 	struct dentry		*dentry,
549fefd5dbSMiklos Szeredi 	struct fileattr		*fa);
559fefd5dbSMiklos Szeredi 
56c59d87c4SChristoph Hellwig extern long
57c59d87c4SChristoph Hellwig xfs_file_ioctl(
58c59d87c4SChristoph Hellwig 	struct file		*filp,
59c59d87c4SChristoph Hellwig 	unsigned int		cmd,
60c59d87c4SChristoph Hellwig 	unsigned long		p);
61c59d87c4SChristoph Hellwig 
62c59d87c4SChristoph Hellwig extern long
63c59d87c4SChristoph Hellwig xfs_file_compat_ioctl(
64c59d87c4SChristoph Hellwig 	struct file		*file,
65c59d87c4SChristoph Hellwig 	unsigned int		cmd,
66c59d87c4SChristoph Hellwig 	unsigned long		arg);
67c59d87c4SChristoph Hellwig 
688bfe9d18SDarrick J. Wong int xfs_fsbulkstat_one_fmt(struct xfs_ibulk *breq,
697035f972SDarrick J. Wong 			   const struct xfs_bulkstat *bstat);
705f19c7fcSDarrick J. Wong int xfs_fsinumbers_fmt(struct xfs_ibulk *breq, const struct xfs_inumbers *igrp);
712810bd68SDarrick J. Wong 
72c59d87c4SChristoph Hellwig #endif
73