1 #ifndef __XRDOSS_CACHE_H__
2 #define __XRDOSS_CACHE_H__
44 #include <sys/statvfs.h>
45 #define STATFS_t struct statvfs
46 #define FS_Stat(a,b) statvfs(a,b)
47 #define FS_BLKSZ f_frsize
48 #define FS_FFREE f_favail
52 #define FS_Stat(a,b) statfs(a,b)
53 #define STATFS_t struct statfs
54 #define FS_BLKSZ f_bsize
55 #define FS_FFREE f_ffree
58 #include <sys/statfs.h>
59 #define STATFS_t struct statfs
60 #define FS_Stat(a,b) statfs(a,b)
61 #define FS_BLKSZ f_bsize
62 #define FS_FFREE f_ffree
64 #if defined(__APPLE__) || defined(__FreeBSD__)
65 #include <sys/param.h>
66 #include <sys/mount.h>
67 #define STATFS_t struct statfs
68 #define FS_Stat(a,b) statfs(a,b)
69 #define FS_BLKSZ f_bsize
70 #define FS_FFREE f_ffree
101 #define XrdOssFSData_OFFLINE 0x0001
102 #define XrdOssFSData_ADJUSTED 0x0002
103 #define XrdOssFSData_REFRESH 0x0004
143 static int Add(
const char *Path);
144 static long long freeSpace(
long long &Size,
const char *
path=0);
192 static void Adjust(dev_t devid, off_t size);
194 static void Adjust(
const char *Path, off_t size,
struct stat *buf=0);
216 static int Alloc(allocInfo &aInfo);
220 static int Init(
const char *UDir,
const char *Qfile,
int isSOL);
222 static int Init(
long long aMin,
int ovhd,
int aFuzz);
226 static char *
Parse(
const char *token,
char *cbuff,
int cblen);
228 static void *
Scan(
int cscanint);
static double fuzAlloc
Definition: XrdOssCache.hh:248
const char * cgName
Definition: XrdOssCache.hh:200
XrdOssCache_FS(int &retc, const char *fsg, const char *fsp, FSOpts opt)
XrdOssCache_Group * fsgroup
Definition: XrdOssCache.hh:141
int cgPlen
Definition: XrdOssCache.hh:203
static XrdSysMutex Mutex
Definition: XrdOssCache.hh:233
long long Quota
Definition: XrdOssCache.hh:172
static char * Parse(const char *token, char *cbuff, int cblen)
time_t updt
Definition: XrdOssCache.hh:114
XrdOssCache_Space()
Definition: XrdOssCache.hh:90
unsigned int seen
Definition: XrdOssCache.hh:116
static int Init(const char *UDir, const char *Qfile, int isSOL)
long long Quota
Definition: XrdOssCache.hh:88
Definition: XrdOssCache.hh:105
XrdOssCache_Group(const char *grp, XrdOssCache_FS *fsp=0)
Definition: XrdOssCache.hh:178
const char * group
Definition: XrdOssCache.hh:135
const char * cgPath
Definition: XrdOssCache.hh:202
XrdOssCache_FS * next
Definition: XrdOssCache.hh:134
int plen
Definition: XrdOssCache.hh:137
~XrdOssCache_FS()
Definition: XrdOssCache.hh:153
XrdOssCache_FS * curr
Definition: XrdOssCache.hh:170
allocInfo(const char *pP, char *bP, int bL)
Definition: XrdOssCache.hh:210
~allocInfo()
Definition: XrdOssCache.hh:213
dev_t fsid
Definition: XrdOssCache.hh:112
long long frsz
Definition: XrdOssCache.hh:111
static int Add(const char *Path)
static int ovhAlloc
Definition: XrdOssCache.hh:249
Definition: XrdOssCache.hh:132
long long Largest
Definition: XrdOssCache.hh:84
static XrdOssCache_FS * Find(const char *Path, int lklen=0)
static XrdOssCache_FS * fsfirst
Definition: XrdOssCache.hh:240
Definition: XrdSysError.hh:89
const char * Path
Definition: XrdOssCache.hh:199
Definition: XrdSysPthread.hh:165
static long long fsFree
Definition: XrdOssCache.hh:238
static int Usage
Definition: XrdOssCache.hh:251
long long Usage
Definition: XrdOssCache.hh:87
static XrdOssCache_FSData * fsdata
Definition: XrdOssCache.hh:242
static long long fsLarge
Definition: XrdOssCache.hh:236
static long long fsTotal
Definition: XrdOssCache.hh:235
long long cgSize
Definition: XrdOssCache.hh:201
static void List(const char *lname, XrdSysError &Eroute)
long long Usage
Definition: XrdOssCache.hh:171
static int getSpace(XrdOssCache_Space &Space, const char *sname)
Definition: XrdOssCache.hh:77
long long Total
Definition: XrdOssCache.hh:81
long long Maxfree
Definition: XrdOssCache.hh:83
static void * Scan(int cscanint)
long long size
Definition: XrdOssCache.hh:110
XrdOssCache_FSData * fsdata
Definition: XrdOssCache.hh:140
char suffix[4]
Definition: XrdOssCache.hh:139
XrdOssCache_Group * next
Definition: XrdOssCache.hh:168
long long Inodes
Definition: XrdOssCache.hh:85
char * cgPsfx
Definition: XrdOssCache.hh:206
static int Quotas
Definition: XrdOssCache.hh:250
~XrdOssCache_Space()
Definition: XrdOssCache.hh:92
char * cgPFbf
Definition: XrdOssCache.hh:205
Definition: XrdOssCache.hh:188
Definition: XrdOssCache.hh:164
XrdOssCache_FSData(const char *, STATFS_t &, dev_t)
static int Alloc(allocInfo &aInfo)
#define stat(a, b)
Definition: XrdPosix.hh:96
XrdOssCache_FSData * next
Definition: XrdOssCache.hh:109
const char * path
Definition: XrdOssCache.hh:113
static XrdOssCache_Group * fsgroups
Definition: XrdOssCache.hh:176
static long long freeSpace(long long &Size, const char *path=0)
static long long minAlloc
Definition: XrdOssCache.hh:247
const char * path
Definition: XrdOssCache.hh:136
int GRPid
Definition: XrdOssCache.hh:173
Definition: XrdOssCache.hh:198
static long long PubQuota
Definition: XrdOssCache.hh:174
XrdOssCache_FS * cgFSp
Definition: XrdOssCache.hh:207
Definition: XrdOssCache.hh:132
char * group
Definition: XrdOssCache.hh:169
~XrdOssCache()
Definition: XrdOssCache.hh:231
static void Adjust(dev_t devid, off_t size)
int cgPFsz
Definition: XrdOssCache.hh:204
FSOpts opts
Definition: XrdOssCache.hh:138
FSOpts
Definition: XrdOssCache.hh:132
Definition: XrdOssCache.hh:128
static long long fsTotFr
Definition: XrdOssCache.hh:237
long long Inleft
Definition: XrdOssCache.hh:86
~XrdOssCache_Group()
Definition: XrdOssCache.hh:181
long long Free
Definition: XrdOssCache.hh:82
XrdOssCache()
Definition: XrdOssCache.hh:230
static XrdOssCache_FS * fslast
Definition: XrdOssCache.hh:241
~XrdOssCache_FSData()
Definition: XrdOssCache.hh:119
static int fsCount
Definition: XrdOssCache.hh:243
static long long fsSize
Definition: XrdOssCache.hh:239
int stat
Definition: XrdOssCache.hh:115
mode_t aMode
Definition: XrdOssCache.hh:208