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