summaryrefslogtreecommitdiff
path: root/quot.h
diff options
context:
space:
mode:
Diffstat (limited to 'quot.h')
-rw-r--r--quot.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/quot.h b/quot.h
new file mode 100644
index 0000000..4f3de0b
--- /dev/null
+++ b/quot.h
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 1980, 1990 Regents of the University of California.
+ * Copyright (C) 2000, 2001 Silicon Graphics, Inc. [SGI]
+ * All rights reserved.
+ *
+ * [Extensions to support XFS are copyright SGI]
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer. 2.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution. 3. All advertising
+ * materials mentioning features or use of this software must display the
+ * following acknowledgement: This product includes software developed by the
+ * University of California, Berkeley and its contributors. 4. Neither the
+ * name of the University nor the names of its contributors may be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#define SEC24HR (60*60*24) /* seconds per day */
+
+typedef struct {
+ __uint32_t id;
+ char name[UT_NAMESIZE + 1];
+} idcache_t;
+
+typedef struct du {
+ struct du *next;
+ __uint64_t blocks;
+ __uint64_t blocks30;
+ __uint64_t blocks60;
+ __uint64_t blocks90;
+ __uint64_t nfiles;
+ __uint32_t id;
+} du_t;
+
+#define NDU 60000
+#define DUHASH 8209
+static du_t du[2][NDU];
+static du_t *duhash[2][DUHASH];
+static int ndu[2];
+
+#define NID 256
+#define IDMASK (NID-1)
+
+/*
+ * === Start XFS specific types and definitions ===
+ */
+#include <asm/types.h>
+
+/* Structures returned from ioctl XFS_IOC_FSBULKSTAT */
+typedef struct xfs_bstime {
+ time_t tv_sec; /* seconds */
+ __s32 tv_nsec; /* and nanoseconds */
+} xfs_bstime_t;
+
+typedef struct xfs_bstat {
+ __u64 bs_ino; /* inode number */
+ __u16 bs_mode; /* type and mode */
+ __u16 bs_nlink; /* number of links */
+ __u32 bs_uid; /* user id */
+ __u32 bs_gid; /* group id */
+ __u32 bs_rdev; /* device value */
+ __s32 bs_blksize; /* block size */
+ __s64 bs_size; /* file size */
+ xfs_bstime_t bs_atime; /* access time */
+ xfs_bstime_t bs_mtime; /* modify time */
+ xfs_bstime_t bs_ctime; /* inode change time */
+ int64_t bs_blocks; /* number of blocks */
+ __u32 bs_xflags; /* extended flags */
+ __s32 bs_extsize; /* extent size */
+ __s32 bs_extents; /* number of extents */
+ __u32 bs_gen; /* generation count */
+ __u16 bs_projid; /* project id */
+ unsigned char bs_pad[14]; /* pad space, unused */
+ __u32 bs_dmevmask; /* DMIG event mask */
+ __u16 bs_dmstate; /* DMIG state info */
+ __u16 bs_aextents; /* attribute number of extents */
+} xfs_bstat_t;
+
+/* The user-level BulkStat Request interface structure. */
+typedef struct xfs_fsop_bulkreq {
+ __u64 *lastip; /* last inode # pointer */
+ __s32 icount; /* count of entries in buffer */
+ void *ubuffer; /* user buffer for inode desc. */
+ __s32 *ocount; /* output count pointer */
+} xfs_fsop_bulkreq_t;
+
+#ifndef XFS_IOC_FSBULKSTAT
+#define XFS_IOC_FSBULKSTAT _IOWR('X', 101, struct xfs_fsop_bulkreq)
+#endif
+
+#define NBSTAT 4069 /* XFS bulkstat inodes */
+static void checkXFS(const char *file, char *fsdir);
+
+/*
+ * === End of XFS specific types and definitions ===
+ */