Logo ROOT  
Reference Guide
XrdProofdPlatform.h
Go to the documentation of this file.
1// @(#)root/proofd:$Id$
2// Author: G. Ganis June 2007
3
4/*************************************************************************
5 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_XrdProofdPlatform
13#define ROOT_XrdProofdPlatform
14
15//////////////////////////////////////////////////////////////////////////
16// //
17// XrdProofdPlatform //
18// //
19// Authors: G. Ganis, CERN, 2007 //
20// //
21// System settings used in XrdProofd classes, possibly platform //
22// dependent //
23// //
24//////////////////////////////////////////////////////////////////////////
25
26#include <ROOT/RConfig.hxx>
27
28// 32 or 64 bits
29#if ((defined(__hpux) && defined(__LP64__)) || \
30 (defined(linux) && (defined(__ia64__) || defined(__x86_64__))) || \
31 (defined(linux) && defined(__powerpc__) && defined(R__ppc64)) || \
32 (defined(__APPLE__) && (defined(__ppc64__) || defined(__x86_64__))))
33# define XPD__B64
34#endif
35
36#ifdef __APPLE__
37# ifndef __macos__
38# define __macos__
39# endif
40#endif
41#ifdef __sun
42# ifndef __solaris__
43# define __solaris__
44# endif
45#endif
46
47#include <errno.h>
48#include <stdio.h>
49#include <stdlib.h>
50#include <string.h>
51#include <unistd.h>
52#include <sys/types.h>
53#ifndef ROOT_XrdFour
54# include <sys/socket.h>
55# include <netinet/in.h>
56#endif
57#include <sys/stat.h>
58#include <sys/un.h>
59#include <pwd.h>
60#include <sys/resource.h>
61#include <sys/file.h>
62#include <dirent.h>
63#include <libgen.h>
64
65// Bypass Solaris ELF madness
66//
67#if (defined(SUNCC) || defined(__sun))
68#include <sys/isa_defs.h>
69#if defined(_ILP32) && (_FILE_OFFSET_BITS != 32)
70#undef _FILE_OFFSET_BITS
71#define _FILE_OFFSET_BITS 32
72#undef _LARGEFILE_SOURCE
73#endif
74#endif
75
76// System info on Solaris
77#if (defined(SUNCC) || defined(__sun)) && !defined(__KCC)
78# define XPD__SUNCC
79# include <sys/systeminfo.h>
80# include <sys/filio.h>
81# include <sys/sockio.h>
82# include <fcntl.h>
83# define HASNOT_INETATON
84# ifndef INADDR_NONE
85# define INADDR_NONE (UInt_t)-1
86# endif
87#endif
88
89#include <dlfcn.h>
90#if !defined(__APPLE__)
91#include <link.h>
92#endif
93
94#if defined(linux) || defined(__sun) || defined(__sgi) || \
95 defined(_AIX) || defined(__FreeBSD__) || defined(__OpenBSD__) || \
96 defined(__APPLE__) || defined(__MACH__) || defined(cygwingcc)
97#include <grp.h>
98#endif
99
100// For process info
101#if defined(__sun)
102#include <procfs.h>
103#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
104#include <sys/sysctl.h>
105#endif
106
107// Poll
108#include <sys/poll.h>
109
110// Name of the env variable used to define the library path
111#if defined(__hpux) || defined(_HIUX_SOURCE)
112#define XPD_LIBPATH "SHLIB_PATH"
113#elif defined(_AIX)
114#define XPD_LIBPATH "LIBPATH"
115#elif defined(__APPLE__)
116#define XPD_LIBPATH "DYLD_LIBRARY_PATH"
117#else
118#define XPD_LIBPATH "LD_LIBRARY_PATH"
119#endif
120
121// Time related
122#include <sys/time.h>
123#include <utime.h>
124
125// Macros to check ranges
126#ifdef XPD__B64
127# define XPD_LONGOK(x) (1)
128#else
129# define XPD_LONGOK(x) (x > LONG_MIN && x < LONG_MAX)
130#endif
131
132// Wait related
133#include <sys/wait.h>
134
135#endif