]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blobdiff - include/xqm.h
xfs: automatic dfops buffer relogging
[thirdparty/xfsprogs-dev.git] / include / xqm.h
index 5e64bffb5c59f7b7235adfd9433b8838d5fd91af..8ab19072656e86bf196805bac82e5fa200225a69 100644 (file)
@@ -1,34 +1,7 @@
+// SPDX-License-Identifier: LGPL-2.1
 /*
- * Copyright (c) 1995, 2001, 2004 Silicon Graphics, Inc.  All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2.1 of the GNU Lesser General Public License
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like.  Any license provided herein, whether implied or
- * otherwise, applies only to this software file.  Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
- * USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA  94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+ * Copyright (c) 1995, 2001, 2004-2005 Silicon Graphics, Inc.
+ * All Rights Reserved.
  */
 #ifndef __XQM_H__
 #define __XQM_H__
@@ -46,6 +19,9 @@
 #define Q_XSETQLIM     XQM_CMD(4)      /* set disk limits */
 #define Q_XGETQSTAT    XQM_CMD(5)      /* get quota subsystem status */
 #define Q_XQUOTARM     XQM_CMD(6)      /* free disk space used by dquots */
+#define Q_XQUOTASYNC   XQM_CMD(7)      /* delalloc flush, updates dquots */
+#define Q_XGETQSTATV   XQM_CMD(8)      /* newer version of get quota */
+#define Q_XGETNEXTQUOTA        XQM_CMD(9)      /* get disk limits and usage */
 
 /*
  * fs_disk_quota structure:
@@ -69,14 +45,14 @@ typedef struct fs_disk_quota {
        __s32           d_itimer;       /* zero if within inode limits */
                                        /* if not, we refuse service */
        __s32           d_btimer;       /* similar to above; for disk blocks */
-       __u16           d_iwarns;       /* # warnings issued wrt num inodes */
-       __u16           d_bwarns;       /* # warnings issued wrt disk blocks */
+       __u16           d_iwarns;       /* # warnings issued wrt num inodes */
+       __u16           d_bwarns;       /* # warnings issued wrt disk blocks */
        __s32           d_padding2;     /* padding2 - for future use */
        __u64           d_rtb_hardlimit;/* absolute limit on realtime blks */
        __u64           d_rtb_softlimit;/* preferred limit on RT disk blks */
        __u64           d_rtbcount;     /* # realtime blocks owned */
        __s32           d_rtbtimer;     /* similar to above; for RT disk blks */
-       __u16           d_rtbwarns;     /* # warnings issued wrt RT disk blks */
+       __u16           d_rtbwarns;     /* # warnings issued wrt RT disk blks */
        __s16           d_padding3;     /* padding3 - for future use */
        char            d_padding4[8];  /* yet more padding */
 } fs_disk_quota_t;
@@ -109,7 +85,7 @@ typedef struct fs_disk_quota {
  * warnings are set/cleared by the administrators (or automatically by going
  * below the soft limit).  Superusers warning values set the warning limits
  * for the rest.  In case these values are zero, the DQ_{F,B}WARNLIMIT values
- * defined below are used. 
+ * defined below are used.
  * These values also apply only to the d_fieldmask field for Q_XSETQLIM.
  */
 #define FS_DQ_BWARNS   (1<<9)
@@ -133,14 +109,14 @@ typedef struct fs_disk_quota {
 
 /*
  * fs_quota_stat is the struct returned in Q_XGETQSTAT for a given file system.
- * Provides a centralized way to get meta infomation about the quota subsystem.
+ * Provides a centralized way to get meta information about the quota subsystem.
  * eg. space taken up for user and group quotas, number of dquots currently
  * incore.
  */
 #define FS_QSTAT_VERSION       1       /* fs_quota_stat.qs_version */
 
 /*
- * Some basic infomation about 'quota files'.
+ * Some basic information about 'quota files'.
  */
 typedef struct fs_qfilestat {
        __u64           qfs_ino;        /* inode number */
@@ -162,4 +138,35 @@ typedef struct fs_quota_stat {
        __u16           qs_iwarnlimit;  /* limit for num warnings */
 } fs_quota_stat_t;
 
+
+#ifndef FS_QSTATV_VERSION1
+#define FS_QSTATV_VERSION1     1       /* fs_quota_statv.qs_version */
+#endif
+
+/*
+ * Some basic information about 'quota files' for Q_XGETQSTATV command
+ */
+struct fs_qfilestatv {
+       __u64           qfs_ino;        /* inode number */
+       __u64           qfs_nblks;      /* number of BBs 512-byte-blks */
+       __u32           qfs_nextents;   /* number of extents */
+       __u32           qfs_pad;        /* pad for 8-byte alignment */
+};
+
+struct fs_quota_statv {
+       __s8                    qs_version;     /* version for future changes */
+       __u8                    qs_pad1;        /* pad for 16bit alignment */
+       __u16                   qs_flags;       /* FS_QUOTA_.* flags */
+       __u32                   qs_incoredqs;   /* number of dquots incore */
+       struct fs_qfilestatv    qs_uquota;      /* user quota information */
+       struct fs_qfilestatv    qs_gquota;      /* group quota information */
+       struct fs_qfilestatv    qs_pquota;      /* project quota information */
+       __s32                   qs_btimelimit;  /* limit for blks timer */
+       __s32                   qs_itimelimit;  /* limit for inodes timer */
+       __s32                   qs_rtbtimelimit;/* limit for rt blks timer */
+       __u16                   qs_bwarnlimit;  /* limit for num warnings */
+       __u16                   qs_iwarnlimit;  /* limit for num warnings */
+       __u64                   qs_pad2[8];     /* for future proofing */
+};
+
 #endif /* __XQM_H__ */