xrootd
XrdOssApi.hh
Go to the documentation of this file.
1 #ifndef _XRDOSS_API_H
2 #define _XRDOSS_API_H
3 /******************************************************************************/
4 /* */
5 /* X r d O s s A p i . h h */
6 /* */
7 /* (c) 2003 by the Board of Trustees of the Leland Stanford, Jr., University */
8 /* All Rights Reserved */
9 /* Produced by Andrew Hanushevsky for Stanford University under contract */
10 /* DE-AC02-76-SFO0515 with the Department of Energy */
11 /* */
12 /* This file is part of the XRootD software suite. */
13 /* */
14 /* XRootD is free software: you can redistribute it and/or modify it under */
15 /* the terms of the GNU Lesser General Public License as published by the */
16 /* Free Software Foundation, either version 3 of the License, or (at your */
17 /* option) any later version. */
18 /* */
19 /* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21 /* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22 /* License for more details. */
23 /* */
24 /* You should have received a copy of the GNU Lesser General Public License */
25 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26 /* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27 /* */
28 /* The copyright holder's institutional names and contributor's names may not */
29 /* be used to endorse or promote products derived from this software without */
30 /* specific prior written permission of the institution or contributor. */
31 /******************************************************************************/
32 
33 #include <sys/types.h>
34 #include <errno.h>
35 #include "XrdSys/XrdSysHeaders.hh"
36 
37 #include "XrdOss/XrdOss.hh"
38 #include "XrdOss/XrdOssConfig.hh"
39 #include "XrdOss/XrdOssError.hh"
40 #include "XrdOss/XrdOssStatInfo.hh"
41 #include "XrdOuc/XrdOucExport.hh"
42 #include "XrdOuc/XrdOucPList.hh"
43 #include "XrdOuc/XrdOucStream.hh"
44 #include "XrdSys/XrdSysError.hh"
45 #include "XrdSys/XrdSysPthread.hh"
46 
47 /******************************************************************************/
48 /* o o s s _ D i r */
49 /******************************************************************************/
50 
51 class XrdOssDir : public XrdOssDF
52 {
53 public:
54 int Close(long long *retsz=0);
55 int Opendir(const char *, XrdOucEnv &);
56 int Readdir(char *buff, int blen);
57 int StatRet(struct stat *buff);
58 
59  // Constructor and destructor
60  XrdOssDir(const char *tid, DIR *dP=0)
61  : XrdOssDF(tid, DF_isDir),
62  lclfd(dP), mssfd(0), Stat(0), ateof(false),
63  isopen(dP != 0), dOpts(0) {if (dP) fd = dirfd(dP);}
64 
65  ~XrdOssDir() {if (isopen) Close();}
66 private:
67  DIR *lclfd;
68  void *mssfd;
69 struct stat *Stat;
70  bool ateof;
71  bool isopen;
72 unsigned char dOpts;
73 static const int isStage = 0x01;
74 static const int noCheck = 0x02;
75 static const int noDread = 0x04;
76 };
77 
78 /******************************************************************************/
79 /* o o s s _ F i l e */
80 /******************************************************************************/
81 
82 class oocx_CXFile;
83 class XrdSfsAio;
84 class XrdOssCache_FS;
85 class XrdOssMioFile;
86 
87 class XrdOssFile : public XrdOssDF
88 {
89 public:
90 
91 // The following two are virtual functions to allow for upcasting derivations
92 // of this implementation
93 //
94 virtual int Close(long long *retsz=0);
95 virtual int Open(const char *, int, mode_t, XrdOucEnv &);
96 
97 int Fchmod(mode_t mode);
98 void Flush();
99 int Fstat(struct stat *);
100 int Fsync();
101 int Fsync(XrdSfsAio *aiop);
102 int Ftruncate(unsigned long long);
103 int getFD() {return fd;}
104 off_t getMmap(void **addr);
105 int isCompressed(char *cxidp=0);
106 ssize_t Read( off_t, size_t);
107 ssize_t Read( void *, off_t, size_t);
108 int Read(XrdSfsAio *aiop);
109 ssize_t ReadV(XrdOucIOVec *readV, int);
110 ssize_t ReadRaw( void *, off_t, size_t);
111 ssize_t Write(const void *, off_t, size_t);
112 int Write(XrdSfsAio *aiop);
113 
114  // Constructor and destructor
115  XrdOssFile(const char *tid, int fdnum=-1)
116  : XrdOssDF(tid, DF_isFile, fdnum),
117  cxobj(0), cacheP(0), mmFile(0),
118  rawio(0), cxpgsz(0) {cxid[0] = '\0';}
119 
120 virtual ~XrdOssFile() {if (fd >= 0) Close();}
121 
122 private:
123 int Open_ufs(const char *, int, int, unsigned long long);
124 
125 static int AioFailure;
126 oocx_CXFile *cxobj;
129 long long FSize;
130 int rawio;
131 int cxpgsz;
132 char cxid[4];
133 };
134 
135 /******************************************************************************/
136 /* o o s s _ S y s */
137 /******************************************************************************/
138 
139 class XrdFrcProxy;
140 class XrdOssCache_Group;
141 class XrdOssCache_Space;
142 class XrdOssCreateInfo;
143 class XrdOucMsubs;
144 class XrdOucName2Name;
145 class XrdOucProg;
146 class XrdOssSpace;
147 class XrdOssStage_Req;
148 
149 struct XrdVersionInfo;
150 
151 class XrdOssSys : public XrdOss
152 {
153 public:
154 virtual XrdOssDF *newDir(const char *tident)
155  {return (XrdOssDF *)new XrdOssDir(tident);}
156 virtual XrdOssDF *newFile(const char *tident)
157  {return (XrdOssDF *)new XrdOssFile(tident);}
158 
159 int Chmod(const char *, mode_t mode, XrdOucEnv *eP=0);
160 int Configure(const char *, XrdSysError &, XrdOucEnv *envP);
162 virtual
163 int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0);
164 int GenLocalPath(const char *, char *);
165 int GenRemotePath(const char *, char *);
166 int Init(XrdSysLogger *, const char *, XrdOucEnv *envP);
167 int Init(XrdSysLogger *lP, const char *cP) {return Init(lP, cP, 0);}
168 int IsRemote(const char *path)
169  {return (RPList.Find(path) & XRDEXP_REMOTE) != 0;}
170 int Lfn2Pfn(const char *Path, char *buff, int blen);
171 const char *Lfn2Pfn(const char *Path, char *buff, int blen, int &rc);
172 int Mkdir(const char *, mode_t mode, int mkpath=0, XrdOucEnv *eP=0);
173 int Mkpath(const char *, mode_t mode);
174 unsigned long long PathOpts(const char *path) {return RPList.Find(path);}
175 int Reloc(const char *tident, const char *path,
176  const char *cgName, const char *anchor=0);
177 int Remdir(const char *, int Opts=0, XrdOucEnv *eP=0); // In Unlink()
178 int Rename(const char *, const char *,
179  XrdOucEnv *eP1=0, XrdOucEnv *eP2=0);
180 virtual
181 int Stage(const char *, const char *, XrdOucEnv &, int, mode_t, unsigned long long );
182 void *Stage_In(void *carg);
183 int Stat(const char *, struct stat *, int opts=0, XrdOucEnv *Env=0);
184 int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *Env=0);
185 int StatFS(const char *path, unsigned long long &Opt,
186  long long &fSize, long long &fSpace);
187 int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen);
188 int StatPF(const char *, struct stat *, int);
189 int StatVS(XrdOssVSInfo *sP, const char *sname=0, int updt=0);
190 int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *Env=0);
191 int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *Env=0);
192 int Truncate(const char *, unsigned long long Size, XrdOucEnv *eP=0);
193 int Unlink(const char *, int Opts=0, XrdOucEnv *eP=0);
194 
195 int Stats(char *bp, int bl);
196 
197 static int AioInit();
198 static int AioAllOk;
199 
200 static char tryMmap; // Memory mapped files enabled
201 static char chkMmap; // Memory mapped files are selective
202 
203 int MSS_Closedir(void *);
204 int MSS_Create(const char *path, mode_t, XrdOucEnv &);
205 void *MSS_Opendir(const char *, int &rc);
206 int MSS_Readdir(void *fd, char *buff, int blen);
207 int MSS_Remdir(const char *, const char *) {return -ENOTSUP;}
208 int MSS_Rename(const char *, const char *);
209 int MSS_Stat(const char *, struct stat *buff=0);
210 int MSS_Unlink(const char *);
211 
212 static const int MaxArgs = 15;
213 
214 char *ConfigFN; // -> Pointer to the config file name
215 char *LocalRoot; // -> Path prefix for local filename
216 char *RemoteRoot; // -> Path prefix for remote filename
217 int MaxTwiddle; // Maximum seconds of internal wait
218 int StageRealTime; // If 1, Invoke stage command on demand
219 int StageAsync; // If 1, return EINPROGRESS to the caller
220 int StageCreate; // If 1, use open path to create files
221 int StageFormat; // Format for default stagecmd
222 char *StageCmd; // -> Staging command to use
223 char *StageMsg; // -> Staging message to be passed
224 XrdOucMsubs *StageSnd; // -> Parsed Message
225 XrdFrcProxy *StageFrm; // -> Built-in stagecmd or zero
226 
227 char *StageEvents; // -> file:////<adminpath> if async staging
228 int StageEvSize; // Length of above
229 int StageActLen; // Length of below
230 char *StageAction; // -> "wq " if sync | "wfn " if async
231 
234 int StageAnum; // Count of valid Arg/Aln array elements
235 char *RSSCmd; // -> Remote Storage Service Command
236 int isMSSC; // RSSCmd is old-style msscmd
237 int RSSTout; // RSSCmd response timeout
238 long long MaxSize; // Maximum file size (*obsolete*)
239 int FDFence; // Smallest file FD number allowed
240 int FDLimit; // Largest file FD number allowed
241 unsigned long long DirFlags;// Default directory settings
242 int Trace; // Trace flags
243 int Solitary; // True if running in stand-alone mode
244 int OptFlags; // General option flags
245 
246 XrdOucPListAnchor SPList; // The path to space list
247 #define spAssign 1
248 
249 char *N2N_Lib; // -> Name2Name Library Path
250 char *N2N_Parms; // -> Name2Name Object Parameters
251 XrdOucName2Name *lcl_N2N; // -> File mapper for local files
252 XrdOucName2Name *rmt_N2N; // -> File mapper for remote files
253 XrdOucName2Name *the_N2N; // -> File mapper object
254 XrdOucPListAnchor RPList; // The real path list
255 OssDPath *DPList; // The stat path list
256 int lenDP;
257 short numDP;
258 short numCG;
259 
260 char *STT_Lib; // -> StatInfo Library Path
261 char *STT_Parms; // -> StatInfo Library Paramaters
262 union {
265  };
268 char STT_V2;
270 
271 long long prPBits; // Page lo order bit mask
272 long long prPMask; // Page hi order bit mask
273 int prPSize; // preread page size
274 int prBytes; // preread byte limit
275 int prActive; // preread activity count
276 short prDepth; // preread depth
277 short prQSize; // preread maximum allowed
278 
279 XrdVersionInfo *myVersion; // Compilation version set by constructor
280 
282 virtual ~XrdOssSys() {}
283 
284 protected:
285 // Cache management related data and methods
286 //
287 long long minalloc; // Minimum allocation
288 int ovhalloc; // Allocation overage
289 int fuzalloc; // Allocation fuzz
290 int cscanint; // Seconds between cache scans
291 int xfrspeed; // Average transfer speed (bytes/second)
292 int xfrovhd; // Minimum seconds to get a file
293 int xfrhold; // Second hold limit on failing requests
294 int xfrkeep; // Second keep queued requests
295 int xfrthreads; // Number of threads for staging
296 int xfrtcount; // Actual count of threads (used for dtr)
297 long long pndbytes; // Total bytes to be staged (pending)
298 long long stgbytes; // Total bytes being staged (active)
299 long long totbytes; // Total bytes were staged (active+pending)
300 int totreqs; // Total successful requests
301 int badreqs; // Total unsuccessful requests
302 
303 XrdOucProg *StageProg; // Command or manager than handles staging
304 XrdOucProg *RSSProg; // Command for Remote Storage Services
305 
306 char *UDir; // -> Usage logdir
307 char *QFile; // -> Quota file
308 char *xfrFdir; // -> Fail file base dir
309 int xfrFdln; // strlen(xfrFDir)
310 short USync; // Usage sync interval
311 bool pfcMode; // Setup for Proxy File Cache
312 
313 int Alloc_Cache(XrdOssCreateInfo &, XrdOucEnv &);
314 int Alloc_Local(XrdOssCreateInfo &, XrdOucEnv &);
315 int BreakLink(const char *local_path, struct stat &statbuff);
316 int CalcTime();
318 int SetFattr(XrdOssCreateInfo &crInfo, int datfd, time_t mtime);
319 void doScrub();
320 int Find(XrdOssStage_Req *req, void *carg);
321 int getCname(const char *path, struct stat *sbuff, char *cgbuff);
322 int getStats(char *buff, int blen);
324 int getID(const char *, XrdOucEnv &, char *, int);
325 time_t HasFile(const char *fn, const char *sfx, time_t *mTime=0);
326 int Stage_QT(const char *, const char *, XrdOucEnv &, int, mode_t);
327 int Stage_RT(const char *, const char *, XrdOucEnv &, unsigned long long);
328 
329 // Configuration related methods
330 //
331 void ConfigCache(XrdSysError &Eroute, bool pass2=false);
332 void ConfigMio(XrdSysError &Eroute);
333 int ConfigN2N(XrdSysError &Eroute, XrdOucEnv *envP);
334 int ConfigProc(XrdSysError &Eroute);
335 void ConfigSpace(XrdSysError &Eroute);
336 void ConfigSpace(const char *Lfn);
337 void ConfigSpath(XrdSysError &Eroute, const char *Pn,
338  unsigned long long &Fv, int noMSS);
341 int ConfigStatLib(XrdSysError &Eroute, XrdOucEnv *envP);
342 void ConfigStats(XrdSysError &Eroute);
343 void ConfigStats(dev_t Devnum, char *lP);
345 void List_Path(const char *, const char *, unsigned long long, XrdSysError &);
356 int xspace(XrdOucStream &Config, XrdSysError &Eroute, int *isCD=0);
358  const char *grp, bool isAsgn);
359 int xspaceBuild(char *grp, char *fn, int isxa, XrdSysError &Eroute);
365 
366 // Mass storage related methods
367 //
368 int tranmode(char *);
369 int MSS_Xeq(XrdOucStream **xfd, int okerr,
370  const char *cmd, const char *arg1=0, const char *arg2=0);
371 
372 // Other methods
373 //
374 int RenameLink(char *old_path, char *new_path);
375 int RenameLink3(char *cPath, char *old_path, char *new_path);
376 };
377 
378 /******************************************************************************/
379 /* A P I S p e c i f i c D e f i n e s */
380 /******************************************************************************/
381 
382 // The Check_RO macro is valid only for XrdOssSys objects.
383 //
384 #define Check_RO(act, flags, path, opname) \
385  XRDEXP_REMOTE & (flags = PathOpts(path)); \
386  if (flags & XRDEXP_NOTRW) \
387  return OssEroute.Emsg(#act, -XRDOSS_E8005, opname, path)
388 
389 #define Check_RW(act, path, opname) \
390  if (PathOpts(path) & XRDEXP_NOTRW) \
391  return OssEroute.Emsg(#act, -XRDOSS_E8005, opname, path)
392 #endif
XrdOssSys::prDepth
short prDepth
Definition: XrdOssApi.hh:276
XrdOssSys::STT_V2
char STT_V2
Definition: XrdOssApi.hh:268
XrdOssSys::myVersion
XrdVersionInfo * myVersion
Definition: XrdOssApi.hh:279
XrdOss
Definition: XrdOss.hh:488
XrdOssDir::XrdOssDir
XrdOssDir(const char *tid, DIR *dP=0)
Definition: XrdOssApi.hh:60
XrdOssSys::Stage_RT
int Stage_RT(const char *, const char *, XrdOucEnv &, unsigned long long)
XrdOssSys::getCname
int getCname(const char *path, struct stat *sbuff, char *cgbuff)
XrdOssSys::Stat
int Stat(const char *, struct stat *, int opts=0, XrdOucEnv *Env=0)
XrdOssSys::RSSCmd
char * RSSCmd
Definition: XrdOssApi.hh:235
XrdOssConfig.hh
XrdOssSys::StatXP
int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *Env=0)
XrdOssSys::xtrace
int xtrace(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::Alloc_Cache
int Alloc_Cache(XrdOssCreateInfo &, XrdOucEnv &)
XrdOssDir::Close
int Close(long long *retsz=0)
XrdOssSys::FDFence
int FDFence
Definition: XrdOssApi.hh:239
XrdOssSys::STT_PreOp
int STT_PreOp
Definition: XrdOssApi.hh:266
XrdOssDir::ateof
bool ateof
Definition: XrdOssApi.hh:70
XrdOssSys::Unlink
int Unlink(const char *, int Opts=0, XrdOucEnv *eP=0)
XrdOssSys::STT_Func
XrdOssStatInfo_t STT_Func
Definition: XrdOssApi.hh:263
XrdOucProg
Definition: XrdOucProg.hh:38
XrdOssDir::isStage
static const int isStage
Definition: XrdOssApi.hh:73
XrdOssDir::StatRet
int StatRet(struct stat *buff)
XrdOssFile::Flush
void Flush()
Flush filesystem cached pages for this file (used for checksums).
XrdOssSys::Mkdir
int Mkdir(const char *, mode_t mode, int mkpath=0, XrdOucEnv *eP=0)
XrdOssStatInfo_t
int(* XrdOssStatInfo_t)(const char *path, struct stat *buff, int opts, XrdOucEnv *envP)
Definition: XrdOssStatInfo.hh:63
XrdOssFile::Fstat
int Fstat(struct stat *)
XrdOssSys::xspace
int xspace(XrdOucStream &Config, XrdSysError &Eroute, int *isCD=0)
XrdOssSys::ConfigFN
char * ConfigFN
Definition: XrdOssApi.hh:214
XrdSysPthread.hh
XrdOssMioFile
Definition: XrdOssMioFile.hh:37
XrdOssSys::StageArg
char * StageArg[MaxArgs]
Definition: XrdOssApi.hh:232
XrdOssSys::ConfigXeq
int ConfigXeq(char *, XrdOucStream &, XrdSysError &)
XrdOssSys::StageFormat
int StageFormat
Definition: XrdOssApi.hh:221
XrdOssSys::MaxSize
long long MaxSize
Definition: XrdOssApi.hh:238
XrdOssSys::Stage_In
void * Stage_In(void *carg)
XrdOssFile::Fsync
int Fsync()
XrdOssDir::noCheck
static const int noCheck
Definition: XrdOssApi.hh:74
XrdOssSys::xalloc
int xalloc(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::numCG
short numCG
Definition: XrdOssApi.hh:258
XrdOssSys::lcl_N2N
XrdOucName2Name * lcl_N2N
Definition: XrdOssApi.hh:251
XrdOssFile::AioFailure
static int AioFailure
Definition: XrdOssApi.hh:125
XrdOssSys::Truncate
int Truncate(const char *, unsigned long long Size, XrdOucEnv *eP=0)
XrdOssSys::USync
short USync
Definition: XrdOssApi.hh:310
XrdOssSys::FDLimit
int FDLimit
Definition: XrdOssApi.hh:240
XrdOssSys::MSS_Create
int MSS_Create(const char *path, mode_t, XrdOucEnv &)
XrdOssDF::DF_isDir
static const uint16_t DF_isDir
Object is for a directory.
Definition: XrdOss.hh:393
XrdOssSys::MSS_Stat
int MSS_Stat(const char *, struct stat *buff=0)
XrdOssSys::xstl
int xstl(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssFile::getFD
int getFD()
Definition: XrdOssApi.hh:103
XrdOssSys::xmemf
int xmemf(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::StageActLen
int StageActLen
Definition: XrdOssApi.hh:229
XrdOssSys::OptFlags
int OptFlags
Definition: XrdOssApi.hh:244
XrdOssFile::cxpgsz
int cxpgsz
Definition: XrdOssApi.hh:131
XrdOucMsubs
Definition: XrdOucMsubs.hh:91
XrdOssSys::Init
int Init(XrdSysLogger *, const char *, XrdOucEnv *envP)
XrdOssSys::prActive
int prActive
Definition: XrdOssApi.hh:275
XrdOssSys::pndbytes
long long pndbytes
Definition: XrdOssApi.hh:297
XrdOssFile::FSize
long long FSize
Definition: XrdOssApi.hh:129
XrdOssDF
Definition: XrdOss.hh:62
XrdOssDir::mssfd
void * mssfd
Definition: XrdOssApi.hh:68
XrdOssDir::~XrdOssDir
~XrdOssDir()
Definition: XrdOssApi.hh:65
XrdOssSys::xusage
int xusage(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::Stats
int Stats(char *bp, int bl)
XrdOucPListAnchor
Definition: XrdOucPList.hh:89
XrdOssError.hh
XrdOssSys::Stage
virtual int Stage(const char *, const char *, XrdOucEnv &, int, mode_t, unsigned long long)
XrdOssSys::RemoteRoot
char * RemoteRoot
Definition: XrdOssApi.hh:216
XrdOssSys::List_Path
void List_Path(const char *, const char *, unsigned long long, XrdSysError &)
XrdOssSys::CalcTime
int CalcTime(XrdOssStage_Req *req)
XrdOssSys::isMSSC
int isMSSC
Definition: XrdOssApi.hh:236
XrdOssSys::rmt_N2N
XrdOucName2Name * rmt_N2N
Definition: XrdOssApi.hh:252
XrdOssSys::Chmod
int Chmod(const char *, mode_t mode, XrdOucEnv *eP=0)
XrdOssDir::Readdir
int Readdir(char *buff, int blen)
XrdOssSys::STT_Parms
char * STT_Parms
Definition: XrdOssApi.hh:261
XrdOssVSInfo
Definition: XrdOssVS.hh:88
XrdOssSys::MSS_Closedir
int MSS_Closedir(void *)
XrdOssDir::dOpts
unsigned char dOpts
Definition: XrdOssApi.hh:72
XrdOssSys::prPSize
int prPSize
Definition: XrdOssApi.hh:273
XrdOssSys::GetFile
int GetFile(XrdOssStage_Req *req)
XrdOssSys::StageEvents
char * StageEvents
Definition: XrdOssApi.hh:227
XrdOucIOVec
Definition: XrdOucIOVec.hh:41
XrdOssSys::StageMsg
char * StageMsg
Definition: XrdOssApi.hh:223
XrdOucStream
Definition: XrdOucStream.hh:47
XrdOssFile::Write
int Write(XrdSfsAio *aiop)
XrdOssStatInfo2_t
int(* XrdOssStatInfo2_t)(const char *path, struct stat *buff, int opts, XrdOucEnv *envP, const char *lfn)
Definition: XrdOssStatInfo.hh:66
XrdOssSys::ConfigN2N
int ConfigN2N(XrdSysError &Eroute, XrdOucEnv *envP)
XrdOssSys::Solitary
int Solitary
Definition: XrdOssApi.hh:243
XrdOssSys::Create
virtual int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0)
XrdOssSys::XrdOssSys
XrdOssSys()
XrdOssSys::ConfigStats
void ConfigStats(dev_t Devnum, char *lP)
XrdOssDir::isopen
bool isopen
Definition: XrdOssApi.hh:71
XrdOssSys::Trace
int Trace
Definition: XrdOssApi.hh:242
XrdOssSys::StageCreate
int StageCreate
Definition: XrdOssApi.hh:220
XrdOssSys::badreqs
int badreqs
Definition: XrdOssApi.hh:301
XrdOssSys::xfrovhd
int xfrovhd
Definition: XrdOssApi.hh:292
XrdOssSys::GenLocalPath
int GenLocalPath(const char *, char *)
XrdOssFile::isCompressed
int isCompressed(char *cxidp=0)
XrdOssSys::xcache
int xcache(XrdOucStream &Config, XrdSysError &Eroute)
XrdFrcProxy
Definition: XrdFrcProxy.hh:40
XrdOss.hh
XrdOssSys::Find
int Find(XrdOssStage_Req *req, void *carg)
XrdOssSys::doScrub
void doScrub()
XrdOssCache_Space
Definition: XrdOssCache.hh:79
XrdOssDir::lclfd
DIR * lclfd
Definition: XrdOssApi.hh:67
XrdOssFile::mmFile
XrdOssMioFile * mmFile
Definition: XrdOssApi.hh:128
XrdOssSys::N2N_Lib
char * N2N_Lib
Definition: XrdOssApi.hh:249
XrdOssFile::Open
virtual int Open(const char *, int, mode_t, XrdOucEnv &)
XrdOssFile::Read
ssize_t Read(void *, off_t, size_t)
XrdOssSys::DirFlags
unsigned long long DirFlags
Definition: XrdOssApi.hh:241
XrdOssSys::xfrkeep
int xfrkeep
Definition: XrdOssApi.hh:294
XrdOssDF::fd
int fd
Definition: XrdOss.hh:448
XrdOssDF::DF_isFile
static const uint16_t DF_isFile
Object is for a file.
Definition: XrdOss.hh:394
XrdOssFile::Read
ssize_t Read(off_t, size_t)
XrdOssFile::ReadV
ssize_t ReadV(XrdOucIOVec *readV, int)
XrdOssSys::xmaxsz
int xmaxsz(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::RSSProg
XrdOucProg * RSSProg
Definition: XrdOssApi.hh:304
XrdOssSys::RPList
XrdOucPListAnchor RPList
Definition: XrdOssApi.hh:254
XrdOssSys::xxfr
int xxfr(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssFile
Definition: XrdOssApi.hh:88
XrdOssSys::MSS_Opendir
void * MSS_Opendir(const char *, int &rc)
XrdOssSys::Reloc
int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
XrdOssSys::totreqs
int totreqs
Definition: XrdOssApi.hh:300
XrdOssSys::newFile
virtual XrdOssDF * newFile(const char *tident)
Definition: XrdOssApi.hh:156
XrdOssSys::StageAction
char * StageAction
Definition: XrdOssApi.hh:230
XrdOssSys::AioInit
static int AioInit()
XrdOssSys::StatFS
int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *Env=0)
XrdOssSys::ConfigSpace
void ConfigSpace(XrdSysError &Eroute)
XrdOssFile::Read
int Read(XrdSfsAio *aiop)
XrdOssSys::MSS_Unlink
int MSS_Unlink(const char *)
XrdOucEnv
Definition: XrdOucEnv.hh:42
XrdOssSys::stgbytes
long long stgbytes
Definition: XrdOssApi.hh:298
XrdOssSys::StageSnd
XrdOucMsubs * StageSnd
Definition: XrdOssApi.hh:224
XrdOssDir::noDread
static const int noDread
Definition: XrdOssApi.hh:75
XrdOssDir::Stat
struct stat * Stat
Definition: XrdOssApi.hh:69
XrdOssSys::Config_Display
void Config_Display(XrdSysError &)
XrdOssSys::BreakLink
int BreakLink(const char *local_path, struct stat &statbuff)
XrdOssStatInfo.hh
XrdOssSys::RenameLink3
int RenameLink3(char *cPath, char *old_path, char *new_path)
XrdOssSys::HasFile
time_t HasFile(const char *fn, const char *sfx, time_t *mTime=0)
XrdOssSys::MSS_Rename
int MSS_Rename(const char *, const char *)
XrdOssSys::PathOpts
unsigned long long PathOpts(const char *path)
Definition: XrdOssApi.hh:174
XrdOssSys::fuzalloc
int fuzalloc
Definition: XrdOssApi.hh:289
XrdOssFile::XrdOssFile
XrdOssFile(const char *tid, int fdnum=-1)
Definition: XrdOssApi.hh:115
XrdOssSys::Lfn2Pfn
int Lfn2Pfn(const char *Path, char *buff, int blen)
XrdOssDir
Definition: XrdOssApi.hh:52
XrdOssSys::StageAnum
int StageAnum
Definition: XrdOssApi.hh:234
XrdOssSys::RSSTout
int RSSTout
Definition: XrdOssApi.hh:237
XrdSysLogger
Definition: XrdSysLogger.hh:53
XrdOssSys::xfrFdln
int xfrFdln
Definition: XrdOssApi.hh:309
XrdOssSys::tranmode
int tranmode(char *)
XRDEXP_REMOTE
#define XRDEXP_REMOTE
Definition: XrdOucExport.hh:85
XrdOssSys::xfrtcount
int xfrtcount
Definition: XrdOssApi.hh:296
XrdOssSys::cscanint
int cscanint
Definition: XrdOssApi.hh:290
XrdOssSys::prPBits
long long prPBits
Definition: XrdOssApi.hh:271
XrdOssSys::UDir
char * UDir
Definition: XrdOssApi.hh:306
XrdCms::Config
XrdCmsConfig Config
XrdOssFile::rawio
int rawio
Definition: XrdOssApi.hh:130
XrdOssSys::tryMmap
static char tryMmap
Definition: XrdOssApi.hh:200
XrdOssSys::chkMmap
static char chkMmap
Definition: XrdOssApi.hh:201
XrdOssSys::RenameLink
int RenameLink(char *old_path, char *new_path)
XrdOssSys::ConfigProc
int ConfigProc(XrdSysError &Eroute)
XrdOssSys::STT_DoARE
char STT_DoARE
Definition: XrdOssApi.hh:269
XrdOssSys::newDir
virtual XrdOssDF * newDir(const char *tident)
Definition: XrdOssApi.hh:154
XrdOssStage_Req
Definition: XrdOssStage.hh:50
XrdOssSys::StageEvSize
int StageEvSize
Definition: XrdOssApi.hh:228
XrdOssSys::MSS_Remdir
int MSS_Remdir(const char *, const char *)
Definition: XrdOssApi.hh:207
XrdOssFile::cacheP
XrdOssCache_FS * cacheP
Definition: XrdOssApi.hh:127
XrdOssSys::Lfn2Pfn
const char * Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
XrdOssSys::ConfigStats
void ConfigStats(XrdSysError &Eroute)
XrdOssSys::StageRealTime
int StageRealTime
Definition: XrdOssApi.hh:218
XrdOssSys::StageCmd
char * StageCmd
Definition: XrdOssApi.hh:222
XrdOssSys::STT_DoN2N
char STT_DoN2N
Definition: XrdOssApi.hh:267
XrdOssSys::DPList
OssDPath * DPList
Definition: XrdOssApi.hh:255
XrdOssSys::xspace
int xspace(XrdOucStream &Config, XrdSysError &Eroute, const char *grp, bool isAsgn)
XrdOssSys::StatLS
int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen)
XrdOssSys::xnml
int xnml(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::GenRemotePath
int GenRemotePath(const char *, char *)
XrdOssSys::MaxTwiddle
int MaxTwiddle
Definition: XrdOssApi.hh:217
XrdOssSys::LocalRoot
char * LocalRoot
Definition: XrdOssApi.hh:215
XrdOssSys::numDP
short numDP
Definition: XrdOssApi.hh:257
XrdOssFile::Open_ufs
int Open_ufs(const char *, int, int, unsigned long long)
XrdOssSys::ConfigCache
void ConfigCache(XrdSysError &Eroute, bool pass2=false)
XrdOssSys::lenDP
int lenDP
Definition: XrdOssApi.hh:256
XrdOssSys::ConfigMio
void ConfigMio(XrdSysError &Eroute)
XrdOssSys
Definition: XrdOssApi.hh:152
XrdOssSys::MaxArgs
static const int MaxArgs
Definition: XrdOssApi.hh:212
XrdOssSys::xfrhold
int xfrhold
Definition: XrdOssApi.hh:293
XrdOucName2Name
Definition: XrdOucName2Name.hh:49
XrdOssDir::Opendir
int Opendir(const char *, XrdOucEnv &)
XrdOssSys::the_N2N
XrdOucName2Name * the_N2N
Definition: XrdOssApi.hh:253
XrdOssSys::MSS_Readdir
int MSS_Readdir(void *fd, char *buff, int blen)
XrdOssSys::SPList
XrdOucPListAnchor SPList
Definition: XrdOssApi.hh:246
XrdOssSys::ConfigSpath
void ConfigSpath(XrdSysError &Eroute, const char *Pn, unsigned long long &Fv, int noMSS)
XrdOssCache_Group
Definition: XrdOssCache.hh:183
XrdOssSys::SetFattr
int SetFattr(XrdOssCreateInfo &crInfo, int datfd, time_t mtime)
XrdOssFile::getMmap
off_t getMmap(void **addr)
XrdOssFile::~XrdOssFile
virtual ~XrdOssFile()
Definition: XrdOssApi.hh:120
XrdOssSys::xstg
int xstg(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssFile::Fsync
int Fsync(XrdSfsAio *aiop)
XrdOssSys::StatXA
int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *Env=0)
XrdOssSys::ovhalloc
int ovhalloc
Definition: XrdOssApi.hh:288
XrdOssFile::Ftruncate
int Ftruncate(unsigned long long)
XrdOssSys::StatPF
int StatPF(const char *, struct stat *, int)
XrdOssSys::AioAllOk
static int AioAllOk
Definition: XrdOssApi.hh:198
XrdOssCache_FS
Definition: XrdOssCache.hh:133
XrdOssSys::IsRemote
int IsRemote(const char *path)
Definition: XrdOssApi.hh:168
XrdOssFile::Write
ssize_t Write(const void *, off_t, size_t)
XrdSfsAio
Definition: XrdSfsAio.hh:59
XrdOssSys::ConfigStageC
int ConfigStageC(XrdSysError &Eroute)
XrdOssFile::Close
virtual int Close(long long *retsz=0)
XrdOssSys::Rename
int Rename(const char *, const char *, XrdOucEnv *eP1=0, XrdOucEnv *eP2=0)
XrdOssSys::MSS_Xeq
int MSS_Xeq(XrdOucStream **xfd, int okerr, const char *cmd, const char *arg1=0, const char *arg2=0)
XrdOssSys::Init
int Init(XrdSysLogger *lP, const char *cP)
Definition: XrdOssApi.hh:167
stat
#define stat(a, b)
Definition: XrdPosix.hh:96
XrdOssSys::~XrdOssSys
virtual ~XrdOssSys()
Definition: XrdOssApi.hh:282
XrdOucPListAnchor::Find
unsigned long long Find(const char *pathname)
Definition: XrdOucPList.hh:112
XrdOssSpace
Definition: XrdOssSpace.hh:36
XrdOssSys::StageAln
int StageAln[MaxArgs]
Definition: XrdOssApi.hh:233
XrdOssSys::ConfigStage
int ConfigStage(XrdSysError &Eroute)
XrdOssSys::StageFrm
XrdFrcProxy * StageFrm
Definition: XrdOssApi.hh:225
XrdOssSys::xpath
int xpath(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::getID
int getID(const char *, XrdOucEnv &, char *, int)
XrdOssSys::StatVS
int StatVS(XrdOssVSInfo *sP, const char *sname=0, int updt=0)
XrdOssSys::xfrFdir
char * xfrFdir
Definition: XrdOssApi.hh:308
XrdSysError
Definition: XrdSysError.hh:90
XrdOucPList.hh
XrdOssSys::Stage_QT
int Stage_QT(const char *, const char *, XrdOucEnv &, int, mode_t)
XrdOssSys::minalloc
long long minalloc
Definition: XrdOssApi.hh:287
OssDPath
Definition: XrdOssConfig.hh:49
XrdOssSys::StageProg
XrdOucProg * StageProg
Definition: XrdOssApi.hh:303
XrdOssSys::xspaceBuild
int xspaceBuild(char *grp, char *fn, int isxa, XrdSysError &Eroute)
XrdOssFile::cxobj
oocx_CXFile * cxobj
Definition: XrdOssApi.hh:126
XrdOssSys::prQSize
short prQSize
Definition: XrdOssApi.hh:277
XrdOucStream.hh
XrdOssSys::Remdir
int Remdir(const char *, int Opts=0, XrdOucEnv *eP=0)
XrdOssSys::xfrspeed
int xfrspeed
Definition: XrdOssApi.hh:291
XrdOssSys::Configure
int Configure(const char *, XrdSysError &, XrdOucEnv *envP)
XrdOssSys::CalcTime
int CalcTime()
XrdOssSys::xfrthreads
int xfrthreads
Definition: XrdOssApi.hh:295
XrdOssSys::QFile
char * QFile
Definition: XrdOssApi.hh:307
XrdOssFile::Fchmod
int Fchmod(mode_t mode)
XrdOssSys::StatFS
int StatFS(const char *path, unsigned long long &Opt, long long &fSize, long long &fSpace)
XrdOssSys::STT_Lib
char * STT_Lib
Definition: XrdOssApi.hh:260
XrdOssSys::xfdlimit
int xfdlimit(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::Alloc_Local
int Alloc_Local(XrdOssCreateInfo &, XrdOucEnv &)
XrdOssSys::STT_Fund
XrdOssStatInfo2_t STT_Fund
Definition: XrdOssApi.hh:264
XrdOssFile::cxid
char cxid[4]
Definition: XrdOssApi.hh:132
XrdOssSys::ConfigSpace
void ConfigSpace(const char *Lfn)
XrdOssSys::xdefault
int xdefault(XrdOucStream &Config, XrdSysError &Eroute)
XrdOssSys::N2N_Parms
char * N2N_Parms
Definition: XrdOssApi.hh:250
XrdOssSys::Mkpath
int Mkpath(const char *, mode_t mode)
XrdOssSys::prBytes
int prBytes
Definition: XrdOssApi.hh:274
XrdOssSys::pfcMode
bool pfcMode
Definition: XrdOssApi.hh:311
XrdOssSys::prPMask
long long prPMask
Definition: XrdOssApi.hh:272
XrdOssSys::getStats
int getStats(char *buff, int blen)
XrdOssSys::totbytes
long long totbytes
Definition: XrdOssApi.hh:299
XrdOucExport.hh
XrdOssSys::ConfigStatLib
int ConfigStatLib(XrdSysError &Eroute, XrdOucEnv *envP)
XrdOssSys::StageAsync
int StageAsync
Definition: XrdOssApi.hh:219
XrdOssSys::xcachescan
int xcachescan(XrdOucStream &Config, XrdSysError &Eroute)
XrdSysError.hh
XrdSysHeaders.hh
XrdOssFile::ReadRaw
ssize_t ReadRaw(void *, off_t, size_t)
XrdOssSys::xprerd
int xprerd(XrdOucStream &Config, XrdSysError &Eroute)