externs2.h revision 91586
1101776Stjr/* $NetBSD: externs2.h,v 1.7 2001/05/28 12:40:38 lukem Exp $ */
2129583Stjr
3101776Stjr/*
4101776Stjr * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
5227753Stheraven * Copyright (c) 1994, 1995 Jochen Pohl
6227753Stheraven * All Rights Reserved.
7227753Stheraven *
8227753Stheraven * Redistribution and use in source and binary forms, with or without
9227753Stheraven * modification, are permitted provided that the following conditions
10101776Stjr * are met:
11101776Stjr * 1. Redistributions of source code must retain the above copyright
12101776Stjr *    notice, this list of conditions and the following disclaimer.
13101776Stjr * 2. Redistributions in binary form must reproduce the above copyright
14101776Stjr *    notice, this list of conditions and the following disclaimer in the
15101776Stjr *    documentation and/or other materials provided with the distribution.
16101776Stjr * 3. All advertising materials mentioning features or use of this software
17101776Stjr *    must display the following acknowledgement:
18101776Stjr *      This product includes software developed by Jochen Pohl for
19101776Stjr *	The NetBSD Project.
20101776Stjr * 4. The name of the author may not be used to endorse or promote products
21101776Stjr *    derived from this software without specific prior written permission.
22101776Stjr *
23101776Stjr * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
24101776Stjr * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
25101776Stjr * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
26101776Stjr * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
27101776Stjr * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
28101776Stjr * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29101776Stjr * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30101776Stjr * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31101776Stjr * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
32101776Stjr * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33101776Stjr */
34101776Stjr
35101776Stjr/*
36101776Stjr * main.c
37149313Sstefanf */
38101776Stjrextern	int	xflag;
39103523Stjrextern	int	uflag;
40101776Stjrextern	int	Cflag;
41101776Stjrextern	const	char *libname;
42101776Stjrextern	int	sflag;
43101776Stjrextern	int	tflag;
44132442Stjrextern	int	Hflag;
45227753Stheravenextern	int	hflag;
46101776Stjrextern	int	Fflag;
47103782Stjr
48103782Stjr
49103782Stjr/*
50101776Stjr * hash.c
51227753Stheraven */
52101776Stjrextern	void	_inithash(hte_t ***);
53103523Stjrextern	hte_t	*_hsearch(hte_t **, const char *, int);
54103523Stjrextern	void	_forall(hte_t **, void (*)(hte_t *));
55227753Stheravenextern	void	_destroyhash(hte_t **);
56101776Stjr
57103523Stjr#define	inithash()	_inithash(NULL);
58103782Stjr#define	hsearch(a, b)	_hsearch(NULL, (a), (b))
59227753Stheraven#define	forall(a)	_forall(NULL, (a))
60105234Stjr
61103782Stjr/*
62105234Stjr * read.c
63103523Stjr */
64103677Stjrextern	const	char **fnames;
65103782Stjrextern	type_t	**tlst;
66103523Stjr
67103523Stjrextern	void	readfile(const char *);
68103782Stjrextern	void	mkstatic(hte_t *);
69103677Stjr
70103782Stjr/*
71103782Stjr * mem2.c
72103782Stjr */
73103782Stjrextern	void	initmem(void);
74227753Stheravenextern	void	*xalloc(size_t);
75103782Stjr
76103782Stjr/*
77227753Stheraven * chk.c
78103782Stjr */
79320942Skibextern	void	inittyp(void);
80103782Stjrextern	void	mainused(void);
81227753Stheravenextern	void	chkname(hte_t *);
82320942Skib
83103782Stjr/*
84103782Stjr * msg.c
85101776Stjr */
86227753Stheravenextern	void	msg(int, ...);
87227753Stheravenextern	const	char *mkpos(pos_t *);
88227753Stheraven
89227753Stheraven/*
90227753Stheraven * emit2.c
91 */
92extern	void	outlib(const char *);
93extern	int	addoutfile(short);
94