Annotation of ircnowd/src/portab/portab.h, Revision 1.1.1.1
1.1 tomglok 1: /*
2: * ngIRCd -- The Next Generation IRC Daemon
3: * Copyright (c)2001-2014 Alexander Barton (alex@barton.de) and Contributors.
4: *
5: * This program is free software; you can redistribute it and/or modify
6: * it under the terms of the GNU General Public License as published by
7: * the Free Software Foundation; either version 2 of the License, or
8: * (at your option) any later version.
9: * Please read the file COPYING, README and AUTHORS for more information.
10: */
11:
12: #ifndef __PORTAB__
13: #define __PORTAB__
14:
15: /**
16: * @file
17: * Portability functions and declarations (header)
18: */
19:
20: #include "config.h"
21:
22: #ifndef DEBUG
23: # define NDEBUG
24: #endif
25:
26: /* compiler features */
27:
28: #if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 7))
29: # define PUNUSED(x) __attribute__ ((unused)) x
30: # define UNUSED __attribute__ ((unused))
31: #else
32: # define PUNUSED(x) x
33: # define UNUSED
34: #endif
35:
36: #ifndef PARAMS
37: # if PROTOTYPES
38: # define PARAMS(args) args
39: # else
40: # define PARAMS(args) ()
41: # endif
42: #endif
43:
44: /* datatypes */
45:
46: #include <sys/types.h>
47:
48: #ifdef HAVE_STDDEF_H
49: # include <stddef.h>
50: #endif
51:
52: #ifdef HAVE_INTTYPES_H
53: # include <inttypes.h>
54: # define NGIRC_GOT_INTTYPES
55: #else
56: # ifdef HAVE_STDINT_H
57: # include <stdint.h>
58: # define NGIRC_GOT_INTTYPES
59: # endif
60: #endif
61:
62: #ifndef PROTOTYPES
63: # ifndef signed
64: # define signed
65: # endif
66: #endif
67:
68: typedef void POINTER;
69:
70: #ifdef NGIRC_GOT_INTTYPES
71: typedef uint8_t UINT8;
72: typedef uint16_t UINT16;
73: typedef uint32_t UINT32;
74: #else
75: typedef unsigned char UINT8;
76: typedef unsigned short UINT16;
77: typedef unsigned int UINT32;
78: #endif
79:
80: #ifdef HAVE_STDBOOL_H
81: # include <stdbool.h>
82: #else
83: typedef unsigned char bool;
84: # define true (bool)1
85: # define false (bool)0
86: #endif
87:
88: #ifndef NULL
89: # ifdef PROTOTYPES
90: # define NULL (void *)0
91: # else
92: # define NULL 0L
93: # endif
94: #endif
95:
96: #ifdef NeXT
97: # define S_IRUSR 0000400 /* read permission, owner */
98: # define S_IWUSR 0000200 /* write permission, owner */
99: # define S_IRGRP 0000040 /* read permission, group */
100: # define S_IROTH 0000004 /* read permission, other */
101: # define ssize_t int
102: #endif
103:
104: #undef GLOBAL
105: #ifdef GLOBAL_INIT
106: #define GLOBAL
107: #else
108: #define GLOBAL extern
109: #endif
110:
111: /* SPLint */
112:
113: #ifdef S_SPLINT_S
114: # include "splint.h"
115: #endif
116:
117: /* target constants */
118:
119: #ifndef HOST_OS
120: # define HOST_OS "unknown"
121: #endif
122:
123: #ifndef HOST_CPU
124: # define HOST_CPU "unknown"
125: #endif
126:
127: #ifndef HOST_VENDOR
128: # define HOST_VENDOR "unknown"
129: #endif
130:
131: #ifdef __HAIKU__
132: # define SINGLE_USER_OS
133: #endif
134:
135: /* configure options */
136:
137: #ifndef HAVE_socklen_t
138: typedef int socklen_t; /* for Mac OS X, amongst others */
139: #endif
140:
141: #ifndef HAVE_SNPRINTF
142: extern int snprintf PARAMS(( char *str, size_t count, const char *fmt, ... ));
143: #endif
144:
145: #ifndef HAVE_STRLCAT
146: extern size_t strlcat PARAMS(( char *dst, const char *src, size_t size ));
147: #endif
148:
149: #ifndef HAVE_STRLCPY
150: extern size_t strlcpy PARAMS(( char *dst, const char *src, size_t size ));
151: #endif
152:
153: #ifndef HAVE_STRDUP
154: extern char * strdup PARAMS(( const char *s ));
155: #endif
156:
157: #ifndef HAVE_STRNDUP
158: extern char * strndup PARAMS((const char *s, size_t maxlen));
159: #endif
160:
161: #ifndef HAVE_STRTOK_R
162: extern char * strtok_r PARAMS((char *str, const char *delim, char **saveptr));
163: #endif
164:
165: #ifndef HAVE_VSNPRINTF
166: #include <stdarg.h>
167: extern int vsnprintf PARAMS(( char *str, size_t count, const char *fmt, va_list args ));
168: #endif
169:
170: #ifndef HAVE_GAI_STRERROR
171: # define gai_strerror(r) "unknown error"
172: #endif
173:
174: #ifndef PACKAGE_NAME
175: # define PACKAGE_NAME PACKAGE
176: #endif
177:
178: #ifndef PACKAGE_VERSION
179: # define PACKAGE_VERSION VERSION
180: #endif
181:
182: #ifndef SYSCONFDIR
183: # define SYSCONFDIR "/etc"
184: #endif
185:
186: #endif
187:
188: /* -eof- */
CVSweb