43#define ENOATTR ENODATA
69#if defined(__FreeBSD__)
71#elif defined(__linux__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
73#elif defined(__APPLE__)
75#elif defined(__solaris__)
78int XrdSysFAttr::Del(
const char *Aname,
const char *
Path,
int fd)
80int XrdSysFAttr::List(AList **aPL,
const char *
Path,
int fd,
int getSz)
82int XrdSysFAttr::Get(
const char *Aname,
void *Aval,
int Avsz,
83 const char *
Path,
int fd)
85int XrdSysFAttr::Set(
const char *Aname,
const void *Aval,
int Avsz,
86 const char *
Path,
int fd,
int isNew)
94int XrdSysFAttr::Diagnose(
const char *Op,
const char *Var,
106 {snprintf(buff,
sizeof(buff),
"%s attr %s from", Op, Var);
125 while(aLP) {aNP = aLP->
Next; free(aLP); aLP = aNP;}
137 int sz = 0, n = strlen(Aname);
141 if (!n || (msP && (sz = Get(Aname, 0, 0,
Path, fd)) < 0))
return 0;
145 if (!(aNew = (
AList *)malloc(
sizeof(
AList) + n)))
return 0;
152 strcpy(aNew->Name, Aname);
156 if (msP && *msP < sz) *msP = sz;
166 if (!push &&
Xat &&
Xat != &dfltXAttr)
delete Xat;
XrdSysXAttr & XrdSysXAttrNative
XrdSysXAttr * XrdSysXAttrActive
static void SetPlugin(XrdSysXAttr *xaP, bool push=false)
int Vlen
The length of the attribute value;.
AList * Next
-> next element.
XrdSysXAttr()
Constructor and Destructor.