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 <cerrno>
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 int getFD() {return fd;}
59 
60  // Constructor and destructor
61  XrdOssDir(const char *tid, DIR *dP=0)
62  : XrdOssDF(tid, DF_isDir),
63  lclfd(dP), mssfd(0), Stat(0), ateof(false),
64  isopen(dP != 0), dOpts(0) {if (dP) fd = dirfd(dP);}
65 
66  ~XrdOssDir() {if (isopen) Close();}
67 private:
68  DIR *lclfd;
69  void *mssfd;
70 struct stat *Stat;
71  bool ateof;
72  bool isopen;
73 unsigned char dOpts;
74 static const int isStage = 0x01;
75 static const int noCheck = 0x02;
76 static const int noDread = 0x04;
77 };
78 
79 /******************************************************************************/
80 /* o o s s _ F i l e */
81 /******************************************************************************/
82 
83 class oocx_CXFile;
84 class XrdSfsAio;
85 class XrdOssCache_FS;
86 class XrdOssMioFile;
87 
88 class XrdOssFile : public XrdOssDF
89 {
90 public:
91 
92 // The following two are virtual functions to allow for upcasting derivations
93 // of this implementation
94 //
95 virtual int Close(long long *retsz=0);
96 virtual int Open(const char *, int, mode_t, XrdOucEnv &);
97 
98 int Fchmod(mode_t mode);
99 int Fctl(int cmd, int alen, const char *args, char **resp=0);
100 void Flush();
101 int Fstat(struct stat *);
102 int Fsync();
103 int Fsync(XrdSfsAio *aiop);
104 int Ftruncate(unsigned long long);
105 int getFD() {return fd;}
106 off_t getMmap(void **addr);
107 int isCompressed(char *cxidp=0);
108 ssize_t Read( off_t, size_t);
109 ssize_t Read( void *, off_t, size_t);
110 int Read(XrdSfsAio *aiop);
111 ssize_t ReadV(XrdOucIOVec *readV, int);
112 ssize_t ReadRaw( void *, off_t, size_t);
113 ssize_t Write(const void *, off_t, size_t);
114 int Write(XrdSfsAio *aiop);
115 
116  // Constructor and destructor
117  XrdOssFile(const char *tid, int fdnum=-1)
118  : XrdOssDF(tid, DF_isFile, fdnum),
119  cxobj(0), cacheP(0), mmFile(0),
120  rawio(0), cxpgsz(0) {cxid[0] = '\0';}
121 
122 virtual ~XrdOssFile() {if (fd >= 0) Close();}
123 
124 private:
125 int Open_ufs(const char *, int, int, unsigned long long);
126 
127 static int AioFailure;
128 oocx_CXFile *cxobj;
129 XrdOssCache_FS *cacheP;
130 XrdOssMioFile *mmFile;
131 long long FSize;
132 int rawio;
133 int cxpgsz;
134 char cxid[4];
135 };
136 
137 /******************************************************************************/
138 /* o o s s _ S y s */
139 /******************************************************************************/
140 
141 class XrdFrcProxy;
142 class XrdOssCache_Group;
143 class XrdOssCache_Space;
144 class XrdOssCreateInfo;
145 class XrdOucMsubs;
146 class XrdOucName2Name;
147 class XrdOucProg;
148 class XrdOssSpace;
149 class XrdOssStage_Req;
150 
151 struct XrdVersionInfo;
152 
153 class XrdOssSys : public XrdOss
154 {
155 public:
156 virtual XrdOssDF *newDir(const char *tident)
157  {return (XrdOssDF *)new XrdOssDir(tident);}
158 virtual XrdOssDF *newFile(const char *tident)
159  {return (XrdOssDF *)new XrdOssFile(tident);}
160 
161 int Chmod(const char *, mode_t mode, XrdOucEnv *eP=0);
162 int Configure(const char *, XrdSysError &, XrdOucEnv *envP);
164 virtual
165 int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0);
166 uint64_t Features() {return XRDOSS_HASNAIO;} // Turn async I/O off for disk
167 int GenLocalPath(const char *, char *);
168 int GenRemotePath(const char *, char *);
169 int Init(XrdSysLogger *, const char *, XrdOucEnv *envP);
170 int Init(XrdSysLogger *lP, const char *cP) {return Init(lP, cP, 0);}
171 int IsRemote(const char *path)
172  {return (RPList.Find(path) & XRDEXP_REMOTE) != 0;}
173 int Lfn2Pfn(const char *Path, char *buff, int blen);
174 const char *Lfn2Pfn(const char *Path, char *buff, int blen, int &rc);
175 int Mkdir(const char *, mode_t mode, int mkpath=0, XrdOucEnv *eP=0);
176 int Mkpath(const char *, mode_t mode);
177 unsigned long long PathOpts(const char *path) {return RPList.Find(path);}
178 int Reloc(const char *tident, const char *path,
179  const char *cgName, const char *anchor=0);
180 int Remdir(const char *, int Opts=0, XrdOucEnv *eP=0); // In Unlink()
181 int Rename(const char *, const char *,
182  XrdOucEnv *eP1=0, XrdOucEnv *eP2=0);
183 virtual
184 int Stage(const char *, const char *, XrdOucEnv &, int, mode_t, unsigned long long );
185 void *Stage_In(void *carg);
186 int Stat(const char *, struct stat *, int opts=0, XrdOucEnv *Env=0);
187 int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *Env=0);
188 int StatFS(const char *path, unsigned long long &Opt,
189  long long &fSize, long long &fSpace);
190 int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen);
191 int StatPF(const char *, struct stat *, int);
192 int StatVS(XrdOssVSInfo *sP, const char *sname=0, int updt=0);
193 int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *Env=0);
194 int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *Env=0);
195 int Truncate(const char *, unsigned long long Size, XrdOucEnv *eP=0);
196 int Unlink(const char *, int Opts=0, XrdOucEnv *eP=0);
197 
198 int Stats(char *bp, int bl);
199 
200 static int AioInit();
201 static int AioAllOk;
202 
203 static char tryMmap; // Memory mapped files enabled
204 static char chkMmap; // Memory mapped files are selective
205 
206 int MSS_Closedir(void *);
207 int MSS_Create(const char *path, mode_t, XrdOucEnv &);
208 void *MSS_Opendir(const char *, int &rc);
209 int MSS_Readdir(void *fd, char *buff, int blen);
210 int MSS_Remdir(const char *, const char *) {return -ENOTSUP;}
211 int MSS_Rename(const char *, const char *);
212 int MSS_Stat(const char *, struct stat *buff=0);
213 int MSS_Unlink(const char *);
214 
215 static const int MaxArgs = 15;
216 
217 char *ConfigFN; // -> Pointer to the config file name
218 char *LocalRoot; // -> Path prefix for local filename
219 char *RemoteRoot; // -> Path prefix for remote filename
220 int MaxTwiddle; // Maximum seconds of internal wait
221 int StageRealTime; // If 1, Invoke stage command on demand
222 int StageAsync; // If 1, return EINPROGRESS to the caller
223 int StageCreate; // If 1, use open path to create files
224 int StageFormat; // Format for default stagecmd
225 char *StageCmd; // -> Staging command to use
226 char *StageMsg; // -> Staging message to be passed
227 XrdOucMsubs *StageSnd; // -> Parsed Message
228 XrdFrcProxy *StageFrm; // -> Built-in stagecmd or zero
229 
230 char *StageEvents; // -> file:////<adminpath> if async staging
231 int StageEvSize; // Length of above
232 int StageActLen; // Length of below
233 char *StageAction; // -> "wq " if sync | "wfn " if async
234 
237 int StageAnum; // Count of valid Arg/Aln array elements
238 char *RSSCmd; // -> Remote Storage Service Command
239 int isMSSC; // RSSCmd is old-style msscmd
240 int RSSTout; // RSSCmd response timeout
241 long long MaxSize; // Maximum file size (*obsolete*)
242 int FDFence; // Smallest file FD number allowed
243 int FDLimit; // Largest file FD number allowed
244 unsigned long long DirFlags;// Default directory settings
245 int Trace; // Trace flags
246 int Solitary; // True if running in stand-alone mode
247 int OptFlags; // General option flags
248 
249 XrdOucPListAnchor SPList; // The path to space list
250 #define spAssign 1
251 
252 char *N2N_Lib; // -> Name2Name Library Path
253 char *N2N_Parms; // -> Name2Name Object Parameters
254 XrdOucName2Name *lcl_N2N; // -> File mapper for local files
255 XrdOucName2Name *rmt_N2N; // -> File mapper for remote files
256 XrdOucName2Name *the_N2N; // -> File mapper object
257 XrdOucPListAnchor RPList; // The real path list
258 OssDPath *DPList; // The stat path list
259 int lenDP;
260 short numDP;
261 short numCG;
262 
263 char *STT_Lib; // -> StatInfo Library Path
264 char *STT_Parms; // -> StatInfo Library Paramaters
265 union {
266 XrdOssStatInfo_t STT_Func;
267 XrdOssStatInfo2_t STT_Fund;
268  };
271 char STT_V2;
273 
274 long long prPBits; // Page lo order bit mask
275 long long prPMask; // Page hi order bit mask
276 int prPSize; // preread page size
277 int prBytes; // preread byte limit
278 int prActive; // preread activity count
279 short prDepth; // preread depth
280 short prQSize; // preread maximum allowed
281 
282 XrdVersionInfo *myVersion; // Compilation version set by constructor
283 
284  XrdOssSys();
285 virtual ~XrdOssSys() {}
286 
287 protected:
288 // Cache management related data and methods
289 //
290 long long minalloc; // Minimum allocation
291 int ovhalloc; // Allocation overage
292 int fuzalloc; // Allocation fuzz
293 int cscanint; // Seconds between cache scans
294 int xfrspeed; // Average transfer speed (bytes/second)
295 int xfrovhd; // Minimum seconds to get a file
296 int xfrhold; // Second hold limit on failing requests
297 int xfrkeep; // Second keep queued requests
298 int xfrthreads; // Number of threads for staging
299 int xfrtcount; // Actual count of threads (used for dtr)
300 long long pndbytes; // Total bytes to be staged (pending)
301 long long stgbytes; // Total bytes being staged (active)
302 long long totbytes; // Total bytes were staged (active+pending)
303 int totreqs; // Total successful requests
304 int badreqs; // Total unsuccessful requests
305 
306 XrdOucProg *StageProg; // Command or manager than handles staging
307 XrdOucProg *RSSProg; // Command for Remote Storage Services
308 
309 char *UDir; // -> Usage logdir
310 char *QFile; // -> Quota file
311 char *xfrFdir; // -> Fail file base dir
312 int xfrFdln; // strlen(xfrFDir)
313 short USync; // Usage sync interval
314 bool pfcMode; // Setup for Proxy File Cache
315 
318 int BreakLink(const char *local_path, struct stat &statbuff);
319 int CalcTime();
320 int CalcTime(XrdOssStage_Req *req);
321 int SetFattr(XrdOssCreateInfo &crInfo, int datfd, time_t mtime);
322 void doScrub();
323 int Find(XrdOssStage_Req *req, void *carg);
324 int getCname(const char *path, struct stat *sbuff, char *cgbuff);
325 int getStats(char *buff, int blen);
326 int GetFile(XrdOssStage_Req *req);
327 int getID(const char *, XrdOucEnv &, char *, int);
328 time_t HasFile(const char *fn, const char *sfx, time_t *mTime=0);
329 int Stage_QT(const char *, const char *, XrdOucEnv &, int, mode_t);
330 int Stage_RT(const char *, const char *, XrdOucEnv &, unsigned long long);
331 
332 // Configuration related methods
333 //
334 void ConfigCache(XrdSysError &Eroute, bool pass2=false);
335 void ConfigMio(XrdSysError &Eroute);
336 int ConfigN2N(XrdSysError &Eroute, XrdOucEnv *envP);
337 int ConfigProc(XrdSysError &Eroute);
338 void ConfigSpace(XrdSysError &Eroute);
339 void ConfigSpace(const char *Lfn);
340 void ConfigSpath(XrdSysError &Eroute, const char *Pn,
341  unsigned long long &Fv, int noMSS);
342 int ConfigStage(XrdSysError &Eroute);
343 int ConfigStageC(XrdSysError &Eroute);
344 int ConfigStatLib(XrdSysError &Eroute, XrdOucEnv *envP);
345 void ConfigStats(XrdSysError &Eroute);
346 void ConfigStats(dev_t Devnum, char *lP);
347 int ConfigXeq(char *, XrdOucStream &, XrdSysError &);
348 void List_Path(const char *, const char *, unsigned long long, XrdSysError &);
349 int xalloc(XrdOucStream &Config, XrdSysError &Eroute);
350 int xcache(XrdOucStream &Config, XrdSysError &Eroute);
352 int xdefault(XrdOucStream &Config, XrdSysError &Eroute);
353 int xfdlimit(XrdOucStream &Config, XrdSysError &Eroute);
354 int xmaxsz(XrdOucStream &Config, XrdSysError &Eroute);
355 int xmemf(XrdOucStream &Config, XrdSysError &Eroute);
356 int xnml(XrdOucStream &Config, XrdSysError &Eroute);
357 int xpath(XrdOucStream &Config, XrdSysError &Eroute);
358 int xprerd(XrdOucStream &Config, XrdSysError &Eroute);
359 int xspace(XrdOucStream &Config, XrdSysError &Eroute, int *isCD=0);
360 int xspace(XrdOucStream &Config, XrdSysError &Eroute,
361  const char *grp, bool isAsgn);
362 int xspaceBuild(OssSpaceConfig &sInfo, XrdSysError &Eroute);
363 int xstg(XrdOucStream &Config, XrdSysError &Eroute);
364 int xstl(XrdOucStream &Config, XrdSysError &Eroute);
365 int xusage(XrdOucStream &Config, XrdSysError &Eroute);
366 int xtrace(XrdOucStream &Config, XrdSysError &Eroute);
367 int xxfr(XrdOucStream &Config, XrdSysError &Eroute);
368 
369 // Mass storage related methods
370 //
371 int tranmode(char *);
372 int MSS_Xeq(XrdOucStream **xfd, int okerr,
373  const char *cmd, const char *arg1=0, const char *arg2=0);
374 
375 // Other methods
376 //
377 int RenameLink(char *old_path, char *new_path);
378 int RenameLink3(char *cPath, char *old_path, char *new_path);
379 };
380 
381 /******************************************************************************/
382 /* A P I S p e c i f i c D e f i n e s */
383 /******************************************************************************/
384 
385 // The Check_RO macro is valid only for XrdOssSys objects.
386 //
387 #define Check_RO(act, flags, path, opname) \
388  XRDEXP_REMOTE & (flags = PathOpts(path)); \
389  if (flags & XRDEXP_NOTRW) \
390  return OssEroute.Emsg(#act, -XRDOSS_E8005, opname, path)
391 
392 #define Check_RW(act, path, opname) \
393  if (PathOpts(path) & XRDEXP_NOTRW) \
394  return OssEroute.Emsg(#act, -XRDOSS_E8005, opname, path)
395 #endif
#define tident
struct stat Stat
Definition: XrdCks.cc:49
int(* XrdOssStatInfo2_t)(const char *path, struct stat *buff, int opts, XrdOucEnv *envP, const char *lfn)
int(* XrdOssStatInfo_t)(const char *path, struct stat *buff, int opts, XrdOucEnv *envP)
#define XRDOSS_HASNAIO
Definition: XrdOss.hh:480
#define XRDEXP_REMOTE
Definition: XrdOucExport.hh:85
int stat(const char *path, struct stat *buf)
XrdOucString Path
struct myOpts opts
#define dirfd(x)
static const uint16_t DF_isFile
Object is for a file.
Definition: XrdOss.hh:393
int fd
Definition: XrdOss.hh:455
static const uint16_t DF_isDir
Object is for a directory.
Definition: XrdOss.hh:392
int StatRet(struct stat *buff)
Definition: XrdOssApi.cc:637
int Opendir(const char *, XrdOucEnv &)
Definition: XrdOssApi.cc:497
XrdOssDir(const char *tid, DIR *dP=0)
Definition: XrdOssApi.hh:61
~XrdOssDir()
Definition: XrdOssApi.hh:66
int getFD()
Definition: XrdOssApi.hh:58
int Readdir(char *buff, int blen)
Definition: XrdOssApi.cc:583
int Close(long long *retsz=0)
Definition: XrdOssApi.cc:671
virtual int Close(long long *retsz=0)
Definition: XrdOssApi.cc:813
int Fsync()
Definition: XrdOssApi.cc:1135
virtual ~XrdOssFile()
Definition: XrdOssApi.hh:122
int Fchmod(mode_t mode)
Definition: XrdOssApi.cc:1050
int isCompressed(char *cxidp=0)
Definition: XrdOssApi.cc:1175
ssize_t Read(off_t, size_t)
Definition: XrdOssApi.cc:846
int Fctl(int cmd, int alen, const char *args, char **resp=0)
Definition: XrdOssApi.cc:1069
virtual int Open(const char *, int, mode_t, XrdOucEnv &)
Definition: XrdOssApi.cc:718
off_t getMmap(void **addr)
Definition: XrdOssApi.cc:1154
int Fstat(struct stat *)
Definition: XrdOssApi.cc:1119
XrdOssFile(const char *tid, int fdnum=-1)
Definition: XrdOssApi.hh:117
void Flush()
Flush filesystem cached pages for this file (used for checksums).
Definition: XrdOssApi.cc:1095
ssize_t ReadV(XrdOucIOVec *readV, int)
Definition: XrdOssApi.cc:910
int getFD()
Definition: XrdOssApi.hh:105
int Ftruncate(unsigned long long)
Definition: XrdOssApi.cc:1206
ssize_t Write(const void *, off_t, size_t)
Definition: XrdOssApi.cc:1022
ssize_t ReadRaw(void *, off_t, size_t)
Definition: XrdOssApi.cc:991
void Config_Display(XrdSysError &)
int xstg(XrdOucStream &Config, XrdSysError &Eroute)
int badreqs
Definition: XrdOssApi.hh:304
int GenRemotePath(const char *, char *)
Definition: XrdOssApi.cc:249
int StageCreate
Definition: XrdOssApi.hh:223
XrdOucPListAnchor SPList
Definition: XrdOssApi.hh:249
char STT_DoN2N
Definition: XrdOssApi.hh:270
char STT_V2
Definition: XrdOssApi.hh:271
int ConfigXeq(char *, XrdOucStream &, XrdSysError &)
int FDLimit
Definition: XrdOssApi.hh:243
int totreqs
Definition: XrdOssApi.hh:303
virtual int Stage(const char *, const char *, XrdOucEnv &, int, mode_t, unsigned long long)
Definition: XrdOssStage.cc:110
int Configure(const char *, XrdSysError &, XrdOucEnv *envP)
char * LocalRoot
Definition: XrdOssApi.hh:218
OssDPath * DPList
Definition: XrdOssApi.hh:258
int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen)
Definition: XrdOssStat.cc:225
int STT_PreOp
Definition: XrdOssApi.hh:269
int MSS_Readdir(void *fd, char *buff, int blen)
Definition: XrdOssMSS.cc:140
int SetFattr(XrdOssCreateInfo &crInfo, int datfd, time_t mtime)
int MSS_Rename(const char *, const char *)
Definition: XrdOssMSS.cc:360
char * N2N_Parms
Definition: XrdOssApi.hh:253
void doScrub()
int xtrace(XrdOucStream &Config, XrdSysError &Eroute)
time_t HasFile(const char *fn, const char *sfx, time_t *mTime=0)
Definition: XrdOssStage.cc:483
int StatVS(XrdOssVSInfo *sP, const char *sname=0, int updt=0)
Definition: XrdOssStat.cc:339
short numCG
Definition: XrdOssApi.hh:261
long long totbytes
Definition: XrdOssApi.hh:302
long long minalloc
Definition: XrdOssApi.hh:290
int StageAln[MaxArgs]
Definition: XrdOssApi.hh:236
int IsRemote(const char *path)
Definition: XrdOssApi.hh:171
int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *Env=0)
Definition: XrdOssStat.cc:441
int Init(XrdSysLogger *, const char *, XrdOucEnv *envP)
Definition: XrdOssApi.cc:186
int tranmode(char *)
Definition: XrdOssMSS.cc:314
char * StageEvents
Definition: XrdOssApi.hh:230
int Stage_RT(const char *, const char *, XrdOucEnv &, unsigned long long)
Definition: XrdOssStage.cc:206
int getStats(char *buff, int blen)
Definition: XrdOssStat.cc:489
int xstl(XrdOucStream &Config, XrdSysError &Eroute)
void ConfigSpace(XrdSysError &Eroute)
int Mkdir(const char *, mode_t mode, int mkpath=0, XrdOucEnv *eP=0)
Definition: XrdOssApi.cc:306
int getCname(const char *path, struct stat *sbuff, char *cgbuff)
Definition: XrdOssStat.cc:455
int StageRealTime
Definition: XrdOssApi.hh:221
short prDepth
Definition: XrdOssApi.hh:279
int FDFence
Definition: XrdOssApi.hh:242
int Unlink(const char *, int Opts=0, XrdOucEnv *eP=0)
int ConfigStage(XrdSysError &Eroute)
int xusage(XrdOucStream &Config, XrdSysError &Eroute)
static char chkMmap
Definition: XrdOssApi.hh:204
int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *Env=0)
Definition: XrdOssStat.cc:401
int xfrthreads
Definition: XrdOssApi.hh:298
int OptFlags
Definition: XrdOssApi.hh:247
int xspace(XrdOucStream &Config, XrdSysError &Eroute, int *isCD=0)
int isMSSC
Definition: XrdOssApi.hh:239
void List_Path(const char *, const char *, unsigned long long, XrdSysError &)
char * QFile
Definition: XrdOssApi.hh:310
int MSS_Closedir(void *)
Definition: XrdOssMSS.cc:185
int prBytes
Definition: XrdOssApi.hh:277
int xmemf(XrdOucStream &Config, XrdSysError &Eroute)
int RenameLink3(char *cPath, char *old_path, char *new_path)
static int AioInit()
Definition: XrdOssAio.cc:281
void * Stage_In(void *carg)
Definition: XrdOssStage.cc:303
int Alloc_Cache(XrdOssCreateInfo &, XrdOucEnv &)
char * ConfigFN
Definition: XrdOssApi.hh:217
int StageFormat
Definition: XrdOssApi.hh:224
int ovhalloc
Definition: XrdOssApi.hh:291
void ConfigMio(XrdSysError &Eroute)
void ConfigStats(XrdSysError &Eroute)
virtual ~XrdOssSys()
Definition: XrdOssApi.hh:285
char * StageAction
Definition: XrdOssApi.hh:233
int xcachescan(XrdOucStream &Config, XrdSysError &Eroute)
char STT_DoARE
Definition: XrdOssApi.hh:272
char * UDir
Definition: XrdOssApi.hh:309
int StageActLen
Definition: XrdOssApi.hh:232
short USync
Definition: XrdOssApi.hh:313
int xfdlimit(XrdOucStream &Config, XrdSysError &Eroute)
int ConfigN2N(XrdSysError &Eroute, XrdOucEnv *envP)
XrdOucProg * StageProg
Definition: XrdOssApi.hh:306
XrdOucName2Name * the_N2N
Definition: XrdOssApi.hh:256
int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *Env=0)
Definition: XrdOssStat.cc:145
short prQSize
Definition: XrdOssApi.hh:280
char * StageArg[MaxArgs]
Definition: XrdOssApi.hh:235
long long MaxSize
Definition: XrdOssApi.hh:241
int StageAnum
Definition: XrdOssApi.hh:237
virtual int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0)
unsigned long long PathOpts(const char *path)
Definition: XrdOssApi.hh:177
int Mkpath(const char *, mode_t mode)
Definition: XrdOssApi.cc:353
int prPSize
Definition: XrdOssApi.hh:276
static const int MaxArgs
Definition: XrdOssApi.hh:215
int GetFile(XrdOssStage_Req *req)
Definition: XrdOssStage.cc:433
int Init(XrdSysLogger *lP, const char *cP)
Definition: XrdOssApi.hh:170
int Rename(const char *, const char *, XrdOucEnv *eP1=0, XrdOucEnv *eP2=0)
Definition: XrdOssRename.cc:74
int GenLocalPath(const char *, char *)
Definition: XrdOssApi.cc:232
int RSSTout
Definition: XrdOssApi.hh:240
int prActive
Definition: XrdOssApi.hh:278
int MSS_Unlink(const char *)
Definition: XrdOssMSS.cc:333
int xfrspeed
Definition: XrdOssApi.hh:294
XrdOucName2Name * lcl_N2N
Definition: XrdOssApi.hh:254
long long prPMask
Definition: XrdOssApi.hh:275
long long prPBits
Definition: XrdOssApi.hh:274
int xspaceBuild(OssSpaceConfig &sInfo, XrdSysError &Eroute)
int fuzalloc
Definition: XrdOssApi.hh:292
int BreakLink(const char *local_path, struct stat &statbuff)
int cscanint
Definition: XrdOssApi.hh:293
int StageAsync
Definition: XrdOssApi.hh:222
int xprerd(XrdOucStream &Config, XrdSysError &Eroute)
int ConfigStatLib(XrdSysError &Eroute, XrdOucEnv *envP)
XrdOucProg * RSSProg
Definition: XrdOssApi.hh:307
char * STT_Parms
Definition: XrdOssApi.hh:264
virtual XrdOssDF * newFile(const char *tident)
Definition: XrdOssApi.hh:158
long long pndbytes
Definition: XrdOssApi.hh:300
int xpath(XrdOucStream &Config, XrdSysError &Eroute)
static char tryMmap
Definition: XrdOssApi.hh:203
int Lfn2Pfn(const char *Path, char *buff, int blen)
Definition: XrdOssApi.cc:208
XrdVersionInfo * myVersion
Definition: XrdOssApi.hh:282
char * N2N_Lib
Definition: XrdOssApi.hh:252
int xfrovhd
Definition: XrdOssApi.hh:295
int MSS_Stat(const char *, struct stat *buff=0)
Definition: XrdOssMSS.cc:253
int MSS_Remdir(const char *, const char *)
Definition: XrdOssApi.hh:210
int xcache(XrdOucStream &Config, XrdSysError &Eroute)
long long stgbytes
Definition: XrdOssApi.hh:301
int Find(XrdOssStage_Req *req, void *carg)
void ConfigSpath(XrdSysError &Eroute, const char *Pn, unsigned long long &Fv, int noMSS)
int Stat(const char *, struct stat *, int opts=0, XrdOucEnv *Env=0)
Definition: XrdOssStat.cc:70
char * STT_Lib
Definition: XrdOssApi.hh:263
int ConfigStageC(XrdSysError &Eroute)
int CalcTime()
Definition: XrdOssStage.cc:384
int xfrFdln
Definition: XrdOssApi.hh:312
XrdOucMsubs * StageSnd
Definition: XrdOssApi.hh:227
int xxfr(XrdOucStream &Config, XrdSysError &Eroute)
short numDP
Definition: XrdOssApi.hh:260
XrdFrcProxy * StageFrm
Definition: XrdOssApi.hh:228
unsigned long long DirFlags
Definition: XrdOssApi.hh:244
int Remdir(const char *, int Opts=0, XrdOucEnv *eP=0)
Definition: XrdOssUnlink.cc:70
int StatPF(const char *, struct stat *, int)
Definition: XrdOssStat.cc:276
int Chmod(const char *, mode_t mode, XrdOucEnv *eP=0)
Definition: XrdOssApi.cc:272
int MSS_Create(const char *path, mode_t, XrdOucEnv &)
Definition: XrdOssMSS.cc:206
int StageEvSize
Definition: XrdOssApi.hh:231
int getID(const char *, XrdOucEnv &, char *, int)
Definition: XrdOssStage.cc:460
XrdOucPListAnchor RPList
Definition: XrdOssApi.hh:257
int Stats(char *bp, int bl)
Definition: XrdOssApi.cc:396
int xfrhold
Definition: XrdOssApi.hh:296
static int AioAllOk
Definition: XrdOssApi.hh:201
int ConfigProc(XrdSysError &Eroute)
bool pfcMode
Definition: XrdOssApi.hh:314
int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
Definition: XrdOssReloc.cc:83
int xfrtcount
Definition: XrdOssApi.hh:299
int RenameLink(char *old_path, char *new_path)
int Truncate(const char *, unsigned long long Size, XrdOucEnv *eP=0)
Definition: XrdOssApi.cc:442
int Stage_QT(const char *, const char *, XrdOucEnv &, int, mode_t)
Definition: XrdOssStage.cc:123
int MSS_Xeq(XrdOucStream **xfd, int okerr, const char *cmd, const char *arg1=0, const char *arg2=0)
Definition: XrdOssMSS.cc:383
void ConfigCache(XrdSysError &Eroute, bool pass2=false)
char * StageCmd
Definition: XrdOssApi.hh:225
char * StageMsg
Definition: XrdOssApi.hh:226
char * RemoteRoot
Definition: XrdOssApi.hh:219
int xmaxsz(XrdOucStream &Config, XrdSysError &Eroute)
uint64_t Features()
Definition: XrdOssApi.hh:166
int xfrkeep
Definition: XrdOssApi.hh:297
int Alloc_Local(XrdOssCreateInfo &, XrdOucEnv &)
int Solitary
Definition: XrdOssApi.hh:246
int MaxTwiddle
Definition: XrdOssApi.hh:220
virtual XrdOssDF * newDir(const char *tident)
Definition: XrdOssApi.hh:156
char * RSSCmd
Definition: XrdOssApi.hh:238
int xdefault(XrdOucStream &Config, XrdSysError &Eroute)
void * MSS_Opendir(const char *, int &rc)
Definition: XrdOssMSS.cc:102
int xnml(XrdOucStream &Config, XrdSysError &Eroute)
XrdOucName2Name * rmt_N2N
Definition: XrdOssApi.hh:255
int xalloc(XrdOucStream &Config, XrdSysError &Eroute)
char * xfrFdir
Definition: XrdOssApi.hh:311
unsigned long long Find(const char *pathname)
Definition: XrdOucPList.hh:112
XrdCmsConfig Config
int Opts
Definition: XrdMpxStats.cc:58
XrdOucEnv * envP
Definition: XrdPss.cc:109