diff options
| author | Rodney W. Grimes <rgrimes@FreeBSD.org> | 1994-05-24 09:57:34 +0000 | 
|---|---|---|
| committer | Rodney W. Grimes <rgrimes@FreeBSD.org> | 1994-05-24 09:57:34 +0000 | 
| commit | 59deaec541ae8baaa58daf6c5a2196ea7de180c3 (patch) | |
| tree | 09f0848dc45f73d9ec271a31af87eaf035d17dd2 | |
| parent | 628b2ef68cdc04f2b5d5ec381ab5bc16f16bb7f6 (diff) | |
Notes
66 files changed, 6842 insertions, 0 deletions
| diff --git a/include/Makefile b/include/Makefile new file mode 100644 index 000000000000..998d458c1f41 --- /dev/null +++ b/include/Makefile @@ -0,0 +1,95 @@ +#	@(#)Makefile	8.2 (Berkeley) 1/4/94 +# +# Doing a make install builds /usr/include +# +# The ``rm -rf''s used below are safe because rm doesn't follow symbolic +# links. +# +all clean cleandir depend lint tags: + +FILES=	a.out.h ar.h assert.h bitstring.h ctype.h db.h dirent.h disktab.h \ +	err.h fnmatch.h fstab.h fts.h glob.h grp.h kvm.h limits.h locale.h \ +	math.h memory.h mp.h mpool.h ndbm.h netdb.h nlist.h paths.h pwd.h \ +	ranlib.h regex.h regexp.h resolv.h rune.h runetype.h setjmp.h \ +	sgtty.h signal.h stab.h stddef.h stdio.h stdlib.h string.h strings.h \ +	struct.h sysexits.h tar.h time.h ttyent.h tzfile.h unistd.h utime.h \ +	utmp.h vis.h + +MFILES=	float.h frame.h stdarg.h varargs.h +LFILES=	errno.h fcntl.h syslog.h termios.h + +DIRS=arpa protocols +LDIRS=	net netccitt netinet netiso netns nfs sys ufs vm + +NOOBJ=	noobj + +# Define SHARED to indicate whether you want symbolic links to the system +# source (``symlinks''), or a separate copy (``copies''); (latter useful +# in environments where it's not possible to keep /sys publicly readable) +# SHARED=	copies +SHARED=	symlinks + +install: ${SHARED} +	@echo installing ${FILES} +	@-for i in ${FILES}; do \ +		cmp -s $$i ${DESTDIR}/usr/include/$$i > /dev/null 2>&1 || \ +		    install -c -o ${BINOWN} -g ${BINGRP} -m 444 $$i \ +		    ${DESTDIR}/usr/include/$$i; \ +	done +	@echo installing ${DIRS} +	@-for i in ${DIRS}; do \ +		if [ ! -d ${DESTDIR}/usr/include/$$i ]; \ +		then \ +			mkdir ${DESTDIR}/usr/include/$$i; \ +		fi; \ +		chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include/$$i; \ +		chmod 755 ${DESTDIR}/usr/include/$$i; \ +		(cd $$i; for j in *.[ih]; do \ +			cmp -s $$j ${DESTDIR}/usr/include/$$i/$$j > \ +			    /dev/null 2>&1 || \ +			    install -c -o ${BINOWN} -g ${BINGRP} -m 444 $$j \ +			    ${DESTDIR}/usr/include/$$i/$$j; \ +		done); \ +	done +	@echo installing ${LFILES} +	@-for i in ${LFILES}; do \ +		rm -f ${DESTDIR}/usr/include/$$i; \ +		ln -s sys/$$i ${DESTDIR}/usr/include/$$i; \ +		chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include/$$i; \ +	done +	@echo installing ${MFILES} +	@-for i in ${MFILES}; do \ +		rm -f ${DESTDIR}/usr/include/$$i; \ +		ln -s machine/$$i ${DESTDIR}/usr/include/$$i; \ +		chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include/$$i; \ +	done + +copies: +	@echo copies: ${LDIRS} +	@-for i in ${LDIRS}; do \ +		rm -rf ${DESTDIR}/usr/include/$$i; \ +		cd /sys; \ +		tar Hcf - $$i/*.h | (cd ${DESTDIR}/usr/include; tar xpfB -); \ +	done +	rm -f ${DESTDIR}/usr/include/machine +	mkdir ${DESTDIR}/usr/include/machine +	cd /sys/${MACHINE}/include && \ +	    tar Hcf - *.h | (cd ${DESTDIR}/usr/include/machine; tar xpfB -); +	rm -f ${DESTDIR}/usr/include/X11 +	mkdir ${DESTDIR}/usr/include/X11 +	cd /usr/X11/include/X11 && \ +	    tar Hcf - *.h | (cd ${DESTDIR}/usr/include/X11; tar xpfB -); + +symlinks: +	@echo symlinks: ${LDIRS} +	@for i in ${LDIRS}; do \ +		rm -rf ${DESTDIR}/usr/include/$$i; \ +		ln -s /sys/$$i ${DESTDIR}/usr/include/$$i; \ +		chown ${BINOWN}.${BINGRP} ${DESTDIR}/usr/include/$$i; \ +	done +	rm -f ${DESTDIR}/usr/include/machine +	ln -s ${DESTDIR}/sys/${MACHINE}/include ${DESTDIR}/usr/include/machine +	rm -f ${DESTDIR}/usr/include/X11 +	ln -s ${DESTDIR}/usr/X11/include/X11 ${DESTDIR}/usr/include/X11 + +.include <bsd.prog.mk> diff --git a/include/_ctype.h b/include/_ctype.h new file mode 100644 index 000000000000..a37fc1cb1192 --- /dev/null +++ b/include/_ctype.h @@ -0,0 +1,147 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * This code is derived from software contributed to Berkeley by + * Paul Borman at Krystal Technologies. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)ctype.h	8.4 (Berkeley) 1/21/94 + */ + +#ifndef	_CTYPE_H_ +#define _CTYPE_H_ + +#include <runetype.h> + +#define	_A	0x00000100L		/* Alpha */ +#define	_C	0x00000200L		/* Control */ +#define	_D	0x00000400L		/* Digit */ +#define	_G	0x00000800L		/* Graph */ +#define	_L	0x00001000L		/* Lower */ +#define	_P	0x00002000L		/* Punct */ +#define	_S	0x00004000L		/* Space */ +#define	_U	0x00008000L		/* Upper */ +#define	_X	0x00010000L		/* X digit */ +#define	_B	0x00020000L		/* Blank */ +#define	_R	0x00040000L		/* Print */ +#define	_I	0x00080000L		/* Ideogram */ +#define	_T	0x00100000L		/* Special */ +#define	_Q	0x00200000L		/* Phonogram */ + +#define isalnum(c)      __istype((c), (_A|_D)) +#define isalpha(c)      __istype((c),     _A) +#define iscntrl(c)      __istype((c),     _C) +#define isdigit(c)      __isctype((c),    _D)	/* ANSI -- locale independent */ +#define isgraph(c)      __istype((c),     _G) +#define islower(c)      __istype((c),     _L) +#define isprint(c)      __istype((c),     _R) +#define ispunct(c)      __istype((c),     _P) +#define isspace(c)      __istype((c),     _S) +#define isupper(c)      __istype((c),     _U) +#define isxdigit(c)     __isctype((c),    _X)	/* ANSI -- locale independent */ + +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +#define	isascii(c)	((c & ~0x7F) == 0) +#define toascii(c)	((c) & 0x7F) +#define	digittoint(c)	__istype((c), 0xFF) +#define	isideogram(c)	__istype((c), _I) +#define	isphonogram(c)	__istype((c), _T) +#define	isspecial(c)	__istype((c), _Q) +#define isblank(c)	__istype((c), _B) +#define	isrune(c)	__istype((c),  0xFFFFFF00L) +#define	isnumber(c)	__istype((c), _D) +#define	ishexnumber(c)	__istype((c), _X) +#endif + +/* See comments in <machine/ansi.h> about _BSD_RUNE_T_. */ +__BEGIN_DECLS +unsigned long	___runetype __P((_BSD_RUNE_T_)); +_BSD_RUNE_T_	___tolower __P((_BSD_RUNE_T_)); +_BSD_RUNE_T_	___toupper __P((_BSD_RUNE_T_)); +__END_DECLS + +/* + * If your compiler supports prototypes and inline functions, + * #define _USE_CTYPE_INLINE_.  Otherwise, use the C library + * functions. + */ +#if !defined(_USE_CTYPE_CLIBRARY_) && defined(__GNUC__) || defined(__cplusplus) +#define	_USE_CTYPE_INLINE_	1 +#endif + +#if defined(_USE_CTYPE_INLINE_) +static __inline int +__istype(_BSD_RUNE_T_ c, unsigned long f) +{ +	return((((c & _CRMASK) ? ___runetype(c) : +	    _CurrentRuneLocale->runetype[c]) & f) ? 1 : 0); +} + +static __inline int +__isctype(_BSD_RUNE_T_ c, unsigned long f) +{ +	return((((c & _CRMASK) ? 0 : +	    _DefaultRuneLocale.runetype[c]) & f) ? 1 : 0); +} + +/* _ANSI_LIBRARY is defined by lib/libc/gen/isctype.c. */ +#if !defined(_ANSI_LIBRARY) +static __inline _BSD_RUNE_T_ +toupper(_BSD_RUNE_T_ c) +{ +	return((c & _CRMASK) ? +	    ___toupper(c) : _CurrentRuneLocale->mapupper[c]); +} + +static __inline _BSD_RUNE_T_ +tolower(_BSD_RUNE_T_ c) +{ +	return((c & _CRMASK) ? +	    ___tolower(c) : _CurrentRuneLocale->maplower[c]); +} +#endif /* !_ANSI_LIBRARY */ + +#else /* !_USE_CTYPE_INLINE_ */ + +__BEGIN_DECLS +int		__istype __P((_BSD_RUNE_T_, unsigned long)); +int		__isctype __P((_BSD_RUNE_T_, unsigned long)); +_BSD_RUNE_T_	toupper __P((_BSD_RUNE_T_)); +_BSD_RUNE_T_	tolower __P((_BSD_RUNE_T_)); +__END_DECLS +#endif /* _USE_CTYPE_INLINE_ */ + +#endif /* !_CTYPE_H_ */ diff --git a/include/a.out.h b/include/a.out.h new file mode 100644 index 000000000000..3b242a15d930 --- /dev/null +++ b/include/a.out.h @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 1991, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)a.out.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_AOUT_H_ +#define	_AOUT_H_ + +#include <sys/types.h> +#include <machine/exec.h> +#include <machine/reloc.h> + +#define _AOUT_INCLUDE_ +#include <nlist.h> + +#endif /* !_AOUT_H_ */ diff --git a/include/ar.h b/include/ar.h new file mode 100644 index 000000000000..e04874fcbda3 --- /dev/null +++ b/include/ar.h @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 1991, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * This code is derived from software contributed to Berkeley by + * Hugh Smith at The University of Guelph. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)ar.h	8.2 (Berkeley) 1/21/94 + */ + +#ifndef _AR_H_ +#define	_AR_H_ + +/* Pre-4BSD archives had these magic numbers in them. */ +#define	OARMAG1	0177555 +#define	OARMAG2	0177545 + +#define	ARMAG		"!<arch>\n"	/* ar "magic number" */ +#define	SARMAG		8		/* strlen(ARMAG); */ + +#define	AR_EFMT1	"#1/"		/* extended format #1 */ + +struct ar_hdr { +	char ar_name[16];		/* name */ +	char ar_date[12];		/* modification time */ +	char ar_uid[6];			/* user id */ +	char ar_gid[6];			/* group id */ +	char ar_mode[8];		/* octal file permissions */ +	char ar_size[10];		/* size in bytes */ +#define	ARFMAG	"`\n" +	char ar_fmag[2];		/* consistency check */ +}; + +#endif /* !_AR_H_ */ diff --git a/include/arpa/ftp.h b/include/arpa/ftp.h new file mode 100644 index 000000000000..64532b9e2505 --- /dev/null +++ b/include/arpa/ftp.h @@ -0,0 +1,109 @@ +/* + * Copyright (c) 1983, 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)ftp.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _FTP_H_ +#define	_FTP_H_ + +/* Definitions for FTP; see RFC-765. */ + +/* + * Reply codes. + */ +#define PRELIM		1	/* positive preliminary */ +#define COMPLETE	2	/* positive completion */ +#define CONTINUE	3	/* positive intermediate */ +#define TRANSIENT	4	/* transient negative completion */ +#define ERROR		5	/* permanent negative completion */ + +/* + * Type codes + */ +#define	TYPE_A		1	/* ASCII */ +#define	TYPE_E		2	/* EBCDIC */ +#define	TYPE_I		3	/* image */ +#define	TYPE_L		4	/* local byte size */ + +#ifdef FTP_NAMES +char *typenames[] =  {"0", "ASCII", "EBCDIC", "Image", "Local" }; +#endif + +/* + * Form codes + */ +#define	FORM_N		1	/* non-print */ +#define	FORM_T		2	/* telnet format effectors */ +#define	FORM_C		3	/* carriage control (ASA) */ +#ifdef FTP_NAMES +char *formnames[] =  {"0", "Nonprint", "Telnet", "Carriage-control" }; +#endif + +/* + * Structure codes + */ +#define	STRU_F		1	/* file (no record structure) */ +#define	STRU_R		2	/* record structure */ +#define	STRU_P		3	/* page structure */ +#ifdef FTP_NAMES +char *strunames[] =  {"0", "File", "Record", "Page" }; +#endif + +/* + * Mode types + */ +#define	MODE_S		1	/* stream */ +#define	MODE_B		2	/* block */ +#define	MODE_C		3	/* compressed */ +#ifdef FTP_NAMES +char *modenames[] =  {"0", "Stream", "Block", "Compressed" }; +#endif + +/* + * Record Tokens + */ +#define	REC_ESC		'\377'	/* Record-mode Escape */ +#define	REC_EOR		'\001'	/* Record-mode End-of-Record */ +#define REC_EOF		'\002'	/* Record-mode End-of-File */ + +/* + * Block Header + */ +#define	BLK_EOR		0x80	/* Block is End-of-Record */ +#define	BLK_EOF		0x40	/* Block is End-of-File */ +#define BLK_ERRORS	0x20	/* Block is suspected of containing errors */ +#define	BLK_RESTART	0x10	/* Block is Restart Marker */ + +#define	BLK_BYTECOUNT	2	/* Bytes in this block */ + +#endif /* !_FTP_H_ */ diff --git a/include/arpa/inet.h b/include/arpa/inet.h new file mode 100644 index 000000000000..a23148464282 --- /dev/null +++ b/include/arpa/inet.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) 1983, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)inet.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _INET_H_ +#define	_INET_H_ + +/* External definitions for functions in inet(3) */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +unsigned long	 inet_addr __P((const char *)); +int		 inet_aton __P((const char *, struct in_addr *)); +unsigned long	 inet_lnaof __P((struct in_addr)); +struct in_addr	 inet_makeaddr __P((u_long , u_long)); +unsigned long	 inet_netof __P((struct in_addr)); +unsigned long	 inet_network __P((const char *)); +char		*inet_ntoa __P((struct in_addr)); +__END_DECLS + +#endif /* !_INET_H_ */ diff --git a/include/arpa/nameser.h b/include/arpa/nameser.h new file mode 100644 index 000000000000..bef010c53dfe --- /dev/null +++ b/include/arpa/nameser.h @@ -0,0 +1,298 @@ +/* + * Copyright (c) 1983, 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *      @(#)nameser.h	8.2 (Berkeley) 2/16/94 + * - + * Portions Copyright (c) 1993 by Digital Equipment Corporation. + *  + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies, and that + * the name of Digital Equipment Corporation not be used in advertising or + * publicity pertaining to distribution of the document or software without + * specific, written prior permission. + *  + * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT + * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * - + * --Copyright-- + */ + +#ifndef _NAMESER_H_ +#define	_NAMESER_H_ + +#include <sys/types.h> + +/* + * Define constants based on rfc883 + */ +#define PACKETSZ	512		/* maximum packet size */ +#define MAXDNAME	256		/* maximum domain name */ +#define MAXCDNAME	255		/* maximum compressed domain name */ +#define MAXLABEL	63		/* maximum length of domain label */ +	/* Number of bytes of fixed size data in query structure */ +#define QFIXEDSZ	4 +	/* number of bytes of fixed size data in resource record */ +#define RRFIXEDSZ	10 + +/* + * Internet nameserver port number + */ +#define NAMESERVER_PORT	53 + +/* + * Currently defined opcodes + */ +#define QUERY		0x0		/* standard query */ +#define IQUERY		0x1		/* inverse query */ +#define STATUS		0x2		/* nameserver status query */ +/*#define xxx		0x3		/* 0x3 reserved */ +	/* non standard - supports ALLOW_UPDATES stuff from Mike Schwartz */ +#define UPDATEA		0x9		/* add resource record */ +#define UPDATED		0xa		/* delete a specific resource record */ +#define UPDATEDA	0xb		/* delete all named resource record */ +#define UPDATEM		0xc		/* modify a specific resource record */ +#define UPDATEMA	0xd		/* modify all named resource record */ + +#define ZONEINIT	0xe		/* initial zone transfer */ +#define ZONEREF		0xf		/* incremental zone referesh */ + +/* + * Currently defined response codes + */ +#define NOERROR		0		/* no error */ +#define FORMERR		1		/* format error */ +#define SERVFAIL	2		/* server failure */ +#define NXDOMAIN	3		/* non existent domain */ +#define NOTIMP		4		/* not implemented */ +#define REFUSED		5		/* query refused */ +	/* non standard */ +#define NOCHANGE	0xf		/* update failed to change db */ + +/* + * Type values for resources and queries + */ +#define T_A		1		/* host address */ +#define T_NS		2		/* authoritative server */ +#define T_MD		3		/* mail destination */ +#define T_MF		4		/* mail forwarder */ +#define T_CNAME		5		/* connonical name */ +#define T_SOA		6		/* start of authority zone */ +#define T_MB		7		/* mailbox domain name */ +#define T_MG		8		/* mail group member */ +#define T_MR		9		/* mail rename name */ +#define T_NULL		10		/* null resource record */ +#define T_WKS		11		/* well known service */ +#define T_PTR		12		/* domain name pointer */ +#define T_HINFO		13		/* host information */ +#define T_MINFO		14		/* mailbox information */ +#define T_MX		15		/* mail routing information */ +#define T_TXT		16		/* text strings */ +#define	T_RP		17		/* responsible person */ +#define	T_AFSDB		18		/* AFS cell database */ +#define	T_NSAP		22		/* NSAP address */ +#define	T_NSAP_PTR	23		/* reverse lookup for NSAP */ +	/* non standard */ +#define T_UINFO		100		/* user (finger) information */ +#define T_UID		101		/* user ID */ +#define T_GID		102		/* group ID */ +#define T_UNSPEC	103		/* Unspecified format (binary data) */ +	/* Query type values which do not appear in resource records */ +#define T_AXFR		252		/* transfer zone of authority */ +#define T_MAILB		253		/* transfer mailbox records */ +#define T_MAILA		254		/* transfer mail agent records */ +#define T_ANY		255		/* wildcard match */ + +/* + * Values for class field + */ + +#define C_IN		1		/* the arpa internet */ +#define C_CHAOS		3		/* for chaos net (MIT) */ +#define C_HS		4		/* for Hesiod name server (MIT) (XXX) */ +	/* Query class values which do not appear in resource records */ +#define C_ANY		255		/* wildcard match */ + +/* + * Status return codes for T_UNSPEC conversion routines + */ +#define CONV_SUCCESS 0 +#define CONV_OVERFLOW -1 +#define CONV_BADFMT -2 +#define CONV_BADCKSUM -3 +#define CONV_BADBUFLEN -4 + +#ifndef BYTE_ORDER +#define	LITTLE_ENDIAN	1234	/* least-significant byte first (vax, pc) */ +#define	BIG_ENDIAN	4321	/* most-significant byte first (IBM, net) */ +#define	PDP_ENDIAN	3412	/* LSB first in word, MSW first in long (pdp)*/ + +#if defined(vax) || defined(ns32000) || defined(sun386) || defined(i386) || \ +    defined(MIPSEL) || defined(_MIPSEL) || defined(BIT_ZERO_ON_RIGHT) || \ +    defined(__alpha__) || defined(__alpha) +#define BYTE_ORDER	LITTLE_ENDIAN +#endif + +#if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \ +    defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \ +    defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || \ +    defined(apollo) || defined(hp9000) || defined(hp9000s300) || \ +    defined (BIT_ZERO_ON_LEFT) +#define BYTE_ORDER	BIG_ENDIAN +#endif +#endif /* BYTE_ORDER */ + +#if !defined(BYTE_ORDER) || \ +    (BYTE_ORDER != BIG_ENDIAN && BYTE_ORDER != LITTLE_ENDIAN && \ +    BYTE_ORDER != PDP_ENDIAN) +	/* you must determine what the correct bit order is for +	 * your compiler - the next line is an intentional error +	 * which will force your compiles to bomb until you fix +	 * the above macros. +	 */ +  #error "Undefined or invalid BYTE_ORDER"; +#endif + +/* + * Structure for query header.  The order of the fields is machine- and + * compiler-dependent, depending on the byte/bit order and the layout + * of bit fields.  We use bit fields only in int variables, as this + * is all ANSI requires.  This requires a somewhat confusing rearrangement. + */ + +typedef struct { +	u_int16_t id;		/* query identification number */ +#if BYTE_ORDER == BIG_ENDIAN +			/* fields in third byte */ +	u_int	qr:1;		/* response flag */ +	u_int	opcode:4;	/* purpose of message */ +	u_int	aa:1;		/* authoritive answer */ +	u_int	tc:1;		/* truncated message */ +	u_int	rd:1;		/* recursion desired */ +			/* fields in fourth byte */ +	u_int	ra:1;		/* recursion available */ +	u_int	pr:1;		/* primary server required (non standard) */ +	u_int	unused:2;	/* unused bits */ +	u_int	rcode:4;	/* response code */ +#endif +#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN +			/* fields in third byte */ +	u_int	rd:1;		/* recursion desired */ +	u_int	tc:1;		/* truncated message */ +	u_int	aa:1;		/* authoritive answer */ +	u_int	opcode:4;	/* purpose of message */ +	u_int	qr:1;		/* response flag */ +			/* fields in fourth byte */ +	u_int	rcode:4;	/* response code */ +	u_int	unused:2;	/* unused bits */ +	u_int	pr:1;		/* primary server required (non standard) */ +	u_int	ra:1;		/* recursion available */ +#endif +			/* remaining bytes */ +	u_int16_t qdcount;	/* number of question entries */ +	u_int16_t ancount;	/* number of answer entries */ +	u_int16_t nscount;	/* number of authority entries */ +	u_int16_t arcount;	/* number of resource entries */ +} HEADER; + +/* + * Defines for handling compressed domain names + */ +#define INDIR_MASK	0xc0 + +/* + * Structure for passing resource records around. + */ +struct rrec { +	int16_t	r_zone;			/* zone number */ +	int16_t	r_class;		/* class number */ +	int16_t	r_type;			/* type number */ +	u_int32_t	r_ttl;			/* time to live */ +	int	r_size;			/* size of data area */ +	char	*r_data;		/* pointer to data */ +}; + +extern	u_int16_t	_getshort(); +extern	u_int32_t	_getlong(); + +/* + * Inline versions of get/put short/long.  Pointer is advanced. + * We also assume that a "u_int16_t" holds 2 "chars" + * and that a "u_int32_t" holds 4 "chars". + * + * These macros demonstrate the property of C whereby it can be + * portable or it can be elegant but never both. + */ +#define GETSHORT(s, cp) { \ +	register u_char *t_cp = (u_char *)(cp); \ +	(s) = ((u_int16_t)t_cp[0] << 8) | (u_int16_t)t_cp[1]; \ +	(cp) += 2; \ +} + +#define GETLONG(l, cp) { \ +	register u_char *t_cp = (u_char *)(cp); \ +	(l) = (((u_int32_t)t_cp[0]) << 24) \ +	    | (((u_int32_t)t_cp[1]) << 16) \ +	    | (((u_int32_t)t_cp[2]) << 8) \ +	    | (((u_int32_t)t_cp[3])); \ +	(cp) += 4; \ +} + +#define PUTSHORT(s, cp) { \ +	register u_int16_t t_s = (u_int16_t)(s); \ +	register u_char *t_cp = (u_char *)(cp); \ +	*t_cp++ = t_s >> 8; \ +	*t_cp   = t_s; \ +	(cp) += 2; \ +} + +/* + * Warning: PUTLONG --no-longer-- destroys its first argument.  if you + * were depending on this "feature", you will lose. + */ +#define PUTLONG(l, cp) { \ +	register u_int32_t t_l = (u_int32_t)(l); \ +	register u_char *t_cp = (u_char *)(cp); \ +	*t_cp++ = t_l >> 24; \ +	*t_cp++ = t_l >> 16; \ +	*t_cp++ = t_l >> 8; \ +	*t_cp   = t_l; \ +	(cp) += 4; \ +} + +#endif /* !_NAMESER_H_ */ diff --git a/include/arpa/telnet.h b/include/arpa/telnet.h new file mode 100644 index 000000000000..10155a84a87c --- /dev/null +++ b/include/arpa/telnet.h @@ -0,0 +1,320 @@ +/* + * Copyright (c) 1983, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)telnet.h	8.2 (Berkeley) 12/15/93 + */ + +#ifndef _TELNET_H_ +#define	_TELNET_H_ + +/* + * Definitions for the TELNET protocol. + */ +#define	IAC	255		/* interpret as command: */ +#define	DONT	254		/* you are not to use option */ +#define	DO	253		/* please, you use option */ +#define	WONT	252		/* I won't use option */ +#define	WILL	251		/* I will use option */ +#define	SB	250		/* interpret as subnegotiation */ +#define	GA	249		/* you may reverse the line */ +#define	EL	248		/* erase the current line */ +#define	EC	247		/* erase the current character */ +#define	AYT	246		/* are you there */ +#define	AO	245		/* abort output--but let prog finish */ +#define	IP	244		/* interrupt process--permanently */ +#define	BREAK	243		/* break */ +#define	DM	242		/* data mark--for connect. cleaning */ +#define	NOP	241		/* nop */ +#define	SE	240		/* end sub negotiation */ +#define EOR     239             /* end of record (transparent mode) */ +#define	ABORT	238		/* Abort process */ +#define	SUSP	237		/* Suspend process */ +#define	xEOF	236		/* End of file: EOF is already used... */ + +#define SYNCH	242		/* for telfunc calls */ + +#ifdef TELCMDS +char *telcmds[] = { +	"EOF", "SUSP", "ABORT", "EOR", +	"SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", +	"EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0, +}; +#else +extern char *telcmds[]; +#endif + +#define	TELCMD_FIRST	xEOF +#define	TELCMD_LAST	IAC +#define	TELCMD_OK(x)	((unsigned int)(x) <= TELCMD_LAST && \ +			 (unsigned int)(x) >= TELCMD_FIRST) +#define	TELCMD(x)	telcmds[(x)-TELCMD_FIRST] + +/* telnet options */ +#define TELOPT_BINARY	0	/* 8-bit data path */ +#define TELOPT_ECHO	1	/* echo */ +#define	TELOPT_RCP	2	/* prepare to reconnect */ +#define	TELOPT_SGA	3	/* suppress go ahead */ +#define	TELOPT_NAMS	4	/* approximate message size */ +#define	TELOPT_STATUS	5	/* give status */ +#define	TELOPT_TM	6	/* timing mark */ +#define	TELOPT_RCTE	7	/* remote controlled transmission and echo */ +#define TELOPT_NAOL 	8	/* negotiate about output line width */ +#define TELOPT_NAOP 	9	/* negotiate about output page size */ +#define TELOPT_NAOCRD	10	/* negotiate about CR disposition */ +#define TELOPT_NAOHTS	11	/* negotiate about horizontal tabstops */ +#define TELOPT_NAOHTD	12	/* negotiate about horizontal tab disposition */ +#define TELOPT_NAOFFD	13	/* negotiate about formfeed disposition */ +#define TELOPT_NAOVTS	14	/* negotiate about vertical tab stops */ +#define TELOPT_NAOVTD	15	/* negotiate about vertical tab disposition */ +#define TELOPT_NAOLFD	16	/* negotiate about output LF disposition */ +#define TELOPT_XASCII	17	/* extended ascic character set */ +#define	TELOPT_LOGOUT	18	/* force logout */ +#define	TELOPT_BM	19	/* byte macro */ +#define	TELOPT_DET	20	/* data entry terminal */ +#define	TELOPT_SUPDUP	21	/* supdup protocol */ +#define	TELOPT_SUPDUPOUTPUT 22	/* supdup output */ +#define	TELOPT_SNDLOC	23	/* send location */ +#define	TELOPT_TTYPE	24	/* terminal type */ +#define	TELOPT_EOR	25	/* end or record */ +#define	TELOPT_TUID	26	/* TACACS user identification */ +#define	TELOPT_OUTMRK	27	/* output marking */ +#define	TELOPT_TTYLOC	28	/* terminal location number */ +#define	TELOPT_3270REGIME 29	/* 3270 regime */ +#define	TELOPT_X3PAD	30	/* X.3 PAD */ +#define	TELOPT_NAWS	31	/* window size */ +#define	TELOPT_TSPEED	32	/* terminal speed */ +#define	TELOPT_LFLOW	33	/* remote flow control */ +#define TELOPT_LINEMODE	34	/* Linemode option */ +#define TELOPT_XDISPLOC	35	/* X Display Location */ +#define TELOPT_OLD_ENVIRON 36	/* Old - Environment variables */ +#define	TELOPT_AUTHENTICATION 37/* Authenticate */ +#define	TELOPT_ENCRYPT	38	/* Encryption option */ +#define TELOPT_NEW_ENVIRON 39	/* New - Environment variables */ +#define	TELOPT_EXOPL	255	/* extended-options-list */ + + +#define	NTELOPTS	(1+TELOPT_NEW_ENVIRON) +#ifdef TELOPTS +char *telopts[NTELOPTS+1] = { +	"BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", +	"STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", +	"NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", +	"NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", +	"DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", +	"SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", +	"TACACS UID", "OUTPUT MARKING", "TTYLOC", +	"3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", +	"LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", +	"ENCRYPT", "NEW-ENVIRON", +	0, +}; +#define	TELOPT_FIRST	TELOPT_BINARY +#define	TELOPT_LAST	TELOPT_NEW_ENVIRON +#define	TELOPT_OK(x)	((unsigned int)(x) <= TELOPT_LAST) +#define	TELOPT(x)	telopts[(x)-TELOPT_FIRST] +#endif + +/* sub-option qualifiers */ +#define	TELQUAL_IS	0	/* option is... */ +#define	TELQUAL_SEND	1	/* send option */ +#define	TELQUAL_INFO	2	/* ENVIRON: informational version of IS */ +#define	TELQUAL_REPLY	2	/* AUTHENTICATION: client version of IS */ +#define	TELQUAL_NAME	3	/* AUTHENTICATION: client version of IS */ + +#define	LFLOW_OFF		0	/* Disable remote flow control */ +#define	LFLOW_ON		1	/* Enable remote flow control */ +#define	LFLOW_RESTART_ANY	2	/* Restart output on any char */ +#define	LFLOW_RESTART_XON	3	/* Restart output only on XON */ + +/* + * LINEMODE suboptions + */ + +#define	LM_MODE		1 +#define	LM_FORWARDMASK	2 +#define	LM_SLC		3 + +#define	MODE_EDIT	0x01 +#define	MODE_TRAPSIG	0x02 +#define	MODE_ACK	0x04 +#define MODE_SOFT_TAB	0x08 +#define MODE_LIT_ECHO	0x10 + +#define	MODE_MASK	0x1f + +/* Not part of protocol, but needed to simplify things... */ +#define MODE_FLOW		0x0100 +#define MODE_ECHO		0x0200 +#define MODE_INBIN		0x0400 +#define MODE_OUTBIN		0x0800 +#define MODE_FORCE		0x1000 + +#define	SLC_SYNCH	1 +#define	SLC_BRK		2 +#define	SLC_IP		3 +#define	SLC_AO		4 +#define	SLC_AYT		5 +#define	SLC_EOR		6 +#define	SLC_ABORT	7 +#define	SLC_EOF		8 +#define	SLC_SUSP	9 +#define	SLC_EC		10 +#define	SLC_EL		11 +#define	SLC_EW		12 +#define	SLC_RP		13 +#define	SLC_LNEXT	14 +#define	SLC_XON		15 +#define	SLC_XOFF	16 +#define	SLC_FORW1	17 +#define	SLC_FORW2	18 + +#define	NSLC		18 + +/* + * For backwards compatability, we define SLC_NAMES to be the + * list of names if SLC_NAMES is not defined. + */ +#define	SLC_NAMELIST	"0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \ +			"ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \ +			"LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0, +#ifdef	SLC_NAMES +char *slc_names[] = { +	SLC_NAMELIST +}; +#else +extern char *slc_names[]; +#define	SLC_NAMES SLC_NAMELIST +#endif + +#define	SLC_NAME_OK(x)	((unsigned int)(x) <= NSLC) +#define SLC_NAME(x)	slc_names[x] + +#define	SLC_NOSUPPORT	0 +#define	SLC_CANTCHANGE	1 +#define	SLC_VARIABLE	2 +#define	SLC_DEFAULT	3 +#define	SLC_LEVELBITS	0x03 + +#define	SLC_FUNC	0 +#define	SLC_FLAGS	1 +#define	SLC_VALUE	2 + +#define	SLC_ACK		0x80 +#define	SLC_FLUSHIN	0x40 +#define	SLC_FLUSHOUT	0x20 + +#define	OLD_ENV_VAR	1 +#define	OLD_ENV_VALUE	0 +#define	NEW_ENV_VAR	0 +#define	NEW_ENV_VALUE	1 +#define	ENV_ESC		2 +#define ENV_USERVAR	3 + +/* + * AUTHENTICATION suboptions + */ + +/* + * Who is authenticating who ... + */ +#define	AUTH_WHO_CLIENT		0	/* Client authenticating server */ +#define	AUTH_WHO_SERVER		1	/* Server authenticating client */ +#define	AUTH_WHO_MASK		1 + +/* + * amount of authentication done + */ +#define	AUTH_HOW_ONE_WAY	0 +#define	AUTH_HOW_MUTUAL		2 +#define	AUTH_HOW_MASK		2 + +#define	AUTHTYPE_NULL		0 +#define	AUTHTYPE_KERBEROS_V4	1 +#define	AUTHTYPE_KERBEROS_V5	2 +#define	AUTHTYPE_SPX		3 +#define	AUTHTYPE_MINK		4 +#define	AUTHTYPE_CNT		5 + +#define	AUTHTYPE_TEST		99 + +#ifdef	AUTH_NAMES +char *authtype_names[] = { +	"NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0, +}; +#else +extern char *authtype_names[]; +#endif + +#define	AUTHTYPE_NAME_OK(x)	((unsigned int)(x) < AUTHTYPE_CNT) +#define	AUTHTYPE_NAME(x)	authtype_names[x] + +/* + * ENCRYPTion suboptions + */ +#define	ENCRYPT_IS		0	/* I pick encryption type ... */ +#define	ENCRYPT_SUPPORT		1	/* I support encryption types ... */ +#define	ENCRYPT_REPLY		2	/* Initial setup response */ +#define	ENCRYPT_START		3	/* Am starting to send encrypted */ +#define	ENCRYPT_END		4	/* Am ending encrypted */ +#define	ENCRYPT_REQSTART	5	/* Request you start encrypting */ +#define	ENCRYPT_REQEND		6	/* Request you send encrypting */ +#define	ENCRYPT_ENC_KEYID	7 +#define	ENCRYPT_DEC_KEYID	8 +#define	ENCRYPT_CNT		9 + +#define	ENCTYPE_ANY		0 +#define	ENCTYPE_DES_CFB64	1 +#define	ENCTYPE_DES_OFB64	2 +#define	ENCTYPE_CNT		3 + +#ifdef	ENCRYPT_NAMES +char *encrypt_names[] = { +	"IS", "SUPPORT", "REPLY", "START", "END", +	"REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID", +	0, +}; +char *enctype_names[] = { +	"ANY", "DES_CFB64",  "DES_OFB64",  0, +}; +#else +extern char *encrypt_names[]; +extern char *enctype_names[]; +#endif + + +#define	ENCRYPT_NAME_OK(x)	((unsigned int)(x) < ENCRYPT_CNT) +#define	ENCRYPT_NAME(x)		encrypt_names[x] + +#define	ENCTYPE_NAME_OK(x)	((unsigned int)(x) < ENCTYPE_CNT) +#define	ENCTYPE_NAME(x)		enctype_names[x] + +#endif /* !_TELNET_H_ */ diff --git a/include/arpa/tftp.h b/include/arpa/tftp.h new file mode 100644 index 000000000000..036720011f01 --- /dev/null +++ b/include/arpa/tftp.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1983, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)tftp.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _TFTP_H_ +#define	_TFTP_H_ + +/* + * Trivial File Transfer Protocol (IEN-133) + */ +#define	SEGSIZE		512		/* data segment size */ + +/* + * Packet types. + */ +#define	RRQ	01			/* read request */ +#define	WRQ	02			/* write request */ +#define	DATA	03			/* data packet */ +#define	ACK	04			/* acknowledgement */ +#define	ERROR	05			/* error code */ + +struct	tftphdr { +	short	th_opcode;		/* packet type */ +	union { +		short	tu_block;	/* block # */ +		short	tu_code;	/* error code */ +		char	tu_stuff[1];	/* request packet stuff */ +	} th_u; +	char	th_data[1];		/* data or error string */ +}; + +#define	th_block	th_u.tu_block +#define	th_code		th_u.tu_code +#define	th_stuff	th_u.tu_stuff +#define	th_msg		th_data + +/* + * Error codes. + */ +#define	EUNDEF		0		/* not defined */ +#define	ENOTFOUND	1		/* file not found */ +#define	EACCESS		2		/* access violation */ +#define	ENOSPACE	3		/* disk full or allocation exceeded */ +#define	EBADOP		4		/* illegal TFTP operation */ +#define	EBADID		5		/* unknown transfer ID */ +#define	EEXISTS		6		/* file already exists */ +#define	ENOUSER		7		/* no such user */ + +#endif /* !_TFTP_H_ */ diff --git a/include/assert.h b/include/assert.h new file mode 100644 index 000000000000..dff9589972b0 --- /dev/null +++ b/include/assert.h @@ -0,0 +1,65 @@ +/*- + * Copyright (c) 1992, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)assert.h	8.2 (Berkeley) 1/21/94 + */ + +/* + * Unlike other ANSI header files, <assert.h> may usefully be included + * multiple times, with and without NDEBUG defined. + */ + +#undef assert +#undef _assert + +#ifdef NDEBUG +#define	assert(e)	((void)0) +#define	_assert(e)	((void)0) +#else +#define	_assert(e)	assert(e) +#ifdef __STDC__ +#define	assert(e)	((e) ? (void)0 : __assert(__FILE__, __LINE__, #e)) +#else	/* PCC */ +#define	assert(e)	((e) ? (void)0 : __assert(__FILE__, __LINE__, "e")) +#endif +#endif + +#include <sys/cdefs.h> + +__BEGIN_DECLS +void __assert __P((const char *, int, const char *)); +__END_DECLS diff --git a/include/bitstring.h b/include/bitstring.h new file mode 100644 index 000000000000..88437e7fb9f7 --- /dev/null +++ b/include/bitstring.h @@ -0,0 +1,143 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Paul Vixie. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)bitstring.h	8.1 (Berkeley) 7/19/93 + */ + +#ifndef _BITSTRING_H_ +#define	_BITSTRING_H_ + +typedef	unsigned char bitstr_t; + +/* internal macros */ +				/* byte of the bitstring bit is in */ +#define	_bit_byte(bit) \ +	((bit) >> 3) + +				/* mask for the bit within its byte */ +#define	_bit_mask(bit) \ +	(1 << ((bit)&0x7)) + +/* external macros */ +				/* bytes in a bitstring of nbits bits */ +#define	bitstr_size(nbits) \ +	((((nbits) - 1) >> 3) + 1) + +				/* allocate a bitstring */ +#define	bit_alloc(nbits) \ +	(bitstr_t *)calloc(1, \ +	    (unsigned int)bitstr_size(nbits) * sizeof(bitstr_t)) + +				/* allocate a bitstring on the stack */ +#define	bit_decl(name, nbits) \ +	(name)[bitstr_size(nbits)] + +				/* is bit N of bitstring name set? */ +#define	bit_test(name, bit) \ +	((name)[_bit_byte(bit)] & _bit_mask(bit)) + +				/* set bit N of bitstring name */ +#define	bit_set(name, bit) \ +	(name)[_bit_byte(bit)] |= _bit_mask(bit) + +				/* clear bit N of bitstring name */ +#define	bit_clear(name, bit) \ +	(name)[_bit_byte(bit)] &= ~_bit_mask(bit) + +				/* clear bits start ... stop in bitstring */ +#define	bit_nclear(name, start, stop) { \ +	register bitstr_t *_name = name; \ +	register int _start = start, _stop = stop; \ +	register int _startbyte = _bit_byte(_start); \ +	register int _stopbyte = _bit_byte(_stop); \ +	if (_startbyte == _stopbyte) { \ +		_name[_startbyte] &= ((0xff >> (8 - (_start&0x7))) | \ +				      (0xff << ((_stop&0x7) + 1))); \ +	} else { \ +		_name[_startbyte] &= 0xff >> (8 - (_start&0x7)); \ +		while (++_startbyte < _stopbyte) \ +			_name[_startbyte] = 0; \ +		_name[_stopbyte] &= 0xff << ((_stop&0x7) + 1); \ +	} \ +} + +				/* set bits start ... stop in bitstring */ +#define	bit_nset(name, start, stop) { \ +	register bitstr_t *_name = name; \ +	register int _start = start, _stop = stop; \ +	register int _startbyte = _bit_byte(_start); \ +	register int _stopbyte = _bit_byte(_stop); \ +	if (_startbyte == _stopbyte) { \ +		_name[_startbyte] |= ((0xff << (_start&0x7)) & \ +				    (0xff >> (7 - (_stop&0x7)))); \ +	} else { \ +		_name[_startbyte] |= 0xff << ((_start)&0x7); \ +		while (++_startbyte < _stopbyte) \ +	    		_name[_startbyte] = 0xff; \ +		_name[_stopbyte] |= 0xff >> (7 - (_stop&0x7)); \ +	} \ +} + +				/* find first bit clear in name */ +#define	bit_ffc(name, nbits, value) { \ +	register bitstr_t *_name = name; \ +	register int _byte, _nbits = nbits; \ +	register int _stopbyte = _bit_byte(_nbits), _value = -1; \ +	for (_byte = 0; _byte <= _stopbyte; ++_byte) \ +		if (_name[_byte] != 0xff) { \ +			_value = _byte << 3; \ +			for (_stopbyte = _name[_byte]; (_stopbyte&0x1); \ +			    ++_value, _stopbyte >>= 1); \ +			break; \ +		} \ +	*(value) = _value; \ +} + +				/* find first bit set in name */ +#define	bit_ffs(name, nbits, value) { \ +	register bitstr_t *_name = name; \ +	register int _byte, _nbits = nbits; \ +	register int _stopbyte = _bit_byte(_nbits), _value = -1; \ +	for (_byte = 0; _byte <= _stopbyte; ++_byte) \ +		if (_name[_byte]) { \ +			_value = _byte << 3; \ +			for (_stopbyte = _name[_byte]; !(_stopbyte&0x1); \ +			    ++_value, _stopbyte >>= 1); \ +			break; \ +		} \ +	*(value) = _value; \ +} + +#endif /* !_BITSTRING_H_ */ diff --git a/include/ctype.h b/include/ctype.h new file mode 100644 index 000000000000..a37fc1cb1192 --- /dev/null +++ b/include/ctype.h @@ -0,0 +1,147 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * This code is derived from software contributed to Berkeley by + * Paul Borman at Krystal Technologies. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)ctype.h	8.4 (Berkeley) 1/21/94 + */ + +#ifndef	_CTYPE_H_ +#define _CTYPE_H_ + +#include <runetype.h> + +#define	_A	0x00000100L		/* Alpha */ +#define	_C	0x00000200L		/* Control */ +#define	_D	0x00000400L		/* Digit */ +#define	_G	0x00000800L		/* Graph */ +#define	_L	0x00001000L		/* Lower */ +#define	_P	0x00002000L		/* Punct */ +#define	_S	0x00004000L		/* Space */ +#define	_U	0x00008000L		/* Upper */ +#define	_X	0x00010000L		/* X digit */ +#define	_B	0x00020000L		/* Blank */ +#define	_R	0x00040000L		/* Print */ +#define	_I	0x00080000L		/* Ideogram */ +#define	_T	0x00100000L		/* Special */ +#define	_Q	0x00200000L		/* Phonogram */ + +#define isalnum(c)      __istype((c), (_A|_D)) +#define isalpha(c)      __istype((c),     _A) +#define iscntrl(c)      __istype((c),     _C) +#define isdigit(c)      __isctype((c),    _D)	/* ANSI -- locale independent */ +#define isgraph(c)      __istype((c),     _G) +#define islower(c)      __istype((c),     _L) +#define isprint(c)      __istype((c),     _R) +#define ispunct(c)      __istype((c),     _P) +#define isspace(c)      __istype((c),     _S) +#define isupper(c)      __istype((c),     _U) +#define isxdigit(c)     __isctype((c),    _X)	/* ANSI -- locale independent */ + +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +#define	isascii(c)	((c & ~0x7F) == 0) +#define toascii(c)	((c) & 0x7F) +#define	digittoint(c)	__istype((c), 0xFF) +#define	isideogram(c)	__istype((c), _I) +#define	isphonogram(c)	__istype((c), _T) +#define	isspecial(c)	__istype((c), _Q) +#define isblank(c)	__istype((c), _B) +#define	isrune(c)	__istype((c),  0xFFFFFF00L) +#define	isnumber(c)	__istype((c), _D) +#define	ishexnumber(c)	__istype((c), _X) +#endif + +/* See comments in <machine/ansi.h> about _BSD_RUNE_T_. */ +__BEGIN_DECLS +unsigned long	___runetype __P((_BSD_RUNE_T_)); +_BSD_RUNE_T_	___tolower __P((_BSD_RUNE_T_)); +_BSD_RUNE_T_	___toupper __P((_BSD_RUNE_T_)); +__END_DECLS + +/* + * If your compiler supports prototypes and inline functions, + * #define _USE_CTYPE_INLINE_.  Otherwise, use the C library + * functions. + */ +#if !defined(_USE_CTYPE_CLIBRARY_) && defined(__GNUC__) || defined(__cplusplus) +#define	_USE_CTYPE_INLINE_	1 +#endif + +#if defined(_USE_CTYPE_INLINE_) +static __inline int +__istype(_BSD_RUNE_T_ c, unsigned long f) +{ +	return((((c & _CRMASK) ? ___runetype(c) : +	    _CurrentRuneLocale->runetype[c]) & f) ? 1 : 0); +} + +static __inline int +__isctype(_BSD_RUNE_T_ c, unsigned long f) +{ +	return((((c & _CRMASK) ? 0 : +	    _DefaultRuneLocale.runetype[c]) & f) ? 1 : 0); +} + +/* _ANSI_LIBRARY is defined by lib/libc/gen/isctype.c. */ +#if !defined(_ANSI_LIBRARY) +static __inline _BSD_RUNE_T_ +toupper(_BSD_RUNE_T_ c) +{ +	return((c & _CRMASK) ? +	    ___toupper(c) : _CurrentRuneLocale->mapupper[c]); +} + +static __inline _BSD_RUNE_T_ +tolower(_BSD_RUNE_T_ c) +{ +	return((c & _CRMASK) ? +	    ___tolower(c) : _CurrentRuneLocale->maplower[c]); +} +#endif /* !_ANSI_LIBRARY */ + +#else /* !_USE_CTYPE_INLINE_ */ + +__BEGIN_DECLS +int		__istype __P((_BSD_RUNE_T_, unsigned long)); +int		__isctype __P((_BSD_RUNE_T_, unsigned long)); +_BSD_RUNE_T_	toupper __P((_BSD_RUNE_T_)); +_BSD_RUNE_T_	tolower __P((_BSD_RUNE_T_)); +__END_DECLS +#endif /* _USE_CTYPE_INLINE_ */ + +#endif /* !_CTYPE_H_ */ diff --git a/include/db.h b/include/db.h new file mode 100644 index 000000000000..109f84129b3d --- /dev/null +++ b/include/db.h @@ -0,0 +1,218 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)db.h	8.4 (Berkeley) 2/21/94 + */ + +#ifndef _DB_H_ +#define	_DB_H_ + +#include <sys/types.h> +#include <sys/cdefs.h> + +#include <limits.h> + +#define	RET_ERROR	-1		/* Return values. */ +#define	RET_SUCCESS	 0 +#define	RET_SPECIAL	 1 + +#define	MAX_PAGE_NUMBER	0xffffffff	/* >= # of pages in a file */ +typedef u_int32_t	pgno_t; +#define	MAX_PAGE_OFFSET	65535		/* >= # of bytes in a page */ +typedef u_int16_t	indx_t; +#define	MAX_REC_NUMBER	0xffffffff	/* >= # of records in a tree */ +typedef u_int32_t	recno_t; + +/* Key/data structure -- a Data-Base Thang. */ +typedef struct { +	void	*data;			/* data */ +	size_t	 size;			/* data length */ +} DBT; + +/* Routine flags. */ +#define	R_CURSOR	1		/* del, put, seq */ +#define	__R_UNUSED	2		/* UNUSED */ +#define	R_FIRST		3		/* seq */ +#define	R_IAFTER	4		/* put (RECNO) */ +#define	R_IBEFORE	5		/* put (RECNO) */ +#define	R_LAST		6		/* seq (BTREE, RECNO) */ +#define	R_NEXT		7		/* seq */ +#define	R_NOOVERWRITE	8		/* put */ +#define	R_PREV		9		/* seq (BTREE, RECNO) */ +#define	R_SETCURSOR	10		/* put (RECNO) */ +#define	R_RECNOSYNC	11		/* sync (RECNO) */ + +typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE; + +/* + * !!! + * The following flags are included in the dbopen(3) call as part of the + * open(2) flags.  In order to avoid conflicts with the open flags, start + * at the top of the 16 or 32-bit number space and work our way down.  If + * the open flags were significantly expanded in the future, it could be + * a problem.  Wish I'd left another flags word in the dbopen call. + * + * !!! + * None of this stuff is implemented yet.  The only reason that it's here + * is so that the access methods can skip copying the key/data pair when + * the DB_LOCK flag isn't set. + */ +#if UINT_MAX > 65535 +#define	DB_LOCK		0x20000000	/* Do locking. */ +#define	DB_SHMEM	0x40000000	/* Use shared memory. */ +#define	DB_TXN		0x80000000	/* Do transactions. */ +#else +#define	DB_LOCK		    0x2000	/* Do locking. */ +#define	DB_SHMEM	    0x4000	/* Use shared memory. */ +#define	DB_TXN		    0x8000	/* Do transactions. */ +#endif + +/* Access method description structure. */ +typedef struct __db { +	DBTYPE type;			/* Underlying db type. */ +	int (*close)	__P((struct __db *)); +	int (*del)	__P((const struct __db *, const DBT *, u_int)); +	int (*get)	__P((const struct __db *, const DBT *, DBT *, u_int)); +	int (*put)	__P((const struct __db *, DBT *, const DBT *, u_int)); +	int (*seq)	__P((const struct __db *, DBT *, DBT *, u_int)); +	int (*sync)	__P((const struct __db *, u_int)); +	void *internal;			/* Access method private. */ +	int (*fd)	__P((const struct __db *)); +} DB; + +#define	BTREEMAGIC	0x053162 +#define	BTREEVERSION	3 + +/* Structure used to pass parameters to the btree routines. */ +typedef struct { +#define	R_DUP		0x01	/* duplicate keys */ +	u_long	flags; +	u_int	cachesize;	/* bytes to cache */ +	int	maxkeypage;	/* maximum keys per page */ +	int	minkeypage;	/* minimum keys per page */ +	u_int	psize;		/* page size */ +	int	(*compare)	/* comparison function */ +	    __P((const DBT *, const DBT *)); +	size_t	(*prefix)	/* prefix function */ +	    __P((const DBT *, const DBT *)); +	int	lorder;		/* byte order */ +} BTREEINFO; + +#define	HASHMAGIC	0x061561 +#define	HASHVERSION	2 + +/* Structure used to pass parameters to the hashing routines. */ +typedef struct { +	u_int	bsize;		/* bucket size */ +	u_int	ffactor;	/* fill factor */ +	u_int	nelem;		/* number of elements */ +	u_int	cachesize;	/* bytes to cache */ +	u_int32_t		/* hash function */ +		(*hash) __P((const void *, size_t)); +	int	lorder;		/* byte order */ +} HASHINFO; + +/* Structure used to pass parameters to the record routines. */ +typedef struct { +#define	R_FIXEDLEN	0x01	/* fixed-length records */ +#define	R_NOKEY		0x02	/* key not required */ +#define	R_SNAPSHOT	0x04	/* snapshot the input */ +	u_long	flags; +	u_int	cachesize;	/* bytes to cache */ +	u_int	psize;		/* page size */ +	int	lorder;		/* byte order */ +	size_t	reclen;		/* record length (fixed-length records) */ +	u_char	bval;		/* delimiting byte (variable-length records */ +	char	*bfname;	/* btree file name */  +} RECNOINFO; + +#ifdef __DBINTERFACE_PRIVATE +/* + * Little endian <==> big endian 32-bit swap macros. + *	M_32_SWAP	swap a memory location + *	P_32_SWAP	swap a referenced memory location + *	P_32_COPY	swap from one location to another + */ +#define	M_32_SWAP(a) {							\ +	u_int32_t _tmp = a;						\ +	((char *)&a)[0] = ((char *)&_tmp)[3];				\ +	((char *)&a)[1] = ((char *)&_tmp)[2];				\ +	((char *)&a)[2] = ((char *)&_tmp)[1];				\ +	((char *)&a)[3] = ((char *)&_tmp)[0];				\ +} +#define	P_32_SWAP(a) {							\ +	u_int32_t _tmp = *(u_int32_t *)a;				\ +	((char *)a)[0] = ((char *)&_tmp)[3];				\ +	((char *)a)[1] = ((char *)&_tmp)[2];				\ +	((char *)a)[2] = ((char *)&_tmp)[1];				\ +	((char *)a)[3] = ((char *)&_tmp)[0];				\ +} +#define	P_32_COPY(a, b) {						\ +	((char *)&(b))[0] = ((char *)&(a))[3];				\ +	((char *)&(b))[1] = ((char *)&(a))[2];				\ +	((char *)&(b))[2] = ((char *)&(a))[1];				\ +	((char *)&(b))[3] = ((char *)&(a))[0];				\ +} + +/* + * Little endian <==> big endian 16-bit swap macros. + *	M_16_SWAP	swap a memory location + *	P_16_SWAP	swap a referenced memory location + *	P_16_COPY	swap from one location to another + */ +#define	M_16_SWAP(a) {							\ +	u_int16_t _tmp = a;						\ +	((char *)&a)[0] = ((char *)&_tmp)[1];				\ +	((char *)&a)[1] = ((char *)&_tmp)[0];				\ +} +#define	P_16_SWAP(a) {							\ +	u_int16_t _tmp = *(u_int16_t *)a;				\ +	((char *)a)[0] = ((char *)&_tmp)[1];				\ +	((char *)a)[1] = ((char *)&_tmp)[0];				\ +} +#define	P_16_COPY(a, b) {						\ +	((char *)&(b))[0] = ((char *)&(a))[1];				\ +	((char *)&(b))[1] = ((char *)&(a))[0];				\ +} +#endif + +__BEGIN_DECLS +DB *dbopen __P((const char *, int, int, DBTYPE, const void *)); + +#ifdef __DBINTERFACE_PRIVATE +DB	*__bt_open __P((const char *, int, int, const BTREEINFO *, int)); +DB	*__hash_open __P((const char *, int, int, const HASHINFO *, int)); +DB	*__rec_open __P((const char *, int, int, const RECNOINFO *, int)); +void	 __dbpanic __P((DB *dbp)); +#endif +__END_DECLS +#endif /* !_DB_H_ */ diff --git a/include/dirent.h b/include/dirent.h new file mode 100644 index 000000000000..f6fca1f54b02 --- /dev/null +++ b/include/dirent.h @@ -0,0 +1,94 @@ +/*- + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)dirent.h	8.1 (Berkeley) 6/8/93 + */ + +#ifndef _DIRENT_H_ +#define _DIRENT_H_ + +/* + * The kernel defines the format of directory entries returned by  + * the getdirentries(2) system call. + */ +#include <sys/dirent.h> + +#ifdef _POSIX_SOURCE +typedef void *	DIR; +#else + +#define	d_ino		d_fileno	/* backward compatibility */ + +/* definitions for library routines operating on directories. */ +#define	DIRBLKSIZ	1024 + +/* structure describing an open directory. */ +typedef struct _dirdesc { +	int	dd_fd;		/* file descriptor associated with directory */ +	long	dd_loc;		/* offset in current buffer */ +	long	dd_size;	/* amount of data returned by getdirentries */ +	char	*dd_buf;	/* data buffer */ +	int	dd_len;		/* size of data buffer */ +	long	dd_seek;	/* magic cookie returned by getdirentries */ +	long	dd_rewind;	/* magic cookie for rewinding */ +} DIR; + +#define	dirfd(dirp)	((dirp)->dd_fd) + +#ifndef NULL +#define	NULL	0 +#endif + +#endif /* _POSIX_SOURCE */ + +#ifndef KERNEL + +#include <sys/cdefs.h> + +__BEGIN_DECLS +DIR *opendir __P((const char *)); +struct dirent *readdir __P((DIR *)); +void rewinddir __P((DIR *)); +int closedir __P((DIR *)); +#ifndef _POSIX_SOURCE +long telldir __P((const DIR *)); +void seekdir __P((DIR *, long)); +int scandir __P((const char *, struct dirent ***, +    int (*)(struct dirent *), int (*)(const void *, const void *))); +int alphasort __P((const void *, const void *)); +int getdirentries __P((int, char *, int, long *)); +#endif /* not POSIX */ +__END_DECLS + +#endif /* !KERNEL */ + +#endif /* !_DIRENT_H_ */ diff --git a/include/disktab.h b/include/disktab.h new file mode 100644 index 000000000000..55f0f4625c7c --- /dev/null +++ b/include/disktab.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 1983, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)disktab.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_DISKTAB_H_ +#define	_DISKTAB_H_ + +/* + * Disk description table, see disktab(5) + */ +#define	DISKTAB		"/etc/disktab" + +struct	disktab { +	char	*d_name;		/* drive name */ +	char	*d_type;		/* drive type */ +	int	d_secsize;		/* sector size in bytes */ +	int	d_ntracks;		/* # tracks/cylinder */ +	int	d_nsectors;		/* # sectors/track */ +	int	d_ncylinders;		/* # cylinders */ +	int	d_rpm;			/* revolutions/minute */ +	int	d_badsectforw;		/* supports DEC bad144 std */ +	int	d_sectoffset;		/* use sect rather than cyl offsets */ +	struct	partition { +		int	p_size;		/* #sectors in partition */ +		short	p_bsize;	/* block size in bytes */ +		short	p_fsize;	/* frag size in bytes */ +	} d_partitions[8]; +}; + +#endif /* !_DISKTAB_H_ */ diff --git a/include/err.h b/include/err.h new file mode 100644 index 000000000000..dce9ed0ea310 --- /dev/null +++ b/include/err.h @@ -0,0 +1,60 @@ +/*- + * Copyright (c) 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)err.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _ERR_H_ +#define	_ERR_H_ + +/* + * Don't use va_list in the err/warn prototypes.   Va_list is typedef'd in two + * places (<machine/varargs.h> and <machine/stdarg.h>), so if we include one + * of them here we may collide with the utility's includes.  It's unreasonable + * for utilities to have to include one of them to include err.h, so we get + * _BSD_VA_LIST_ from <machine/ansi.h> and use it. + */ +#include <machine/ansi.h> +#include <sys/cdefs.h> + +__BEGIN_DECLS +__dead void	err __P((int, const char *, ...)); +__dead void	verr __P((int, const char *, _BSD_VA_LIST_)); +__dead void	errx __P((int, const char *, ...)); +__dead void	verrx __P((int, const char *, _BSD_VA_LIST_)); +void		warn __P((const char *, ...)); +void		vwarn __P((const char *, _BSD_VA_LIST_)); +void		warnx __P((const char *, ...)); +void		vwarnx __P((const char *, _BSD_VA_LIST_)); +__END_DECLS + +#endif /* !_ERR_H_ */ diff --git a/include/fnmatch.h b/include/fnmatch.h new file mode 100644 index 000000000000..7a0e5824d39e --- /dev/null +++ b/include/fnmatch.h @@ -0,0 +1,53 @@ +/*- + * Copyright (c) 1992, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)fnmatch.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_FNMATCH_H_ +#define	_FNMATCH_H_ + +#define	FNM_NOMATCH	1	/* Match failed. */ + +#define	FNM_NOESCAPE	0x01	/* Disable backslash escaping. */ +#define	FNM_PATHNAME	0x02	/* Slash must be matched by slash. */ +#define	FNM_PERIOD	0x04	/* Period must be matched by period. */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +#ifndef	_POSIX_SOURCE +int	 fnmatch __P((const char *, const char *, int)); +#endif +__END_DECLS + +#endif /* !_FNMATCH_H_ */ diff --git a/include/fstab.h b/include/fstab.h new file mode 100644 index 000000000000..2a176bdb8320 --- /dev/null +++ b/include/fstab.h @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1980, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)fstab.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _FSTAB_H_ +#define _FSTAB_H_ + +/* + * File system table, see fstab(5). + * + * Used by dump, mount, umount, swapon, fsck, df, ... + * + * For ufs fs_spec field is the block special name.  Programs that want to + * use the character special name must create that name by prepending a 'r' + * after the right most slash.  Quota files are always named "quotas", so + * if type is "rq", then use concatenation of fs_file and "quotas" to locate + * quota file. + */ +#define	_PATH_FSTAB	"/etc/fstab" +#define	FSTAB		"/etc/fstab"	/* deprecated */ + +#define	FSTAB_RW	"rw"		/* read/write device */ +#define	FSTAB_RQ	"rq"		/* read/write with quotas */ +#define	FSTAB_RO	"ro"		/* read-only device */ +#define	FSTAB_SW	"sw"		/* swap device */ +#define	FSTAB_XX	"xx"		/* ignore totally */ + +struct fstab { +	char	*fs_spec;		/* block special device name */ +	char	*fs_file;		/* file system path prefix */ +	char	*fs_vfstype;		/* File system type, ufs, nfs */ +	char	*fs_mntops;		/* Mount options ala -o */ +	char	*fs_type;		/* FSTAB_* from fs_mntops */ +	int	fs_freq;		/* dump frequency, in days */ +	int	fs_passno;		/* pass number on parallel dump */ +}; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +struct fstab *getfsent __P((void)); +struct fstab *getfsspec __P((const char *)); +struct fstab *getfsfile __P((const char *)); +int setfsent __P((void)); +void endfsent __P((void)); +__END_DECLS + +#endif /* !_FSTAB_H_ */ diff --git a/include/fts.h b/include/fts.h new file mode 100644 index 000000000000..84dbe14bc792 --- /dev/null +++ b/include/fts.h @@ -0,0 +1,125 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)fts.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_FTS_H_ +#define	_FTS_H_ + +typedef struct { +	struct _ftsent *fts_cur;	/* current node */ +	struct _ftsent *fts_child;	/* linked list of children */ +	struct _ftsent **fts_array;	/* sort array */ +	dev_t fts_dev;			/* starting device # */ +	char *fts_path;			/* path for this descent */ +	int fts_rfd;			/* fd for root */ +	int fts_pathlen;		/* sizeof(path) */ +	int fts_nitems;			/* elements in the sort array */ +	int (*fts_compar)();		/* compare function */ + +#define	FTS_COMFOLLOW	0x001		/* follow command line symlinks */ +#define	FTS_LOGICAL	0x002		/* logical walk */ +#define	FTS_NOCHDIR	0x004		/* don't change directories */ +#define	FTS_NOSTAT	0x008		/* don't get stat info */ +#define	FTS_PHYSICAL	0x010		/* physical walk */ +#define	FTS_SEEDOT	0x020		/* return dot and dot-dot */ +#define	FTS_XDEV	0x040		/* don't cross devices */ +#define	FTS_OPTIONMASK	0x07f		/* valid user option mask */ + +#define	FTS_NAMEONLY	0x080		/* (private) child names only */ +#define	FTS_STOP	0x100		/* (private) unrecoverable error */ +	int fts_options;		/* fts_open options, global flags */ +} FTS; + +typedef struct _ftsent { +	struct _ftsent *fts_cycle;	/* cycle node */ +	struct _ftsent *fts_parent;	/* parent directory */ +	struct _ftsent *fts_link;	/* next file in directory */ +	long fts_number;	        /* local numeric value */ +	void *fts_pointer;	        /* local address value */ +	char *fts_accpath;		/* access path */ +	char *fts_path;			/* root path */ +	int fts_errno;			/* errno for this node */ +	int fts_symfd;			/* fd for symlink */ +	u_short fts_pathlen;		/* strlen(fts_path) */ +	u_short fts_namelen;		/* strlen(fts_name) */ + +	ino_t fts_ino;			/* inode */ +	dev_t fts_dev;			/* device */ +	nlink_t fts_nlink;		/* link count */ + +#define	FTS_ROOTPARENTLEVEL	-1 +#define	FTS_ROOTLEVEL		 0 +	short fts_level;		/* depth (-1 to N) */ + +#define	FTS_D		 1		/* preorder directory */ +#define	FTS_DC		 2		/* directory that causes cycles */ +#define	FTS_DEFAULT	 3		/* none of the above */ +#define	FTS_DNR		 4		/* unreadable directory */ +#define	FTS_DOT		 5		/* dot or dot-dot */ +#define	FTS_DP		 6		/* postorder directory */ +#define	FTS_ERR		 7		/* error; errno is set */ +#define	FTS_F		 8		/* regular file */ +#define	FTS_INIT	 9		/* initialized only */ +#define	FTS_NS		10		/* stat(2) failed */ +#define	FTS_NSOK	11		/* no stat(2) requested */ +#define	FTS_SL		12		/* symbolic link */ +#define	FTS_SLNONE	13		/* symbolic link without target */ +	u_short fts_info;		/* user flags for FTSENT structure */ + +#define	FTS_DONTCHDIR	 0x01		/* don't chdir .. to the parent */ +#define	FTS_SYMFOLLOW	 0x02		/* followed a symlink to get here */ +	u_short fts_flags;		/* private flags for FTSENT structure */ + +#define	FTS_AGAIN	 1		/* read node again */ +#define	FTS_FOLLOW	 2		/* follow symbolic link */ +#define	FTS_NOINSTR	 3		/* no instructions */ +#define	FTS_SKIP	 4		/* discard node */ +	u_short fts_instr;		/* fts_set() instructions */ + +	struct stat *fts_statp;		/* stat(2) information */ +	char fts_name[1];		/* file name */ +} FTSENT; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +FTSENT	*fts_children __P((FTS *, int)); +int	 fts_close __P((FTS *)); +FTS	*fts_open __P((char * const *, int, +	    int (*)(const FTSENT **, const FTSENT **))); +FTSENT	*fts_read __P((FTS *)); +int	 fts_set __P((FTS *, FTSENT *, int)); +__END_DECLS + +#endif /* !_FTS_H_ */ diff --git a/include/glob.h b/include/glob.h new file mode 100644 index 000000000000..49f0a2182c07 --- /dev/null +++ b/include/glob.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Guido van Rossum. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)glob.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _GLOB_H_ +#define	_GLOB_H_ + +#include <sys/cdefs.h> + +struct stat; +typedef struct { +	int gl_pathc;		/* Count of total paths so far. */ +	int gl_matchc;		/* Count of paths matching pattern. */ +	int gl_offs;		/* Reserved at beginning of gl_pathv. */ +	int gl_flags;		/* Copy of flags parameter to glob. */ +	char **gl_pathv;	/* List of paths matching pattern. */ +				/* Copy of errfunc parameter to glob. */ +	int (*gl_errfunc) __P((const char *, int)); + +	/* +	 * Alternate filesystem access methods for glob; replacement +	 * versions of closedir(3), readdir(3), opendir(3), stat(2) +	 * and lstat(2). +	 */ +	void (*gl_closedir) __P((void *)); +	struct dirent *(*gl_readdir) __P((void *));	 +	void *(*gl_opendir) __P((const char *)); +	int (*gl_lstat) __P((const char *, struct stat *)); +	int (*gl_stat) __P((const char *, struct stat *)); +} glob_t; + +#define	GLOB_APPEND	0x0001	/* Append to output from previous call. */ +#define	GLOB_DOOFFS	0x0002	/* Use gl_offs. */ +#define	GLOB_ERR	0x0004	/* Return on error. */ +#define	GLOB_MARK	0x0008	/* Append / to matching directories. */ +#define	GLOB_NOCHECK	0x0010	/* Return pattern itself if nothing matches. */ +#define	GLOB_NOSORT	0x0020	/* Don't sort. */ + +#ifndef _POSIX_SOURCE +#define	GLOB_ALTDIRFUNC	0x0040	/* Use alternately specified directory funcs. */ +#define	GLOB_BRACE	0x0080	/* Expand braces ala csh. */ +#define	GLOB_MAGCHAR	0x0100	/* Pattern had globbing characters. */ +#define	GLOB_NOMAGIC	0x0200	/* GLOB_NOCHECK without magic chars (csh). */ +#define	GLOB_QUOTE	0x0400	/* Quote special chars with \. */ +#define	GLOB_TILDE	0x0800	/* Expand tilde names from the passwd file. */ +#endif + +#define	GLOB_NOSPACE	(-1)	/* Malloc call failed. */ +#define	GLOB_ABEND	(-2)	/* Unignored error. */ + +__BEGIN_DECLS +int	glob __P((const char *, int, int (*)(const char *, int), glob_t *)); +void	globfree __P((glob_t *)); +__END_DECLS + +#endif /* !_GLOB_H_ */ diff --git a/include/grp.h b/include/grp.h new file mode 100644 index 000000000000..9e5654a958d3 --- /dev/null +++ b/include/grp.h @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)grp.h	8.2 (Berkeley) 1/21/94 + */ + +#ifndef _GRP_H_ +#define	_GRP_H_ + +#ifndef _POSIX_SOURCE +#define	_PATH_GROUP		"/etc/group" +#endif + +struct group { +	char	*gr_name;		/* group name */ +	char	*gr_passwd;		/* group password */ +	int	gr_gid;			/* group id */ +	char	**gr_mem;		/* group members */ +}; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +struct group *getgrgid __P((gid_t)); +struct group *getgrnam __P((const char *)); +#ifndef _POSIX_SOURCE +struct group *getgrent __P((void)); +int setgrent __P((void)); +void endgrent __P((void)); +void setgrfile __P((const char *)); +int setgroupent __P((int)); +#endif +__END_DECLS + +#endif /* !_GRP_H_ */ diff --git a/include/kvm.h b/include/kvm.h new file mode 100644 index 000000000000..3c675ab67b4d --- /dev/null +++ b/include/kvm.h @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)kvm.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _KVM_H_ +#define	_KVM_H_ + +/* Default version symbol. */ +#define	VRS_SYM		"_version" +#define	VRS_KEY		"VERSION" + +#include <nlist.h> +#include <sys/cdefs.h> + +__BEGIN_DECLS + +typedef struct __kvm kvm_t; + +struct kinfo_proc; +int	  kvm_close __P((kvm_t *)); +char	**kvm_getargv __P((kvm_t *, const struct kinfo_proc *, int)); +char	**kvm_getenvv __P((kvm_t *, const struct kinfo_proc *, int)); +char	 *kvm_geterr __P((kvm_t *)); +int	  kvm_getloadavg __P((kvm_t *, double [], int)); +char	 *kvm_getfiles __P((kvm_t *, int, int, int *)); +struct kinfo_proc * +	  kvm_getprocs __P((kvm_t *, int, int, int *)); +int	  kvm_nlist __P((kvm_t *, struct nlist *)); +kvm_t	 *kvm_open +	    __P((const char *, const char *, const char *, int, const char *)); +kvm_t	 *kvm_openfiles +	    __P((const char *, const char *, const char *, int, char *)); +int	  kvm_read __P((kvm_t *, unsigned long, void *, unsigned int)); +int	  kvm_write __P((kvm_t *, unsigned long, const void *, unsigned int)); + +__END_DECLS + +#endif /* !_KVM_H_ */ diff --git a/include/limits.h b/include/limits.h new file mode 100644 index 000000000000..7fe92b2fd402 --- /dev/null +++ b/include/limits.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1988, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)limits.h	8.2 (Berkeley) 1/4/94 + */ + +#ifndef _LIMITS_H_ +#define	_LIMITS_H_ + +#define	_POSIX_ARG_MAX		4096 +#define	_POSIX_CHILD_MAX	6 +#define	_POSIX_LINK_MAX		8 +#define	_POSIX_MAX_CANON	255 +#define	_POSIX_MAX_INPUT	255 +#define	_POSIX_NAME_MAX		14 +#define	_POSIX_NGROUPS_MAX	0 +#define	_POSIX_OPEN_MAX		16 +#define	_POSIX_PATH_MAX		255 +#define	_POSIX_PIPE_BUF		512 +#define	_POSIX_SSIZE_MAX	32767 +#define	_POSIX_STREAM_MAX	8 +#define	_POSIX_TZNAME_MAX	3 + +#define	_POSIX2_BC_BASE_MAX	99 +#define	_POSIX2_BC_DIM_MAX	2048 +#define	_POSIX2_BC_SCALE_MAX	99 +#define	_POSIX2_BC_STRING_MAX	1000 +#define	_POSIX2_EQUIV_CLASS_MAX	2 +#define	_POSIX2_EXPR_NEST_MAX	32 +#define	_POSIX2_LINE_MAX	2048 +#define	_POSIX2_RE_DUP_MAX	255 + +#include <machine/limits.h> +#include <sys/syslimits.h> + +#endif /* !_LIMITS_H_ */ diff --git a/include/locale.h b/include/locale.h new file mode 100644 index 000000000000..86eda17d34d7 --- /dev/null +++ b/include/locale.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1991, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)locale.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _LOCALE_H_ +#define _LOCALE_H_ + +struct lconv { +	char	*decimal_point; +	char	*thousands_sep; +	char	*grouping; +	char	*int_curr_symbol; +	char	*currency_symbol; +	char	*mon_decimal_point; +	char	*mon_thousands_sep; +	char	*mon_grouping; +	char	*positive_sign; +	char	*negative_sign; +	char	int_frac_digits; +	char	frac_digits; +	char	p_cs_precedes; +	char	p_sep_by_space; +	char	n_cs_precedes; +	char	n_sep_by_space; +	char	p_sign_posn; +	char	n_sign_posn; +}; + +#ifndef NULL +#define	NULL	0 +#endif + +#define	LC_ALL		0 +#define	LC_COLLATE	1 +#define	LC_CTYPE	2 +#define	LC_MONETARY	3 +#define	LC_NUMERIC	4 +#define	LC_TIME		5 + +#define	_LC_LAST	6		/* marks end */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +struct lconv	*localeconv __P((void)); +char		*setlocale __P((int, const char *)); +__END_DECLS + +#endif /* _LOCALE_H_ */ diff --git a/include/math.h b/include/math.h new file mode 100644 index 000000000000..dd0b20cfe429 --- /dev/null +++ b/include/math.h @@ -0,0 +1,132 @@ +/* + * Copyright (c) 1985, 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)math.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_MATH_H_ +#define	_MATH_H_ + +#if defined(vax) || defined(tahoe)		/* DBL_MAX from float.h */ +#define	HUGE_VAL	1.701411834604692294E+38 +#else +#define	HUGE_VAL	1e500			/* IEEE: positive infinity */ +#endif + +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +#if defined(vax) || defined(tahoe) +/* + * HUGE for the VAX and Tahoe converts to the largest possible F-float value. + * This implies an understanding of the conversion behavior of atof(3).  It + * was defined to be the largest float so that overflow didn't occur when it + * was assigned to a single precision number.  HUGE_VAL is strongly preferred. + */ +#define	HUGE	1.701411733192644270E+38		 +#else +#define	HUGE	HUGE_VAL +#endif + +#define	M_E		2.7182818284590452354	/* e */ +#define	M_LOG2E		1.4426950408889634074	/* log 2e */ +#define	M_LOG10E	0.43429448190325182765	/* log 10e */ +#define	M_LN2		0.69314718055994530942	/* log e2 */ +#define	M_LN10		2.30258509299404568402	/* log e10 */ +#define	M_PI		3.14159265358979323846	/* pi */ +#define	M_PI_2		1.57079632679489661923	/* pi/2 */ +#define	M_PI_4		0.78539816339744830962	/* pi/4 */ +#define	M_1_PI		0.31830988618379067154	/* 1/pi */ +#define	M_2_PI		0.63661977236758134308	/* 2/pi */ +#define	M_2_SQRTPI	1.12837916709551257390	/* 2/sqrt(pi) */ +#define	M_SQRT2		1.41421356237309504880	/* sqrt(2) */ +#define	M_SQRT1_2	0.70710678118654752440	/* 1/sqrt(2) */ +#endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +__pure	double	acos __P((double)); +__pure	double	asin __P((double)); +__pure	double	atan __P((double)); +__pure	double	atan2 __P((double, double)); +__pure	double	ceil __P((double)); +__pure	double	cos __P((double)); +__pure	double	cosh __P((double)); +__pure	double	exp __P((double)); +__pure	double	fabs __P((double)); +__pure	double	floor __P((double)); +__pure	double	fmod __P((double, double)); +	double	frexp __P((double, int *)); +__pure	double	ldexp __P((double, int)); +__pure	double	log __P((double)); +__pure	double	log10 __P((double)); +	double	modf __P((double, double *)); +__pure	double	pow __P((double, double)); +__pure	double	sin __P((double)); +__pure	double	sinh __P((double)); +__pure	double	sqrt __P((double)); +__pure	double	tan __P((double)); +__pure	double	tanh __P((double)); + +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +__pure	double	acosh __P((double)); +__pure	double	asinh __P((double)); +__pure	double	atanh __P((double)); +	double	cabs();	/* we can't describe cabs()'s argument properly */ +__pure	double	cbrt __P((double)); +__pure	double	copysign __P((double, double)); +__pure	double	drem __P((double, double)); +__pure	double	erf __P((double)); +__pure	double	erfc __P((double)); +__pure	double	expm1 __P((double)); +__pure	int	finite __P((double)); +__pure	double	hypot __P((double, double)); +#if defined(vax) || defined(tahoe) +__pure	double	infnan __P((int)); +#endif +__pure	int	isinf __P((double)); +__pure	int	isnan __P((double)); +__pure	double	j0 __P((double)); +__pure	double	j1 __P((double)); +__pure	double	jn __P((int, double)); +__pure	double	lgamma __P((double)); +__pure	double	log1p __P((double)); +__pure	double	logb __P((double)); +__pure	double	rint __P((double)); +__pure	double	scalb __P((double, int)); +__pure	double	y0 __P((double)); +__pure	double	y1 __P((double)); +__pure	double	yn __P((int, double)); +#endif + +__END_DECLS + +#endif /* _MATH_H_ */ diff --git a/include/memory.h b/include/memory.h new file mode 100644 index 000000000000..cb9c8b5f77a8 --- /dev/null +++ b/include/memory.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 1988, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)memory.h	8.1 (Berkeley) 6/2/93 + */ + +#include <string.h> diff --git a/include/mpool.h b/include/mpool.h new file mode 100644 index 000000000000..910e0782aa9d --- /dev/null +++ b/include/mpool.h @@ -0,0 +1,135 @@ +/*- + * Copyright (c) 1991, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)mpool.h	8.1 (Berkeley) 6/2/93 + */ + +/* + * The memory pool scheme is a simple one.  Each in memory page is referenced + * by a bucket which is threaded in three ways.  All active pages are threaded + * on a hash chain (hashed by the page number) and an lru chain.  Inactive + * pages are threaded on a free chain.  Each reference to a memory pool is + * handed an MPOOL which is the opaque cookie passed to all of the memory + * routines. + */ +#define	HASHSIZE	128 +#define	HASHKEY(pgno)	((pgno - 1) % HASHSIZE) + +/* The BKT structures are the elements of the lists. */ +typedef struct BKT { +	struct BKT	*hnext;		/* next hash bucket */ +	struct BKT	*hprev;		/* previous hash bucket */ +	struct BKT	*cnext;		/* next free/lru bucket */ +	struct BKT	*cprev;		/* previous free/lru bucket */ +	void		*page;		/* page */ +	pgno_t		pgno;		/* page number */ + +#define	MPOOL_DIRTY	0x01		/* page needs to be written */ +#define	MPOOL_PINNED	0x02		/* page is pinned into memory */ +	unsigned long	flags;		/* flags */ +} BKT; + +/* The BKTHDR structures are the heads of the lists. */ +typedef struct BKTHDR { +	struct BKT	*hnext;		/* next hash bucket */ +	struct BKT	*hprev;		/* previous hash bucket */ +	struct BKT	*cnext;		/* next free/lru bucket */ +	struct BKT	*cprev;		/* previous free/lru bucket */ +} BKTHDR; + +typedef struct MPOOL { +	BKTHDR	free;			/* The free list. */ +	BKTHDR	lru;			/* The LRU list. */ +	BKTHDR	hashtable[HASHSIZE];	/* Hashed list by page number. */ +	pgno_t	curcache;		/* Current number of cached pages. */ +	pgno_t	maxcache;		/* Max number of cached pages. */ +	pgno_t	npages;			/* Number of pages in the file. */ +	u_long	pagesize;		/* File page size. */ +	int	fd;			/* File descriptor. */ +					/* Page in conversion routine. */ +	void    (*pgin) __P((void *, pgno_t, void *)); +					/* Page out conversion routine. */ +	void    (*pgout) __P((void *, pgno_t, void *)); +	void	*pgcookie;		/* Cookie for page in/out routines. */ +#ifdef STATISTICS +	unsigned long	cachehit; +	unsigned long	cachemiss; +	unsigned long	pagealloc; +	unsigned long	pageflush; +	unsigned long	pageget; +	unsigned long	pagenew; +	unsigned long	pageput; +	unsigned long	pageread; +	unsigned long	pagewrite; +#endif +} MPOOL; + +#ifdef __MPOOLINTERFACE_PRIVATE +/* Macros to insert/delete into/from hash chain. */ +#define rmhash(bp) { \ +        (bp)->hprev->hnext = (bp)->hnext; \ +        (bp)->hnext->hprev = (bp)->hprev; \ +} +#define inshash(bp, pg) { \ +	hp = &mp->hashtable[HASHKEY(pg)]; \ +        (bp)->hnext = hp->hnext; \ +        (bp)->hprev = (struct BKT *)hp; \ +        hp->hnext->hprev = (bp); \ +        hp->hnext = (bp); \ +} + +/* Macros to insert/delete into/from lru and free chains. */ +#define	rmchain(bp) { \ +        (bp)->cprev->cnext = (bp)->cnext; \ +        (bp)->cnext->cprev = (bp)->cprev; \ +} +#define inschain(bp, dp) { \ +        (bp)->cnext = (dp)->cnext; \ +        (bp)->cprev = (struct BKT *)(dp); \ +        (dp)->cnext->cprev = (bp); \ +        (dp)->cnext = (bp); \ +} +#endif + +__BEGIN_DECLS +MPOOL	*mpool_open __P((DBT *, int, pgno_t, pgno_t)); +void	 mpool_filter __P((MPOOL *, void (*)(void *, pgno_t, void *), +	    void (*)(void *, pgno_t, void *), void *)); +void	*mpool_new __P((MPOOL *, pgno_t *)); +void	*mpool_get __P((MPOOL *, pgno_t, u_int)); +int	 mpool_put __P((MPOOL *, void *, u_int)); +int	 mpool_sync __P((MPOOL *)); +int	 mpool_close __P((MPOOL *)); +#ifdef STATISTICS +void	 mpool_stat __P((MPOOL *)); +#endif +__END_DECLS diff --git a/include/ndbm.h b/include/ndbm.h new file mode 100644 index 000000000000..a545bca1326e --- /dev/null +++ b/include/ndbm.h @@ -0,0 +1,77 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Margo Seltzer. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)ndbm.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _NDBM_H_ +#define	_NDBM_H_ + +#include <db.h> + +/* Map dbm interface onto db(3). */ +#define DBM_RDONLY	O_RDONLY + +/* Flags to dbm_store(). */ +#define DBM_INSERT      0 +#define DBM_REPLACE     1 + +/* + * The db(3) support for ndbm(3) always appends this suffix to the + * file name to avoid overwriting the user's original database. + */ +#define	DBM_SUFFIX	".db" + +typedef struct { +	char *dptr; +	int dsize; +} datum; + +typedef DB DBM; +#define	dbm_pagfno(a)	DBM_PAGFNO_NOT_AVAILABLE + +__BEGIN_DECLS +void	 dbm_close __P((DBM *)); +int	 dbm_delete __P((DBM *, datum)); +datum	 dbm_fetch __P((DBM *, datum)); +datum	 dbm_firstkey __P((DBM *)); +long	 dbm_forder __P((DBM *, datum)); +datum	 dbm_nextkey __P((DBM *)); +DBM	*dbm_open __P((const char *, int, int)); +int	 dbm_store __P((DBM *, datum, datum, int)); +int	 dbm_dirfno __P((DBM *)); +__END_DECLS + +#endif /* !_NDBM_H_ */ diff --git a/include/netdb.h b/include/netdb.h new file mode 100644 index 000000000000..abf4c5772f5d --- /dev/null +++ b/include/netdb.h @@ -0,0 +1,143 @@ +/*- + * Copyright (c) 1980, 1983, 1988, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *      @(#)netdb.h	8.1 (Berkeley) 6/2/93 + *	$Id: netdb.h,v 4.9.1.2 1993/05/17 09:59:01 vixie Exp $ + * - + * Portions Copyright (c) 1993 by Digital Equipment Corporation. + *  + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies, and that + * the name of Digital Equipment Corporation not be used in advertising or + * publicity pertaining to distribution of the document or software without + * specific, written prior permission. + *  + * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT + * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * - + * --Copyright-- + */ + +#ifndef _NETDB_H_ +#define _NETDB_H_ + +#define	_PATH_HEQUIV	"/etc/hosts.equiv" +#define	_PATH_HOSTS	"/etc/hosts" +#define	_PATH_NETWORKS	"/etc/networks" +#define	_PATH_PROTOCOLS	"/etc/protocols" +#define	_PATH_SERVICES	"/etc/services" + +/* + * Structures returned by network data base library.  All addresses are + * supplied in host order, and returned in network order (suitable for + * use in system calls). + */ +struct	hostent { +	char	*h_name;	/* official name of host */ +	char	**h_aliases;	/* alias list */ +	int	h_addrtype;	/* host address type */ +	int	h_length;	/* length of address */ +	char	**h_addr_list;	/* list of addresses from name server */ +#define	h_addr	h_addr_list[0]	/* address, for backward compatiblity */ +}; + +/* + * Assumption here is that a network number + * fits in an unsigned long -- probably a poor one. + */ +struct	netent { +	char		*n_name;	/* official name of net */ +	char		**n_aliases;	/* alias list */ +	int		n_addrtype;	/* net address type */ +	unsigned long	n_net;		/* network # */ +}; + +struct	servent { +	char	*s_name;	/* official service name */ +	char	**s_aliases;	/* alias list */ +	int	s_port;		/* port # */ +	char	*s_proto;	/* protocol to use */ +}; + +struct	protoent { +	char	*p_name;	/* official protocol name */ +	char	**p_aliases;	/* alias list */ +	int	p_proto;	/* protocol # */ +}; + +/* + * Error return codes from gethostbyname() and gethostbyaddr() + * (left in extern int h_errno). + */ + +#define	HOST_NOT_FOUND	1 /* Authoritative Answer Host not found */ +#define	TRY_AGAIN	2 /* Non-Authoritive Host not found, or SERVERFAIL */ +#define	NO_RECOVERY	3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ +#define	NO_DATA		4 /* Valid name, no data record of requested type */ +#define	NO_ADDRESS	NO_DATA		/* no address, look for MX record */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +void		endhostent __P((void)); +void		endnetent __P((void)); +void		endprotoent __P((void)); +void		endservent __P((void)); +struct hostent	*gethostbyaddr __P((const char *, int, int)); +struct hostent	*gethostbyname __P((const char *)); +struct hostent	*gethostent __P((void)); +struct netent	*getnetbyaddr __P((long, int)); /* u_long? */ +struct netent	*getnetbyname __P((const char *)); +struct netent	*getnetent __P((void)); +struct protoent	*getprotobyname __P((const char *)); +struct protoent	*getprotobynumber __P((int)); +struct protoent	*getprotoent __P((void)); +struct servent	*getservbyname __P((const char *, const char *)); +struct servent	*getservbyport __P((int, const char *)); +struct servent	*getservent __P((void)); +void		herror __P((const char *)); +char		*hstrerror __P((int)); +void		sethostent __P((int)); +/* void		sethostfile __P((const char *)); */ +void		setnetent __P((int)); +void		setprotoent __P((int)); +void		setservent __P((int)); +__END_DECLS + +#endif /* !_NETDB_H_ */ diff --git a/include/nlist.h b/include/nlist.h new file mode 100644 index 000000000000..11e0a43848f6 --- /dev/null +++ b/include/nlist.h @@ -0,0 +1,85 @@ +/*- + * Copyright (c) 1991, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)nlist.h	8.2 (Berkeley) 1/21/94 + */ + +#ifndef _NLIST_H_ +#define	_NLIST_H_ + +/* + * Symbol table entry format.  The #ifdef's are so that programs including + * nlist.h can initialize nlist structures statically. + */ +struct nlist { +#ifdef _AOUT_INCLUDE_ +	union { +		char *n_name;	/* symbol name (in memory) */ +		long n_strx;	/* file string table offset (on disk) */ +	} n_un; +#else +	char *n_name;		/* symbol name (in memory) */ +#endif + +#define	N_UNDF	0x00		/* undefined */ +#define	N_ABS	0x02		/* absolute address */ +#define	N_TEXT	0x04		/* text segment */ +#define	N_DATA	0x06		/* data segment */ +#define	N_BSS	0x08		/* bss segment */ +#define	N_COMM	0x12		/* common reference */ +#define	N_FN	0x1e		/* file name */ + +#define	N_EXT	0x01		/* external (global) bit, OR'ed in */ +#define	N_TYPE	0x1e		/* mask for all the type bits */ +	unsigned char n_type;	/* type defines */ + +	char n_other;		/* spare */ +#define	n_hash	n_desc		/* used internally by ld(1); XXX */ +	short n_desc;		/* used by stab entries */ +	unsigned long n_value;	/* address/value of the symbol */ +}; + +#define	N_FORMAT	"%08x"	/* namelist value format; XXX */ +#define	N_STAB		0x0e0	/* mask for debugger symbols -- stab(5) */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +int nlist __P((const char *, struct nlist *)); +__END_DECLS + +#endif /* !_NLIST_H_ */ diff --git a/include/paths.h b/include/paths.h new file mode 100644 index 000000000000..5f7a6b4cd56e --- /dev/null +++ b/include/paths.h @@ -0,0 +1,69 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)paths.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _PATHS_H_ +#define	_PATHS_H_ + +/* Default search path. */ +#define	_PATH_DEFPATH	"/usr/bin:/bin" +/* All standard utilities path. */ +#define	_PATH_STDPATH \ +	"/usr/bin:/bin:/usr/sbin:/sbin:/usr/contrib/bin:/usr/old/bin" + +#define	_PATH_BSHELL	"/bin/sh" +#define	_PATH_CONSOLE	"/dev/console" +#define	_PATH_CSHELL	"/bin/csh" +#define	_PATH_DEVDB	"/var/run/dev.db" +#define	_PATH_DEVNULL	"/dev/null" +#define	_PATH_DRUM	"/dev/drum" +#define	_PATH_KMEM	"/dev/kmem" +#define	_PATH_MAILDIR	"/var/mail" +#define	_PATH_MAN	"/usr/share/man" +#define	_PATH_MEM	"/dev/mem" +#define	_PATH_NOLOGIN	"/etc/nologin" +#define	_PATH_SENDMAIL	"/usr/sbin/sendmail" +#define	_PATH_SHELLS	"/etc/shells" +#define	_PATH_TTY	"/dev/tty" +#define	_PATH_UNIX	"/vmunix" +#define	_PATH_VI	"/usr/bin/vi" + +/* Provide trailing slash, since mostly used for building pathnames. */ +#define	_PATH_DEV	"/dev/" +#define	_PATH_TMP	"/tmp/" +#define	_PATH_VARDB	"/var/db/" +#define	_PATH_VARRUN	"/var/run/" +#define	_PATH_VARTMP	"/var/tmp/" + +#endif /* !_PATHS_H_ */ diff --git a/include/protocols/dumprestore.h b/include/protocols/dumprestore.h new file mode 100644 index 000000000000..f6f6845e05d4 --- /dev/null +++ b/include/protocols/dumprestore.h @@ -0,0 +1,112 @@ +/* + * Copyright (c) 1980, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)dumprestore.h	8.2 (Berkeley) 1/21/94 + */ + +#ifndef _DUMPRESTORE_H_ +#define _DUMPRESTORE_H_ + +/* + * TP_BSIZE is the size of file blocks on the dump tapes. + * Note that TP_BSIZE must be a multiple of DEV_BSIZE. + * + * NTREC is the number of TP_BSIZE blocks that are written + * in each tape record. HIGHDENSITYTREC is the number of + * TP_BSIZE blocks that are written in each tape record on + * 6250 BPI or higher density tapes. + * + * TP_NINDIR is the number of indirect pointers in a TS_INODE + * or TS_ADDR record. Note that it must be a power of two. + */ +#define TP_BSIZE	1024 +#define NTREC   	10 +#define HIGHDENSITYTREC	32 +#define TP_NINDIR	(TP_BSIZE/2) +#define LBLSIZE		16 +#define NAMELEN		64 + +#define OFS_MAGIC   	(int)60011 +#define NFS_MAGIC   	(int)60012 +#define CHECKSUM	(int)84446 + +union u_spcl { +	char dummy[TP_BSIZE]; +	struct	s_spcl { +		long	c_type;		    /* record type (see below) */ +		time_t	c_date;		    /* date of this dump */ +		time_t	c_ddate;	    /* date of previous dump */ +		long	c_volume;	    /* dump volume number */ +		daddr_t	c_tapea;	    /* logical block of this record */ +		ino_t	c_inumber;	    /* number of inode */ +		long	c_magic;	    /* magic number (see above) */ +		long	c_checksum;	    /* record checksum */ +		struct	dinode	c_dinode;   /* ownership and mode of inode */ +		long	c_count;	    /* number of valid c_addr entries */ +		char	c_addr[TP_NINDIR];  /* 1 => data; 0 => hole in inode */ +		char	c_label[LBLSIZE];   /* dump label */ +		long	c_level;	    /* level of this dump */ +		char	c_filesys[NAMELEN]; /* name of dumpped file system */ +		char	c_dev[NAMELEN];	    /* name of dumpped device */ +		char	c_host[NAMELEN];    /* name of dumpped host */ +		long	c_flags;	    /* additional information */ +		long	c_firstrec;	    /* first record on volume */ +		long	c_spare[32];	    /* reserved for future uses */ +	} s_spcl; +} u_spcl; +#define spcl u_spcl.s_spcl +/* + * special record types + */ +#define TS_TAPE 	1	/* dump tape header */ +#define TS_INODE	2	/* beginning of file record */ +#define TS_ADDR 	4	/* continuation of file record */ +#define TS_BITS 	3	/* map of inodes on tape */ +#define TS_CLRI 	6	/* map of inodes deleted since last dump */ +#define TS_END  	5	/* end of volume marker */ + +/* + * flag values + */ +#define DR_NEWHEADER	0x0001	/* new format tape header */ +#define DR_NEWINODEFMT	0x0002	/* new format inodes on tape */ + +#define	DUMPOUTFMT	"%-16s %c %s"		/* for printf */ +						/* name, level, ctime(date) */ +#define	DUMPINFMT	"%16s %c %[^\n]\n"	/* inverse for scanf */ + +#endif /* !_DUMPRESTORE_H_ */ diff --git a/include/protocols/routed.h b/include/protocols/routed.h new file mode 100644 index 000000000000..f41fc2182ae2 --- /dev/null +++ b/include/protocols/routed.h @@ -0,0 +1,104 @@ +/*- + * Copyright (c) 1983, 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)routed.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _ROUTED_H_ +#define	_ROUTED_H_ + +/* + * Routing Information Protocol + * + * Derived from Xerox NS Routing Information Protocol + * by changing 32-bit net numbers to sockaddr's and + * padding stuff to 32-bit boundaries. + */ +#define	RIPVERSION	1 + +struct netinfo { +	struct	sockaddr rip_dst;	/* destination net/host */ +	int	rip_metric;		/* cost of route */ +}; + +struct rip { +	u_char	rip_cmd;		/* request/response */ +	u_char	rip_vers;		/* protocol version # */ +	u_char	rip_res1[2];		/* pad to 32-bit boundary */ +	union { +		struct	netinfo ru_nets[1];	/* variable length... */ +		char	ru_tracefile[1];	/* ditto ... */ +	} ripun; +#define	rip_nets	ripun.ru_nets +#define	rip_tracefile	ripun.ru_tracefile +}; +  +/* + * Packet types. + */ +#define	RIPCMD_REQUEST		1	/* want info */ +#define	RIPCMD_RESPONSE		2	/* responding to request */ +#define	RIPCMD_TRACEON		3	/* turn tracing on */ +#define	RIPCMD_TRACEOFF		4	/* turn it off */ + +#define	RIPCMD_MAX		5 +#ifdef RIPCMDS +char *ripcmds[RIPCMD_MAX] = +  { "#0", "REQUEST", "RESPONSE", "TRACEON", "TRACEOFF" }; +#endif + +#define	HOPCNT_INFINITY		16	/* per Xerox NS */ +#define	MAXPACKETSIZE		512	/* max broadcast size */ + +/* + * Timer values used in managing the routing table. + * Complete tables are broadcast every SUPPLY_INTERVAL seconds. + * If changes occur between updates, dynamic updates containing only changes + * may be sent.  When these are sent, a timer is set for a random value + * between MIN_WAITTIME and MAX_WAITTIME, and no additional dynamic updates + * are sent until the timer expires. + * + * Every update of a routing entry forces an entry's timer to be reset. + * After EXPIRE_TIME without updates, the entry is marked invalid, + * but held onto until GARBAGE_TIME so that others may + * see it "be deleted". + */ +#define	TIMER_RATE		30	/* alarm clocks every 30 seconds */ + +#define	SUPPLY_INTERVAL		30	/* time to supply tables */ +#define	MIN_WAITTIME		2	/* min. interval to broadcast changes */ +#define	MAX_WAITTIME		5	/* max. time to delay changes */ + +#define	EXPIRE_TIME		180	/* time to mark entry invalid */ +#define	GARBAGE_TIME		240	/* time to garbage collect */ + +#endif /* !_ROUTED_H_ */ diff --git a/include/protocols/rwhod.h b/include/protocols/rwhod.h new file mode 100644 index 000000000000..93008a41818a --- /dev/null +++ b/include/protocols/rwhod.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 1983, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)rwhod.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _RWHOD_H_ +#define	_RWHOD_H_ + +/* + * rwho protocol packet format. + */ +struct	outmp { +	char	out_line[8];		/* tty name */ +	char	out_name[8];		/* user id */ +	long	out_time;		/* time on */ +}; + +struct	whod { +	char	wd_vers;		/* protocol version # */ +	char	wd_type;		/* packet type, see below */ +	char	wd_pad[2]; +	int	wd_sendtime;		/* time stamp by sender */ +	int	wd_recvtime;		/* time stamp applied by receiver */ +	char	wd_hostname[32];	/* hosts's name */ +	int	wd_loadav[3];		/* load average as in uptime */ +	int	wd_boottime;		/* time system booted */ +	struct	whoent { +		struct	outmp we_utmp;	/* active tty info */ +		int	we_idle;	/* tty idle time */ +	} wd_we[1024 / sizeof (struct whoent)]; +}; + +#define	WHODVERSION	1 +#define	WHODTYPE_STATUS	1		/* host status */ + +#define	_PATH_RWHODIR	"/var/rwho" + +#endif /* !_RWHOD_H_ */ diff --git a/include/protocols/talkd.h b/include/protocols/talkd.h new file mode 100644 index 000000000000..0d30d5bfa3ee --- /dev/null +++ b/include/protocols/talkd.h @@ -0,0 +1,114 @@ +/* + * Copyright (c) 1983, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)talkd.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _TALKD_H_ +#define	_TALKD_H_ + +/* + * This describes the protocol used by the talk server and clients. + * + * The talk server acts a repository of invitations, responding to + * requests by clients wishing to rendezvous for the purpose of + * holding a conversation.  In normal operation, a client, the caller, + * initiates a rendezvous by sending a CTL_MSG to the server of + * type LOOK_UP.  This causes the server to search its invitation + * tables to check if an invitation currently exists for the caller + * (to speak to the callee specified in the message).  If the lookup + * fails, the caller then sends an ANNOUNCE message causing the server + * to broadcast an announcement on the callee's login ports requesting + * contact.  When the callee responds, the local server uses the + * recorded invitation to respond with the appropriate rendezvous + * address and the caller and callee client programs establish a + * stream connection through which the conversation takes place. + */ + +/* + * Client->server request message format. + */ +typedef struct { +	u_char	vers;		/* protocol version */ +	u_char	type;		/* request type, see below */ +	u_char	answer;		/* not used */ +	u_char	pad; +	u_long	id_num;		/* message id */ +	struct	osockaddr addr;		/* old (4.3) style */ +	struct	osockaddr ctl_addr;	/* old (4.3) style */ +	long	pid;		/* caller's process id */ +#define	NAME_SIZE	12 +	char	l_name[NAME_SIZE];/* caller's name */ +	char	r_name[NAME_SIZE];/* callee's name */ +#define	TTY_SIZE	16 +	char	r_tty[TTY_SIZE];/* callee's tty name */ +} CTL_MSG; + +/* + * Server->client response message format. + */ +typedef struct { +	u_char	vers;		/* protocol version */ +	u_char	type;		/* type of request message, see below */ +	u_char	answer;		/* respose to request message, see below */ +	u_char	pad; +	u_long	id_num;		/* message id */ +	struct	osockaddr addr;	/* address for establishing conversation */ +} CTL_RESPONSE; + +#define	TALK_VERSION	1		/* protocol version */ + +/* message type values */ +#define LEAVE_INVITE	0	/* leave invitation with server */ +#define LOOK_UP		1	/* check for invitation by callee */ +#define DELETE		2	/* delete invitation by caller */ +#define ANNOUNCE	3	/* announce invitation by caller */ + +/* answer values */ +#define SUCCESS		0	/* operation completed properly */ +#define NOT_HERE	1	/* callee not logged in */ +#define FAILED		2	/* operation failed for unexplained reason */ +#define MACHINE_UNKNOWN	3	/* caller's machine name unknown */ +#define PERMISSION_DENIED 4	/* callee's tty doesn't permit announce */ +#define UNKNOWN_REQUEST	5	/* request has invalid type value */ +#define	BADVERSION	6	/* request has invalid protocol version */ +#define	BADADDR		7	/* request has invalid addr value */ +#define	BADCTLADDR	8	/* request has invalid ctl_addr value */ + +/* + * Operational parameters. + */ +#define MAX_LIFE	60	/* max time daemon saves invitations */ +/* RING_WAIT should be 10's of seconds less than MAX_LIFE */ +#define RING_WAIT	30	/* time to wait before resending invitation */ + +#endif /* !_TALKD_H_ */ diff --git a/include/protocols/timed.h b/include/protocols/timed.h new file mode 100644 index 000000000000..1b569f531262 --- /dev/null +++ b/include/protocols/timed.h @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1983, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)timed.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_TIMED_H_ +#define	_TIMED_H_ + +/* + * Time Synchronization Protocol + */ + +#define	TSPVERSION	1 +#define ANYADDR 	NULL + +struct tsp { +	u_char	tsp_type; +	u_char	tsp_vers; +	u_short	tsp_seq; +	union { +		struct timeval tspu_time; +		char tspu_hopcnt; +	} tsp_u; +	char tsp_name[MAXHOSTNAMELEN]; +}; + +#define	tsp_time	tsp_u.tspu_time +#define	tsp_hopcnt	tsp_u.tspu_hopcnt +  +/* + * Command types. + */ +#define	TSP_ANY			0	/* match any types */ +#define	TSP_ADJTIME		1	/* send adjtime */ +#define	TSP_ACK			2	/* generic acknowledgement */ +#define	TSP_MASTERREQ		3	/* ask for master's name */  +#define	TSP_MASTERACK		4	/* acknowledge master request */ +#define	TSP_SETTIME		5	/* send network time */ +#define	TSP_MASTERUP		6	/* inform slaves that master is up */ +#define	TSP_SLAVEUP		7	/* slave is up but not polled */ +#define	TSP_ELECTION		8	/* advance candidature for master */ +#define	TSP_ACCEPT		9	/* support candidature of master */ +#define	TSP_REFUSE		10	/* reject candidature of master */ +#define	TSP_CONFLICT		11	/* two or more masters present */ +#define	TSP_RESOLVE		12	/* masters' conflict resolution */ +#define	TSP_QUIT		13	/* reject candidature if master is up */ +#define	TSP_DATE		14	/* reset the time (date command) */ +#define	TSP_DATEREQ		15	/* remote request to reset the time */ +#define	TSP_DATEACK		16	/* acknowledge time setting  */ +#define	TSP_TRACEON		17	/* turn tracing on */ +#define	TSP_TRACEOFF		18	/* turn tracing off */ +#define	TSP_MSITE		19	/* find out master's site */ +#define	TSP_MSITEREQ		20	/* remote master's site request */ +#define	TSP_TEST		21	/* for testing election algo */ +#define	TSP_SETDATE		22	/* New from date command */ +#define	TSP_SETDATEREQ		23	/* New remote for above */ +#define	TSP_LOOP		24	/* loop detection packet */ + +#define	TSPTYPENUMBER		25 + +#ifdef TSPTYPES +char *tsptype[TSPTYPENUMBER] = +  { "ANY", "ADJTIME", "ACK", "MASTERREQ", "MASTERACK", "SETTIME", "MASTERUP",  +  "SLAVEUP", "ELECTION", "ACCEPT", "REFUSE", "CONFLICT", "RESOLVE", "QUIT",  +  "DATE", "DATEREQ", "DATEACK", "TRACEON", "TRACEOFF", "MSITE", "MSITEREQ", +  "TEST", "SETDATE", "SETDATEREQ", "LOOP" }; +#endif + +#endif /* !_TIMED_H_ */ diff --git a/include/pwd.h b/include/pwd.h new file mode 100644 index 000000000000..4f0364d26a9f --- /dev/null +++ b/include/pwd.h @@ -0,0 +1,90 @@ +/*- + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)pwd.h	8.2 (Berkeley) 1/21/94 + */ + +#ifndef _PWD_H_ +#define	_PWD_H_ + +#include <sys/types.h> + +#ifndef _POSIX_SOURCE +#define	_PATH_PASSWD		"/etc/passwd" +#define	_PATH_MASTERPASSWD	"/etc/master.passwd" + +#define	_PATH_MP_DB		"/etc/pwd.db" +#define	_PATH_SMP_DB		"/etc/spwd.db" + +#define	_PATH_PWD_MKDB		"/usr/sbin/pwd_mkdb" + +#define	_PW_KEYBYNAME		'1'	/* stored by name */ +#define	_PW_KEYBYNUM		'2'	/* stored by entry in the "file" */ +#define	_PW_KEYBYUID		'3'	/* stored by uid */ + +#define	_PASSWORD_EFMT1		'_'	/* extended encryption format */ + +#define	_PASSWORD_LEN		128	/* max length, not counting NULL */ +#endif + +struct passwd { +	char	*pw_name;		/* user name */ +	char	*pw_passwd;		/* encrypted password */ +	int	pw_uid;			/* user uid */ +	int	pw_gid;			/* user gid */ +	time_t	pw_change;		/* password change time */ +	char	*pw_class;		/* user access class */ +	char	*pw_gecos;		/* Honeywell login info */ +	char	*pw_dir;		/* home directory */ +	char	*pw_shell;		/* default shell */ +	time_t	pw_expire;		/* account expiration */ +}; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +struct passwd	*getpwuid __P((uid_t)); +struct passwd	*getpwnam __P((const char *)); +#ifndef _POSIX_SOURCE +struct passwd	*getpwent __P((void)); +int		 setpassent __P((int)); +int		 setpwent __P((void)); +void		 endpwent __P((void)); +#endif +__END_DECLS + +#endif /* !_PWD_H_ */ diff --git a/include/ranlib.h b/include/ranlib.h new file mode 100644 index 000000000000..c8429190e9ef --- /dev/null +++ b/include/ranlib.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)ranlib.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _RANLIB_H_ +#define	_RANLIB_H_ + +#define	RANLIBMAG	"__.SYMDEF"	/* archive file name */ +#define	RANLIBSKEW	3		/* creation time offset */ + +struct ranlib { +	union { +		long ran_strx;		/* string table index */ +		char *ran_name;		/* in memory symbol name */ +	} ran_un; +	long ran_off;			/* archive file offset */ +}; + +#endif /* !_RANLIB_H_ */ diff --git a/include/regex.h b/include/regex.h new file mode 100644 index 000000000000..1611d4b87921 --- /dev/null +++ b/include/regex.h @@ -0,0 +1,106 @@ +/*- + * Copyright (c) 1992 Henry Spencer. + * Copyright (c) 1992, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Henry Spencer of the University of Toronto. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)regex.h	8.2 (Berkeley) 1/3/94 + */ + +#ifndef _REGEX_H_ +#define	_REGEX_H_ + +#include <sys/cdefs.h> + +/* types */ +typedef off_t regoff_t; + +typedef struct { +	int re_magic; +	size_t re_nsub;		/* number of parenthesized subexpressions */ +	__const char *re_endp;	/* end pointer for REG_PEND */ +	struct re_guts *re_g;	/* none of your business :-) */ +} regex_t; + +typedef struct { +	regoff_t rm_so;		/* start of match */ +	regoff_t rm_eo;		/* end of match */ +} regmatch_t; + +/* regcomp() flags */ +#define	REG_BASIC	0000 +#define	REG_EXTENDED	0001 +#define	REG_ICASE	0002 +#define	REG_NOSUB	0004 +#define	REG_NEWLINE	0010 +#define	REG_NOSPEC	0020 +#define	REG_PEND	0040 +#define	REG_DUMP	0200 + +/* regerror() flags */ +#define	REG_NOMATCH	 1 +#define	REG_BADPAT	 2 +#define	REG_ECOLLATE	 3 +#define	REG_ECTYPE	 4 +#define	REG_EESCAPE	 5 +#define	REG_ESUBREG	 6 +#define	REG_EBRACK	 7 +#define	REG_EPAREN	 8 +#define	REG_EBRACE	 9 +#define	REG_BADBR	10 +#define	REG_ERANGE	11 +#define	REG_ESPACE	12 +#define	REG_BADRPT	13 +#define	REG_EMPTY	14 +#define	REG_ASSERT	15 +#define	REG_INVARG	16 +#define	REG_ATOI	255	/* convert name to number (!) */ +#define	REG_ITOA	0400	/* convert number to name (!) */ + +/* regexec() flags */ +#define	REG_NOTBOL	00001 +#define	REG_NOTEOL	00002 +#define	REG_STARTEND	00004 +#define	REG_TRACE	00400	/* tracing of execution */ +#define	REG_LARGE	01000	/* force large representation */ +#define	REG_BACKR	02000	/* force use of backref code */ + +__BEGIN_DECLS +int	regcomp __P((regex_t *, const char *, int)); +size_t	regerror __P((int, const regex_t *, char *, size_t)); +int	regexec __P((const regex_t *, +	    const char *, size_t, regmatch_t [], int)); +void	regfree __P((regex_t *)); +__END_DECLS + +#endif /* !_REGEX_H_ */ diff --git a/include/regexp.h b/include/regexp.h new file mode 100644 index 000000000000..47c8e88fa695 --- /dev/null +++ b/include/regexp.h @@ -0,0 +1,69 @@ +/* + * Copyright (c) 1986 by University of Toronto. + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley + * by Henry Spencer. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)regexp.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_REGEXP_H_ +#define	_REGEXP_H_ + +/* + * Definitions etc. for regexp(3) routines. + * + * Caveat:  this is V8 regexp(3) [actually, a reimplementation thereof], + * not the System V one. + */ +#define NSUBEXP  10 +typedef struct regexp { +	char *startp[NSUBEXP]; +	char *endp[NSUBEXP]; +	char regstart;		/* Internal use only. */ +	char reganch;		/* Internal use only. */ +	char *regmust;		/* Internal use only. */ +	int regmlen;		/* Internal use only. */ +	char program[1];	/* Unwarranted chumminess with compiler. */ +} regexp; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +regexp *regcomp __P((const char *)); +int regexec __P((const  regexp *, const char *)); +void regsub __P((const  regexp *, const char *, char *)); +void regerror __P((const char *)); +__END_DECLS + +#endif /* !_REGEXP_H_ */ diff --git a/include/resolv.h b/include/resolv.h new file mode 100644 index 000000000000..cf8fe761989c --- /dev/null +++ b/include/resolv.h @@ -0,0 +1,164 @@ +/*- + * Copyright (c) 1983, 1987, 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)resolv.h	8.1 (Berkeley) 6/2/93 + *	$Id: resolv.h,v 4.9.1.2 1993/05/17 09:59:01 vixie Exp $ + * - + * Portions Copyright (c) 1993 by Digital Equipment Corporation. + *  + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies, and that + * the name of Digital Equipment Corporation not be used in advertising or + * publicity pertaining to distribution of the document or software without + * specific, written prior permission. + *  + * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS.   IN NO EVENT SHALL DIGITAL EQUIPMENT + * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * - + * --Copyright-- + */ + +#ifndef _RESOLV_H_ +#define	_RESOLV_H_ + +#include <sys/types.h> +/* + * Resolver configuration file. + * Normally not present, but may contain the address of the + * inital name server(s) to query and the domain search list. + */ + +#ifndef _PATH_RESCONF +#define _PATH_RESCONF        "/etc/resolv.conf" +#endif + +/* + * Global defines and variables for resolver stub. + */ +#define	MAXNS			3	/* max # name servers we'll track */ +#define	MAXDFLSRCH		3	/* # default domain levels to try */ +#define	MAXDNSRCH		6	/* max # domains in search path */ +#define	LOCALDOMAINPARTS	2	/* min levels in name that is "local" */ + +#define	RES_TIMEOUT		5	/* min. seconds between retries */ + +struct __res_state { +	int	retrans;	 	/* retransmition time interval */ +	int	retry;			/* number of times to retransmit */ +	long	options;		/* option flags - see below. */ +	int	nscount;		/* number of name servers */ +	struct	sockaddr_in nsaddr_list[MAXNS];	/* address of name server */ +#define	nsaddr	nsaddr_list[0]		/* for backward compatibility */ +	u_short	id;			/* current packet id */ +	char	*dnsrch[MAXDNSRCH+1];	/* components of domain to search */ +	char	defdname[MAXDNAME];	/* default domain */ +	long	pfcode;			/* RES_PRF_ flags - see below. */ +}; + +/* + * Resolver options (keep these in synch with res_debug.c, please) + */ +#define RES_INIT	0x0001		/* address initialized */ +#define RES_DEBUG	0x0002		/* print debug messages */ +#define RES_AAONLY	0x0004		/* authoritative answers only */ +#define RES_USEVC	0x0008		/* use virtual circuit */ +#define RES_PRIMARY	0x0010		/* query primary server only */ +#define RES_IGNTC	0x0020		/* ignore trucation errors */ +#define RES_RECURSE	0x0040		/* recursion desired */ +#define RES_DEFNAMES	0x0080		/* use default domain name */ +#define RES_STAYOPEN	0x0100		/* Keep TCP socket open */ +#define RES_DNSRCH	0x0200		/* search up local domain tree */ + +#define RES_DEFAULT	(RES_RECURSE | RES_DEFNAMES | RES_DNSRCH) + +/* + * Resolver "pfcode" values.  Used by dig. + */ +#define RES_PRF_STATS	0x0001 +/*			0x0002	*/ +#define RES_PRF_CLASS   0x0004 +#define RES_PRF_CMD	0x0008 +#define RES_PRF_QUES	0x0010 +#define RES_PRF_ANS	0x0020 +#define RES_PRF_AUTH	0x0040 +#define RES_PRF_ADD	0x0080 +#define RES_PRF_HEAD1	0x0100 +#define RES_PRF_HEAD2	0x0200 +#define RES_PRF_TTLID	0x0400 +#define RES_PRF_HEADX	0x0800 +#define RES_PRF_QUERY	0x1000 +#define RES_PRF_REPLY	0x2000 +#define RES_PRF_INIT    0x4000 +/*			0x8000	*/ + +#include <sys/cdefs.h> +#include <stdio.h> + +extern struct __res_state _res; + +/* Private routines shared between libc/net, named, nslookup and others. */ +#define	dn_skipname	__dn_skipname +#define	fp_query	__fp_query +#define	hostalias	__hostalias +#define	putlong		__putlong +#define	putshort	__putshort +#define p_class		__p_class +#define p_time		__p_time +#define p_type		__p_type +__BEGIN_DECLS +int	 __dn_skipname __P((const u_char *, const u_char *)); +void	 __fp_resstat __P((struct __res_state *, FILE *)); +void	 __fp_query __P((char *, FILE *)); +char	*__hostalias __P((const char *)); +void	 __putlong __P((u_int32_t, u_char *)); +void	 __putshort __P((u_short, u_char *)); +char	*__p_class __P((int)); +char	*__p_time __P((u_int32_t)); +char	*__p_type __P((int)); + +int	 dn_comp __P((const u_char *, u_char *, int, u_char **, u_char **)); +int	 dn_expand __P((const u_char *, const u_char *, const u_char *, +			u_char *, int)); +int	 res_init __P((void)); +int	 res_mkquery __P((int, const char *, int, int, const char *, int, +			  const char *, char *, int)); +int	 res_send __P((const char *, int, char *, int)); +__END_DECLS + +#endif /* !_RESOLV_H_ */ diff --git a/include/rune.h b/include/rune.h new file mode 100644 index 000000000000..c1e2b88b4595 --- /dev/null +++ b/include/rune.h @@ -0,0 +1,66 @@ +/*- + * Copyright (c) 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Paul Borman at Krystal Technologies. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)rune.h	8.1 (Berkeley) 6/27/93 + */ + +#ifndef	_RUNE_H_ +#define	_RUNE_H_ + +#include <runetype.h> +#include <stdio.h> + +#define	_PATH_LOCALE	"/usr/share/locale" + +#define _INVALID_RUNE   _CurrentRuneLocale->invalid_rune + +#define __sgetrune      _CurrentRuneLocale->sgetrune +#define __sputrune      _CurrentRuneLocale->sputrune + +#define sgetrune(s, n, r)       (*__sgetrune)((s), (n), (r)) +#define sputrune(c, s, n, r)    (*__sputrune)((c), (s), (n), (r)) + +__BEGIN_DECLS +char	*mbrune __P((const char *, rune_t)); +char	*mbrrune __P((const char *, rune_t)); +char	*mbmb __P((const char *, char *)); +long	 fgetrune __P((FILE *)); +int	 fputrune __P((rune_t, FILE *)); +int	 fungetrune __P((rune_t, FILE *)); +int	 setrunelocale __P((char *)); +void	 setinvalidrune __P((rune_t)); +__END_DECLS + +#endif	/*! _RUNE_H_ */ diff --git a/include/runetype.h b/include/runetype.h new file mode 100644 index 000000000000..4bce6588b8ba --- /dev/null +++ b/include/runetype.h @@ -0,0 +1,101 @@ +/*- + * Copyright (c) 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Paul Borman at Krystal Technologies. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)runetype.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_RUNETYPE_H_ +#define	_RUNETYPE_H_ + +#include <machine/ansi.h> +#include <sys/cdefs.h> + +#ifdef  _BSD_WCHAR_T_ +typedef _BSD_WCHAR_T_	rune_t; +typedef _BSD_WCHAR_T_	wchar_t; +#undef  _BSD_WCHAR_T_ +#endif + +#define	_CACHED_RUNES	(1 <<8 )	/* Must be a power of 2 */ +#define	_CRMASK		(~(_CACHED_RUNES - 1)) + +/* + * The lower 8 bits of runetype[] contain the digit value of the rune. + */ +typedef struct { +	rune_t		min;		/* First rune of the range */ +	rune_t		max;		/* Last rune (inclusive) of the range */ +	rune_t		map;		/* What first maps to in maps */ +	unsigned long	*types;		/* Array of types in range */ +} _RuneEntry; + +typedef struct { +	int		nranges;	/* Number of ranges stored */ +	_RuneEntry	*ranges;	/* Pointer to the ranges */ +} _RuneRange; + +typedef struct { +	char		magic[8];	/* Magic saying what version we are */ +	char		encoding[32];	/* ASCII name of this encoding */ + +	rune_t		(*sgetrune) +	    __P((const char *, unsigned int, char const **)); +	int		(*sputrune) +	    __P((rune_t, char *, unsigned int, char **)); +	rune_t		invalid_rune; + +	unsigned long	runetype[_CACHED_RUNES]; +	rune_t		maplower[_CACHED_RUNES]; +	rune_t		mapupper[_CACHED_RUNES]; + +	/* +	 * The following are to deal with Runes larger than _CACHED_RUNES - 1. +	 * Their data is actually contiguous with this structure so as to make +	 * it easier to read/write from/to disk. +	 */ +	_RuneRange	runetype_ext; +	_RuneRange	maplower_ext; +	_RuneRange	mapupper_ext; + +	void		*variable;	/* Data which depends on the encoding */ +	int		variable_len;	/* how long that data is */ +} _RuneLocale; + +#define	_RUNE_MAGIC_1	"RuneMagi"	/* Indicates version 0 of RuneLocale */ + +extern _RuneLocale _DefaultRuneLocale; +extern _RuneLocale *_CurrentRuneLocale; + +#endif	/* !_RUNETYPE_H_ */ diff --git a/include/setjmp.h b/include/setjmp.h new file mode 100644 index 000000000000..8ac1443518e3 --- /dev/null +++ b/include/setjmp.h @@ -0,0 +1,98 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)setjmp.h	8.2 (Berkeley) 1/21/94 + */ + +#ifndef _SETJMP_H_ +#define _SETJMP_H_ + +#if defined(hp300) || defined(__hp300__) || defined(luna68k) || defined(__luna68k__) +#define _JBLEN	17 +#endif + +#if defined(i386) || defined(__i386__) +#define _JBLEN	10 +#endif + +#if defined(mips) || defined(__mips__) +#define _JBLEN	83 +#endif + +#if defined(sparc) || defined(__sparc__) +#define _JBLEN	10 +#endif + +#if defined(tahoe) || defined(__tahoe__) +#define _JBLEN	10 +#endif + +#if defined(vax) || defined(__vax__) +#define _JBLEN	10 +#endif + +#ifndef _ANSI_SOURCE +/* + * WARNING: sigsetjmp() isn't supported yet, this is a placeholder. + */ +typedef int sigjmp_buf[_JBLEN + 1]; +#endif /* not ANSI */ + +typedef int jmp_buf[_JBLEN]; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +int	setjmp __P((jmp_buf)); +void	longjmp __P((jmp_buf, int)); + +#ifndef _ANSI_SOURCE +/* + * WARNING: sigsetjmp() isn't supported yet, this is a placeholder. + */ +int	sigsetjmp __P((sigjmp_buf, int)); +void	siglongjmp __P((sigjmp_buf, int)); +#endif /* not ANSI */ + +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +int	_setjmp __P((jmp_buf)); +void	_longjmp __P((jmp_buf, int)); +void	longjmperror __P((void)); +#endif /* neither ANSI nor POSIX */ +__END_DECLS + +#endif /* !_SETJMP_H_ */ diff --git a/include/sgtty.h b/include/sgtty.h new file mode 100644 index 000000000000..723c69d6f6ce --- /dev/null +++ b/include/sgtty.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 1985, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)sgtty.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef USE_OLD_TTY +#define	USE_OLD_TTY +#endif +#include <sys/ioctl.h> diff --git a/include/signal.h b/include/signal.h new file mode 100644 index 000000000000..6bb7ddf2cca4 --- /dev/null +++ b/include/signal.h @@ -0,0 +1,82 @@ +/*- + * Copyright (c) 1991, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)signal.h	8.3 (Berkeley) 3/30/94 + */ + +#ifndef _USER_SIGNAL_H +#define _USER_SIGNAL_H + +#include <sys/types.h> +#include <sys/cdefs.h> +#include <sys/signal.h> + +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +extern __const char *__const sys_signame[NSIG]; +extern __const char *__const sys_siglist[NSIG]; +#endif + +__BEGIN_DECLS +int	raise __P((int)); +#ifndef	_ANSI_SOURCE +int	kill __P((pid_t, int)); +int	sigaction __P((int, const struct sigaction *, struct sigaction *)); +int	sigaddset __P((sigset_t *, int)); +int	sigdelset __P((sigset_t *, int)); +int	sigemptyset __P((sigset_t *)); +int	sigfillset __P((sigset_t *)); +int	sigismember __P((const sigset_t *, int)); +int	sigpending __P((sigset_t *)); +int	sigprocmask __P((int, const sigset_t *, sigset_t *)); +int	sigsuspend __P((const sigset_t *)); +#ifndef _POSIX_SOURCE +int	killpg __P((pid_t, int)); +int	sigblock __P((int)); +int	siginterrupt __P((int, int)); +int	sigpause __P((int)); +int	sigreturn __P((struct sigcontext *)); +int	sigsetmask __P((int)); +int	sigstack __P((const struct sigstack *, struct sigstack *)); +int	sigvec __P((int, struct sigvec *, struct sigvec *)); +void	psignal __P((unsigned int, const char *)); +#endif	/* !_POSIX_SOURCE */ +#endif	/* !_ANSI_SOURCE */ +__END_DECLS + +/* List definitions after function declarations, or Reiser cpp gets upset. */ +#define	sigaddset(set, signo)	(*(set) |= 1 << ((signo) - 1), 0) +#define	sigdelset(set, signo)	(*(set) &= ~(1 << ((signo) - 1)), 0) +#define	sigemptyset(set)	(*(set) = 0, 0) +#define	sigfillset(set)		(*(set) = ~(sigset_t)0, 0) +#define	sigismember(set, signo)	((*(set) & (1 << ((signo) - 1))) != 0) + +#endif	/* !_USER_SIGNAL_H */ diff --git a/include/stab.h b/include/stab.h new file mode 100644 index 000000000000..0eae57992d61 --- /dev/null +++ b/include/stab.h @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 1991, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)stab.h	8.1 (Berkeley) 6/2/93 + */ + +/* + * The following are symbols used by various debuggers and by the Pascal + * compiler.  Each of them must have one (or more) of the bits defined by + * the N_STAB mask set. + */ + +#define	N_GSYM		0x20	/* global symbol */ +#define	N_FNAME		0x22	/* F77 function name */ +#define	N_FUN		0x24	/* procedure name */ +#define	N_STSYM		0x26	/* data segment variable */ +#define	N_LCSYM		0x28	/* bss segment variable */ +#define	N_MAIN		0x2a	/* main function name */ +#define	N_PC		0x30	/* global Pascal symbol */ +#define	N_RSYM		0x40	/* register variable */ +#define	N_SLINE		0x44	/* text segment line number */ +#define	N_DSLINE	0x46	/* data segment line number */ +#define	N_BSLINE	0x48	/* bss segment line number */ +#define	N_SSYM		0x60	/* structure/union element */ +#define	N_SO		0x64	/* main source file name */ +#define	N_LSYM		0x80	/* stack variable */ +#define	N_BINCL		0x82	/* include file beginning */ +#define	N_SOL		0x84	/* included source file name */ +#define	N_PSYM		0xa0	/* parameter variable */ +#define	N_EINCL		0xa2	/* include file end */ +#define	N_ENTRY		0xa4	/* alternate entry point */ +#define	N_LBRAC		0xc0	/* left bracket */ +#define	N_EXCL		0xc2	/* deleted include file */ +#define	N_RBRAC		0xe0	/* right bracket */ +#define	N_BCOMM		0xe2	/* begin common */ +#define	N_ECOMM		0xe4	/* end common */ +#define	N_ECOML		0xe8	/* end common (local name) */ +#define	N_LENG		0xfe	/* length of preceding entry */ diff --git a/include/stddef.h b/include/stddef.h new file mode 100644 index 000000000000..70af6892224a --- /dev/null +++ b/include/stddef.h @@ -0,0 +1,62 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)stddef.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _STDDEF_H_ +#define _STDDEF_H_ + +#include <machine/ansi.h> + +typedef	_BSD_PTRDIFF_T_	ptrdiff_t; + +#ifdef	_BSD_SIZE_T_ +typedef	_BSD_SIZE_T_	size_t; +#undef	_BSD_SIZE_T_ +#endif + +#ifdef	_BSD_WCHAR_T_ +#ifndef _ANSI_SOURCE +typedef	_BSD_WCHAR_T_	rune_t; +#endif +typedef	_BSD_WCHAR_T_	wchar_t; +#undef	_BSD_WCHAR_T_ +#endif + +#ifndef	NULL +#define	NULL	0 +#endif + +#define	offsetof(type, member)	((size_t)(&((type *)0)->member)) + +#endif /* _STDDEF_H_ */ diff --git a/include/stdio.h b/include/stdio.h new file mode 100644 index 000000000000..98b6431296ad --- /dev/null +++ b/include/stdio.h @@ -0,0 +1,378 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chris Torek. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)stdio.h	8.4 (Berkeley) 1/4/94 + */ + +#ifndef	_STDIO_H_ +#define	_STDIO_H_ + +#if !defined(_ANSI_SOURCE) && !defined(__STRICT_ANSI__) +#include <sys/types.h> +#endif + +#include <sys/cdefs.h> + +#include <machine/ansi.h> +#ifdef	_BSD_SIZE_T_ +typedef	_BSD_SIZE_T_	size_t; +#undef	_BSD_SIZE_T_ +#endif + +#ifndef NULL +#define	NULL	0 +#endif + +/* + * This is fairly grotesque, but pure ANSI code must not inspect the + * innards of an fpos_t anyway.  The library internally uses off_t, + * which we assume is exactly as big as eight chars.  (When we switch + * to gcc 2.4 we will use __attribute__ here.) + * + * WARNING: the alignment constraints on an off_t and the struct below + * differ on (e.g.) the SPARC.  Hence, the placement of an fpos_t object + * in a structure will change if fpos_t's are not aligned on 8-byte + * boundaries.  THIS IS A CROCK, but for now there is no way around it. + */ +#if !defined(_ANSI_SOURCE) && !defined(__STRICT_ANSI__) +typedef off_t fpos_t; +#else +typedef struct __sfpos { +	char	_pos[8]; +} fpos_t; +#endif + +#define	_FSTDIO			/* Define for new stdio with functions. */ + +/* + * NB: to fit things in six character monocase externals, the stdio + * code uses the prefix `__s' for stdio objects, typically followed + * by a three-character attempt at a mnemonic. + */ + +/* stdio buffers */ +struct __sbuf { +	unsigned char *_base; +	int	_size; +}; + +/* + * stdio state variables. + * + * The following always hold: + * + *	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), + *		_lbfsize is -_bf._size, else _lbfsize is 0 + *	if _flags&__SRD, _w is 0 + *	if _flags&__SWR, _r is 0 + * + * This ensures that the getc and putc macros (or inline functions) never + * try to write or read from a file that is in `read' or `write' mode. + * (Moreover, they can, and do, automatically switch from read mode to + * write mode, and back, on "r+" and "w+" files.) + * + * _lbfsize is used only to make the inline line-buffered output stream + * code as compact as possible. + * + * _ub, _up, and _ur are used when ungetc() pushes back more characters + * than fit in the current _bf, or when ungetc() pushes back a character + * that does not match the previous one in _bf.  When this happens, + * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff + * _ub._base!=NULL) and _up and _ur save the current values of _p and _r. + * + * NB: see WARNING above before changing the layout of this structure! + */ +typedef	struct __sFILE { +	unsigned char *_p;	/* current position in (some) buffer */ +	int	_r;		/* read space left for getc() */ +	int	_w;		/* write space left for putc() */ +	short	_flags;		/* flags, below; this FILE is free if 0 */ +	short	_file;		/* fileno, if Unix descriptor, else -1 */ +	struct	__sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */ +	int	_lbfsize;	/* 0 or -_bf._size, for inline putc */ + +	/* operations */ +	void	*_cookie;	/* cookie passed to io functions */ +	int	(*_close) __P((void *)); +	int	(*_read)  __P((void *, char *, int)); +	fpos_t	(*_seek)  __P((void *, fpos_t, int)); +	int	(*_write) __P((void *, const char *, int)); + +	/* separate buffer for long sequences of ungetc() */ +	struct	__sbuf _ub;	/* ungetc buffer */ +	unsigned char *_up;	/* saved _p when _p is doing ungetc data */ +	int	_ur;		/* saved _r when _r is counting ungetc data */ + +	/* tricks to meet minimum requirements even when malloc() fails */ +	unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */ +	unsigned char _nbuf[1];	/* guarantee a getc() buffer */ + +	/* separate buffer for fgetln() when line crosses buffer boundary */ +	struct	__sbuf _lb;	/* buffer for fgetln() */ + +	/* Unix stdio files get aligned to block boundaries on fseek() */ +	int	_blksize;	/* stat.st_blksize (may be != _bf._size) */ +	fpos_t	_offset;	/* current lseek offset (see WARNING) */ +} FILE; + +__BEGIN_DECLS +extern FILE __sF[]; +__END_DECLS + +#define	__SLBF	0x0001		/* line buffered */ +#define	__SNBF	0x0002		/* unbuffered */ +#define	__SRD	0x0004		/* OK to read */ +#define	__SWR	0x0008		/* OK to write */ +	/* RD and WR are never simultaneously asserted */ +#define	__SRW	0x0010		/* open for reading & writing */ +#define	__SEOF	0x0020		/* found EOF */ +#define	__SERR	0x0040		/* found error */ +#define	__SMBF	0x0080		/* _buf is from malloc */ +#define	__SAPP	0x0100		/* fdopen()ed in append mode */ +#define	__SSTR	0x0200		/* this is an sprintf/snprintf string */ +#define	__SOPT	0x0400		/* do fseek() optimisation */ +#define	__SNPT	0x0800		/* do not do fseek() optimisation */ +#define	__SOFF	0x1000		/* set iff _offset is in fact correct */ +#define	__SMOD	0x2000		/* true => fgetln modified _p text */ + +/* + * The following three definitions are for ANSI C, which took them + * from System V, which brilliantly took internal interface macros and + * made them official arguments to setvbuf(), without renaming them. + * Hence, these ugly _IOxxx names are *supposed* to appear in user code. + * + * Although numbered as their counterparts above, the implementation + * does not rely on this. + */ +#define	_IOFBF	0		/* setvbuf should set fully buffered */ +#define	_IOLBF	1		/* setvbuf should set line buffered */ +#define	_IONBF	2		/* setvbuf should set unbuffered */ + +#define	BUFSIZ	1024		/* size of buffer used by setbuf */ +#define	EOF	(-1) + +/* + * FOPEN_MAX is a minimum maximum, and is the number of streams that + * stdio can provide without attempting to allocate further resources + * (which could fail).  Do not use this for anything. + */ +				/* must be == _POSIX_STREAM_MAX <limits.h> */ +#define	FOPEN_MAX	20	/* must be <= OPEN_MAX <sys/syslimits.h> */ +#define	FILENAME_MAX	1024	/* must be <= PATH_MAX <sys/syslimits.h> */ + +/* System V/ANSI C; this is the wrong way to do this, do *not* use these. */ +#ifndef _ANSI_SOURCE +#define	P_tmpdir	"/var/tmp/" +#endif +#define	L_tmpnam	1024	/* XXX must be == PATH_MAX */ +#define	TMP_MAX		308915776 + +#ifndef SEEK_SET +#define	SEEK_SET	0	/* set file offset to offset */ +#endif +#ifndef SEEK_CUR +#define	SEEK_CUR	1	/* set file offset to current plus offset */ +#endif +#ifndef SEEK_END +#define	SEEK_END	2	/* set file offset to EOF plus offset */ +#endif + +#define	stdin	(&__sF[0]) +#define	stdout	(&__sF[1]) +#define	stderr	(&__sF[2]) + +/* + * Functions defined in ANSI C standard. + */ +__BEGIN_DECLS +void	 clearerr __P((FILE *)); +int	 fclose __P((FILE *)); +int	 feof __P((FILE *)); +int	 ferror __P((FILE *)); +int	 fflush __P((FILE *)); +int	 fgetc __P((FILE *)); +int	 fgetpos __P((FILE *, fpos_t *)); +char	*fgets __P((char *, size_t, FILE *)); +FILE	*fopen __P((const char *, const char *)); +int	 fprintf __P((FILE *, const char *, ...)); +int	 fputc __P((int, FILE *)); +int	 fputs __P((const char *, FILE *)); +size_t	 fread __P((void *, size_t, size_t, FILE *)); +FILE	*freopen __P((const char *, const char *, FILE *)); +int	 fscanf __P((FILE *, const char *, ...)); +int	 fseek __P((FILE *, long, int)); +int	 fsetpos __P((FILE *, const fpos_t *)); +long	 ftell __P((const FILE *)); +size_t	 fwrite __P((const void *, size_t, size_t, FILE *)); +int	 getc __P((FILE *)); +int	 getchar __P((void)); +char	*gets __P((char *)); +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +extern int sys_nerr;			/* perror(3) external variables */ +extern __const char *__const sys_errlist[]; +#endif +void	 perror __P((const char *)); +int	 printf __P((const char *, ...)); +int	 putc __P((int, FILE *)); +int	 putchar __P((int)); +int	 puts __P((const char *)); +int	 remove __P((const char *)); +int	 rename  __P((const char *, const char *)); +void	 rewind __P((FILE *)); +int	 scanf __P((const char *, ...)); +void	 setbuf __P((FILE *, char *)); +int	 setvbuf __P((FILE *, char *, int, size_t)); +int	 sprintf __P((char *, const char *, ...)); +int	 sscanf __P((const char *, const char *, ...)); +FILE	*tmpfile __P((void)); +char	*tmpnam __P((char *)); +int	 ungetc __P((int, FILE *)); +int	 vfprintf __P((FILE *, const char *, _BSD_VA_LIST_)); +int	 vprintf __P((const char *, _BSD_VA_LIST_)); +int	 vsprintf __P((char *, const char *, _BSD_VA_LIST_)); +__END_DECLS + +/* + * Functions defined in POSIX 1003.1. + */ +#ifndef _ANSI_SOURCE +#define	L_cuserid	9	/* size for cuserid(); UT_NAMESIZE + 1 */ +#define	L_ctermid	1024	/* size for ctermid(); PATH_MAX */ + +__BEGIN_DECLS +char	*ctermid __P((char *)); +FILE	*fdopen __P((int, const char *)); +int	 fileno __P((FILE *)); +__END_DECLS +#endif /* not ANSI */ + +/* + * Routines that are purely local. + */ +#if !defined (_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +__BEGIN_DECLS +char	*fgetln __P((FILE *, size_t *)); +int	 fpurge __P((FILE *)); +int	 getw __P((FILE *)); +int	 pclose __P((FILE *)); +FILE	*popen __P((const char *, const char *)); +int	 putw __P((int, FILE *)); +void	 setbuffer __P((FILE *, char *, int)); +int	 setlinebuf __P((FILE *)); +char	*tempnam __P((const char *, const char *)); +int	 snprintf __P((char *, size_t, const char *, ...)); +int	 vsnprintf __P((char *, size_t, const char *, _BSD_VA_LIST_)); +int	 vscanf __P((const char *, _BSD_VA_LIST_)); +int	 vsscanf __P((const char *, const char *, _BSD_VA_LIST_)); +FILE	*zopen __P((const char *, const char *, int)); +__END_DECLS + +/* + * This is a #define because the function is used internally and + * (unlike vfscanf) the name __svfscanf is guaranteed not to collide + * with a user function when _ANSI_SOURCE or _POSIX_SOURCE is defined. + */ +#define	 vfscanf	__svfscanf + +/* + * Stdio function-access interface. + */ +__BEGIN_DECLS +FILE	*funopen __P((const void *, +		int (*)(void *, char *, int), +		int (*)(void *, const char *, int), +		fpos_t (*)(void *, fpos_t, int), +		int (*)(void *))); +__END_DECLS +#define	fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0) +#define	fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0) +#endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ + +/* + * Functions internal to the implementation. + */ +__BEGIN_DECLS +int	__srget __P((FILE *)); +int	__svfscanf __P((FILE *, const char *, _BSD_VA_LIST_)); +int	__swbuf __P((int, FILE *)); +__END_DECLS + +/* + * The __sfoo macros are here so that we can  + * define function versions in the C library. + */ +#define	__sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++)) +#if defined(__GNUC__) && defined(__STDC__) +static __inline int __sputc(int _c, FILE *_p) { +	if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) +		return (*_p->_p++ = _c); +	else +		return (__swbuf(_c, _p)); +} +#else +/* + * This has been tuned to generate reasonable code on the vax using pcc. + */ +#define	__sputc(c, p) \ +	(--(p)->_w < 0 ? \ +		(p)->_w >= (p)->_lbfsize ? \ +			(*(p)->_p = (c)), *(p)->_p != '\n' ? \ +				(int)*(p)->_p++ : \ +				__swbuf('\n', p) : \ +			__swbuf((int)(c), p) : \ +		(*(p)->_p = (c), (int)*(p)->_p++)) +#endif + +#define	__sfeof(p)	(((p)->_flags & __SEOF) != 0) +#define	__sferror(p)	(((p)->_flags & __SERR) != 0) +#define	__sclearerr(p)	((void)((p)->_flags &= ~(__SERR|__SEOF))) +#define	__sfileno(p)	((p)->_file) + +#define	feof(p)		__sfeof(p) +#define	ferror(p)	__sferror(p) +#define	clearerr(p)	__sclearerr(p) + +#ifndef _ANSI_SOURCE +#define	fileno(p)	__sfileno(p) +#endif + +#ifndef lint +#define	getc(fp)	__sgetc(fp) +#define putc(x, fp)	__sputc(x, fp) +#endif /* lint */ + +#define	getchar()	getc(stdin) +#define	putchar(x)	putc(x, stdout) +#endif /* _STDIO_H_ */ diff --git a/include/stdlib.h b/include/stdlib.h new file mode 100644 index 000000000000..80cd3619b19f --- /dev/null +++ b/include/stdlib.h @@ -0,0 +1,175 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)stdlib.h	8.3 (Berkeley) 2/16/94 + */ + +#ifndef _STDLIB_H_ +#define _STDLIB_H_ + +#include <machine/ansi.h> + +#ifdef	_BSD_SIZE_T_ +typedef	_BSD_SIZE_T_	size_t; +#undef	_BSD_SIZE_T_ +#endif + +#ifdef	_BSD_WCHAR_T_ +#ifndef _ANSI_SOURCE +typedef	_BSD_WCHAR_T_	rune_t; +#endif +typedef	_BSD_WCHAR_T_	wchar_t; +#undef	_BSD_WCHAR_T_ +#endif + +typedef struct { +	int quot;		/* quotient */ +	int rem;		/* remainder */ +} div_t; + +typedef struct { +	long quot;		/* quotient */ +	long rem;		/* remainder */ +} ldiv_t; + +#ifndef NULL +#define	NULL	0 +#endif + +#define	EXIT_FAILURE	1 +#define	EXIT_SUCCESS	0 + +#define	RAND_MAX	0x7fffffff + +extern int __mb_cur_max; +#define	MB_CUR_MAX	__mb_cur_max + +#include <sys/cdefs.h> + +__BEGIN_DECLS +__dead void +	 abort __P((void)); +__pure int +	 abs __P((int)); +int	 atexit __P((void (*)(void))); +double	 atof __P((const char *)); +int	 atoi __P((const char *)); +long	 atol __P((const char *)); +void	*bsearch __P((const void *, const void *, size_t, +	    size_t, int (*)(const void *, const void *))); +void	*calloc __P((size_t, size_t)); +__pure div_t +	 div __P((int, int)); +__dead void +	 exit __P((int)); +void	 free __P((void *)); +char	*getenv __P((const char *)); +__pure long +	 labs __P((long)); +__pure ldiv_t +	 ldiv __P((long, long)); +void	*malloc __P((size_t)); +void	 qsort __P((void *, size_t, size_t, +	    int (*)(const void *, const void *))); +int	 rand __P((void)); +void	*realloc __P((void *, size_t)); +void	 srand __P((unsigned)); +double	 strtod __P((const char *, char **)); +long	 strtol __P((const char *, char **, int)); +unsigned long +	 strtoul __P((const char *, char **, int)); +int	 system __P((const char *)); + +/* These are currently just stubs. */ +int	 mblen __P((const char *, size_t)); +size_t	 mbstowcs __P((wchar_t *, const char *, size_t)); +int	 wctomb __P((char *, wchar_t)); +int	 mbtowc __P((wchar_t *, const char *, size_t)); +size_t	 wcstombs __P((char *, const wchar_t *, size_t)); + +#ifndef _ANSI_SOURCE +int	 putenv __P((const char *)); +int	 setenv __P((const char *, const char *, int)); +#endif + +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +void	*alloca __P((size_t));		/* built-in for gcc */ +					/* getcap(3) functions */ +char	*getbsize __P((int *, long *)); +char	*cgetcap __P((char *, char *, int)); +int	 cgetclose __P((void)); +int	 cgetent __P((char **, char **, char *)); +int	 cgetfirst __P((char **, char **)); +int	 cgetmatch __P((char *, char *)); +int	 cgetnext __P((char **, char **)); +int	 cgetnum __P((char *, char *, long *)); +int	 cgetset __P((char *)); +int	 cgetstr __P((char *, char *, char **)); +int	 cgetustr __P((char *, char *, char **)); + +int	 daemon __P((int, int)); +char	*devname __P((int, int)); +int	 getloadavg __P((double [], int)); + +extern char *optarg;			/* getopt(3) external variables */ +extern int opterr, optind, optopt; +int	 getopt __P((int, char * const *, const char *)); + +extern char *suboptarg;			/* getsubopt(3) external variable */ +int	 getsubopt __P((char **, char * const *, char **)); + +char	*group_from_gid __P((unsigned long, int)); +int	 heapsort __P((void *, size_t, size_t, +	    int (*)(const void *, const void *))); +char	*initstate __P((unsigned, char *, int)); +int	 mergesort __P((void *, size_t, size_t, +	    int (*)(const void *, const void *))); +int	 radixsort __P((const unsigned char **, int, const unsigned char *, +	    unsigned)); +int	 sradixsort __P((const unsigned char **, int, const unsigned char *, +	    unsigned)); +long	 random __P((void)); +char	*realpath __P((const char *, char resolved_path[])); +char	*setstate __P((char *)); +void	 srandom __P((unsigned)); +char	*user_from_uid __P((unsigned long, int)); +#ifndef __STRICT_ANSI__ +long long +	 strtoq __P((const char *, char **, int)); +unsigned long long +	 strtouq __P((const char *, char **, int)); +#endif +void	 unsetenv __P((const char *)); +#endif +__END_DECLS + +#endif /* _STDLIB_H_ */ diff --git a/include/string.h b/include/string.h new file mode 100644 index 000000000000..e82428e57d5d --- /dev/null +++ b/include/string.h @@ -0,0 +1,93 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)string.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _STRING_H_ +#define	_STRING_H_ +#include <machine/ansi.h> + +#ifdef	_BSD_SIZE_T_ +typedef	_BSD_SIZE_T_	size_t; +#undef	_BSD_SIZE_T_ +#endif + +#ifndef	NULL +#define	NULL	0 +#endif + +#include <sys/cdefs.h> + +__BEGIN_DECLS +void	*memchr __P((const void *, int, size_t)); +int	 memcmp __P((const void *, const void *, size_t)); +void	*memcpy __P((void *, const void *, size_t)); +void	*memmove __P((void *, const void *, size_t)); +void	*memset __P((void *, int, size_t)); +char	*strcat __P((char *, const char *)); +char	*strchr __P((const char *, int)); +int	 strcmp __P((const char *, const char *)); +int	 strcoll __P((const char *, const char *)); +char	*strcpy __P((char *, const char *)); +size_t	 strcspn __P((const char *, const char *)); +char	*strerror __P((int)); +size_t	 strlen __P((const char *)); +char	*strncat __P((char *, const char *, size_t)); +int	 strncmp __P((const char *, const char *, size_t)); +char	*strncpy __P((char *, const char *, size_t)); +char	*strpbrk __P((const char *, const char *)); +char	*strrchr __P((const char *, int)); +size_t	 strspn __P((const char *, const char *)); +char	*strstr __P((const char *, const char *)); +char	*strtok __P((char *, const char *)); +size_t	 strxfrm __P((char *, const char *, size_t)); + +/* Nonstandard routines */ +#ifndef _ANSI_SOURCE +int	 bcmp __P((const void *, const void *, size_t)); +void	 bcopy __P((const void *, void *, size_t)); +void	 bzero __P((void *, size_t)); +int	 ffs __P((int)); +char	*index __P((const char *, int)); +void	*memccpy __P((void *, const void *, int, size_t)); +char	*rindex __P((const char *, int)); +int	 strcasecmp __P((const char *, const char *)); +char	*strdup __P((const char *)); +void	 strmode __P((int, char *)); +int	 strncasecmp __P((const char *, const char *, size_t)); +char	*strsep __P((char **, const char *)); +void	 swab __P((const void *, void *, size_t)); +#endif  +__END_DECLS + +#endif /* _STRING_H_ */ diff --git a/include/strings.h b/include/strings.h new file mode 100644 index 000000000000..2a63fa439b51 --- /dev/null +++ b/include/strings.h @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)strings.h	8.1 (Berkeley) 6/2/93 + */ + +#include <string.h> diff --git a/include/struct.h b/include/struct.h new file mode 100644 index 000000000000..f80ecd077132 --- /dev/null +++ b/include/struct.h @@ -0,0 +1,51 @@ +/*- + * Copyright (c) 1983, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)struct.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _STRUCT_H_ +#define	_STRUCT_H_ + +/* Offset of the field in the structure. */ +#define	fldoff(name, field) \ +	((int)&(((struct name *)0)->field)) + +/* Size of the field in the structure. */ +#define	fldsiz(name, field) \ +	(sizeof(((struct name *)0)->field)) + +/* Address of the structure from a field. */ +#define	strbase(name, addr, field) \ +	((struct name *)((char *)(addr) - fldoff(name, field))) + +#endif /* !_STRUCT_H_ */ diff --git a/include/sysexits.h b/include/sysexits.h new file mode 100644 index 000000000000..464cb11bab2d --- /dev/null +++ b/include/sysexits.h @@ -0,0 +1,118 @@ +/* + * Copyright (c) 1987, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)sysexits.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_SYSEXITS_H_ +#define	_SYSEXITS_H_ + +/* + *  SYSEXITS.H -- Exit status codes for system programs. + * + *	This include file attempts to categorize possible error + *	exit statuses for system programs, notably delivermail + *	and the Berkeley network. + * + *	Error numbers begin at EX__BASE to reduce the possibility of + *	clashing with other exit statuses that random programs may + *	already return.  The meaning of the codes is approximately + *	as follows: + * + *	EX_USAGE -- The command was used incorrectly, e.g., with + *		the wrong number of arguments, a bad flag, a bad + *		syntax in a parameter, or whatever. + *	EX_DATAERR -- The input data was incorrect in some way. + *		This should only be used for user's data & not + *		system files. + *	EX_NOINPUT -- An input file (not a system file) did not + *		exist or was not readable.  This could also include + *		errors like "No message" to a mailer (if it cared + *		to catch it). + *	EX_NOUSER -- The user specified did not exist.  This might + *		be used for mail addresses or remote logins. + *	EX_NOHOST -- The host specified did not exist.  This is used + *		in mail addresses or network requests. + *	EX_UNAVAILABLE -- A service is unavailable.  This can occur + *		if a support program or file does not exist.  This + *		can also be used as a catchall message when something + *		you wanted to do doesn't work, but you don't know + *		why. + *	EX_SOFTWARE -- An internal software error has been detected. + *		This should be limited to non-operating system related + *		errors as possible. + *	EX_OSERR -- An operating system error has been detected. + *		This is intended to be used for such things as "cannot + *		fork", "cannot create pipe", or the like.  It includes + *		things like getuid returning a user that does not + *		exist in the passwd file. + *	EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp, + *		etc.) does not exist, cannot be opened, or has some + *		sort of error (e.g., syntax error). + *	EX_CANTCREAT -- A (user specified) output file cannot be + *		created. + *	EX_IOERR -- An error occurred while doing I/O on some file. + *	EX_TEMPFAIL -- temporary failure, indicating something that + *		is not really an error.  In sendmail, this means + *		that a mailer (e.g.) could not create a connection, + *		and the request should be reattempted later. + *	EX_PROTOCOL -- the remote system returned something that + *		was "not possible" during a protocol exchange. + *	EX_NOPERM -- You did not have sufficient permission to + *		perform the operation.  This is not intended for + *		file system problems, which should use NOINPUT or + *		CANTCREAT, but rather for higher level permissions. + */ + +#define EX_OK		0	/* successful termination */ + +#define EX__BASE	64	/* base value for error messages */ + +#define EX_USAGE	64	/* command line usage error */ +#define EX_DATAERR	65	/* data format error */ +#define EX_NOINPUT	66	/* cannot open input */ +#define EX_NOUSER	67	/* addressee unknown */ +#define EX_NOHOST	68	/* host name unknown */ +#define EX_UNAVAILABLE	69	/* service unavailable */ +#define EX_SOFTWARE	70	/* internal software error */ +#define EX_OSERR	71	/* system error (e.g., can't fork) */ +#define EX_OSFILE	72	/* critical OS file missing */ +#define EX_CANTCREAT	73	/* can't create (user) output file */ +#define EX_IOERR	74	/* input/output error */ +#define EX_TEMPFAIL	75	/* temp failure; user is invited to retry */ +#define EX_PROTOCOL	76	/* remote error in protocol */ +#define EX_NOPERM	77	/* permission denied */ +#define EX_CONFIG	78	/* configuration error */ + +#define EX__MAX	78	/* maximum listed value */ + +#endif /* !_SYSEXITS_H_ */ diff --git a/include/tar.h b/include/tar.h new file mode 100644 index 000000000000..764ca01a10c1 --- /dev/null +++ b/include/tar.h @@ -0,0 +1,73 @@ +/*- + * Copyright (c) 1994 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chuck Karish of Mindcraft, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)tar.h	8.2 (Berkeley) 1/4/94 + */ + +#ifndef _TAR_H +#define _TAR_H + +#define	TMAGIC		"ustar"	/* ustar and a null */ +#define	TMAGLEN		6 +#define	TVERSION	"00"	/* 00 and no null */ +#define	TVERSLEN	2 + +/* Values used in typeflag field */ +#define	REGTYPE		'0'	/* Regular file */ +#define	AREGTYPE	'\0'	/* Regular file */ +#define	LNKTYPE		'1'	/* Link */ +#define	SYMTYPE		'2'	/* Reserved */ +#define	CHRTYPE		'3'	/* Character special */ +#define	BLKTYPE		'4'	/* Block special */ +#define	DIRTYPE		'5'	/* Directory */ +#define	FIFOTYPE	'6'	/* FIFO special */ +#define	CONTTYPE	'7'	/* Reserved */ + +/* Bits used in the mode field - values in octal */ +#define	TSUID		04000	/* Set UID on execution */ +#define	TSGID		02000	/* Set GID on execution */ +#define	TSVTX		01000	/* Reserved */ +				/* File permissions */ +#define	TUREAD		00400	/* Read by owner */ +#define	TUWRITE		00200	/* Write by owner */ +#define	TUEXEC		00100	/* Execute/Search by owner */ +#define	TGREAD		00040	/* Read by group */ +#define	TGWRITE		00020	/* Write by group */ +#define	TGEXEC		00010	/* Execute/Search by group */ +#define	TOREAD		00004	/* Read by other */ +#define	TOWRITE		00002	/* Write by other */ +#define	TOEXEC		00001	/* Execute/Search by other */ + +#endif diff --git a/include/time.h b/include/time.h new file mode 100644 index 000000000000..93d7d7275ecb --- /dev/null +++ b/include/time.h @@ -0,0 +1,104 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)time.h	8.3 (Berkeley) 1/21/94 + */ + +#ifndef _TIME_H_ +#define	_TIME_H_ + +#include <machine/ansi.h> + +#ifndef	NULL +#define	NULL	0 +#endif + +#ifdef	_BSD_CLOCK_T_ +typedef	_BSD_CLOCK_T_	clock_t; +#undef	_BSD_CLOCK_T_ +#endif + +#ifdef	_BSD_TIME_T_ +typedef	_BSD_TIME_T_	time_t; +#undef	_BSD_TIME_T_ +#endif + +#ifdef	_BSD_SIZE_T_ +typedef	_BSD_SIZE_T_	size_t; +#undef	_BSD_SIZE_T_ +#endif + +struct tm { +	int	tm_sec;		/* seconds after the minute [0-60] */ +	int	tm_min;		/* minutes after the hour [0-59] */ +	int	tm_hour;	/* hours since midnight [0-23] */ +	int	tm_mday;	/* day of the month [1-31] */ +	int	tm_mon;		/* months since January [0-11] */ +	int	tm_year;	/* years since 1900 */ +	int	tm_wday;	/* days since Sunday [0-6] */ +	int	tm_yday;	/* days since January 1 [0-365] */ +	int	tm_isdst;	/* Daylight Savings Time flag */ +	long	tm_gmtoff;	/* offset from CUT in seconds */ +	char	*tm_zone;	/* timezone abbreviation */ +}; + +#include <machine/limits.h>	/* Include file containing CLK_TCK. */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +char *asctime __P((const struct tm *)); +clock_t clock __P((void)); +char *ctime __P((const time_t *)); +double difftime __P((time_t, time_t)); +struct tm *gmtime __P((const time_t *)); +struct tm *localtime __P((const time_t *)); +time_t mktime __P((struct tm *)); +size_t strftime __P((char *, size_t, const char *, const struct tm *)); +time_t time __P((time_t *)); + +#ifndef _ANSI_SOURCE +void tzset __P((void)); +#endif /* not ANSI */ + +#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) +char *timezone __P((int, int)); +void tzsetwall __P((void)); +#endif /* neither ANSI nor POSIX */ +__END_DECLS + +#endif /* !_TIME_H_ */ diff --git a/include/ttyent.h b/include/ttyent.h new file mode 100644 index 000000000000..e95db259ca2d --- /dev/null +++ b/include/ttyent.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)ttyent.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_TTYENT_H_ +#define	_TTYENT_H_ + +#define	_PATH_TTYS	"/etc/ttys" + +#define	_TTYS_OFF	"off" +#define	_TTYS_ON	"on" +#define	_TTYS_SECURE	"secure" +#define	_TTYS_WINDOW	"window" + +struct ttyent { +	char	*ty_name;	/* terminal device name */ +	char	*ty_getty;	/* command to execute, usually getty */ +	char	*ty_type;	/* terminal type for termcap */ +#define	TTY_ON		0x01	/* enable logins (start ty_getty program) */ +#define	TTY_SECURE	0x02	/* allow uid of 0 to login */ +	int	ty_status;	/* status flags */ +	char 	*ty_window;	/* command to start up window manager */ +	char	*ty_comment;	/* comment field */ +}; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +struct ttyent *getttyent __P((void)); +struct ttyent *getttynam __P((const char *)); +int setttyent __P((void)); +int endttyent __P((void)); +__END_DECLS + +#endif /* !_TTYENT_H_ */ diff --git a/include/tzfile.h b/include/tzfile.h new file mode 100644 index 000000000000..246e6a71ec41 --- /dev/null +++ b/include/tzfile.h @@ -0,0 +1,151 @@ +/* + * Copyright (c) 1988, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Arthur David Olson of the National Cancer Institute. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)tzfile.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _TZFILE_H_ +#define	_TZFILE_H_ + +/* + * Information about time zone files. + */ +			/* Time zone object file directory */ +#define TZDIR		"/usr/share/zoneinfo" +#define TZDEFAULT	"/etc/localtime" +#define TZDEFRULES	"posixrules" + +/* +** Each file begins with. . . +*/ + +struct tzhead { +	char	tzh_reserved[24];	/* reserved for future use */ +	char	tzh_ttisstdcnt[4];	/* coded number of trans. time flags */ +	char	tzh_leapcnt[4];		/* coded number of leap seconds */ +	char	tzh_timecnt[4];		/* coded number of transition times */ +	char	tzh_typecnt[4];		/* coded number of local time types */ +	char	tzh_charcnt[4];		/* coded number of abbr. chars */ +}; + +/* +** . . .followed by. . . +** +**	tzh_timecnt (char [4])s		coded transition times a la time(2) +**	tzh_timecnt (unsigned char)s	types of local time starting at above +**	tzh_typecnt repetitions of +**		one (char [4])		coded GMT offset in seconds +**		one (unsigned char)	used to set tm_isdst +**		one (unsigned char)	that's an abbreviation list index +**	tzh_charcnt (char)s		'\0'-terminated zone abbreviations +**	tzh_leapcnt repetitions of +**		one (char [4])		coded leap second transition times +**		one (char [4])		total correction after above +**	tzh_ttisstdcnt (char)s		indexed by type; if TRUE, transition +**					time is standard time, if FALSE, +**					transition time is wall clock time +**					if absent, transition times are +**					assumed to be wall clock time +*/ + +/* +** In the current implementation, "tzset()" refuses to deal with files that +** exceed any of the limits below. +*/ + +/* +** The TZ_MAX_TIMES value below is enough to handle a bit more than a +** year's worth of solar time (corrected daily to the nearest second) or +** 138 years of Pacific Presidential Election time +** (where there are three time zone transitions every fourth year). +*/ +#define TZ_MAX_TIMES	370 + +#define NOSOLAR			/* 4BSD doesn't currently handle solar time */ + +#ifndef NOSOLAR +#define TZ_MAX_TYPES	256	/* Limited by what (unsigned char)'s can hold */ +#else +#define TZ_MAX_TYPES	10	/* Maximum number of local time types */ +#endif + +#define TZ_MAX_CHARS	50	/* Maximum number of abbreviation characters */ + +#define	TZ_MAX_LEAPS	50	/* Maximum number of leap second corrections */ + +#define SECSPERMIN	60 +#define MINSPERHOUR	60 +#define HOURSPERDAY	24 +#define DAYSPERWEEK	7 +#define DAYSPERNYEAR	365 +#define DAYSPERLYEAR	366 +#define SECSPERHOUR	(SECSPERMIN * MINSPERHOUR) +#define SECSPERDAY	((long) SECSPERHOUR * HOURSPERDAY) +#define MONSPERYEAR	12 + +#define TM_SUNDAY	0 +#define TM_MONDAY	1 +#define TM_TUESDAY	2 +#define TM_WEDNESDAY	3 +#define TM_THURSDAY	4 +#define TM_FRIDAY	5 +#define TM_SATURDAY	6 + +#define TM_JANUARY	0 +#define TM_FEBRUARY	1 +#define TM_MARCH	2 +#define TM_APRIL	3 +#define TM_MAY		4 +#define TM_JUNE		5 +#define TM_JULY		6 +#define TM_AUGUST	7 +#define TM_SEPTEMBER	8 +#define TM_OCTOBER	9 +#define TM_NOVEMBER	10 +#define TM_DECEMBER	11 + +#define TM_YEAR_BASE	1900 + +#define EPOCH_YEAR	1970 +#define EPOCH_WDAY	TM_THURSDAY + +/* +** Accurate only for the past couple of centuries; +** that will probably do. +*/ + +#define isleap(y) (((y) % 4) == 0 && ((y) % 100) != 0 || ((y) % 400) == 0) + +#endif /* !_TZFILE_H_ */ diff --git a/include/unistd.h b/include/unistd.h new file mode 100644 index 000000000000..4595a9d114e6 --- /dev/null +++ b/include/unistd.h @@ -0,0 +1,175 @@ +/*- + * Copyright (c) 1991, 1993, 1994 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)unistd.h	8.10 (Berkeley) 4/16/94 + */ + +#ifndef _UNISTD_H_ +#define	_UNISTD_H_ + +#include <sys/cdefs.h> +#include <sys/types.h> +#include <sys/unistd.h> + +#define	 STDIN_FILENO	0	/* standard input file descriptor */ +#define	STDOUT_FILENO	1	/* standard output file descriptor */ +#define	STDERR_FILENO	2	/* standard error file descriptor */ + +#ifndef NULL +#define	NULL		0	/* null pointer constant */ +#endif + +__BEGIN_DECLS +__dead void +	 _exit __P((int)); +int	 access __P((const char *, int)); +unsigned int	 alarm __P((unsigned int)); +int	 chdir __P((const char *)); +int	 chown __P((const char *, uid_t, gid_t)); +int	 close __P((int)); +size_t	 confstr __P((int, char *, size_t)); +int	 dup __P((int)); +int	 dup2 __P((int, int)); +int	 execl __P((const char *, const char *, ...)); +int	 execle __P((const char *, const char *, ...)); +int	 execlp __P((const char *, const char *, ...)); +int	 execv __P((const char *, char * const *)); +int	 execve __P((const char *, char * const *, char * const *)); +int	 execvp __P((const char *, char * const *)); +pid_t	 fork __P((void)); +long	 fpathconf __P((int, int)); +char	*getcwd __P((char *, size_t)); +gid_t	 getegid __P((void)); +uid_t	 geteuid __P((void)); +gid_t	 getgid __P((void)); +int	 getgroups __P((int, gid_t [])); +char	*getlogin __P((void)); +pid_t	 getpgrp __P((void)); +pid_t	 getpid __P((void)); +pid_t	 getppid __P((void)); +uid_t	 getuid __P((void)); +int	 isatty __P((int)); +int	 link __P((const char *, const char *)); +off_t	 lseek __P((int, off_t, int)); +long	 pathconf __P((const char *, int)); +int	 pause __P((void)); +int	 pipe __P((int *)); +ssize_t	 read __P((int, void *, size_t)); +int	 rmdir __P((const char *)); +int	 setgid __P((gid_t)); +int	 setpgid __P((pid_t, pid_t)); +pid_t	 setsid __P((void)); +int	 setuid __P((uid_t)); +unsigned int	 sleep __P((unsigned int)); +long	 sysconf __P((int)); +pid_t	 tcgetpgrp __P((int)); +int	 tcsetpgrp __P((int, pid_t)); +char	*ttyname __P((int)); +int	 unlink __P((const char *)); +ssize_t	 write __P((int, const void *, size_t)); + +#ifndef	_POSIX_SOURCE +#ifdef	__STDC__ +struct timeval;				/* select(2) */ +#endif +int	 acct __P((const char *)); +int	 async_daemon __P((void)); +char	*brk __P((const char *)); +int	 chroot __P((const char *)); +char	*crypt __P((const char *, const char *)); +int	 des_cipher __P((const char *, char *, long, int)); +int	 des_setkey __P((const char *key)); +int	 encrypt __P((char *, int)); +void	 endusershell __P((void)); +int	 exect __P((const char *, char * const *, char * const *)); +int	 fchdir __P((int)); +int	 fchown __P((int, int, int)); +int	 fsync __P((int)); +int	 ftruncate __P((int, off_t)); +int	 getdtablesize __P((void)); +long	 gethostid __P((void)); +int	 gethostname __P((char *, int)); +mode_t	 getmode __P((const void *, mode_t)); +__pure int +	 getpagesize __P((void)); +char	*getpass __P((const char *)); +char	*getusershell __P((void)); +char	*getwd __P((char *));			/* obsoleted by getcwd() */ +int	 initgroups __P((const char *, int)); +int	 iruserok __P((unsigned long, int, const char *, const char *)); +int	 mknod __P((const char *, mode_t, dev_t)); +int	 mkstemp __P((char *)); +char	*mktemp __P((char *)); +int	 nfssvc __P((int, void *)); +int	 nice __P((int)); +void	 psignal __P((unsigned int, const char *)); +extern __const char *__const sys_siglist[]; +int	 profil __P((char *, int, int, int)); +int	 rcmd __P((char **, int, const char *, +		const char *, const char *, int *)); +char	*re_comp __P((const char *)); +int	 re_exec __P((const char *)); +int	 readlink __P((const char *, char *, int)); +int	 reboot __P((int)); +int	 revoke __P((const char *)); +int	 rresvport __P((int *)); +int	 ruserok __P((const char *, int, const char *, const char *)); +char	*sbrk __P((int)); +int	 select __P((int, fd_set *, fd_set *, fd_set *, struct timeval *)); +int	 setegid __P((gid_t)); +int	 seteuid __P((uid_t)); +int	 setgroups __P((int, const gid_t *)); +void	 sethostid __P((long)); +int	 sethostname __P((const char *, int)); +int	 setkey __P((const char *)); +int	 setlogin __P((const char *)); +void	*setmode __P((const char *)); +int	 setpgrp __P((pid_t pid, pid_t pgrp));	/* obsoleted by setpgid() */ +int	 setregid __P((gid_t, gid_t)); +int	 setreuid __P((uid_t, uid_t)); +int	 setrgid __P((gid_t)); +int	 setruid __P((uid_t)); +void	 setusershell __P((void)); +int	 swapon __P((const char *)); +int	 symlink __P((const char *, const char *)); +void	 sync __P((void)); +int	 syscall __P((int, ...)); +int	 truncate __P((const char *, off_t)); +int	 ttyslot __P((void)); +unsigned int	 ualarm __P((unsigned int, unsigned int)); +void	 usleep __P((unsigned int)); +void	*valloc __P((size_t));			/* obsoleted by malloc() */ +pid_t	 vfork __P((void)); +#endif /* !_POSIX_SOURCE */ +__END_DECLS + +#endif /* !_UNISTD_H_ */ diff --git a/include/utime.h b/include/utime.h new file mode 100644 index 000000000000..1ea12d0cb16b --- /dev/null +++ b/include/utime.h @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)utime.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_UTIME_H_ +#define	_UTIME_H_ + +struct utimbuf { +	time_t actime;		/* Access time */ +	time_t modtime;		/* Modification time */ +}; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +int utime __P((const char *, const struct utimbuf *)); +__END_DECLS + +#endif /* !_UTIME_H_ */ diff --git a/include/utmp.h b/include/utmp.h new file mode 100644 index 000000000000..15c4e4fd3da0 --- /dev/null +++ b/include/utmp.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1988, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)utmp.h	8.2 (Berkeley) 1/21/94 + */ + +#ifndef	_UTMP_H_ +#define	_UTMP_H_ + +#define	_PATH_UTMP	"/var/run/utmp" +#define	_PATH_WTMP	"/var/log/wtmp" +#define	_PATH_LASTLOG	"/var/log/lastlog" + +#define	UT_NAMESIZE	8 +#define	UT_LINESIZE	8 +#define	UT_HOSTSIZE	16 + +struct lastlog { +	time_t	ll_time; +	char	ll_line[UT_LINESIZE]; +	char	ll_host[UT_HOSTSIZE]; +}; + +struct utmp { +	char	ut_line[UT_LINESIZE]; +	char	ut_name[UT_NAMESIZE]; +	char	ut_host[UT_HOSTSIZE]; +	long	ut_time; +}; + +#endif /* !_UTMP_H_ */ diff --git a/include/vis.h b/include/vis.h new file mode 100644 index 000000000000..53ef1a91c4b9 --- /dev/null +++ b/include/vis.h @@ -0,0 +1,84 @@ +/*- + * Copyright (c) 1990, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)vis.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _VIS_H_ +#define	_VIS_H_ + +/* + * to select alternate encoding format + */ +#define	VIS_OCTAL	0x01	/* use octal \ddd format */ +#define	VIS_CSTYLE	0x02	/* use \[nrft0..] where appropiate */ + +/* + * to alter set of characters encoded (default is to encode all + * non-graphic except space, tab, and newline). + */ +#define	VIS_SP		0x04	/* also encode space */ +#define	VIS_TAB		0x08	/* also encode tab */ +#define	VIS_NL		0x10	/* also encode newline */ +#define	VIS_WHITE	(VIS_SP | VIS_TAB | VIS_NL) +#define	VIS_SAFE	0x20	/* only encode "unsafe" characters */ + +/* + * other + */ +#define	VIS_NOSLASH	0x40	/* inhibit printing '\' */ + +/* + * unvis return codes + */ +#define	UNVIS_VALID	 1	/* character valid */ +#define	UNVIS_VALIDPUSH	 2	/* character valid, push back passed char */ +#define	UNVIS_NOCHAR	 3	/* valid sequence, no character produced */ +#define	UNVIS_SYNBAD	-1	/* unrecognized escape sequence */ +#define	UNVIS_ERROR	-2	/* decoder in unknown state (unrecoverable) */ + +/* + * unvis flags + */ +#define	UNVIS_END	1	/* no more characters */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +char	*vis __P((char *, int, int, int)); +int	strvis __P((char *, const char *, int)); +int	strvisx __P((char *, const char *, size_t, int)); +int	strunvis __P((char *, const char *)); +int	unvis __P((char *, int, int *, int)); +__END_DECLS + +#endif /* !_VIS_H_ */ diff --git a/lib/libc/gen/fts-compat.h b/lib/libc/gen/fts-compat.h new file mode 100644 index 000000000000..84dbe14bc792 --- /dev/null +++ b/lib/libc/gen/fts-compat.h @@ -0,0 +1,125 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)fts.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef	_FTS_H_ +#define	_FTS_H_ + +typedef struct { +	struct _ftsent *fts_cur;	/* current node */ +	struct _ftsent *fts_child;	/* linked list of children */ +	struct _ftsent **fts_array;	/* sort array */ +	dev_t fts_dev;			/* starting device # */ +	char *fts_path;			/* path for this descent */ +	int fts_rfd;			/* fd for root */ +	int fts_pathlen;		/* sizeof(path) */ +	int fts_nitems;			/* elements in the sort array */ +	int (*fts_compar)();		/* compare function */ + +#define	FTS_COMFOLLOW	0x001		/* follow command line symlinks */ +#define	FTS_LOGICAL	0x002		/* logical walk */ +#define	FTS_NOCHDIR	0x004		/* don't change directories */ +#define	FTS_NOSTAT	0x008		/* don't get stat info */ +#define	FTS_PHYSICAL	0x010		/* physical walk */ +#define	FTS_SEEDOT	0x020		/* return dot and dot-dot */ +#define	FTS_XDEV	0x040		/* don't cross devices */ +#define	FTS_OPTIONMASK	0x07f		/* valid user option mask */ + +#define	FTS_NAMEONLY	0x080		/* (private) child names only */ +#define	FTS_STOP	0x100		/* (private) unrecoverable error */ +	int fts_options;		/* fts_open options, global flags */ +} FTS; + +typedef struct _ftsent { +	struct _ftsent *fts_cycle;	/* cycle node */ +	struct _ftsent *fts_parent;	/* parent directory */ +	struct _ftsent *fts_link;	/* next file in directory */ +	long fts_number;	        /* local numeric value */ +	void *fts_pointer;	        /* local address value */ +	char *fts_accpath;		/* access path */ +	char *fts_path;			/* root path */ +	int fts_errno;			/* errno for this node */ +	int fts_symfd;			/* fd for symlink */ +	u_short fts_pathlen;		/* strlen(fts_path) */ +	u_short fts_namelen;		/* strlen(fts_name) */ + +	ino_t fts_ino;			/* inode */ +	dev_t fts_dev;			/* device */ +	nlink_t fts_nlink;		/* link count */ + +#define	FTS_ROOTPARENTLEVEL	-1 +#define	FTS_ROOTLEVEL		 0 +	short fts_level;		/* depth (-1 to N) */ + +#define	FTS_D		 1		/* preorder directory */ +#define	FTS_DC		 2		/* directory that causes cycles */ +#define	FTS_DEFAULT	 3		/* none of the above */ +#define	FTS_DNR		 4		/* unreadable directory */ +#define	FTS_DOT		 5		/* dot or dot-dot */ +#define	FTS_DP		 6		/* postorder directory */ +#define	FTS_ERR		 7		/* error; errno is set */ +#define	FTS_F		 8		/* regular file */ +#define	FTS_INIT	 9		/* initialized only */ +#define	FTS_NS		10		/* stat(2) failed */ +#define	FTS_NSOK	11		/* no stat(2) requested */ +#define	FTS_SL		12		/* symbolic link */ +#define	FTS_SLNONE	13		/* symbolic link without target */ +	u_short fts_info;		/* user flags for FTSENT structure */ + +#define	FTS_DONTCHDIR	 0x01		/* don't chdir .. to the parent */ +#define	FTS_SYMFOLLOW	 0x02		/* followed a symlink to get here */ +	u_short fts_flags;		/* private flags for FTSENT structure */ + +#define	FTS_AGAIN	 1		/* read node again */ +#define	FTS_FOLLOW	 2		/* follow symbolic link */ +#define	FTS_NOINSTR	 3		/* no instructions */ +#define	FTS_SKIP	 4		/* discard node */ +	u_short fts_instr;		/* fts_set() instructions */ + +	struct stat *fts_statp;		/* stat(2) information */ +	char fts_name[1];		/* file name */ +} FTSENT; + +#include <sys/cdefs.h> + +__BEGIN_DECLS +FTSENT	*fts_children __P((FTS *, int)); +int	 fts_close __P((FTS *)); +FTS	*fts_open __P((char * const *, int, +	    int (*)(const FTSENT **, const FTSENT **))); +FTSENT	*fts_read __P((FTS *)); +int	 fts_set __P((FTS *, FTSENT *, int)); +__END_DECLS + +#endif /* !_FTS_H_ */ diff --git a/lib/libkvm/kvm.h b/lib/libkvm/kvm.h new file mode 100644 index 000000000000..3c675ab67b4d --- /dev/null +++ b/lib/libkvm/kvm.h @@ -0,0 +1,69 @@ +/*- + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)kvm.h	8.1 (Berkeley) 6/2/93 + */ + +#ifndef _KVM_H_ +#define	_KVM_H_ + +/* Default version symbol. */ +#define	VRS_SYM		"_version" +#define	VRS_KEY		"VERSION" + +#include <nlist.h> +#include <sys/cdefs.h> + +__BEGIN_DECLS + +typedef struct __kvm kvm_t; + +struct kinfo_proc; +int	  kvm_close __P((kvm_t *)); +char	**kvm_getargv __P((kvm_t *, const struct kinfo_proc *, int)); +char	**kvm_getenvv __P((kvm_t *, const struct kinfo_proc *, int)); +char	 *kvm_geterr __P((kvm_t *)); +int	  kvm_getloadavg __P((kvm_t *, double [], int)); +char	 *kvm_getfiles __P((kvm_t *, int, int, int *)); +struct kinfo_proc * +	  kvm_getprocs __P((kvm_t *, int, int, int *)); +int	  kvm_nlist __P((kvm_t *, struct nlist *)); +kvm_t	 *kvm_open +	    __P((const char *, const char *, const char *, int, const char *)); +kvm_t	 *kvm_openfiles +	    __P((const char *, const char *, const char *, int, char *)); +int	  kvm_read __P((kvm_t *, unsigned long, void *, unsigned int)); +int	  kvm_write __P((kvm_t *, unsigned long, const void *, unsigned int)); + +__END_DECLS + +#endif /* !_KVM_H_ */ diff --git a/sys/sys/bitstring.h b/sys/sys/bitstring.h new file mode 100644 index 000000000000..88437e7fb9f7 --- /dev/null +++ b/sys/sys/bitstring.h @@ -0,0 +1,143 @@ +/* + * Copyright (c) 1989, 1993 + *	The Regents of the University of California.  All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Paul Vixie. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)bitstring.h	8.1 (Berkeley) 7/19/93 + */ + +#ifndef _BITSTRING_H_ +#define	_BITSTRING_H_ + +typedef	unsigned char bitstr_t; + +/* internal macros */ +				/* byte of the bitstring bit is in */ +#define	_bit_byte(bit) \ +	((bit) >> 3) + +				/* mask for the bit within its byte */ +#define	_bit_mask(bit) \ +	(1 << ((bit)&0x7)) + +/* external macros */ +				/* bytes in a bitstring of nbits bits */ +#define	bitstr_size(nbits) \ +	((((nbits) - 1) >> 3) + 1) + +				/* allocate a bitstring */ +#define	bit_alloc(nbits) \ +	(bitstr_t *)calloc(1, \ +	    (unsigned int)bitstr_size(nbits) * sizeof(bitstr_t)) + +				/* allocate a bitstring on the stack */ +#define	bit_decl(name, nbits) \ +	(name)[bitstr_size(nbits)] + +				/* is bit N of bitstring name set? */ +#define	bit_test(name, bit) \ +	((name)[_bit_byte(bit)] & _bit_mask(bit)) + +				/* set bit N of bitstring name */ +#define	bit_set(name, bit) \ +	(name)[_bit_byte(bit)] |= _bit_mask(bit) + +				/* clear bit N of bitstring name */ +#define	bit_clear(name, bit) \ +	(name)[_bit_byte(bit)] &= ~_bit_mask(bit) + +				/* clear bits start ... stop in bitstring */ +#define	bit_nclear(name, start, stop) { \ +	register bitstr_t *_name = name; \ +	register int _start = start, _stop = stop; \ +	register int _startbyte = _bit_byte(_start); \ +	register int _stopbyte = _bit_byte(_stop); \ +	if (_startbyte == _stopbyte) { \ +		_name[_startbyte] &= ((0xff >> (8 - (_start&0x7))) | \ +				      (0xff << ((_stop&0x7) + 1))); \ +	} else { \ +		_name[_startbyte] &= 0xff >> (8 - (_start&0x7)); \ +		while (++_startbyte < _stopbyte) \ +			_name[_startbyte] = 0; \ +		_name[_stopbyte] &= 0xff << ((_stop&0x7) + 1); \ +	} \ +} + +				/* set bits start ... stop in bitstring */ +#define	bit_nset(name, start, stop) { \ +	register bitstr_t *_name = name; \ +	register int _start = start, _stop = stop; \ +	register int _startbyte = _bit_byte(_start); \ +	register int _stopbyte = _bit_byte(_stop); \ +	if (_startbyte == _stopbyte) { \ +		_name[_startbyte] |= ((0xff << (_start&0x7)) & \ +				    (0xff >> (7 - (_stop&0x7)))); \ +	} else { \ +		_name[_startbyte] |= 0xff << ((_start)&0x7); \ +		while (++_startbyte < _stopbyte) \ +	    		_name[_startbyte] = 0xff; \ +		_name[_stopbyte] |= 0xff >> (7 - (_stop&0x7)); \ +	} \ +} + +				/* find first bit clear in name */ +#define	bit_ffc(name, nbits, value) { \ +	register bitstr_t *_name = name; \ +	register int _byte, _nbits = nbits; \ +	register int _stopbyte = _bit_byte(_nbits), _value = -1; \ +	for (_byte = 0; _byte <= _stopbyte; ++_byte) \ +		if (_name[_byte] != 0xff) { \ +			_value = _byte << 3; \ +			for (_stopbyte = _name[_byte]; (_stopbyte&0x1); \ +			    ++_value, _stopbyte >>= 1); \ +			break; \ +		} \ +	*(value) = _value; \ +} + +				/* find first bit set in name */ +#define	bit_ffs(name, nbits, value) { \ +	register bitstr_t *_name = name; \ +	register int _byte, _nbits = nbits; \ +	register int _stopbyte = _bit_byte(_nbits), _value = -1; \ +	for (_byte = 0; _byte <= _stopbyte; ++_byte) \ +		if (_name[_byte]) { \ +			_value = _byte << 3; \ +			for (_stopbyte = _name[_byte]; !(_stopbyte&0x1); \ +			    ++_value, _stopbyte >>= 1); \ +			break; \ +		} \ +	*(value) = _value; \ +} + +#endif /* !_BITSTRING_H_ */ diff --git a/sys/sys/nlist_aout.h b/sys/sys/nlist_aout.h new file mode 100644 index 000000000000..11e0a43848f6 --- /dev/null +++ b/sys/sys/nlist_aout.h @@ -0,0 +1,85 @@ +/*- + * Copyright (c) 1991, 1993 + *	The Regents of the University of California.  All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + *    must display the following acknowledgement: + *	This product includes software developed by the University of + *	California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *	@(#)nlist.h	8.2 (Berkeley) 1/21/94 + */ + +#ifndef _NLIST_H_ +#define	_NLIST_H_ + +/* + * Symbol table entry format.  The #ifdef's are so that programs including + * nlist.h can initialize nlist structures statically. + */ +struct nlist { +#ifdef _AOUT_INCLUDE_ +	union { +		char *n_name;	/* symbol name (in memory) */ +		long n_strx;	/* file string table offset (on disk) */ +	} n_un; +#else +	char *n_name;		/* symbol name (in memory) */ +#endif + +#define	N_UNDF	0x00		/* undefined */ +#define	N_ABS	0x02		/* absolute address */ +#define	N_TEXT	0x04		/* text segment */ +#define	N_DATA	0x06		/* data segment */ +#define	N_BSS	0x08		/* bss segment */ +#define	N_COMM	0x12		/* common reference */ +#define	N_FN	0x1e		/* file name */ + +#define	N_EXT	0x01		/* external (global) bit, OR'ed in */ +#define	N_TYPE	0x1e		/* mask for all the type bits */ +	unsigned char n_type;	/* type defines */ + +	char n_other;		/* spare */ +#define	n_hash	n_desc		/* used internally by ld(1); XXX */ +	short n_desc;		/* used by stab entries */ +	unsigned long n_value;	/* address/value of the symbol */ +}; + +#define	N_FORMAT	"%08x"	/* namelist value format; XXX */ +#define	N_STAB		0x0e0	/* mask for debugger symbols -- stab(5) */ + +#include <sys/cdefs.h> + +__BEGIN_DECLS +int nlist __P((const char *, struct nlist *)); +__END_DECLS + +#endif /* !_NLIST_H_ */ | 
