e576bb | 2002-10-11 | Martin Nilsson | | |
2ba1a4 | 2003-03-29 | Henrik Grubbström (Grubba) | | || $Id: global.h,v 1.84 2003/03/29 17:21:28 grubba Exp $
|
e576bb | 2002-10-11 | Martin Nilsson | | */
|
24ddc7 | 1998-03-28 | Henrik Grubbström (Grubba) | |
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #ifndef GLOBAL_H
#define GLOBAL_H
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | |
|
7fbe09 | 1999-05-11 | Fredrik Hübinette (Hubbe) | | #if defined(__WINNT__) && !defined(__NT__)
#define __NT__
#endif
|
a2326e | 1998-03-25 | Per Hedbor | | #ifndef _LARGEFILE_SOURCE
# define _FILE_OFFSET_BITS 64
# define _LARGEFILE_SOURCE
|
fedf13 | 1998-03-25 | Fredrik Hübinette (Hubbe) | | # define _LARGEFILE64_SOURCE 1
|
a2326e | 1998-03-25 | Per Hedbor | | #endif
|
90dc92 | 1998-06-12 | Fredrik Noring | |
#ifndef __STDC_EXT__
# define __STDC_EXT__
#endif /* !__STDC_EXT__ */
|
ada73b | 1999-07-15 | Henrik Grubbström (Grubba) | | #ifndef _PROTOTYPES
# define _PROTOTYPES
#endif /* !_PROTOTYPES */
|
90dc92 | 1998-06-12 | Fredrik Noring | |
|
e31ef4 | 2003-03-12 | Henrik Grubbström (Grubba) | |
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif /* !_GNU_SOURCE */
|
44e294 | 2000-08-11 | Henrik Grubbström (Grubba) | |
#ifndef __BUILTIN_VA_ARG_INCR
#define __BUILTIN_VA_ARG_INCR 1
#endif /* !__BUILTIN_VA_ARG_INCR */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
#ifdef MALLOC_REPLACED
#define NO_FIX_MALLOC
#endif
|
211d6b | 1996-12-05 | Fredrik Hübinette (Hubbe) | | #ifndef STRUCT_PROGRAM_DECLARED
#define STRUCT_PROGRAM_DECLARED
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct program;
|
211d6b | 1996-12-05 | Fredrik Hübinette (Hubbe) | | #endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct function;
|
211d6b | 1996-12-05 | Fredrik Hübinette (Hubbe) | | #ifndef STRUCT_SVALUE_DECLARED
#define STRUCT_SVALUE_DECLARED
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct svalue;
|
211d6b | 1996-12-05 | Fredrik Hübinette (Hubbe) | | #endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | struct sockaddr;
struct object;
struct array;
struct svalue;
|
ee8356 | 1998-08-07 | Henrik Grubbström (Grubba) | | #ifndef STRUCT_TIMEVAL_DECLARED
#define STRUCT_TIMEVAL_DECLARED
struct timeval;
#endif
|
83b184 | 2003-02-08 | Martin Stjernholm | | #ifndef CONFIGURE_TEST
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | #include "machine.h"
|
83b184 | 2003-02-08 | Martin Stjernholm | | #endif
|
189fd0 | 1997-01-28 | Fredrik Hübinette (Hubbe) | |
#define MAX_LOCAL 256
#ifndef NO_GC
#define GC2
#endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
|
75920f | 1997-12-28 | Fredrik Hübinette (Hubbe) | | #if defined(i386)
#ifndef HANDLES_UNALIGNED_MEMORY_ACCESS
#define HANDLES_UNALIGNED_MEMORY_ACCESS
#endif
#endif
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | |
|
44e294 | 2000-08-11 | Henrik Grubbström (Grubba) | | #if HAVE_ALLOCA_H
# include <alloca.h>
# ifdef __GNUC__
# ifdef alloca
# undef alloca
# endif
# define alloca __builtin_alloca
# endif
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | #else
|
44e294 | 2000-08-11 | Henrik Grubbström (Grubba) | | # ifdef __GNUC__
# ifdef alloca
# undef alloca
# endif
# define alloca __builtin_alloca
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | # else
# ifdef _AIX
|
5c8e89 | 1995-10-29 | Fredrik Hübinette (Hubbe) | | #pragma alloca
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | # else
# ifndef alloca /* predefined by HP cc +Olibcalls */
|
44e294 | 2000-08-11 | Henrik Grubbström (Grubba) | | void *alloca();
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | # endif
# endif
# endif
|
5401b6 | 1999-08-06 | Fredrik Hübinette (Hubbe) | | #endif
#ifdef __NT__
#define FD_SETSIZE MAX_OPEN_FILEDESCRIPTORS
|
cb2256 | 1995-10-11 | Fredrik Hübinette (Hubbe) | | #endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #include <stdio.h>
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
|
a4e1c4 | 1996-08-06 | Fredrik Hübinette (Hubbe) | | #undef HAVE_STDLIB_H
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #endif
|
ada73b | 1999-07-15 | Henrik Grubbström (Grubba) | | #ifdef HAVE_STDDEF_H
|
1e577b | 1999-07-15 | Fredrik Hübinette (Hubbe) | | #include <stddef.h>
|
ada73b | 1999-07-15 | Henrik Grubbström (Grubba) | | #undef HAVE_STDDEF_H
|
1e577b | 1999-07-15 | Fredrik Hübinette (Hubbe) | | #endif
|
75920f | 1997-12-28 | Fredrik Hübinette (Hubbe) | | #ifdef HAVE_MALLOC_H
|
102625 | 2000-08-30 | Henrik Grubbström (Grubba) | | #if !defined(__FreeBSD__)
|
7e24a6 | 2000-08-16 | Henrik Grubbström (Grubba) | |
|
75920f | 1997-12-28 | Fredrik Hübinette (Hubbe) | | #include <malloc.h>
|
102625 | 2000-08-30 | Henrik Grubbström (Grubba) | | #endif /* !__FreeBSD__ */
|
75920f | 1997-12-28 | Fredrik Hübinette (Hubbe) | | #undef HAVE_MALLOC_H
#endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #ifdef HAVE_UNISTD_H
#include <unistd.h>
|
a4e1c4 | 1996-08-06 | Fredrik Hübinette (Hubbe) | | #undef HAVE_UNISTD_H
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #endif
#ifdef HAVE_STRING_H
#include <string.h>
|
a4e1c4 | 1996-08-06 | Fredrik Hübinette (Hubbe) | | #undef HAVE_STRING_H
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #endif
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #ifdef HAVE_LIMITS_H
#include <limits.h>
#undef HAVE_LIMITS_H
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #endif
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#undef HAVE_SYS_TYPES_H
|
419ede | 1996-11-13 | Fredrik Hübinette (Hubbe) | | #endif
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #ifdef HAVE_MEMORY_H
#include <memory.h>
#undef HAVE_MEMORY_H
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #endif
|
b4dd8c | 1999-06-19 | Fredrik Hübinette (Hubbe) | | #ifdef HAVE_WINDOWS_H
#include <windows.h>
#undef HAVE_WINDOWS_H
#endif
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
7a5e47 | 1999-11-22 | Fredrik Hübinette (Hubbe) | | #if SIZEOF_LONG >= 8
#define INT64 long
|
ba65df | 2003-03-28 | Martin Stjernholm | | #define SIZEOF_INT64 SIZEOF_LONG
#define MAX_INT64 LONG_MAX
#define MIN_INT64 LONG_MIN
|
7a5e47 | 1999-11-22 | Fredrik Hübinette (Hubbe) | | #else
|
e50e88 | 2000-01-09 | Fredrik Hübinette (Hubbe) | | #if SIZEOF___INT64 - 0 >= 8
#define INT64 __int64
|
ba65df | 2003-03-28 | Martin Stjernholm | | #define SIZEOF_INT64 SIZEOF___INT64
#define MAX_INT64 _I64_MAX
#define MIN_INT64 _I64_MIN
|
3c989a | 2000-08-10 | Henrik Grubbström (Grubba) | | #else
#if SIZEOF_LONG_LONG - 0 >= 8
#define INT64 long long
|
ba65df | 2003-03-28 | Martin Stjernholm | | #define SIZEOF_INT64 SIZEOF_LONG_LONG
#ifdef LLONG_MAX
#define MAX_INT64 LLONG_MAX
#define MIN_INT64 LLONG_MIN
|
2ba1a4 | 2003-03-29 | Henrik Grubbström (Grubba) | | #elif defined(LONG_LONG_MAX)
|
ba65df | 2003-03-28 | Martin Stjernholm | | #define MAX_INT64 LONG_LONG_MAX
#define MIN_INT64 LONG_LONG_MIN
|
2ba1a4 | 2003-03-29 | Henrik Grubbström (Grubba) | | #else
#define MAX_INT64 0x7fffffffffffffffLL
#define MIN_INT64 (-0x7fffffffffffffffLL - 1LL)
|
ba65df | 2003-03-28 | Martin Stjernholm | | #endif
|
e50e88 | 2000-01-09 | Fredrik Hübinette (Hubbe) | | #endif
|
7a5e47 | 1999-11-22 | Fredrik Hübinette (Hubbe) | | #endif
#endif
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
#if SIZEOF_SHORT >= 4
#define INT32 short
#else
#if SIZEOF_INT >= 4
#define INT32 int
#else
#define INT32 long
#endif
#endif
|
b660c8 | 1999-03-01 | Fredrik Hübinette (Hubbe) | | #define MAX_INT32 2147483647
|
35d00c | 2001-07-02 | Martin Stjernholm | | #define MIN_INT32 (-2147483647-1)
|
b660c8 | 1999-03-01 | Fredrik Hübinette (Hubbe) | |
|
5a0de6 | 2003-03-29 | Martin Stjernholm | | #if defined (WITH_SHORT_INT)
#define MAX_INT_TYPE SHRT_MAX
#define MIN_INT_TYPE SHRT_MIN
#define PRINTPIKEINT "h"
#elif defined (WITH_INT_INT)
#define MAX_INT_TYPE INT_MAX
#define MIN_INT_TYPE INT_MIN
#define PRINTPIKEINT ""
#elif defined (WITH_LONG_INT)
#define MAX_INT_TYPE LONG_MAX
#define MIN_INT_TYPE LONG_MIN
#define PRINTPIKEINT "l"
#elif defined (WITH_LONG_LONG_INT)
#ifdef LLONG_MAX
#define MAX_INT_TYPE LLONG_MAX
#define MIN_INT_TYPE LLONG_MIN
|
ba65df | 2003-03-28 | Martin Stjernholm | | #else
|
5a0de6 | 2003-03-29 | Martin Stjernholm | | #define MAX_INT_TYPE LONG_LONG_MAX
#define MIN_INT_TYPE LONG_LONG_MIN
|
ba65df | 2003-03-28 | Martin Stjernholm | | #endif
|
5a0de6 | 2003-03-29 | Martin Stjernholm | | #define PRINTPIKEINT "ll"
|
69aa4b | 2003-01-26 | Mirar (Pontus Hagland) | | #endif
|
5a0de6 | 2003-03-29 | Martin Stjernholm | |
#if SIZEOF_INT_TYPE - 0 == 0
#error Unsupported type chosen for native pike integers.
|
69aa4b | 2003-01-26 | Mirar (Pontus Hagland) | | #endif
#if SIZEOF_INT_TYPE != 4
#define INT_TYPE_INT32_CONVERSION
#endif
|
5a0de6 | 2003-03-29 | Martin Stjernholm | | #if defined (WITH_LONG_DOUBLE_PRECISION_SVALUE)
#define PRINTPIKEFLOAT "L"
#elif defined (WITH_DOUBLE_PRECISION_SVALUE)
#define PRINTPIKEFLOAT ""
#else
#define PRINTPIKEFLOAT ""
#endif
#if SIZEOF_FLOAT_TYPE - 0 == 0
#error Unsupported type chosen for pike floats.
#endif
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #define INT16 short
#define INT8 char
|
2b0d73 | 2000-01-09 | Fredrik Hübinette (Hubbe) | | #ifdef INT64
#define LONGEST INT64
#else
#define LONGEST INT32
#endif
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #define SIZE_T unsigned INT32
#define TYPE_T unsigned INT8
#define TYPE_FIELD unsigned INT16
|
6d2254 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | #define B1_T char
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
6d2254 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | #if SIZEOF_SHORT == 2
#define B2_T short
#elif SIZEOF_INT == 2
#define B2_T int
#endif
#if SIZEOF_SHORT == 4
#define B4_T short
#elif SIZEOF_INT == 4
#define B4_T int
#elif SIZEOF_LONG == 4
#define B4_T long
#endif
#if SIZEOF_INT == 8
#define B8_T int
#elif SIZEOF_LONG == 8
#define B8_T long
|
3f3e4d | 2000-08-03 | Henrik Grubbström (Grubba) | | #elif (SIZEOF_LONG_LONG - 0) == 8
#define B8_T long long
#elif (SIZEOF___INT64 - 0) == 8
#define B8_T __int64
|
6d2254 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | #elif SIZEOF_CHAR_P == 8
#define B8_T char *
#elif defined(B4_T)
struct b8_t_s { B4_T x,y; };
|
52fcc8 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | #define B8_T struct b8_t_s
|
6d2254 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | #endif
|
52fcc8 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | #if defined(B8_T)
|
2de118 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | struct b16_t_s { B8_T x,y; };
|
52fcc8 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | #define B16_T struct b16_t_s
|
6d2254 | 1998-01-28 | Fredrik Hübinette (Hubbe) | | #endif
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
3e625c | 1998-10-11 | Fredrik Hübinette (Hubbe) | | typedef unsigned char p_wchar0;
typedef unsigned INT16 p_wchar1;
typedef unsigned INT32 p_wchar2;
|
3ef466 | 1999-02-27 | Henrik Grubbström (Grubba) | | typedef struct p_wchar_p
{
p_wchar0 *ptr;
int shift;
} PCHARP;
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
0378a2 | 2003-02-11 | Martin Stjernholm | | #ifndef CONFIGURE_TEST
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
#define RCSID(X) \
static char *rcsid __attribute__ ((unused)) =X
#elif __GNUC__ == 2
#define RCSID(X) \
static char *rcsid = X; \
static void *use_rcsid=(&use_rcsid, (void *)&rcsid)
#else
#define RCSID(X) \
static char *rcsid = X
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #endif
|
0378a2 | 2003-02-11 | Martin Stjernholm | | #else
#define RCSID(X)
#endif
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
ae9503 | 1999-04-07 | Fredrik Hübinette (Hubbe) | | #ifdef PIKE_DEBUG
#define DO_IF_DEBUG(X) X
#else
#define DO_IF_DEBUG(X)
|
518963 | 2001-06-04 | Martin Stjernholm | | #define NDEBUG
|
ae9503 | 1999-04-07 | Fredrik Hübinette (Hubbe) | | #endif
|
a8a813 | 2002-09-13 | Martin Stjernholm | | #ifdef INTERNAL_PROFILING
#define DO_IF_INTERNAL_PROFILING(X) X
#else
#define DO_IF_INTERNAL_PROFILING(X)
#endif
|
71f3a2 | 1998-11-22 | Fredrik Hübinette (Hubbe) | | #if defined(__GNUC__) && !defined(PIKE_DEBUG) && !defined(lint)
|
9aa6fa | 1997-05-19 | Fredrik Hübinette (Hubbe) | | #define INLINE inline
#else
#define INLINE
#endif
|
bed960 | 1997-05-19 | Fredrik Hübinette (Hubbe) | |
|
2ba1a4 | 2003-03-29 | Henrik Grubbström (Grubba) | | |
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | * Putting PMOD_PROTO in front of a prototype does nothing.
*/
#ifndef PMOD_EXPORT
|
2ba1a4 | 2003-03-29 | Henrik Grubbström (Grubba) | | #ifdef __NT__
#ifdef DYNAMIC_MODULE
#ifdef _M_IA64
#define PMOD_EXPORT __declspec(dllimport)
#endif /* _M_IA64 */
#else /* !DYNAMIC_MODULE */
#endif /* DYNAMIC_MODULE */
#endif /* __NT__ */
#ifndef PMOD_EXPORT
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | | #define PMOD_EXPORT
|
2ba1a4 | 2003-03-29 | Henrik Grubbström (Grubba) | | #endif /* !PMOD_EXPORT */
#endif /* !PMOD_EXPORT */
|
1f2133 | 2000-07-28 | Fredrik Hübinette (Hubbe) | |
#ifndef PMOD_PROTO
#define PMOD_PROTO
#endif
|
27f025 | 2002-11-25 | Martin Stjernholm | | #if defined(PURIFY) || defined(__CHECKER__) || \
defined(DEBUG_MALLOC) || defined(USE_VALGRIND)
|
ae9503 | 1999-04-07 | Fredrik Hübinette (Hubbe) | | #define DO_PIKE_CLEANUP
#endif
|
ec2bab | 2000-06-24 | Fredrik Hübinette (Hubbe) | | #ifdef PIKE_SECURITY
#define DO_IF_SECURITY(X) X
#else
#define DO_IF_SECURITY(X)
#endif
|
9b8163 | 2000-08-07 | Henrik Grubbström (Grubba) | |
#define DO_NOT_WARN(X) (X)
|
ec2bab | 2000-06-24 | Fredrik Hübinette (Hubbe) | |
|
eef59f | 2000-08-17 | Henrik Grubbström (Grubba) | |
#ifdef __ECL
static inline long PTRDIFF_T_TO_LONG(ptrdiff_t x)
{
return DO_NOT_WARN((long)x);
}
#else /* !__ECL */
#define PTRDIFF_T_TO_LONG(x) ((long)(x))
#endif /* __ECL */
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #include "port.h"
|
61e9a0 | 1998-01-25 | Fredrik Hübinette (Hubbe) | | #include "dmalloc.h"
|
e83eb9 | 2001-03-22 | Fredrik Hübinette (Hubbe) | | #include "pike_cpulib.h"
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | |
#ifdef BUFSIZ
#define PROT_STDIO(x) PROT(x)
#else
#define PROT_STDIO(x) ()
#endif
#ifdef __STDC__
#define PROT(x) x
#else
#define PROT(x) ()
#endif
#ifdef MALLOC_DECL_MISSING
char *malloc PROT((int));
char *realloc PROT((char *,int));
void free PROT((char *));
char *calloc PROT((int,int));
#endif
#ifdef GETPEERNAME_DECL_MISSING
int getpeername PROT((int, struct sockaddr *, int *));
#endif
#ifdef GETHOSTNAME_DECL_MISSING
void gethostname PROT((char *,int));
#endif
#ifdef POPEN_DECL_MISSING
FILE *popen PROT((char *,char *));
#endif
#ifdef GETENV_DECL_MISSING
char *getenv PROT((char *));
#endif
|
8301e4 | 2000-08-20 | Henrik Grubbström (Grubba) | | #ifdef USE_CRYPT_C
char *crypt(char *, char *);
#endif /* USE_CRYPT_C */
|
21aa9b | 2000-12-13 | Fredrik Hübinette (Hubbe) | |
#define Pike_error_present
|
391350 | 2002-06-25 | Henrik Grubbström (Grubba) | |
#define USE_PIKE_TYPE 2
|
d68a07 | 2001-02-20 | Henrik Grubbström (Grubba) | |
|
aad99b | 2001-03-28 | Fredrik Hübinette (Hubbe) | | #ifdef PIKE_RUN_UNLOCKED
#define DO_IF_RUN_UNLOCKED(X) X
#else
#define DO_IF_RUN_UNLOCKED(X)
#endif
|
3a2a73 | 2002-04-09 | Mikael Brandström | |
#if defined(PROFILING) && defined(HAVE_GETHRTIME)
#define DO_IF_PROFILING(X) X
#else
#define DO_IF_PROFILING(X)
#endif
|
5267b7 | 1995-08-09 | Fredrik Hübinette (Hubbe) | | #endif
|