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
83typedef unsigned int  u_int32_t;
84#endif
85
86#ifndef _PTR_T
87# define _PTR_T
88typedef void	*ptr_t;
89#endif
90
91#ifndef _IOCTL_T
92# define _IOCTL_T
93typedef void	*ioctl_t;
94#endif
95
96#include <stdio.h>
97
98#ifndef HAVE_STRLCAT
99#define	strlcat libedit_strlcat
100size_t	strlcat(char *dst, const char *src, size_t size);
101#endif
102
103#ifndef HAVE_STRLCPY
104#define	strlcpy libedit_strlcpy
105size_t	strlcpy(char *dst, const char *src, size_t size);
106#endif
107
108#ifndef HAVE_FGETLN
109#define	fgetln libedit_fgetln
110char	*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)
117extern int tgetent(char *, const char *);
118extern int tgetflag(char *);
119extern int tgetnum(char *);
120extern int tputs(const char *, int, int (*)(int));
121extern char* tgoto(const char*, int, int);
122extern 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 */
133extern int	tgetent(const char *bp, char *name);
134extern int	tgetflag(const char *id);
135extern int	tgetnum(const char *id);
136extern char    *tgetstr(const char *id, char **area);
137extern char    *tgoto(const char *cap, int col, int row);
138extern int	tputs(const char *str, int affcnt, int (*putc)(int));
139extern char    *getenv(const char *);
140extern int	fprintf(FILE *, const char *, ...);
141extern int	sigsetmask(int);
142extern int	sigblock(int);
143extern int	fputc(int, FILE *);
144extern int	fgetc(FILE *);
145extern int	fflush(FILE *);
146extern int	tolower(int);
147extern int	toupper(int);
148extern int	errno, sys_nerr;
149extern char	*sys_errlist[];
150extern void	perror(const char *);
151#  include <string.h>
152#  define strerror(e)	sys_errlist[e]
153# endif
154# ifdef SABER
155extern ptr_t    memcpy(ptr_t, const ptr_t, size_t);
156extern ptr_t    memset(ptr_t, int, size_t);
157# endif
158extern char    *fgetline(FILE *, int *);
159#endif
160
161#endif /* _h_sys */
162