Commit | Line | Data |
---|---|---|
970ed795 EL |
1 | /* $NetBSD: sys.h,v 1.13 2009/12/30 22:37:40 christos Exp $ */ |
2 | ||
3 | /*- | |
4 | * Copyright (c) 1992, 1993 | |
5 | * The Regents of the University of California. All rights reserved. | |
6 | * | |
7 | * This code is derived from software contributed to Berkeley by | |
8 | * Christos Zoulas of Cornell University. | |
9 | * | |
10 | * Redistribution and use in source and binary forms, with or without | |
11 | * modification, are permitted provided that the following conditions | |
12 | * are met: | |
13 | * 1. Redistributions of source code must retain the above copyright | |
14 | * notice, this list of conditions and the following disclaimer. | |
15 | * 2. Redistributions in binary form must reproduce the above copyright | |
16 | * notice, this list of conditions and the following disclaimer in the | |
17 | * documentation and/or other materials provided with the distribution. | |
18 | * 3. Neither the name of the University nor the names of its contributors | |
19 | * may be used to endorse or promote products derived from this software | |
20 | * without specific prior written permission. | |
21 | * | |
22 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |
23 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
25 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
28 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
29 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
31 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
32 | * SUCH DAMAGE. | |
33 | * | |
34 | * @(#)sys.h 8.1 (Berkeley) 6/4/93 | |
35 | */ | |
36 | ||
37 | /* | |
38 | * sys.h: Put all the stupid compiler and system dependencies here... | |
39 | */ | |
40 | #ifndef _h_sys | |
41 | #define _h_sys | |
42 | ||
43 | #ifdef HAVE_SYS_CDEFS_H | |
44 | #include <sys/cdefs.h> | |
45 | #endif | |
46 | ||
47 | #if !defined(__attribute__) && (defined(__cplusplus) || !defined(__GNUC__) || __GNUC__ == 2 && __GNUC_MINOR__ < 8) | |
48 | # define __attribute__(A) | |
49 | #endif | |
50 | ||
51 | #ifndef _DIAGASSERT | |
52 | # define _DIAGASSERT(x) | |
53 | #endif | |
54 | ||
55 | #ifndef __BEGIN_DECLS | |
56 | # ifdef __cplusplus | |
57 | # define __BEGIN_DECLS extern "C" { | |
58 | # define __END_DECLS } | |
59 | # else | |
60 | # define __BEGIN_DECLS | |
61 | # define __END_DECLS | |
62 | # endif | |
63 | #endif | |
64 | ||
65 | #ifndef public | |
66 | # define public /* Externally visible functions/variables */ | |
67 | #endif | |
68 | ||
69 | #ifndef private | |
70 | # define private static /* Always hidden internals */ | |
71 | #endif | |
72 | ||
73 | #ifndef protected | |
74 | # define protected /* Redefined from elsewhere to "static" */ | |
75 | /* When we want to hide everything */ | |
76 | #endif | |
77 | ||
78 | #ifndef __arraycount | |
79 | # define __arraycount(a) (sizeof(a) / sizeof(*(a))) | |
80 | #endif | |
81 | ||
82 | #ifndef HAVE_U_INT32_T | |
83 | typedef unsigned int u_int32_t; | |
84 | #endif | |
85 | ||
86 | #ifndef _PTR_T | |
87 | # define _PTR_T | |
88 | typedef void *ptr_t; | |
89 | #endif | |
90 | ||
91 | #ifndef _IOCTL_T | |
92 | # define _IOCTL_T | |
93 | typedef void *ioctl_t; | |
94 | #endif | |
95 | ||
96 | #include <stdio.h> | |
97 | ||
98 | #ifndef HAVE_STRLCAT | |
99 | #define strlcat libedit_strlcat | |
100 | size_t strlcat(char *dst, const char *src, size_t size); | |
101 | #endif | |
102 | ||
103 | #ifndef HAVE_STRLCPY | |
104 | #define strlcpy libedit_strlcpy | |
105 | size_t strlcpy(char *dst, const char *src, size_t size); | |
106 | #endif | |
107 | ||
108 | #ifndef HAVE_FGETLN | |
109 | #define fgetln libedit_fgetln | |
110 | char *fgetln(FILE *fp, size_t *len); | |
111 | #endif | |
112 | ||
113 | #define REGEX /* Use POSIX.2 regular expression functions */ | |
114 | #undef REGEXP /* Use UNIX V8 regular expression functions */ | |
115 | ||
116 | #if defined(__sun) | |
117 | extern int tgetent(char *, const char *); | |
118 | extern int tgetflag(char *); | |
119 | extern int tgetnum(char *); | |
120 | extern int tputs(const char *, int, int (*)(int)); | |
121 | extern char* tgoto(const char*, int, int); | |
122 | extern char* tgetstr(char*, char**); | |
123 | #endif | |
124 | ||
125 | #ifdef notdef | |
126 | # undef REGEX | |
127 | # undef REGEXP | |
128 | # include <malloc.h> | |
129 | # ifdef __GNUC__ | |
130 | /* | |
131 | * Broken hdrs. | |
132 | */ | |
133 | extern int tgetent(const char *bp, char *name); | |
134 | extern int tgetflag(const char *id); | |
135 | extern int tgetnum(const char *id); | |
136 | extern char *tgetstr(const char *id, char **area); | |
137 | extern char *tgoto(const char *cap, int col, int row); | |
138 | extern int tputs(const char *str, int affcnt, int (*putc)(int)); | |
139 | extern char *getenv(const char *); | |
140 | extern int fprintf(FILE *, const char *, ...); | |
141 | extern int sigsetmask(int); | |
142 | extern int sigblock(int); | |
143 | extern int fputc(int, FILE *); | |
144 | extern int fgetc(FILE *); | |
145 | extern int fflush(FILE *); | |
146 | extern int tolower(int); | |
147 | extern int toupper(int); | |
148 | extern int errno, sys_nerr; | |
149 | extern char *sys_errlist[]; | |
150 | extern void perror(const char *); | |
151 | # include <string.h> | |
152 | # define strerror(e) sys_errlist[e] | |
153 | # endif | |
154 | # ifdef SABER | |
155 | extern ptr_t memcpy(ptr_t, const ptr_t, size_t); | |
156 | extern ptr_t memset(ptr_t, int, size_t); | |
157 | # endif | |
158 | extern char *fgetline(FILE *, int *); | |
159 | #endif | |
160 | ||
161 | #endif /* _h_sys */ |