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