XRootD
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.__unnamed146__
 
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 __unnamed__
const char * Arg1 PLUGINO, PLUGION, PLUGXC.
int Arg1Len Length.
int Arg2Len Length or -count of args in extension.

◆ XrdSfsFSctl.__unnamed146__

union XrdSfsFSctl.__unnamed146__

Definition at line 166 of file XrdSfsInterface.hh.

+ Collaboration diagram for XrdSfsFSctl.__unnamed146__:
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.

◆ Prep_COLOC

#define Prep_COLOC   64

Definition at line 153 of file XrdSfsInterface.hh.

◆ Prep_EVICT

#define Prep_EVICT   1024

Definition at line 157 of file XrdSfsInterface.hh.

◆ Prep_FRESH

#define Prep_FRESH   128

Definition at line 154 of file XrdSfsInterface.hh.

◆ Prep_PMASK

#define Prep_PMASK   3

Definition at line 147 of file XrdSfsInterface.hh.

◆ 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.

◆ Prep_SENDACK

#define Prep_SENDACK   12

Definition at line 150 of file XrdSfsInterface.hh.

◆ 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.

◆ Prep_STAGE

#define Prep_STAGE   32

Definition at line 152 of file XrdSfsInterface.hh.

◆ Prep_WMODE

#define Prep_WMODE   16

Definition at line 151 of file XrdSfsInterface.hh.

◆ SFS_DATA

#define SFS_DATA   -1024

Definition at line 112 of file XrdSfsInterface.hh.

◆ SFS_DATAVEC

#define SFS_DATAVEC   -2048

Definition at line 113 of file XrdSfsInterface.hh.

◆ SFS_ERROR

#define SFS_ERROR   -1

Definition at line 109 of file XrdSfsInterface.hh.

◆ SFS_FCTL_GETFD

#define SFS_FCTL_GETFD   1

Definition at line 86 of file XrdSfsInterface.hh.

◆ SFS_FCTL_SPEC1

#define SFS_FCTL_SPEC1   3

Definition at line 88 of file XrdSfsInterface.hh.

◆ SFS_FCTL_STATV

#define SFS_FCTL_STATV   2

Definition at line 87 of file XrdSfsInterface.hh.

◆ SFS_FSCTL_CMD

#define SFS_FSCTL_CMD   255

Definition at line 94 of file XrdSfsInterface.hh.

◆ SFS_FSCTL_LOCATE

#define SFS_FSCTL_LOCATE   1

Definition at line 96 of file XrdSfsInterface.hh.

◆ 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.

◆ SFS_FSCTL_STATCC

#define SFS_FSCTL_STATCC   5

Definition at line 100 of file XrdSfsInterface.hh.

◆ SFS_FSCTL_STATFS

#define SFS_FSCTL_STATFS   2

Definition at line 97 of file XrdSfsInterface.hh.

◆ SFS_FSCTL_STATLS

#define SFS_FSCTL_STATLS   3

Definition at line 98 of file XrdSfsInterface.hh.

◆ SFS_FSCTL_STATXA

#define SFS_FSCTL_STATXA   4

Definition at line 99 of file XrdSfsInterface.hh.

◆ SFS_LCLPATH

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

Definition at line 119 of file XrdSfsInterface.hh.

◆ SFS_LCLPLEN

#define SFS_LCLPLEN   3

Definition at line 118 of file XrdSfsInterface.hh.

◆ SFS_LCLPRFX

#define SFS_LCLPRFX   "/=/"

Definition at line 117 of file XrdSfsInterface.hh.

◆ SFS_LCLPRFY

#define SFS_LCLPRFY   "/="

Definition at line 120 of file XrdSfsInterface.hh.

◆ 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.

◆ SFS_O_CREAT

#define SFS_O_CREAT   0x00000100

Definition at line 53 of file XrdSfsInterface.hh.

◆ SFS_O_DIRLIST

#define SFS_O_DIRLIST   0x00010000

Definition at line 57 of file XrdSfsInterface.hh.

◆ SFS_O_FORCE

#define SFS_O_FORCE   0x00200000

Definition at line 59 of file XrdSfsInterface.hh.

◆ SFS_O_HNAME

#define SFS_O_HNAME   0x00400000

Definition at line 60 of file XrdSfsInterface.hh.

◆ SFS_O_LOCAL

#define SFS_O_LOCAL   0x00800000

Definition at line 61 of file XrdSfsInterface.hh.

◆ SFS_O_LOCATE

#define SFS_O_LOCATE   0x10000000

Definition at line 76 of file XrdSfsInterface.hh.

◆ SFS_O_META

#define SFS_O_META   0x40000000

Definition at line 78 of file XrdSfsInterface.hh.

◆ SFS_O_MKPTH

#define SFS_O_MKPTH   0x00004000

Definition at line 71 of file XrdSfsInterface.hh.

◆ SFS_O_MULTIW

#define SFS_O_MULTIW   0x00000400

Definition at line 55 of file XrdSfsInterface.hh.

◆ SFS_O_NOTPC

#define SFS_O_NOTPC   0x00000800

Definition at line 56 of file XrdSfsInterface.hh.

◆ SFS_O_NOWAIT

#define SFS_O_NOWAIT   0x01000000

Definition at line 62 of file XrdSfsInterface.hh.

◆ SFS_O_POSC

#define SFS_O_POSC   0x00100000

Definition at line 58 of file XrdSfsInterface.hh.

◆ SFS_O_RAWIO

#define SFS_O_RAWIO   0x02000000

Definition at line 63 of file XrdSfsInterface.hh.

◆ SFS_O_RDONLY

#define SFS_O_RDONLY   0

Definition at line 50 of file XrdSfsInterface.hh.

◆ SFS_O_RDWR

#define SFS_O_RDWR   2

Definition at line 52 of file XrdSfsInterface.hh.

◆ SFS_O_REPLICA

#define SFS_O_REPLICA   0x08000000

Definition at line 65 of file XrdSfsInterface.hh.

◆ SFS_O_RESET

#define SFS_O_RESET   0x04000000

Definition at line 64 of file XrdSfsInterface.hh.

◆ SFS_O_SEQIO

#define SFS_O_SEQIO   0x10000000

Definition at line 66 of file XrdSfsInterface.hh.

◆ SFS_O_STAT

#define SFS_O_STAT   0x20000000

Definition at line 77 of file XrdSfsInterface.hh.

◆ SFS_O_TRUNC

#define SFS_O_TRUNC   0x00000200

Definition at line 54 of file XrdSfsInterface.hh.

◆ SFS_O_WRONLY

#define SFS_O_WRONLY   1

Definition at line 51 of file XrdSfsInterface.hh.

◆ SFS_OK

#define SFS_OK   0

Definition at line 108 of file XrdSfsInterface.hh.

◆ SFS_REDIRECT

#define SFS_REDIRECT   -256

Definition at line 110 of file XrdSfsInterface.hh.

◆ SFS_SFIO_FDVAL

#define SFS_SFIO_FDVAL   0x80000000

Definition at line 90 of file XrdSfsInterface.hh.

◆ SFS_STALL

#define SFS_STALL   1

Definition at line 107 of file XrdSfsInterface.hh.

◆ SFS_STARTED

#define SFS_STARTED   -512

Definition at line 111 of file XrdSfsInterface.hh.

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