1 #ifndef __XRDOSS_CACHE_H__
2 #define __XRDOSS_CACHE_H__
45 #include <sys/statvfs.h>
46 #define STATFS_t struct statvfs
47 #define FS_Stat(a,b) statvfs(a,b)
48 #define FS_BLKSZ f_frsize
49 #define FS_FFREE f_favail
51 #if defined(__linux__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
53 #define FS_Stat(a,b) statfs(a,b)
54 #define STATFS_t struct statfs
55 #define FS_BLKSZ f_bsize
56 #define FS_FFREE f_ffree
59 #include <sys/statfs.h>
60 #define STATFS_t struct statfs
61 #define FS_Stat(a,b) statfs(a,b)
62 #define FS_BLKSZ f_bsize
63 #define FS_FFREE f_ffree
65 #if defined(__APPLE__) || defined(__FreeBSD__)
66 #include <sys/param.h>
67 #include <sys/mount.h>
68 #define STATFS_t struct statfs
69 #define FS_Stat(a,b) statfs(a,b)
70 #define FS_BLKSZ f_bsize
71 #define FS_FFREE f_ffree
102 #define XrdOssFSData_OFFLINE 0x0001
103 #define XrdOssFSData_ADJUSTED 0x0002
104 #define XrdOssFSData_REFRESH 0x0004
147 static int Add(
const char *Path);
148 static long long freeSpace(
long long &Size,
const char *
path=0);
204 {
if (!strcmp(
"public", grp))
PubGroup =
this;}
216 static void Adjust(dev_t devid, off_t size);
218 static void Adjust(
const char *Path, off_t size,
struct stat *buf=0);
240 static int Alloc(allocInfo &aInfo);
242 static void DevInfo(
struct stat &buf,
bool limits=
false);
246 static int Init(
const char *UDir,
const char *Qfile,
247 int isSOL,
int usync=0);
249 static int Init(
long long aMin,
int ovhd,
int aFuzz);
253 static void MapDevs(
bool dBug=
false);
255 static char *
Parse(
const char *token,
char *cbuff,
int cblen);
257 static void *
Scan(
int cscanint);
275 static bool MapDM(
const char *ldm,
char *buff,
int blen);
static double fuzAlloc
Definition: XrdOssCache.hh:278
static int Init(const char *UDir, const char *Qfile, int isSOL, int usync=0)
const char * cgName
Definition: XrdOssCache.hh:224
XrdOssCache_FS(int &retc, const char *fsg, const char *fsp, FSOpts opt)
XrdOssCache_Group * fsgroup
Definition: XrdOssCache.hh:145
int cgPlen
Definition: XrdOssCache.hh:227
static XrdSysMutex Mutex
Definition: XrdOssCache.hh:262
long long Quota
Definition: XrdOssCache.hh:191
static char * Parse(const char *token, char *cbuff, int cblen)
time_t updt
Definition: XrdOssCache.hh:117
XrdOssCache_Space()
Definition: XrdOssCache.hh:91
long long Quota
Definition: XrdOssCache.hh:89
Definition: XrdOssCache.hh:106
XrdOssCache_Group(const char *grp, XrdOssCache_FS *fsp=0)
Definition: XrdOssCache.hh:201
const char * group
Definition: XrdOssCache.hh:139
const char * cgPath
Definition: XrdOssCache.hh:226
XrdOssCache_FS * next
Definition: XrdOssCache.hh:138
int plen
Definition: XrdOssCache.hh:141
static void DevInfo(struct stat &buf, bool limits=false)
~XrdOssCache_FS()
Definition: XrdOssCache.hh:160
XrdOssCache_FS * curr
Definition: XrdOssCache.hh:188
const char * pact
Definition: XrdOssCache.hh:115
allocInfo(const char *pP, char *bP, int bL)
Definition: XrdOssCache.hh:234
static void MapDevs(bool dBug=false)
~allocInfo()
Definition: XrdOssCache.hh:237
static XrdOssCache_Group * PubGroup
Definition: XrdOssCache.hh:196
unsigned short partID
Definition: XrdOssCache.hh:120
dev_t fsid
Definition: XrdOssCache.hh:113
long long frsz
Definition: XrdOssCache.hh:112
static int Add(const char *Path)
static int ovhAlloc
Definition: XrdOssCache.hh:279
Definition: XrdOssCache.hh:136
long long Largest
Definition: XrdOssCache.hh:85
static XrdOssCache_FS * Find(const char *Path, int lklen=0)
static XrdOssCache_FS * fsfirst
Definition: XrdOssCache.hh:269
Definition: XrdSysError.hh:89
short rsvd
Definition: XrdOssCache.hh:194
const char * Path
Definition: XrdOssCache.hh:223
Definition: XrdSysPthread.hh:164
static long long fsFree
Definition: XrdOssCache.hh:267
XrdOssCache_FSData * fsP
Definition: XrdOssCache.hh:171
static int Usage
Definition: XrdOssCache.hh:281
long long Usage
Definition: XrdOssCache.hh:88
static XrdOssCache_FSData * fsdata
Definition: XrdOssCache.hh:271
static long long fsLarge
Definition: XrdOssCache.hh:265
static long long fsTotal
Definition: XrdOssCache.hh:264
long long cgSize
Definition: XrdOssCache.hh:225
static void List(const char *lname, XrdSysError &Eroute)
long long Usage
Definition: XrdOssCache.hh:190
static int getSpace(XrdOssCache_Space &Space, const char *sname, XrdOssVSPart **vsPart=0)
Definition: XrdOssCache.hh:78
long long Total
Definition: XrdOssCache.hh:82
long long Maxfree
Definition: XrdOssCache.hh:84
static void * Scan(int cscanint)
short fsNum
Definition: XrdOssCache.hh:193
long long size
Definition: XrdOssCache.hh:111
XrdOssCache_FSData * fsdata
Definition: XrdOssCache.hh:144
const char ** apVec
Definition: XrdOssCache.hh:172
char suffix[4]
Definition: XrdOssCache.hh:143
XrdOssCache_Group * next
Definition: XrdOssCache.hh:186
long long Inodes
Definition: XrdOssCache.hh:86
char * cgPsfx
Definition: XrdOssCache.hh:230
XrdOssCache_FSAP * fsVec
Definition: XrdOssCache.hh:189
static int Quotas
Definition: XrdOssCache.hh:280
~XrdOssCache_Space()
Definition: XrdOssCache.hh:93
char * cgPFbf
Definition: XrdOssCache.hh:229
Definition: XrdOssCache.hh:212
Definition: XrdOssCache.hh:182
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:110
Definition: XrdOssCache.hh:169
const char * path
Definition: XrdOssCache.hh:114
int apNum
Definition: XrdOssCache.hh:173
static XrdOssCache_Group * fsgroups
Definition: XrdOssCache.hh:199
unsigned short bdevID
Definition: XrdOssCache.hh:119
static long long freeSpace(long long &Size, const char *path=0)
static long long minAlloc
Definition: XrdOssCache.hh:277
const char * path
Definition: XrdOssCache.hh:140
int GRPid
Definition: XrdOssCache.hh:192
Definition: XrdOssCache.hh:222
static long long PubQuota
Definition: XrdOssCache.hh:197
XrdOssCache_FS * cgFSp
Definition: XrdOssCache.hh:231
Definition: XrdOssCache.hh:136
char * group
Definition: XrdOssCache.hh:187
~XrdOssCache()
Definition: XrdOssCache.hh:260
static void Adjust(dev_t devid, off_t size)
int cgPFsz
Definition: XrdOssCache.hh:228
FSOpts opts
Definition: XrdOssCache.hh:142
FSOpts
Definition: XrdOssCache.hh:136
static bool MapDM(const char *ldm, char *buff, int blen)
Definition: XrdOssCache.hh:132
Definition: XrdOssVS.hh:63
static long long fsTotFr
Definition: XrdOssCache.hh:266
long long Inleft
Definition: XrdOssCache.hh:87
~XrdOssCache_Group()
Definition: XrdOssCache.hh:205
long long Free
Definition: XrdOssCache.hh:83
XrdOssCache()
Definition: XrdOssCache.hh:259
static XrdOssCache_FS * fslast
Definition: XrdOssCache.hh:270
~XrdOssCache_FSData()
Definition: XrdOssCache.hh:123
static int fsCount
Definition: XrdOssCache.hh:272
const char * devN
Definition: XrdOssCache.hh:116
static long long fsSize
Definition: XrdOssCache.hh:268
int stat
Definition: XrdOssCache.hh:118
mode_t aMode
Definition: XrdOssCache.hh:232