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__)
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
147static int Add(
const char *Path);
204 {
if (!strcmp(
"public", grp))
PubGroup =
this;}
216static void Adjust(dev_t devid, off_t size);
218static void Adjust(
const char *Path, off_t size,
struct stat *buf=0);
246static int Init(
const char *UDir,
const char *Qfile,
247 int isSOL,
int usync=0);
249static int Init(
long long aMin,
int ovhd,
int aFuzz);
255static char *
Parse(
const char *token,
char *cbuff,
int cblen);
257static void *
Scan(
int cscanint);
275static bool MapDM(
const char *ldm,
char *buff,
int blen);
#define stat(a, b)
Definition XrdPosix.hh:96
Definition XrdOssCache.hh:107
time_t updt
Definition XrdOssCache.hh:117
int stat
Definition XrdOssCache.hh:118
const char * path
Definition XrdOssCache.hh:114
XrdOssCache_FSData(const char *, STATFS_t &, dev_t)
const char * devN
Definition XrdOssCache.hh:116
const char * pact
Definition XrdOssCache.hh:115
unsigned short partID
Definition XrdOssCache.hh:120
dev_t fsid
Definition XrdOssCache.hh:113
~XrdOssCache_FSData()
Definition XrdOssCache.hh:123
long long size
Definition XrdOssCache.hh:111
long long frsz
Definition XrdOssCache.hh:112
unsigned short bdevID
Definition XrdOssCache.hh:119
XrdOssCache_FSData * next
Definition XrdOssCache.hh:110
Definition XrdOssCache.hh:133
const char * group
Definition XrdOssCache.hh:139
static int getSpace(XrdOssCache_Space &Space, const char *sname, XrdOssVSPart **vsPart=0)
XrdOssCache_Group * fsgroup
Definition XrdOssCache.hh:145
static long long freeSpace(long long &Size, const char *path=0)
FSOpts opts
Definition XrdOssCache.hh:142
~XrdOssCache_FS()
Definition XrdOssCache.hh:160
FSOpts
Definition XrdOssCache.hh:136
@ None
Definition XrdOssCache.hh:136
@ isXA
Definition XrdOssCache.hh:136
int plen
Definition XrdOssCache.hh:141
char suffix[4]
Definition XrdOssCache.hh:143
static int getSpace(XrdOssCache_Space &Space, XrdOssCache_Group *fsg, XrdOssVSPart **vsPart=0)
static int Add(const char *Path)
const char * path
Definition XrdOssCache.hh:140
XrdOssCache_FS * next
Definition XrdOssCache.hh:138
XrdOssCache_FSData * fsdata
Definition XrdOssCache.hh:144
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:183
static XrdOssCache_Group * fsgroups
Definition XrdOssCache.hh:199
static long long PubQuota
Definition XrdOssCache.hh:197
short fsNum
Definition XrdOssCache.hh:193
~XrdOssCache_Group()
Definition XrdOssCache.hh:205
static XrdOssCache_Group * PubGroup
Definition XrdOssCache.hh:196
char * group
Definition XrdOssCache.hh:187
XrdOssCache_Group(const char *grp, XrdOssCache_FS *fsp=0)
Definition XrdOssCache.hh:201
XrdOssCache_FS * curr
Definition XrdOssCache.hh:188
long long Usage
Definition XrdOssCache.hh:190
XrdOssCache_FSAP * fsVec
Definition XrdOssCache.hh:189
int GRPid
Definition XrdOssCache.hh:192
XrdOssCache_Group * next
Definition XrdOssCache.hh:186
long long Quota
Definition XrdOssCache.hh:191
short rsvd
Definition XrdOssCache.hh:194
Definition XrdOssCache.hh:79
long long Usage
Definition XrdOssCache.hh:88
~XrdOssCache_Space()
Definition XrdOssCache.hh:93
long long Total
Definition XrdOssCache.hh:82
long long Inodes
Definition XrdOssCache.hh:86
XrdOssCache_Space()
Definition XrdOssCache.hh:91
long long Largest
Definition XrdOssCache.hh:85
long long Inleft
Definition XrdOssCache.hh:87
long long Free
Definition XrdOssCache.hh:83
long long Maxfree
Definition XrdOssCache.hh:84
long long Quota
Definition XrdOssCache.hh:89
Definition XrdOssCache.hh:213
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:268
static bool MapDM(const char *ldm, char *buff, int blen)
static char * Parse(const char *token, char *cbuff, int cblen)
static void MapDevs(bool dBug=false)
~XrdOssCache()
Definition XrdOssCache.hh:260
static long long fsLarge
Definition XrdOssCache.hh:265
static long long fsTotal
Definition XrdOssCache.hh:264
static void Adjust(XrdOssCache_FS *fsp, off_t size)
static void DevInfo(struct stat &buf, bool limits=false)
static XrdOssCache_FS * fslast
Definition XrdOssCache.hh:270
static int Quotas
Definition XrdOssCache.hh:280
static void Adjust(dev_t devid, off_t size)
static XrdOssCache_FS * fsfirst
Definition XrdOssCache.hh:269
static long long fsTotFr
Definition XrdOssCache.hh:266
static void List(const char *lname, XrdSysError &Eroute)
XrdOssCache()
Definition XrdOssCache.hh:259
static int Init(const char *UDir, const char *Qfile, int isSOL, int usync=0)
static long long minAlloc
Definition XrdOssCache.hh:277
static int fsCount
Definition XrdOssCache.hh:272
static int Usage
Definition XrdOssCache.hh:281
static XrdOssCache_FS * Find(const char *Path, int lklen=0)
static long long fsFree
Definition XrdOssCache.hh:267
static int Alloc(allocInfo &aInfo)
static int ovhAlloc
Definition XrdOssCache.hh:279
static XrdOssCache_FSData * fsdata
Definition XrdOssCache.hh:271
static double fuzAlloc
Definition XrdOssCache.hh:278
static int Init(long long aMin, int ovhd, int aFuzz)
static XrdSysMutex Mutex
Definition XrdOssCache.hh:262
Definition XrdOssVS.hh:64
Definition XrdSysError.hh:90
Definition XrdSysPthread.hh:165
Definition XrdOssCache.hh:223
long long cgSize
Definition XrdOssCache.hh:225
XrdOssCache_FS * cgFSp
Definition XrdOssCache.hh:231
int cgPlen
Definition XrdOssCache.hh:227
char * cgPsfx
Definition XrdOssCache.hh:230
allocInfo(const char *pP, char *bP, int bL)
Definition XrdOssCache.hh:234
int cgPFsz
Definition XrdOssCache.hh:228
mode_t aMode
Definition XrdOssCache.hh:232
const char * cgName
Definition XrdOssCache.hh:224
const char * Path
Definition XrdOssCache.hh:223
const char * cgPath
Definition XrdOssCache.hh:226
~allocInfo()
Definition XrdOssCache.hh:237
char * cgPFbf
Definition XrdOssCache.hh:229
Definition XrdOssCache.hh:170
int apNum
Definition XrdOssCache.hh:173
const char ** apVec
Definition XrdOssCache.hh:172
XrdOssCache_FSData * fsP
Definition XrdOssCache.hh:171