summaryrefslogtreecommitdiff
path: root/h/sysdep.h
blob: 368ba5a6928f8b1edd3211a9e82a57f8adfde513 (plain)
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
/* This file is part of the Project Athena Zephyr Notification System.
 * It contains system-dependent header code.
 *
 *	Created by:	Greg Hudson
 *
 *	$Id$
 *
 *	Copyright (c) 1988,1991 by the Massachusetts Institute of Technology.
 *	For copying and distribution information, see the file
 *	"mit-copyright.h". 
 */

#ifndef __SYSDEP_H__
#define __SYSDEP_H__

#include <config.h>
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include <time.h>
#include <signal.h>
#include <syslog.h>
#ifdef HAVE_UNISTD_H
#ifndef __USE_XOPEN_EXTENDED
#ifdef HAVE_GETSID
#define __USE_XOPEN_EXTENDED
#endif
#include <unistd.h>
#ifdef __USE_XOPEN_EXTENDED
#undef __USE_XOPEN_EXTENDED
#endif
#else
#include <unistd.h>
#endif
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/param.h>
#include <sys/time.h>

#ifdef STDC_HEADERS
# include <stdlib.h>
#else
# ifdef HAVE_MALLOC_H
#  include <malloc.h>
# else
char *malloc(), *realloc();
# endif
char *getenv(), *strerror(), *ctime(), *strcpy();
time_t time();
ZEPHYR_INT32 random();
#endif

#ifndef HAVE_RANDOM
#ifdef HAVE_LRAND48
#define random lrand48
#define srandom srand48
#else
#define random rand
#define srandom srand
#endif
#endif

#ifndef HAVE_STRERROR
extern char *sys_errlist[];
# define strerror(x) (sys_errlist[(x)])
#endif

/* Strings. */
#ifdef STDC_HEADERS
# include <string.h>
#else
# ifndef HAVE_STRCHR
#  define strchr index
#  define strrchr rindex
# endif
char *strchr(), *strrchr();
# ifndef HAVE_MEMCPY
#  define memcpy(d, s, n) bcopy ((s), (d), (n))
#  define memcmp bcmp
# endif
# ifndef HAVE_MEMMOVE
#  define memmove(d, s, n) bcopy ((s), (d), (n))
# endif
#endif

/* Exit status handling and wait(). */
#ifdef HAVE_SYS_WAIT_H
# include <sys/wait.h>
#endif
#ifndef WEXITSTATUS
# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
#endif
#ifndef WIFEXITED
# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
#endif

#ifdef HAVE_SYS_CDEFS_H
#include <sys/cdefs.h>
#endif

/* Because we have public header files (and our prototypes need to agree with
 * those header files), use __STDC__ to guess whether the compiler can handle
 * stdarg, const, and prototypes. */
#ifdef __STDC__
# include <stdarg.h>
# define VA_START(ap, last) va_start(ap, last)
# ifndef __P
#  define __P(x) x
# endif
#else
# include <varargs.h>
# define VA_START(ap, last) va_start(ap)
# define const
# ifndef __P
#  define __P(x) ()
# endif
#endif

/* openlog(). */
#ifdef LOG_AUTH
/* A decent syslog */
#define OPENLOG(str, opts, facility)	openlog(str, opts, facility)
#else
/* Probably a 4.2-type syslog */
#define OPENLOG(str, opts, facility)	openlog(str, opts)
#endif

#ifdef HAVE_FCNTL_H
# include <fcntl.h>
#endif

#ifdef HAVE_PATHS_H
# include <paths.h>
# define TEMP_DIRECTORY _PATH_VARTMP
#else
# define TEMP_DIRECTORY FOUND_TMP
#endif

#ifdef HAVE_UNISTD_H
# include <unistd.h>
#else
# ifdef HAVE_SYS_FILE_H
#  include <sys/file.h>
# endif
uid_t getuid();
char *ttyname();
#ifdef HAVE_GETHOSTID
ZEPHYR_INT32 gethostid();
#endif
#endif

#ifndef STDIN_FILENO
#define STDIN_FILENO 0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2
#endif

#include <termios.h>

/* Kerberos compatibility. */
#ifdef HAVE_KRB4
# include <krb.h>
# include <krb_err.h>
# include <des.h>
# ifndef HAVE_KRB_GET_ERR_TEXT
#  define krb_get_err_text(n)	krb_err_txt[n]
# endif
# ifndef HAVE_KRB_LOG
#  define krb_log		log
# endif
#endif

#ifdef HAVE_SYS_UTSNAME_H
# include <sys/utsname.h>
#endif

#ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
#endif

#ifdef HAVE_SYS_MSGBUF_H
#include <sys/msgbuf.h>
#endif

#ifndef MSG_BSIZE
#define MSG_BSIZE BUFSIZ
#endif

#endif /* __SYSDEP_H__ */