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__)
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
143static int Add(
const char *Path);
192static void Adjust(dev_t devid, off_t size);
194static void Adjust(
const char *Path, off_t size,
struct stat *buf=0);
220static int Init(
const char *UDir,
const char *Qfile,
int isSOL);
222static int Init(
long long aMin,
int ovhd,
int aFuzz);
226static char *
Parse(
const char *token,
char *cbuff,
int cblen);
228static void *
Scan(
int cscanint);
#define stat(a, b)
Definition: XrdPosix.hh:96
Definition: XrdOssCache.hh:106
time_t updt
Definition: XrdOssCache.hh:114
int stat
Definition: XrdOssCache.hh:115
const char * path
Definition: XrdOssCache.hh:113
XrdOssCache_FSData(const char *, STATFS_t &, dev_t)
dev_t fsid
Definition: XrdOssCache.hh:112
~XrdOssCache_FSData()
Definition: XrdOssCache.hh:119
unsigned int seen
Definition: XrdOssCache.hh:116
long long size
Definition: XrdOssCache.hh:110
long long frsz
Definition: XrdOssCache.hh:111
XrdOssCache_FSData * next
Definition: XrdOssCache.hh:109
Definition: XrdOssCache.hh:129
const char * group
Definition: XrdOssCache.hh:135
XrdOssCache_Group * fsgroup
Definition: XrdOssCache.hh:141
static long long freeSpace(long long &Size, const char *path=0)
FSOpts opts
Definition: XrdOssCache.hh:138
~XrdOssCache_FS()
Definition: XrdOssCache.hh:153
FSOpts
Definition: XrdOssCache.hh:132
@ None
Definition: XrdOssCache.hh:132
@ isXA
Definition: XrdOssCache.hh:132
int plen
Definition: XrdOssCache.hh:137
static int getSpace(XrdOssCache_Space &Space, XrdOssCache_Group *fsg)
char suffix[4]
Definition: XrdOssCache.hh:139
static int Add(const char *Path)
const char * path
Definition: XrdOssCache.hh:136
XrdOssCache_FS * next
Definition: XrdOssCache.hh:134
static int getSpace(XrdOssCache_Space &Space, const char *sname)
XrdOssCache_FSData * fsdata
Definition: XrdOssCache.hh:140
static long long freeSpace(XrdOssCache_Space &Space, const char *path)
XrdOssCache_FS(int &retc, const char *fsg, const char *fsp, FSOpts opt)
Definition: XrdOssCache.hh:165
static XrdOssCache_Group * fsgroups
Definition: XrdOssCache.hh:176
static long long PubQuota
Definition: XrdOssCache.hh:174
~XrdOssCache_Group()
Definition: XrdOssCache.hh:181
char * group
Definition: XrdOssCache.hh:169
XrdOssCache_Group(const char *grp, XrdOssCache_FS *fsp=0)
Definition: XrdOssCache.hh:178
XrdOssCache_FS * curr
Definition: XrdOssCache.hh:170
long long Usage
Definition: XrdOssCache.hh:171
int GRPid
Definition: XrdOssCache.hh:173
XrdOssCache_Group * next
Definition: XrdOssCache.hh:168
long long Quota
Definition: XrdOssCache.hh:172
Definition: XrdOssCache.hh:78
long long Usage
Definition: XrdOssCache.hh:87
~XrdOssCache_Space()
Definition: XrdOssCache.hh:92
long long Total
Definition: XrdOssCache.hh:81
long long Inodes
Definition: XrdOssCache.hh:85
XrdOssCache_Space()
Definition: XrdOssCache.hh:90
long long Largest
Definition: XrdOssCache.hh:84
long long Inleft
Definition: XrdOssCache.hh:86
long long Free
Definition: XrdOssCache.hh:82
long long Maxfree
Definition: XrdOssCache.hh:83
long long Quota
Definition: XrdOssCache.hh:88
Definition: XrdOssCache.hh:189
static void Adjust(const char *Path, off_t size, struct stat *buf=0)
static void * Scan(int cscanint)
static long long fsSize
Definition: XrdOssCache.hh:239
static char * Parse(const char *token, char *cbuff, int cblen)
~XrdOssCache()
Definition: XrdOssCache.hh:231
static long long fsLarge
Definition: XrdOssCache.hh:236
static long long fsTotal
Definition: XrdOssCache.hh:235
static int Init(const char *UDir, const char *Qfile, int isSOL)
static void Adjust(XrdOssCache_FS *fsp, off_t size)
static XrdOssCache_FS * fslast
Definition: XrdOssCache.hh:241
static int Quotas
Definition: XrdOssCache.hh:250
static void Adjust(dev_t devid, off_t size)
static XrdOssCache_FS * fsfirst
Definition: XrdOssCache.hh:240
static long long fsTotFr
Definition: XrdOssCache.hh:237
static void List(const char *lname, XrdSysError &Eroute)
XrdOssCache()
Definition: XrdOssCache.hh:230
static long long minAlloc
Definition: XrdOssCache.hh:247
static int fsCount
Definition: XrdOssCache.hh:243
static int Usage
Definition: XrdOssCache.hh:251
static XrdOssCache_FS * Find(const char *Path, int lklen=0)
static long long fsFree
Definition: XrdOssCache.hh:238
static int Alloc(allocInfo &aInfo)
static int ovhAlloc
Definition: XrdOssCache.hh:249
static XrdOssCache_FSData * fsdata
Definition: XrdOssCache.hh:242
static double fuzAlloc
Definition: XrdOssCache.hh:248
static int Init(long long aMin, int ovhd, int aFuzz)
static XrdSysMutex Mutex
Definition: XrdOssCache.hh:233
Definition: XrdSysError.hh:90
Definition: XrdSysPthread.hh:166
Definition: XrdOssCache.hh:199
long long cgSize
Definition: XrdOssCache.hh:201
XrdOssCache_FS * cgFSp
Definition: XrdOssCache.hh:207
int cgPlen
Definition: XrdOssCache.hh:203
char * cgPsfx
Definition: XrdOssCache.hh:206
allocInfo(const char *pP, char *bP, int bL)
Definition: XrdOssCache.hh:210
int cgPFsz
Definition: XrdOssCache.hh:204
mode_t aMode
Definition: XrdOssCache.hh:208
const char * cgName
Definition: XrdOssCache.hh:200
const char * Path
Definition: XrdOssCache.hh:199
const char * cgPath
Definition: XrdOssCache.hh:202
~allocInfo()
Definition: XrdOssCache.hh:213
char * cgPFbf
Definition: XrdOssCache.hh:205