1#ifndef __SFS_INTERFACE_H__
2#define __SFS_INTERFACE_H__
48#define SFS_O_CREAT 0x100
49#define SFS_O_TRUNC 0x200
50#define SFS_O_MULTIW 0x400
51#define SFS_O_POSC 0x0100000
52#define SFS_O_FORCE 0x0200000
53#define SFS_O_HNAME 0x0400000
54#define SFS_O_LOCAL 0x0800000
55#define SFS_O_NOWAIT 0x01000000
56#define SFS_O_RAWIO 0x02000000
57#define SFS_O_RESET 0x04000000
58#define SFS_O_REPLICA 0x08000000
63#define SFS_O_MKPTH 0x00004000
68#define SFS_O_LOCATE 0x10000000
69#define SFS_O_STAT 0x20000000
70#define SFS_O_META 0x40000000
78#define SFS_FCTL_GETFD 1
79#define SFS_FCTL_STATV 2
80#define SFS_FCTL_SPEC1 3
82#define SFS_SFIO_FDVAL 0x80000000
86#define SFS_FSCTL_CMD 255
88#define SFS_FSCTL_LOCATE 1
89#define SFS_FSCTL_STATFS 2
90#define SFS_FSCTL_STATLS 3
91#define SFS_FSCTL_STATXA 4
92#define SFS_FSCTL_STATCC 5
93#define SFS_FSCTL_PLUGIN 8
94#define SFS_FSCTL_PLUGIO 16
101#define SFS_REDIRECT -256
102#define SFS_STARTED -512
103#define SFS_DATA -1024
104#define SFS_DATAVEC -2048
108#define SFS_LCLPRFX "/=/"
110#define SFS_LCLPATH(x) !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN)
111#define SFS_LCLPRFY "/="
112#define SFS_LCLROOT(x) !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN-1) \
113 && (*(x+SFS_LCLPLEN-1) == '/' || *(x+SFS_LCLPLEN-1) == 0)
139#define Prep_SENDAOK 4
140#define Prep_SENDERR 8
141#define Prep_SENDACK 12
145#define Prep_FRESH 128
146#define Prep_CANCEL 256
147#define Prep_QUERY 512
148#define Prep_EVICT 1024
269 const char *opaque = 0)
271 (void)Func; (void)csName; (void)path; (void)eInfo; (void)client;
293 const char *opaque = 0) = 0;
353 (void)cmd; (void)args; (void)eInfo; (void)client;
424 const char *opaque = 0) = 0;
442 const char *opaque = 0) = 0;
469virtual int rem(
const char *path,
472 const char *opaque = 0) = 0;
488 const char *opaque = 0) = 0;
507 const char *opaqueO = 0,
508 const char *opaqueN = 0) = 0;
523virtual int stat(
const char *Name,
527 const char *opaque = 0) = 0;
543virtual int stat(
const char *path,
547 const char *opaque = 0) = 0;
565 const char *opaque = 0) = 0;
615 const char *configFn);
619 const char *configFn,
685virtual int open(
const char *fileName,
689 const char *opaque = 0) = 0;
742 (void)cmd; (void)alen; (void)args; (void)client;
764virtual int getMmap(
void **Addr, off_t &Size) = 0;
820 for (
int i = 0; i < rdvCnt; i++)
821 {rdsz =
read(readV[i].offset,
822 readV[i].data, readV[i].size);
823 if (rdsz != readV[i].size)
824 {
if (rdsz < 0)
return rdsz;
849 (void)sfDio; (void)offset; (void)size;
894 for (
int i = 0; i < wdvCnt; i++)
895 {wrsz =
write(writeV[i].offset,
896 writeV[i].data, writeV[i].size);
897 if (wrsz != writeV[i].size)
898 {
if (wrsz < 0)
return wrsz;
975 :
error(user, MonID) {}
1017 const char *opaque = 0) = 0;
1071 :
error(user, MonID) {}
#define stat(a, b)
Definition: XrdPosix.hh:96
int XrdSfsMode
Definition: XrdSfsInterface.hh:121
#define SFS_ERROR
Definition: XrdSfsInterface.hh:100
XrdSfsFileExistence
Definition: XrdSfsInterface.hh:125
@ XrdSfsFileExistIsOther
Definition: XrdSfsInterface.hh:130
@ XrdSfsFileExistIsFile
Definition: XrdSfsInterface.hh:127
@ XrdSfsFileExistNo
Definition: XrdSfsInterface.hh:126
@ XrdSfsFileExistIsOffline
Definition: XrdSfsInterface.hh:129
@ XrdSfsFileExistIsDirectory
Definition: XrdSfsInterface.hh:128
int XrdSfsFileOpenMode
Definition: XrdSfsInterface.hh:120
#define SFS_OK
Definition: XrdSfsInterface.hh:99
long long XrdSfsFileOffset
Definition: XrdSfsInterface.hh:119
int XrdSfsXferSize
Definition: XrdSfsInterface.hh:122
Definition: XrdOucEnv.hh:42
Definition: XrdOucErrInfo.hh:100
int setErrInfo(int code, const char *emsg)
Definition: XrdOucErrInfo.hh:146
Definition: XrdOucTList.hh:42
Definition: XrdSecEntity.hh:52
Definition: XrdSfsAio.hh:58
Definition: XrdSfsDio.hh:47
Definition: XrdSfsInterface.hh:995
XrdOucErrInfo error
Definition: XrdSfsInterface.hh:1003
virtual int autoStat(struct stat *buf)
Definition: XrdSfsInterface.hh:1055
XrdSfsDirectory(const char *user=0, int MonID=0)
Definition: XrdSfsInterface.hh:1070
virtual ~XrdSfsDirectory()
Destructor.
Definition: XrdSfsInterface.hh:1077
virtual int open(const char *path, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual const char * FName()=0
virtual const char * nextEntry()=0
Definition: XrdSfsInterface.hh:210
XrdSfsFileSystem()
Constructor and Destructor.
Definition: XrdSfsInterface.hh:571
virtual int chmod(const char *path, XrdSfsMode mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual void EnvInfo(XrdOucEnv *envP)
Definition: XrdSfsInterface.hh:313
virtual int stat(const char *path, mode_t &mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual void Disc(const XrdSecEntity *client=0)
Definition: XrdSfsInterface.hh:301
virtual int getStats(char *buff, int blen)=0
virtual int fsctl(const int cmd, const char *args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)=0
virtual int rename(const char *oPath, const char *nPath, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaqueO=0, const char *opaqueN=0)=0
virtual int mkdir(const char *path, XrdSfsMode mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual const char * getVersion()=0
virtual ~XrdSfsFileSystem()
Definition: XrdSfsInterface.hh:572
virtual XrdSfsFile * newFile(char *user=0, int MonID=0)=0
virtual int truncate(const char *path, XrdSfsFileOffset fsize, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int remdir(const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
Definition: XrdSfsInterface.hh:348
csFunc
Definition: XrdSfsInterface.hh:262
@ csGet
Definition: XrdSfsInterface.hh:262
@ csCalc
Definition: XrdSfsInterface.hh:262
@ csSize
Definition: XrdSfsInterface.hh:262
virtual int exists(const char *path, XrdSfsFileExistence &eFlag, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int prepare(XrdSfsPrep &pargs, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)=0
virtual int stat(const char *Name, struct stat *buf, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int rem(const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual XrdSfsDirectory * newDir(char *user=0, int MonID=0)=0
virtual int chksum(csFunc Func, const char *csName, const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)
Definition: XrdSfsInterface.hh:264
Definition: XrdSfsInterface.hh:652
virtual int fctl(const int cmd, int alen, const char *args, const XrdSecEntity *client=0)
Definition: XrdSfsInterface.hh:737
virtual int getMmap(void **Addr, off_t &Size)=0
virtual int open(const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int sync(XrdSfsAio *aiop)=0
virtual int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
Definition: XrdSfsInterface.hh:845
virtual XrdSfsXferSize read(XrdSfsAio *aioparm)=0
virtual XrdSfsXferSize writev(XrdOucIOVec *writeV, int wdvCnt)
Definition: XrdSfsInterface.hh:891
virtual int write(XrdSfsAio *aioparm)=0
virtual XrdSfsXferSize read(XrdSfsFileOffset offset, XrdSfsXferSize size)=0
virtual int truncate(XrdSfsFileOffset fsize)=0
virtual ~XrdSfsFile()
Destructor.
Definition: XrdSfsInterface.hh:981
virtual XrdSfsXferSize read(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize size)=0
virtual const char * FName()=0
virtual int getCXinfo(char cxtype[4], int &cxrsz)=0
XrdSfsFile(const char *user=0, int MonID=0)
Definition: XrdSfsInterface.hh:974
XrdOucErrInfo error
Definition: XrdSfsInterface.hh:660
virtual XrdSfsXferSize readv(XrdOucIOVec *readV, int rdvCnt)
Definition: XrdSfsInterface.hh:817
virtual int stat(struct stat *buf)=0
virtual void setXio(XrdSfsXio *xioP)
Definition: XrdSfsInterface.hh:963
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
virtual XrdSfsXferSize write(XrdSfsFileOffset offset, const char *buffer, XrdSfsXferSize size)=0
Definition: XrdSfsXio.hh:81
Definition: XrdSysLogger.hh:53
Definition: XrdOucIOVec.hh:41
< SFS_FSCTL_PLUGIN/PLUGIO parameters
Definition: XrdSfsInterface.hh:153
const char * Arg1
PLUGIO & PLUGIN.
Definition: XrdSfsInterface.hh:154
int Arg2Len
Length.
Definition: XrdSfsInterface.hh:156
const char * Arg2
PLUGIN opaque string.
Definition: XrdSfsInterface.hh:157
int Arg1Len
Length.
Definition: XrdSfsInterface.hh:155
< Prepare parameters
Definition: XrdSfsInterface.hh:161
char * notify
Notification path or 0.
Definition: XrdSfsInterface.hh:163
XrdOucTList * paths
List of paths.
Definition: XrdSfsInterface.hh:165
XrdOucTList * oinfo
1-to-1 correspondence of opaque info
Definition: XrdSfsInterface.hh:166
char * reqid
Request ID.
Definition: XrdSfsInterface.hh:162
int opts
Prep_xxx.
Definition: XrdSfsInterface.hh:164