1 #ifndef __XRDPOSIXXROOTD_H__
2 #define __XRDPOSIXXROOTD_H__
37 #include <sys/statvfs.h>
38 #include <sys/types.h>
40 #if defined(__APPLE__) || defined(__FreeBSD__)
41 #include <sys/param.h>
42 #include <sys/mount.h>
44 #include <sys/statfs.h>
62 static int Close(
int fildes,
int Stream=0);
66 static int Fstat(
int fildes,
struct stat *buf);
68 static int Fsync(
int fildes);
70 static int Ftruncate(
int fildes, off_t offset);
72 static long long Getxattr (
const char *path,
const char *name,
73 void *value,
unsigned long long size);
75 static off_t
Lseek(
int fildes, off_t offset,
int whence);
77 static int Mkdir(
const char *path, mode_t mode);
81 static int Open(
const char *path,
int oflag, mode_t mode=0,
84 static DIR*
Opendir(
const char *path);
86 static ssize_t
Pread(
int fildes,
void *buf,
size_t nbyte, off_t offset);
88 static ssize_t
Read(
int fildes,
void *buf,
size_t nbyte);
90 static ssize_t
Readv(
int fildes,
const struct iovec *iov,
int iovcnt);
92 static struct dirent*
Readdir (DIR *dirp);
93 static struct dirent64*
Readdir64(DIR *dirp);
95 static int Readdir_r (DIR *dirp,
struct dirent *entry,
struct dirent **result);
96 static int Readdir64_r(DIR *dirp,
struct dirent64 *entry,
struct dirent64 **result);
98 static int Rename(
const char *oldpath,
const char *newpath);
102 static int Rmdir(
const char *path);
104 static void Seekdir(DIR *dirp,
long loc);
106 static int Stat(
const char *path,
struct stat *buf);
108 static int Statfs(
const char *path,
struct statfs *buf);
110 static int Statvfs(
const char *path,
struct statvfs *buf);
112 static ssize_t
Pwrite(
int fildes,
const void *buf,
size_t nbyte, off_t offset);
114 static long Telldir(DIR *dirp);
116 static int Truncate(
const char *path, off_t offset);
118 static int Unlink(
const char *path);
120 static ssize_t
Write(
int fildes,
const void *buf,
size_t nbyte);
122 static ssize_t
Write(
int fildes,
void *buf,
size_t nbyte, off_t offset);
124 static ssize_t
Writev(
int fildes,
const struct iovec *iov,
int iovcnt);
128 static int Access(
const char *path,
int amode);
130 static int endPoint(
int FD,
char *Buff,
int Blen);
141 static void OpenCB(XrdPosixFile *fp,
void *cbArg,
int res);
143 static int QueryChksum(
const char *, time_t &,
char *,
int);
145 static long long QueryOpaque(
const char*,
char*,
int);
149 static void setEnv(
const char *var,
const char *val);
151 static void setEnv(
const char *var,
long val);
175 static void initEnv(
char *eData);
177 static int Fault(XrdPosixFile *fp,
int complete=1);
178 static XrdPosixFile *
findFP(
int fildes,
int glk=0);
179 static XrdPosixDir *
findDIR(DIR *dirp,
int glk=0);
180 static void initStat(
struct stat *buf);
181 static void initXdev(dev_t &st_dev, dev_t &st_rdev);
183 static int mapMode(mode_t Mode);
static int baseFD
Definition: XrdPosixXrootd.hh:191
static int Statvfs(const char *path, struct statvfs *buf)
static int Ftruncate(int fildes, off_t offset)
static ssize_t Readv(int fildes, const struct iovec *iov, int iovcnt)
static XrdOucCache * myCache
Definition: XrdPosixXrootd.hh:188
static int Open(const char *path, int oflag, mode_t mode=0, XrdPosixCallBack *cbP=0)
static const int isStream
Definition: XrdPosixXrootd.hh:79
static int devNull
Definition: XrdPosixXrootd.hh:195
static long Telldir(DIR *dirp)
static long long Getxattr(const char *path, const char *name, void *value, unsigned long long size)
static int highFD
Definition: XrdPosixXrootd.hh:190
static int mapFlags(int flags)
static ssize_t Pread(int fildes, void *buf, size_t nbyte, off_t offset)
static void OpenCB(XrdPosixFile *fp, void *cbArg, int res)
static int maxThreads
Definition: XrdPosixXrootd.hh:197
static ssize_t Write(int fildes, const void *buf, size_t nbyte)
static int Unlink(const char *path)
static int Close(int fildes, int Stream=0)
static XrdPosixDir ** myDirs
Definition: XrdPosixXrootd.hh:187
static int Access(const char *path, int amode)
static int Stat(const char *path, struct stat *buf)
static int highDir
Definition: XrdPosixXrootd.hh:194
static int freeFD
Definition: XrdPosixXrootd.hh:192
static long long QueryOpaque(const char *, char *, int)
static int Fsync(int fildes)
Definition: XrdSysPthread.hh:140
static int Fault(XrdPosixFile *fp, int complete=1)
static int mapMode(mode_t Mode)
static int Truncate(const char *path, off_t offset)
static bool myFD(int fd)
Definition: XrdPosixXrootd.hh:137
Definition: XrdOucCache.hh:278
static ssize_t Pwrite(int fildes, const void *buf, size_t nbyte, off_t offset)
static int lastFD
Definition: XrdPosixXrootd.hh:189
Definition: XrdOucEnv.hh:41
Definition: XrdPosixCallBack.hh:50
static int pllOpen
Definition: XrdPosixXrootd.hh:196
Definition: XrdPosixXrootd.hh:56
static int initDone
Definition: XrdPosixXrootd.hh:198
static bool isXrootdDir(DIR *dirp)
static void initXdev(dev_t &st_dev, dev_t &st_rdev)
static XrdPosixDir * findDIR(DIR *dirp, int glk=0)
static struct dirent * Readdir(DIR *dirp)
static XrdPosixFile ** myFiles
Definition: XrdPosixXrootd.hh:186
static int Statfs(const char *path, struct statfs *buf)
static void setDebug(int val)
static int Fstat(int fildes, struct stat *buf)
static int mapError(int rc)
static int lastDir
Definition: XrdPosixXrootd.hh:193
static XrdPosixFile * findFP(int fildes, int glk=0)
static int QueryChksum(const char *, time_t &, char *, int)
static XrdSysMutex myMutex
Definition: XrdPosixXrootd.hh:185
static int Readdir64_r(DIR *dirp, struct dirent64 *entry, struct dirent64 **result)
static int Closedir(DIR *dirp)
static int endPoint(int FD, char *Buff, int Blen)
static void Rewinddir(DIR *dirp)
static struct dirent64 * Readdir64(DIR *dirp)
static int Rename(const char *oldpath, const char *newpath)
static void setCache(XrdOucCache *cP)
static int Rmdir(const char *path)
static ssize_t Read(int fildes, void *buf, size_t nbyte)
static void setEnv(const char *var, const char *val)
static off_t Lseek(int fildes, off_t offset, int whence)
static void initStat(struct stat *buf)
XrdPosixXrootd(int maxfd=255, int maxdir=255, int maxthr=255)
static ssize_t Writev(int fildes, const struct iovec *iov, int iovcnt)
static void Seekdir(DIR *dirp, long loc)
static int Mkdir(const char *path, mode_t mode)
static DIR * Opendir(const char *path)
static int Readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result)
static int Debug
Definition: XrdPosixXrootd.hh:155