globus_common
18.11
globus_common_include.h
Go to the documentation of this file.
1
/*
2
* Copyright 1999-2006 University of Chicago
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
23
#if !defined(GLOBUS_COMMON_INCLUDE_H)
24
#define GLOBUS_COMMON_INCLUDE_H 1
25
26
#include "
globus_config.h
"
27
28
#if defined(_WIN32) && !defined(__CYGWIN__)
29
#include <winsock2.h>
30
#include <ws2tcpip.h>
31
#endif
32
33
#ifdef __GNUC__
34
#define GlobusFuncName(func) static const char * _globus_func_name \
35
__attribute__((__unused__)) = #func
36
#else
37
#define GlobusFuncName(func) static const char * _globus_func_name = #func
38
#endif
39
40
extern
const
char
* _globus_func_name;
41
42
#define _GCSL(s) globus_common_i18n_get_string(GLOBUS_COMMON_MODULE,\
43
s)
44
46
#ifndef __USE_POSIX
47
#define __USE_POSIX
48
#endif
49
50
/*
51
* Include system files if we have them
52
*/
53
#include <sys/types.h>
54
#include <sys/stat.h>
55
#if !defined(_WIN32)
56
#include <unistd.h>
57
#endif
58
#include <sys/param.h>
59
#include <fcntl.h>
60
61
#if defined(_WIN32)
62
# include <windows.h>
63
# include <winsock2.h>
64
# include <process.h>
65
# include <io.h>
66
# include <sys/timeb.h>
67
# include <signal.h>
68
# include <malloc.h>
69
#else
70
# include <pwd.h>
71
# include <netdb.h>
72
# include <netinet/in.h>
73
# include <sys/socket.h>
74
# include <sys/uio.h>
75
#endif
76
77
78
#include <sys/time.h>
79
#include <time.h>
80
81
#include <stdint.h>
82
#include <errno.h>
83
#include <stdlib.h>
84
#include <stdio.h>
85
#include <limits.h>
86
#include <assert.h>
87
#include <signal.h>
88
#include <string.h>
89
#include <ctype.h>
90
#include <stdarg.h>
91
92
#include <dirent.h>
93
#include <fcntl.h>
94
95
#ifdef _WIN32
96
extern
int
inet_pton(
int
af,
const
char
*src,
void
*dst);
97
#endif
/* _WIN32 */
98
99
/******************************************************************************
100
Define macros
101
******************************************************************************/
102
103
/*
104
* Various macro definitions for assertion checking
105
*/
106
#if 0
107
void
globus_dump_stack();
108
#define GLOBUS_DUMP_STACK() globus_dump_stack()
109
#else
110
#define GLOBUS_DUMP_STACK()
111
#endif
112
113
#if defined(BUILD_DEBUG)
114
# define globus_assert(assertion) \
115
do { \
116
if (!(assertion)) \
117
{ \
118
fprintf(stderr, "Assertion " #assertion \
119
" failed in file %s at line %d\n", \
120
__FILE__, __LINE__); \
121
GLOBUS_DUMP_STACK(); \
122
abort(); \
123
} \
124
} while(0)
125
126
# define globus_assert_string(assertion, string) \
127
do { \
128
if (!(assertion)) \
129
{ \
130
fprintf(stderr, "Assertion " #assertion \
131
" failed in file %s at line %d: %s", \
132
__FILE__, __LINE__, string); \
133
GLOBUS_DUMP_STACK(); \
134
abort(); \
135
} \
136
} while(0)
137
#else
/* BUILD_DEBUG */
138
# define globus_assert(assertion)
139
# define globus_assert_string(assertion, string)
140
#endif
/* BUILD_DEBUG */
141
142
#define GLOBUS_MAX(V1,V2) (((V1) > (V2)) ? (V1) : (V2))
143
#define GLOBUS_MIN(V1,V2) (((V1) < (V2)) ? (V1) : (V2))
144
145
#ifndef EXTERN_C_BEGIN
146
#ifdef __cplusplus
147
#define EXTERN_C_BEGIN extern "C" {
148
#define EXTERN_C_END }
149
#else
150
#define EXTERN_C_BEGIN
151
#define EXTERN_C_END
152
#endif
153
#endif
154
155
/* POSIX error code remapping */
156
#ifdef _WIN32
157
#ifndef EWOULDBLOCK
158
#define EWOULDBLOCK EAGAIN
159
#endif
160
#ifndef ETIMEDOUT
161
#define ETIMEDOUT WSAETIMEDOUT
162
#endif
163
#ifndef EINPROGRESS
164
#define EINPROGRESS WSAEINPROGRESS
165
#endif
166
#endif
167
168
#include <inttypes.h>
169
170
/* vsnprintf is already defined to mingw version */
171
#if defined(_WIN32) && !defined(__USE_MINGW_ANSI_STDIO)
172
# define vsnprintf _vsnprintf
173
#endif
174
175
#ifndef MAXHOSTNAMELEN
176
#define MAXHOSTNAMELEN 64
177
#endif
178
179
#include "
globus_types.h
"
180
#endif
/* GLOBUS_COMMON_INCLUDE_H */
181
globus_types.h
Common Primitive Types.
globus_config.h
Globus Platform Configuration.
Generated by
1.8.20