xrootd
Classes | Macros | Typedefs | Enumerations
XrdSfsInterface.hh File Reference
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "XrdOuc/XrdOucErrInfo.hh"
#include "XrdOuc/XrdOucIOVec.hh"
#include "XrdOuc/XrdOucSFVec.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

struct  XrdSfsFSctl
 < SFS_FSCTL_PLUGIN/PLUGIO parameters More...
 
struct  XrdSfsPrep
 < Prepare parameters More...
 
class  XrdSfsFileSystem
 
class  XrdSfsFile
 
class  XrdSfsDirectory
 

Macros

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

Typedefs

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

Enumerations

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

Macro Definition Documentation

◆ Prep_CANCEL

#define Prep_CANCEL   256

◆ Prep_COLOC

#define Prep_COLOC   64

◆ Prep_EVICT

#define Prep_EVICT   1024

◆ Prep_FRESH

#define Prep_FRESH   128

◆ Prep_PMASK

#define Prep_PMASK   3

◆ Prep_PRTY0

#define Prep_PRTY0   0

◆ Prep_PRTY1

#define Prep_PRTY1   1

◆ Prep_PRTY2

#define Prep_PRTY2   2

◆ Prep_PRTY3

#define Prep_PRTY3   3

◆ Prep_QUERY

#define Prep_QUERY   512

◆ Prep_SENDACK

#define Prep_SENDACK   12

◆ Prep_SENDAOK

#define Prep_SENDAOK   4

◆ Prep_SENDERR

#define Prep_SENDERR   8

◆ Prep_STAGE

#define Prep_STAGE   32

◆ Prep_WMODE

#define Prep_WMODE   16

◆ SFS_DATA

#define SFS_DATA   -1024

◆ SFS_DATAVEC

#define SFS_DATAVEC   -2048

◆ SFS_ERROR

#define SFS_ERROR   -1

◆ SFS_FCTL_GETFD

#define SFS_FCTL_GETFD   1

◆ SFS_FCTL_SPEC1

#define SFS_FCTL_SPEC1   3

◆ SFS_FCTL_STATV

#define SFS_FCTL_STATV   2

◆ SFS_FSCTL_CMD

#define SFS_FSCTL_CMD   255

◆ SFS_FSCTL_LOCATE

#define SFS_FSCTL_LOCATE   1

◆ SFS_FSCTL_PLUGIN

#define SFS_FSCTL_PLUGIN   8

◆ SFS_FSCTL_PLUGIO

#define SFS_FSCTL_PLUGIO   16

◆ SFS_FSCTL_STATCC

#define SFS_FSCTL_STATCC   5

◆ SFS_FSCTL_STATFS

#define SFS_FSCTL_STATFS   2

◆ SFS_FSCTL_STATLS

#define SFS_FSCTL_STATLS   3

◆ SFS_FSCTL_STATXA

#define SFS_FSCTL_STATXA   4

◆ SFS_LCLPATH

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

◆ SFS_LCLPLEN

#define SFS_LCLPLEN   3

◆ SFS_LCLPRFX

#define SFS_LCLPRFX   "/=/"

◆ SFS_LCLPRFY

#define SFS_LCLPRFY   "/="

◆ SFS_LCLROOT

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

◆ SFS_O_CREAT

#define SFS_O_CREAT   0x100

◆ SFS_O_FORCE

#define SFS_O_FORCE   0x0200000

◆ SFS_O_HNAME

#define SFS_O_HNAME   0x0400000

◆ SFS_O_LOCAL

#define SFS_O_LOCAL   0x0800000

◆ 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   0x400

◆ SFS_O_NOWAIT

#define SFS_O_NOWAIT   0x01000000

◆ SFS_O_POSC

#define SFS_O_POSC   0x0100000

◆ SFS_O_RAWIO

#define SFS_O_RAWIO   0x02000000

◆ SFS_O_RDONLY

#define SFS_O_RDONLY   0

◆ SFS_O_RDWR

#define SFS_O_RDWR   2

◆ SFS_O_REPLICA

#define SFS_O_REPLICA   0x08000000

◆ SFS_O_RESET

#define SFS_O_RESET   0x04000000

◆ SFS_O_STAT

#define SFS_O_STAT   0x20000000

◆ SFS_O_TRUNC

#define SFS_O_TRUNC   0x200

◆ SFS_O_WRONLY

#define SFS_O_WRONLY   1

◆ SFS_OK

#define SFS_OK   0

◆ SFS_REDIRECT

#define SFS_REDIRECT   -256

◆ SFS_SFIO_FDVAL

#define SFS_SFIO_FDVAL   0x80000000

◆ SFS_STALL

#define SFS_STALL   1

◆ SFS_STARTED

#define SFS_STARTED   -512

Typedef Documentation

◆ XrdSfsFileOffset

typedef long long XrdSfsFileOffset

◆ XrdSfsFileOpenMode

typedef int XrdSfsFileOpenMode

◆ XrdSfsFileSystem2_t

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

◆ XrdSfsFileSystem_t

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

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.
Returns
Pointer to the file system object to be used or nil if an error occurred.

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

An alternate entry point may be defined in lieu of the previous entry point. This normally identified by a version option in the configuration file (e.g. xrootd.fslib -2 <path>). It differs in that an extra parameter is passed:

Parameters
envP- Pointer to the environment containing implementation specific information.

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

◆ XrdSfsMode

typedef int XrdSfsMode

◆ XrdSfsXferSize

typedef int XrdSfsXferSize

Enumeration Type Documentation

◆ XrdSfsFileExistence

Enumerator
XrdSfsFileExistNo 
XrdSfsFileExistIsFile 
XrdSfsFileExistIsDirectory 
XrdSfsFileExistIsOffline 
XrdSfsFileExistIsOther 
SFS_LCLPRFX
#define SFS_LCLPRFX
Definition: XrdSfsInterface.hh:108
SFS_LCLPLEN
#define SFS_LCLPLEN
Definition: XrdSfsInterface.hh:109