2#ifndef PEDIGREE_VFS_QUOTA_H
3#define PEDIGREE_VFS_QUOTA_H
5#include "pedigree/kernel/compiler.h"
6#include "pedigree/kernel/processor/types.h"
9enum class QuotaOperation { Enable, Disable, GetFormat, Get, Set, Sync };
10enum class QuotaStatus {
26int EXPORTED_PUBLIC quotaError(QuotaStatus status);
29constexpr uint32_t OldFormat = 1;
30constexpr uint32_t BlockLimits = 1, Space = 2, InodeLimits = 4, Inodes = 8;
31constexpr uint32_t BlockTime = 16, InodeTime = 32;
32constexpr uint32_t Limits = BlockLimits | InodeLimits;
33constexpr uint32_t Usage = Space | Inodes;
34constexpr uint32_t Supported = Limits | Usage;
39 uint64_t blockHardLimit = 0;
40 uint64_t blockSoftLimit = 0;
41 uint64_t currentSpace = 0;
42 uint64_t inodeHardLimit = 0;
43 uint64_t inodeSoftLimit = 0;
44 uint64_t currentInodes = 0;
45 uint64_t blockTime = 0;
46 uint64_t inodeTime = 0;
48 uint32_t reserved = 0;
52 QuotaOperation operation = QuotaOperation::Get;
53 QuotaType type = QuotaType::User;