1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
/*
* ngIRCd -- The Next Generation IRC Daemon
* Copyright (c)2001,2002 by Alexander Barton (alex@barton.de)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* Please read the file COPYING, README and AUTHORS for more information.
*
* $Id: portab.h,v 1.10 2002/12/26 13:26:34 alex Exp $
*
* Portability functions and declarations (header for libngbportab).
*/
#ifndef __PORTAB__
#define __PORTAB__
#include "config.h"
/* compiler features */
#ifdef __GNUC__
# define PUNUSED(x) __attribute__ ((unused)) x
# define UNUSED __attribute__ ((unused))
#else
# define PUNUSED(x) x
# define UNUSED
#endif
#ifndef PARAMS
# if PROTOTYPES
# define PARAMS(args) args
# else
# define PARAMS(args) ()
# endif
#endif
/* keywords */
#define EXTERN extern
#define STATIC static
#define LOCAL static
#define CONST const
#define REGISTER register
/* datatypes */
#ifndef PROTOTYPES
# ifndef signed
# define signed
# endif
#endif
typedef void VOID;
typedef void POINTER;
typedef signed int INT;
typedef unsigned int UINT;
typedef signed long LONG;
typedef unsigned long ULONG;
typedef signed char INT8;
typedef unsigned char UINT8;
typedef signed short INT16;
typedef unsigned short UINT16;
typedef signed long INT32;
typedef unsigned long UINT32;
typedef double DOUBLE;
typedef float FLOAT;
typedef char CHAR;
typedef UINT8 BOOLEAN;
#undef TRUE
#define TRUE (BOOLEAN)1
#undef FALSE
#define FALSE (BOOLEAN)0
#undef NULL
#ifdef PROTOTYPES
# define NULL (VOID *)0
#else
# define NULL 0L
#endif
#undef GLOBAL
#define GLOBAL
/* SPLint */
#ifdef S_SPLINT_S
#include "splint.h"
#endif
/* target constants */
#ifndef TARGET_OS
#define TARGET_OS "unknown"
#endif
#ifndef TARGET_CPU
#define TARGET_CPU "unknown"
#endif
#ifndef TARGET_VENDOR
#define TARGET_VENDOR "unknown"
#endif
/* configure options */
#ifndef HAVE_socklen_t
#define socklen_t int /* u.a. fuer Mac OS X */
#endif
#if OS_UNIX_AUX
#define _POSIX_SOURCE /* muss unter A/UX definiert sein */
#endif
#ifndef HAVE_SNPRINTF
EXTERN INT snprintf( CHAR *str, size_t count, CONST CHAR *fmt, ... );
#endif
#ifndef HAVE_STRLCAT
EXTERN size_t strlcat( CHAR *dst, CONST CHAR *src, size_t size );
#endif
#ifndef HAVE_STRLCPY
EXTERN size_t strlcpy( CHAR *dst, CONST CHAR *src, size_t size );
#endif
#ifndef HAVE_VSNPRINTF
EXTERN INT vsnprintf( CHAR *str, size_t count, CONST CHAR *fmt, va_list args );
#endif
#endif
/* -eof- */
|