Go to the documentation of this file. 1 #ifndef __XRDSYS_PLATFORM_H__
2 #define __XRDSYS_PLATFORM_H__
39 #include <sys/types.h>
40 #include <sys/param.h>
42 #define MAXNAMELEN NAME_MAX
46 #include <AvailabilityMacros.h>
47 #include <sys/types.h>
48 #include <sys/param.h>
49 #define fdatasync(x) fsync(x)
50 #define MAXNAMELEN NAME_MAX
52 # define dirent64 dirent
55 #define off64_t int64_t
57 #if (!defined(MAC_OS_X_VERSION_10_5) || \
58 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5)
65 #if defined(__FreeBSD__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
66 #include <sys/types.h>
67 #include <sys/param.h>
68 #define MAXNAMELEN NAME_MAX
72 #include <sys/types.h>
73 #include <sys/param.h>
79 #define MAXNAMELEN 255
80 #define MAXPATHLEN 4096
81 #define MAXHOSTNAMELEN 64
85 #define MAXNAMELEN 256
86 #define MAXPATHLEN 1024
90 #define posix_memalign(memp, algn, sz) \
91 ((*memp = memalign(algn, sz)) ? 0 : ENOMEM)
92 #define __USE_LEGACY_PROTOTYPES__ 1
95 #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
100 #define STATFS_BUFF struct statfs
104 #define FLOCK_t struct flock
106 typedef off_t offset_t;
108 #define GTZ_NULL (struct timezone *)0
112 #define STATFS statvfs
113 #define STATFS_BUFF struct statvfs
117 #define SHMDT_t char *
119 #define FLOCK_t flock_t
121 #define GTZ_NULL (void *)0
127 #define SHMDT_t const void *
142 #define O_LARGEFILE 0
143 #define memalign(pgsz,amt) valloc(amt)
144 #define posix_memalign(memp, algn, sz) \
145 ((*memp = memalign(algn, sz)) ? 0 : ENOMEM)
146 #define SHMDT_t void *
148 #define EDEADLOCK EDEADLK
153 #define O_LARGEFILE 0
154 typedef off_t off64_t;
155 #define memalign(pgsz,amt) valloc(amt)
161 #if defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__) || \
162 defined(__IEEE_BIG_ENDIAN) || \
163 (defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN)
164 #define Xrd_Big_Endian
166 #define htonll(_x_) _x_
169 #define h2nll(_x_, _y_) memcpy((void *)&_y_,(const void *)&_x_,sizeof(long long))
172 #define ntohll(_x_) _x_
175 #define n2hll(_x_, _y_) memcpy((void *)&_y_,(const void *)&_x_,sizeof(long long))
178 #elif defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || \
179 defined(__IEEE_LITTLE_ENDIAN) || \
180 (defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN)
181 #if !defined(__GNUC__) || defined(__APPLE__)
183 #if !defined(__sun) || (defined(__sun) && (!defined(_LP64) || defined(__SunOS_5_10)))
184 extern "C" unsigned long long Swap_n2hll(
unsigned long long x);
186 #define htonll(_x_) Swap_n2hll(_x_)
189 #define ntohll(_x_) Swap_n2hll(_x_)
196 #define htonll(_x_) __bswap_64(_x_)
199 #define ntohll(_x_) __bswap_64(_x_)
205 #define h2nll(_x_, _y_) memcpy((void *)&_y_,(const void *)&_x_,sizeof(long long));\
209 #define n2hll(_x_, _y_) memcpy((void *)&_y_,(const void *)&_x_,sizeof(long long));\
215 #error Unable to determine target architecture endianness!
221 {
extern size_t strlcpy(
char *dst,
const char *src,
size_t size);}
227 #if defined(__solaris__) && !defined(__linux__)
228 # if __GNUC__ >= 3 || __GNUC_MINOR__ >= 90
232 #if defined(__linux__)
233 # include <features.h>
234 # if __GNU_LIBRARY__ == 6
243 #if defined(_AIX) || \
244 (defined(XR__SUNGCC3) && !defined(__arch64__))
245 # define SOCKLEN_t size_t
246 #elif defined(XR__GLIBC) || \
247 defined(__FreeBSD__) || \
248 (defined(__FreeBSD_kernel__) && defined(__GLIBC__)) || \
249 (defined(XR__SUNGCC3) && defined(__arch64__)) || defined(__APPLE__) || \
250 (defined(__sun) && defined(_SOCKLEN_T))
252 # define SOCKLEN_t socklen_t
254 #elif !defined(SOCKLEN_t)
255 # define SOCKLEN_t int
259 #define PTR2INT(x) static_cast<int>((long long)x)
261 #define PTR2INT(x) int(x)
265 #include "XrdSys/XrdWin32.hh"
266 #define Netdata_t void *
267 #define Sokdata_t char *
268 #define IOV_INIT(data,dlen) dlen,data
269 #define MAKEDIR(path,mode) mkdir(path)
270 #define CHMOD(path, mode) {}
271 #define net_errno WSAGetLastError()
274 #define Netdata_t char *
275 #define Sokdata_t void *
276 #define IOV_INIT(data,dlen) data,dlen
277 #define MAKEDIR(path,mode) mkdir(path,mode)
278 #define CHMOD(path, mode) chmod(path,mode)
279 #define net_errno errno
284 #define XRDABS(x) (x < 0 ? -x : x)
286 #ifndef LT_MODULE_EXT
287 #define LT_MODULE_EXT ".so"
290 #endif // __XRDSYS_PLATFORM_H__