1 #ifndef __XRDSYS_PLATFORM_H__
2 #define __XRDSYS_PLATFORM_H__
38 #include <sys/types.h>
39 #include <asm/param.h>
41 #define MAXNAMELEN NAME_MAX
44 #include <AvailabilityMacros.h>
45 #include <sys/types.h>
46 #define fdatasync(x) fsync(x)
47 #define MAXNAMELEN NAME_MAX
49 # define dirent64 dirent
52 #define off64_t int64_t
54 #if (!defined(MAC_OS_X_VERSION_10_5) || \
55 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5)
62 #include <sys/types.h>
66 #define posix_memalign(memp, algn, sz) \
67 ((*memp = memalign(algn, sz)) ? 0 : ENOMEM)
68 #define __USE_LEGACY_PROTOTYPES__ 1
71 #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__)
75 #define F_DUP2FD F_DUPFD
78 #define STATFS_BUFF struct statfs
82 #define FLOCK_t struct flock
84 typedef off_t offset_t;
86 #define GTZ_NULL (struct timezone *)0
90 #define STATFS statvfs
91 #define STATFS_BUFF struct statvfs
95 #define SHMDT_t char *
97 #define FLOCK_t flock_t
99 #define GTZ_NULL (void *)0
105 #define SHMDT_t const void *
111 #include <AvailabilityMacros.h>
121 #define O_LARGEFILE 0
122 #define memalign(pgsz,amt) valloc(amt)
123 #define posix_memalign(memp, algn, sz) \
124 ((*memp = memalign(algn, sz)) ? 0 : ENOMEM)
125 #define SHMDT_t void *
127 #define EDEADLOCK EDEADLK
132 #define O_LARGEFILE 0
133 typedef off_t off64_t;
134 #define memalign(pgsz,amt) valloc(amt)
140 #if defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__) || \
141 defined(__IEEE_BIG_ENDIAN) || \
142 (defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN)
143 #define Xrd_Big_Endian
145 #define htonll(_x_) _x_
148 #define h2nll(_x_, _y_) memcpy((void *)&_y_,(const void *)&_x_,sizeof(long long))
151 #define ntohll(_x_) _x_
154 #define n2hll(_x_, _y_) memcpy((void *)&_y_,(const void *)&_x_,sizeof(long long))
157 #elif defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || \
158 defined(__IEEE_LITTLE_ENDIAN) || \
159 (defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN)
160 #if !defined(__GNUC__) || defined(__APPLE__)
162 #if !defined(__sun) || (defined(__sun) && (!defined(_LP64) || defined(__SunOS_5_10)))
163 extern "C" unsigned long long Swap_n2hll(
unsigned long long x);
165 #define htonll(_x_) Swap_n2hll(_x_)
168 #define ntohll(_x_) Swap_n2hll(_x_)
175 #define htonll(_x_) __bswap_64(_x_)
178 #define ntohll(_x_) __bswap_64(_x_)
184 #define h2nll(_x_, _y_) memcpy((void *)&_y_,(const void *)&_x_,sizeof(long long));\
188 #define n2hll(_x_, _y_) memcpy((void *)&_y_,(const void *)&_x_,sizeof(long long));\
194 #error Unable to determine target architecture endianness!
200 {
extern size_t strlcpy(
char *dst,
const char *src,
size_t size);}
206 #if defined(__solaris__) && !defined(__linux__)
207 # if __GNUC__ >= 3 || __GNUC_MINOR__ >= 90
211 #if defined(__linux__)
212 # include <features.h>
213 # if __GNU_LIBRARY__ == 6
219 #if defined(__MACH__) && defined(__i386__)
222 #if defined(_AIX) || \
223 (defined(XR__SUNGCC3) && !defined(__arch64__))
224 # define SOCKLEN_t size_t
225 #elif defined(XR__GLIBC) || \
226 defined(__FreeBSD__) || \
227 (defined(XR__SUNGCC3) && defined(__arch64__)) || defined(__APPLE__) || \
228 (defined(__sun) && defined(_SOCKLEN_T))
230 # define SOCKLEN_t socklen_t
232 #elif !defined(SOCKLEN_t)
233 # define SOCKLEN_t int
237 #define PTR2INT(x) static_cast<int>((long long)x)
239 #define PTR2INT(x) int(x)
243 #include "XrdSys/XrdWin32.hh"
244 #define Netdata_t void *
245 #define Sokdata_t char *
246 #define IOV_INIT(data,dlen) dlen,data
247 #define MAKEDIR(path,mode) mkdir(path)
248 #define net_errno WSAGetLastError()
251 #define Netdata_t char *
252 #define Sokdata_t void *
253 #define IOV_INIT(data,dlen) data,dlen
254 #define MAKEDIR(path,mode) mkdir(path,mode)
255 #define net_errno errno
259 #define MAXNAMELEN 256
260 #define MAXPATHLEN 1024
262 #include <sys/param.h>
266 #define XRDABS(x) (x < 0 ? -x : x)
268 #ifndef LT_MODULE_EXT
269 #define LT_MODULE_EXT ".so"
272 #endif // __XRDSYS_PLATFORM_H__