XRootD
Loading...
Searching...
No Matches
XrdSfsInterface.hh File Reference
#include <cstring>
#include <cerrno>
#include <cstdint>
#include <sys/types.h>
#include <sys/stat.h>
#include "XrdOuc/XrdOucErrInfo.hh"
#include "XrdOuc/XrdOucIOVec.hh"
#include "XrdOuc/XrdOucSFVec.hh"
#include "XrdSfs/XrdSfsGPFile.hh"
#include "XrdSys/XrdSysPageSize.hh"
+ Include dependency graph for XrdSfsInterface.hh:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XrdSfsDirectory
 
class  XrdSfsFile
 
class  XrdSfsFileSystem
 
struct  XrdSfsFSctl
 < SFS_FSCTL_PLUGIN/PLUGIO/PLUGXC parms More...
 
union  XrdSfsFSctl.__unnamed147__
 
struct  XrdSfsPrep
 < Prepare parameters More...
 

Macros

#define Prep_CANCEL   256
 
#define Prep_COLOC   64
 
#define Prep_EVICT   1024
 
#define Prep_FRESH   128
 
#define Prep_PMASK   3
 
#define Prep_PRTY0   0
 
#define Prep_PRTY1   1
 
#define Prep_PRTY2   2
 
#define Prep_PRTY3   3
 
#define Prep_QUERY   512
 
#define Prep_SENDACK   12
 
#define Prep_SENDAOK   4
 
#define Prep_SENDERR   8
 
#define Prep_STAGE   32
 
#define Prep_WMODE   16
 
#define SFS_DATA   -1024
 
#define SFS_DATAVEC   -2048
 
#define SFS_ERROR   -1
 
#define SFS_FCTL_GETFD   1
 
#define SFS_FCTL_SPEC1   3
 
#define SFS_FCTL_STATV   2
 
#define SFS_FSCTL_CMD   255
 
#define SFS_FSCTL_LOCATE   1
 
#define SFS_FSCTL_PLUGIN   8
 
#define SFS_FSCTL_PLUGIO   16
 
#define SFS_FSCTL_PLUGXC   32
 
#define SFS_FSCTL_STATCC   5
 
#define SFS_FSCTL_STATFS   2
 
#define SFS_FSCTL_STATLS   3
 
#define SFS_FSCTL_STATXA   4
 
#define SFS_LCLPATH(x)   !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN)
 
#define SFS_LCLPLEN   3
 
#define SFS_LCLPRFX   "/=/"
 
#define SFS_LCLPRFY   "/="
 
#define SFS_LCLROOT(x)
 
#define SFS_O_CREAT   0x00000100
 
#define SFS_O_DIRLIST   0x00010000
 
#define SFS_O_FORCE   0x00200000
 
#define SFS_O_HNAME   0x00400000
 
#define SFS_O_LOCAL   0x00800000
 
#define SFS_O_LOCATE   0x10000000
 
#define SFS_O_META   0x40000000
 
#define SFS_O_MKPTH   0x00004000
 
#define SFS_O_MULTIW   0x00000400
 
#define SFS_O_NOTPC   0x00000800
 
#define SFS_O_NOWAIT   0x01000000
 
#define SFS_O_POSC   0x00100000
 
#define SFS_O_RAWIO   0x02000000
 
#define SFS_O_RDONLY   0
 
#define SFS_O_RDWR   2
 
#define SFS_O_REPLICA   0x08000000
 
#define SFS_O_RESET   0x04000000
 
#define SFS_O_SEQIO   0x10000000
 
#define SFS_O_STAT   0x20000000
 
#define SFS_O_TRUNC   0x00000200
 
#define SFS_O_WRONLY   1
 
#define SFS_OK   0
 
#define SFS_REDIRECT   -256
 
#define SFS_SFIO_FDVAL   0x80000000
 
#define SFS_STALL   1
 
#define SFS_STARTED   -512
 

Typedefs

typedef long long XrdSfsFileOffset
 
typedef int XrdSfsFileOpenMode
 
typedef XrdSfsFileSystem *(* XrdSfsFileSystem2_t) (XrdSfsFileSystem *nativeFS, XrdSysLogger *Logger, const char *configFn, XrdOucEnv *envP)
 
typedef XrdSfsFileSystem *(* XrdSfsFileSystem_t) (XrdSfsFileSystem *nativeFS, XrdSysLogger *Logger, const char *configFn)
 
typedef int XrdSfsMode
 
typedef int XrdSfsXferSize
 

Enumerations

enum  XrdSfsFileExistence {
  XrdSfsFileExistNo ,
  XrdSfsFileExistIsFile ,
  XrdSfsFileExistIsDirectory ,
  XrdSfsFileExistIsOffline ,
  XrdSfsFileExistIsOther
}
 

Class Documentation

◆ XrdSfsFSctl

struct XrdSfsFSctl

< SFS_FSCTL_PLUGIN/PLUGIO/PLUGXC parms

Definition at line 161 of file XrdSfsInterface.hh.

+ Collaboration diagram for XrdSfsFSctl:
Class Members
union XrdSfsFSctl.__unnamed147__ __unnamed__
const char * Arg1 PLUGINO, PLUGION, PLUGXC.
int Arg1Len Length.
int Arg2Len Length or -count of args in extension.

◆ XrdSfsFSctl.__unnamed147__

union XrdSfsFSctl.__unnamed147__

Definition at line 166 of file XrdSfsInterface.hh.

+ Collaboration diagram for XrdSfsFSctl.__unnamed147__:
Class Members
const char * Arg2 PLUGIN opaque string.
const char ** ArgP PLUGXC argument list extension.

◆ XrdSfsPrep

struct XrdSfsPrep

< Prepare parameters

Definition at line 172 of file XrdSfsInterface.hh.

+ Collaboration diagram for XrdSfsPrep:
Class Members
char * notify Notification path or 0.
XrdOucTList * oinfo 1-to-1 correspondence of opaque info
int opts Prep_xxx.
XrdOucTList * paths List of paths.
char * reqid Request ID.

Macro Definition Documentation

◆ Prep_CANCEL

#define Prep_CANCEL   256

Definition at line 155 of file XrdSfsInterface.hh.

Referenced by XrdOfs::prepare().

◆ Prep_COLOC

#define Prep_COLOC   64

Definition at line 153 of file XrdSfsInterface.hh.

Referenced by XrdCmsFinderRMT::Prepare().

◆ Prep_EVICT

#define Prep_EVICT   1024

Definition at line 157 of file XrdSfsInterface.hh.

Referenced by XrdOfsPrepGPIReal::PrepGPI::begin().

◆ Prep_FRESH

#define Prep_FRESH   128

Definition at line 154 of file XrdSfsInterface.hh.

Referenced by XrdCmsFinderRMT::Prepare().

◆ Prep_PMASK

#define Prep_PMASK   3

Definition at line 147 of file XrdSfsInterface.hh.

Referenced by XrdCmsFinderRMT::Prepare().

◆ Prep_PRTY0

#define Prep_PRTY0   0

Definition at line 143 of file XrdSfsInterface.hh.

◆ Prep_PRTY1

#define Prep_PRTY1   1

Definition at line 144 of file XrdSfsInterface.hh.

◆ Prep_PRTY2

#define Prep_PRTY2   2

Definition at line 145 of file XrdSfsInterface.hh.

◆ Prep_PRTY3

#define Prep_PRTY3   3

Definition at line 146 of file XrdSfsInterface.hh.

◆ Prep_QUERY

#define Prep_QUERY   512

Definition at line 156 of file XrdSfsInterface.hh.

Referenced by XrdOfs::prepare().

◆ Prep_SENDACK

#define Prep_SENDACK   12

Definition at line 150 of file XrdSfsInterface.hh.

Referenced by XrdCmsFinderRMT::Prepare().

◆ Prep_SENDAOK

#define Prep_SENDAOK   4

Definition at line 148 of file XrdSfsInterface.hh.

◆ Prep_SENDERR

#define Prep_SENDERR   8

Definition at line 149 of file XrdSfsInterface.hh.

Referenced by XrdCmsFinderRMT::Prepare().

◆ Prep_STAGE

#define Prep_STAGE   32

◆ Prep_WMODE

#define Prep_WMODE   16

Definition at line 151 of file XrdSfsInterface.hh.

Referenced by XrdCmsFinderRMT::Prepare().

◆ SFS_DATA

◆ SFS_DATAVEC

#define SFS_DATAVEC   -2048

Definition at line 113 of file XrdSfsInterface.hh.

Referenced by XrdSsiFileSess::fctl(), and XrdXrootdCallBack::sendError().

◆ SFS_ERROR

#define SFS_ERROR   -1

Definition at line 109 of file XrdSfsInterface.hh.

Referenced by XrdBwmHandle::Activate(), XrdOfsTPC::Authorize(), XrdOfsDirectory::autoStat(), XrdSfsDirectory::autoStat(), XrdSfsFile::checkpoint(), XrdOfs::chksum(), XrdSfsFileSystem::chksum(), XrdSsiSfs::chksum(), XrdSsiSfs::chmod(), XrdBwmDirectory::close(), XrdDigDirectory::close(), XrdOfsDirectory::close(), XrdSfsNativeDirectory::close(), XrdCmsParser::Decode(), XrdOfsTPCJob::Del(), XrdCmsClientMan::delayResp(), XrdBwmHandle::Dispatch(), XrdOfsTPCJob::Done(), XrdBwm::Emsg(), XrdBwm::Emsg(), XrdDigFS::Emsg(), XrdOfs::Emsg(), XrdOfs::Emsg(), XrdSfsNative::Emsg(), XrdSsiUtils::Emsg(), XrdSsiSfs::exists(), XrdOfsTPCAuth::Expired(), XrdOfsTPCInfo::Fail(), XrdOfsTPC::Fatal(), XrdOfs::FAttr(), XrdSfsFileSystem::FAttr(), XrdBwmFile::fctl(), XrdDigFile::fctl(), XrdOfsFile::fctl(), XrdOfsFile::fctl(), XrdSfsNativeFile::fctl(), XrdThrottle::File::fctl(), TPC::Stream::Finalize(), TPC::State::Flush(), XrdCmsFinderRMT::Forward(), XrdPfcFSctl::FSctl(), XrdPfcFSctl::FSctl(), XrdDigFS::fsctl(), XrdOfs::fsctl(), XrdSfsNative::fsctl(), XrdSsiSfs::fsctl(), XrdOfs::fsError(), XrdOfsTPCAuth::Get(), XrdThrottle::File::getMmap(), XrdSfsFileSystem::gpFile(), XrdCmsFinderRMT::Locate(), XrdCmsFinderTRG::Locate(), XrdSsiSfs::mkdir(), XrdPssFile::Open(), XrdSsiDir::open(), XrdSsiFileSess::open(), XrdThrottle::File::open(), XrdOfsFile::pgWrite(), XrdOfsFile::pgWrite(), XrdSfsFile::pgWrite(), XrdCmsFinderRMT::Prepare(), XrdSsiFileReq::Read(), XrdSfsFile::readv(), XrdSsiSfs::rem(), XrdSsiSfs::remdir(), XrdSsiSfs::rename(), XrdXrootdCallBack::sendError(), XrdXrootdAioTask::SendFSError(), XrdCmsFinderRMT::Space(), XrdSsiSfs::stat(), XrdSsiSfs::stat(), XrdOfsTPCJob::Sync(), XrdSsiSfs::truncate(), TPC::Stream::Write(), and XrdSfsFile::writev().

◆ SFS_FCTL_GETFD

◆ SFS_FCTL_SPEC1

#define SFS_FCTL_SPEC1   3

Definition at line 88 of file XrdSfsInterface.hh.

Referenced by XrdOfsFile::fctl(), and XrdSsiFileSess::fctl().

◆ SFS_FCTL_STATV

#define SFS_FCTL_STATV   2

Definition at line 87 of file XrdSfsInterface.hh.

Referenced by XrdBwmFile::fctl().

◆ SFS_FSCTL_CMD

#define SFS_FSCTL_CMD   255

Definition at line 94 of file XrdSfsInterface.hh.

Referenced by XrdDigFS::fsctl(), XrdOfs::fsctl(), and XrdSsiSfs::fsctl().

◆ SFS_FSCTL_LOCATE

#define SFS_FSCTL_LOCATE   1

Definition at line 96 of file XrdSfsInterface.hh.

Referenced by XrdDigFS::fsctl(), XrdOfs::fsctl(), and XrdSsiSfs::fsctl().

◆ SFS_FSCTL_PLUGIN

#define SFS_FSCTL_PLUGIN   8

Definition at line 101 of file XrdSfsInterface.hh.

◆ SFS_FSCTL_PLUGIO

#define SFS_FSCTL_PLUGIO   16

Definition at line 102 of file XrdSfsInterface.hh.

◆ SFS_FSCTL_PLUGXC

#define SFS_FSCTL_PLUGXC   32

Definition at line 103 of file XrdSfsInterface.hh.

Referenced by XrdOfs::FSctl(), XrdPfcFSctl::FSctl(), and XrdPssFile::Open().

◆ SFS_FSCTL_STATCC

#define SFS_FSCTL_STATCC   5

Definition at line 100 of file XrdSfsInterface.hh.

Referenced by XrdOfs::fsctl().

◆ SFS_FSCTL_STATFS

#define SFS_FSCTL_STATFS   2

Definition at line 97 of file XrdSfsInterface.hh.

Referenced by XrdOfs::fsctl().

◆ SFS_FSCTL_STATLS

#define SFS_FSCTL_STATLS   3

Definition at line 98 of file XrdSfsInterface.hh.

Referenced by XrdOfs::fsctl().

◆ SFS_FSCTL_STATXA

#define SFS_FSCTL_STATXA   4

Definition at line 99 of file XrdSfsInterface.hh.

Referenced by XrdOfs::fsctl().

◆ SFS_LCLPATH

#define SFS_LCLPATH ( x)    !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN)

Definition at line 119 of file XrdSfsInterface.hh.

Referenced by XrdDigFS::Validate().

◆ SFS_LCLPLEN

#define SFS_LCLPLEN   3

◆ SFS_LCLPRFX

#define SFS_LCLPRFX   "/=/"

Definition at line 117 of file XrdSfsInterface.hh.

Referenced by XrdDigDirectory::open(), and XrdDigFS::stat().

◆ SFS_LCLPRFY

#define SFS_LCLPRFY   "/="

Definition at line 120 of file XrdSfsInterface.hh.

Referenced by XrdDigDirectory::open(), and XrdDigFS::stat().

◆ SFS_LCLROOT

#define SFS_LCLROOT ( x)
Value:
!strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN-1) \
&& (*(x+SFS_LCLPLEN-1) == '/' || *(x+SFS_LCLPLEN-1) == 0)
#define SFS_LCLPRFX
#define SFS_LCLPLEN

Definition at line 121 of file XrdSfsInterface.hh.

121#define SFS_LCLROOT(x) !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN-1) \
122 && (*(x+SFS_LCLPLEN-1) == '/' || *(x+SFS_LCLPLEN-1) == 0)

Referenced by XrdDigFS::fsctl().

◆ SFS_O_CREAT

#define SFS_O_CREAT   0x00000100

◆ SFS_O_DIRLIST

#define SFS_O_DIRLIST   0x00010000

Definition at line 57 of file XrdSfsInterface.hh.

Referenced by XrdOfs::fsctl().

◆ SFS_O_FORCE

#define SFS_O_FORCE   0x00200000

Definition at line 59 of file XrdSfsInterface.hh.

Referenced by XrdOfs::fsctl(), and XrdCmsFinderRMT::Locate().

◆ SFS_O_HNAME

#define SFS_O_HNAME   0x00400000

◆ SFS_O_LOCAL

#define SFS_O_LOCAL   0x00800000

◆ SFS_O_LOCATE

#define SFS_O_LOCATE   0x10000000

◆ SFS_O_META

#define SFS_O_META   0x40000000

◆ SFS_O_MKPTH

#define SFS_O_MKPTH   0x00004000

◆ SFS_O_MULTIW

#define SFS_O_MULTIW   0x00000400

Definition at line 55 of file XrdSfsInterface.hh.

Referenced by XrdCmsFinderRMT::Locate(), and XrdOfsFile::open().

◆ SFS_O_NOTPC

#define SFS_O_NOTPC   0x00000800

Definition at line 56 of file XrdSfsInterface.hh.

Referenced by XrdOfsFile::open().

◆ SFS_O_NOWAIT

#define SFS_O_NOWAIT   0x01000000

◆ SFS_O_POSC

#define SFS_O_POSC   0x00100000

Definition at line 58 of file XrdSfsInterface.hh.

Referenced by XrdOfsFile::open().

◆ SFS_O_RAWIO

#define SFS_O_RAWIO   0x02000000

Definition at line 63 of file XrdSfsInterface.hh.

Referenced by XrdOfs::fsctl(), XrdCmsFinderRMT::Locate(), and XrdOfsFile::open().

◆ SFS_O_RDONLY

◆ SFS_O_RDWR

◆ SFS_O_REPLICA

#define SFS_O_REPLICA   0x08000000

Definition at line 65 of file XrdSfsInterface.hh.

Referenced by XrdCmsFinderRMT::Locate(), and XrdOfsFile::open().

◆ SFS_O_RESET

#define SFS_O_RESET   0x04000000

Definition at line 64 of file XrdSfsInterface.hh.

Referenced by XrdOfs::fsctl(), XrdCmsFinderRMT::Locate(), and XrdOfsFile::open().

◆ SFS_O_SEQIO

#define SFS_O_SEQIO   0x10000000

Definition at line 66 of file XrdSfsInterface.hh.

Referenced by XrdOfsFile::open().

◆ SFS_O_STAT

#define SFS_O_STAT   0x20000000

◆ SFS_O_TRUNC

#define SFS_O_TRUNC   0x00000200

◆ SFS_O_WRONLY

#define SFS_O_WRONLY   1

◆ SFS_OK

#define SFS_OK   0

Definition at line 108 of file XrdSfsInterface.hh.

Referenced by XrdXrootdFile::XrdXrootdFile(), XrdBwmHandle::Activate(), XrdOfsTPCAuth::Add(), XrdOfsTPC::Authorize(), XrdDigDirectory::autoStat(), XrdOfsDirectory::autoStat(), XrdOfsFile::checkpoint(), XrdOfs::chksum(), XrdOfs::chmod(), XrdSfsNative::chmod(), XrdBwmFile::close(), XrdDigDirectory::close(), XrdDigFile::close(), XrdOfsDirectory::close(), XrdOfsFile::close(), XrdSfsNativeDirectory::close(), XrdSfsNativeFile::close(), XrdSsiFileSess::close(), XrdXrootdProtocol::Configure(), XrdBwmHandle::Dispatch(), XrdXrootdCBJob::DoIt(), XrdOfsTPCJob::Done(), XrdBwm::exists(), XrdDigFS::exists(), XrdOfs::exists(), XrdSfsNative::exists(), XrdOfs::FAttr(), XrdBwmFile::fctl(), XrdDigFile::fctl(), XrdOfsFile::fctl(), XrdOfsFile::fctl(), XrdSfsFile::fctl(), XrdSfsNativeFile::fctl(), XrdSsiFile::fctl(), XrdPfcFSctl::FSctl(), XrdSfsFileSystem::FSctl(), XrdOfsTPCAuth::Get(), XrdBwmFile::getCXinfo(), XrdOfsFile::getCXinfo(), XrdSsiFile::getCXinfo(), XrdBwmFile::getMmap(), XrdDigFile::getMmap(), XrdOfsFile::getMmap(), XrdSfsNativeFile::getMmap(), XrdSsiFile::getMmap(), XrdOfs::mkdir(), XrdSfsNative::mkdir(), XrdBwmFile::open(), XrdDigDirectory::open(), XrdDigFile::open(), XrdOfsDirectory::open(), XrdOfsFile::open(), XrdSfsNativeDirectory::open(), XrdSfsNativeFile::open(), XrdSsiFileSess::open(), XrdOfsFile::pgRead(), XrdSfsFile::pgRead(), XrdThrottle::File::pgRead(), XrdOfsFile::pgWrite(), XrdSfsFile::pgWrite(), XrdThrottle::File::pgWrite(), XrdSsiSfs::prepare(), XrdDigFile::read(), XrdOfsFile::read(), XrdSfsNativeFile::read(), XrdSsiFile::read(), XrdThrottle::File::read(), XrdSfsNative::rem(), XrdSfsNative::remdir(), XrdOfs::rename(), XrdSfsNative::rename(), XrdSfsFile::SendData(), XrdSsiFileSess::SendData(), XrdBwmFile::stat(), XrdDigFile::stat(), XrdDigFS::stat(), XrdOfs::stat(), XrdOfs::stat(), XrdOfsFile::stat(), XrdSfsNative::stat(), XrdSfsNativeFile::stat(), XrdSsiFile::stat(), XrdOfsTPCJob::Sync(), XrdBwmFile::sync(), XrdDigFile::sync(), XrdDigFile::sync(), XrdOfsFile::sync(), XrdSfsNativeFile::sync(), XrdDigFile::truncate(), XrdOfs::truncate(), XrdOfsFile::truncate(), XrdSfsNative::truncate(), XrdSfsNativeFile::truncate(), XrdSsiFileSess::truncate(), XrdOfsTPC::Validate(), XrdDigFile::write(), XrdDigFile::write(), XrdOfsFile::write(), and XrdThrottle::File::write().

◆ SFS_REDIRECT

◆ SFS_SFIO_FDVAL

#define SFS_SFIO_FDVAL   0x80000000

Definition at line 90 of file XrdSfsInterface.hh.

Referenced by XrdXrootdFile::XrdXrootdFile(), and XrdSsiFile::fctl().

◆ SFS_STALL

#define SFS_STALL   1

◆ SFS_STARTED

Typedef Documentation

◆ XrdSfsFileOffset

typedef long long XrdSfsFileOffset

Definition at line 128 of file XrdSfsInterface.hh.

◆ XrdSfsFileOpenMode

typedef int XrdSfsFileOpenMode

Definition at line 129 of file XrdSfsInterface.hh.

◆ XrdSfsFileSystem2_t

typedef XrdSfsFileSystem *(* XrdSfsFileSystem2_t) (XrdSfsFileSystem *nativeFS, XrdSysLogger *Logger, const char *configFn, XrdOucEnv *envP)

When building a shared library plugin, the following "C" entry point must exist in the library:

Parameters
nativeFS- the filesystem that would have been used. You may return this pointer if you wish.
Logger- The message logging object to be used for messages.
configFn- pointer to the path of the configuration file. If nil there is no configuration file.
envP- Pointer to the environment containing implementation specific information.
Returns
Pointer to the file system object to be used or nil if an error occurred.

extern "C" {XrdSfsFileSystem *XrdSfsGetFileSystem2(XrdSfsFileSystem *nativeFS, XrdSysLogger *Logger, const char *configFn, XrdOucEnv *envP); }

Definition at line 1327 of file XrdSfsInterface.hh.

◆ XrdSfsFileSystem_t

typedef XrdSfsFileSystem *(* XrdSfsFileSystem_t) (XrdSfsFileSystem *nativeFS, XrdSysLogger *Logger, const char *configFn)

The old-style entry-point is still supported as a fallback. Should the version '2' entry point is not found, the system attempts to use the version '1' entry point.

extern "C" {XrdSfsFileSystem *XrdSfsGetFileSystem(XrdSfsFileSystem *nativeFS, XrdSysLogger *Logger, const char *configFn); }

Definition at line 1344 of file XrdSfsInterface.hh.

◆ XrdSfsMode

typedef int XrdSfsMode

Definition at line 130 of file XrdSfsInterface.hh.

◆ XrdSfsXferSize

typedef int XrdSfsXferSize

Definition at line 131 of file XrdSfsInterface.hh.

Enumeration Type Documentation

◆ XrdSfsFileExistence

Enumerator
XrdSfsFileExistNo 
XrdSfsFileExistIsFile 
XrdSfsFileExistIsDirectory 
XrdSfsFileExistIsOffline 
XrdSfsFileExistIsOther 

Definition at line 133 of file XrdSfsInterface.hh.

134{
140};
@ XrdSfsFileExistIsOther
@ XrdSfsFileExistIsFile
@ XrdSfsFileExistNo
@ XrdSfsFileExistIsOffline
@ XrdSfsFileExistIsDirectory