1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Copyright (c) 2000-2001 Silicon Graphics, Inc. All Rights Reserved. 4 */ 5 #ifndef __XFS_ITABLE_H__ 6 #define __XFS_ITABLE_H__ 7 8 /* 9 * xfs_bulkstat() is used to fill in xfs_bstat structures as well as dm_stat 10 * structures (by the dmi library). This is a pointer to a formatter function 11 * that will iget the inode and fill in the appropriate structure. 12 * see xfs_bulkstat_one() and xfs_dm_bulkstat_one() in dmapi_xfs.c 13 */ 14 typedef int (*bulkstat_one_pf)(struct xfs_mount *mp, 15 xfs_ino_t ino, 16 void __user *buffer, 17 int ubsize, 18 int *ubused, 19 int *stat); 20 21 /* 22 * Values for stat return value. 23 */ 24 #define BULKSTAT_RV_NOTHING 0 25 #define BULKSTAT_RV_DIDONE 1 26 #define BULKSTAT_RV_GIVEUP 2 27 28 /* 29 * Return stat information in bulk (by-inode) for the filesystem. 30 */ 31 int /* error status */ 32 xfs_bulkstat( 33 xfs_mount_t *mp, /* mount point for filesystem */ 34 xfs_ino_t *lastino, /* last inode returned */ 35 int *count, /* size of buffer/count returned */ 36 bulkstat_one_pf formatter, /* func that'd fill a single buf */ 37 size_t statstruct_size,/* sizeof struct that we're filling */ 38 char __user *ubuffer,/* buffer with inode stats */ 39 int *done); /* 1 if there are more stats to get */ 40 41 typedef int (*bulkstat_one_fmt_pf)( /* used size in bytes or negative error */ 42 void __user *ubuffer, /* buffer to write to */ 43 int ubsize, /* remaining user buffer sz */ 44 int *ubused, /* bytes used by formatter */ 45 const xfs_bstat_t *buffer); /* buffer to read from */ 46 47 int 48 xfs_bulkstat_one_int( 49 xfs_mount_t *mp, 50 xfs_ino_t ino, 51 void __user *buffer, 52 int ubsize, 53 bulkstat_one_fmt_pf formatter, 54 int *ubused, 55 int *stat); 56 57 int 58 xfs_bulkstat_one( 59 xfs_mount_t *mp, 60 xfs_ino_t ino, 61 void __user *buffer, 62 int ubsize, 63 int *ubused, 64 int *stat); 65 66 typedef int (*inumbers_fmt_pf)( 67 void __user *ubuffer, /* buffer to write to */ 68 const xfs_inogrp_t *buffer, /* buffer to read from */ 69 long count, /* # of elements to read */ 70 long *written); /* # of bytes written */ 71 72 int 73 xfs_inumbers_fmt( 74 void __user *ubuffer, /* buffer to write to */ 75 const xfs_inogrp_t *buffer, /* buffer to read from */ 76 long count, /* # of elements to read */ 77 long *written); /* # of bytes written */ 78 79 int /* error status */ 80 xfs_inumbers( 81 xfs_mount_t *mp, /* mount point for filesystem */ 82 xfs_ino_t *last, /* last inode returned */ 83 int *count, /* size of buffer/count returned */ 84 void __user *buffer, /* buffer with inode info */ 85 inumbers_fmt_pf formatter); 86 87 #endif /* __XFS_ITABLE_H__ */ 88