cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

quotaio_v2.h (2687B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 *	Definitions of structures for vfsv0 quota format
      4 */
      5
      6#ifndef _LINUX_QUOTAIO_V2_H
      7#define _LINUX_QUOTAIO_V2_H
      8
      9#include <linux/types.h>
     10#include <linux/quota.h>
     11
     12/*
     13 * Definitions of magics and versions of current quota files
     14 */
     15#define V2_INITQMAGICS {\
     16	0xd9c01f11,	/* USRQUOTA */\
     17	0xd9c01927,	/* GRPQUOTA */\
     18	0xd9c03f14,	/* PRJQUOTA */\
     19}
     20
     21#define V2_INITQVERSIONS {\
     22	1,		/* USRQUOTA */\
     23	1,		/* GRPQUOTA */\
     24	1,		/* PRJQUOTA */\
     25}
     26
     27/* First generic header */
     28struct v2_disk_dqheader {
     29	__le32 dqh_magic;	/* Magic number identifying file */
     30	__le32 dqh_version;	/* File version */
     31};
     32
     33/*
     34 * The following structure defines the format of the disk quota file
     35 * (as it appears on disk) - the file is a radix tree whose leaves point
     36 * to blocks of these structures.
     37 */
     38struct v2r0_disk_dqblk {
     39	__le32 dqb_id;		/* id this quota applies to */
     40	__le32 dqb_ihardlimit;	/* absolute limit on allocated inodes */
     41	__le32 dqb_isoftlimit;	/* preferred inode limit */
     42	__le32 dqb_curinodes;	/* current # allocated inodes */
     43	__le32 dqb_bhardlimit;	/* absolute limit on disk space (in QUOTABLOCK_SIZE) */
     44	__le32 dqb_bsoftlimit;	/* preferred limit on disk space (in QUOTABLOCK_SIZE) */
     45	__le64 dqb_curspace;	/* current space occupied (in bytes) */
     46	__le64 dqb_btime;	/* time limit for excessive disk use */
     47	__le64 dqb_itime;	/* time limit for excessive inode use */
     48};
     49
     50struct v2r1_disk_dqblk {
     51	__le32 dqb_id;		/* id this quota applies to */
     52	__le32 dqb_pad;
     53	__le64 dqb_ihardlimit;	/* absolute limit on allocated inodes */
     54	__le64 dqb_isoftlimit;	/* preferred inode limit */
     55	__le64 dqb_curinodes;	/* current # allocated inodes */
     56	__le64 dqb_bhardlimit;	/* absolute limit on disk space (in QUOTABLOCK_SIZE) */
     57	__le64 dqb_bsoftlimit;	/* preferred limit on disk space (in QUOTABLOCK_SIZE) */
     58	__le64 dqb_curspace;	/* current space occupied (in bytes) */
     59	__le64 dqb_btime;	/* time limit for excessive disk use */
     60	__le64 dqb_itime;	/* time limit for excessive inode use */
     61};
     62
     63/* Header with type and version specific information */
     64struct v2_disk_dqinfo {
     65	__le32 dqi_bgrace;	/* Time before block soft limit becomes hard limit */
     66	__le32 dqi_igrace;	/* Time before inode soft limit becomes hard limit */
     67	__le32 dqi_flags;	/* Flags for quotafile (DQF_*) */
     68	__le32 dqi_blocks;	/* Number of blocks in file */
     69	__le32 dqi_free_blk;	/* Number of first free block in the list */
     70	__le32 dqi_free_entry;	/* Number of block with at least one free entry */
     71};
     72
     73#define V2_DQINFOOFF	sizeof(struct v2_disk_dqheader)	/* Offset of info header in file */
     74#define V2_DQBLKSIZE_BITS 10				/* Size of leaf block in tree */
     75
     76#endif /* _LINUX_QUOTAIO_V2_H */