blob: b7f259e8a1c243a8270c3581bed5f10d937fa2e2 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (c) 2005 Silicon Graphics, Inc.
* All Rights Reserved.
*/
#include "xqm.h"
#include "path.h"
#include "project.h"
#include <stdbool.h>
/*
* Different forms of XFS quota
*/
enum {
XFS_BLOCK_QUOTA = 0x1,
XFS_INODE_QUOTA = 0x2,
XFS_RTBLOCK_QUOTA = 0x4,
};
/*
* System call definitions mapping to platform-specific quotactl
*/
extern int xfsquotactl(int __cmd, const char *__device,
uint __type, uint __id, void * __addr);
enum {
XFS_QUOTAON, /* enable accounting/enforcement */
XFS_QUOTAOFF, /* disable accounting/enforcement */
XFS_GETQUOTA, /* get disk limits and usage */
XFS_SETQLIM, /* set disk limits */
XFS_GETQSTAT, /* get quota subsystem status */
XFS_QUOTARM, /* free disk space used by dquots */
XFS_QSYNC, /* flush delayed allocate space */
XFS_GETQSTATV, /* newer version of quota stats */
XFS_GETNEXTQUOTA, /* get disk limits and usage */
};
/*
* Utility routines
*/
extern char *type_to_string(uint __type);
extern char *form_to_string(uint __form);
extern char *time_to_string(time_t __time, uint __flags);
extern char *bbs_to_string(uint64_t __v, char *__c, uint __size);
extern char *num_to_string(uint64_t __v, char *__c, uint __size);
extern char *pct_to_string(uint64_t __v, uint64_t __t, char *__c, uint __s);
extern FILE *fopen_write_secure(char *__filename);
/*
* Various utility routine flags
*/
enum {
NO_HEADER_FLAG = 0x0001, /* don't print header */
VERBOSE_FLAG = 0x0002, /* increase verbosity */
HUMAN_FLAG = 0x0004, /* human-readable values */
QUOTA_FLAG = 0x0008, /* uid/gid/prid over-quota (soft) */
LIMIT_FLAG = 0x0010, /* uid/gid/prid over-limit (hard) */
ALL_MOUNTS_FLAG = 0x0020, /* iterate over every mounted xfs */
TERSE_FLAG = 0x0040, /* decrease verbosity */
HISTOGRAM_FLAG = 0x0080, /* histogram format output */
DEFAULTS_FLAG = 0x0100, /* use value as a default */
ABSOLUTE_FLAG = 0x0200, /* absolute time, not related to now */
NO_LOOKUP_FLAG = 0x0400, /* skip name lookups, just report ID */
GETNEXTQUOTA_FLAG = 0x0800, /* use getnextquota quotactl */
};
/*
* Identifier (uid/gid/prid) cache routines
*/
#define NMAX 32
extern char *uid_to_name(uint32_t __uid);
extern char *gid_to_name(uint32_t __gid);
extern char *prid_to_name(uint32_t __prid);
extern bool isdigits_only(const char *);