aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvs2svn <cvs2svn@FreeBSD.org>1999-09-16 08:26:13 +0000
committercvs2svn <cvs2svn@FreeBSD.org>1999-09-16 08:26:13 +0000
commite5eb97b547f5af1e2b6e4396933dc06b93d5590e (patch)
treea225c25e840ec7274824d5c7c0d45fd244832a09
parenta7f56066b1c5f0d92fec969fc2c4205137454257 (diff)
downloadsrc-e5eb97b547f5af1e2b6e4396933dc06b93d5590e.tar.gz
src-e5eb97b547f5af1e2b6e4396933dc06b93d5590e.zip
This commit was manufactured by cvs2svn to create tagrelease/3.3.0
'RELENG_3_3_0_RELEASE'.
Notes
Notes: svn path=/stable/3/; revision=51329 svn path=/release/3.3.0/; revision=51330; tag=release/3.3.0
-rw-r--r--contrib/com_err/ChangeLog106
-rw-r--r--contrib/com_err/Makefile.am24
-rw-r--r--contrib/com_err/Makefile.in710
-rw-r--r--contrib/com_err/com_err.396
-rw-r--r--contrib/com_err/com_err.c155
-rw-r--r--contrib/com_err/compile_et.178
-rw-r--r--contrib/com_err/compile_et.c234
-rw-r--r--contrib/com_err/compile_et.h83
-rw-r--r--contrib/com_err/error.c96
-rw-r--r--contrib/com_err/getarg.c376
-rw-r--r--contrib/com_err/getarg.h76
-rw-r--r--contrib/com_err/lex.l129
-rw-r--r--contrib/com_err/parse.y173
-rw-r--r--contrib/com_err/roken_rename.h44
-rw-r--r--contrib/groff/tmac/hyphen.us-ru4833
-rw-r--r--contrib/groff/tmac/locale/hyphen.us-ru4833
-rw-r--r--sbin/ifconfig/ifvlan.c156
-rw-r--r--share/examples/diskless/209.157.86.12/README27
-rw-r--r--share/examples/diskless/209.157.86.12/rc.conf.local9
-rw-r--r--share/examples/diskless/209.157.86.12/ssh_host_keybin540 -> 0 bytes
-rw-r--r--share/examples/diskless/209.157.86.12/ssh_host_key.pub1
-rw-r--r--share/examples/diskless/HT.DISKLESS/fstab5
-rw-r--r--share/examples/diskless/HT.DISKLESS/rc.conf.local34
-rwxr-xr-xshare/examples/diskless/HT.DISKLESS/rc.local77
-rw-r--r--share/examples/diskless/HT.DISKLESS/syslog.conf3
-rw-r--r--share/examples/diskless/HT.DISKLESS/ttys52
-rw-r--r--share/examples/diskless/HT.DISKLESS/xdm-config15
-rw-r--r--share/examples/diskless/HT.STD/aliases30
-rw-r--r--share/examples/diskless/HT.STD/forward.map6
-rw-r--r--share/examples/diskless/HT.STD/ndomain.map11
-rw-r--r--share/examples/diskless/HT.STD/syslog.conf11
-rw-r--r--share/examples/diskless/HT.STD/ttys52
-rw-r--r--share/examples/diskless/ME37
-rw-r--r--share/examples/diskless/README.BOOTP157
-rw-r--r--share/examples/diskless/README.TEMPLATING286
-rw-r--r--share/man/man4/intpm.464
-rw-r--r--share/man/man4/man4.i386/sis.4149
-rw-r--r--share/man/man4/man4.i386/ste.4149
-rw-r--r--sys/dev/bktr/bktr_i2c.h34
-rw-r--r--sys/i386/include/i4b_rbch_ioctl.h53
-rw-r--r--sys/i386/isa/if_wl.c2
-rw-r--r--sys/i4b/MAINTAINER1
-rw-r--r--sys/i4b/driver/i4b_bsdi_ibc.c559
-rw-r--r--sys/i4b/layer1/i4b_asuscom_ipac.c510
-rw-r--r--sys/i4b/layer1/i4b_avm_fritz_pci.c1732
-rw-r--r--sys/i4b/layer1/i4b_avm_fritz_pnp.c1268
-rw-r--r--sys/i4b/layer1/i4b_siemens_isurf.c317
-rw-r--r--sys/i4b/layer1/pci_isic.h53
-rw-r--r--sys/pci/alpm.c666
-rw-r--r--sys/pci/if_sisreg.h404
-rw-r--r--sys/pci/intpmreg.h77
-rw-r--r--usr.sbin/i4b/dtmfdecode/Makefile15
-rw-r--r--usr.sbin/i4b/dtmfdecode/dtmfdecode.164
-rw-r--r--usr.sbin/i4b/dtmfdecode/dtmfdecode.c150
-rw-r--r--usr.sbin/i4b/g711conv/Makefile14
-rw-r--r--usr.sbin/i4b/g711conv/g711conv.196
-rw-r--r--usr.sbin/i4b/g711conv/g711conv.c304
-rw-r--r--usr.sbin/inetd/builtins.c682
-rw-r--r--usr.sbin/inetd/inetd.h134
-rw-r--r--usr.sbin/pkg_install/add/main.c2
-rw-r--r--usr.sbin/ppp/nat_cmd.c434
-rw-r--r--usr.sbin/ppp/nat_cmd.h15
-rw-r--r--usr.sbin/pw/pw_vpw.c316
63 files changed, 3 insertions, 21276 deletions
diff --git a/contrib/com_err/ChangeLog b/contrib/com_err/ChangeLog
deleted file mode 100644
index ea7a5f6d01ee..000000000000
--- a/contrib/com_err/ChangeLog
+++ /dev/null
@@ -1,106 +0,0 @@
-1999-07-03 Assar Westerlund <assar@sics.se>
-
- * parse.y (statement): use asprintf
-
-1999-06-13 Assar Westerlund <assar@sics.se>
-
- * Makefile.in: make it solaris make vpath-safe
-
-Thu Apr 1 11:13:53 1999 Johan Danielsson <joda@hella.pdc.kth.se>
-
- * compile_et.c: use getargs
-
-Sat Mar 20 00:16:30 1999 Assar Westerlund <assar@sics.se>
-
- * compile_et.c: static-ize
-
-Thu Mar 18 11:22:13 1999 Johan Danielsson <joda@hella.pdc.kth.se>
-
- * Makefile.am: include Makefile.am.common
-
-Tue Mar 16 22:30:05 1999 Assar Westerlund <assar@sics.se>
-
- * parse.y: use YYACCEPT instead of return
-
-Sat Mar 13 22:22:56 1999 Assar Westerlund <assar@sics.se>
-
- * compile_et.c (generate_h): cast when calling is* to get rid of a
- warning
-
-Thu Mar 11 15:00:51 1999 Johan Danielsson <joda@hella.pdc.kth.se>
-
- * parse.y: prototype for error_message
-
-Sun Nov 22 10:39:02 1998 Assar Westerlund <assar@sics.se>
-
- * compile_et.h: include ctype and roken
-
- * compile_et.c: include err.h
- (generate_h): remove unused variable
-
- * Makefile.in (WFLAGS): set
-
-Fri Nov 20 06:58:59 1998 Assar Westerlund <assar@sics.se>
-
- * lex.l: undef ECHO to work around AIX lex bug
-
-Sun Sep 27 02:23:59 1998 Johan Danielsson <joda@hella.pdc.kth.se>
-
- * com_err.c (error_message): try to pass code to strerror, to see
- if it might be an errno code (this if broken, but some MIT code
- seems to expect this behaviour)
-
-Sat Sep 26 17:42:39 1998 Johan Danielsson <joda@hella.pdc.kth.se>
-
- * compile_et.c: <foo_err.h> -> "foo_err.h"
-
-Tue Jun 30 17:17:36 1998 Assar Westerlund <assar@sics.se>
-
- * Makefile.in: add str{cpy,cat}_truncate
-
-Mon May 25 05:24:39 1998 Assar Westerlund <assar@sics.se>
-
- * Makefile.in (clean): try to remove shared library debris
-
-Sun Apr 19 09:50:17 1998 Assar Westerlund <assar@sics.se>
-
- * Makefile.in: add symlink magic for linux
-
-Sun Apr 5 09:22:11 1998 Assar Westerlund <assar@sics.se>
-
- * parse.y: define alloca to malloc in case we're using bison but
- don't have alloca
-
-Tue Mar 24 05:13:01 1998 Assar Westerlund <assar@sics.se>
-
- * Makefile.in: link with snprintf (From Derrick J Brashear
- <shadow@dementia.org>)
-
-Fri Feb 27 05:01:42 1998 Assar Westerlund <assar@sics.se>
-
- * parse.y: initialize ec->next
-
-Thu Feb 26 02:22:25 1998 Assar Westerlund <assar@sics.se>
-
- * Makefile.am: @LEXLIB@
-
-Sat Feb 21 15:18:54 1998 assar westerlund <assar@sics.se>
-
- * Makefile.in: set YACC and LEX
-
-Tue Feb 17 22:20:27 1998 Bjoern Groenvall <bg@sics.se>
-
- * com_right.h: Change typedefs so that one may mix MIT compile_et
- generated code with krb4 dito.
-
-Tue Feb 17 16:30:55 1998 Johan Danielsson <joda@emma.pdc.kth.se>
-
- * compile_et.c (generate): Always return a value.
-
- * parse.y: Files don't have to end with `end'.
-
-Mon Feb 16 16:09:20 1998 Johan Danielsson <joda@emma.pdc.kth.se>
-
- * lex.l (getstring): Replace getc() with input().
-
- * Makefile.am: Fixes for new compile_et.
diff --git a/contrib/com_err/Makefile.am b/contrib/com_err/Makefile.am
deleted file mode 100644
index 2c7525b96d23..000000000000
--- a/contrib/com_err/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id: Makefile.am,v 1.23 1999/04/09 18:26:55 assar Exp $
-
-include $(top_srcdir)/Makefile.am.common
-
-YFLAGS = -d
-
-lib_LTLIBRARIES = libcom_err.la
-libcom_err_la_LDFLAGS = -version-info 1:0:0
-
-bin_PROGRAMS = compile_et
-
-include_HEADERS = com_err.h com_right.h
-
-compile_et_SOURCES = compile_et.c compile_et.h parse.y lex.l
-
-libcom_err_la_SOURCES = error.c com_err.c roken_rename.h
-
-CLEANFILES = lex.c parse.c parse.h
-
-$(compile_et_OBJECTS): parse.h
-
-compile_et_LDADD = \
- $(LIB_roken) \
- $(LEXLIB)
diff --git a/contrib/com_err/Makefile.in b/contrib/com_err/Makefile.in
deleted file mode 100644
index 6edf45238c08..000000000000
--- a/contrib/com_err/Makefile.in
+++ /dev/null
@@ -1,710 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# $Id: Makefile.am,v 1.23 1999/04/09 18:26:55 assar Exp $
-
-
-# $Id: Makefile.am.common,v 1.3 1999/04/01 14:58:43 joda Exp $
-
-
-# $Id: Makefile.am.common,v 1.12 1999/07/28 00:54:29 assar Exp $
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ../..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AFS_EXTRA_LD = @AFS_EXTRA_LD@
-AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
-AWK = @AWK@
-CANONICAL_HOST = @CANONICAL_HOST@
-CATMAN = @CATMAN@
-CATMANEXT = @CATMANEXT@
-CC = @CC@
-DBLIB = @DBLIB@
-EXEEXT = @EXEEXT@
-EXTRA_LIB45 = @EXTRA_LIB45@
-GROFF = @GROFF@
-INCLUDE_ = @INCLUDE_@
-LD = @LD@
-LEX = @LEX@
-LIBOBJS = @LIBOBJS@
-LIBTOOL = @LIBTOOL@
-LIB_ = @LIB_@
-LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@
-LIB_kdb = @LIB_kdb@
-LIB_otp = @LIB_otp@
-LIB_roken = @LIB_roken@
-LIB_security = @LIB_security@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MAKE_X_PROGS_BIN_PROGS = @MAKE_X_PROGS_BIN_PROGS@
-MAKE_X_PROGS_BIN_SCRPTS = @MAKE_X_PROGS_BIN_SCRPTS@
-MAKE_X_PROGS_LIBEXEC_PROGS = @MAKE_X_PROGS_LIBEXEC_PROGS@
-NEED_WRITEAUTH_FALSE = @NEED_WRITEAUTH_FALSE@
-NEED_WRITEAUTH_TRUE = @NEED_WRITEAUTH_TRUE@
-NM = @NM@
-NROFF = @NROFF@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-VERSION = @VERSION@
-VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
-WFLAGS = @WFLAGS@
-WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
-WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
-YACC = @YACC@
-
-AUTOMAKE_OPTIONS = foreign no-dependencies
-
-SUFFIXES = .et .h .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .x
-
-INCLUDES = -I$(top_builddir)/include
-
-AM_CFLAGS = $(WFLAGS)
-
-COMPILE_ET = $(top_builddir)/lib/com_err/compile_et
-
-buildinclude = $(top_builddir)/include
-
-LIB_XauReadAuth = @LIB_XauReadAuth@
-LIB_crypt = @LIB_crypt@
-LIB_dbm_firstkey = @LIB_dbm_firstkey@
-LIB_dbopen = @LIB_dbopen@
-LIB_dlopen = @LIB_dlopen@
-LIB_dn_expand = @LIB_dn_expand@
-LIB_el_init = @LIB_el_init@
-LIB_getattr = @LIB_getattr@
-LIB_gethostbyname = @LIB_gethostbyname@
-LIB_getpwent_r = @LIB_getpwent_r@
-LIB_getpwnam_r = @LIB_getpwnam_r@
-LIB_getsockopt = @LIB_getsockopt@
-LIB_logout = @LIB_logout@
-LIB_logwtmp = @LIB_logwtmp@
-LIB_odm_initialize = @LIB_odm_initialize@
-LIB_readline = @LIB_readline@
-LIB_res_search = @LIB_res_search@
-LIB_setpcred = @LIB_setpcred@
-LIB_setsockopt = @LIB_setsockopt@
-LIB_socket = @LIB_socket@
-LIB_syslog = @LIB_syslog@
-LIB_tgetent = @LIB_tgetent@
-
-HESIODLIB = @HESIODLIB@
-HESIODINCLUDE = @HESIODINCLUDE@
-INCLUDE_hesiod = @INCLUDE_hesiod@
-LIB_hesiod = @LIB_hesiod@
-
-INCLUDE_krb4 = @INCLUDE_krb4@
-LIB_krb4 = @LIB_krb4@
-
-INCLUDE_readline = @INCLUDE_readline@
-
-LEXLIB = @LEXLIB@
-
-cat1dir = $(mandir)/cat1
-cat3dir = $(mandir)/cat3
-cat5dir = $(mandir)/cat5
-cat8dir = $(mandir)/cat8
-
-MANRX = \(.*\)\.\([0-9]\)
-CATSUFFIX = @CATSUFFIX@
-
-NROFF_MAN = groff -mandoc -Tascii
-
-@KRB4_TRUE@LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
-
-@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la $(top_builddir)/lib/asn1/libasn1.la
-@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
-
-CHECK_LOCAL = $(PROGRAMS)
-
-YFLAGS = -d
-
-lib_LTLIBRARIES = libcom_err.la
-libcom_err_la_LDFLAGS = -version-info 1:0:0
-
-bin_PROGRAMS = compile_et
-
-include_HEADERS = com_err.h com_right.h
-
-compile_et_SOURCES = compile_et.c compile_et.h parse.y lex.l
-
-libcom_err_la_SOURCES = error.c com_err.c roken_rename.h
-
-CLEANFILES = lex.c parse.c parse.h
-
-compile_et_LDADD = $(LIB_roken) $(LEXLIB)
-
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../../include/config.h
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(lib_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I../../include
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-X_CFLAGS = @X_CFLAGS@
-X_LIBS = @X_LIBS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
-libcom_err_la_LIBADD =
-libcom_err_la_OBJECTS = error.lo com_err.lo
-bin_PROGRAMS = compile_et$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS)
-
-compile_et_OBJECTS = compile_et.$(OBJEXT) parse.$(OBJEXT) lex.$(OBJEXT)
-compile_et_DEPENDENCIES =
-compile_et_LDFLAGS =
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS = $(include_HEADERS)
-
-DIST_COMMON = ChangeLog Makefile.am Makefile.in lex.c parse.c
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libcom_err_la_SOURCES) $(compile_et_SOURCES)
-OBJECTS = $(libcom_err_la_OBJECTS) $(compile_et_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .1 .3 .5 .8 .S .c .cat1 .cat3 .cat5 .cat8 .et .h .l .lo .o .obj .s .x .y
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common
- cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/com_err/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-libLTLIBRARIES:
-
-clean-libLTLIBRARIES:
- -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-
-distclean-libLTLIBRARIES:
-
-maintainer-clean-libLTLIBRARIES:
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
- $(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
- else :; fi; \
- done
-
-uninstall-libLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
- done
-
-.c.o:
- $(COMPILE) -c $<
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
- $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
- -rm -f *.$(OBJEXT)
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
- $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libcom_err.la: $(libcom_err_la_OBJECTS) $(libcom_err_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libcom_err_la_LDFLAGS) $(libcom_err_la_OBJECTS) $(libcom_err_la_LIBADD) $(LIBS)
-
-mostlyclean-binPROGRAMS:
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-distclean-binPROGRAMS:
-
-maintainer-clean-binPROGRAMS:
-
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(bindir)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- list='$(bin_PROGRAMS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- done
-
-compile_et$(EXEEXT): $(compile_et_OBJECTS) $(compile_et_DEPENDENCIES)
- @rm -f compile_et$(EXEEXT)
- $(LINK) $(compile_et_LDFLAGS) $(compile_et_OBJECTS) $(compile_et_LDADD) $(LIBS)
-.l.c:
- $(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
-.y.c:
- $(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
- if test -f y.tab.h; then \
- if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
- else :; fi
-parse.h: parse.c
-
-
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(includedir)
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(include_HEADERS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(includedir)/$$p; \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = lib/com_err
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-local
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-libLTLIBRARIES install-binPROGRAMS
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
-install-exec: install-exec-am
-
-install-data-am: install-includeHEADERS install-data-local
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-libLTLIBRARIES uninstall-binPROGRAMS \
- uninstall-includeHEADERS
-uninstall: uninstall-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) all-local
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \
- $(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
- -test -z "lexlparsehparsec" || rm -f lexl parseh parsec
-mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \
- mostlyclean-libtool mostlyclean-binPROGRAMS \
- mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-libLTLIBRARIES clean-compile clean-libtool \
- clean-binPROGRAMS clean-tags clean-generic \
- mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-libLTLIBRARIES distclean-compile \
- distclean-libtool distclean-binPROGRAMS distclean-tags \
- distclean-generic clean-am
- -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-libLTLIBRARIES \
- maintainer-clean-compile maintainer-clean-libtool \
- maintainer-clean-binPROGRAMS maintainer-clean-tags \
- maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
-clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
-uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
-distclean-compile clean-compile maintainer-clean-compile \
-mostlyclean-libtool distclean-libtool clean-libtool \
-maintainer-clean-libtool mostlyclean-binPROGRAMS distclean-binPROGRAMS \
-clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \
-install-binPROGRAMS uninstall-includeHEADERS install-includeHEADERS \
-tags mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
-distdir info-am info dvi-am dvi check-local check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-local install-data-am install-data install-am install \
-uninstall-am uninstall all-local all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-install-suid-programs:
- @foo='$(bin_SUIDS)'; \
- for file in $$foo; do \
- x=$(DESTDIR)$(bindir)/$$file; \
- if chown 0:0 $$x && chmod u+s $$x; then :; else \
- chmod 0 $$x; fi; done
-
-install-exec-hook: install-suid-programs
-
-install-build-headers:: $(include_HEADERS) $(build_HEADERZ)
- @foo='$(include_HEADERS) $(build_HEADERZ)'; \
- for f in $$foo; do \
- f=`basename $$f`; \
- if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \
- else file="$$f"; fi; \
- if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
- : ; else \
- echo " $(INSTALL_DATA) $$file $(buildinclude)/$$f"; \
- $(INSTALL_DATA) $$file $(buildinclude)/$$f; \
- fi ; \
- done
-
-all-local: install-build-headers
-#NROFF_MAN = nroff -man
-.1.cat1:
- $(NROFF_MAN) $< > $@
-.3.cat3:
- $(NROFF_MAN) $< > $@
-.5.cat5:
- $(NROFF_MAN) $< > $@
-.8.cat8:
- $(NROFF_MAN) $< > $@
-
-dist-cat1-mans:
- @foo='$(man1_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.1) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat1/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat3-mans:
- @foo='$(man3_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.3) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat3/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat5-mans:
- @foo='$(man5_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.5) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat5/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-cat8-mans:
- @foo='$(man8_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.8) foo="$$foo $$i";; \
- esac; done ;\
- for i in $$foo; do \
- x=`echo $$i | sed 's/\.[^.]*$$/.cat8/'`; \
- echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
- $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
- done
-
-dist-hook: dist-cat1-mans dist-cat3-mans dist-cat5-mans dist-cat8-mans
-
-install-cat1-mans:
- @ext=1;\
- foo='$(man1_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.1) foo="$$foo $$i";; \
- esac; done; \
- if test "$$foo"; then \
- $(mkinstalldirs) $(DESTDIR)$(cat1dir); \
- for x in $$foo; do \
- f=`echo $$x | sed 's/\.[^.]*$$/.cat1/'`; \
- if test -f "$(srcdir)/$$f"; then \
- b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
- echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat1dir)/$$b.$(CATSUFFIX)";\
- $(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat1dir)/$$b.$(CATSUFFIX);\
- fi; \
- done ;\
- fi
-
-install-cat3-mans:
- @ext=3;\
- foo='$(man3_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.3) foo="$$foo $$i";; \
- esac; done; \
- if test "$$foo"; then \
- $(mkinstalldirs) $(DESTDIR)$(cat3dir); \
- for x in $$foo; do \
- f=`echo $$x | sed 's/\.[^.]*$$/.cat3/'`; \
- if test -f "$(srcdir)/$$f"; then \
- b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
- echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat3dir)/$$b.$(CATSUFFIX)";\
- $(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat3dir)/$$b.$(CATSUFFIX);\
- fi; \
- done ;\
- fi
-
-install-cat5-mans:
- @ext=5;\
- foo='$(man5_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.5) foo="$$foo $$i";; \
- esac; done; \
- if test "$$foo"; then \
- $(mkinstalldirs) $(DESTDIR)$(cat5dir); \
- for x in $$foo; do \
- f=`echo $$x | sed 's/\.[^.]*$$/.cat5/'`; \
- if test -f "$(srcdir)/$$f"; then \
- b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
- echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat5dir)/$$b.$(CATSUFFIX)";\
- $(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat5dir)/$$b.$(CATSUFFIX);\
- fi; \
- done ;\
- fi
-
-install-cat8-mans:
- @ext=8;\
- foo='$(man8_MANS)'; \
- bar='$(man_MANS)'; \
- for i in $$bar; do \
- case $$i in \
- *.8) foo="$$foo $$i";; \
- esac; done; \
- if test "$$foo"; then \
- $(mkinstalldirs) $(DESTDIR)$(cat8dir); \
- for x in $$foo; do \
- f=`echo $$x | sed 's/\.[^.]*$$/.cat8/'`; \
- if test -f "$(srcdir)/$$f"; then \
- b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
- echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat8dir)/$$b.$(CATSUFFIX)";\
- $(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat8dir)/$$b.$(CATSUFFIX);\
- fi; \
- done ;\
- fi
-
-install-cat-mans: install-cat1-mans install-cat3-mans install-cat5-mans install-cat8-mans
-
-install-data-local: install-cat-mans
-
-.et.h:
- $(COMPILE_ET) $<
-.et.c:
- $(COMPILE_ET) $<
-
-.x.c:
- @cmp -s $< $@ 2> /dev/null || cp $< $@
-
-check-local::
- @foo='$(CHECK_LOCAL)'; \
- if test "$$foo"; then \
- failed=0; all=0; \
- for i in $$foo; do \
- all=`expr $$all + 1`; \
- if ./$$i --version > /dev/null 2>&1; then \
- echo "PASS: $$i"; \
- else \
- echo "FAIL: $$i"; \
- failed=`expr $$failed + 1`; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="$$failed of $$all tests failed"; \
- fi; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0; \
- fi
-
-$(compile_et_OBJECTS): parse.h
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/contrib/com_err/com_err.3 b/contrib/com_err/com_err.3
deleted file mode 100644
index e6eeea13b852..000000000000
--- a/contrib/com_err/com_err.3
+++ /dev/null
@@ -1,96 +0,0 @@
-.\" Copyright (c) 1988 Massachusetts Institute of Technology,
-.\" Student Information Processing Board. All rights reserved.
-.\"
-.\" $FreeBSD$
-.\"
-.TH COM_ERR 3 "22 Nov 1988" SIPB
-.SH NAME
-com_err \- common error display routine
-.SH SYNOPSIS
-.nf
- #include <com_err.h>
-.PP
-void com_err (whoami, code, format, ...);
- const char *whoami;
- long code;
- const char *format;
-.PP
-proc = set_com_err_hook (proc);
-.fi
-void (*
-.I proc
-) (const char *, long, const char *, va_list);
-.nf
-.PP
-proc = reset_com_err_hook ();
-.PP
-void initialize_XXXX_error_table ();
-.fi
-.SH DESCRIPTION
-.I Com_err
-displays an error message on the standard error stream
-.I stderr
-(see
-.IR stdio (3S))
-composed of the
-.I whoami
-string, which should specify the program name or some subportion of
-a program, followed by an error message generated from the
-.I code
-value (derived from
-.IR compile_et (1)),
-and a string produced using the
-.I format
-string and any following arguments, in the same style as
-.IR fprintf (3).
-
-The behavior of
-.I com_err
-can be modified using
-.I set_com_err_hook;
-this defines a procedure which is called with the arguments passed to
-.I com_err,
-instead of the default internal procedure which sends the formatted
-text to error output. Thus the error messages from a program can all
-easily be diverted to another form of diagnostic logging, such as
-.IR syslog (3).
-.I Reset_com_err_hook
-may be used to restore the behavior of
-.I com_err
-to its default form. Both procedures return the previous ``hook''
-value. These ``hook'' procedures must have the declaration given for
-.I proc
-above in the synopsis.
-
-The
-.I initialize_XXXX_error_table
-routine is generated mechanically by
-.IR compile_et (1)
-from a source file containing names and associated strings. Each
-table has a name of up to four characters, which is used in place of
-the
-.B XXXX
-in the name of the routine. These routines should be called before
-any of the corresponding error codes are used, so that the
-.I com_err
-library will recognize error codes from these tables when they are
-used.
-
-The
-.B com_err.h
-header file should be included in any source file that uses routines
-from the
-.I com_err
-library; executable files must be linked using
-.I ``-lcom_err''
-in order to cause the
-.I com_err
-library to be included.
-
-.\" .IR for manual entries
-.\" .PP for paragraph breaks
-
-.SH "SEE ALSO"
-compile_et (1), syslog (3).
-
-Ken Raeburn, "A Common Error Description Library for UNIX".
diff --git a/contrib/com_err/com_err.c b/contrib/com_err/com_err.c
deleted file mode 100644
index fc15e9a914c1..000000000000
--- a/contrib/com_err/com_err.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: com_err.c,v 1.13 1999/03/12 15:17:08 bg Exp $");
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "com_err.h"
-
-struct et_list *_et_list;
-
-
-const char *
-error_message (long code)
-{
- static char msg[128];
- const char *p = com_right(_et_list, code);
- if (p == NULL)
- p = strerror(code);
- if (p != NULL && *p != '\0') {
- strncpy(msg, p, sizeof(msg) - 1);
- msg[sizeof(msg) - 1] = 0;
- } else
- sprintf(msg, "Unknown error %ld", code);
- return msg;
-}
-
-int
-init_error_table(const char **msgs, long base, int count)
-{
- initialize_error_table_r(&_et_list, msgs, count, base);
- return 0;
-}
-
-static void
-default_proc (const char *whoami, long code, const char *fmt, va_list args)
-{
- if (whoami)
- fprintf(stderr, "%s: ", whoami);
- if (code)
- fprintf(stderr, "%s ", error_message(code));
- if (fmt)
- vfprintf(stderr, fmt, args);
- fprintf(stderr, "\r\n"); /* ??? */
-}
-
-static errf com_err_hook = default_proc;
-
-void
-com_err_va (const char *whoami,
- long code,
- const char *fmt,
- va_list args)
-{
- (*com_err_hook) (whoami, code, fmt, args);
-}
-
-void
-com_err (const char *whoami,
- long code,
- const char *fmt,
- ...)
-{
- va_list ap;
- va_start(ap, fmt);
- com_err_va (whoami, code, fmt, ap);
- va_end(ap);
-}
-
-errf
-set_com_err_hook (errf new)
-{
- errf old = com_err_hook;
-
- if (new)
- com_err_hook = new;
- else
- com_err_hook = default_proc;
-
- return old;
-}
-
-errf
-reset_com_err_hook (void)
-{
- return set_com_err_hook(NULL);
-}
-
-#define ERRCODE_RANGE 8 /* # of bits to shift table number */
-#define BITS_PER_CHAR 6 /* # bits to shift per character in name */
-
-static const char char_set[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
-
-static char buf[6];
-
-const char *
-error_table_name(int num)
-{
- int ch;
- int i;
- char *p;
-
- /* num = aa aaa abb bbb bcc ccc cdd ddd d?? ??? ??? */
- p = buf;
- num >>= ERRCODE_RANGE;
- /* num = ?? ??? ??? aaa aaa bbb bbb ccc ccc ddd ddd */
- num &= 077777777;
- /* num = 00 000 000 aaa aaa bbb bbb ccc ccc ddd ddd */
- for (i = 4; i >= 0; i--) {
- ch = (num >> BITS_PER_CHAR * i) & ((1 << BITS_PER_CHAR) - 1);
- if (ch != 0)
- *p++ = char_set[ch-1];
- }
- *p = '\0';
- return(buf);
-}
diff --git a/contrib/com_err/compile_et.1 b/contrib/com_err/compile_et.1
deleted file mode 100644
index 091038079535..000000000000
--- a/contrib/com_err/compile_et.1
+++ /dev/null
@@ -1,78 +0,0 @@
-.\" Copyright (c) 1988 Massachusetts Institute of Technology,
-.\" Student Information Processing Board. All rights reserved.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd November 22, 1988
-.Os
-.Dt COMPILE_ET 1
-.Sh NAME
-.Nm compile_et
-.Nd error table compiler
-.Sh SYNOPSIS
-.Nm compile_et
-.Ar file
-.Sh DESCRIPTION
-.Nm Compile_et
-converts a table listing error-code names and associated messages into
-a C source file suitable for use with the
-.Xr com_err 3
-library.
-.Pp
-The source file name must end with a suffix of ``.et''; the file
-consists of a declaration supplying the name (up to four characters
-long) of the error-code table:
-
-.Em error_table name
-
-followed by up to 256 entries of the form:
-
-.Em error_code name ,
-"
-.Em string
-"
-
-and a final
-
-.Em end
-
-to indicate the end of the table.
-.Pp
-The name of the table is used to construct the name of a subroutine
-.Em initialize_XXXX_error_table
-which must be called in order for the
-.Xr com_err 3
-library to recognize the error table.
-.Pp
-The various error codes defined are assigned sequentially increasing
-numbers (starting with a large number computed as a hash function of
-the name of the table); thus for compatibility it is suggested that
-new codes be added only to the end of an existing table, and that no
-codes be removed from tables.
-.Pp
-The names defined in the table are placed into a C header file with
-preprocessor directives defining them as integer constants of up to
-32 bits in magnitude.
-.Pp
-A C source file is also generated which should be compiled and linked
-with the object files which reference these error codes; it contains
-the text of the messages and the initialization subroutine. Both C
-files have names derived from that of the original source file, with
-the ``.et'' suffix replaced by ``.c'' and ``.h''.
-.Pp
-A ``#'' in the source file is treated as a comment character, and all
-remaining text to the end of the source line will be ignored.
-.Sh BUGS
-Since
-.Nm compile_et
-uses a very simple parser based on
-.Xr yacc 1 ,
-its error recovery leaves much to be desired.
-.Sh "SEE ALSO"
-.Xr yacc 1 ,
-.Xr com_err 3
-.Pp
-.Rs
-.%A Ken Raeburn
-.%T "A Common Error Description Library for UNIX"
-.Re
diff --git a/contrib/com_err/compile_et.c b/contrib/com_err/compile_et.c
deleted file mode 100644
index 345a39f0b140..000000000000
--- a/contrib/com_err/compile_et.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-#undef ROKEN_RENAME
-#include "compile_et.h"
-#include <getarg.h>
-
-#if 0
-RCSID("$Id: compile_et.c,v 1.12 1999/04/01 09:13:52 joda Exp $");
-#endif
-
-#include <err.h>
-#include "parse.h"
-
-int numerror;
-extern FILE *yyin;
-
-extern void yyparse(void);
-
-long base;
-int number;
-char *prefix;
-char *id_str;
-
-char name[128];
-char Basename[128];
-
-#ifdef YYDEBUG
-extern int yydebug = 1;
-#endif
-
-char *filename;
-char hfn[128];
-char cfn[128];
-
-struct error_code *codes = NULL;
-
-static int
-generate_c(void)
-{
- int n;
- struct error_code *ec;
-
- FILE *c_file = fopen(cfn, "w");
- if(c_file == NULL)
- return 1;
-
- fprintf(c_file, "/* Generated from %s */\n", filename);
- if(id_str)
- fprintf(c_file, "/* %s */\n", id_str);
- fprintf(c_file, "\n");
- fprintf(c_file, "#include <stddef.h>\n");
- fprintf(c_file, "#include <com_err.h>\n");
- fprintf(c_file, "#include \"%s\"\n", hfn);
- fprintf(c_file, "\n");
-
- fprintf(c_file, "static const char *text[] = {\n");
-
- for(ec = codes, n = 0; ec; ec = ec->next, n++) {
- while(n < ec->number) {
- fprintf(c_file, "\t/* %03d */ \"Reserved %s error (%d)\",\n",
- n, name, n);
- n++;
-
- }
- fprintf(c_file, "\t/* %03d */ \"%s\",\n", ec->number, ec->string);
- }
-
- fprintf(c_file, "\tNULL\n");
- fprintf(c_file, "};\n");
- fprintf(c_file, "\n");
- fprintf(c_file,
- "void initialize_%s_error_table_r(struct et_list **list)\n",
- name);
- fprintf(c_file, "{\n");
- fprintf(c_file,
- " initialize_error_table_r(list, text, "
- "%s_num_errors, ERROR_TABLE_BASE_%s);\n", name, name);
- fprintf(c_file, "}\n");
- fprintf(c_file, "\n");
- fprintf(c_file, "void initialize_%s_error_table(void)\n", name);
- fprintf(c_file, "{\n");
- fprintf(c_file,
- " init_error_table(text, ERROR_TABLE_BASE_%s, "
- "%s_num_errors);\n", name, name);
- fprintf(c_file, "}\n");
-
- fclose(c_file);
- return 0;
-}
-
-static int
-generate_h(void)
-{
- struct error_code *ec;
- char fn[128];
- FILE *h_file = fopen(hfn, "w");
- char *p;
-
- if(h_file == NULL)
- return 1;
-
- snprintf(fn, sizeof(fn), "__%s__", hfn);
- for(p = fn; *p; p++)
- if(!isalnum((unsigned char)*p))
- *p = '_';
-
- fprintf(h_file, "/* Generated from %s */\n", filename);
- if(id_str)
- fprintf(h_file, "/* %s */\n", id_str);
- fprintf(h_file, "\n");
- fprintf(h_file, "#ifndef %s\n", fn);
- fprintf(h_file, "#define %s\n", fn);
- fprintf(h_file, "\n");
- fprintf(h_file, "#include <com_right.h>\n");
- fprintf(h_file, "\n");
- fprintf(h_file,
- "void initialize_%s_error_table_r(struct et_list **);\n",
- name);
- fprintf(h_file, "\n");
- fprintf(h_file, "void initialize_%s_error_table(void);\n", name);
- fprintf(h_file, "#define init_%s_err_tbl initialize_%s_error_table\n",
- name, name);
- fprintf(h_file, "\n");
- fprintf(h_file, "typedef enum %s_error_number{\n", name);
- fprintf(h_file, "\tERROR_TABLE_BASE_%s = %ld,\n", name, base);
- fprintf(h_file, "\t%s_err_base = %ld,\n", name, base);
-
- for(ec = codes; ec; ec = ec->next) {
- fprintf(h_file, "\t%s = %ld,\n", ec->name, base + ec->number);
- }
-
- fprintf(h_file, "\t%s_num_errors = %d\n", name, number);
- fprintf(h_file, "} %s_error_number;\n", name);
- fprintf(h_file, "\n");
- fprintf(h_file, "#endif /* %s */\n", fn);
-
-
- fclose(h_file);
- return 0;
-}
-
-static int
-generate(void)
-{
- return generate_c() || generate_h();
-}
-
-int help_flag;
-struct getargs args[] = {
- { "help", 0, arg_flag, &help_flag }
-};
-int num_args = sizeof(args) / sizeof(args[0]);
-
-static void
-usage(int code)
-{
- arg_printusage(args, num_args, NULL, "error-table");
- exit(code);
-}
-
-int
-main(int argc, char **argv)
-{
- char *p;
- int optind = 0;
-
- if(getarg(args, num_args, argc, argv, &optind))
- usage(1);
- if(help_flag)
- usage(0);
-
- if(optind == argc)
- usage(1);
- filename = argv[optind];
- yyin = fopen(filename, "r");
- if(yyin == NULL)
- err(1, "%s", filename);
-
-
- p = strrchr(filename, '/');
- if(p)
- p++;
- else
- p = filename;
- strncpy(Basename, p, sizeof(Basename));
- Basename[sizeof(Basename) - 1] = '\0';
-
- Basename[strcspn(Basename, ".")] = '\0';
-
- snprintf(hfn, sizeof(hfn), "%s.h", Basename);
- snprintf(cfn, sizeof(cfn), "%s.c", Basename);
-
- yyparse();
- if(numerror)
- return 1;
-
- return generate();
-}
diff --git a/contrib/com_err/compile_et.h b/contrib/com_err/compile_et.h
deleted file mode 100644
index fc6b3e54c0d9..000000000000
--- a/contrib/com_err/compile_et.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 1998 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: compile_et.h,v 1.3 1998/11/22 09:39:46 assar Exp $ */
-
-#ifndef __COMPILE_ET_H__
-#define __COMPILE_ET_H__
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <ctype.h>
-
-extern long base;
-extern int number;
-extern char *prefix;
-extern char name[128];
-extern char *id_str;
-extern char *filename;
-extern int numerror;
-
-struct error_code {
- unsigned number;
- char *name;
- char *string;
- struct error_code *next, **tail;
-};
-
-extern struct error_code *codes;
-
-#define APPEND(L, V) \
-do { \
- if((L) == NULL) { \
- (L) = (V); \
- (L)->tail = &(V)->next; \
- (L)->next = NULL; \
- }else{ \
- *(L)->tail = (V); \
- (L)->tail = &(V)->next; \
- } \
-}while(0)
-
-#endif /* __COMPILE_ET_H__ */
diff --git a/contrib/com_err/error.c b/contrib/com_err/error.c
deleted file mode 100644
index 68f4f71632a8..000000000000
--- a/contrib/com_err/error.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-RCSID("$Id: error.c,v 1.13 1998/02/17 21:19:44 bg Exp $");
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <com_right.h>
-
-const char *
-com_right(struct et_list *list, long code)
-{
- struct et_list *p;
- for (p = list; p; p = p->next) {
- if (code >= p->table->base && code < p->table->base + p->table->n_msgs)
- return p->table->msgs[code - p->table->base];
- }
- return NULL;
-}
-
-struct foobar {
- struct et_list etl;
- struct error_table et;
-};
-
-void
-initialize_error_table_r(struct et_list **list,
- const char **messages,
- int num_errors,
- long base)
-{
- struct et_list *et;
- struct foobar *f;
- for (et = *list; et; et = et->next)
- if (et->table->msgs == messages)
- return;
- f = malloc(sizeof(*f));
- if (f == NULL)
- return;
- et = &f->etl;
- et->table = &f->et;
- et->table->msgs = messages;
- et->table->n_msgs = num_errors;
- et->table->base = base;
- et->next = *list;
- *list = et;
-}
-
-
-void
-free_error_table(struct et_list *et)
-{
- while(et){
- struct et_list *p = et;
- et = et->next;
- free(p);
- }
-}
diff --git a/contrib/com_err/getarg.c b/contrib/com_err/getarg.c
deleted file mode 100644
index 6972e6987c41..000000000000
--- a/contrib/com_err/getarg.c
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
- * Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-#if 0
-RCSID("$Id: getarg.c,v 1.25 1998/11/22 09:45:05 assar Exp $");
-#endif
-
-#include <sys/ttycom.h>
-#include <time.h>
-#include <stdio.h>
-#include "getarg.h"
-
-#define ISFLAG(X) ((X).type == arg_flag || (X).type == arg_negative_flag)
-
-static size_t
-print_arg (char *string, size_t len, int mdoc, int longp, struct getargs *arg)
-{
- const char *s;
-
- *string = '\0';
-
- if (ISFLAG(*arg))
- return 0;
-
- if(mdoc){
- if(longp)
- strncat(string, "= Ns", len);
- strncat(string, " Ar ", len);
- }else
- if (longp)
- strncat (string, "=", len);
- else
- strncat (string, " ", len);
-
- if (arg->arg_help)
- s = arg->arg_help;
- else if (arg->type == arg_integer)
- s = "number";
- else if (arg->type == arg_string)
- s = "string";
- else
- s = "<undefined>";
-
- strncat(string, s, len);
- return 1 + strlen(s);
-}
-
-static int
-check_column(FILE *f, int col, int len, int columns)
-{
- if(col + len > columns) {
- fprintf(f, "\n");
- col = fprintf(f, " ");
- }
- return col;
-}
-
-void
-arg_printusage (struct getargs *args,
- size_t num_args,
- const char *progname,
- const char *extra_string)
-{
- int i;
- size_t max_len = 0;
- char buf[128];
- int col = 0, columns;
- struct winsize ws;
-
- columns = 80;
- col = 0;
- col += fprintf (stderr, "Usage: %s", progname);
- for (i = 0; i < num_args; ++i) {
- size_t len = 0;
-
- if (args[i].long_name) {
- buf[0] = '\0';
- strncat(buf, "[--", sizeof(buf));
- len += 2;
- if(args[i].type == arg_negative_flag) {
- strncat(buf, "no-", sizeof(buf));
- len += 3;
- }
- strncat(buf, args[i].long_name, sizeof(buf));
- len += strlen(args[i].long_name);
- len += print_arg(buf + strlen(buf), sizeof(buf) - strlen(buf),
- 0, 1, &args[i]);
- strncat(buf, "]", sizeof(buf));
- if(args[i].type == arg_strings)
- strncat(buf, "...", sizeof(buf));
- col = check_column(stderr, col, strlen(buf) + 1, columns);
- col += fprintf(stderr, " %s", buf);
- }
- if (args[i].short_name) {
- snprintf(buf, sizeof(buf), "[-%c", args[i].short_name);
- len += 2;
- len += print_arg(buf + strlen(buf), sizeof(buf) - strlen(buf),
- 0, 0, &args[i]);
- strncat(buf, "]", sizeof(buf));
- if(args[i].type == arg_strings)
- strncat(buf, "...", sizeof(buf));
- col = check_column(stderr, col, strlen(buf) + 1, columns);
- col += fprintf(stderr, " %s", buf);
- }
- if (args[i].long_name && args[i].short_name)
- len += 2; /* ", " */
- max_len = max(max_len, len);
- }
- if (extra_string) {
- col = check_column(stderr, col, strlen(extra_string) + 1, columns);
- fprintf (stderr, " %s\n", extra_string);
- } else
- fprintf (stderr, "\n");
- for (i = 0; i < num_args; ++i) {
- if (args[i].help) {
- size_t count = 0;
-
- if (args[i].short_name) {
- count += fprintf (stderr, "-%c", args[i].short_name);
- print_arg (buf, sizeof(buf), 0, 0, &args[i]);
- count += fprintf(stderr, "%s", buf);
- }
- if (args[i].short_name && args[i].long_name)
- count += fprintf (stderr, ", ");
- if (args[i].long_name) {
- count += fprintf (stderr, "--");
- if (args[i].type == arg_negative_flag)
- count += fprintf (stderr, "no-");
- count += fprintf (stderr, "%s", args[i].long_name);
- print_arg (buf, sizeof(buf), 0, 1, &args[i]);
- count += fprintf(stderr, "%s", buf);
- }
- while(count++ <= max_len)
- putc (' ', stderr);
- fprintf (stderr, "%s\n", args[i].help);
- }
- }
-}
-
-static void
-add_string(getarg_strings *s, char *value)
-{
- s->strings = realloc(s->strings, (s->num_strings + 1) * sizeof(*s->strings));
- s->strings[s->num_strings] = value;
- s->num_strings++;
-}
-
-static int
-arg_match_long(struct getargs *args, size_t num_args,
- char *argv)
-{
- int i;
- char *optarg = NULL;
- int negate = 0;
- int partial_match = 0;
- struct getargs *partial = NULL;
- struct getargs *current = NULL;
- int argv_len;
- char *p;
-
- argv_len = strlen(argv);
- p = strchr (argv, '=');
- if (p != NULL)
- argv_len = p - argv;
-
- for (i = 0; i < num_args; ++i) {
- if(args[i].long_name) {
- int len = strlen(args[i].long_name);
- char *p = argv;
- int p_len = argv_len;
- negate = 0;
-
- for (;;) {
- if (strncmp (args[i].long_name, p, p_len) == 0) {
- if(p_len == len)
- current = &args[i];
- else {
- ++partial_match;
- partial = &args[i];
- }
- optarg = p + p_len;
- } else if (ISFLAG(args[i]) && strncmp (p, "no-", 3) == 0) {
- negate = !negate;
- p += 3;
- p_len -= 3;
- continue;
- }
- break;
- }
- if (current)
- break;
- }
- }
- if (current == NULL) {
- if (partial_match == 1)
- current = partial;
- else
- return ARG_ERR_NO_MATCH;
- }
-
- if(*optarg == '\0' && !ISFLAG(*current))
- return ARG_ERR_NO_MATCH;
- switch(current->type){
- case arg_integer:
- {
- int tmp;
- if(sscanf(optarg + 1, "%d", &tmp) != 1)
- return ARG_ERR_BAD_ARG;
- *(int*)current->value = tmp;
- return 0;
- }
- case arg_string:
- {
- *(char**)current->value = optarg + 1;
- return 0;
- }
- case arg_strings:
- {
- add_string((getarg_strings*)current->value, optarg + 1);
- return 0;
- }
- case arg_flag:
- case arg_negative_flag:
- {
- int *flag = current->value;
- if(*optarg == '\0' ||
- strcmp(optarg + 1, "yes") == 0 ||
- strcmp(optarg + 1, "true") == 0){
- *flag = !negate;
- return 0;
- } else if (*optarg && strcmp(optarg + 1, "maybe") == 0) {
- *flag = rand() & 1;
- } else {
- *flag = negate;
- return 0;
- }
- return ARG_ERR_BAD_ARG;
- }
- default:
- abort ();
- }
-}
-
-int
-getarg(struct getargs *args, size_t num_args,
- int argc, char **argv, int *optind)
-{
- int i, j, k;
- int ret = 0;
-
- srand (time(NULL));
- (*optind)++;
- for(i = *optind; i < argc; i++) {
- if(argv[i][0] != '-')
- break;
- if(argv[i][1] == '-'){
- if(argv[i][2] == 0){
- i++;
- break;
- }
- ret = arg_match_long (args, num_args, argv[i] + 2);
- if(ret)
- return ret;
- }else{
- for(j = 1; argv[i][j]; j++) {
- for(k = 0; k < num_args; k++) {
- char *optarg;
- if(args[k].short_name == 0)
- continue;
- if(argv[i][j] == args[k].short_name){
- if(args[k].type == arg_flag){
- *(int*)args[k].value = 1;
- break;
- }
- if(args[k].type == arg_negative_flag){
- *(int*)args[k].value = 0;
- break;
- }
- if(argv[i][j + 1])
- optarg = &argv[i][j + 1];
- else{
- i++;
- optarg = argv[i];
- }
- if(optarg == NULL)
- return ARG_ERR_NO_ARG;
- if(args[k].type == arg_integer){
- int tmp;
- if(sscanf(optarg, "%d", &tmp) != 1)
- return ARG_ERR_BAD_ARG;
- *(int*)args[k].value = tmp;
- goto out;
- }else if(args[k].type == arg_string){
- *(char**)args[k].value = optarg;
- goto out;
- }else if(args[k].type == arg_strings){
- add_string((getarg_strings*)args[k].value, optarg);
- goto out;
- }
- return ARG_ERR_BAD_ARG;
- }
-
- }
- if (k == num_args)
- return ARG_ERR_NO_MATCH;
- }
- out:;
- }
- }
- *optind = i;
- return 0;
-}
-
-#if TEST
-int foo_flag = 2;
-int flag1 = 0;
-int flag2 = 0;
-int bar_int;
-char *baz_string;
-
-struct getargs args[] = {
- { NULL, '1', arg_flag, &flag1, "one", NULL },
- { NULL, '2', arg_flag, &flag2, "two", NULL },
- { "foo", 'f', arg_negative_flag, &foo_flag, "foo", NULL },
- { "bar", 'b', arg_integer, &bar_int, "bar", "seconds"},
- { "baz", 'x', arg_string, &baz_string, "baz", "name" },
-};
-
-int main(int argc, char **argv)
-{
- int optind = 0;
- while(getarg(args, 5, argc, argv, &optind))
- printf("Bad arg: %s\n", argv[optind]);
- printf("flag1 = %d\n", flag1);
- printf("flag2 = %d\n", flag2);
- printf("foo_flag = %d\n", foo_flag);
- printf("bar_int = %d\n", bar_int);
- printf("baz_flag = %s\n", baz_string);
- arg_printusage (args, 5, argv[0], "nothing here");
-}
-#endif
diff --git a/contrib/com_err/getarg.h b/contrib/com_err/getarg.h
deleted file mode 100644
index d0d9d4e6f57e..000000000000
--- a/contrib/com_err/getarg.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 1997 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: getarg.h,v 1.5 1998/08/18 20:26:11 assar Exp $ */
-
-#ifndef __GETARG_H__
-#define __GETARG_H__
-
-#include <stddef.h>
-
-#define max(a,b) (((a)>(b))?(a):(b))
-
-struct getargs{
- const char *long_name;
- char short_name;
- enum { arg_integer, arg_string, arg_flag, arg_negative_flag, arg_strings } type;
- void *value;
- const char *help;
- const char *arg_help;
-};
-
-enum {
- ARG_ERR_NO_MATCH = 1,
- ARG_ERR_BAD_ARG,
- ARG_ERR_NO_ARG
-};
-
-typedef struct getarg_strings {
- int num_strings;
- char **strings;
-} getarg_strings;
-
-int getarg(struct getargs *args, size_t num_args,
- int argc, char **argv, int *optind);
-
-void arg_printusage (struct getargs *args,
- size_t num_args,
- const char *progname,
- const char *extra_string);
-
-#endif /* __GETARG_H__ */
diff --git a/contrib/com_err/lex.l b/contrib/com_err/lex.l
deleted file mode 100644
index 264ad6f8ab90..000000000000
--- a/contrib/com_err/lex.l
+++ /dev/null
@@ -1,129 +0,0 @@
-%{
-/*
- * Copyright (c) 1998 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-/*
- * This is to handle the definition of this symbol in some AIX
- * headers, which will conflict with the definition that lex will
- * generate for it. It's only a problem for AIX lex.
- */
-
-#undef ECHO
-
-#include "compile_et.h"
-#include "parse.h"
-
-#if 0
-RCSID("$Id: lex.l,v 1.4 1998/11/20 05:58:52 assar Exp $");
-#endif
-
-static unsigned lineno = 1;
-void error_message(char *, ...);
-int getstring(void);
-
-%}
-
-
-%%
-et { return ET; }
-error_table { return ET; }
-ec { return EC; }
-error_code { return EC; }
-prefix { return PREFIX; }
-index { return INDEX; }
-id { return ID; }
-end { return END; }
-[0-9]+ { yylval.number = atoi(yytext); return NUMBER; }
-#[^\n]* ;
-[ \t] ;
-\n { lineno++; }
-\" { return getstring(); }
-[a-zA-Z0-9_]+ { yylval.string = strdup(yytext); return STRING; }
-. { return *yytext; }
-%%
-
-#ifndef yywrap /* XXX */
-int
-yywrap ()
-{
- return 1;
-}
-#endif
-
-int
-getstring(void)
-{
- char x[128];
- int i = 0;
- int c;
- int quote = 0;
- while((c = input()) != EOF){
- if(quote) {
- x[i++] = c;
- quote = 0;
- continue;
- }
- if(c == '\n'){
- error_message("unterminated string");
- lineno++;
- break;
- }
- if(c == '\\'){
- quote++;
- continue;
- }
- if(c == '\"')
- break;
- x[i++] = c;
- }
- x[i] = '\0';
- yylval.string = strdup(x);
- return STRING;
-}
-
-void
-error_message (char *format, ...)
-{
- va_list args;
-
- va_start (args, format);
- fprintf (stderr, "%s:%d:", filename, lineno);
- vfprintf (stderr, format, args);
- va_end (args);
- numerror++;
-}
diff --git a/contrib/com_err/parse.y b/contrib/com_err/parse.y
deleted file mode 100644
index 32875d4271bb..000000000000
--- a/contrib/com_err/parse.y
+++ /dev/null
@@ -1,173 +0,0 @@
-%{
-/*
- * Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-#include "compile_et.h"
-#if 0
-RCSID("$Id: parse.y,v 1.9 1999/07/04 14:54:58 assar Exp $");
-#endif
-
-void yyerror (char *s);
-long name2number(const char *str);
-void error_message(char *, ...);
-
-extern char *yytext;
-
-/* This is for bison */
-
-#if !defined(alloca) && !defined(HAVE_ALLOCA)
-#define alloca(x) malloc(x)
-#endif
-
-%}
-
-%union {
- char *string;
- int number;
-}
-
-%token ET INDEX PREFIX EC ID END
-%token <string> STRING
-%token <number> NUMBER
-
-%%
-
-file : /* */
- | header statements
- ;
-
-header : id et
- | et
- ;
-
-id : ID STRING
- {
- id_str = $2;
- }
- ;
-
-et : ET STRING
- {
- base = name2number($2);
- strncpy(name, $2, sizeof(name));
- name[sizeof(name) - 1] = '\0';
- free($2);
- }
- | ET STRING STRING
- {
- base = name2number($2);
- strncpy(name, $3, sizeof(name));
- name[sizeof(name) - 1] = '\0';
- free($2);
- free($3);
- }
- ;
-
-statements : statement
- | statements statement
- ;
-
-statement : INDEX NUMBER
- {
- number = $2;
- }
- | PREFIX STRING
- {
- prefix = realloc(prefix, strlen($2) + 2);
- strcpy(prefix, $2);
- strcat(prefix, "_");
- free($2);
- }
- | PREFIX
- {
- prefix = realloc(prefix, 1);
- *prefix = '\0';
- }
- | EC STRING ',' STRING
- {
- struct error_code *ec = malloc(sizeof(*ec));
-
- ec->next = NULL;
- ec->number = number;
- if(prefix && *prefix != '\0') {
- asprintf (&ec->name, "%s%s", prefix, $2);
- free($2);
- } else
- ec->name = $2;
- ec->string = $4;
- APPEND(codes, ec);
- number++;
- }
- | END
- {
- YYACCEPT;
- }
- ;
-
-%%
-
-long
-name2number(const char *str)
-{
- const char *p;
- long base = 0;
- const char *x = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz0123456789_";
- if(strlen(str) > 4) {
- yyerror("table name too long");
- return 0;
- }
- for(p = str; *p; p++){
- char *q = strchr(x, *p);
- if(q == NULL) {
- yyerror("invalid character in table name");
- return 0;
- }
- base = (base << 6) + (q - x) + 1;
- }
- base <<= 8;
- if(base > 0x7fffffff)
- base = -(0xffffffff - base + 1);
- return base;
-}
-
-void
-yyerror (char *s)
-{
- error_message ("%s\n", s);
-}
diff --git a/contrib/com_err/roken_rename.h b/contrib/com_err/roken_rename.h
deleted file mode 100644
index 76063ad4d6d0..000000000000
--- a/contrib/com_err/roken_rename.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 1998 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * 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 Kungliga Tekniska
- * Högskolan and its contributors.
- *
- * 4. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
- */
-
-/* $Id: roken_rename.h,v 1.2 1999/03/11 18:14:53 bg Exp $ */
-
-#ifndef __roken_rename_h__
-#define __roken_rename_h__
-
-#endif /* __roken_rename_h__ */
diff --git a/contrib/groff/tmac/hyphen.us-ru b/contrib/groff/tmac/hyphen.us-ru
deleted file mode 100644
index 3ccef48465fe..000000000000
--- a/contrib/groff/tmac/hyphen.us-ru
+++ /dev/null
@@ -1,4833 +0,0 @@
-% Hyphenation patterns for US English and Russian (koi8-r).
-% These are the standard Plain TeX hyphenation patterns (in hyphen.tex).
-.ach4
-.ad4der
-.af1t
-.al3t
-.am5at
-.an5c
-.ang4
-.ani5m
-.ant4
-.an3te
-.anti5s
-.ar5s
-.ar4tie
-.ar4ty
-.as3c
-.as1p
-.as1s
-.aster5
-.atom5
-.au1d
-.av4i
-.awn4
-.ba4g
-.ba5na
-.bas4e
-.ber4
-.be5ra
-.be3sm
-.be5sto
-.bri2
-.but4ti
-.cam4pe
-.can5c
-.capa5b
-.car5ol
-.ca4t
-.ce4la
-.ch4
-.chill5i
-.ci2
-.cit5r
-.co3e
-.co4r
-.cor5ner
-.de4moi
-.de3o
-.de3ra
-.de3ri
-.des4c
-.dictio5
-.do4t
-.du4c
-.dumb5
-.earth5
-.eas3i
-.eb4
-.eer4
-.eg2
-.el5d
-.el3em
-.enam3
-.en3g
-.en3s
-.eq5ui5t
-.er4ri
-.es3
-.eu3
-.eye5
-.fes3
-.for5mer
-.ga2
-.ge2
-.gen3t4
-.ge5og
-.gi5a
-.gi4b
-.go4r
-.hand5i
-.han5k
-.he2
-.hero5i
-.hes3
-.het3
-.hi3b
-.hi3er
-.hon5ey
-.hon3o
-.hov5
-.id4l
-.idol3
-.im3m
-.im5pin
-.in1
-.in3ci
-.ine2
-.in2k
-.in3s
-.ir5r
-.is4i
-.ju3r
-.la4cy
-.la4m
-.lat5er
-.lath5
-.le2
-.leg5e
-.len4
-.lep5
-.lev1
-.li4g
-.lig5a
-.li2n
-.li3o
-.li4t
-.mag5a5
-.mal5o
-.man5a
-.mar5ti
-.me2
-.mer3c
-.me5ter
-.mis1
-.mist5i
-.mon3e
-.mo3ro
-.mu5ta
-.muta5b
-.ni4c
-.od2
-.odd5
-.of5te
-.or5ato
-.or3c
-.or1d
-.or3t
-.os3
-.os4tl
-.oth3
-.out3
-.ped5al
-.pe5te
-.pe5tit
-.pi4e
-.pio5n
-.pi2t
-.pre3m
-.ra4c
-.ran4t
-.ratio5na
-.ree2
-.re5mit
-.res2
-.re5stat
-.ri4g
-.rit5u
-.ro4q
-.ros5t
-.row5d
-.ru4d
-.sci3e
-.self5
-.sell5
-.se2n
-.se5rie
-.sh2
-.si2
-.sing4
-.st4
-.sta5bl
-.sy2
-.ta4
-.te4
-.ten5an
-.th2
-.ti2
-.til4
-.tim5o5
-.ting4
-.tin5k
-.ton4a
-.to4p
-.top5i
-.tou5s
-.trib5ut
-.un1a
-.un3ce
-.under5
-.un1e
-.un5k
-.un5o
-.un3u
-.up3
-.ure3
-.us5a
-.ven4de
-.ve5ra
-.wil5i
-.ye4
-4ab.
-a5bal
-a5ban
-abe2
-ab5erd
-abi5a
-ab5it5ab
-ab5lat
-ab5o5liz
-4abr
-ab5rog
-ab3ul
-a4car
-ac5ard
-ac5aro
-a5ceou
-ac1er
-a5chet
-4a2ci
-a3cie
-ac1in
-a3cio
-ac5rob
-act5if
-ac3ul
-ac4um
-a2d
-ad4din
-ad5er.
-2adi
-a3dia
-ad3ica
-adi4er
-a3dio
-a3dit
-a5diu
-ad4le
-ad3ow
-ad5ran
-ad4su
-4adu
-a3duc
-ad5um
-ae4r
-aeri4e
-a2f
-aff4
-a4gab
-aga4n
-ag5ell
-age4o
-4ageu
-ag1i
-4ag4l
-ag1n
-a2go
-3agog
-ag3oni
-a5guer
-ag5ul
-a4gy
-a3ha
-a3he
-ah4l
-a3ho
-ai2
-a5ia
-a3ic.
-ai5ly
-a4i4n
-ain5in
-ain5o
-ait5en
-a1j
-ak1en
-al5ab
-al3ad
-a4lar
-4aldi
-2ale
-al3end
-a4lenti
-a5le5o
-al1i
-al4ia.
-ali4e
-al5lev
-4allic
-4alm
-a5log.
-a4ly.
-4alys
-5a5lyst
-5alyt
-3alyz
-4ama
-am5ab
-am3ag
-ama5ra
-am5asc
-a4matis
-a4m5ato
-am5era
-am3ic
-am5if
-am5ily
-am1in
-ami4no
-a2mo
-a5mon
-amor5i
-amp5en
-a2n
-an3age
-3analy
-a3nar
-an3arc
-anar4i
-a3nati
-4and
-ande4s
-an3dis
-an1dl
-an4dow
-a5nee
-a3nen
-an5est.
-a3neu
-2ang
-ang5ie
-an1gl
-a4n1ic
-a3nies
-an3i3f
-an4ime
-a5nimi
-a5nine
-an3io
-a3nip
-an3ish
-an3it
-a3niu
-an4kli
-5anniz
-ano4
-an5ot
-anoth5
-an2sa
-an4sco
-an4sn
-an2sp
-ans3po
-an4st
-an4sur
-antal4
-an4tie
-4anto
-an2tr
-an4tw
-an3ua
-an3ul
-a5nur
-4ao
-apar4
-ap5at
-ap5ero
-a3pher
-4aphi
-a4pilla
-ap5illar
-ap3in
-ap3ita
-a3pitu
-a2pl
-apoc5
-ap5ola
-apor5i
-apos3t
-aps5es
-a3pu
-aque5
-2a2r
-ar3act
-a5rade
-ar5adis
-ar3al
-a5ramete
-aran4g
-ara3p
-ar4at
-a5ratio
-ar5ativ
-a5rau
-ar5av4
-araw4
-arbal4
-ar4chan
-ar5dine
-ar4dr
-ar5eas
-a3ree
-ar3ent
-a5ress
-ar4fi
-ar4fl
-ar1i
-ar5ial
-ar3ian
-a3riet
-ar4im
-ar5inat
-ar3io
-ar2iz
-ar2mi
-ar5o5d
-a5roni
-a3roo
-ar2p
-ar3q
-arre4
-ar4sa
-ar2sh
-4as.
-as4ab
-as3ant
-ashi4
-a5sia.
-a3sib
-a3sic
-5a5si4t
-ask3i
-as4l
-a4soc
-as5ph
-as4sh
-as3ten
-as1tr
-asur5a
-a2ta
-at3abl
-at5ac
-at3alo
-at5ap
-ate5c
-at5ech
-at3ego
-at3en.
-at3era
-ater5n
-a5terna
-at3est
-at5ev
-4ath
-ath5em
-a5then
-at4ho
-ath5om
-4ati.
-a5tia
-at5i5b
-at1ic
-at3if
-ation5ar
-at3itu
-a4tog
-a2tom
-at5omiz
-a4top
-a4tos
-a1tr
-at5rop
-at4sk
-at4tag
-at5te
-at4th
-a2tu
-at5ua
-at5ue
-at3ul
-at3ura
-a2ty
-au4b
-augh3
-au3gu
-au4l2
-aun5d
-au3r
-au5sib
-aut5en
-au1th
-a2va
-av3ag
-a5van
-ave4no
-av3era
-av5ern
-av5ery
-av1i
-avi4er
-av3ig
-av5oc
-a1vor
-3away
-aw3i
-aw4ly
-aws4
-ax4ic
-ax4id
-ay5al
-aye4
-ays4
-azi4er
-azz5i
-5ba.
-bad5ger
-ba4ge
-bal1a
-ban5dag
-ban4e
-ban3i
-barbi5
-bari4a
-bas4si
-1bat
-ba4z
-2b1b
-b2be
-b3ber
-bbi4na
-4b1d
-4be.
-beak4
-beat3
-4be2d
-be3da
-be3de
-be3di
-be3gi
-be5gu
-1bel
-be1li
-be3lo
-4be5m
-be5nig
-be5nu
-4bes4
-be3sp
-be5str
-3bet
-bet5iz
-be5tr
-be3tw
-be3w
-be5yo
-2bf
-4b3h
-bi2b
-bi4d
-3bie
-bi5en
-bi4er
-2b3if
-1bil
-bi3liz
-bina5r4
-bin4d
-bi5net
-bi3ogr
-bi5ou
-bi2t
-3bi3tio
-bi3tr
-3bit5ua
-b5itz
-b1j
-bk4
-b2l2
-blath5
-b4le.
-blen4
-5blesp
-b3lis
-b4lo
-blun4t
-4b1m
-4b3n
-bne5g
-3bod
-bod3i
-bo4e
-bol3ic
-bom4bi
-bon4a
-bon5at
-3boo
-5bor.
-4b1ora
-bor5d
-5bore
-5bori
-5bos4
-b5ota
-both5
-bo4to
-bound3
-4bp
-4brit
-broth3
-2b5s2
-bsor4
-2bt
-bt4l
-b4to
-b3tr
-buf4fer
-bu4ga
-bu3li
-bumi4
-bu4n
-bunt4i
-bu3re
-bus5ie
-buss4e
-5bust
-4buta
-3butio
-b5uto
-b1v
-4b5w
-5by.
-bys4
-1ca
-cab3in
-ca1bl
-cach4
-ca5den
-4cag4
-2c5ah
-ca3lat
-cal4la
-call5in
-4calo
-can5d
-can4e
-can4ic
-can5is
-can3iz
-can4ty
-cany4
-ca5per
-car5om
-cast5er
-cas5tig
-4casy
-ca4th
-4cativ
-cav5al
-c3c
-ccha5
-cci4a
-ccompa5
-ccon4
-ccou3t
-2ce.
-4ced.
-4ceden
-3cei
-5cel.
-3cell
-1cen
-3cenc
-2cen4e
-4ceni
-3cent
-3cep
-ce5ram
-4cesa
-3cessi
-ces5si5b
-ces5t
-cet4
-c5e4ta
-cew4
-2ch
-4ch.
-4ch3ab
-5chanic
-ch5a5nis
-che2
-cheap3
-4ched
-che5lo
-3chemi
-ch5ene
-ch3er.
-ch3ers
-4ch1in
-5chine.
-ch5iness
-5chini
-5chio
-3chit
-chi2z
-3cho2
-ch4ti
-1ci
-3cia
-ci2a5b
-cia5r
-ci5c
-4cier
-5cific.
-4cii
-ci4la
-3cili
-2cim
-2cin
-c4ina
-3cinat
-cin3em
-c1ing
-c5ing.
-5cino
-cion4
-4cipe
-ci3ph
-4cipic
-4cista
-4cisti
-2c1it
-cit3iz
-5ciz
-ck1
-ck3i
-1c4l4
-4clar
-c5laratio
-5clare
-cle4m
-4clic
-clim4
-cly4
-c5n
-1co
-co5ag
-coe2
-2cog
-co4gr
-coi4
-co3inc
-col5i
-5colo
-col3or
-com5er
-con4a
-c4one
-con3g
-con5t
-co3pa
-cop3ic
-co4pl
-4corb
-coro3n
-cos4e
-cov1
-cove4
-cow5a
-coz5e
-co5zi
-c1q
-cras5t
-5crat.
-5cratic
-cre3at
-5cred
-4c3reta
-cre4v
-cri2
-cri5f
-c4rin
-cris4
-5criti
-cro4pl
-crop5o
-cros4e
-cru4d
-4c3s2
-2c1t
-cta4b
-ct5ang
-c5tant
-c2te
-c3ter
-c4ticu
-ctim3i
-ctu4r
-c4tw
-cud5
-c4uf
-c4ui
-cu5ity
-5culi
-cul4tis
-3cultu
-cu2ma
-c3ume
-cu4mi
-3cun
-cu3pi
-cu5py
-cur5a4b
-cu5ria
-1cus
-cuss4i
-3c4ut
-cu4tie
-4c5utiv
-4cutr
-1cy
-cze4
-1d2a
-5da.
-2d3a4b
-dach4
-4daf
-2dag
-da2m2
-dan3g
-dard5
-dark5
-4dary
-3dat
-4dativ
-4dato
-5dav4
-dav5e
-5day
-d1b
-d5c
-d1d4
-2de.
-deaf5
-deb5it
-de4bon
-decan4
-de4cil
-de5com
-2d1ed
-4dee.
-de5if
-deli4e
-del5i5q
-de5lo
-d4em
-5dem.
-3demic
-dem5ic.
-de5mil
-de4mons
-demor5
-1den
-de4nar
-de3no
-denti5f
-de3nu
-de1p
-de3pa
-depi4
-de2pu
-d3eq
-d4erh
-5derm
-dern5iz
-der5s
-des2
-d2es.
-de1sc
-de2s5o
-des3ti
-de3str
-de4su
-de1t
-de2to
-de1v
-dev3il
-4dey
-4d1f
-d4ga
-d3ge4t
-dg1i
-d2gy
-d1h2
-5di.
-1d4i3a
-dia5b
-di4cam
-d4ice
-3dict
-3did
-5di3en
-d1if
-di3ge
-di4lato
-d1in
-1dina
-3dine.
-5dini
-di5niz
-1dio
-dio5g
-di4pl
-dir2
-di1re
-dirt5i
-dis1
-5disi
-d4is3t
-d2iti
-1di1v
-d1j
-d5k2
-4d5la
-3dle.
-3dled
-3dles.
-4dless
-2d3lo
-4d5lu
-2dly
-d1m
-4d1n4
-1do
-3do.
-do5de
-5doe
-2d5of
-d4og
-do4la
-doli4
-do5lor
-dom5iz
-do3nat
-doni4
-doo3d
-dop4p
-d4or
-3dos
-4d5out
-do4v
-3dox
-d1p
-1dr
-drag5on
-4drai
-dre4
-drea5r
-5dren
-dri4b
-dril4
-dro4p
-4drow
-5drupli
-4dry
-2d1s2
-ds4p
-d4sw
-d4sy
-d2th
-1du
-d1u1a
-du2c
-d1uca
-duc5er
-4duct.
-4ducts
-du5el
-du4g
-d3ule
-dum4be
-du4n
-4dup
-du4pe
-d1v
-d1w
-d2y
-5dyn
-dy4se
-dys5p
-e1a4b
-e3act
-ead1
-ead5ie
-ea4ge
-ea5ger
-ea4l
-eal5er
-eal3ou
-eam3er
-e5and
-ear3a
-ear4c
-ear5es
-ear4ic
-ear4il
-ear5k
-ear2t
-eart3e
-ea5sp
-e3ass
-east3
-ea2t
-eat5en
-eath3i
-e5atif
-e4a3tu
-ea2v
-eav3en
-eav5i
-eav5o
-2e1b
-e4bel.
-e4bels
-e4ben
-e4bit
-e3br
-e4cad
-ecan5c
-ecca5
-e1ce
-ec5essa
-ec2i
-e4cib
-ec5ificat
-ec5ifie
-ec5ify
-ec3im
-eci4t
-e5cite
-e4clam
-e4clus
-e2col
-e4comm
-e4compe
-e4conc
-e2cor
-ec3ora
-eco5ro
-e1cr
-e4crem
-ec4tan
-ec4te
-e1cu
-e4cul
-ec3ula
-2e2da
-4ed3d
-e4d1er
-ede4s
-4edi
-e3dia
-ed3ib
-ed3ica
-ed3im
-ed1it
-edi5z
-4edo
-e4dol
-edon2
-e4dri
-e4dul
-ed5ulo
-ee2c
-eed3i
-ee2f
-eel3i
-ee4ly
-ee2m
-ee4na
-ee4p1
-ee2s4
-eest4
-ee4ty
-e5ex
-e1f
-e4f3ere
-1eff
-e4fic
-5efici
-efil4
-e3fine
-ef5i5nite
-3efit
-efor5es
-e4fuse.
-4egal
-eger4
-eg5ib
-eg4ic
-eg5ing
-e5git5
-eg5n
-e4go.
-e4gos
-eg1ul
-e5gur
-5egy
-e1h4
-eher4
-ei2
-e5ic
-ei5d
-eig2
-ei5gl
-e3imb
-e3inf
-e1ing
-e5inst
-eir4d
-eit3e
-ei3th
-e5ity
-e1j
-e4jud
-ej5udi
-eki4n
-ek4la
-e1la
-e4la.
-e4lac
-elan4d
-el5ativ
-e4law
-elaxa4
-e3lea
-el5ebra
-5elec
-e4led
-el3ega
-e5len
-e4l1er
-e1les
-el2f
-el2i
-e3libe
-e4l5ic.
-el3ica
-e3lier
-el5igib
-e5lim
-e4l3ing
-e3lio
-e2lis
-el5ish
-e3liv3
-4ella
-el4lab
-ello4
-e5loc
-el5og
-el3op.
-el2sh
-el4ta
-e5lud
-el5ug
-e4mac
-e4mag
-e5man
-em5ana
-em5b
-e1me
-e2mel
-e4met
-em3ica
-emi4e
-em5igra
-em1in2
-em5ine
-em3i3ni
-e4mis
-em5ish
-e5miss
-em3iz
-5emniz
-emo4g
-emoni5o
-em3pi
-e4mul
-em5ula
-emu3n
-e3my
-en5amo
-e4nant
-ench4er
-en3dic
-e5nea
-e5nee
-en3em
-en5ero
-en5esi
-en5est
-en3etr
-e3new
-en5ics
-e5nie
-e5nil
-e3nio
-en3ish
-en3it
-e5niu
-5eniz
-4enn
-4eno
-eno4g
-e4nos
-en3ov
-en4sw
-ent5age
-4enthes
-en3ua
-en5uf
-e3ny.
-4en3z
-e5of
-eo2g
-e4oi4
-e3ol
-eop3ar
-e1or
-eo3re
-eo5rol
-eos4
-e4ot
-eo4to
-e5out
-e5ow
-e2pa
-e3pai
-ep5anc
-e5pel
-e3pent
-ep5etitio
-ephe4
-e4pli
-e1po
-e4prec
-ep5reca
-e4pred
-ep3reh
-e3pro
-e4prob
-ep4sh
-ep5ti5b
-e4put
-ep5uta
-e1q
-equi3l
-e4q3ui3s
-er1a
-era4b
-4erand
-er3ar
-4erati.
-2erb
-er4bl
-er3ch
-er4che
-2ere.
-e3real
-ere5co
-ere3in
-er5el.
-er3emo
-er5ena
-er5ence
-4erene
-er3ent
-ere4q
-er5ess
-er3est
-eret4
-er1h
-er1i
-e1ria4
-5erick
-e3rien
-eri4er
-er3ine
-e1rio
-4erit
-er4iu
-eri4v
-e4riva
-er3m4
-er4nis
-4ernit
-5erniz
-er3no
-2ero
-er5ob
-e5roc
-ero4r
-er1ou
-er1s
-er3set
-ert3er
-4ertl
-er3tw
-4eru
-eru4t
-5erwau
-e1s4a
-e4sage.
-e4sages
-es2c
-e2sca
-es5can
-e3scr
-es5cu
-e1s2e
-e2sec
-es5ecr
-es5enc
-e4sert.
-e4serts
-e4serva
-4esh
-e3sha
-esh5en
-e1si
-e2sic
-e2sid
-es5iden
-es5igna
-e2s5im
-es4i4n
-esis4te
-esi4u
-e5skin
-es4mi
-e2sol
-es3olu
-e2son
-es5ona
-e1sp
-es3per
-es5pira
-es4pre
-2ess
-es4si4b
-estan4
-es3tig
-es5tim
-4es2to
-e3ston
-2estr
-e5stro
-estruc5
-e2sur
-es5urr
-es4w
-eta4b
-eten4d
-e3teo
-ethod3
-et1ic
-e5tide
-etin4
-eti4no
-e5tir
-e5titio
-et5itiv
-4etn
-et5ona
-e3tra
-e3tre
-et3ric
-et5rif
-et3rog
-et5ros
-et3ua
-et5ym
-et5z
-4eu
-e5un
-e3up
-eu3ro
-eus4
-eute4
-euti5l
-eu5tr
-eva2p5
-e2vas
-ev5ast
-e5vea
-ev3ell
-evel3o
-e5veng
-even4i
-ev1er
-e5verb
-e1vi
-ev3id
-evi4l
-e4vin
-evi4v
-e5voc
-e5vu
-e1wa
-e4wag
-e5wee
-e3wh
-ewil5
-ew3ing
-e3wit
-1exp
-5eyc
-5eye.
-eys4
-1fa
-fa3bl
-fab3r
-fa4ce
-4fag
-fain4
-fall5e
-4fa4ma
-fam5is
-5far
-far5th
-fa3ta
-fa3the
-4fato
-fault5
-4f5b
-4fd
-4fe.
-feas4
-feath3
-fe4b
-4feca
-5fect
-2fed
-fe3li
-fe4mo
-fen2d
-fend5e
-fer1
-5ferr
-fev4
-4f1f
-f4fes
-f4fie
-f5fin.
-f2f5is
-f4fly
-f2fy
-4fh
-1fi
-fi3a
-2f3ic.
-4f3ical
-f3ican
-4ficate
-f3icen
-fi3cer
-fic4i
-5ficia
-5ficie
-4fics
-fi3cu
-fi5del
-fight5
-fil5i
-fill5in
-4fily
-2fin
-5fina
-fin2d5
-fi2ne
-f1in3g
-fin4n
-fis4ti
-f4l2
-f5less
-flin4
-flo3re
-f2ly5
-4fm
-4fn
-1fo
-5fon
-fon4de
-fon4t
-fo2r
-fo5rat
-for5ay
-fore5t
-for4i
-fort5a
-fos5
-4f5p
-fra4t
-f5rea
-fres5c
-fri2
-fril4
-frol5
-2f3s
-2ft
-f4to
-f2ty
-3fu
-fu5el
-4fug
-fu4min
-fu5ne
-fu3ri
-fusi4
-fus4s
-4futa
-1fy
-1ga
-gaf4
-5gal.
-3gali
-ga3lo
-2gam
-ga5met
-g5amo
-gan5is
-ga3niz
-gani5za
-4gano
-gar5n4
-gass4
-gath3
-4gativ
-4gaz
-g3b
-gd4
-2ge.
-2ged
-geez4
-gel4in
-ge5lis
-ge5liz
-4gely
-1gen
-ge4nat
-ge5niz
-4geno
-4geny
-1geo
-ge3om
-g4ery
-5gesi
-geth5
-4geto
-ge4ty
-ge4v
-4g1g2
-g2ge
-g3ger
-gglu5
-ggo4
-gh3in
-gh5out
-gh4to
-5gi.
-1gi4a
-gia5r
-g1ic
-5gicia
-g4ico
-gien5
-5gies.
-gil4
-g3imen
-3g4in.
-gin5ge
-5g4ins
-5gio
-3gir
-gir4l
-g3isl
-gi4u
-5giv
-3giz
-gl2
-gla4
-glad5i
-5glas
-1gle
-gli4b
-g3lig
-3glo
-glo3r
-g1m
-g4my
-gn4a
-g4na.
-gnet4t
-g1ni
-g2nin
-g4nio
-g1no
-g4non
-1go
-3go.
-gob5
-5goe
-3g4o4g
-go3is
-gon2
-4g3o3na
-gondo5
-go3ni
-5goo
-go5riz
-gor5ou
-5gos.
-gov1
-g3p
-1gr
-4grada
-g4rai
-gran2
-5graph.
-g5rapher
-5graphic
-4graphy
-4gray
-gre4n
-4gress.
-4grit
-g4ro
-gruf4
-gs2
-g5ste
-gth3
-gu4a
-3guard
-2gue
-5gui5t
-3gun
-3gus
-4gu4t
-g3w
-1gy
-2g5y3n
-gy5ra
-h3ab4l
-hach4
-hae4m
-hae4t
-h5agu
-ha3la
-hala3m
-ha4m
-han4ci
-han4cy
-5hand.
-han4g
-hang5er
-hang5o
-h5a5niz
-han4k
-han4te
-hap3l
-hap5t
-ha3ran
-ha5ras
-har2d
-hard3e
-har4le
-harp5en
-har5ter
-has5s
-haun4
-5haz
-haz3a
-h1b
-1head
-3hear
-he4can
-h5ecat
-h4ed
-he5do5
-he3l4i
-hel4lis
-hel4ly
-h5elo
-hem4p
-he2n
-hena4
-hen5at
-heo5r
-hep5
-h4era
-hera3p
-her4ba
-here5a
-h3ern
-h5erou
-h3ery
-h1es
-he2s5p
-he4t
-het4ed
-heu4
-h1f
-h1h
-hi5an
-hi4co
-high5
-h4il2
-himer4
-h4ina
-hion4e
-hi4p
-hir4l
-hi3ro
-hir4p
-hir4r
-his3el
-his4s
-hith5er
-hi2v
-4hk
-4h1l4
-hlan4
-h2lo
-hlo3ri
-4h1m
-hmet4
-2h1n
-h5odiz
-h5ods
-ho4g
-hoge4
-hol5ar
-3hol4e
-ho4ma
-home3
-hon4a
-ho5ny
-3hood
-hoon4
-hor5at
-ho5ris
-hort3e
-ho5ru
-hos4e
-ho5sen
-hos1p
-1hous
-house3
-hov5el
-4h5p
-4hr4
-hree5
-hro5niz
-hro3po
-4h1s2
-h4sh
-h4tar
-ht1en
-ht5es
-h4ty
-hu4g
-hu4min
-hun5ke
-hun4t
-hus3t4
-hu4t
-h1w
-h4wart
-hy3pe
-hy3ph
-hy2s
-2i1a
-i2al
-iam4
-iam5ete
-i2an
-4ianc
-ian3i
-4ian4t
-ia5pe
-iass4
-i4ativ
-ia4tric
-i4atu
-ibe4
-ib3era
-ib5ert
-ib5ia
-ib3in
-ib5it.
-ib5ite
-i1bl
-ib3li
-i5bo
-i1br
-i2b5ri
-i5bun
-4icam
-5icap
-4icar
-i4car.
-i4cara
-icas5
-i4cay
-iccu4
-4iceo
-4ich
-2ici
-i5cid
-ic5ina
-i2cip
-ic3ipa
-i4cly
-i2c5oc
-4i1cr
-5icra
-i4cry
-ic4te
-ictu2
-ic4t3ua
-ic3ula
-ic4um
-ic5uo
-i3cur
-2id
-i4dai
-id5anc
-id5d
-ide3al
-ide4s
-i2di
-id5ian
-idi4ar
-i5die
-id3io
-idi5ou
-id1it
-id5iu
-i3dle
-i4dom
-id3ow
-i4dr
-i2du
-id5uo
-2ie4
-ied4e
-5ie5ga
-ield3
-ien5a4
-ien4e
-i5enn
-i3enti
-i1er.
-i3esc
-i1est
-i3et
-4if.
-if5ero
-iff5en
-if4fr
-4ific.
-i3fie
-i3fl
-4ift
-2ig
-iga5b
-ig3era
-ight3i
-4igi
-i3gib
-ig3il
-ig3in
-ig3it
-i4g4l
-i2go
-ig3or
-ig5ot
-i5gre
-igu5i
-ig1ur
-i3h
-4i5i4
-i3j
-4ik
-i1la
-il3a4b
-i4lade
-i2l5am
-ila5ra
-i3leg
-il1er
-ilev4
-il5f
-il1i
-il3ia
-il2ib
-il3io
-il4ist
-2ilit
-il2iz
-ill5ab
-4iln
-il3oq
-il4ty
-il5ur
-il3v
-i4mag
-im3age
-ima5ry
-imenta5r
-4imet
-im1i
-im5ida
-imi5le
-i5mini
-4imit
-im4ni
-i3mon
-i2mu
-im3ula
-2in.
-i4n3au
-4inav
-incel4
-in3cer
-4ind
-in5dling
-2ine
-i3nee
-iner4ar
-i5ness
-4inga
-4inge
-in5gen
-4ingi
-in5gling
-4ingo
-4ingu
-2ini
-i5ni.
-i4nia
-in3io
-in1is
-i5nite.
-5initio
-in3ity
-4ink
-4inl
-2inn
-2i1no
-i4no4c
-ino4s
-i4not
-2ins
-in3se
-insur5a
-2int.
-2in4th
-in1u
-i5nus
-4iny
-2io
-4io.
-ioge4
-io2gr
-i1ol
-io4m
-ion3at
-ion4ery
-ion3i
-io5ph
-ior3i
-i4os
-io5th
-i5oti
-io4to
-i4our
-2ip
-ipe4
-iphras4
-ip3i
-ip4ic
-ip4re4
-ip3ul
-i3qua
-iq5uef
-iq3uid
-iq3ui3t
-4ir
-i1ra
-ira4b
-i4rac
-ird5e
-ire4de
-i4ref
-i4rel4
-i4res
-ir5gi
-ir1i
-iri5de
-ir4is
-iri3tu
-5i5r2iz
-ir4min
-iro4g
-5iron.
-ir5ul
-2is.
-is5ag
-is3ar
-isas5
-2is1c
-is3ch
-4ise
-is3er
-3isf
-is5han
-is3hon
-ish5op
-is3ib
-isi4d
-i5sis
-is5itiv
-4is4k
-islan4
-4isms
-i2so
-iso5mer
-is1p
-is2pi
-is4py
-4is1s
-is4sal
-issen4
-is4ses
-is4ta.
-is1te
-is1ti
-ist4ly
-4istral
-i2su
-is5us
-4ita.
-ita4bi
-i4tag
-4ita5m
-i3tan
-i3tat
-2ite
-it3era
-i5teri
-it4es
-2ith
-i1ti
-4itia
-4i2tic
-it3ica
-5i5tick
-it3ig
-it5ill
-i2tim
-2itio
-4itis
-i4tism
-i2t5o5m
-4iton
-i4tram
-it5ry
-4itt
-it3uat
-i5tud
-it3ul
-4itz.
-i1u
-2iv
-iv3ell
-iv3en.
-i4v3er.
-i4vers.
-iv5il.
-iv5io
-iv1it
-i5vore
-iv3o3ro
-i4v3ot
-4i5w
-ix4o
-4iy
-4izar
-izi4
-5izont
-5ja
-jac4q
-ja4p
-1je
-jer5s
-4jestie
-4jesty
-jew3
-jo4p
-5judg
-3ka.
-k3ab
-k5ag
-kais4
-kal4
-k1b
-k2ed
-1kee
-ke4g
-ke5li
-k3en4d
-k1er
-kes4
-k3est.
-ke4ty
-k3f
-kh4
-k1i
-5ki.
-5k2ic
-k4ill
-kilo5
-k4im
-k4in.
-kin4de
-k5iness
-kin4g
-ki4p
-kis4
-k5ish
-kk4
-k1l
-4kley
-4kly
-k1m
-k5nes
-1k2no
-ko5r
-kosh4
-k3ou
-kro5n
-4k1s2
-k4sc
-ks4l
-k4sy
-k5t
-k1w
-lab3ic
-l4abo
-laci4
-l4ade
-la3dy
-lag4n
-lam3o
-3land
-lan4dl
-lan5et
-lan4te
-lar4g
-lar3i
-las4e
-la5tan
-4lateli
-4lativ
-4lav
-la4v4a
-2l1b
-lbin4
-4l1c2
-lce4
-l3ci
-2ld
-l2de
-ld4ere
-ld4eri
-ldi4
-ld5is
-l3dr
-l4dri
-le2a
-le4bi
-left5
-5leg.
-5legg
-le4mat
-lem5atic
-4len.
-3lenc
-5lene.
-1lent
-le3ph
-le4pr
-lera5b
-ler4e
-3lerg
-3l4eri
-l4ero
-les2
-le5sco
-5lesq
-3less
-5less.
-l3eva
-lev4er.
-lev4era
-lev4ers
-3ley
-4leye
-2lf
-l5fr
-4l1g4
-l5ga
-lgar3
-l4ges
-lgo3
-2l3h
-li4ag
-li2am
-liar5iz
-li4as
-li4ato
-li5bi
-5licio
-li4cor
-4lics
-4lict.
-l4icu
-l3icy
-l3ida
-lid5er
-3lidi
-lif3er
-l4iff
-li4fl
-5ligate
-3ligh
-li4gra
-3lik
-4l4i4l
-lim4bl
-lim3i
-li4mo
-l4im4p
-l4ina
-1l4ine
-lin3ea
-lin3i
-link5er
-li5og
-4l4iq
-lis4p
-l1it
-l2it.
-5litica
-l5i5tics
-liv3er
-l1iz
-4lj
-lka3
-l3kal
-lka4t
-l1l
-l4law
-l2le
-l5lea
-l3lec
-l3leg
-l3lel
-l3le4n
-l3le4t
-ll2i
-l2lin4
-l5lina
-ll4o
-lloqui5
-ll5out
-l5low
-2lm
-l5met
-lm3ing
-l4mod
-lmon4
-2l1n2
-3lo.
-lob5al
-lo4ci
-4lof
-3logic
-l5ogo
-3logu
-lom3er
-5long
-lon4i
-l3o3niz
-lood5
-5lope.
-lop3i
-l3opm
-lora4
-lo4rato
-lo5rie
-lor5ou
-5los.
-los5et
-5losophiz
-5losophy
-los4t
-lo4ta
-loun5d
-2lout
-4lov
-2lp
-lpa5b
-l3pha
-l5phi
-lp5ing
-l3pit
-l4pl
-l5pr
-4l1r
-2l1s2
-l4sc
-l2se
-l4sie
-4lt
-lt5ag
-ltane5
-l1te
-lten4
-ltera4
-lth3i
-l5ties.
-ltis4
-l1tr
-ltu2
-ltur3a
-lu5a
-lu3br
-luch4
-lu3ci
-lu3en
-luf4
-lu5id
-lu4ma
-5lumi
-l5umn.
-5lumnia
-lu3o
-luo3r
-4lup
-luss4
-lus3te
-1lut
-l5ven
-l5vet4
-2l1w
-1ly
-4lya
-4lyb
-ly5me
-ly3no
-2lys4
-l5yse
-1ma
-2mab
-ma2ca
-ma5chine
-ma4cl
-mag5in
-5magn
-2mah
-maid5
-4mald
-ma3lig
-ma5lin
-mal4li
-mal4ty
-5mania
-man5is
-man3iz
-4map
-ma5rine.
-ma5riz
-mar4ly
-mar3v
-ma5sce
-mas4e
-mas1t
-5mate
-math3
-ma3tis
-4matiza
-4m1b
-mba4t5
-m5bil
-m4b3ing
-mbi4v
-4m5c
-4me.
-2med
-4med.
-5media
-me3die
-m5e5dy
-me2g
-mel5on
-mel4t
-me2m
-mem1o3
-1men
-men4a
-men5ac
-men4de
-4mene
-men4i
-mens4
-mensu5
-3ment
-men4te
-me5on
-m5ersa
-2mes
-3mesti
-me4ta
-met3al
-me1te
-me5thi
-m4etr
-5metric
-me5trie
-me3try
-me4v
-4m1f
-2mh
-5mi.
-mi3a
-mid4a
-mid4g
-mig4
-3milia
-m5i5lie
-m4ill
-min4a
-3mind
-m5inee
-m4ingl
-min5gli
-m5ingly
-min4t
-m4inu
-miot4
-m2is
-mis4er.
-mis5l
-mis4ti
-m5istry
-4mith
-m2iz
-4mk
-4m1l
-m1m
-mma5ry
-4m1n
-mn4a
-m4nin
-mn4o
-1mo
-4mocr
-5mocratiz
-mo2d1
-mo4go
-mois2
-moi5se
-4mok
-mo5lest
-mo3me
-mon5et
-mon5ge
-moni3a
-mon4ism
-mon4ist
-mo3niz
-monol4
-mo3ny.
-mo2r
-4mora.
-mos2
-mo5sey
-mo3sp
-moth3
-m5ouf
-3mous
-mo2v
-4m1p
-mpara5
-mpa5rab
-mpar5i
-m3pet
-mphas4
-m2pi
-mpi4a
-mp5ies
-m4p1in
-m5pir
-mp5is
-mpo3ri
-mpos5ite
-m4pous
-mpov5
-mp4tr
-m2py
-4m3r
-4m1s2
-m4sh
-m5si
-4mt
-1mu
-mula5r4
-5mult
-multi3
-3mum
-mun2
-4mup
-mu4u
-4mw
-1na
-2n1a2b
-n4abu
-4nac.
-na4ca
-n5act
-nag5er.
-nak4
-na4li
-na5lia
-4nalt
-na5mit
-n2an
-nanci4
-nan4it
-nank4
-nar3c
-4nare
-nar3i
-nar4l
-n5arm
-n4as
-nas4c
-nas5ti
-n2at
-na3tal
-nato5miz
-n2au
-nau3se
-3naut
-nav4e
-4n1b4
-ncar5
-n4ces.
-n3cha
-n5cheo
-n5chil
-n3chis
-nc1in
-nc4it
-ncour5a
-n1cr
-n1cu
-n4dai
-n5dan
-n1de
-nd5est.
-ndi4b
-n5d2if
-n1dit
-n3diz
-n5duc
-ndu4r
-nd2we
-2ne.
-n3ear
-ne2b
-neb3u
-ne2c
-5neck
-2ned
-ne4gat
-neg5ativ
-5nege
-ne4la
-nel5iz
-ne5mi
-ne4mo
-1nen
-4nene
-3neo
-ne4po
-ne2q
-n1er
-nera5b
-n4erar
-n2ere
-n4er5i
-ner4r
-1nes
-2nes.
-4nesp
-2nest
-4nesw
-3netic
-ne4v
-n5eve
-ne4w
-n3f
-n4gab
-n3gel
-nge4n4e
-n5gere
-n3geri
-ng5ha
-n3gib
-ng1in
-n5git
-n4gla
-ngov4
-ng5sh
-n1gu
-n4gum
-n2gy
-4n1h4
-nha4
-nhab3
-nhe4
-3n4ia
-ni3an
-ni4ap
-ni3ba
-ni4bl
-ni4d
-ni5di
-ni4er
-ni2fi
-ni5ficat
-n5igr
-nik4
-n1im
-ni3miz
-n1in
-5nine.
-nin4g
-ni4o
-5nis.
-nis4ta
-n2it
-n4ith
-3nitio
-n3itor
-ni3tr
-n1j
-4nk2
-n5kero
-n3ket
-nk3in
-n1kl
-4n1l
-n5m
-nme4
-nmet4
-4n1n2
-nne4
-nni3al
-nni4v
-nob4l
-no3ble
-n5ocl
-4n3o2d
-3noe
-4nog
-noge4
-nois5i
-no5l4i
-5nologis
-3nomic
-n5o5miz
-no4mo
-no3my
-no4n
-non4ag
-non5i
-n5oniz
-4nop
-5nop5o5li
-nor5ab
-no4rary
-4nosc
-nos4e
-nos5t
-no5ta
-1nou
-3noun
-nov3el3
-nowl3
-n1p4
-npi4
-npre4c
-n1q
-n1r
-nru4
-2n1s2
-ns5ab
-nsati4
-ns4c
-n2se
-n4s3es
-nsid1
-nsig4
-n2sl
-ns3m
-n4soc
-ns4pe
-n5spi
-nsta5bl
-n1t
-nta4b
-nter3s
-nt2i
-n5tib
-nti4er
-nti2f
-n3tine
-n4t3ing
-nti4p
-ntrol5li
-nt4s
-ntu3me
-nu1a
-nu4d
-nu5en
-nuf4fe
-n3uin
-3nu3it
-n4um
-nu1me
-n5umi
-3nu4n
-n3uo
-nu3tr
-n1v2
-n1w4
-nym4
-nyp4
-4nz
-n3za
-4oa
-oad3
-o5a5les
-oard3
-oas4e
-oast5e
-oat5i
-ob3a3b
-o5bar
-obe4l
-o1bi
-o2bin
-ob5ing
-o3br
-ob3ul
-o1ce
-och4
-o3chet
-ocif3
-o4cil
-o4clam
-o4cod
-oc3rac
-oc5ratiz
-ocre3
-5ocrit
-octor5a
-oc3ula
-o5cure
-od5ded
-od3ic
-odi3o
-o2do4
-odor3
-od5uct.
-od5ucts
-o4el
-o5eng
-o3er
-oe4ta
-o3ev
-o2fi
-of5ite
-ofit4t
-o2g5a5r
-og5ativ
-o4gato
-o1ge
-o5gene
-o5geo
-o4ger
-o3gie
-1o1gis
-og3it
-o4gl
-o5g2ly
-3ogniz
-o4gro
-ogu5i
-1ogy
-2ogyn
-o1h2
-ohab5
-oi2
-oic3es
-oi3der
-oiff4
-oig4
-oi5let
-o3ing
-oint5er
-o5ism
-oi5son
-oist5en
-oi3ter
-o5j
-2ok
-o3ken
-ok5ie
-o1la
-o4lan
-olass4
-ol2d
-old1e
-ol3er
-o3lesc
-o3let
-ol4fi
-ol2i
-o3lia
-o3lice
-ol5id.
-o3li4f
-o5lil
-ol3ing
-o5lio
-o5lis.
-ol3ish
-o5lite
-o5litio
-o5liv
-olli4e
-ol5ogiz
-olo4r
-ol5pl
-ol2t
-ol3ub
-ol3ume
-ol3un
-o5lus
-ol2v
-o2ly
-om5ah
-oma5l
-om5atiz
-om2be
-om4bl
-o2me
-om3ena
-om5erse
-o4met
-om5etry
-o3mia
-om3ic.
-om3ica
-o5mid
-om1in
-o5mini
-5ommend
-omo4ge
-o4mon
-om3pi
-ompro5
-o2n
-on1a
-on4ac
-o3nan
-on1c
-3oncil
-2ond
-on5do
-o3nen
-on5est
-on4gu
-on1ic
-o3nio
-on1is
-o5niu
-on3key
-on4odi
-on3omy
-on3s
-onspi4
-onspir5a
-onsu4
-onten4
-on3t4i
-ontif5
-on5um
-onva5
-oo2
-ood5e
-ood5i
-oo4k
-oop3i
-o3ord
-oost5
-o2pa
-ope5d
-op1er
-3opera
-4operag
-2oph
-o5phan
-o5pher
-op3ing
-o3pit
-o5pon
-o4posi
-o1pr
-op1u
-opy5
-o1q
-o1ra
-o5ra.
-o4r3ag
-or5aliz
-or5ange
-ore5a
-o5real
-or3ei
-ore5sh
-or5est.
-orew4
-or4gu
-4o5ria
-or3ica
-o5ril
-or1in
-o1rio
-or3ity
-o3riu
-or2mi
-orn2e
-o5rof
-or3oug
-or5pe
-3orrh
-or4se
-ors5en
-orst4
-or3thi
-or3thy
-or4ty
-o5rum
-o1ry
-os3al
-os2c
-os4ce
-o3scop
-4oscopi
-o5scr
-os4i4e
-os5itiv
-os3ito
-os3ity
-osi4u
-os4l
-o2so
-os4pa
-os4po
-os2ta
-o5stati
-os5til
-os5tit
-o4tan
-otele4g
-ot3er.
-ot5ers
-o4tes
-4oth
-oth5esi
-oth3i4
-ot3ic.
-ot5ica
-o3tice
-o3tif
-o3tis
-oto5s
-ou2
-ou3bl
-ouch5i
-ou5et
-ou4l
-ounc5er
-oun2d
-ou5v
-ov4en
-over4ne
-over3s
-ov4ert
-o3vis
-oviti4
-o5v4ol
-ow3der
-ow3el
-ow5est
-ow1i
-own5i
-o4wo
-oy1a
-1pa
-pa4ca
-pa4ce
-pac4t
-p4ad
-5pagan
-p3agat
-p4ai
-pain4
-p4al
-pan4a
-pan3el
-pan4ty
-pa3ny
-pa1p
-pa4pu
-para5bl
-par5age
-par5di
-3pare
-par5el
-p4a4ri
-par4is
-pa2te
-pa5ter
-5pathic
-pa5thy
-pa4tric
-pav4
-3pay
-4p1b
-pd4
-4pe.
-3pe4a
-pear4l
-pe2c
-2p2ed
-3pede
-3pedi
-pedia4
-ped4ic
-p4ee
-pee4d
-pek4
-pe4la
-peli4e
-pe4nan
-p4enc
-pen4th
-pe5on
-p4era.
-pera5bl
-p4erag
-p4eri
-peri5st
-per4mal
-perme5
-p4ern
-per3o
-per3ti
-pe5ru
-per1v
-pe2t
-pe5ten
-pe5tiz
-4pf
-4pg
-4ph.
-phar5i
-phe3no
-ph4er
-ph4es.
-ph1ic
-5phie
-ph5ing
-5phisti
-3phiz
-ph2l
-3phob
-3phone
-5phoni
-pho4r
-4phs
-ph3t
-5phu
-1phy
-pi3a
-pian4
-pi4cie
-pi4cy
-p4id
-p5ida
-pi3de
-5pidi
-3piec
-pi3en
-pi4grap
-pi3lo
-pi2n
-p4in.
-pind4
-p4ino
-3pi1o
-pion4
-p3ith
-pi5tha
-pi2tu
-2p3k2
-1p2l2
-3plan
-plas5t
-pli3a
-pli5er
-4plig
-pli4n
-ploi4
-plu4m
-plum4b
-4p1m
-2p3n
-po4c
-5pod.
-po5em
-po3et5
-5po4g
-poin2
-5point
-poly5t
-po4ni
-po4p
-1p4or
-po4ry
-1pos
-pos1s
-p4ot
-po4ta
-5poun
-4p1p
-ppa5ra
-p2pe
-p4ped
-p5pel
-p3pen
-p3per
-p3pet
-ppo5site
-pr2
-pray4e
-5preci
-pre5co
-pre3em
-pref5ac
-pre4la
-pre3r
-p3rese
-3press
-pre5ten
-pre3v
-5pri4e
-prin4t3
-pri4s
-pris3o
-p3roca
-prof5it
-pro3l
-pros3e
-pro1t
-2p1s2
-p2se
-ps4h
-p4sib
-2p1t
-pt5a4b
-p2te
-p2th
-pti3m
-ptu4r
-p4tw
-pub3
-pue4
-puf4
-pul3c
-pu4m
-pu2n
-pur4r
-5pus
-pu2t
-5pute
-put3er
-pu3tr
-put4ted
-put4tin
-p3w
-qu2
-qua5v
-2que.
-3quer
-3quet
-2rab
-ra3bi
-rach4e
-r5acl
-raf5fi
-raf4t
-r2ai
-ra4lo
-ram3et
-r2ami
-rane5o
-ran4ge
-r4ani
-ra5no
-rap3er
-3raphy
-rar5c
-rare4
-rar5ef
-4raril
-r2as
-ration4
-rau4t
-ra5vai
-rav3el
-ra5zie
-r1b
-r4bab
-r4bag
-rbi2
-rbi4f
-r2bin
-r5bine
-rb5ing.
-rb4o
-r1c
-r2ce
-rcen4
-r3cha
-rch4er
-r4ci4b
-rc4it
-rcum3
-r4dal
-rd2i
-rdi4a
-rdi4er
-rdin4
-rd3ing
-2re.
-re1al
-re3an
-re5arr
-5reav
-re4aw
-r5ebrat
-rec5oll
-rec5ompe
-re4cre
-2r2ed
-re1de
-re3dis
-red5it
-re4fac
-re2fe
-re5fer.
-re3fi
-re4fy
-reg3is
-re5it
-re1li
-re5lu
-r4en4ta
-ren4te
-re1o
-re5pin
-re4posi
-re1pu
-r1er4
-r4eri
-rero4
-re5ru
-r4es.
-re4spi
-ress5ib
-res2t
-re5stal
-re3str
-re4ter
-re4ti4z
-re3tri
-reu2
-re5uti
-rev2
-re4val
-rev3el
-r5ev5er.
-re5vers
-re5vert
-re5vil
-rev5olu
-re4wh
-r1f
-rfu4
-r4fy
-rg2
-rg3er
-r3get
-r3gic
-rgi4n
-rg3ing
-r5gis
-r5git
-r1gl
-rgo4n
-r3gu
-rh4
-4rh.
-4rhal
-ri3a
-ria4b
-ri4ag
-r4ib
-rib3a
-ric5as
-r4ice
-4rici
-5ricid
-ri4cie
-r4ico
-rid5er
-ri3enc
-ri3ent
-ri1er
-ri5et
-rig5an
-5rigi
-ril3iz
-5riman
-rim5i
-3rimo
-rim4pe
-r2ina
-5rina.
-rin4d
-rin4e
-rin4g
-ri1o
-5riph
-riph5e
-ri2pl
-rip5lic
-r4iq
-r2is
-r4is.
-ris4c
-r3ish
-ris4p
-ri3ta3b
-r5ited.
-rit5er.
-rit5ers
-rit3ic
-ri2tu
-rit5ur
-riv5el
-riv3et
-riv3i
-r3j
-r3ket
-rk4le
-rk4lin
-r1l
-rle4
-r2led
-r4lig
-r4lis
-rl5ish
-r3lo4
-r1m
-rma5c
-r2me
-r3men
-rm5ers
-rm3ing
-r4ming.
-r4mio
-r3mit
-r4my
-r4nar
-r3nel
-r4ner
-r5net
-r3ney
-r5nic
-r1nis4
-r3nit
-r3niv
-rno4
-r4nou
-r3nu
-rob3l
-r2oc
-ro3cr
-ro4e
-ro1fe
-ro5fil
-rok2
-ro5ker
-5role.
-rom5ete
-rom4i
-rom4p
-ron4al
-ron4e
-ro5n4is
-ron4ta
-1room
-5root
-ro3pel
-rop3ic
-ror3i
-ro5ro
-ros5per
-ros4s
-ro4the
-ro4ty
-ro4va
-rov5el
-rox5
-r1p
-r4pea
-r5pent
-rp5er.
-r3pet
-rp4h4
-rp3ing
-r3po
-r1r4
-rre4c
-rre4f
-r4reo
-rre4st
-rri4o
-rri4v
-rron4
-rros4
-rrys4
-4rs2
-r1sa
-rsa5ti
-rs4c
-r2se
-r3sec
-rse4cr
-rs5er.
-rs3es
-rse5v2
-r1sh
-r5sha
-r1si
-r4si4b
-rson3
-r1sp
-r5sw
-rtach4
-r4tag
-r3teb
-rten4d
-rte5o
-r1ti
-rt5ib
-rti4d
-r4tier
-r3tig
-rtil3i
-rtil4l
-r4tily
-r4tist
-r4tiv
-r3tri
-rtroph4
-rt4sh
-ru3a
-ru3e4l
-ru3en
-ru4gl
-ru3in
-rum3pl
-ru2n
-runk5
-run4ty
-r5usc
-ruti5n
-rv4e
-rvel4i
-r3ven
-rv5er.
-r5vest
-r3vey
-r3vic
-rvi4v
-r3vo
-r1w
-ry4c
-5rynge
-ry3t
-sa2
-2s1ab
-5sack
-sac3ri
-s3act
-5sai
-salar4
-sal4m
-sa5lo
-sal4t
-3sanc
-san4de
-s1ap
-sa5ta
-5sa3tio
-sat3u
-sau4
-sa5vor
-5saw
-4s5b
-scan4t5
-sca4p
-scav5
-s4ced
-4scei
-s4ces
-sch2
-s4cho
-3s4cie
-5scin4d
-scle5
-s4cli
-scof4
-4scopy
-scour5a
-s1cu
-4s5d
-4se.
-se4a
-seas4
-sea5w
-se2c3o
-3sect
-4s4ed
-se4d4e
-s5edl
-se2g
-seg3r
-5sei
-se1le
-5self
-5selv
-4seme
-se4mol
-sen5at
-4senc
-sen4d
-s5ened
-sen5g
-s5enin
-4sentd
-4sentl
-sep3a3
-4s1er.
-s4erl
-ser4o
-4servo
-s1e4s
-se5sh
-ses5t
-5se5um
-5sev
-sev3en
-sew4i
-5sex
-4s3f
-2s3g
-s2h
-2sh.
-sh1er
-5shev
-sh1in
-sh3io
-3ship
-shiv5
-sho4
-sh5old
-shon3
-shor4
-short5
-4shw
-si1b
-s5icc
-3side.
-5sides
-5sidi
-si5diz
-4signa
-sil4e
-4sily
-2s1in
-s2ina
-5sine.
-s3ing
-1sio
-5sion
-sion5a
-si2r
-sir5a
-1sis
-3sitio
-5siu
-1siv
-5siz
-sk2
-4ske
-s3ket
-sk5ine
-sk5ing
-s1l2
-s3lat
-s2le
-slith5
-2s1m
-s3ma
-small3
-sman3
-smel4
-s5men
-5smith
-smol5d4
-s1n4
-1so
-so4ce
-soft3
-so4lab
-sol3d2
-so3lic
-5solv
-3som
-3s4on.
-sona4
-son4g
-s4op
-5sophic
-s5ophiz
-s5ophy
-sor5c
-sor5d
-4sov
-so5vi
-2spa
-5spai
-spa4n
-spen4d
-2s5peo
-2sper
-s2phe
-3spher
-spho5
-spil4
-sp5ing
-4spio
-s4ply
-s4pon
-spor4
-4spot
-squal4l
-s1r
-2ss
-s1sa
-ssas3
-s2s5c
-s3sel
-s5seng
-s4ses.
-s5set
-s1si
-s4sie
-ssi4er
-ss5ily
-s4sl
-ss4li
-s4sn
-sspend4
-ss2t
-ssur5a
-ss5w
-2st.
-s2tag
-s2tal
-stam4i
-5stand
-s4ta4p
-5stat.
-s4ted
-stern5i
-s5tero
-ste2w
-stew5a
-s3the
-st2i
-s4ti.
-s5tia
-s1tic
-5stick
-s4tie
-s3tif
-st3ing
-5stir
-s1tle
-5stock
-stom3a
-5stone
-s4top
-3store
-st4r
-s4trad
-5stratu
-s4tray
-s4trid
-4stry
-4st3w
-s2ty
-1su
-su1al
-su4b3
-su2g3
-su5is
-suit3
-s4ul
-su2m
-sum3i
-su2n
-su2r
-4sv
-sw2
-4swo
-s4y
-4syc
-3syl
-syn5o
-sy5rin
-1ta
-3ta.
-2tab
-ta5bles
-5taboliz
-4taci
-ta5do
-4taf4
-tai5lo
-ta2l
-ta5la
-tal5en
-tal3i
-4talk
-tal4lis
-ta5log
-ta5mo
-tan4de
-tanta3
-ta5per
-ta5pl
-tar4a
-4tarc
-4tare
-ta3riz
-tas4e
-ta5sy
-4tatic
-ta4tur
-taun4
-tav4
-2taw
-tax4is
-2t1b
-4tc
-t4ch
-tch5et
-4t1d
-4te.
-tead4i
-4teat
-tece4
-5tect
-2t1ed
-te5di
-1tee
-teg4
-te5ger
-te5gi
-3tel.
-teli4
-5tels
-te2ma2
-tem3at
-3tenan
-3tenc
-3tend
-4tenes
-1tent
-ten4tag
-1teo
-te4p
-te5pe
-ter3c
-5ter3d
-1teri
-ter5ies
-ter3is
-teri5za
-5ternit
-ter5v
-4tes.
-4tess
-t3ess.
-teth5e
-3teu
-3tex
-4tey
-2t1f
-4t1g
-2th.
-than4
-th2e
-4thea
-th3eas
-the5at
-the3is
-3thet
-th5ic.
-th5ica
-4thil
-5think
-4thl
-th5ode
-5thodic
-4thoo
-thor5it
-tho5riz
-2ths
-1tia
-ti4ab
-ti4ato
-2ti2b
-4tick
-t4ico
-t4ic1u
-5tidi
-3tien
-tif2
-ti5fy
-2tig
-5tigu
-till5in
-1tim
-4timp
-tim5ul
-2t1in
-t2ina
-3tine.
-3tini
-1tio
-ti5oc
-tion5ee
-5tiq
-ti3sa
-3tise
-tis4m
-ti5so
-tis4p
-5tistica
-ti3tl
-ti4u
-1tiv
-tiv4a
-1tiz
-ti3za
-ti3zen
-2tl
-t5la
-tlan4
-3tle.
-3tled
-3tles.
-t5let.
-t5lo
-4t1m
-tme4
-2t1n2
-1to
-to3b
-to5crat
-4todo
-2tof
-to2gr
-to5ic
-to2ma
-tom4b
-to3my
-ton4ali
-to3nat
-4tono
-4tony
-to2ra
-to3rie
-tor5iz
-tos2
-5tour
-4tout
-to3war
-4t1p
-1tra
-tra3b
-tra5ch
-traci4
-trac4it
-trac4te
-tras4
-tra5ven
-trav5es5
-tre5f
-tre4m
-trem5i
-5tria
-tri5ces
-5tricia
-4trics
-2trim
-tri4v
-tro5mi
-tron5i
-4trony
-tro5phe
-tro3sp
-tro3v
-tru5i
-trus4
-4t1s2
-t4sc
-tsh4
-t4sw
-4t3t2
-t4tes
-t5to
-ttu4
-1tu
-tu1a
-tu3ar
-tu4bi
-tud2
-4tue
-4tuf4
-5tu3i
-3tum
-tu4nis
-2t3up.
-3ture
-5turi
-tur3is
-tur5o
-tu5ry
-3tus
-4tv
-tw4
-4t1wa
-twis4
-4two
-1ty
-4tya
-2tyl
-type3
-ty5ph
-4tz
-tz4e
-4uab
-uac4
-ua5na
-uan4i
-uar5ant
-uar2d
-uar3i
-uar3t
-u1at
-uav4
-ub4e
-u4bel
-u3ber
-u4bero
-u1b4i
-u4b5ing
-u3ble.
-u3ca
-uci4b
-uc4it
-ucle3
-u3cr
-u3cu
-u4cy
-ud5d
-ud3er
-ud5est
-udev4
-u1dic
-ud3ied
-ud3ies
-ud5is
-u5dit
-u4don
-ud4si
-u4du
-u4ene
-uens4
-uen4te
-uer4il
-3ufa
-u3fl
-ugh3en
-ug5in
-2ui2
-uil5iz
-ui4n
-u1ing
-uir4m
-uita4
-uiv3
-uiv4er.
-u5j
-4uk
-u1la
-ula5b
-u5lati
-ulch4
-5ulche
-ul3der
-ul4e
-u1len
-ul4gi
-ul2i
-u5lia
-ul3ing
-ul5ish
-ul4lar
-ul4li4b
-ul4lis
-4ul3m
-u1l4o
-4uls
-uls5es
-ul1ti
-ultra3
-4ultu
-u3lu
-ul5ul
-ul5v
-um5ab
-um4bi
-um4bly
-u1mi
-u4m3ing
-umor5o
-um2p
-unat4
-u2ne
-un4er
-u1ni
-un4im
-u2nin
-un5ish
-uni3v
-un3s4
-un4sw
-unt3ab
-un4ter.
-un4tes
-unu4
-un5y
-un5z
-u4ors
-u5os
-u1ou
-u1pe
-uper5s
-u5pia
-up3ing
-u3pl
-up3p
-upport5
-upt5ib
-uptu4
-u1ra
-4ura.
-u4rag
-u4ras
-ur4be
-urc4
-ur1d
-ure5at
-ur4fer
-ur4fr
-u3rif
-uri4fic
-ur1in
-u3rio
-u1rit
-ur3iz
-ur2l
-url5ing.
-ur4no
-uros4
-ur4pe
-ur4pi
-urs5er
-ur5tes
-ur3the
-urti4
-ur4tie
-u3ru
-2us
-u5sad
-u5san
-us4ap
-usc2
-us3ci
-use5a
-u5sia
-u3sic
-us4lin
-us1p
-us5sl
-us5tere
-us1tr
-u2su
-usur4
-uta4b
-u3tat
-4ute.
-4utel
-4uten
-uten4i
-4u1t2i
-uti5liz
-u3tine
-ut3ing
-ution5a
-u4tis
-5u5tiz
-u4t1l
-ut5of
-uto5g
-uto5matic
-u5ton
-u4tou
-uts4
-u3u
-uu4m
-u1v2
-uxu3
-uz4e
-1va
-5va.
-2v1a4b
-vac5il
-vac3u
-vag4
-va4ge
-va5lie
-val5o
-val1u
-va5mo
-va5niz
-va5pi
-var5ied
-3vat
-4ve.
-4ved
-veg3
-v3el.
-vel3li
-ve4lo
-v4ely
-ven3om
-v5enue
-v4erd
-5vere.
-v4erel
-v3eren
-ver5enc
-v4eres
-ver3ie
-vermi4n
-3verse
-ver3th
-v4e2s
-4ves.
-ves4te
-ve4te
-vet3er
-ve4ty
-vi5ali
-5vian
-5vide.
-5vided
-4v3iden
-5vides
-5vidi
-v3if
-vi5gn
-vik4
-2vil
-5vilit
-v3i3liz
-v1in
-4vi4na
-v2inc
-vin5d
-4ving
-vio3l
-v3io4r
-vi1ou
-vi4p
-vi5ro
-vis3it
-vi3so
-vi3su
-4viti
-vit3r
-4vity
-3viv
-5vo.
-voi4
-3vok
-vo4la
-v5ole
-5volt
-3volv
-vom5i
-vor5ab
-vori4
-vo4ry
-vo4ta
-4votee
-4vv4
-v4y
-w5abl
-2wac
-wa5ger
-wag5o
-wait5
-w5al.
-wam4
-war4t
-was4t
-wa1te
-wa5ver
-w1b
-wea5rie
-weath3
-wed4n
-weet3
-wee5v
-wel4l
-w1er
-west3
-w3ev
-whi4
-wi2
-wil2
-will5in
-win4de
-win4g
-wir4
-3wise
-with3
-wiz5
-w4k
-wl4es
-wl3in
-w4no
-1wo2
-wom1
-wo5ven
-w5p
-wra4
-wri4
-writa4
-w3sh
-ws4l
-ws4pe
-w5s4t
-4wt
-wy4
-x1a
-xac5e
-x4ago
-xam3
-x4ap
-xas5
-x3c2
-x1e
-xe4cuto
-x2ed
-xer4i
-xe5ro
-x1h
-xhi2
-xhil5
-xhu4
-x3i
-xi5a
-xi5c
-xi5di
-x4ime
-xi5miz
-x3o
-x4ob
-x3p
-xpan4d
-xpecto5
-xpe3d
-x1t2
-x3ti
-x1u
-xu3a
-xx4
-y5ac
-3yar4
-y5at
-y1b
-y1c
-y2ce
-yc5er
-y3ch
-ych4e
-ycom4
-ycot4
-y1d
-y5ee
-y1er
-y4erf
-yes4
-ye4t
-y5gi
-4y3h
-y1i
-y3la
-ylla5bl
-y3lo
-y5lu
-ymbol5
-yme4
-ympa3
-yn3chr
-yn5d
-yn5g
-yn5ic
-5ynx
-y1o4
-yo5d
-y4o5g
-yom4
-yo5net
-y4ons
-y4os
-y4ped
-yper5
-yp3i
-y3po
-y4poc
-yp2ta
-y5pu
-yra5m
-yr5ia
-y3ro
-yr4r
-ys4c
-y3s2e
-ys3ica
-ys3io
-3ysis
-y4so
-yss4
-ys1t
-ys3ta
-ysur4
-y3thin
-yt3ic
-y1w
-za1
-z5a2b
-zar2
-4zb
-2ze
-ze4n
-ze4p
-z1er
-ze3ro
-zet4
-2z1i
-z4il
-z4is
-5zl
-4zm
-1zo
-zo4m
-zo5ol
-zte4
-4z1z2
-z4zy
-Á1Á
-Á1Å
-Á1É
-Á1Ï
-Á1Õ
-Á1Ù
-Á1Ü
-Á1À
-Á1Ñ
-Å1Á
-Å1Å
-Å1É
-Å1Ï
-Å1Õ
-Å1Ù
-Å1Ü
-Å1À
-Å1Ñ
-É1Á
-É1Å
-É1É
-É1Ï
-É1Õ
-É1Ù
-É1Ü
-É1À
-É1Ñ
-Ï1Á
-Ï1Å
-Ï1É
-Ï1Ï
-Ï1Õ
-Ï1Ù
-Ï1Ü
-Ï1À
-Ï1Ñ
-Õ1Á
-Õ1Å
-Õ1É
-Õ1Ï
-Õ1Õ
-Õ1Ù
-Õ1Ü
-Õ1À
-Õ1Ñ
-Ù1Á
-Ù1Å
-Ù1É
-Ù1Ï
-Ù1Õ
-Ù1Ù
-Ù1Ü
-Ù1À
-Ù1Ñ
-Ü1Á
-Ü1Å
-Ü1É
-Ü1Ï
-Ü1Õ
-Ü1Ù
-Ü1Ü
-Ü1À
-Ü1Ñ
-À1Á
-À1Å
-À1É
-À1Ï
-À1Õ
-À1Ù
-À1Ü
-À1À
-À1Ñ
-Ñ1Á
-Ñ1Å
-Ñ1É
-Ñ1Ï
-Ñ1Õ
-Ñ1Ù
-Ñ1Ü
-Ñ1À
-Ñ1Ñ
-.ÂÄ2
-.ÂÌ2
-.ÂÒ2
-.ÂØ2
-.×Â2
-.×ÂÌ2
-.×ÂÒ2
-.××2
-.××Ò2
-.×ÇÌ2
-.×Ä2
-.×Ä×2
-.×ÄÒ2
-.×Ú2
-.×ÚÂ2
-.×Ú×2
-.×ÚÇ2
-.×ÚÇÌ2
-.×ÚÇÒ2
-.×ÚÄ2
-.×ÚÄÒ2
-.×ÚÌ2
-.×ÚÍ2
-.×ÚÒ2
-.×Úß2
-.×Ë2
-.×ËÌ2
-.×ËÒ2
-.×Ì2
-.×Í2
-.×Î2
-.×Ð2
-.×ÐÌ2
-.×ÐÒ2
-.×Ò2
-.×Ó2
-.×ÓË2
-.×ÓËÒ2
-.×ÓÌ2
-.×ÓÍ2
-.×ÓÐ2
-.×ÓÐÌ2
-.×ÓÐÒ2
-.×ÓÔ2
-.×ÓÔÒ2
-.×ÓÈ2
-.×ÓÈÌ2
-.×Ô2
-.×ÔÒ2
-.×È2
-.×Ã2
-.×Þ2
-.×Ø2
-.Ç×2
-.ÇÄ2
-.ÇÌ2
-.ÇÎ2
-.ÇÒ2
-.Ä×2
-.ÄÌ2
-.ÄÎ2
-.ÄÒ2
-.ÄØ2
-.Ö×2
-.ÖÇ2
-.ÖÇÌ2
-.ÖÄ2
-.ÖÖ2
-.ÖÒ2
-.Ú×2
-.ÚÄ2
-.ÚÄÒ2
-.ÚÌ2
-.ÚÍ2
-.ÚÎ2
-.ÚÒ2
-.Ë×2
-.ËÌ2
-.ËÎ2
-.ËÒ2
-.ËÓÔ2
-.ËÔ2
-.ÌÂ2
-.ÌÇ2
-.ÌÖ2
-.ÌØ2
-.ÌØ×2
-.ÍÇÌ2
-.ÍÇÎ2
-.ÍÌ2
-.ÍÎ2
-.ÍÒ2
-.ÍÓÔ2
-.ÍÈ2
-.ÍÞ2
-.ÍÝ2
-.ÎÒ2
-.ÐÌ2
-.ÐÎ2
-.ÐÒ2
-.ÐÓ2
-.ÐÔ2
-.ÐÈ2
-.ÐÞ2
-.ÐÛ2
-.ÐØ2
-.Ò×2
-.ÒÖ2
-.ÒÔ2
-.ÓÂ2
-.ÓÂÌ2
-.ÓÂÒ2
-.Ó×2
-.Ó×ÓÔ2
-.ÓÇ2
-.ÓÇÎ2
-.ÓÇÒ2
-.ÓÄ2
-.ÓÄ×2
-.ÓÄÒ2
-.ÓÖ2
-.ÓÚ2
-.ÓË2
-.ÓË×2
-.ÓËÌ2
-.ÓËÒ2
-.ÓÌ2
-.ÓÍ2
-.ÓÎ2
-.ÓÐ2
-.ÓÐÌ2
-.ÓÐÒ2
-.ÓÒ2
-.ÓÓ2
-.ÓÔ2
-.ÓÔ×2
-.ÓÔÌ2
-.ÓÔÒ2
-.ÓÆ2
-.ÓÈ2
-.ÓÈ×2
-.ÓÈÌ2
-.ÓÞ2
-.ÓÛ2
-.Óß2
-.Ô×2
-.ÔË2
-.ÔËÎ2
-.ÔÌ2
-.ÔÒ2
-.ÔÝ2
-.ÔØÍ2
-.ÔØÆ2
-.ÆÌ2
-.ÆÒ2
-.È×2
-.ÈÌ2
-.ÈÍ2
-.ÈÎ2
-.ÈÒ2
-.Ã×2
-.ÞÌ2
-.ÞÒ2
-.ÞÔ2
-.ÞØ2
-.Û×2
-.ÛË2
-.ÛË×2
-.ÛÌ2
-.ÛÎ2
-.ÛÐ2
-.ÛÒ2
-.ÛÔ2
-.ÛÔÒ2
-1ÂÁ
-1ÂÅ
-1ÂÉ
-1ÂÏ
-1ÂÕ
-1ÂÙ
-1ÂÑ
-1×Á
-1×Å
-1×É
-1×Ï
-1×Õ
-1×Ù
-1×Ñ
-1ÇÁ
-1ÇÅ
-1ÇÉ
-1ÇÏ
-1ÇÕ
-1ÄÁ
-1ÄÅ
-1ÄÉ
-1ÄÏ
-1ÄÕ
-1ÄÙ
-1ÄÀ
-1ÄÑ
-1ÖÁ
-1ÖÅ
-1ÖÉ
-1ÖÏ
-1ÖÕ
-1ÖÙ
-1ÚÁ
-1ÚÅ
-1ÚÉ
-1ÚÏ
-1ÚÕ
-1ÚÙ
-1ÚÑ
-1ËÁ
-1ËÅ
-1ËÉ
-1ËÏ
-1ËÕ
-1ÌÁ
-1ÌÅ
-1ÌÉ
-1ÌÏ
-1ÌÕ
-1ÌÙ
-1ÌÀ
-1ÌÑ
-1ÍÁ
-1ÍÅ
-1ÍÉ
-1ÍÏ
-1ÍÕ
-1ÍÙ
-1ÍÑ
-1ÎÁ
-1ÎÅ
-1ÎÉ
-1ÎÏ
-1ÎÕ
-1ÎÙ
-1ÎÀ
-1ÎÑ
-1ÐÁ
-1ÐÅ
-1ÐÉ
-1ÐÏ
-1ÐÕ
-1ÐÙ
-1ÐÑ
-1ÒÁ
-1ÒÅ
-1ÒÉ
-1ÒÏ
-1ÒÕ
-1ÒÙ
-1ÒÀ
-1ÒÑ
-1ÓÁ
-1ÓÅ
-1ÓÉ
-1ÓÏ
-1ÓÕ
-1ÓÙ
-1ÓÑ
-1ÔÁ
-1ÔÅ
-1ÔÉ
-1ÔÏ
-1ÔÕ
-1ÔÙ
-1ÔÀ
-1ÔÑ
-1ÆÁ
-1ÆÅ
-1ÆÉ
-1ÆÏ
-1ÆÕ
-1ÆÙ
-1ÈÁ
-1ÈÅ
-1ÈÉ
-1ÈÏ
-1ÈÕ
-1ÃÁ
-1ÃÅ
-1ÃÉ
-1ÃÏ
-1ÃÕ
-1ÃÙ
-1ÞÁ
-1ÞÅ
-1ÞÉ
-1ÞÏ
-1ÞÕ
-1ÛÁ
-1ÛÅ
-1ÛÉ
-1ÛÏ
-1ÛÕ
-1ÝÁ
-1ÝÅ
-1ÝÉ
-1ÝÏ
diff --git a/contrib/groff/tmac/locale/hyphen.us-ru b/contrib/groff/tmac/locale/hyphen.us-ru
deleted file mode 100644
index 3ccef48465fe..000000000000
--- a/contrib/groff/tmac/locale/hyphen.us-ru
+++ /dev/null
@@ -1,4833 +0,0 @@
-% Hyphenation patterns for US English and Russian (koi8-r).
-% These are the standard Plain TeX hyphenation patterns (in hyphen.tex).
-.ach4
-.ad4der
-.af1t
-.al3t
-.am5at
-.an5c
-.ang4
-.ani5m
-.ant4
-.an3te
-.anti5s
-.ar5s
-.ar4tie
-.ar4ty
-.as3c
-.as1p
-.as1s
-.aster5
-.atom5
-.au1d
-.av4i
-.awn4
-.ba4g
-.ba5na
-.bas4e
-.ber4
-.be5ra
-.be3sm
-.be5sto
-.bri2
-.but4ti
-.cam4pe
-.can5c
-.capa5b
-.car5ol
-.ca4t
-.ce4la
-.ch4
-.chill5i
-.ci2
-.cit5r
-.co3e
-.co4r
-.cor5ner
-.de4moi
-.de3o
-.de3ra
-.de3ri
-.des4c
-.dictio5
-.do4t
-.du4c
-.dumb5
-.earth5
-.eas3i
-.eb4
-.eer4
-.eg2
-.el5d
-.el3em
-.enam3
-.en3g
-.en3s
-.eq5ui5t
-.er4ri
-.es3
-.eu3
-.eye5
-.fes3
-.for5mer
-.ga2
-.ge2
-.gen3t4
-.ge5og
-.gi5a
-.gi4b
-.go4r
-.hand5i
-.han5k
-.he2
-.hero5i
-.hes3
-.het3
-.hi3b
-.hi3er
-.hon5ey
-.hon3o
-.hov5
-.id4l
-.idol3
-.im3m
-.im5pin
-.in1
-.in3ci
-.ine2
-.in2k
-.in3s
-.ir5r
-.is4i
-.ju3r
-.la4cy
-.la4m
-.lat5er
-.lath5
-.le2
-.leg5e
-.len4
-.lep5
-.lev1
-.li4g
-.lig5a
-.li2n
-.li3o
-.li4t
-.mag5a5
-.mal5o
-.man5a
-.mar5ti
-.me2
-.mer3c
-.me5ter
-.mis1
-.mist5i
-.mon3e
-.mo3ro
-.mu5ta
-.muta5b
-.ni4c
-.od2
-.odd5
-.of5te
-.or5ato
-.or3c
-.or1d
-.or3t
-.os3
-.os4tl
-.oth3
-.out3
-.ped5al
-.pe5te
-.pe5tit
-.pi4e
-.pio5n
-.pi2t
-.pre3m
-.ra4c
-.ran4t
-.ratio5na
-.ree2
-.re5mit
-.res2
-.re5stat
-.ri4g
-.rit5u
-.ro4q
-.ros5t
-.row5d
-.ru4d
-.sci3e
-.self5
-.sell5
-.se2n
-.se5rie
-.sh2
-.si2
-.sing4
-.st4
-.sta5bl
-.sy2
-.ta4
-.te4
-.ten5an
-.th2
-.ti2
-.til4
-.tim5o5
-.ting4
-.tin5k
-.ton4a
-.to4p
-.top5i
-.tou5s
-.trib5ut
-.un1a
-.un3ce
-.under5
-.un1e
-.un5k
-.un5o
-.un3u
-.up3
-.ure3
-.us5a
-.ven4de
-.ve5ra
-.wil5i
-.ye4
-4ab.
-a5bal
-a5ban
-abe2
-ab5erd
-abi5a
-ab5it5ab
-ab5lat
-ab5o5liz
-4abr
-ab5rog
-ab3ul
-a4car
-ac5ard
-ac5aro
-a5ceou
-ac1er
-a5chet
-4a2ci
-a3cie
-ac1in
-a3cio
-ac5rob
-act5if
-ac3ul
-ac4um
-a2d
-ad4din
-ad5er.
-2adi
-a3dia
-ad3ica
-adi4er
-a3dio
-a3dit
-a5diu
-ad4le
-ad3ow
-ad5ran
-ad4su
-4adu
-a3duc
-ad5um
-ae4r
-aeri4e
-a2f
-aff4
-a4gab
-aga4n
-ag5ell
-age4o
-4ageu
-ag1i
-4ag4l
-ag1n
-a2go
-3agog
-ag3oni
-a5guer
-ag5ul
-a4gy
-a3ha
-a3he
-ah4l
-a3ho
-ai2
-a5ia
-a3ic.
-ai5ly
-a4i4n
-ain5in
-ain5o
-ait5en
-a1j
-ak1en
-al5ab
-al3ad
-a4lar
-4aldi
-2ale
-al3end
-a4lenti
-a5le5o
-al1i
-al4ia.
-ali4e
-al5lev
-4allic
-4alm
-a5log.
-a4ly.
-4alys
-5a5lyst
-5alyt
-3alyz
-4ama
-am5ab
-am3ag
-ama5ra
-am5asc
-a4matis
-a4m5ato
-am5era
-am3ic
-am5if
-am5ily
-am1in
-ami4no
-a2mo
-a5mon
-amor5i
-amp5en
-a2n
-an3age
-3analy
-a3nar
-an3arc
-anar4i
-a3nati
-4and
-ande4s
-an3dis
-an1dl
-an4dow
-a5nee
-a3nen
-an5est.
-a3neu
-2ang
-ang5ie
-an1gl
-a4n1ic
-a3nies
-an3i3f
-an4ime
-a5nimi
-a5nine
-an3io
-a3nip
-an3ish
-an3it
-a3niu
-an4kli
-5anniz
-ano4
-an5ot
-anoth5
-an2sa
-an4sco
-an4sn
-an2sp
-ans3po
-an4st
-an4sur
-antal4
-an4tie
-4anto
-an2tr
-an4tw
-an3ua
-an3ul
-a5nur
-4ao
-apar4
-ap5at
-ap5ero
-a3pher
-4aphi
-a4pilla
-ap5illar
-ap3in
-ap3ita
-a3pitu
-a2pl
-apoc5
-ap5ola
-apor5i
-apos3t
-aps5es
-a3pu
-aque5
-2a2r
-ar3act
-a5rade
-ar5adis
-ar3al
-a5ramete
-aran4g
-ara3p
-ar4at
-a5ratio
-ar5ativ
-a5rau
-ar5av4
-araw4
-arbal4
-ar4chan
-ar5dine
-ar4dr
-ar5eas
-a3ree
-ar3ent
-a5ress
-ar4fi
-ar4fl
-ar1i
-ar5ial
-ar3ian
-a3riet
-ar4im
-ar5inat
-ar3io
-ar2iz
-ar2mi
-ar5o5d
-a5roni
-a3roo
-ar2p
-ar3q
-arre4
-ar4sa
-ar2sh
-4as.
-as4ab
-as3ant
-ashi4
-a5sia.
-a3sib
-a3sic
-5a5si4t
-ask3i
-as4l
-a4soc
-as5ph
-as4sh
-as3ten
-as1tr
-asur5a
-a2ta
-at3abl
-at5ac
-at3alo
-at5ap
-ate5c
-at5ech
-at3ego
-at3en.
-at3era
-ater5n
-a5terna
-at3est
-at5ev
-4ath
-ath5em
-a5then
-at4ho
-ath5om
-4ati.
-a5tia
-at5i5b
-at1ic
-at3if
-ation5ar
-at3itu
-a4tog
-a2tom
-at5omiz
-a4top
-a4tos
-a1tr
-at5rop
-at4sk
-at4tag
-at5te
-at4th
-a2tu
-at5ua
-at5ue
-at3ul
-at3ura
-a2ty
-au4b
-augh3
-au3gu
-au4l2
-aun5d
-au3r
-au5sib
-aut5en
-au1th
-a2va
-av3ag
-a5van
-ave4no
-av3era
-av5ern
-av5ery
-av1i
-avi4er
-av3ig
-av5oc
-a1vor
-3away
-aw3i
-aw4ly
-aws4
-ax4ic
-ax4id
-ay5al
-aye4
-ays4
-azi4er
-azz5i
-5ba.
-bad5ger
-ba4ge
-bal1a
-ban5dag
-ban4e
-ban3i
-barbi5
-bari4a
-bas4si
-1bat
-ba4z
-2b1b
-b2be
-b3ber
-bbi4na
-4b1d
-4be.
-beak4
-beat3
-4be2d
-be3da
-be3de
-be3di
-be3gi
-be5gu
-1bel
-be1li
-be3lo
-4be5m
-be5nig
-be5nu
-4bes4
-be3sp
-be5str
-3bet
-bet5iz
-be5tr
-be3tw
-be3w
-be5yo
-2bf
-4b3h
-bi2b
-bi4d
-3bie
-bi5en
-bi4er
-2b3if
-1bil
-bi3liz
-bina5r4
-bin4d
-bi5net
-bi3ogr
-bi5ou
-bi2t
-3bi3tio
-bi3tr
-3bit5ua
-b5itz
-b1j
-bk4
-b2l2
-blath5
-b4le.
-blen4
-5blesp
-b3lis
-b4lo
-blun4t
-4b1m
-4b3n
-bne5g
-3bod
-bod3i
-bo4e
-bol3ic
-bom4bi
-bon4a
-bon5at
-3boo
-5bor.
-4b1ora
-bor5d
-5bore
-5bori
-5bos4
-b5ota
-both5
-bo4to
-bound3
-4bp
-4brit
-broth3
-2b5s2
-bsor4
-2bt
-bt4l
-b4to
-b3tr
-buf4fer
-bu4ga
-bu3li
-bumi4
-bu4n
-bunt4i
-bu3re
-bus5ie
-buss4e
-5bust
-4buta
-3butio
-b5uto
-b1v
-4b5w
-5by.
-bys4
-1ca
-cab3in
-ca1bl
-cach4
-ca5den
-4cag4
-2c5ah
-ca3lat
-cal4la
-call5in
-4calo
-can5d
-can4e
-can4ic
-can5is
-can3iz
-can4ty
-cany4
-ca5per
-car5om
-cast5er
-cas5tig
-4casy
-ca4th
-4cativ
-cav5al
-c3c
-ccha5
-cci4a
-ccompa5
-ccon4
-ccou3t
-2ce.
-4ced.
-4ceden
-3cei
-5cel.
-3cell
-1cen
-3cenc
-2cen4e
-4ceni
-3cent
-3cep
-ce5ram
-4cesa
-3cessi
-ces5si5b
-ces5t
-cet4
-c5e4ta
-cew4
-2ch
-4ch.
-4ch3ab
-5chanic
-ch5a5nis
-che2
-cheap3
-4ched
-che5lo
-3chemi
-ch5ene
-ch3er.
-ch3ers
-4ch1in
-5chine.
-ch5iness
-5chini
-5chio
-3chit
-chi2z
-3cho2
-ch4ti
-1ci
-3cia
-ci2a5b
-cia5r
-ci5c
-4cier
-5cific.
-4cii
-ci4la
-3cili
-2cim
-2cin
-c4ina
-3cinat
-cin3em
-c1ing
-c5ing.
-5cino
-cion4
-4cipe
-ci3ph
-4cipic
-4cista
-4cisti
-2c1it
-cit3iz
-5ciz
-ck1
-ck3i
-1c4l4
-4clar
-c5laratio
-5clare
-cle4m
-4clic
-clim4
-cly4
-c5n
-1co
-co5ag
-coe2
-2cog
-co4gr
-coi4
-co3inc
-col5i
-5colo
-col3or
-com5er
-con4a
-c4one
-con3g
-con5t
-co3pa
-cop3ic
-co4pl
-4corb
-coro3n
-cos4e
-cov1
-cove4
-cow5a
-coz5e
-co5zi
-c1q
-cras5t
-5crat.
-5cratic
-cre3at
-5cred
-4c3reta
-cre4v
-cri2
-cri5f
-c4rin
-cris4
-5criti
-cro4pl
-crop5o
-cros4e
-cru4d
-4c3s2
-2c1t
-cta4b
-ct5ang
-c5tant
-c2te
-c3ter
-c4ticu
-ctim3i
-ctu4r
-c4tw
-cud5
-c4uf
-c4ui
-cu5ity
-5culi
-cul4tis
-3cultu
-cu2ma
-c3ume
-cu4mi
-3cun
-cu3pi
-cu5py
-cur5a4b
-cu5ria
-1cus
-cuss4i
-3c4ut
-cu4tie
-4c5utiv
-4cutr
-1cy
-cze4
-1d2a
-5da.
-2d3a4b
-dach4
-4daf
-2dag
-da2m2
-dan3g
-dard5
-dark5
-4dary
-3dat
-4dativ
-4dato
-5dav4
-dav5e
-5day
-d1b
-d5c
-d1d4
-2de.
-deaf5
-deb5it
-de4bon
-decan4
-de4cil
-de5com
-2d1ed
-4dee.
-de5if
-deli4e
-del5i5q
-de5lo
-d4em
-5dem.
-3demic
-dem5ic.
-de5mil
-de4mons
-demor5
-1den
-de4nar
-de3no
-denti5f
-de3nu
-de1p
-de3pa
-depi4
-de2pu
-d3eq
-d4erh
-5derm
-dern5iz
-der5s
-des2
-d2es.
-de1sc
-de2s5o
-des3ti
-de3str
-de4su
-de1t
-de2to
-de1v
-dev3il
-4dey
-4d1f
-d4ga
-d3ge4t
-dg1i
-d2gy
-d1h2
-5di.
-1d4i3a
-dia5b
-di4cam
-d4ice
-3dict
-3did
-5di3en
-d1if
-di3ge
-di4lato
-d1in
-1dina
-3dine.
-5dini
-di5niz
-1dio
-dio5g
-di4pl
-dir2
-di1re
-dirt5i
-dis1
-5disi
-d4is3t
-d2iti
-1di1v
-d1j
-d5k2
-4d5la
-3dle.
-3dled
-3dles.
-4dless
-2d3lo
-4d5lu
-2dly
-d1m
-4d1n4
-1do
-3do.
-do5de
-5doe
-2d5of
-d4og
-do4la
-doli4
-do5lor
-dom5iz
-do3nat
-doni4
-doo3d
-dop4p
-d4or
-3dos
-4d5out
-do4v
-3dox
-d1p
-1dr
-drag5on
-4drai
-dre4
-drea5r
-5dren
-dri4b
-dril4
-dro4p
-4drow
-5drupli
-4dry
-2d1s2
-ds4p
-d4sw
-d4sy
-d2th
-1du
-d1u1a
-du2c
-d1uca
-duc5er
-4duct.
-4ducts
-du5el
-du4g
-d3ule
-dum4be
-du4n
-4dup
-du4pe
-d1v
-d1w
-d2y
-5dyn
-dy4se
-dys5p
-e1a4b
-e3act
-ead1
-ead5ie
-ea4ge
-ea5ger
-ea4l
-eal5er
-eal3ou
-eam3er
-e5and
-ear3a
-ear4c
-ear5es
-ear4ic
-ear4il
-ear5k
-ear2t
-eart3e
-ea5sp
-e3ass
-east3
-ea2t
-eat5en
-eath3i
-e5atif
-e4a3tu
-ea2v
-eav3en
-eav5i
-eav5o
-2e1b
-e4bel.
-e4bels
-e4ben
-e4bit
-e3br
-e4cad
-ecan5c
-ecca5
-e1ce
-ec5essa
-ec2i
-e4cib
-ec5ificat
-ec5ifie
-ec5ify
-ec3im
-eci4t
-e5cite
-e4clam
-e4clus
-e2col
-e4comm
-e4compe
-e4conc
-e2cor
-ec3ora
-eco5ro
-e1cr
-e4crem
-ec4tan
-ec4te
-e1cu
-e4cul
-ec3ula
-2e2da
-4ed3d
-e4d1er
-ede4s
-4edi
-e3dia
-ed3ib
-ed3ica
-ed3im
-ed1it
-edi5z
-4edo
-e4dol
-edon2
-e4dri
-e4dul
-ed5ulo
-ee2c
-eed3i
-ee2f
-eel3i
-ee4ly
-ee2m
-ee4na
-ee4p1
-ee2s4
-eest4
-ee4ty
-e5ex
-e1f
-e4f3ere
-1eff
-e4fic
-5efici
-efil4
-e3fine
-ef5i5nite
-3efit
-efor5es
-e4fuse.
-4egal
-eger4
-eg5ib
-eg4ic
-eg5ing
-e5git5
-eg5n
-e4go.
-e4gos
-eg1ul
-e5gur
-5egy
-e1h4
-eher4
-ei2
-e5ic
-ei5d
-eig2
-ei5gl
-e3imb
-e3inf
-e1ing
-e5inst
-eir4d
-eit3e
-ei3th
-e5ity
-e1j
-e4jud
-ej5udi
-eki4n
-ek4la
-e1la
-e4la.
-e4lac
-elan4d
-el5ativ
-e4law
-elaxa4
-e3lea
-el5ebra
-5elec
-e4led
-el3ega
-e5len
-e4l1er
-e1les
-el2f
-el2i
-e3libe
-e4l5ic.
-el3ica
-e3lier
-el5igib
-e5lim
-e4l3ing
-e3lio
-e2lis
-el5ish
-e3liv3
-4ella
-el4lab
-ello4
-e5loc
-el5og
-el3op.
-el2sh
-el4ta
-e5lud
-el5ug
-e4mac
-e4mag
-e5man
-em5ana
-em5b
-e1me
-e2mel
-e4met
-em3ica
-emi4e
-em5igra
-em1in2
-em5ine
-em3i3ni
-e4mis
-em5ish
-e5miss
-em3iz
-5emniz
-emo4g
-emoni5o
-em3pi
-e4mul
-em5ula
-emu3n
-e3my
-en5amo
-e4nant
-ench4er
-en3dic
-e5nea
-e5nee
-en3em
-en5ero
-en5esi
-en5est
-en3etr
-e3new
-en5ics
-e5nie
-e5nil
-e3nio
-en3ish
-en3it
-e5niu
-5eniz
-4enn
-4eno
-eno4g
-e4nos
-en3ov
-en4sw
-ent5age
-4enthes
-en3ua
-en5uf
-e3ny.
-4en3z
-e5of
-eo2g
-e4oi4
-e3ol
-eop3ar
-e1or
-eo3re
-eo5rol
-eos4
-e4ot
-eo4to
-e5out
-e5ow
-e2pa
-e3pai
-ep5anc
-e5pel
-e3pent
-ep5etitio
-ephe4
-e4pli
-e1po
-e4prec
-ep5reca
-e4pred
-ep3reh
-e3pro
-e4prob
-ep4sh
-ep5ti5b
-e4put
-ep5uta
-e1q
-equi3l
-e4q3ui3s
-er1a
-era4b
-4erand
-er3ar
-4erati.
-2erb
-er4bl
-er3ch
-er4che
-2ere.
-e3real
-ere5co
-ere3in
-er5el.
-er3emo
-er5ena
-er5ence
-4erene
-er3ent
-ere4q
-er5ess
-er3est
-eret4
-er1h
-er1i
-e1ria4
-5erick
-e3rien
-eri4er
-er3ine
-e1rio
-4erit
-er4iu
-eri4v
-e4riva
-er3m4
-er4nis
-4ernit
-5erniz
-er3no
-2ero
-er5ob
-e5roc
-ero4r
-er1ou
-er1s
-er3set
-ert3er
-4ertl
-er3tw
-4eru
-eru4t
-5erwau
-e1s4a
-e4sage.
-e4sages
-es2c
-e2sca
-es5can
-e3scr
-es5cu
-e1s2e
-e2sec
-es5ecr
-es5enc
-e4sert.
-e4serts
-e4serva
-4esh
-e3sha
-esh5en
-e1si
-e2sic
-e2sid
-es5iden
-es5igna
-e2s5im
-es4i4n
-esis4te
-esi4u
-e5skin
-es4mi
-e2sol
-es3olu
-e2son
-es5ona
-e1sp
-es3per
-es5pira
-es4pre
-2ess
-es4si4b
-estan4
-es3tig
-es5tim
-4es2to
-e3ston
-2estr
-e5stro
-estruc5
-e2sur
-es5urr
-es4w
-eta4b
-eten4d
-e3teo
-ethod3
-et1ic
-e5tide
-etin4
-eti4no
-e5tir
-e5titio
-et5itiv
-4etn
-et5ona
-e3tra
-e3tre
-et3ric
-et5rif
-et3rog
-et5ros
-et3ua
-et5ym
-et5z
-4eu
-e5un
-e3up
-eu3ro
-eus4
-eute4
-euti5l
-eu5tr
-eva2p5
-e2vas
-ev5ast
-e5vea
-ev3ell
-evel3o
-e5veng
-even4i
-ev1er
-e5verb
-e1vi
-ev3id
-evi4l
-e4vin
-evi4v
-e5voc
-e5vu
-e1wa
-e4wag
-e5wee
-e3wh
-ewil5
-ew3ing
-e3wit
-1exp
-5eyc
-5eye.
-eys4
-1fa
-fa3bl
-fab3r
-fa4ce
-4fag
-fain4
-fall5e
-4fa4ma
-fam5is
-5far
-far5th
-fa3ta
-fa3the
-4fato
-fault5
-4f5b
-4fd
-4fe.
-feas4
-feath3
-fe4b
-4feca
-5fect
-2fed
-fe3li
-fe4mo
-fen2d
-fend5e
-fer1
-5ferr
-fev4
-4f1f
-f4fes
-f4fie
-f5fin.
-f2f5is
-f4fly
-f2fy
-4fh
-1fi
-fi3a
-2f3ic.
-4f3ical
-f3ican
-4ficate
-f3icen
-fi3cer
-fic4i
-5ficia
-5ficie
-4fics
-fi3cu
-fi5del
-fight5
-fil5i
-fill5in
-4fily
-2fin
-5fina
-fin2d5
-fi2ne
-f1in3g
-fin4n
-fis4ti
-f4l2
-f5less
-flin4
-flo3re
-f2ly5
-4fm
-4fn
-1fo
-5fon
-fon4de
-fon4t
-fo2r
-fo5rat
-for5ay
-fore5t
-for4i
-fort5a
-fos5
-4f5p
-fra4t
-f5rea
-fres5c
-fri2
-fril4
-frol5
-2f3s
-2ft
-f4to
-f2ty
-3fu
-fu5el
-4fug
-fu4min
-fu5ne
-fu3ri
-fusi4
-fus4s
-4futa
-1fy
-1ga
-gaf4
-5gal.
-3gali
-ga3lo
-2gam
-ga5met
-g5amo
-gan5is
-ga3niz
-gani5za
-4gano
-gar5n4
-gass4
-gath3
-4gativ
-4gaz
-g3b
-gd4
-2ge.
-2ged
-geez4
-gel4in
-ge5lis
-ge5liz
-4gely
-1gen
-ge4nat
-ge5niz
-4geno
-4geny
-1geo
-ge3om
-g4ery
-5gesi
-geth5
-4geto
-ge4ty
-ge4v
-4g1g2
-g2ge
-g3ger
-gglu5
-ggo4
-gh3in
-gh5out
-gh4to
-5gi.
-1gi4a
-gia5r
-g1ic
-5gicia
-g4ico
-gien5
-5gies.
-gil4
-g3imen
-3g4in.
-gin5ge
-5g4ins
-5gio
-3gir
-gir4l
-g3isl
-gi4u
-5giv
-3giz
-gl2
-gla4
-glad5i
-5glas
-1gle
-gli4b
-g3lig
-3glo
-glo3r
-g1m
-g4my
-gn4a
-g4na.
-gnet4t
-g1ni
-g2nin
-g4nio
-g1no
-g4non
-1go
-3go.
-gob5
-5goe
-3g4o4g
-go3is
-gon2
-4g3o3na
-gondo5
-go3ni
-5goo
-go5riz
-gor5ou
-5gos.
-gov1
-g3p
-1gr
-4grada
-g4rai
-gran2
-5graph.
-g5rapher
-5graphic
-4graphy
-4gray
-gre4n
-4gress.
-4grit
-g4ro
-gruf4
-gs2
-g5ste
-gth3
-gu4a
-3guard
-2gue
-5gui5t
-3gun
-3gus
-4gu4t
-g3w
-1gy
-2g5y3n
-gy5ra
-h3ab4l
-hach4
-hae4m
-hae4t
-h5agu
-ha3la
-hala3m
-ha4m
-han4ci
-han4cy
-5hand.
-han4g
-hang5er
-hang5o
-h5a5niz
-han4k
-han4te
-hap3l
-hap5t
-ha3ran
-ha5ras
-har2d
-hard3e
-har4le
-harp5en
-har5ter
-has5s
-haun4
-5haz
-haz3a
-h1b
-1head
-3hear
-he4can
-h5ecat
-h4ed
-he5do5
-he3l4i
-hel4lis
-hel4ly
-h5elo
-hem4p
-he2n
-hena4
-hen5at
-heo5r
-hep5
-h4era
-hera3p
-her4ba
-here5a
-h3ern
-h5erou
-h3ery
-h1es
-he2s5p
-he4t
-het4ed
-heu4
-h1f
-h1h
-hi5an
-hi4co
-high5
-h4il2
-himer4
-h4ina
-hion4e
-hi4p
-hir4l
-hi3ro
-hir4p
-hir4r
-his3el
-his4s
-hith5er
-hi2v
-4hk
-4h1l4
-hlan4
-h2lo
-hlo3ri
-4h1m
-hmet4
-2h1n
-h5odiz
-h5ods
-ho4g
-hoge4
-hol5ar
-3hol4e
-ho4ma
-home3
-hon4a
-ho5ny
-3hood
-hoon4
-hor5at
-ho5ris
-hort3e
-ho5ru
-hos4e
-ho5sen
-hos1p
-1hous
-house3
-hov5el
-4h5p
-4hr4
-hree5
-hro5niz
-hro3po
-4h1s2
-h4sh
-h4tar
-ht1en
-ht5es
-h4ty
-hu4g
-hu4min
-hun5ke
-hun4t
-hus3t4
-hu4t
-h1w
-h4wart
-hy3pe
-hy3ph
-hy2s
-2i1a
-i2al
-iam4
-iam5ete
-i2an
-4ianc
-ian3i
-4ian4t
-ia5pe
-iass4
-i4ativ
-ia4tric
-i4atu
-ibe4
-ib3era
-ib5ert
-ib5ia
-ib3in
-ib5it.
-ib5ite
-i1bl
-ib3li
-i5bo
-i1br
-i2b5ri
-i5bun
-4icam
-5icap
-4icar
-i4car.
-i4cara
-icas5
-i4cay
-iccu4
-4iceo
-4ich
-2ici
-i5cid
-ic5ina
-i2cip
-ic3ipa
-i4cly
-i2c5oc
-4i1cr
-5icra
-i4cry
-ic4te
-ictu2
-ic4t3ua
-ic3ula
-ic4um
-ic5uo
-i3cur
-2id
-i4dai
-id5anc
-id5d
-ide3al
-ide4s
-i2di
-id5ian
-idi4ar
-i5die
-id3io
-idi5ou
-id1it
-id5iu
-i3dle
-i4dom
-id3ow
-i4dr
-i2du
-id5uo
-2ie4
-ied4e
-5ie5ga
-ield3
-ien5a4
-ien4e
-i5enn
-i3enti
-i1er.
-i3esc
-i1est
-i3et
-4if.
-if5ero
-iff5en
-if4fr
-4ific.
-i3fie
-i3fl
-4ift
-2ig
-iga5b
-ig3era
-ight3i
-4igi
-i3gib
-ig3il
-ig3in
-ig3it
-i4g4l
-i2go
-ig3or
-ig5ot
-i5gre
-igu5i
-ig1ur
-i3h
-4i5i4
-i3j
-4ik
-i1la
-il3a4b
-i4lade
-i2l5am
-ila5ra
-i3leg
-il1er
-ilev4
-il5f
-il1i
-il3ia
-il2ib
-il3io
-il4ist
-2ilit
-il2iz
-ill5ab
-4iln
-il3oq
-il4ty
-il5ur
-il3v
-i4mag
-im3age
-ima5ry
-imenta5r
-4imet
-im1i
-im5ida
-imi5le
-i5mini
-4imit
-im4ni
-i3mon
-i2mu
-im3ula
-2in.
-i4n3au
-4inav
-incel4
-in3cer
-4ind
-in5dling
-2ine
-i3nee
-iner4ar
-i5ness
-4inga
-4inge
-in5gen
-4ingi
-in5gling
-4ingo
-4ingu
-2ini
-i5ni.
-i4nia
-in3io
-in1is
-i5nite.
-5initio
-in3ity
-4ink
-4inl
-2inn
-2i1no
-i4no4c
-ino4s
-i4not
-2ins
-in3se
-insur5a
-2int.
-2in4th
-in1u
-i5nus
-4iny
-2io
-4io.
-ioge4
-io2gr
-i1ol
-io4m
-ion3at
-ion4ery
-ion3i
-io5ph
-ior3i
-i4os
-io5th
-i5oti
-io4to
-i4our
-2ip
-ipe4
-iphras4
-ip3i
-ip4ic
-ip4re4
-ip3ul
-i3qua
-iq5uef
-iq3uid
-iq3ui3t
-4ir
-i1ra
-ira4b
-i4rac
-ird5e
-ire4de
-i4ref
-i4rel4
-i4res
-ir5gi
-ir1i
-iri5de
-ir4is
-iri3tu
-5i5r2iz
-ir4min
-iro4g
-5iron.
-ir5ul
-2is.
-is5ag
-is3ar
-isas5
-2is1c
-is3ch
-4ise
-is3er
-3isf
-is5han
-is3hon
-ish5op
-is3ib
-isi4d
-i5sis
-is5itiv
-4is4k
-islan4
-4isms
-i2so
-iso5mer
-is1p
-is2pi
-is4py
-4is1s
-is4sal
-issen4
-is4ses
-is4ta.
-is1te
-is1ti
-ist4ly
-4istral
-i2su
-is5us
-4ita.
-ita4bi
-i4tag
-4ita5m
-i3tan
-i3tat
-2ite
-it3era
-i5teri
-it4es
-2ith
-i1ti
-4itia
-4i2tic
-it3ica
-5i5tick
-it3ig
-it5ill
-i2tim
-2itio
-4itis
-i4tism
-i2t5o5m
-4iton
-i4tram
-it5ry
-4itt
-it3uat
-i5tud
-it3ul
-4itz.
-i1u
-2iv
-iv3ell
-iv3en.
-i4v3er.
-i4vers.
-iv5il.
-iv5io
-iv1it
-i5vore
-iv3o3ro
-i4v3ot
-4i5w
-ix4o
-4iy
-4izar
-izi4
-5izont
-5ja
-jac4q
-ja4p
-1je
-jer5s
-4jestie
-4jesty
-jew3
-jo4p
-5judg
-3ka.
-k3ab
-k5ag
-kais4
-kal4
-k1b
-k2ed
-1kee
-ke4g
-ke5li
-k3en4d
-k1er
-kes4
-k3est.
-ke4ty
-k3f
-kh4
-k1i
-5ki.
-5k2ic
-k4ill
-kilo5
-k4im
-k4in.
-kin4de
-k5iness
-kin4g
-ki4p
-kis4
-k5ish
-kk4
-k1l
-4kley
-4kly
-k1m
-k5nes
-1k2no
-ko5r
-kosh4
-k3ou
-kro5n
-4k1s2
-k4sc
-ks4l
-k4sy
-k5t
-k1w
-lab3ic
-l4abo
-laci4
-l4ade
-la3dy
-lag4n
-lam3o
-3land
-lan4dl
-lan5et
-lan4te
-lar4g
-lar3i
-las4e
-la5tan
-4lateli
-4lativ
-4lav
-la4v4a
-2l1b
-lbin4
-4l1c2
-lce4
-l3ci
-2ld
-l2de
-ld4ere
-ld4eri
-ldi4
-ld5is
-l3dr
-l4dri
-le2a
-le4bi
-left5
-5leg.
-5legg
-le4mat
-lem5atic
-4len.
-3lenc
-5lene.
-1lent
-le3ph
-le4pr
-lera5b
-ler4e
-3lerg
-3l4eri
-l4ero
-les2
-le5sco
-5lesq
-3less
-5less.
-l3eva
-lev4er.
-lev4era
-lev4ers
-3ley
-4leye
-2lf
-l5fr
-4l1g4
-l5ga
-lgar3
-l4ges
-lgo3
-2l3h
-li4ag
-li2am
-liar5iz
-li4as
-li4ato
-li5bi
-5licio
-li4cor
-4lics
-4lict.
-l4icu
-l3icy
-l3ida
-lid5er
-3lidi
-lif3er
-l4iff
-li4fl
-5ligate
-3ligh
-li4gra
-3lik
-4l4i4l
-lim4bl
-lim3i
-li4mo
-l4im4p
-l4ina
-1l4ine
-lin3ea
-lin3i
-link5er
-li5og
-4l4iq
-lis4p
-l1it
-l2it.
-5litica
-l5i5tics
-liv3er
-l1iz
-4lj
-lka3
-l3kal
-lka4t
-l1l
-l4law
-l2le
-l5lea
-l3lec
-l3leg
-l3lel
-l3le4n
-l3le4t
-ll2i
-l2lin4
-l5lina
-ll4o
-lloqui5
-ll5out
-l5low
-2lm
-l5met
-lm3ing
-l4mod
-lmon4
-2l1n2
-3lo.
-lob5al
-lo4ci
-4lof
-3logic
-l5ogo
-3logu
-lom3er
-5long
-lon4i
-l3o3niz
-lood5
-5lope.
-lop3i
-l3opm
-lora4
-lo4rato
-lo5rie
-lor5ou
-5los.
-los5et
-5losophiz
-5losophy
-los4t
-lo4ta
-loun5d
-2lout
-4lov
-2lp
-lpa5b
-l3pha
-l5phi
-lp5ing
-l3pit
-l4pl
-l5pr
-4l1r
-2l1s2
-l4sc
-l2se
-l4sie
-4lt
-lt5ag
-ltane5
-l1te
-lten4
-ltera4
-lth3i
-l5ties.
-ltis4
-l1tr
-ltu2
-ltur3a
-lu5a
-lu3br
-luch4
-lu3ci
-lu3en
-luf4
-lu5id
-lu4ma
-5lumi
-l5umn.
-5lumnia
-lu3o
-luo3r
-4lup
-luss4
-lus3te
-1lut
-l5ven
-l5vet4
-2l1w
-1ly
-4lya
-4lyb
-ly5me
-ly3no
-2lys4
-l5yse
-1ma
-2mab
-ma2ca
-ma5chine
-ma4cl
-mag5in
-5magn
-2mah
-maid5
-4mald
-ma3lig
-ma5lin
-mal4li
-mal4ty
-5mania
-man5is
-man3iz
-4map
-ma5rine.
-ma5riz
-mar4ly
-mar3v
-ma5sce
-mas4e
-mas1t
-5mate
-math3
-ma3tis
-4matiza
-4m1b
-mba4t5
-m5bil
-m4b3ing
-mbi4v
-4m5c
-4me.
-2med
-4med.
-5media
-me3die
-m5e5dy
-me2g
-mel5on
-mel4t
-me2m
-mem1o3
-1men
-men4a
-men5ac
-men4de
-4mene
-men4i
-mens4
-mensu5
-3ment
-men4te
-me5on
-m5ersa
-2mes
-3mesti
-me4ta
-met3al
-me1te
-me5thi
-m4etr
-5metric
-me5trie
-me3try
-me4v
-4m1f
-2mh
-5mi.
-mi3a
-mid4a
-mid4g
-mig4
-3milia
-m5i5lie
-m4ill
-min4a
-3mind
-m5inee
-m4ingl
-min5gli
-m5ingly
-min4t
-m4inu
-miot4
-m2is
-mis4er.
-mis5l
-mis4ti
-m5istry
-4mith
-m2iz
-4mk
-4m1l
-m1m
-mma5ry
-4m1n
-mn4a
-m4nin
-mn4o
-1mo
-4mocr
-5mocratiz
-mo2d1
-mo4go
-mois2
-moi5se
-4mok
-mo5lest
-mo3me
-mon5et
-mon5ge
-moni3a
-mon4ism
-mon4ist
-mo3niz
-monol4
-mo3ny.
-mo2r
-4mora.
-mos2
-mo5sey
-mo3sp
-moth3
-m5ouf
-3mous
-mo2v
-4m1p
-mpara5
-mpa5rab
-mpar5i
-m3pet
-mphas4
-m2pi
-mpi4a
-mp5ies
-m4p1in
-m5pir
-mp5is
-mpo3ri
-mpos5ite
-m4pous
-mpov5
-mp4tr
-m2py
-4m3r
-4m1s2
-m4sh
-m5si
-4mt
-1mu
-mula5r4
-5mult
-multi3
-3mum
-mun2
-4mup
-mu4u
-4mw
-1na
-2n1a2b
-n4abu
-4nac.
-na4ca
-n5act
-nag5er.
-nak4
-na4li
-na5lia
-4nalt
-na5mit
-n2an
-nanci4
-nan4it
-nank4
-nar3c
-4nare
-nar3i
-nar4l
-n5arm
-n4as
-nas4c
-nas5ti
-n2at
-na3tal
-nato5miz
-n2au
-nau3se
-3naut
-nav4e
-4n1b4
-ncar5
-n4ces.
-n3cha
-n5cheo
-n5chil
-n3chis
-nc1in
-nc4it
-ncour5a
-n1cr
-n1cu
-n4dai
-n5dan
-n1de
-nd5est.
-ndi4b
-n5d2if
-n1dit
-n3diz
-n5duc
-ndu4r
-nd2we
-2ne.
-n3ear
-ne2b
-neb3u
-ne2c
-5neck
-2ned
-ne4gat
-neg5ativ
-5nege
-ne4la
-nel5iz
-ne5mi
-ne4mo
-1nen
-4nene
-3neo
-ne4po
-ne2q
-n1er
-nera5b
-n4erar
-n2ere
-n4er5i
-ner4r
-1nes
-2nes.
-4nesp
-2nest
-4nesw
-3netic
-ne4v
-n5eve
-ne4w
-n3f
-n4gab
-n3gel
-nge4n4e
-n5gere
-n3geri
-ng5ha
-n3gib
-ng1in
-n5git
-n4gla
-ngov4
-ng5sh
-n1gu
-n4gum
-n2gy
-4n1h4
-nha4
-nhab3
-nhe4
-3n4ia
-ni3an
-ni4ap
-ni3ba
-ni4bl
-ni4d
-ni5di
-ni4er
-ni2fi
-ni5ficat
-n5igr
-nik4
-n1im
-ni3miz
-n1in
-5nine.
-nin4g
-ni4o
-5nis.
-nis4ta
-n2it
-n4ith
-3nitio
-n3itor
-ni3tr
-n1j
-4nk2
-n5kero
-n3ket
-nk3in
-n1kl
-4n1l
-n5m
-nme4
-nmet4
-4n1n2
-nne4
-nni3al
-nni4v
-nob4l
-no3ble
-n5ocl
-4n3o2d
-3noe
-4nog
-noge4
-nois5i
-no5l4i
-5nologis
-3nomic
-n5o5miz
-no4mo
-no3my
-no4n
-non4ag
-non5i
-n5oniz
-4nop
-5nop5o5li
-nor5ab
-no4rary
-4nosc
-nos4e
-nos5t
-no5ta
-1nou
-3noun
-nov3el3
-nowl3
-n1p4
-npi4
-npre4c
-n1q
-n1r
-nru4
-2n1s2
-ns5ab
-nsati4
-ns4c
-n2se
-n4s3es
-nsid1
-nsig4
-n2sl
-ns3m
-n4soc
-ns4pe
-n5spi
-nsta5bl
-n1t
-nta4b
-nter3s
-nt2i
-n5tib
-nti4er
-nti2f
-n3tine
-n4t3ing
-nti4p
-ntrol5li
-nt4s
-ntu3me
-nu1a
-nu4d
-nu5en
-nuf4fe
-n3uin
-3nu3it
-n4um
-nu1me
-n5umi
-3nu4n
-n3uo
-nu3tr
-n1v2
-n1w4
-nym4
-nyp4
-4nz
-n3za
-4oa
-oad3
-o5a5les
-oard3
-oas4e
-oast5e
-oat5i
-ob3a3b
-o5bar
-obe4l
-o1bi
-o2bin
-ob5ing
-o3br
-ob3ul
-o1ce
-och4
-o3chet
-ocif3
-o4cil
-o4clam
-o4cod
-oc3rac
-oc5ratiz
-ocre3
-5ocrit
-octor5a
-oc3ula
-o5cure
-od5ded
-od3ic
-odi3o
-o2do4
-odor3
-od5uct.
-od5ucts
-o4el
-o5eng
-o3er
-oe4ta
-o3ev
-o2fi
-of5ite
-ofit4t
-o2g5a5r
-og5ativ
-o4gato
-o1ge
-o5gene
-o5geo
-o4ger
-o3gie
-1o1gis
-og3it
-o4gl
-o5g2ly
-3ogniz
-o4gro
-ogu5i
-1ogy
-2ogyn
-o1h2
-ohab5
-oi2
-oic3es
-oi3der
-oiff4
-oig4
-oi5let
-o3ing
-oint5er
-o5ism
-oi5son
-oist5en
-oi3ter
-o5j
-2ok
-o3ken
-ok5ie
-o1la
-o4lan
-olass4
-ol2d
-old1e
-ol3er
-o3lesc
-o3let
-ol4fi
-ol2i
-o3lia
-o3lice
-ol5id.
-o3li4f
-o5lil
-ol3ing
-o5lio
-o5lis.
-ol3ish
-o5lite
-o5litio
-o5liv
-olli4e
-ol5ogiz
-olo4r
-ol5pl
-ol2t
-ol3ub
-ol3ume
-ol3un
-o5lus
-ol2v
-o2ly
-om5ah
-oma5l
-om5atiz
-om2be
-om4bl
-o2me
-om3ena
-om5erse
-o4met
-om5etry
-o3mia
-om3ic.
-om3ica
-o5mid
-om1in
-o5mini
-5ommend
-omo4ge
-o4mon
-om3pi
-ompro5
-o2n
-on1a
-on4ac
-o3nan
-on1c
-3oncil
-2ond
-on5do
-o3nen
-on5est
-on4gu
-on1ic
-o3nio
-on1is
-o5niu
-on3key
-on4odi
-on3omy
-on3s
-onspi4
-onspir5a
-onsu4
-onten4
-on3t4i
-ontif5
-on5um
-onva5
-oo2
-ood5e
-ood5i
-oo4k
-oop3i
-o3ord
-oost5
-o2pa
-ope5d
-op1er
-3opera
-4operag
-2oph
-o5phan
-o5pher
-op3ing
-o3pit
-o5pon
-o4posi
-o1pr
-op1u
-opy5
-o1q
-o1ra
-o5ra.
-o4r3ag
-or5aliz
-or5ange
-ore5a
-o5real
-or3ei
-ore5sh
-or5est.
-orew4
-or4gu
-4o5ria
-or3ica
-o5ril
-or1in
-o1rio
-or3ity
-o3riu
-or2mi
-orn2e
-o5rof
-or3oug
-or5pe
-3orrh
-or4se
-ors5en
-orst4
-or3thi
-or3thy
-or4ty
-o5rum
-o1ry
-os3al
-os2c
-os4ce
-o3scop
-4oscopi
-o5scr
-os4i4e
-os5itiv
-os3ito
-os3ity
-osi4u
-os4l
-o2so
-os4pa
-os4po
-os2ta
-o5stati
-os5til
-os5tit
-o4tan
-otele4g
-ot3er.
-ot5ers
-o4tes
-4oth
-oth5esi
-oth3i4
-ot3ic.
-ot5ica
-o3tice
-o3tif
-o3tis
-oto5s
-ou2
-ou3bl
-ouch5i
-ou5et
-ou4l
-ounc5er
-oun2d
-ou5v
-ov4en
-over4ne
-over3s
-ov4ert
-o3vis
-oviti4
-o5v4ol
-ow3der
-ow3el
-ow5est
-ow1i
-own5i
-o4wo
-oy1a
-1pa
-pa4ca
-pa4ce
-pac4t
-p4ad
-5pagan
-p3agat
-p4ai
-pain4
-p4al
-pan4a
-pan3el
-pan4ty
-pa3ny
-pa1p
-pa4pu
-para5bl
-par5age
-par5di
-3pare
-par5el
-p4a4ri
-par4is
-pa2te
-pa5ter
-5pathic
-pa5thy
-pa4tric
-pav4
-3pay
-4p1b
-pd4
-4pe.
-3pe4a
-pear4l
-pe2c
-2p2ed
-3pede
-3pedi
-pedia4
-ped4ic
-p4ee
-pee4d
-pek4
-pe4la
-peli4e
-pe4nan
-p4enc
-pen4th
-pe5on
-p4era.
-pera5bl
-p4erag
-p4eri
-peri5st
-per4mal
-perme5
-p4ern
-per3o
-per3ti
-pe5ru
-per1v
-pe2t
-pe5ten
-pe5tiz
-4pf
-4pg
-4ph.
-phar5i
-phe3no
-ph4er
-ph4es.
-ph1ic
-5phie
-ph5ing
-5phisti
-3phiz
-ph2l
-3phob
-3phone
-5phoni
-pho4r
-4phs
-ph3t
-5phu
-1phy
-pi3a
-pian4
-pi4cie
-pi4cy
-p4id
-p5ida
-pi3de
-5pidi
-3piec
-pi3en
-pi4grap
-pi3lo
-pi2n
-p4in.
-pind4
-p4ino
-3pi1o
-pion4
-p3ith
-pi5tha
-pi2tu
-2p3k2
-1p2l2
-3plan
-plas5t
-pli3a
-pli5er
-4plig
-pli4n
-ploi4
-plu4m
-plum4b
-4p1m
-2p3n
-po4c
-5pod.
-po5em
-po3et5
-5po4g
-poin2
-5point
-poly5t
-po4ni
-po4p
-1p4or
-po4ry
-1pos
-pos1s
-p4ot
-po4ta
-5poun
-4p1p
-ppa5ra
-p2pe
-p4ped
-p5pel
-p3pen
-p3per
-p3pet
-ppo5site
-pr2
-pray4e
-5preci
-pre5co
-pre3em
-pref5ac
-pre4la
-pre3r
-p3rese
-3press
-pre5ten
-pre3v
-5pri4e
-prin4t3
-pri4s
-pris3o
-p3roca
-prof5it
-pro3l
-pros3e
-pro1t
-2p1s2
-p2se
-ps4h
-p4sib
-2p1t
-pt5a4b
-p2te
-p2th
-pti3m
-ptu4r
-p4tw
-pub3
-pue4
-puf4
-pul3c
-pu4m
-pu2n
-pur4r
-5pus
-pu2t
-5pute
-put3er
-pu3tr
-put4ted
-put4tin
-p3w
-qu2
-qua5v
-2que.
-3quer
-3quet
-2rab
-ra3bi
-rach4e
-r5acl
-raf5fi
-raf4t
-r2ai
-ra4lo
-ram3et
-r2ami
-rane5o
-ran4ge
-r4ani
-ra5no
-rap3er
-3raphy
-rar5c
-rare4
-rar5ef
-4raril
-r2as
-ration4
-rau4t
-ra5vai
-rav3el
-ra5zie
-r1b
-r4bab
-r4bag
-rbi2
-rbi4f
-r2bin
-r5bine
-rb5ing.
-rb4o
-r1c
-r2ce
-rcen4
-r3cha
-rch4er
-r4ci4b
-rc4it
-rcum3
-r4dal
-rd2i
-rdi4a
-rdi4er
-rdin4
-rd3ing
-2re.
-re1al
-re3an
-re5arr
-5reav
-re4aw
-r5ebrat
-rec5oll
-rec5ompe
-re4cre
-2r2ed
-re1de
-re3dis
-red5it
-re4fac
-re2fe
-re5fer.
-re3fi
-re4fy
-reg3is
-re5it
-re1li
-re5lu
-r4en4ta
-ren4te
-re1o
-re5pin
-re4posi
-re1pu
-r1er4
-r4eri
-rero4
-re5ru
-r4es.
-re4spi
-ress5ib
-res2t
-re5stal
-re3str
-re4ter
-re4ti4z
-re3tri
-reu2
-re5uti
-rev2
-re4val
-rev3el
-r5ev5er.
-re5vers
-re5vert
-re5vil
-rev5olu
-re4wh
-r1f
-rfu4
-r4fy
-rg2
-rg3er
-r3get
-r3gic
-rgi4n
-rg3ing
-r5gis
-r5git
-r1gl
-rgo4n
-r3gu
-rh4
-4rh.
-4rhal
-ri3a
-ria4b
-ri4ag
-r4ib
-rib3a
-ric5as
-r4ice
-4rici
-5ricid
-ri4cie
-r4ico
-rid5er
-ri3enc
-ri3ent
-ri1er
-ri5et
-rig5an
-5rigi
-ril3iz
-5riman
-rim5i
-3rimo
-rim4pe
-r2ina
-5rina.
-rin4d
-rin4e
-rin4g
-ri1o
-5riph
-riph5e
-ri2pl
-rip5lic
-r4iq
-r2is
-r4is.
-ris4c
-r3ish
-ris4p
-ri3ta3b
-r5ited.
-rit5er.
-rit5ers
-rit3ic
-ri2tu
-rit5ur
-riv5el
-riv3et
-riv3i
-r3j
-r3ket
-rk4le
-rk4lin
-r1l
-rle4
-r2led
-r4lig
-r4lis
-rl5ish
-r3lo4
-r1m
-rma5c
-r2me
-r3men
-rm5ers
-rm3ing
-r4ming.
-r4mio
-r3mit
-r4my
-r4nar
-r3nel
-r4ner
-r5net
-r3ney
-r5nic
-r1nis4
-r3nit
-r3niv
-rno4
-r4nou
-r3nu
-rob3l
-r2oc
-ro3cr
-ro4e
-ro1fe
-ro5fil
-rok2
-ro5ker
-5role.
-rom5ete
-rom4i
-rom4p
-ron4al
-ron4e
-ro5n4is
-ron4ta
-1room
-5root
-ro3pel
-rop3ic
-ror3i
-ro5ro
-ros5per
-ros4s
-ro4the
-ro4ty
-ro4va
-rov5el
-rox5
-r1p
-r4pea
-r5pent
-rp5er.
-r3pet
-rp4h4
-rp3ing
-r3po
-r1r4
-rre4c
-rre4f
-r4reo
-rre4st
-rri4o
-rri4v
-rron4
-rros4
-rrys4
-4rs2
-r1sa
-rsa5ti
-rs4c
-r2se
-r3sec
-rse4cr
-rs5er.
-rs3es
-rse5v2
-r1sh
-r5sha
-r1si
-r4si4b
-rson3
-r1sp
-r5sw
-rtach4
-r4tag
-r3teb
-rten4d
-rte5o
-r1ti
-rt5ib
-rti4d
-r4tier
-r3tig
-rtil3i
-rtil4l
-r4tily
-r4tist
-r4tiv
-r3tri
-rtroph4
-rt4sh
-ru3a
-ru3e4l
-ru3en
-ru4gl
-ru3in
-rum3pl
-ru2n
-runk5
-run4ty
-r5usc
-ruti5n
-rv4e
-rvel4i
-r3ven
-rv5er.
-r5vest
-r3vey
-r3vic
-rvi4v
-r3vo
-r1w
-ry4c
-5rynge
-ry3t
-sa2
-2s1ab
-5sack
-sac3ri
-s3act
-5sai
-salar4
-sal4m
-sa5lo
-sal4t
-3sanc
-san4de
-s1ap
-sa5ta
-5sa3tio
-sat3u
-sau4
-sa5vor
-5saw
-4s5b
-scan4t5
-sca4p
-scav5
-s4ced
-4scei
-s4ces
-sch2
-s4cho
-3s4cie
-5scin4d
-scle5
-s4cli
-scof4
-4scopy
-scour5a
-s1cu
-4s5d
-4se.
-se4a
-seas4
-sea5w
-se2c3o
-3sect
-4s4ed
-se4d4e
-s5edl
-se2g
-seg3r
-5sei
-se1le
-5self
-5selv
-4seme
-se4mol
-sen5at
-4senc
-sen4d
-s5ened
-sen5g
-s5enin
-4sentd
-4sentl
-sep3a3
-4s1er.
-s4erl
-ser4o
-4servo
-s1e4s
-se5sh
-ses5t
-5se5um
-5sev
-sev3en
-sew4i
-5sex
-4s3f
-2s3g
-s2h
-2sh.
-sh1er
-5shev
-sh1in
-sh3io
-3ship
-shiv5
-sho4
-sh5old
-shon3
-shor4
-short5
-4shw
-si1b
-s5icc
-3side.
-5sides
-5sidi
-si5diz
-4signa
-sil4e
-4sily
-2s1in
-s2ina
-5sine.
-s3ing
-1sio
-5sion
-sion5a
-si2r
-sir5a
-1sis
-3sitio
-5siu
-1siv
-5siz
-sk2
-4ske
-s3ket
-sk5ine
-sk5ing
-s1l2
-s3lat
-s2le
-slith5
-2s1m
-s3ma
-small3
-sman3
-smel4
-s5men
-5smith
-smol5d4
-s1n4
-1so
-so4ce
-soft3
-so4lab
-sol3d2
-so3lic
-5solv
-3som
-3s4on.
-sona4
-son4g
-s4op
-5sophic
-s5ophiz
-s5ophy
-sor5c
-sor5d
-4sov
-so5vi
-2spa
-5spai
-spa4n
-spen4d
-2s5peo
-2sper
-s2phe
-3spher
-spho5
-spil4
-sp5ing
-4spio
-s4ply
-s4pon
-spor4
-4spot
-squal4l
-s1r
-2ss
-s1sa
-ssas3
-s2s5c
-s3sel
-s5seng
-s4ses.
-s5set
-s1si
-s4sie
-ssi4er
-ss5ily
-s4sl
-ss4li
-s4sn
-sspend4
-ss2t
-ssur5a
-ss5w
-2st.
-s2tag
-s2tal
-stam4i
-5stand
-s4ta4p
-5stat.
-s4ted
-stern5i
-s5tero
-ste2w
-stew5a
-s3the
-st2i
-s4ti.
-s5tia
-s1tic
-5stick
-s4tie
-s3tif
-st3ing
-5stir
-s1tle
-5stock
-stom3a
-5stone
-s4top
-3store
-st4r
-s4trad
-5stratu
-s4tray
-s4trid
-4stry
-4st3w
-s2ty
-1su
-su1al
-su4b3
-su2g3
-su5is
-suit3
-s4ul
-su2m
-sum3i
-su2n
-su2r
-4sv
-sw2
-4swo
-s4y
-4syc
-3syl
-syn5o
-sy5rin
-1ta
-3ta.
-2tab
-ta5bles
-5taboliz
-4taci
-ta5do
-4taf4
-tai5lo
-ta2l
-ta5la
-tal5en
-tal3i
-4talk
-tal4lis
-ta5log
-ta5mo
-tan4de
-tanta3
-ta5per
-ta5pl
-tar4a
-4tarc
-4tare
-ta3riz
-tas4e
-ta5sy
-4tatic
-ta4tur
-taun4
-tav4
-2taw
-tax4is
-2t1b
-4tc
-t4ch
-tch5et
-4t1d
-4te.
-tead4i
-4teat
-tece4
-5tect
-2t1ed
-te5di
-1tee
-teg4
-te5ger
-te5gi
-3tel.
-teli4
-5tels
-te2ma2
-tem3at
-3tenan
-3tenc
-3tend
-4tenes
-1tent
-ten4tag
-1teo
-te4p
-te5pe
-ter3c
-5ter3d
-1teri
-ter5ies
-ter3is
-teri5za
-5ternit
-ter5v
-4tes.
-4tess
-t3ess.
-teth5e
-3teu
-3tex
-4tey
-2t1f
-4t1g
-2th.
-than4
-th2e
-4thea
-th3eas
-the5at
-the3is
-3thet
-th5ic.
-th5ica
-4thil
-5think
-4thl
-th5ode
-5thodic
-4thoo
-thor5it
-tho5riz
-2ths
-1tia
-ti4ab
-ti4ato
-2ti2b
-4tick
-t4ico
-t4ic1u
-5tidi
-3tien
-tif2
-ti5fy
-2tig
-5tigu
-till5in
-1tim
-4timp
-tim5ul
-2t1in
-t2ina
-3tine.
-3tini
-1tio
-ti5oc
-tion5ee
-5tiq
-ti3sa
-3tise
-tis4m
-ti5so
-tis4p
-5tistica
-ti3tl
-ti4u
-1tiv
-tiv4a
-1tiz
-ti3za
-ti3zen
-2tl
-t5la
-tlan4
-3tle.
-3tled
-3tles.
-t5let.
-t5lo
-4t1m
-tme4
-2t1n2
-1to
-to3b
-to5crat
-4todo
-2tof
-to2gr
-to5ic
-to2ma
-tom4b
-to3my
-ton4ali
-to3nat
-4tono
-4tony
-to2ra
-to3rie
-tor5iz
-tos2
-5tour
-4tout
-to3war
-4t1p
-1tra
-tra3b
-tra5ch
-traci4
-trac4it
-trac4te
-tras4
-tra5ven
-trav5es5
-tre5f
-tre4m
-trem5i
-5tria
-tri5ces
-5tricia
-4trics
-2trim
-tri4v
-tro5mi
-tron5i
-4trony
-tro5phe
-tro3sp
-tro3v
-tru5i
-trus4
-4t1s2
-t4sc
-tsh4
-t4sw
-4t3t2
-t4tes
-t5to
-ttu4
-1tu
-tu1a
-tu3ar
-tu4bi
-tud2
-4tue
-4tuf4
-5tu3i
-3tum
-tu4nis
-2t3up.
-3ture
-5turi
-tur3is
-tur5o
-tu5ry
-3tus
-4tv
-tw4
-4t1wa
-twis4
-4two
-1ty
-4tya
-2tyl
-type3
-ty5ph
-4tz
-tz4e
-4uab
-uac4
-ua5na
-uan4i
-uar5ant
-uar2d
-uar3i
-uar3t
-u1at
-uav4
-ub4e
-u4bel
-u3ber
-u4bero
-u1b4i
-u4b5ing
-u3ble.
-u3ca
-uci4b
-uc4it
-ucle3
-u3cr
-u3cu
-u4cy
-ud5d
-ud3er
-ud5est
-udev4
-u1dic
-ud3ied
-ud3ies
-ud5is
-u5dit
-u4don
-ud4si
-u4du
-u4ene
-uens4
-uen4te
-uer4il
-3ufa
-u3fl
-ugh3en
-ug5in
-2ui2
-uil5iz
-ui4n
-u1ing
-uir4m
-uita4
-uiv3
-uiv4er.
-u5j
-4uk
-u1la
-ula5b
-u5lati
-ulch4
-5ulche
-ul3der
-ul4e
-u1len
-ul4gi
-ul2i
-u5lia
-ul3ing
-ul5ish
-ul4lar
-ul4li4b
-ul4lis
-4ul3m
-u1l4o
-4uls
-uls5es
-ul1ti
-ultra3
-4ultu
-u3lu
-ul5ul
-ul5v
-um5ab
-um4bi
-um4bly
-u1mi
-u4m3ing
-umor5o
-um2p
-unat4
-u2ne
-un4er
-u1ni
-un4im
-u2nin
-un5ish
-uni3v
-un3s4
-un4sw
-unt3ab
-un4ter.
-un4tes
-unu4
-un5y
-un5z
-u4ors
-u5os
-u1ou
-u1pe
-uper5s
-u5pia
-up3ing
-u3pl
-up3p
-upport5
-upt5ib
-uptu4
-u1ra
-4ura.
-u4rag
-u4ras
-ur4be
-urc4
-ur1d
-ure5at
-ur4fer
-ur4fr
-u3rif
-uri4fic
-ur1in
-u3rio
-u1rit
-ur3iz
-ur2l
-url5ing.
-ur4no
-uros4
-ur4pe
-ur4pi
-urs5er
-ur5tes
-ur3the
-urti4
-ur4tie
-u3ru
-2us
-u5sad
-u5san
-us4ap
-usc2
-us3ci
-use5a
-u5sia
-u3sic
-us4lin
-us1p
-us5sl
-us5tere
-us1tr
-u2su
-usur4
-uta4b
-u3tat
-4ute.
-4utel
-4uten
-uten4i
-4u1t2i
-uti5liz
-u3tine
-ut3ing
-ution5a
-u4tis
-5u5tiz
-u4t1l
-ut5of
-uto5g
-uto5matic
-u5ton
-u4tou
-uts4
-u3u
-uu4m
-u1v2
-uxu3
-uz4e
-1va
-5va.
-2v1a4b
-vac5il
-vac3u
-vag4
-va4ge
-va5lie
-val5o
-val1u
-va5mo
-va5niz
-va5pi
-var5ied
-3vat
-4ve.
-4ved
-veg3
-v3el.
-vel3li
-ve4lo
-v4ely
-ven3om
-v5enue
-v4erd
-5vere.
-v4erel
-v3eren
-ver5enc
-v4eres
-ver3ie
-vermi4n
-3verse
-ver3th
-v4e2s
-4ves.
-ves4te
-ve4te
-vet3er
-ve4ty
-vi5ali
-5vian
-5vide.
-5vided
-4v3iden
-5vides
-5vidi
-v3if
-vi5gn
-vik4
-2vil
-5vilit
-v3i3liz
-v1in
-4vi4na
-v2inc
-vin5d
-4ving
-vio3l
-v3io4r
-vi1ou
-vi4p
-vi5ro
-vis3it
-vi3so
-vi3su
-4viti
-vit3r
-4vity
-3viv
-5vo.
-voi4
-3vok
-vo4la
-v5ole
-5volt
-3volv
-vom5i
-vor5ab
-vori4
-vo4ry
-vo4ta
-4votee
-4vv4
-v4y
-w5abl
-2wac
-wa5ger
-wag5o
-wait5
-w5al.
-wam4
-war4t
-was4t
-wa1te
-wa5ver
-w1b
-wea5rie
-weath3
-wed4n
-weet3
-wee5v
-wel4l
-w1er
-west3
-w3ev
-whi4
-wi2
-wil2
-will5in
-win4de
-win4g
-wir4
-3wise
-with3
-wiz5
-w4k
-wl4es
-wl3in
-w4no
-1wo2
-wom1
-wo5ven
-w5p
-wra4
-wri4
-writa4
-w3sh
-ws4l
-ws4pe
-w5s4t
-4wt
-wy4
-x1a
-xac5e
-x4ago
-xam3
-x4ap
-xas5
-x3c2
-x1e
-xe4cuto
-x2ed
-xer4i
-xe5ro
-x1h
-xhi2
-xhil5
-xhu4
-x3i
-xi5a
-xi5c
-xi5di
-x4ime
-xi5miz
-x3o
-x4ob
-x3p
-xpan4d
-xpecto5
-xpe3d
-x1t2
-x3ti
-x1u
-xu3a
-xx4
-y5ac
-3yar4
-y5at
-y1b
-y1c
-y2ce
-yc5er
-y3ch
-ych4e
-ycom4
-ycot4
-y1d
-y5ee
-y1er
-y4erf
-yes4
-ye4t
-y5gi
-4y3h
-y1i
-y3la
-ylla5bl
-y3lo
-y5lu
-ymbol5
-yme4
-ympa3
-yn3chr
-yn5d
-yn5g
-yn5ic
-5ynx
-y1o4
-yo5d
-y4o5g
-yom4
-yo5net
-y4ons
-y4os
-y4ped
-yper5
-yp3i
-y3po
-y4poc
-yp2ta
-y5pu
-yra5m
-yr5ia
-y3ro
-yr4r
-ys4c
-y3s2e
-ys3ica
-ys3io
-3ysis
-y4so
-yss4
-ys1t
-ys3ta
-ysur4
-y3thin
-yt3ic
-y1w
-za1
-z5a2b
-zar2
-4zb
-2ze
-ze4n
-ze4p
-z1er
-ze3ro
-zet4
-2z1i
-z4il
-z4is
-5zl
-4zm
-1zo
-zo4m
-zo5ol
-zte4
-4z1z2
-z4zy
-Á1Á
-Á1Å
-Á1É
-Á1Ï
-Á1Õ
-Á1Ù
-Á1Ü
-Á1À
-Á1Ñ
-Å1Á
-Å1Å
-Å1É
-Å1Ï
-Å1Õ
-Å1Ù
-Å1Ü
-Å1À
-Å1Ñ
-É1Á
-É1Å
-É1É
-É1Ï
-É1Õ
-É1Ù
-É1Ü
-É1À
-É1Ñ
-Ï1Á
-Ï1Å
-Ï1É
-Ï1Ï
-Ï1Õ
-Ï1Ù
-Ï1Ü
-Ï1À
-Ï1Ñ
-Õ1Á
-Õ1Å
-Õ1É
-Õ1Ï
-Õ1Õ
-Õ1Ù
-Õ1Ü
-Õ1À
-Õ1Ñ
-Ù1Á
-Ù1Å
-Ù1É
-Ù1Ï
-Ù1Õ
-Ù1Ù
-Ù1Ü
-Ù1À
-Ù1Ñ
-Ü1Á
-Ü1Å
-Ü1É
-Ü1Ï
-Ü1Õ
-Ü1Ù
-Ü1Ü
-Ü1À
-Ü1Ñ
-À1Á
-À1Å
-À1É
-À1Ï
-À1Õ
-À1Ù
-À1Ü
-À1À
-À1Ñ
-Ñ1Á
-Ñ1Å
-Ñ1É
-Ñ1Ï
-Ñ1Õ
-Ñ1Ù
-Ñ1Ü
-Ñ1À
-Ñ1Ñ
-.ÂÄ2
-.ÂÌ2
-.ÂÒ2
-.ÂØ2
-.×Â2
-.×ÂÌ2
-.×ÂÒ2
-.××2
-.××Ò2
-.×ÇÌ2
-.×Ä2
-.×Ä×2
-.×ÄÒ2
-.×Ú2
-.×ÚÂ2
-.×Ú×2
-.×ÚÇ2
-.×ÚÇÌ2
-.×ÚÇÒ2
-.×ÚÄ2
-.×ÚÄÒ2
-.×ÚÌ2
-.×ÚÍ2
-.×ÚÒ2
-.×Úß2
-.×Ë2
-.×ËÌ2
-.×ËÒ2
-.×Ì2
-.×Í2
-.×Î2
-.×Ð2
-.×ÐÌ2
-.×ÐÒ2
-.×Ò2
-.×Ó2
-.×ÓË2
-.×ÓËÒ2
-.×ÓÌ2
-.×ÓÍ2
-.×ÓÐ2
-.×ÓÐÌ2
-.×ÓÐÒ2
-.×ÓÔ2
-.×ÓÔÒ2
-.×ÓÈ2
-.×ÓÈÌ2
-.×Ô2
-.×ÔÒ2
-.×È2
-.×Ã2
-.×Þ2
-.×Ø2
-.Ç×2
-.ÇÄ2
-.ÇÌ2
-.ÇÎ2
-.ÇÒ2
-.Ä×2
-.ÄÌ2
-.ÄÎ2
-.ÄÒ2
-.ÄØ2
-.Ö×2
-.ÖÇ2
-.ÖÇÌ2
-.ÖÄ2
-.ÖÖ2
-.ÖÒ2
-.Ú×2
-.ÚÄ2
-.ÚÄÒ2
-.ÚÌ2
-.ÚÍ2
-.ÚÎ2
-.ÚÒ2
-.Ë×2
-.ËÌ2
-.ËÎ2
-.ËÒ2
-.ËÓÔ2
-.ËÔ2
-.ÌÂ2
-.ÌÇ2
-.ÌÖ2
-.ÌØ2
-.ÌØ×2
-.ÍÇÌ2
-.ÍÇÎ2
-.ÍÌ2
-.ÍÎ2
-.ÍÒ2
-.ÍÓÔ2
-.ÍÈ2
-.ÍÞ2
-.ÍÝ2
-.ÎÒ2
-.ÐÌ2
-.ÐÎ2
-.ÐÒ2
-.ÐÓ2
-.ÐÔ2
-.ÐÈ2
-.ÐÞ2
-.ÐÛ2
-.ÐØ2
-.Ò×2
-.ÒÖ2
-.ÒÔ2
-.ÓÂ2
-.ÓÂÌ2
-.ÓÂÒ2
-.Ó×2
-.Ó×ÓÔ2
-.ÓÇ2
-.ÓÇÎ2
-.ÓÇÒ2
-.ÓÄ2
-.ÓÄ×2
-.ÓÄÒ2
-.ÓÖ2
-.ÓÚ2
-.ÓË2
-.ÓË×2
-.ÓËÌ2
-.ÓËÒ2
-.ÓÌ2
-.ÓÍ2
-.ÓÎ2
-.ÓÐ2
-.ÓÐÌ2
-.ÓÐÒ2
-.ÓÒ2
-.ÓÓ2
-.ÓÔ2
-.ÓÔ×2
-.ÓÔÌ2
-.ÓÔÒ2
-.ÓÆ2
-.ÓÈ2
-.ÓÈ×2
-.ÓÈÌ2
-.ÓÞ2
-.ÓÛ2
-.Óß2
-.Ô×2
-.ÔË2
-.ÔËÎ2
-.ÔÌ2
-.ÔÒ2
-.ÔÝ2
-.ÔØÍ2
-.ÔØÆ2
-.ÆÌ2
-.ÆÒ2
-.È×2
-.ÈÌ2
-.ÈÍ2
-.ÈÎ2
-.ÈÒ2
-.Ã×2
-.ÞÌ2
-.ÞÒ2
-.ÞÔ2
-.ÞØ2
-.Û×2
-.ÛË2
-.ÛË×2
-.ÛÌ2
-.ÛÎ2
-.ÛÐ2
-.ÛÒ2
-.ÛÔ2
-.ÛÔÒ2
-1ÂÁ
-1ÂÅ
-1ÂÉ
-1ÂÏ
-1ÂÕ
-1ÂÙ
-1ÂÑ
-1×Á
-1×Å
-1×É
-1×Ï
-1×Õ
-1×Ù
-1×Ñ
-1ÇÁ
-1ÇÅ
-1ÇÉ
-1ÇÏ
-1ÇÕ
-1ÄÁ
-1ÄÅ
-1ÄÉ
-1ÄÏ
-1ÄÕ
-1ÄÙ
-1ÄÀ
-1ÄÑ
-1ÖÁ
-1ÖÅ
-1ÖÉ
-1ÖÏ
-1ÖÕ
-1ÖÙ
-1ÚÁ
-1ÚÅ
-1ÚÉ
-1ÚÏ
-1ÚÕ
-1ÚÙ
-1ÚÑ
-1ËÁ
-1ËÅ
-1ËÉ
-1ËÏ
-1ËÕ
-1ÌÁ
-1ÌÅ
-1ÌÉ
-1ÌÏ
-1ÌÕ
-1ÌÙ
-1ÌÀ
-1ÌÑ
-1ÍÁ
-1ÍÅ
-1ÍÉ
-1ÍÏ
-1ÍÕ
-1ÍÙ
-1ÍÑ
-1ÎÁ
-1ÎÅ
-1ÎÉ
-1ÎÏ
-1ÎÕ
-1ÎÙ
-1ÎÀ
-1ÎÑ
-1ÐÁ
-1ÐÅ
-1ÐÉ
-1ÐÏ
-1ÐÕ
-1ÐÙ
-1ÐÑ
-1ÒÁ
-1ÒÅ
-1ÒÉ
-1ÒÏ
-1ÒÕ
-1ÒÙ
-1ÒÀ
-1ÒÑ
-1ÓÁ
-1ÓÅ
-1ÓÉ
-1ÓÏ
-1ÓÕ
-1ÓÙ
-1ÓÑ
-1ÔÁ
-1ÔÅ
-1ÔÉ
-1ÔÏ
-1ÔÕ
-1ÔÙ
-1ÔÀ
-1ÔÑ
-1ÆÁ
-1ÆÅ
-1ÆÉ
-1ÆÏ
-1ÆÕ
-1ÆÙ
-1ÈÁ
-1ÈÅ
-1ÈÉ
-1ÈÏ
-1ÈÕ
-1ÃÁ
-1ÃÅ
-1ÃÉ
-1ÃÏ
-1ÃÕ
-1ÃÙ
-1ÞÁ
-1ÞÅ
-1ÞÉ
-1ÞÏ
-1ÞÕ
-1ÛÁ
-1ÛÅ
-1ÛÉ
-1ÛÏ
-1ÛÕ
-1ÝÁ
-1ÝÅ
-1ÝÉ
-1ÝÏ
diff --git a/sbin/ifconfig/ifvlan.c b/sbin/ifconfig/ifvlan.c
deleted file mode 100644
index 3843821781c3..000000000000
--- a/sbin/ifconfig/ifvlan.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 1999
- * Bill Paul <wpaul@ctr.columbia.edu>. 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 Bill Paul.
- * 4. Neither the name of the author nor the names of any co-contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY Bill Paul 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 Bill Paul OR THE VOICES IN HIS HEAD
- * 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.
- *
- * $FreeBSD$
- */
-
-#include <sys/param.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <sys/sockio.h>
-#include <sys/mbuf.h>
-
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <net/ethernet.h>
-#include <net/if.h>
-#include <net/if_var.h>
-#include <net/if_vlan_var.h>
-#include <net/route.h>
-
-#include <ctype.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <err.h>
-#include <errno.h>
-
-#include "ifconfig.h"
-
-#ifndef lint
-static const char rcsid[] =
- "$FreeBSD$";
-#endif
-static int __tag = 0;
-static int __have_tag = 0;
-
-void vlan_status(s, info)
- int s;
- struct rt_addrinfo *info __unused;
-{
- struct vlanreq vreq;
-
- bzero((char *)&vreq, sizeof(struct vlanreq));
- ifr.ifr_data = (caddr_t)&vreq;
-
- if (ioctl(s, SIOCGETVLAN, (caddr_t)&ifr) == -1)
- return;
-
- printf("\tvlan: %d parent interface: %s\n",
- vreq.vlr_tag, vreq.vlr_parent[0] == '\0' ?
- "<none>" : vreq.vlr_parent);
-
- return;
-}
-
-void setvlantag(val, d, s, afp)
- const char *val;
- int d, s;
- const struct afswtch *afp;
-{
- u_int16_t tag;
- struct vlanreq vreq;
-
- __tag = tag = atoi(val);
- __have_tag = 1;
-
- bzero((char *)&vreq, sizeof(struct vlanreq));
- ifr.ifr_data = (caddr_t)&vreq;
-
- if (ioctl(s, SIOCGETVLAN, (caddr_t)&ifr) == -1)
- err(1, "SIOCGETVLAN");
-
- vreq.vlr_tag = tag;
-
- if (ioctl(s, SIOCSETVLAN, (caddr_t)&ifr) == -1)
- err(1, "SIOCSETVLAN");
-
- return;
-}
-
-void setvlandev(val, d, s, afp)
- const char *val;
- int d, s;
- const struct afswtch *afp;
-{
- struct vlanreq vreq;
-
- if (!__have_tag)
- errx(1, "must specify both vlan tag and device");
-
- bzero((char *)&vreq, sizeof(struct vlanreq));
- ifr.ifr_data = (caddr_t)&vreq;
-
- if (ioctl(s, SIOCGETVLAN, (caddr_t)&ifr) == -1)
- err(1, "SIOCGETVLAN");
-
- strncpy(vreq.vlr_parent, val, sizeof(vreq.vlr_parent));
- vreq.vlr_tag = __tag;
-
- if (ioctl(s, SIOCSETVLAN, (caddr_t)&ifr) == -1)
- err(1, "SIOCSETVLAN");
-
- return;
-}
-
-void unsetvlandev(val, d, s, afp)
- const char *val;
- int d, s;
- const struct afswtch *afp;
-{
- struct vlanreq vreq;
-
- bzero((char *)&vreq, sizeof(struct vlanreq));
- ifr.ifr_data = (caddr_t)&vreq;
-
- if (ioctl(s, SIOCGETVLAN, (caddr_t)&ifr) == -1)
- err(1, "SIOCGETVLAN");
-
- bzero((char *)&vreq.vlr_parent, sizeof(vreq.vlr_parent));
- vreq.vlr_tag = 0;
-
- if (ioctl(s, SIOCSETVLAN, (caddr_t)&ifr) == -1)
- err(1, "SIOCSETVLAN");
-
- return;
-}
diff --git a/share/examples/diskless/209.157.86.12/README b/share/examples/diskless/209.157.86.12/README
deleted file mode 100644
index 0b52492979f2..000000000000
--- a/share/examples/diskless/209.157.86.12/README
+++ /dev/null
@@ -1,27 +0,0 @@
-
- kernel, rc.local, and xdm-config are typically softlinks. Plus other
- files, of course, depending on how you setup your system.
-
- rc.local and xdm-config might be softlinks into HT.DISKLESS, allowing
- you to ease system administration when managing many diskless
- workstations. You can also play other tricks, such as I play in
- rc.conf.local by having it source ../HT.DISKLESS/rc.conf.local to get
- class-based defaults.
-
- Note: the ttys file below contains an example of how to have X startup
- on boot.
-
-apollo:/conf/209.157.86.12# ls -la
-total 7
-drwxr-xr-x 2 root wheel 512 Feb 9 00:27 .
-drwxr-xr-x 8 root wheel 512 Feb 8 22:48 ..
-lrwxr-xr-x 1 root wheel 20 Feb 8 22:04 fstab -> ../HT.DISKLESS/fstab
-lrwxr-xr-x 1 root wheel 17 Jan 24 23:33 kernel -> /kernel.diskless2
--rw-r--r-- 1 root wheel 133 Feb 8 22:04 rc.conf.local
-lrwxr-xr-x 1 root wheel 23 Jan 25 00:41 rc.local -> ../HT.DISKLESS/rc.local
--rw------- 1 root wheel 539 Jan 17 15:29 ssh_host_key
--rw-r--r-- 1 root wheel 343 Jan 17 15:29 ssh_host_key.pub
-lrwxr-xr-x 1 root wheel 26 Feb 9 00:27 syslog.conf -> ../HT.DISKLESS/syslog.conf
--rw-r--r-- 1 root wheel 1408 Feb 8 19:54 ttys
-lrwxr-xr-x 1 root wheel 25 Jan 25 00:38 xdm-config -> ../HT.DISKLESS/xdm-config
-
diff --git a/share/examples/diskless/209.157.86.12/rc.conf.local b/share/examples/diskless/209.157.86.12/rc.conf.local
deleted file mode 100644
index 181c6723708f..000000000000
--- a/share/examples/diskless/209.157.86.12/rc.conf.local
+++ /dev/null
@@ -1,9 +0,0 @@
-# DISKLESS RC.CONF.LOCAL
-#
-# Override system standard /etc/rc.conf
-
-. /conf/HT.DISKLESS/rc.conf.local
-
-hostname=test2.backplane.com
-start_xdm=NO
-
diff --git a/share/examples/diskless/209.157.86.12/ssh_host_key b/share/examples/diskless/209.157.86.12/ssh_host_key
deleted file mode 100644
index ee90cd252e87..000000000000
--- a/share/examples/diskless/209.157.86.12/ssh_host_key
+++ /dev/null
Binary files differ
diff --git a/share/examples/diskless/209.157.86.12/ssh_host_key.pub b/share/examples/diskless/209.157.86.12/ssh_host_key.pub
deleted file mode 100644
index 7c99d2c0eb3b..000000000000
--- a/share/examples/diskless/209.157.86.12/ssh_host_key.pub
+++ /dev/null
@@ -1 +0,0 @@
-1024 33 131532587310298436102876167134780549224884868848048954510241288010381123823834489593599651234236801895942903979896941799980786675282403650831462626987993609590967535749256449810953893747928248417183421903403076895749793372279190481189373438759742396152779236777836204647146078686957945395785442097357022574693 root@apollo.backplane.com
diff --git a/share/examples/diskless/HT.DISKLESS/fstab b/share/examples/diskless/HT.DISKLESS/fstab
deleted file mode 100644
index f1ee38f2c2bd..000000000000
--- a/share/examples/diskless/HT.DISKLESS/fstab
+++ /dev/null
@@ -1,5 +0,0 @@
-# fstab for diskless machine. Root is already mounted, as is swap.
-#
-209.157.86.2:/usr /usr nfs ro 0 0
-209.157.86.2:/var /var nfs ro 0 0
-proc /proc procfs rw 0 0
diff --git a/share/examples/diskless/HT.DISKLESS/rc.conf.local b/share/examples/diskless/HT.DISKLESS/rc.conf.local
deleted file mode 100644
index 16ddd1d7f18e..000000000000
--- a/share/examples/diskless/HT.DISKLESS/rc.conf.local
+++ /dev/null
@@ -1,34 +0,0 @@
-# DISKLESS RC.CONF.LOCAL
-#
-# Override system standard /etc/rc.conf
-
-ldconfig_paths="$ldconfig_paths /usr/krb5/lib"
-ldconfig_paths_aout="$ldconfig_paths_aout /usr/krb5/lib/aout"
-
-# Must do NFS mounts early
-# Must not attempt to mount root rw
-#
-early_nfs_mounts="YES"
-root_rw_mount="NO"
-
-inetd_enable="NO"
-portmap_enable="NO"
-router_enable="NO"
-cron_enable="NO"
-sendmail_enable="NO"
-
-# Enable additional services
-#
-
-nfs_client_enable="YES"
-lpd_enable="YES"
-ntpdate_enable="YES"
-ntpdate_flags="apollo.backplane.com"
-xntpd_enable="YES"
-
-if [ -f /etc/ipfw.conf ]; then
- firewall_enable="YES"
- firewall_type="/etc/ipfw.conf"
- firewall_quiet="NO"
-fi
-
diff --git a/share/examples/diskless/HT.DISKLESS/rc.local b/share/examples/diskless/HT.DISKLESS/rc.local
deleted file mode 100755
index f473d4152168..000000000000
--- a/share/examples/diskless/HT.DISKLESS/rc.local
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-if [ -f /etc/rc.conf ]; then
- . /etc/rc.conf
-fi
-
-# Firewall helper - if we configure the firewall to let through
-# ports > 4000, we need to configure the machines as such.
-#
-
-sysctl -w net.inet.ip.portrange.first=4000
-
-# Setup spool
-#
-
-cat >> /var/spool/lpd/ljet4.ps << EOF
-#!/bin/sh
-#
-
-gs -q -dSAFER -dNOPAUSE -sDEVICE=ljet4 -r600x600 -dBitsPerPixel=1 \
- -sOutputFile=- -
-EOF
-
-chmod 755 /var/spool/lpd/ljet4.ps
-
-mkdir /var/spool/ljet4
-chown daemon /var/spool/ljet4
-
-# Setup remote source
-#
-
-mount_mfs -s 600000 -T qp120at dummy /src
-mount apollo:/FreeBSD /FreeBSD
-mkdir /src/u3
-mkdir /src/u3/usr.obj
-
-# Copy of ssh_host_key* files to where sshd
-# expects them, assuming you add to /usr/local/etc/sshd_config:
-#
-# HostKey /var/db/ssh_host_key
-#
-# Then restart sshd ( the /usr/local/etc/rc.d script installed by
-# the port probably failed due to the lack of host keys )
-
-if [ -f /conf/ME/ssh_host_key ]; then
- cp /conf/ME/ssh_host_key* /var/db
-else
- (cd /var/db; ssh-keygen -f ssh_host_key -P "")
-fi
-chmod 400 /var/db/ssh_host_key
-chmod 644 /var/db/ssh_host_key.pub
-/usr/local/sbin/sshd
-
-# Copy home directory so you can login
-#
-#
-
-mount_mfs -s 65536 -T qp120at dummy /home
-
-if [ -d /home.diskless ]; then
- cd /home.diskless
- for i in *; do
- if [ -f $i/home.tgz ]; then
- mkdir /home/$i
- chown $i /home/$i
- chmod 700 /home/$i
- (cd /home/$i; tar xzpf /home.diskless/$i/home.tgz)
- homeok=1
- fi
- done
-fi
-
-if [ "${homeok:=0}" = "0" ]; then
- echo "ERROR, NO /home.diskless DIRECTORY TO COPY TO /HOME"
- sleep 10
-fi
-
diff --git a/share/examples/diskless/HT.DISKLESS/syslog.conf b/share/examples/diskless/HT.DISKLESS/syslog.conf
deleted file mode 100644
index a7df1e96deea..000000000000
--- a/share/examples/diskless/HT.DISKLESS/syslog.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-*.err;kern.debug;auth.notice;mail.crit;lpr.info /dev/console
-*.err;kern.debug;auth.notice;mail.crit root
-*.emerg *
diff --git a/share/examples/diskless/HT.DISKLESS/ttys b/share/examples/diskless/HT.DISKLESS/ttys
deleted file mode 100644
index 2c357d4b3b3b..000000000000
--- a/share/examples/diskless/HT.DISKLESS/ttys
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# @(#)ttys 5.1 (Berkeley) 4/17/89
-#
-# name getty type status comments
-#
-# This entry needed for asking password when init goes to single-user mode
-# If you want to be asked for password, change "secure" to "insecure" here
-console none unknown off secure
-#
-ttyv0 "/usr/X11R6/bin/xdm -nodaemon -config /conf/209.157.86.6/xdm-config" cons25 on secure
-# Virtual terminals
-ttyv1 "/usr/libexec/getty Pc" cons25 on secure
-ttyv2 "/usr/libexec/getty Pc" cons25 on secure
-ttyv3 "/usr/libexec/getty Pc" cons25 on secure
-# Serial terminals
-ttyd0 "/usr/libexec/getty std.9600" unknown off secure
-ttyd1 "/usr/libexec/getty std.9600" unknown off secure
-ttyd2 "/usr/libexec/getty std.9600" unknown off secure
-ttyd3 "/usr/libexec/getty std.9600" unknown off secure
-# Pseudo terminals
-ttyp0 none network
-ttyp1 none network
-ttyp2 none network
-ttyp3 none network
-ttyp4 none network
-ttyp5 none network
-ttyp6 none network
-ttyp7 none network
-ttyp8 none network
-ttyp9 none network
-ttypa none network
-ttypb none network
-ttypc none network
-ttypd none network
-ttype none network
-ttypf none network
-ttypg none network
-ttyph none network
-ttypi none network
-ttypj none network
-ttypk none network
-ttypl none network
-ttypm none network
-ttypn none network
-ttypo none network
-ttypp none network
-ttypq none network
-ttypr none network
-ttyps none network
-ttypt none network
-ttypu none network
-ttypv none network
diff --git a/share/examples/diskless/HT.DISKLESS/xdm-config b/share/examples/diskless/HT.DISKLESS/xdm-config
deleted file mode 100644
index 88ad35fbeea7..000000000000
--- a/share/examples/diskless/HT.DISKLESS/xdm-config
+++ /dev/null
@@ -1,15 +0,0 @@
-! $XConsortium: xdm-conf.cpp,v 1.2 93/09/28 14:30:32 gildea Exp $
-DisplayManager.errorLogFile: /var/run/xdm-errors
-DisplayManager.pidFile: /var/run/xdm-pid
-DisplayManager.servers: /usr/X11R6/lib/X11/xdm/Xservers-1
-DisplayManager.keyFile: /usr/X11R6/lib/X11/xdm/xdm-keys
-DisplayManager.servers: /usr/X11R6/lib/X11/xdm/Xservers
-DisplayManager.accessFile: /usr/X11R6/lib/X11/xdm/Xaccess
-DisplayManager._0.authorize: true
-DisplayManager._0.setup: /usr/X11R6/lib/X11/xdm/Xsetup_0
-DisplayManager._0.startup: /usr/X11R6/lib/X11/xdm/GiveConsole
-DisplayManager._0.reset: /usr/X11R6/lib/X11/xdm/TakeConsole
-DisplayManager*resources: /usr/X11R6/lib/X11/xdm/Xresources
-DisplayManager*session: /usr/X11R6/lib/X11/xdm/Xsession
-DisplayManager*authComplain: false
-
diff --git a/share/examples/diskless/HT.STD/aliases b/share/examples/diskless/HT.STD/aliases
deleted file mode 100644
index 5988f793f814..000000000000
--- a/share/examples/diskless/HT.STD/aliases
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# @(#)aliases 5.3 (Berkeley) 5/24/90
-#
-# Aliases in this file will NOT be expanded in the header from
-# Mail, but WILL be visible over networks or from /bin/mail.
-#
-# >>>>>>>>>> The program "newaliases" must be run after
-# >> NOTE >> this file is updated for any changes to
-# >>>>>>>>>> show through to sendmail.
-#
-
-# Basic system aliases -- these MUST be present
-MAILER-DAEMON: postmaster
-postmaster: root
-
-# General redirections for pseudo accounts
-bin: root
-daemon: root
-games: root
-ingres: root
-nobody: root
-system: root
-toor: root
-uucp: root
-usenet: root
-root: root@backplane.com
-
-diablo: dillon
-diablo-bugs: dillon
-
diff --git a/share/examples/diskless/HT.STD/forward.map b/share/examples/diskless/HT.STD/forward.map
deleted file mode 100644
index d4253f8734c6..000000000000
--- a/share/examples/diskless/HT.STD/forward.map
+++ /dev/null
@@ -1,6 +0,0 @@
-# @(#)forward.map 1.1 1/17/95
-#
-# Put addresses to be forwarded here. Example:
-#
-# garyw@mojosoft.com charliex@best.com
-#
diff --git a/share/examples/diskless/HT.STD/ndomain.map b/share/examples/diskless/HT.STD/ndomain.map
deleted file mode 100644
index 63011d08ca91..000000000000
--- a/share/examples/diskless/HT.STD/ndomain.map
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# example:
-# fofs.com markl@shellx.best.com
-#
-# NOTE: FORWARD.MAP can be used to override NDOMAIN.MAP for specific
-# users. NDOMAIN.MAP would then act as a catch-all
-#
-# NOTE: NDOMAIN.MAP only works to two levels. I.E. if you have an
-# entry for fubar.com, then user@fubar.com will work and
-# user@host.fubar.com will work, but NOT user@host.dom.fubar.com
-#
diff --git a/share/examples/diskless/HT.STD/syslog.conf b/share/examples/diskless/HT.STD/syslog.conf
deleted file mode 100644
index cb92c6e6db07..000000000000
--- a/share/examples/diskless/HT.STD/syslog.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-*.err;kern.debug;auth.notice;mail.crit /dev/console
-# *.notice;kern.debug;lpr,auth.info;mail.crit /var/log/messages
-*.debug;kern.debug;lpr,auth.info;mail.crit;news.crit /var/log/messages
-mail.info /var/log/maillog
-news.info /var/log/news
-lpr.info /var/log/lpd-errs
-cron.* /var/log/cron
-#*.err root
-#*.notice;auth.debug root
-#*.alert root
-*.emerg *
diff --git a/share/examples/diskless/HT.STD/ttys b/share/examples/diskless/HT.STD/ttys
deleted file mode 100644
index bcd059bd9091..000000000000
--- a/share/examples/diskless/HT.STD/ttys
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-# @(#)ttys 5.1 (Berkeley) 4/17/89
-#
-# name getty type status comments
-#
-# This entry needed for asking password when init goes to single-user mode
-# If you want to be asked for password, change "secure" to "insecure" here
-console none unknown off secure
-#
-ttyv0 "/usr/libexec/getty Pc" cons25 on secure
-# Virtual terminals
-ttyv1 "/usr/libexec/getty Pc" cons25 on secure
-ttyv2 "/usr/libexec/getty Pc" cons25 on secure
-ttyv3 "/usr/libexec/getty Pc" cons25 on secure
-# Serial terminals
-ttyd0 "/usr/libexec/getty std.9600" unknown off secure
-ttyd1 "/usr/libexec/getty std.9600" unknown off secure
-ttyd2 "/usr/libexec/getty std.9600" unknown off secure
-ttyd3 "/usr/libexec/getty std.9600" unknown off secure
-# Pseudo terminals
-ttyp0 none network
-ttyp1 none network
-ttyp2 none network
-ttyp3 none network
-ttyp4 none network
-ttyp5 none network
-ttyp6 none network
-ttyp7 none network
-ttyp8 none network
-ttyp9 none network
-ttypa none network
-ttypb none network
-ttypc none network
-ttypd none network
-ttype none network
-ttypf none network
-ttypg none network
-ttyph none network
-ttypi none network
-ttypj none network
-ttypk none network
-ttypl none network
-ttypm none network
-ttypn none network
-ttypo none network
-ttypp none network
-ttypq none network
-ttypr none network
-ttyps none network
-ttypt none network
-ttypu none network
-ttypv none network
diff --git a/share/examples/diskless/ME b/share/examples/diskless/ME
deleted file mode 100644
index 85178e088a54..000000000000
--- a/share/examples/diskless/ME
+++ /dev/null
@@ -1,37 +0,0 @@
-
-When templating, /conf/ME is typically a softlink to
-/conf/<appropriate-machine>. When doing a diskless boot, /conf/ME is
-retargeted by /etc/rc.diskless1 from pointing to the server to pointing
-to the client's directory, /conf/<ip-address-of-client>. The retargeting
-is accomplished through an MFS -o union mount.
-
-When templating, this softlink should be different for each machine.
-When doing a diskless boot, this softlink is typically part of the / NFS
-mount from the server and points to the server's conf directory, but gets
-retargeted during the /etc/rc.diskless1 phase.
-
-System-wide configuration files must generally be targeted through /conf/ME.
-For example, your /etc/rc.conf.local should become a softlink to
-/conf/ME/rc.conf.local and your real rc.conf.local should go into the
-appropriate /conf/<appropriate-machine> directory. This is also true of
-/etc/rc.local, /etc/fstab, /etc/syslog.conf, /etc/ccd.conf, /etc/ipfw.conf,
-/etc/motd, /etc/resolv.conf, and possibly even /etc/ttys ( if you want
-to start an X session up on boot on certain of your machines ).
-
-When templating, you duplicate your / and /usr partitions on each machine's
-local disk from a single master ( assuming /var and /home reside elsewhere ),
-EXCEPT for the /conf/ME softlink. The /conf/ME softlink is the only thing
-on / that should be different for each machine.
-
-There are often categories of configuration files. For example, all of your
-shell machines may use one resolv.conf while all of your mail proxies may
-use another. Configuration files can be categorized fairly easily through
-/conf/HT.<category> directories. You put the actual configuration file in
-/conf/HT.<category> and make a softlink from
-/conf/ME/<appropriate-machines>/config-file to "../HT.<category/config-file".
-This means that access to these files tends to run through more then one
-softlink. The advantage is that for all the complexity of your /conf
-directory hierarchy, most of your common config files exist in only one place
-in reality.
-
-
diff --git a/share/examples/diskless/README.BOOTP b/share/examples/diskless/README.BOOTP
deleted file mode 100644
index 0032e80230e7..000000000000
--- a/share/examples/diskless/README.BOOTP
+++ /dev/null
@@ -1,157 +0,0 @@
-
- BOOTP configuration mechanism
-
- Matthew Dillon
- dillon@backplane.com
-
- BOOTP kernels automatically configure the machine's IP address, netmask,
- optional NFS based swap, and NFS based root mount. The NFS server will
- typically export a shared read-only /, /usr, and /var to any number of
- workstations. The shared read-only root is typically either the server's
- own root or, if you are more security concious, a contrived root.
-
- The key issue with starting up a BOOTP kernel is that you typically want
- to export read-only NFS partitions from the server, yet still be able to
- customize each workstation ( or not ).
-
- /etc/rc.diskless1 is responsible for doing core mounts and for retargeting
- /conf/ME ( part of the read-only root NFS mount ) to /conf/$IP_OF_CLIENT.
- /etc/rc.conf.local and /etc/rc.local, along with other machine-specific
- configuration files, are typically softlinks to /conf/ME/<filename>.
-
- In the BOOTP workstation /conf/$IP/rc.conf.local, you must typically
- turn *OFF* most of the system option defaults in /etc/rc.conf as well
- as do additional custom configuration of your environment
-
- The /usr/src/share/examples/diskless directory contains a typical
- X session / sshd based workstation configuration. The directories
- involved are HT.DISKLESS/ and 192.157.86.12/.
-
- Essentially, the $IP/ directory ( which rc.diskless looks for in
- /conf/$IP/ ) contains all the junk. The HT.DISKLESS directory exists
- to hold common elements of your custom configuration so you do not have
- to repeat those elements for each workstation. The example /conf
- structure included here shows how to create a working sshd setup ( so
- you can sshd into the diskless workstation ), retarget xdm's pid and error
- files to R+W directories if /usr is mounted read-only, and retarget
- syslogd and other programs. This example is not designed to run out of
- the box and some modifications are required.
-
- >> NOTE << HT.DISKLESS/ttys contains the typical configuration required
- to bring X up at boot time. Essentially, it runs xdm in the foreground
- with the appropriate arguments rather then a getty on ttyv0. You must
- run xdm on ttyv0 in order to prevent xdm racing with getty on a virtual
- terminal. Such a race can cause your keyboard to be directed away from
- the X session, essentially making the session unusable.
-
- Typically you should start with a clean slate by tar-copying this example
- directory to /conf and then hack on it in /conf rather then in
- /usr/share/examples/diskless.
-
- BOOTP CLIENT SETUP
-
- Here is a typical kernel configuration. If you have only one ethernet
- interface you do not need to wire BOOTP to a specific interface name.
- BOOTP requires NFS and NFS_ROOT, and our boot scripts require MFS. If
- your /tmp is *not* a softlink to /var/tmp, the scripts also require NULLFS
-
-# BootP
-#
-options BOOTP # Use BOOTP to obtain IP address/hostname
-options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info
-options "BOOTP_NFSV3" # Use NFS v3 to NFS mount rootoptions
-options BOOTP_COMPAT # Workaround for broken bootp daemons.
-#options "BOOTP_WIRED_TO=de0"
-
-options MFS # Memory File System
-options NFS # Network Filesystem
-options NFS_ROOT # Nfs can be root
-options NULLFS # nullfs to map /var/tmp to /tmp
-
- BOOTP SERVER SETUP
-
- The BOOTP server must be running on the same logical LAN as the the
- BOOTP client(s). You need to setup two things:
-
- (1) You need to NFS-export /, /usr, and /var.
-
- (2) You need to run a BOOTP server. DHCPD can do this.
-
-
- NFS Export:
-
- Here is an example "/etc/exports" file.
-
-/ -ro -maproot=root: -network 192.157.86.0 -mask 255.255.255.192
-/usr -ro -maproot=root: -network 192.157.86.0 -mask 255.255.255.192
-/var -ro -maproot=root: -network 192.157.86.0 -mask 255.255.255.192
-
- In order to be an NFS server, the server must run portmap, mountd,
- nfsd, and rpc.statd. The standard NFS server options in /etc/rc.conf
- will work ( you should put your overrides in /etc/rc.conf.local on the
- server and not edit the distribution /etc/rc.conf, though ).
-
- BOOTP Server:
-
- This configuration file "/etc/dhcpd.conf" example is for
- the '/usr/ports/net/isc-dhcp' dhcpd port.
-
- subnet 192.157.86.0 netmask 255.255.255.192 {
- # range if you want to run the core dhcpd service of
- # dynamic IP assignment, but it is not used with BOOTP
- # workstations
- range 192.157.86.32 192.157.86.62;
-
- # misc configuration.
- #
- option routers 192.157.86.2;
- option domain-name-servers 192.157.86.2;
-
- server-name "apollo.fubar.com";
- option subnet-mask 255.255.255.192;
- option domain-name-servers 192.157.86.2;
- option domain-name "fubar.com";
- option broadcast-address 192.157.86.63;
- option routers 192.157.86.2;
- }
-
- host test1 {
- hardware ethernet 00:a0:c9:d3:38:25;
- fixed-address 192.157.86.11;
- option root-path "192.157.86.2:/";
- option option-128 "192.157.86.2:/images/swap";
- }
-
- host test2 {
- # hardware ethernet 00:e0:29:1d:16:09;
- hardware ethernet 00:10:5a:a8:94:0e;
- fixed-address 192.157.86.12;
- option root-path "192.157.86.2:/";
- option option-128 "192.157.86.2:/images/swap";
- }
-
- SWAP. This example includes options to automatically BOOTP configure
- NFS swap on each workstation. In order to use this capabilities you
- need to NFS-export a swap directory READ+WRITE to the workstations.
-
- You must then create a swap directory for each workstation you wish to
- assign swap to. In this example I created a dummy user 'lander' and
- did an NFS export of /images/swap enforcing a UID of 'lander' for
- all accesses.
-
- apollo:/usr/ports/net# ls -la /images/swap
- total 491786
- drwxr-xr-x 2 root wheel 512 Dec 28 07:00 .
- drwxr-xr-x 8 root wheel 512 Jan 20 10:54 ..
- -rw-r--r-- 1 lander wheel 33554432 Dec 23 14:35 swap.192.157.86.11
- -rw-r--r-- 1 lander wheel 335544320 Jan 24 16:55 swap.192.157.86.12
- -rw-r--r-- 1 lander wheel 134217728 Jan 21 17:19 swap.192.157.86.6
-
- A swap file is best created with dd:
-
- # create a 32MB swap file for a BOOTP workstation
- dd if=/dev/zero of=swap.IPADDRESS bs=1m count=32
-
- It is generally a good idea to give your workstations some swap space,
- but not a requirement if they have a lot of memory.
-
diff --git a/share/examples/diskless/README.TEMPLATING b/share/examples/diskless/README.TEMPLATING
deleted file mode 100644
index babf670c1eee..000000000000
--- a/share/examples/diskless/README.TEMPLATING
+++ /dev/null
@@ -1,286 +0,0 @@
-
- TEMPLATING machine configurations
-
- Matthew Dillon
- dillon@backplane.com
-
- This document describes a general mechanism by which you can template
- / and /usr. That is, to keep a 'master template' of / and /usr on a
- separate machine which is then used to update the rest of your machines.
-
- Generally speaking, you can't simply mirror /. You might be able to
- get away with mirroring /usr. There are two main problems involved with
- templating:
-
- (1) Avoiding overwriting run-time generated files
-
- By default, the system maintains a number of files in the root
- partition. For example, sendmail will dbm /etc/aliases into
- /etc/aliases.db. vipw or chpass or other password related routines
- will regenerate the password dbm's /etc/spwd.db, /etc/pwd.db, and
- passwd. /etc/namedb/s might contain generated secondaries. And
- so forth.
-
- The templating mechanism must avoid copying over such files.
-
- (2) Customizing machines.
-
- Customizing machines is actually considerably simpler. You create
- a configuration hierarchy and convert the configuration files that
- have to be customized into softlinks that run through a special
- softlink in the configuration directory. This will work for every
- configuration file except possibly /etc/master.passwd
-
- For example, /etc/resolv.conf would be turned into a softlink to
- /conf/ME/resolv.conf, and /conf/ME itself would be a softlink to
- /conf/<HOSTNAME>. The actual resolv.conf configuration file
- would reside in /conf/<HOSTNAME>.
-
- If you have a lot of hosts, some configuration files may be commonly
- classified. For example, all your shell machines might have the
- same /etc/resolv.conf. The solution is to make
- /conf/<HOSTNAME>/resolv.conf a softlink to a common directory, say
- /conf/HT.SHELL/resolv.conf. It may sound a little messy, but this
- sort of categorization actually makes the sysadmins job much, much
- easier.
-
- The /conf/ directory hierarchy is stored on the template and
- distributed to all the machines along with the rest of the root
- partition.
-
- This type of customization is taken from my direct experience
- instituting such a system at BEST. At the time, BEST had over 45
- machines managed from a single template.
-
- RUN-TIME GENERATED OR MODIFIED FILES IN / or /USR
-
- /etc/aliases.db
- /etc/master.passwd
- /etc/spwd.db
- /etc/pwd.db
- /etc/passwd
- /etc/namedb/s
- /root/.history
- /root/.ssh/identity
- /root/.ssh/identity.pub
- /root/.ssh/random_seed
- /root/.ssh/known_hosts
- /conf/ME
- /kernel* ( note 2 )
- /dev ( note 3 )
- /var ( note 4 )
- /home ( note 4 )
- /lost+found
-
- /usr/lost+found
- /usr/home ( note 4 )
- /usr/crash ( note 5 )
- /usr/obj ( note 5 )
- /usr/ports ( note 5 )
- /usr/src ( note 5 )
- /usr/local/crack ( note 5 )
- /usr/X11R6/lib/X11/xdm/xdm-errors ( note 6 )
- /usr/X11R6/lib/X11/xdm/xdm-pid ( note 6 )
- /usr/local/etc/ssh_host_key ( note 6 )
- /usr/local/etc/ssh_host_key.pub ( note 6 )
- /usr/local/etc/ssh_random_seed ( note 6 )
-
- /conf/ME ( note 7 )
-
- note 2: You typically want to update kernels manually and *NOT*
- template them as a safety measure. This also allows you to run
- different kernels on different machines or.
-
- note 3: /dev must be updated manually. Some devices, such as tty's and
- pty's, use the access and/or modify time and/or user/group
- operationally and regenerating the devices on the fly would be
- bad.
-
- note 4: /var and /home are usually separately mounted partitions and
- thus would not fall under the template, but as a safety measure
- the template copier refuse to copy directories named 'home'.
-
- note 5: These are directories that are as often created directly on
- /usr as they are separately-mounted partitions. You typically
- do not want to template such directories.
-
- note 6: Note that you can solve the problem of xdm and sshd creating
- files in /usr. With xdm, edit /usr/X11R6/lib/xdm/xdm-config
- and change the errorLogFile and pidFile config lines.
-
- With sshd, add 'HostKey' and 'RandomSeed' directives to specify
- /var/db for the location of the host key and run-time sshd
- random seed:
-
- HostKey /var/db/ssh_host_key
- RandomSeed /var/db/ssh_random_seed
-
- note 7: In this example, /conf/ME is the machine customizer and must
- be pointed to the /conf/<full-host-name>/ directory, which is
- different for each machine. Thus, the /conf/ME softlink
- should never be overwritten by the templating copy.
-
-
- TYPICAL CUSTOMIZED CONFIGRATION SOFTLINKS
-
- The following files typically need to be turned into softlinks
- to /conf/ME/<filename>:
-
- /etc/ccd.conf -> /conf/ME/ccd.conf
- /etc/ipfw.conf ...
- /etc/fstab
- /etc/motd
- /etc/resolv.conf
- /etc/aliases
- /etc/sendmail.cw
- /etc/organization
- /etc/named.conf
- /etc/rc.conf.local
- /etc/printcap
- /etc/inetd.conf
- /etc/login.conf
- /etc/gettytab
- /etc/ntp.conf
- /etc/exports
- /root/.k5login -> /conf/ME/root/.k5login
-
- And, of course, /conf/ME is usually a softlink to the appropriate
- /conf/<full-host-name>/. Depending on your system configuration,
- there may be other files not listed above that you have to worry about.
-
- In many cases, /conf/ME/filename is itself a softlink to
- "../HT.xxxx/filename", where HT.xxxx is something like HT.STD ... this
- added complexity actually makes it easier to manage multiple
- classifications of machines.
-
- DELETION OF FILES
-
- Any file found on the template destination that does not exist in the
- source and is not listed as an exception by the source should be deleted.
- However, deletion can be dangerous and cpdup will ask for confirmation
- by default. Once you know you aren't going to blow things up, you can
- turn this feature off and update your systems automatically from cron.
-
- By formalizing the delete operation, you can be 100% sure that it is
- possible to recreate / and /usr on any machine with only the original
- template and a backup of the ( relatively few ) explicitly-excepted
- files. The most common mistake a sysop makes is to make a change to a
- file in / or /usr on a target machine instead of the template machine.
- If the target machine is updated once a night from cron, the sysop
- quickly learns not to do this ( because his changes get overwritten
- overnight ). With a manual update, these sorts of mistakes can propogate
- for weeks or months before they are caught.
-
- TEMPLATE COPYING AND SAFETY
- THE CPDUP PROGRAM
-
- The 'cpdup' program is a program which efficiently duplicates a directory
- tree. The program copies source to destination, duplicating devices,
- softlinks, hardlinks, files, modification times, uid, gid, flags, perms,
- and so forth. The program incorporates several major features:
-
- * The program refuses, absolutely, to cross partition boundries.
- i.e. if you were copying the template /usr from an NFS mount to
- your /usr, and you had a mount point called /usr/home, the
- template copying program would *NOT* descend into /usr/home on
- the destination.
-
- This is a safety.
-
- * The program accesses a file called .cpignore in each directory
- it descending into on the source to obtain a list of exceptions
- for that directory -- that is, files not to copy or mess with.
-
- This is a templating function.
-
- * The program refuses to delete a directory on the destination
- being replaced by a softlink or file on the source.
-
- This is a safety mechanism
-
- * The program is capable of maintaing MD5 check cache files and
- doing an MD5 check between source and destination during the
- scan.
-
- * The program is capable of deleting files/directories on the
- destination that do not exist on the source, but asks for
- confirmation by default.
-
- This is a templating and a safety mechanism.
-
- * The program uses a copy-to-tmp-and-rename methodology allowing
- it to be used to update live filesystems.
-
- This is a templating mechanism.
-
- * The program, by default, tries to determine if a copy is required
- by checking modify times, file size, perms, and other stat
- elements. If the elements match, it does not bother to copy
- ( unless an MD5 check is being made, in which case it must read
- the destination file ).
-
- You typically run cpdup on the target machine. The target machine
- temporarily mounts the template machine's / and /usr via NFS, read-only,
- and runs cpdup to update / and /usr. If you use this methodology note
- that THERE ARE SECURITY CONSIDERATIONS! See 'SECURITY CONSIDERATIONS WITH
- NFS' below.
-
- Whatever script you use that does the NFS mounts should ensure that the
- mount succeeded before continuing with the cpdup.
-
- You should create .cpignore files in the appropriate directories on the
- template machine's / and /usr partitions so as not to overwrite active
- files on the target. The most critical .cpignore files should be
- protected with 'chflags schg .cpignore'. Specifically, the ones in /
- and /etc, but possibly others as well. For example, the .cpignore
- hierarchy for protect /root is:
-
- # /root/.cpignore contains
- .history
-
- # /root/.ssh/.cpignore contains
- random_seed
- known_hosts
- authorized_keys
- identity
- identity.pub
-
- WHEN INITIALLY CONVERTING A TARGET MACHINE TO USE TEMPLATING, ALWAYS
- MAKE A FULL BACKUP OF THE TARGET MACHINE FIRST! You may accidently delete
- files on the target during the conversion due to forgetting to enter
- items into appropriate .cpignore files on the source.
-
- SECURITY CONSIDERATIONS WITH NFS ROOT EXPORT FROM TEMPLATE MACHINE
- SECURITY CONSIDERATIONS WITH NFS USR EXPORT FROM TEMPLATE MACHINE
-
- There are some serious security considerations that must be taken into
- account when exporting / and /usr on the template machine.
-
- * only export read-only
-
- * the password file ( aka vipw ) may not contain any crypted passwords
- at all. You MUST use ssh or kerberos to access the template machine.
-
- You can get away with giving only root a crypted password, but only
- if you disallow network root logins and only allow direct root
- logins on the console.
-
- * The machine's private ssh_host_key usually resides in /usr/local/etc.
- You must move this key to /var/db. You can softlink link so no
- modification of sshd_config is required.
-
- * The machine's private ~root/.ssh/identity file is also exposed by
- the NFS export, you should move this file to /var/db as well and
- put a softlink in ~root/.ssh.
-
- * DON'T EXPORT /var ! Either that, or don't put the private keys
- in /var/db ... put them somewhere else.
-
- * You may want to redirect the location of the random_seed file, which
- can be done by editing ~root/.ssh/sshd_config and
- /usr/local/etc/sshd_config so it is not exposed either.
-
- -Matt
- Matthew Dillon
- dillon@backplane.com
-
diff --git a/share/man/man4/intpm.4 b/share/man/man4/intpm.4
deleted file mode 100644
index 0b973b7b34b9..000000000000
--- a/share/man/man4/intpm.4
+++ /dev/null
@@ -1,64 +0,0 @@
-.\" Copyright (c) 1999 Takanori Watanabe
-.\" 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.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
-.\"
-.\" $FreeBSD$
-.\"
-.\" Note: The date here should be updated whenever a non-trivial
-.\" change is made to the manual page.
-.Dd January 8, 1999
-.Dt INTPM 4 i386
-.\" Note: Only specify the operating system when the command
-.\" is FreeBSD specific, otherwise use the .Os macro with no
-.\" arguments.
-.Os FreeBSD 3.0
-.Sh NAME
-.Nm intpm
-.Nd Intel PIIX4 Power management controller driver.
-.Sh SYNOPSIS
-.Cd controller smbus0
-.Cd controller intpm0
-
-.Sh DESCRIPTION
-This driver provides access to
-.Tn Intel PIIX4 PCI Controller function 3 ,
-Power management controller. Currently, only smbus controller
-function is implemented. But it also have bus idle monitoring function. It
-will display mapped I/O address for bus monitoring function when attaching.
-
-.Sh SEE ALSO
-.Xr smb 4 ,
-.Xr smbus 4
-.Sh HISTORY
-The
-.Nm
-manual page example first appeared in
-.Fx 3.0 .
-.Sh AUTHORS
-This
-manual page was written by
-.An Takanori Watanabe Aq takawata@shidahara1.planet.sci.kobe-u.ac.jp .
-.Sh BUGS
-This device requires IRQ 9 exclusively. To use this, you should enable
-ACPI function in BIOS configuration, or PnP mechanism assigns conflicted
-IRQ for PnP ISA card. And don't use IRQ 9 for Non-PnP ISA cards.
diff --git a/share/man/man4/man4.i386/sis.4 b/share/man/man4/man4.i386/sis.4
deleted file mode 100644
index 47a257920ceb..000000000000
--- a/share/man/man4/man4.i386/sis.4
+++ /dev/null
@@ -1,149 +0,0 @@
-.\" Copyright (c) 1997, 1998, 1999
-.\" Bill Paul <wpaul@ee.columbia.edu>. 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 Bill Paul.
-.\" 4. Neither the name of the author nor the names of any co-contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY Bill Paul 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 Bill Paul OR THE VOICES IN HIS HEAD
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 4, 1999
-.Dt SIS 4 i386
-.Os FreeBSD
-.Sh NAME
-.Nm sis
-.Nd
-Silicon Integrated Systems fast ethernet device driver
-.Sh SYNOPSIS
-.Cd "controller miibus0"
-.Cd "device sis0"
-.Sh DESCRIPTION
-The
-.Nm
-driver provides support for PCI ethernet adapters and embedded
-controllers based on the Silicon Integrated Systems SiS 900
-and SiS 7016 fast ethernet controller chips.
-.Pp
-The SiS 900 is a 100Mbps ethernet MAC and MII-compliant transceiver
-in a single package. It uses a bus master DMA and a scatter/gather
-descriptor scheme. The SiS 7016 is similar to the SiS 900 except
-that it has no internal PHY, requiring instead an external transceiver
-to be attached to its MII interface.
-The SiS 900 and SiS 7016 both have a 128-bit multicast hash filter
-and a single perfect filter entry for the station address.
-.Pp
-The
-.Nm
-driver supports the following media types:
-.Pp
-.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
-.It autoselect
-Enable autoselection of the media type and options.
-The user can manually override
-the autoselected mode by adding media options to the
-.Pa /etc/rc.conf
-fine.
-.It 10baseT/UTP
-Set 10Mbps operation. The
-.Ar mediaopt
-option can also be used to select either
-.Ar full-duplex
-or
-.Ar half-duplex modes.
-.It 100baseTX
-Set 100Mbps (fast ethernet) operation. The
-.Ar mediaopt
-option can also be used to select either
-.Ar full-duplex
-or
-.Ar half-duplex
-modes.
-.El
-.Pp
-The
-.Nm
-driver supports the following media options:
-.Pp
-.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
-.It full-duplex
-Force full duplex operation
-.It half-duplex
-Force half duplex operation.
-.El
-.Pp
-For more information on configuring this device, see
-.Xr ifconfig 8 .
-.Sh DIAGNOSTICS
-.Bl -diag
-.It "sis%d: couldn't map ports/memory"
-A fatal initialization error has occurred.
-.It "sis%d: couldn't map interrupt"
-A fatal initialization error has occurred.
-.It "sis%d: watchdog timeout"
-The device has stopped responding to the network, or there is a problem with
-the network connection (cable).
-.It "sis%d: no memory for rx list"
-The driver failed to allocate an mbuf for the receiver ring.
-.It "sis%d: no memory for tx list"
-The driver failed to allocate an mbuf for the transmitter ring when
-allocating a pad buffer or collapsing an mbuf chain into a clusisr.
-.It "sis%d: chip is in D3 power state -- setting to D0"
-This message applies only to adapters which support power
-management. Some operating sysisms place the controller in low power
-mode when shutting down, and some PCI BIOSes fail to bring the chip
-out of this state before configuring it. The controller loses all of
-its PCI configuration in the D3 state, so if the BIOS does not set
-it back to full power mode in time, it won't be able to configure it
-correctly. The driver tries to detect this condition and bring
-the adapter back to the D0 (full power) state, but this may not be
-enough to return the driver to a fully operational condition. If
-you see this message at boot time and the driver fails to attach
-the device as a network interface, you will have to perform second
-warm boot to have the device properly configured.
-.Pp
-Note that this condition only occurs when warm booting from another
-operating sysism. If you power down your sysism prior to booting
-.Fx ,
-the card should be configured correctly.
-.El
-.Sh SEE ALSO
-.Xr arp 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8
-.Rs
-.%T SiS 900 and SiS 7016 datasheets
-.%O http://www.sis.com.tw
-.Re
-.Sh HISTORY
-The
-.Nm
-device driver first appeared in
-.Fx 3.0 .
-.Sh AUTHORS
-The
-.Nm
-driver was written by
-.An Bill Paul Aq wpaul@ee.columbia.edu .
diff --git a/share/man/man4/man4.i386/ste.4 b/share/man/man4/man4.i386/ste.4
deleted file mode 100644
index 3da3895c54a4..000000000000
--- a/share/man/man4/man4.i386/ste.4
+++ /dev/null
@@ -1,149 +0,0 @@
-.\" Copyright (c) 1997, 1998, 1999
-.\" Bill Paul <wpaul@ctr.columbia.edu>. 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 Bill Paul.
-.\" 4. Neither the name of the author nor the names of any co-contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY Bill Paul 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 Bill Paul OR THE VOICES IN HIS HEAD
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 21, 1999
-.Dt STE 4 i386
-.Os FreeBSD
-.Sh NAME
-.Nm ste
-.Nd
-Sundance Technologies ST201 fast ethernet device driver
-.Sh SYNOPSIS
-.Cd "controller miibus0"
-.Cd "device ste0"
-.Sh DESCRIPTION
-The
-.Nm
-driver provides support for PCI ethernet adapters and embedded
-controllers based on the Sundance Technologies ST201 PCI fast
-ethernet controller chip. This includes the D-Link DFE-550TX.
-.Pp
-The Sundance ST201 uses bus master DMA and is designed to be a
-3Com Etherlink XL workalike. It uses the same DMA descriptor
-structure and is very similar in operation, however its register
-layout is different. The ST201 has a 64-bit multicast hash filter
-and a single perfect filter entry for the station address. IT
-supports both 10 and 100Mbps speeds in either full or half duplex
-using an MII transceiver.
-.Pp
-The
-.Nm
-driver supports the following media types:
-.Pp
-.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
-.It autoselect
-Enable autoselection of the media type and options.
-The user can manually override
-the autoselected mode by adding media options to the
-.Pa /etc/rc.conf
-fine.
-.It 10baseT/UTP
-Set 10Mbps operation. The
-.Ar mediaopt
-option can also be used to select either
-.Ar full-duplex
-or
-.Ar half-duplex modes.
-.It 100baseTX
-Set 100Mbps (fast ethernet) operation. The
-.Ar mediaopt
-option can also be used to select either
-.Ar full-duplex
-or
-.Ar half-duplex
-modes.
-.El
-.Pp
-The
-.Nm
-driver supports the following media options:
-.Pp
-.Bl -tag -width xxxxxxxxxxxxxxxxxxxx
-.It full-duplex
-Force full duplex operation
-.It half-duplex
-Force half duplex operation.
-.El
-.Pp
-For more information on configuring this device, see
-.Xr ifconfig 8 .
-.Sh DIAGNOSTICS
-.Bl -diag
-.It "ste%d: couldn't map ports/memory"
-A fatal initialization error has occurred.
-.It "ste%d: couldn't map interrupt"
-A fatal initialization error has occurred.
-.It "ste%d: watchdog timeout"
-The device has stopped responding to the network, or there is a problem with
-the network connection (cable).
-.It "ste%d: no memory for rx list"
-The driver failed to allocate an mbuf for the receiver ring.
-.It "ste%d: no memory for tx list"
-The driver failed to allocate an mbuf for the transmitter ring when
-allocating a pad buffer or collapsing an mbuf chain into a cluster.
-.It "ste%d: chip is in D3 power state -- setting to D0"
-This message applies only to adapters which support power
-management. Some operating systems place the controller in low power
-mode when shutting down, and some PCI BIOSes fail to bring the chip
-out of this state before configuring it. The controller loses all of
-its PCI configuration in the D3 state, so if the BIOS does not set
-it back to full power mode in time, it won't be able to configure it
-correctly. The driver tries to detect this condition and bring
-the adapter back to the D0 (full power) state, but this may not be
-enough to return the driver to a fully operational condition. If
-you see this message at boot time and the driver fails to attach
-the device as a network interface, you will have to perform second
-warm boot to have the device properly configured.
-.Pp
-Note that this condition only occurs when warm booting from another
-operating system. If you power down your system prior to booting
-.Fx ,
-the card should be configured correctly.
-.El
-.Sh SEE ALSO
-.Xr arp 4 ,
-.Xr netintro 4 ,
-.Xr ifconfig 8
-.Rs
-.%T Sundance ST201 data sheet
-.%O http://www.sundanceti.com
-.Re
-.Sh HISTORY
-The
-.Nm
-device driver first appeared in
-.Fx 3.0 .
-.Sh AUTHORS
-The
-.Nm
-driver was written by
-.An Bill Paul Aq wpaul@ee.columbia.edu .
diff --git a/sys/dev/bktr/bktr_i2c.h b/sys/dev/bktr/bktr_i2c.h
deleted file mode 100644
index 075e9885ae5d..000000000000
--- a/sys/dev/bktr/bktr_i2c.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*-
- * Copyright (c) 1998 Nicolas Souchu
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD$
- *
- */
-#ifndef _BT848_I2C_H
-#define _BT848_I2C_H
-
-extern int bt848_i2c_attach(int, bt848_ptr_t, struct bktr_i2c_softc *);
-
-#endif
diff --git a/sys/i386/include/i4b_rbch_ioctl.h b/sys/i386/include/i4b_rbch_ioctl.h
deleted file mode 100644
index 62d2829b8b83..000000000000
--- a/sys/i386/include/i4b_rbch_ioctl.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1999 Hellmuth Michaelis. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- *---------------------------------------------------------------------------
- *
- * i4b_rbch_ioctl.h raw B-channel driver interface ioctls
- * ------------------------------------------------------
- *
- * $FreeBSD$
- *
- * last edit-date: [Fri Jul 9 08:35:07 1999]
- *
- *---------------------------------------------------------------------------*/
-
-#ifndef _I4B_RBCH_IOCTL_H_
-#define _I4B_RBCH_IOCTL_H_
-
-/*---------------------------------------------------------------------------*
- * instruct the rbch device to dial the given number
- *---------------------------------------------------------------------------*/
-
-typedef char telno_t[TELNO_MAX];
-
-#define I4B_RBCH_DIALOUT _IOW('R', 1, telno_t)
-
-/*---------------------------------------------------------------------------*
- * request version and release info from kernel part
- *---------------------------------------------------------------------------*/
-
-#define I4B_RBCH_VR_REQ _IOR('R', 2, msg_vr_req_t)
-
-#endif /* _I4B_RBCH_IOCTL_H_ */
diff --git a/sys/i386/isa/if_wl.c b/sys/i386/isa/if_wl.c
index d5e7938594b6..01c3b3463a04 100644
--- a/sys/i386/isa/if_wl.c
+++ b/sys/i386/isa/if_wl.c
@@ -1282,6 +1282,8 @@ wlioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
}
error = 0;
}
+#else
+ wlinit(sc);
#endif
break;
#endif /* MULTICAST */
diff --git a/sys/i4b/MAINTAINER b/sys/i4b/MAINTAINER
deleted file mode 100644
index fae4d58f6898..000000000000
--- a/sys/i4b/MAINTAINER
+++ /dev/null
@@ -1 +0,0 @@
-MAINTAINER = hm@freebsd.org
diff --git a/sys/i4b/driver/i4b_bsdi_ibc.c b/sys/i4b/driver/i4b_bsdi_ibc.c
deleted file mode 100644
index 17d90c276f16..000000000000
--- a/sys/i4b/driver/i4b_bsdi_ibc.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/*
- * Copyright (c) 1998, 1999 Bert Driehuis. All rights reserved.
- *
- * Copyright (c) 1997, 1998 Hellmuth Michaelis. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- *---------------------------------------------------------------------------
- *
- * i4b_bsdi_ibc.c - isdn4bsd kernel BSD/OS point to point driver
- * -------------------------------------------------------------
- *
- * $FreeBSD$
- *
- * last edit-date: [Fri Apr 23 10:27:57 1999]
- *
- *---------------------------------------------------------------------------*/
-
-#include "ibc.h"
-
-#if NIBC > 0
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-#include <sys/errno.h>
-#include <sys/ioccom.h>
-#include <sys/ttycom.h>
-#include <sys/sockio.h>
-#include <sys/kernel.h>
-#include <sys/protosw.h>
-
-#include <net/if.h>
-#include <net/if_types.h>
-#include <net/if_p2p.h>
-#include <net/netisr.h>
-#include <net/route.h>
-
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/in_var.h>
-#include <netinet/ip.h>
-
-#include <i4b/i4b_ioctl.h>
-#include <i4b/i4b_cause.h>
-#include <i4b/include/i4b_global.h>
-#include <i4b/include/i4b_mbuf.h>
-#include <i4b/include/i4b_l3l4.h>
-#include <i4b/layer4/i4b_l4.h>
-
-#define IFP2UNIT(ifp) (ifp)->if_unit
-
-#define IOCTL_CMD_T u_long
-
-void ibcattach(void *);
-
-#define IBCACCT 1 /* enable accounting messages */
-#define IBCACCTINTVL 2 /* accounting msg interval in secs */
-
-#define PPP_HDRLEN 4 /* 4 octets PPP header length */
-
-struct ibc_softc {
- struct p2pcom sc_p2pcom;
-
- int sc_state; /* state of the interface */
- call_desc_t *sc_cdp; /* ptr to call descriptor */
-
-#ifdef IBCACCT
- int sc_iinb; /* isdn driver # of inbytes */
- int sc_ioutb; /* isdn driver # of outbytes */
- int sc_inb; /* # of bytes rx'd */
- int sc_outb; /* # of bytes tx'd */
- int sc_linb; /* last # of bytes rx'd */
- int sc_loutb; /* last # of bytes tx'd */
- int sc_fn; /* flag, first null acct */
-#endif
-} ibc_softc[NIBC];
-
-static void ibc_init_linktab(int unit);
-
-static int ibc_start(struct ifnet *ifp);
-
-static int ibc_watchdog(int unit);
-static int ibc_mdmctl(struct p2pcom *pp, int flag);
-static int ibc_getmdm(struct p2pcom *pp, caddr_t arg);
-
-/* initialized by L4 */
-
-static drvr_link_t ibc_drvr_linktab[NIBC];
-static isdn_link_t *isdn_ibc_lt[NIBC];
-
-enum ibc_states {
- ST_IDLE, /* initialized, ready, idle */
- ST_DIALING, /* dialling out to remote */
- ST_CONNECTED, /* connected to remote */
-};
-
-int ibcdebug = 0; /* Use bpatch to set this for debug printf's */
-#define DBG(x) if (ibcdebug) printf x
-
-/*===========================================================================*
- * DEVICE DRIVER ROUTINES
- *===========================================================================*/
-
-/*---------------------------------------------------------------------------*
- * interface attach routine at kernel boot time
- *---------------------------------------------------------------------------*/
-void
-ibcattach(void *dummy)
-{
- struct ibc_softc *sc = ibc_softc;
- struct ifnet *ifp;
- int i;
-
-#ifndef HACK_NO_PSEUDO_ATTACH_MSG
- printf("ibc: %d ISDN ibc device(s) attached\n",
- NIBC);
-#endif
-
- for(i = 0; i < NIBC; sc++, i++) {
- ibc_init_linktab(i);
-
- sc->sc_p2pcom.p2p_mdmctl = ibc_mdmctl;
- sc->sc_p2pcom.p2p_getmdm = ibc_getmdm;
- sc->sc_state = ST_IDLE;
- ifp = &sc->sc_p2pcom.p2p_if;
- ifp->if_name = "ibc";
- ifp->if_next = NULL;
- ifp->if_unit = i;
- ifp->if_mtu = 1500 /*XXX*/;
- ifp->if_baudrate = 64000;
- ifp->if_flags = IFF_SIMPLEX | IFF_POINTOPOINT;
- ifp->if_type = IFT_ISDNBASIC;
- ifp->if_start = ibc_start;
- ifp->if_output = 0;
- ifp->if_ioctl = p2p_ioctl;
-
- ifp->if_hdrlen = 0;
- ifp->if_addrlen = 0;
- ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
-
- ifp->if_ipackets = 0;
- ifp->if_ierrors = 0;
- ifp->if_opackets = 0;
- ifp->if_oerrors = 0;
- ifp->if_collisions = 0;
- ifp->if_ibytes = 0;
- ifp->if_obytes = 0;
- ifp->if_imcasts = 0;
- ifp->if_omcasts = 0;
- ifp->if_iqdrops = 0;
- ifp->if_noproto = 0;
-#if IBCACCT
- ifp->if_timer = 0;
- ifp->if_watchdog = ibc_watchdog;
- sc->sc_iinb = 0;
- sc->sc_ioutb = 0;
- sc->sc_inb = 0;
- sc->sc_outb = 0;
- sc->sc_linb = 0;
- sc->sc_loutb = 0;
- sc->sc_fn = 1;
-#endif
- if_attach(ifp);
- p2p_attach(&sc->sc_p2pcom);
- }
-}
-
-static struct mbuf *
-p2p_dequeue(struct p2pcom *pp)
-{
- struct ifqueue *ifq;
- struct mbuf *m;
-
- ifq = &pp->p2p_isnd;
- m = ifq->ifq_head;
- if (m == 0) {
- ifq = &pp->p2p_if.if_snd;
- m = ifq->ifq_head;
- }
- if (m == 0)
- return 0;
- IF_DEQUEUE(ifq, m);
- return m;
-}
-
-/*---------------------------------------------------------------------------*
- * start output to ISDN B-channel
- *---------------------------------------------------------------------------*/
-static int
-ibc_start(struct ifnet *ifp)
-{
- int unit = IFP2UNIT(ifp);
- struct ibc_softc *sc = (struct ibc_softc *)&ibc_softc[unit];
- struct p2pcom *pp = &sc->sc_p2pcom;
- struct mbuf *m;
- int s;
-
- if(sc->sc_state != ST_CONNECTED) {
- DBG(("ibc%d: ibc_start called with sc_state=%d\n",
- unit, sc->sc_state));
- return 0;
- }
-
- s = SPLI4B();
-
- if (IF_QFULL(isdn_ibc_lt[unit]->tx_queue)) {
- splx(s);
- return 0;
- }
-
- m = p2p_dequeue(pp);
- if (m == NULL) {
- splx(s);
- return 0;
- }
-
- do {
- microtime(&ifp->if_lastchange);
-
- IF_ENQUEUE(isdn_ibc_lt[unit]->tx_queue, m);
-
- ifp->if_obytes += m->m_pkthdr.len;
- sc->sc_outb += m->m_pkthdr.len;
- ifp->if_opackets++;
- } while (!IF_QFULL(isdn_ibc_lt[unit]->tx_queue) &&
- (m = p2p_dequeue(pp)) != NULL);
- isdn_ibc_lt[unit]->bch_tx_start(isdn_ibc_lt[unit]->unit,
- isdn_ibc_lt[unit]->channel);
- splx(s);
- return 0;
-}
-
-#ifdef IBCACCT
-/*---------------------------------------------------------------------------*
- * watchdog routine
- *---------------------------------------------------------------------------*/
-static int
-ibc_watchdog(int unit)
-{
- struct ibc_softc *sc = &ibc_softc[unit];
- struct ifnet *ifp = &sc->sc_p2pcom.p2p_if;
- bchan_statistics_t bs;
-
- (*isdn_ibc_lt[unit]->bch_stat)
- (isdn_ibc_lt[unit]->unit, isdn_ibc_lt[unit]->channel, &bs);
-
- sc->sc_ioutb += bs.outbytes;
- sc->sc_iinb += bs.inbytes;
-
- if((sc->sc_iinb != sc->sc_linb) || (sc->sc_ioutb != sc->sc_loutb) || sc->sc_fn)
- {
- int ri = (sc->sc_iinb - sc->sc_linb)/IBCACCTINTVL;
- int ro = (sc->sc_ioutb - sc->sc_loutb)/IBCACCTINTVL;
-
- if((sc->sc_iinb == sc->sc_linb) && (sc->sc_ioutb == sc->sc_loutb))
- sc->sc_fn = 0;
- else
- sc->sc_fn = 1;
-
- sc->sc_linb = sc->sc_iinb;
- sc->sc_loutb = sc->sc_ioutb;
-
- i4b_l4_accounting(BDRV_IBC, unit, ACCT_DURING,
- sc->sc_ioutb, sc->sc_iinb, ro, ri, sc->sc_outb, sc->sc_inb);
- }
- ifp->if_timer = IBCACCTINTVL;
- return 0;
-}
-#endif /* IBCACCT */
-
-/*
- *===========================================================================*
- * P2P layer interface routines
- *===========================================================================*
- */
-
-#if 0
-/*---------------------------------------------------------------------------*
- * PPP interface phase change
- *---------------------------------------------------------------------------*
- */
-static void
-ibc_state_changed(struct sppp *sp, int new_state)
-{
- struct ibc_softc *sc = (struct ibc_softc *)sp;
-
- i4b_l4_ifstate_changed(sc->sc_cdp, new_state);
-}
-
-/*---------------------------------------------------------------------------*
- * PPP control protocol negotiation complete (run ip-up script now)
- *---------------------------------------------------------------------------*
- */
-static void
-ibc_negotiation_complete(struct sppp *sp)
-{
- struct ibc_softc *sc = (struct ibc_softc *)sp;
-
- i4b_l4_negcomplete(sc->sc_cdp);
-}
-#endif
-
-/*===========================================================================*
- * ISDN INTERFACE ROUTINES
- *===========================================================================*/
-
-/*---------------------------------------------------------------------------*
- * this routine is called from L4 handler at connect time
- *---------------------------------------------------------------------------*/
-static void
-ibc_connect(int unit, void *cdp)
-{
- struct ibc_softc *sc = &ibc_softc[unit];
- struct ifnet *ifp = &sc->sc_p2pcom.p2p_if;
- int s;
-
- DBG(("ibc%d: ibc_connect\n", unit));
-
- s = splimp();
-
- sc->sc_cdp = (call_desc_t *)cdp;
- sc->sc_state = ST_CONNECTED;
-
-#if IBCACCT
- sc->sc_iinb = 0;
- sc->sc_ioutb = 0;
- sc->sc_inb = 0;
- sc->sc_outb = 0;
- sc->sc_linb = 0;
- sc->sc_loutb = 0;
- ifp->if_timer = IBCACCTINTVL;
-#endif
-
- splx(s);
- if (sc->sc_p2pcom.p2p_modem)
- (*sc->sc_p2pcom.p2p_modem)(&sc->sc_p2pcom, 1);
-
- /* This is a lie... PPP is just starting to negociate :-) */
- i4b_l4_negcomplete(sc->sc_cdp);
-}
-
-/*---------------------------------------------------------------------------*
- * this routine is called from L4 handler at disconnect time
- *---------------------------------------------------------------------------*/
-static void
-ibc_disconnect(int unit, void *cdp)
-{
- call_desc_t *cd = (call_desc_t *)cdp;
- struct ibc_softc *sc = &ibc_softc[unit];
- struct ifnet *ifp = &sc->sc_p2pcom.p2p_if;
- int s;
-
- DBG(("ibc%d: ibc_disconnect\n", unit));
-
- s = splimp();
-
- /* new stuff to check that the active channel is being closed */
- if (cd != sc->sc_cdp)
- {
- DBG(("ibc_disconnect: ibc%d channel%d not active\n",
- cd->driver_unit, cd->channelid));
- splx(s);
- return;
- }
-
-#if IBCACCT
- ifp->if_timer = 0;
-#endif
-
- i4b_l4_accounting(BDRV_IBC, unit, ACCT_FINAL,
- sc->sc_ioutb, sc->sc_iinb, 0, 0, sc->sc_outb, sc->sc_inb);
-
- if (sc->sc_state == ST_CONNECTED)
- {
- sc->sc_cdp = (call_desc_t *)0;
- sc->sc_state = ST_IDLE;
- if (sc->sc_p2pcom.p2p_modem)
- (*sc->sc_p2pcom.p2p_modem)(&sc->sc_p2pcom, 0);
- }
-
- splx(s);
-}
-
-/*---------------------------------------------------------------------------*
- * this routine is used to give a feedback from userland demon
- * in case of dial problems
- *---------------------------------------------------------------------------*/
-static void
-ibc_dialresponse(int unit, int status)
-{
- DBG(("ibc%d: ibc_dialresponse %d\n", unit, status));
-/* struct ibc_softc *sc = &ibc_softc[unit]; */
-}
-
-/*---------------------------------------------------------------------------*
- * interface up/down
- *---------------------------------------------------------------------------*/
-static void
-ibc_updown(int unit, int updown)
-{
- DBG(("ibc%d: ibc_updown %d\n", unit, updown));
- /* could probably do something useful here */
-}
-
-/*---------------------------------------------------------------------------*
- * this routine is called from the HSCX interrupt handler
- * when a new frame (mbuf) has been received and was put on
- * the rx queue.
- *---------------------------------------------------------------------------*/
-static void
-ibc_rx_data_rdy(int unit)
-{
- struct ibc_softc *sc = &ibc_softc[unit];
- struct ifnet *ifp = &sc->sc_p2pcom.p2p_if;
- struct mbuf *m, *m0;
- char *buf;
- int s;
-
- if((m = *isdn_ibc_lt[unit]->rx_mbuf) == NULL)
- return;
-
- microtime(&ifp->if_lastchange);
- ifp->if_ipackets++;
-
- /* Walk the mbuf chain */
- s = splimp();
- for (m0 = m; m != 0; m = m->m_next) {
- if (m->m_len == 0)
- continue;
- ifp->if_ibytes += m->m_len;
-#if IBCACCT
- sc->sc_inb += m->m_len;
-#endif
- buf = mtod(m, caddr_t);
- if ((*sc->sc_p2pcom.p2p_hdrinput)(
- &sc->sc_p2pcom, buf, m->m_len) >= 0)
- (*sc->sc_p2pcom.p2p_input)(&sc->sc_p2pcom, 0);
- }
- splx(s);
- m_freem(m0);
-}
-
-/*---------------------------------------------------------------------------*
- * this routine is called from the HSCX interrupt handler
- * when the last frame has been sent out and there is no
- * further frame (mbuf) in the tx queue.
- *---------------------------------------------------------------------------*/
-static void
-ibc_tx_queue_empty(int unit)
-{
- ibc_start(&ibc_softc[unit].sc_p2pcom.p2p_if);
-}
-
-/*---------------------------------------------------------------------------*
- * this routine is called from the HSCX interrupt handler
- * each time a packet is received or transmitted. It should
- * be used to implement an activity timeout mechanism.
- *---------------------------------------------------------------------------*/
-static void
-ibc_activity(int unit, int rxtx)
-{
- ibc_softc[unit].sc_cdp->last_active_time = SECOND;
-}
-
-/*---------------------------------------------------------------------------*
- * return this drivers linktab address
- *---------------------------------------------------------------------------*/
-drvr_link_t *
-ibc_ret_linktab(int unit)
-{
- return(&ibc_drvr_linktab[unit]);
-}
-
-/*---------------------------------------------------------------------------*
- * setup the isdn_ibc_lt for this driver
- *---------------------------------------------------------------------------*/
-void
-ibc_set_linktab(int unit, isdn_link_t *ilt)
-{
- isdn_ibc_lt[unit] = ilt;
-}
-
-/*---------------------------------------------------------------------------*
- * initialize this drivers linktab
- *---------------------------------------------------------------------------*/
-static void
-ibc_init_linktab(int unit)
-{
- ibc_drvr_linktab[unit].unit = unit;
- ibc_drvr_linktab[unit].bch_rx_data_ready = ibc_rx_data_rdy;
- ibc_drvr_linktab[unit].bch_tx_queue_empty = ibc_tx_queue_empty;
- ibc_drvr_linktab[unit].bch_activity = ibc_activity;
- ibc_drvr_linktab[unit].line_connected = ibc_connect;
- ibc_drvr_linktab[unit].line_disconnected = ibc_disconnect;
- ibc_drvr_linktab[unit].dial_response = ibc_dialresponse;
- ibc_drvr_linktab[unit].updown_ind = ibc_updown;
-}
-
-/*===========================================================================*/
-
-static int
-ibc_mdmctl(pp, flag)
- struct p2pcom *pp;
- int flag;
-{
- register struct ifnet *ifp = &pp->p2p_if;
- struct ibc_softc *sc = (struct ibc_softc *)&ibc_softc[ifp->if_unit];
-
- DBG(("ibc%d: ibc_mdmctl called flags=%d\n", IFP2UNIT(ifp), flag));
-
- if (flag == 1 && sc->sc_state == ST_IDLE) {
- sc->sc_state = ST_DIALING;
- i4b_l4_dialout(BDRV_IBC, IFP2UNIT(ifp));
- } else if (flag == 0 && sc->sc_state != ST_IDLE) {
- sc->sc_state = ST_IDLE;
- i4b_l4_drvrdisc(BDRV_IBC, IFP2UNIT(ifp));
- }
- return 0;
-}
-
-static int
-ibc_getmdm(pp, arg)
- struct p2pcom *pp;
- caddr_t arg;
-{
- register struct ifnet *ifp = &pp->p2p_if;
- struct ibc_softc *sc = (struct ibc_softc *)&ibc_softc[ifp->if_unit];
-
- if (sc->sc_state == ST_CONNECTED)
- *(int *)arg = TIOCM_CAR;
- else
- *(int *)arg = 0;
- return 0;
-
- DBG(("ibc%d: ibc_getmdm called ret=%d\n", IFP2UNIT(ifp), *(int *)arg));
-}
-#endif
diff --git a/sys/i4b/layer1/i4b_asuscom_ipac.c b/sys/i4b/layer1/i4b_asuscom_ipac.c
deleted file mode 100644
index 59f4211d7dd1..000000000000
--- a/sys/i4b/layer1/i4b_asuscom_ipac.c
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * Copyright (c) 1999 Ari Suutari. All rights reserved.
- * Copyright (c) 1997, 1999 Hellmuth Michaelis. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- *---------------------------------------------------------------------------
- *
- * isic - I4B Siemens ISDN Chipset Driver for Asuscom ISDNlink 128K PnP
- * =====================================================================
- *
- * This driver works with Asuscom ISDNlink 128K PnP ISA adapter,
- * which is based on Siemens IPAC chip (my card probes as ASU1690).
- * Older Asuscom ISA cards are based on different chipset
- * (containing two chips) - for those cards, one might want
- * to try the Dynalink driver.
- *
- * This driver is heavily based on ELSA Quickstep 1000pro PCI
- * driver written by Hellmuth Michaelis. Card initialization
- * code is modeled after Linux i4l driver written by Karsten
- * Keil.
- *
- * $FreeBSD$
- *
- * last edit-date: [Mon May 31 20:53:17 EEST 1999]
- *
- *---------------------------------------------------------------------------*/
-
-#if defined(__FreeBSD__)
-#include "isic.h"
-#include "opt_i4b.h"
-#include "pnp.h"
-#else
-#define NISIC 1
-#define NPNP 1
-#endif
-
-#if (NISIC > 0) && (NPNP > 0) && defined(ASUSCOM_IPAC)
-
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-#include <sys/socket.h>
-#include <net/if.h>
-
-#ifdef __FreeBSD__
-#if __FreeBSD__ >= 3
-#include <sys/ioccom.h>
-#else
-#include <sys/ioctl.h>
-#endif
-#include <machine/clock.h>
-#include <i386/isa/isa_device.h>
-#include <i386/isa/pnp.h>
-#else
-#include <machine/bus.h>
-#include <sys/device.h>
-#endif
-
-#ifdef __FreeBSD__
-#include <machine/i4b_debug.h>
-#include <machine/i4b_ioctl.h>
-#else
-#include <i4b/i4b_debug.h>
-#include <i4b/i4b_ioctl.h>
-#endif
-
-#include <i4b/include/i4b_global.h>
-#include <i4b/include/i4b_l1l2.h>
-#include <i4b/include/i4b_mbuf.h>
-
-#include <i4b/layer1/i4b_l1.h>
-#include <i4b/layer1/i4b_isac.h>
-#include <i4b/layer1/i4b_hscx.h>
-#include <i4b/layer1/i4b_ipac.h>
-
-#ifndef __FreeBSD__
-#include <i4b/layer1/pci_isic.h>
-#endif
-
-/* masks for register encoded in base addr */
-
-#define ASI_BASE_MASK 0x0ffff
-#define ASI_OFF_MASK 0xf0000
-
-/* register id's to be encoded in base addr */
-
-#define ASI_IDISAC 0x00000
-#define ASI_IDHSCXA 0x10000
-#define ASI_IDHSCXB 0x20000
-#define ASI_IDIPAC 0x40000
-
-/* offsets from base address */
-
-#define ASI_OFF_ALE 0x00
-#define ASI_OFF_RW 0x01
-
-/*---------------------------------------------------------------------------*
- * Asuscom ISDNlink 128K PnP ISAC get fifo routine
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-
-static void
-asi_read_fifo(void *buf, const void *base, size_t len)
-{
- u_int asus_base;
-
- asus_base = ((u_int) base) & ASI_BASE_MASK;
- switch (((u_int) base) & ASI_OFF_MASK) {
- case ASI_IDHSCXB:
- outb(asus_base + ASI_OFF_ALE, IPAC_HSCXB_OFF);
- insb(asus_base + ASI_OFF_RW, (u_char *)buf, (u_int)len);
- break;
- case ASI_IDHSCXA:
- outb(asus_base + ASI_OFF_ALE, IPAC_HSCXA_OFF);
- insb(asus_base + ASI_OFF_RW, (u_char *)buf, (u_int)len);
- break;
- case ASI_IDISAC:
- outb(asus_base + ASI_OFF_ALE, IPAC_ISAC_OFF);
- insb(asus_base + ASI_OFF_RW, (u_char *)buf, (u_int)len);
- break;
- }
-}
-
-#else
-
-static void
-asi_read_fifo(struct isic_softc *sc, int what, void *buf, size_t size)
-{
- bus_space_tag_t t = sc->sc_maps[1].t;
- bus_space_handle_t h = sc->sc_maps[1].h;
- switch (what) {
- case ISIC_WHAT_ISAC:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_ISAC_OFF);
- bus_space_read_multi_1(t, h, ASI_OFF_RW, buf, size);
- break;
- case ISIC_WHAT_HSCXA:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_HSCXA_OFF);
- bus_space_read_multi_1(t, h, ASI_OFF_RW, buf, size);
- break;
- case ISIC_WHAT_HSCXB:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_HSCXB_OFF);
- bus_space_read_multi_1(t, h, ASI_OFF_RW, buf, size);
- break;
- }
-}
-
-#endif
-
-/*---------------------------------------------------------------------------*
- * Asuscom ISDNlink 128K PnP ISAC put fifo routine
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-
-static void
-asi_write_fifo(void *base, const void *buf, size_t len)
-{
- u_int asus_base;
-
- asus_base = ((u_int) base) & ASI_BASE_MASK;
- switch (((u_int) base) & ASI_OFF_MASK) {
- case ASI_IDHSCXB:
- outb(asus_base + ASI_OFF_ALE, IPAC_HSCXB_OFF);
- outsb(asus_base + ASI_OFF_RW, (u_char *)buf, (u_int)len);
- break;
- case ASI_IDHSCXA:
- outb(asus_base + ASI_OFF_ALE, IPAC_HSCXA_OFF);
- outsb(asus_base + ASI_OFF_RW, (u_char *)buf, (u_int)len);
- break;
- case ASI_IDISAC:
- outb(asus_base + ASI_OFF_ALE, IPAC_ISAC_OFF);
- outsb(asus_base + ASI_OFF_RW, (u_char *)buf, (u_int)len);
- break;
- }
-}
-
-#else
-
-static void
-asi_write_fifo(struct isic_softc *sc,
- int what, const void *buf, size_t size)
-{
- bus_space_tag_t t = sc->sc_maps[1].t;
- bus_space_handle_t h = sc->sc_maps[1].h;
- switch (what) {
- case ISIC_WHAT_ISAC:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_ISAC_OFF);
- bus_space_write_multi_1(t, h, ASI_OFF_RW, (u_int8_t*)buf,size);
- break;
- case ISIC_WHAT_HSCXA:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_HSCXA_OFF);
- bus_space_write_multi_1(t, h, ASI_OFF_RW, (u_int8_t*)buf,size);
- break;
- case ISIC_WHAT_HSCXB:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_HSCXB_OFF);
- bus_space_write_multi_1(t, h, ASI_OFF_RW, (u_int8_t*)buf,size);
- break;
- }
-}
-#endif
-
-/*---------------------------------------------------------------------------*
- * Asuscom ISDNlink 128K PnP ISAC put register routine
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-
-static void
-asi_write_reg(u_char *base, u_int offset, u_int v)
-{
- u_int asus_base;
-
- asus_base = ((u_int) base) & ASI_BASE_MASK;
- switch (((u_int) base) & ASI_OFF_MASK) {
- case ASI_IDHSCXB:
- outb(asus_base + ASI_OFF_ALE, (u_char)(offset+IPAC_HSCXB_OFF));
- outb(asus_base + ASI_OFF_RW, (u_char)v);
- break;
- case ASI_IDHSCXA:
- outb(asus_base + ASI_OFF_ALE, (u_char)(offset+IPAC_HSCXA_OFF));
- outb(asus_base + ASI_OFF_RW, (u_char)v);
- break;
- case ASI_IDISAC:
- outb(asus_base + ASI_OFF_ALE, (u_char)(offset+IPAC_ISAC_OFF));
- outb(asus_base + ASI_OFF_RW, (u_char)v);
- break;
- case ASI_IDIPAC:
- outb(asus_base + ASI_OFF_ALE, (u_char)(offset+IPAC_IPAC_OFF));
- outb(asus_base + ASI_OFF_RW, (u_char)v);
- break;
- }
-}
-
-#else
-
-static void
-asi_write_reg(struct isic_softc *sc,
- int what, bus_size_t offs, u_int8_t data)
-{
- bus_space_tag_t t = sc->sc_maps[1].t;
- bus_space_handle_t h = sc->sc_maps[1].h;
- switch (what) {
- case ISIC_WHAT_ISAC:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_ISAC_OFF+offs);
- bus_space_write_1(t, h, ASI_OFF_RW, data);
- break;
- case ISIC_WHAT_HSCXA:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_HSCXA_OFF+offs);
- bus_space_write_1(t, h, ASI_OFF_RW, data);
- break;
- case ISIC_WHAT_HSCXB:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_HSCXB_OFF+offs);
- bus_space_write_1(t, h, ASI_OFF_RW, data);
- break;
- case ISIC_WHAT_IPAC:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_IPAC_OFF+offs);
- bus_space_write_1(t, h, ASI_OFF_RW, data);
- break;
- }
-}
-#endif
-
-/*---------------------------------------------------------------------------*
- * Asuscom ISDNlink 128K PnP ISAC get register routine
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-
-static u_char
-asi_read_reg(u_char *base, u_int offset)
-{
- u_int asus_base;
-
- asus_base = ((u_int) base) & ASI_BASE_MASK;
- switch (((u_int) base) & ASI_OFF_MASK) {
- case ASI_IDHSCXB:
- outb(asus_base + ASI_OFF_ALE, (u_char)(offset+IPAC_HSCXB_OFF));
- return(inb(asus_base + ASI_OFF_RW));
- case ASI_IDHSCXA:
- outb(asus_base + ASI_OFF_ALE, (u_char)(offset+IPAC_HSCXA_OFF));
- return(inb(asus_base + ASI_OFF_RW));
- case ASI_IDISAC:
- outb(asus_base + ASI_OFF_ALE, (u_char)(offset+IPAC_ISAC_OFF));
- return(inb(asus_base + ASI_OFF_RW));
- case ASI_IDIPAC:
- outb(asus_base + ASI_OFF_ALE, (u_char)(offset+IPAC_IPAC_OFF));
- return(inb(asus_base + ASI_OFF_RW));
- }
-
- return 0; /* NOTREACHED */
-}
-
-#else
-
-static u_int8_t
-asi_read_reg(struct isic_softc *sc, int what, bus_size_t offs)
-{
- bus_space_tag_t t = sc->sc_maps[1].t;
- bus_space_handle_t h = sc->sc_maps[1].h;
- switch (what) {
- case ISIC_WHAT_ISAC:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_ISAC_OFF+offs);
- return bus_space_read_1(t, h, ASI_OFF_RW);
- case ISIC_WHAT_HSCXA:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_HSCXA_OFF+offs);
- return bus_space_read_1(t, h, ASI_OFF_RW);
- case ISIC_WHAT_HSCXB:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_HSCXB_OFF+offs);
- return bus_space_read_1(t, h, ASI_OFF_RW);
- case ISIC_WHAT_IPAC:
- bus_space_write_1(t, h, ASI_OFF_ALE, IPAC_IPAC_OFF+offs);
- return bus_space_read_1(t, h, ASI_OFF_RW);
- }
-
- return 0;
-}
-
-#endif
-
-/*---------------------------------------------------------------------------*
- * isic_attach_asi - attach for Asuscom ISDNlink 128K PnP
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-int
-isic_probe_asi(struct isa_device *dev, unsigned int iobase2)
-{
- struct isic_softc *sc = &isic_sc[dev->id_unit];
-
- /* check max unit range */
-
- if(dev->id_unit >= ISIC_MAXUNIT)
- {
- printf("isic%d: Error, unit %d >= ISIC_MAXUNIT "
- "for Asuscom ISDNlink 128K PnP!\n",
- dev->id_unit, dev->id_unit);
-
- return(0);
- }
- sc->sc_unit = dev->id_unit;
-
- /* setup iobase */
-
- if((dev->id_iobase <= 0) || (dev->id_iobase > 0xffff))
- {
- printf("isic%d: Error, invalid iobase 0x%x specified "
- "for Asuscom ISDNlink 128K PnP\n",
- dev->id_unit, iobase2);
-
- return(0);
- }
-
- sc->sc_port = dev->id_iobase;
-
- /* setup access routines */
-
- sc->clearirq = NULL;
- sc->readreg = asi_read_reg;
- sc->writereg = asi_write_reg;
-
- sc->readfifo = asi_read_fifo;
- sc->writefifo = asi_write_fifo;
-
- /* setup card type */
-
- sc->sc_cardtyp = CARD_TYPEP_ASUSCOMIPAC;
-
- /* setup IOM bus type */
-
- sc->sc_bustyp = BUS_TYPE_IOM2;
-
- /* setup chip type = IPAC ! */
-
- sc->sc_ipac = 1;
- sc->sc_bfifolen = IPAC_BFIFO_LEN;
-
- /* setup ISAC and HSCX base addr */
-
- ISAC_BASE = (caddr_t) ((u_int)dev->id_iobase | ASI_IDISAC);
- HSCX_A_BASE = (caddr_t) ((u_int)dev->id_iobase | ASI_IDHSCXA);
- HSCX_B_BASE = (caddr_t) ((u_int)dev->id_iobase | ASI_IDHSCXB);
- IPAC_BASE = (caddr_t) ((u_int)dev->id_iobase | ASI_IDIPAC);
-
- return (1);
-}
-
-int
-isic_attach_asi(struct isa_device *dev, unsigned int iobase2)
-{
- struct isic_softc *sc = &isic_sc[dev->id_unit];
- /* enable hscx/isac irq's */
-#if 0
-/*
- * This is for ELSA driver
- */
- IPAC_WRITE(IPAC_MASK, (IPAC_MASK_INT1 | IPAC_MASK_INT0));
-
- IPAC_WRITE(IPAC_ACFG, 0); /* outputs are open drain */
- IPAC_WRITE(IPAC_AOE, /* aux 5..2 are inputs, 7, 6 outputs */
- (IPAC_AOE_OE5 | IPAC_AOE_OE4 | IPAC_AOE_OE3 | IPAC_AOE_OE2));
- IPAC_WRITE(IPAC_ATX, 0xff); /* set all output lines high */
-
- outb(dev->id_iobase + 0x4c, 0x41); /* enable card interrupt */
-#endif
-/*
- * This has been taken from Linux driver.
- * XXX Figure out bits to use defines as original driver did.
- */
- IPAC_WRITE (IPAC_CONF, 0x0);
- IPAC_WRITE (IPAC_ACFG, 0xff);
- IPAC_WRITE (IPAC_AOE, 0x0);
- IPAC_WRITE (IPAC_MASK, 0xc0);
- IPAC_WRITE (IPAC_PCFG, 0x12);
-
- return (1);
-}
-
-#else /* !FreeBSD */
-
-void
-isic_attach_asi(psc, pa)
- struct pci_isic_softc *psc;
- struct pci_attach_args *pa;
-{
- struct isic_softc *sc = &psc->sc_isic;
-
- /* setup io mappings */
- sc->sc_num_mappings = 2;
- MALLOC_MAPS(sc);
- sc->sc_maps[0].size = 0;
- if (pci_mapreg_map(pa, ASI_PORT0_MAPOFF, PCI_MAPREG_TYPE_IO, 0,
- &sc->sc_maps[0].t, &sc->sc_maps[0].h, NULL, NULL)) {
- printf("%s: can't map i/o space\n", sc->sc_dev.dv_xname);
- return;
- }
- sc->sc_maps[1].size = 0;
- if (pci_mapreg_map(pa, ASI_PORT1_MAPOFF, PCI_MAPREG_TYPE_IO, 0,
- &sc->sc_maps[1].t, &sc->sc_maps[1].h, NULL, NULL)) {
- printf("%s: can't map i/o space\n", sc->sc_dev.dv_xname);
- return;
- }
-
- /* setup access routines */
-
- sc->clearirq = NULL;
- sc->readreg = asi_read_reg;
- sc->writereg = asi_write_reg;
-
- sc->readfifo = asi_read_fifo;
- sc->writefifo = asi_write_fifo;
-
- /* setup card type */
-
- sc->sc_cardtyp = CARD_TYPEP_ASUSCOMIPAC;
-
- /* setup IOM bus type */
-
- sc->sc_bustyp = BUS_TYPE_IOM2;
-
- /* setup chip type = IPAC ! */
-
- sc->sc_ipac = 1;
- sc->sc_bfifolen = IPAC_BFIFO_LEN;
-
-#if 0
-/*
- * This for ELSA card in original driver.
- */
- /* enable hscx/isac irq's */
- IPAC_WRITE(IPAC_MASK, (IPAC_MASK_INT1 | IPAC_MASK_INT0));
-
- IPAC_WRITE(IPAC_ACFG, 0); /* outputs are open drain */
- IPAC_WRITE(IPAC_AOE, /* aux 5..2 are inputs, 7, 6 outputs */
- (IPAC_AOE_OE5 | IPAC_AOE_OE4 | IPAC_AOE_OE3 | IPAC_AOE_OE2));
- IPAC_WRITE(IPAC_ATX, 0xff); /* set all output lines high */
-
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, 0x4c, 0x41); /* enable card interrupt */
-#endif
-/*
- * This has been taken from Linux driver.
- * XXX Figure out bits to use defines as original driver did.
- */
- IPAC_WRITE (IPAC_CONF, 0x0);
- IPAC_WRITE (IPAC_ACFG, 0xff);
- IPAC_WRITE (IPAC_AOE, 0x0);
- IPAC_WRITE (IPAC_MASK, 0xc0);
- IPAC_WRITE (IPAC_PCFG, 0x12);
-}
-
-
-#endif
-
-#endif /* (NISIC > 0) && defined(ASUSCOM_IPAC) */
diff --git a/sys/i4b/layer1/i4b_avm_fritz_pci.c b/sys/i4b/layer1/i4b_avm_fritz_pci.c
deleted file mode 100644
index 0b41c7bea129..000000000000
--- a/sys/i4b/layer1/i4b_avm_fritz_pci.c
+++ /dev/null
@@ -1,1732 +0,0 @@
-/*
- * Copyright (c) 1999 Gary Jennejohn. 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. Neither the name of the author nor the names of any co-contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * 4. Altered versions must be plainly marked as such, and must not be
- * misrepresented as being the original software and/or documentation.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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 lot of code was borrowed from i4b_bchan.c and i4b_hscx.c
- *---------------------------------------------------------------------------
- *
- * Fritz!Card PCI specific routines for isic driver
- * ------------------------------------------------
- *
- * $FreeBSD$
- *
- * last edit-date: [Tue Jun 1 14:08:01 1999]
- *
- *---------------------------------------------------------------------------*/
-
-#if defined(__FreeBSD__)
-#include "isic.h"
-#include "opt_i4b.h"
-#else
-#define NISIC 1
-#endif
-
-#if NISIC > 0 && defined(AVM_A1_PCI)
-
-#include <sys/param.h>
-#if defined(__FreeBSD__) && __FreeBSD__ >= 3
-#include <sys/ioccom.h>
-#else
-#include <sys/ioctl.h>
-#endif
-#include <sys/kernel.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-
-#ifdef __FreeBSD__
-#include <machine/clock.h>
-#include <i386/isa/isa_device.h>
-#include <pci/pcivar.h> /* for pcici_t */
-#if __FreeBSD__ < 3
-#include <pci/pcireg.h>
-#include <pci/pcibus.h>
-#endif /* __FreeBSD__ < 3 */
-#else
-#include <machine/bus.h>
-#include <sys/device.h>
-#endif
-
-#include <sys/socket.h>
-#include <net/if.h>
-
-#ifdef __FreeBSD__
-#include <machine/i4b_debug.h>
-#include <machine/i4b_ioctl.h>
-#else
-#include <dev/pci/pcireg.h>
-#include <dev/pci/pcivar.h>
-#include <dev/pci/pcidevs.h>
-#include <i4b/i4b_debug.h>
-#include <i4b/i4b_ioctl.h>
-#endif
-
-#include <i4b/include/i4b_global.h>
-#include <i4b/include/i4b_l1l2.h>
-#include <i4b/include/i4b_mbuf.h>
-
-#include <i4b/layer1/i4b_l1.h>
-#include <i4b/layer1/i4b_isac.h>
-#include <i4b/layer1/i4b_hscx.h>
-
-#ifndef __FreeBSD__
-
-#include <i4b/layer1/pci_isic.h>
-
-/* PCI config map to use (only one in this driver) */
-#define FRITZPCI_PORT0_MAPOFF PCI_MAPREG_START+4
-
-#endif
-
-/* prototypes */
-static void avma1pp_disable(struct isic_softc *);
-
-#ifdef __FreeBSD__
-
-static void avma1pp_intr(struct isic_softc *);
-static void avma1pp_disable(struct isic_softc *);
-void avma1pp_map_int(pcici_t , void *, unsigned *);
-static void hscx_write_reg(int, u_int, u_int, struct isic_softc *);
-static u_char hscx_read_reg(int, u_int, struct isic_softc *);
-static u_int hscx_read_reg_int(int, u_int, struct isic_softc *);
-static void hscx_read_fifo(int, void *, size_t, struct isic_softc *);
-static void hscx_write_fifo(int, const void *, size_t, struct isic_softc *);
-static void avma1pp_hscx_int_handler(struct isic_softc *);
-static void avma1pp_hscx_intr(int, u_int, struct isic_softc *);
-static void avma1pp_init_linktab(struct isic_softc *);
-static void avma1pp_bchannel_setup(int, int, int, int);
-static void avma1pp_bchannel_start(int, int);
-static void avma1pp_hscx_init(struct isic_softc *, int, int);
-static void avma1pp_bchannel_stat(int, int, bchan_statistics_t *);
-static void avma1pp_set_linktab(int, int, drvr_link_t *);
-static isdn_link_t * avma1pp_ret_linktab(int, int);
-int isic_attach_avma1pp(int, u_int, u_int);
-extern void isicintr_sc(struct isic_softc *);
-
-#else
-
-static int avma1pp_intr(void*);
-static void avma1pp_read_fifo(struct isic_softc *sc, int what, void *buf, size_t size);
-static void avma1pp_write_fifo(struct isic_softc *sc, int what, const void *buf, size_t size);
-static void avma1pp_write_reg(struct isic_softc *sc, int what, bus_size_t offs, u_int8_t data);
-static u_int8_t avma1pp_read_reg(struct isic_softc *sc, int what, bus_size_t offs);
-static void hscx_write_fifo(int chan, const void *buf, size_t len, struct isic_softc *sc);
-static void hscx_read_fifo(int chan, void *buf, size_t len, struct isic_softc *sc);
-static void hscx_write_reg(int chan, u_int off, u_int val, struct isic_softc *sc);
-static u_char hscx_read_reg(int chan, u_int off, struct isic_softc *sc);
-static u_int hscx_read_reg_int(int chan, u_int off, struct isic_softc *sc);
-static void avma1pp_fifo(isic_Bchan_t *chan, struct isic_softc *sc);
-static void avma1pp_bchannel_stat(int unit, int h_chan, bchan_statistics_t *bsp);
-static void avma1pp_map_int(struct pci_isic_softc *sc, struct pci_attach_args *pa);
-static void avma1pp_bchannel_setup(int unit, int h_chan, int bprot, int activate);
-static void avma1pp_init_linktab(struct isic_softc *);
-#endif
-
-/*---------------------------------------------------------------------------*
- * AVM PCI Fritz!Card special registers
- *---------------------------------------------------------------------------*/
-
-/*
- * register offsets from i/o base
- */
-#define STAT0_OFFSET 0x02
-#define STAT1_OFFSET 0x03
-#define ADDR_REG_OFFSET 0x04
-/*#define MODREG_OFFSET 0x06
-#define VERREG_OFFSET 0x07*/
-
-/* these 2 are used to select an ISAC register set */
-#define ISAC_LO_REG_OFFSET 0x04
-#define ISAC_HI_REG_OFFSET 0x06
-
-/* offset higher than this goes to the HI register set */
-#define MAX_LO_REG_OFFSET 0x2f
-
-/* mask for the offset */
-#define ISAC_REGSET_MASK 0x0f
-
-/* the offset from the base to the ISAC registers */
-#define ISAC_REG_OFFSET 0x10
-
-/* the offset from the base to the ISAC FIFO */
-#define ISAC_FIFO 0x02
-
-/* not really the HSCX, but sort of */
-#define HSCX_FIFO 0x00
-#define HSCX_STAT 0x04
-
-/*
- * AVM PCI Status Latch 0 read only bits
- */
-#define ASL_IRQ_ISAC 0x01 /* ISAC interrupt, active low */
-#define ASL_IRQ_HSCX 0x02 /* HSX interrupt, active low */
-#define ASL_IRQ_TIMER 0x04 /* Timer interrupt, active low */
-#define ASL_IRQ_BCHAN ASL_IRQ_HSCX
-/* actually active LOW */
-#define ASL_IRQ_Pending (ASL_IRQ_ISAC | ASL_IRQ_HSCX | ASL_IRQ_TIMER)
-
-/*
- * AVM Status Latch 0 write only bits
- */
-#define ASL_RESET_ALL 0x01 /* reset siemens IC's, active 1 */
-#define ASL_TIMERDISABLE 0x02 /* active high */
-#define ASL_TIMERRESET 0x04 /* active high */
-#define ASL_ENABLE_INT 0x08 /* active high */
-#define ASL_TESTBIT 0x10 /* active high */
-
-/*
- * AVM Status Latch 1 write only bits
- */
-#define ASL1_INTSEL 0x0f /* active high */
-#define ASL1_ENABLE_IOM 0x80 /* active high */
-
-/*
- * "HSCX" mode bits
- */
-#define HSCX_MODE_ITF_FLG 0x01
-#define HSCX_MODE_TRANS 0x02
-#define HSCX_MODE_CCR_7 0x04
-#define HSCX_MODE_CCR_16 0x08
-#define HSCX_MODE_TESTLOOP 0x80
-
-/*
- * "HSCX" status bits
- */
-#define HSCX_STAT_RME 0x01
-#define HSCX_STAT_RDO 0x10
-#define HSCX_STAT_CRCVFRRAB 0x0E
-#define HSCX_STAT_CRCVFR 0x06
-#define HSCX_STAT_RML_MASK 0x3f00
-
-/*
- * "HSCX" interrupt bits
- */
-#define HSCX_INT_XPR 0x80
-#define HSCX_INT_XDU 0x40
-#define HSCX_INT_RPR 0x20
-#define HSCX_INT_MASK 0xE0
-
-/*
- * "HSCX" command bits
- */
-#define HSCX_CMD_XRS 0x80
-#define HSCX_CMD_XME 0x01
-#define HSCX_CMD_RRS 0x20
-#define HSCX_CMD_XML_MASK 0x3f00
-
-/*
- * Commands and parameters are sent to the "HSCX" as a long, but the
- * fields are handled as bytes.
- *
- * The long contains:
- * (prot << 16)|(txl << 8)|cmd
- *
- * where:
- * prot = protocol to use
- * txl = transmit length
- * cmd = the command to be executed
- *
- * The fields are defined as u_char in struct isic_softc.
- *
- * Macro to coalesce the byte fields into a u_int
- */
-#define AVMA1PPSETCMDLONG(f) (f) = ((sc->avma1pp_cmd) | (sc->avma1pp_txl << 8) \
- | (sc->avma1pp_prot << 16))
-
-#ifdef __FreeBSD__
-
-/* "fake" addresses for the non-existent HSCX */
-/* note: the unit number is in the lower byte for both the ISAC and "HSCX" */
-#define HSCX0FAKE 0xfa000 /* read: fake0 */
-#define HSCX1FAKE 0xfa100 /* read: fake1 */
-#define IS_HSCX_MASK 0xfff00
-
-#endif /* __FreeBSD__ */
-
-/*
- * to prevent deactivating the "HSCX" when both channels are active we
- * define an HSCX_ACTIVE flag which is or'd into the channel's state
- * flag in avma1pp_bchannel_setup upon active and cleared upon deactivation.
- * It is set high to allow room for new flags.
- */
-#define HSCX_AVMA1PP_ACTIVE 0x1000
-
-/*---------------------------------------------------------------------------*
- * AVM read fifo routines
- *---------------------------------------------------------------------------*/
-
-#ifdef __FreeBSD__
-static void
-avma1pp_read_fifo(void *buf, const void *base, size_t len)
-{
- int unit;
- struct isic_softc *sc;
-
- unit = (int)base & 0xff;
- sc = &isic_sc[unit];
-
- /* check whether the target is an HSCX */
- if (((int)base & IS_HSCX_MASK) == HSCX0FAKE)
- {
- hscx_read_fifo(0, buf, len, sc);
- return;
- }
- if (((int)base & IS_HSCX_MASK) == HSCX1FAKE)
- {
- hscx_read_fifo(1, buf, len, sc);
- return;
- }
- /* tell the board to access the ISAC fifo */
- outb(sc->sc_port + ADDR_REG_OFFSET, ISAC_FIFO);
- insb(sc->sc_port + ISAC_REG_OFFSET, (u_char *)buf, len);
-}
-
-static void
-hscx_read_fifo(int chan, void *buf, size_t len, struct isic_softc *sc)
-{
- u_int *ip;
- size_t cnt;
-
- outl(sc->sc_port + ADDR_REG_OFFSET, chan);
- ip = (u_int *)buf;
- cnt = 0;
- /* what if len isn't a multiple of sizeof(int) and buf is */
- /* too small ???? */
- while (cnt < len)
- {
- *ip++ = inl(sc->sc_port + ISAC_REG_OFFSET);
- cnt += 4;
- }
-}
-
-#else
-
-static void
-avma1pp_read_fifo(struct isic_softc *sc, int what, void *buf, size_t size)
-{
- switch (what) {
- case ISIC_WHAT_ISAC:
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, ADDR_REG_OFFSET, ISAC_FIFO);
- bus_space_read_multi_1(sc->sc_maps[0].t, sc->sc_maps[0].h, ISAC_REG_OFFSET, buf, size);
- break;
- case ISIC_WHAT_HSCXA:
- hscx_read_fifo(0, buf, size, sc);
- break;
- case ISIC_WHAT_HSCXB:
- hscx_read_fifo(1, buf, size, sc);
- break;
- }
-}
-
-static void
-hscx_read_fifo(int chan, void *buf, size_t len, struct isic_softc *sc)
-{
- u_int32_t *ip;
- size_t cnt;
-
- bus_space_write_4(sc->sc_maps[0].t, sc->sc_maps[0].h, ADDR_REG_OFFSET, chan);
- ip = (u_int32_t *)buf;
- cnt = 0;
- /* what if len isn't a multiple of sizeof(int) and buf is */
- /* too small ???? */
- while (cnt < len)
- {
- *ip++ = bus_space_read_4(sc->sc_maps[0].t, sc->sc_maps[0].h, ISAC_REG_OFFSET);
- cnt += 4;
- }
-}
-
-#endif
-
-/*---------------------------------------------------------------------------*
- * AVM write fifo routines
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-static void
-avma1pp_write_fifo(void *base, const void *buf, size_t len)
-{
- int unit;
- struct isic_softc *sc;
-
- unit = (int)base & 0xff;
- sc = &isic_sc[unit];
-
- /* check whether the target is an HSCX */
- if (((int)base & IS_HSCX_MASK) == HSCX0FAKE)
- {
- hscx_write_fifo(0, buf, len, sc);
- return;
- }
- if (((int)base & IS_HSCX_MASK) == HSCX1FAKE)
- {
- hscx_write_fifo(1, buf, len, sc);
- return;
- }
- /* tell the board to use the ISAC fifo */
- outb(sc->sc_port + ADDR_REG_OFFSET, ISAC_FIFO);
- outsb(sc->sc_port + ISAC_REG_OFFSET, (const u_char *)buf, len);
-}
-
-static void
-hscx_write_fifo(int chan, const void *buf, size_t len, struct isic_softc *sc)
-{
- register const u_int *ip;
- register size_t cnt;
- isic_Bchan_t *Bchan = &sc->sc_chan[chan];
-
- sc->avma1pp_cmd &= ~HSCX_CMD_XME;
- sc->avma1pp_txl = 0;
- if (Bchan->out_mbuf_cur == NULL)
- {
- if (Bchan->bprot != BPROT_NONE)
- sc->avma1pp_cmd |= HSCX_CMD_XME;
- }
- if (len != sc->sc_bfifolen)
- sc->avma1pp_txl = len;
-
- cnt = 0; /* borrow cnt */
- AVMA1PPSETCMDLONG(cnt);
- hscx_write_reg(chan, HSCX_STAT, cnt, sc);
-
- ip = (const u_int *)buf;
- cnt = 0;
- while (cnt < len)
- {
- outl(sc->sc_port + ISAC_REG_OFFSET, *ip++);
- cnt += 4;
- }
-}
-
-#else
-
-static void
-avma1pp_write_fifo(struct isic_softc *sc, int what, const void *buf, size_t size)
-{
- switch (what) {
- case ISIC_WHAT_ISAC:
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, ADDR_REG_OFFSET, ISAC_FIFO);
- bus_space_write_multi_1(sc->sc_maps[0].t, sc->sc_maps[0].h, ISAC_REG_OFFSET, (u_int8_t*)buf, size);
- break;
- case ISIC_WHAT_HSCXA:
- hscx_write_fifo(0, buf, size, sc);
- break;
- case ISIC_WHAT_HSCXB:
- hscx_write_fifo(1, buf, size, sc);
- break;
- }
-}
-
-static void
-hscx_write_fifo(int chan, const void *buf, size_t len, struct isic_softc *sc)
-{
- u_int32_t *ip;
- size_t cnt;
- isic_Bchan_t *Bchan = &sc->sc_chan[chan];
-
- sc->avma1pp_cmd &= ~HSCX_CMD_XME;
- sc->avma1pp_txl = 0;
- if (Bchan->out_mbuf_cur == NULL)
- {
- if (Bchan->bprot != BPROT_NONE)
- sc->avma1pp_cmd |= HSCX_CMD_XME;
- }
- if (len != sc->sc_bfifolen)
- sc->avma1pp_txl = len;
-
- cnt = 0; /* borrow cnt */
- AVMA1PPSETCMDLONG(cnt);
- hscx_write_reg(chan, HSCX_STAT, cnt, sc);
-
- ip = (u_int32_t *)buf;
- cnt = 0;
- while (cnt < len)
- {
- bus_space_write_4(sc->sc_maps[0].t, sc->sc_maps[0].h, ISAC_REG_OFFSET, *ip);
- ip++;
- cnt += 4;
- }
-}
-#endif
-
-/*---------------------------------------------------------------------------*
- * AVM write register routines
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-static void
-avma1pp_write_reg(u_char *base, u_int offset, u_int v)
-{
- int unit;
- struct isic_softc *sc;
- u_char reg_bank;
-
- unit = (int)base & 0xff;
- sc = &isic_sc[unit];
-
- /* check whether the target is an HSCX */
- if (((int)base & IS_HSCX_MASK) == HSCX0FAKE)
- {
- hscx_write_reg(0, offset, v, sc);
- return;
- }
- if (((int)base & IS_HSCX_MASK) == HSCX1FAKE)
- {
- hscx_write_reg(1, offset, v, sc);
- return;
- }
- /* must be the ISAC */
- reg_bank = (offset > MAX_LO_REG_OFFSET) ? ISAC_HI_REG_OFFSET:ISAC_LO_REG_OFFSET;
-#ifdef AVMA1PCI_DEBUG
- printf("write_reg bank %d off %d.. ", reg_bank, offset);
-#endif
- /* set the register bank */
- outb(sc->sc_port + ADDR_REG_OFFSET, reg_bank);
- outb(sc->sc_port + ISAC_REG_OFFSET + (offset & ISAC_REGSET_MASK), v);
-}
-
-static void
-hscx_write_reg(int chan, u_int off, u_int val, struct isic_softc *sc)
-{
- /* HACK */
- if (off == H_MASK)
- return;
- /* point at the correct channel */
- outl(sc->sc_port + ADDR_REG_OFFSET, chan);
- outl(sc->sc_port + ISAC_REG_OFFSET + off, val);
-}
-
-#else
-
-static void
-avma1pp_write_reg(struct isic_softc *sc, int what, bus_size_t offs, u_int8_t data)
-{
- u_char reg_bank;
- switch (what) {
- case ISIC_WHAT_ISAC:
- reg_bank = (offs > MAX_LO_REG_OFFSET) ? ISAC_HI_REG_OFFSET:ISAC_LO_REG_OFFSET;
-#ifdef AVMA1PCI_DEBUG
- printf("write_reg bank %d off %ld.. ", (int)reg_bank, (long)offs);
-#endif
- /* set the register bank */
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, ADDR_REG_OFFSET, reg_bank);
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, ISAC_REG_OFFSET + (offs & ISAC_REGSET_MASK), data);
- break;
- case ISIC_WHAT_HSCXA:
- hscx_write_reg(0, offs, data, sc);
- break;
- case ISIC_WHAT_HSCXB:
- hscx_write_reg(1, offs, data, sc);
- break;
- }
-}
-
-static void
-hscx_write_reg(int chan, u_int off, u_int val, struct isic_softc *sc)
-{
- /* HACK */
- if (off == H_MASK)
- return;
- /* point at the correct channel */
- bus_space_write_4(sc->sc_maps[0].t, sc->sc_maps[0].h, ADDR_REG_OFFSET, chan);
- bus_space_write_4(sc->sc_maps[0].t, sc->sc_maps[0].h, ISAC_REG_OFFSET + off, val);
-}
-
-#endif
-
-/*---------------------------------------------------------------------------*
- * AVM read register routines
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-
-static u_char
-avma1pp_read_reg(u_char *base, u_int offset)
-{
- int unit;
- struct isic_softc *sc;
- u_char reg_bank;
-
- unit = (int)base & 0xff;
- sc = &isic_sc[unit];
-
- /* check whether the target is an HSCX */
- if (((int)base & IS_HSCX_MASK) == HSCX0FAKE)
- return(hscx_read_reg(0, offset, sc));
- if (((int)base & IS_HSCX_MASK) == HSCX1FAKE)
- return(hscx_read_reg(1, offset, sc));
- /* must be the ISAC */
- reg_bank = (offset > MAX_LO_REG_OFFSET) ? ISAC_HI_REG_OFFSET:ISAC_LO_REG_OFFSET;
-#ifdef AVMA1PCI_DEBUG
- printf("read_reg bank %d off %d.. ", reg_bank, offset);
-#endif
- /* set the register bank */
- outb(sc->sc_port + ADDR_REG_OFFSET, reg_bank);
- return(inb(sc->sc_port + ISAC_REG_OFFSET +
- (offset & ISAC_REGSET_MASK)));
-}
-#else
-static u_int8_t
-avma1pp_read_reg(struct isic_softc *sc, int what, bus_size_t offs)
-{
- u_char reg_bank;
- switch (what) {
- case ISIC_WHAT_ISAC:
- reg_bank = (offs > MAX_LO_REG_OFFSET) ? ISAC_HI_REG_OFFSET:ISAC_LO_REG_OFFSET;
-#ifdef AVMA1PCI_DEBUG
- printf("read_reg bank %d off %ld.. ", (int)reg_bank, (long)offs);
-#endif
- /* set the register bank */
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, ADDR_REG_OFFSET, reg_bank);
- return(bus_space_read_1(sc->sc_maps[0].t, sc->sc_maps[0].h, ISAC_REG_OFFSET +
- (offs & ISAC_REGSET_MASK)));
- case ISIC_WHAT_HSCXA:
- return hscx_read_reg(0, offs, sc);
- case ISIC_WHAT_HSCXB:
- return hscx_read_reg(1, offs, sc);
- }
- return 0;
-}
-#endif
-
-static u_char
-hscx_read_reg(int chan, u_int off, struct isic_softc *sc)
-{
- return(hscx_read_reg_int(chan, off, sc) & 0xff);
-}
-
-/*
- * need to be able to return an int because the RBCH is in the 2nd
- * byte.
- */
-static u_int
-hscx_read_reg_int(int chan, u_int off, struct isic_softc *sc)
-{
- /* HACK */
- if (off == H_ISTA)
- return(0);
- /* point at the correct channel */
-#ifdef __FreeBSD__
- outl(sc->sc_port + ADDR_REG_OFFSET, chan);
- return(inl(sc->sc_port + ISAC_REG_OFFSET + off));
-#else
- bus_space_write_4(sc->sc_maps[0].t, sc->sc_maps[0].h, ADDR_REG_OFFSET, chan);
- return(bus_space_read_4(sc->sc_maps[0].t, sc->sc_maps[0].h, ISAC_REG_OFFSET + off));
-#endif
-}
-
-/*---------------------------------------------------------------------------*
- * isic_attach_avma1pp - attach Fritz!Card PCI
- *---------------------------------------------------------------------------*/
-#ifdef __FreeBSD__
-int
-isic_attach_avma1pp(int unit, u_int iobase1, u_int iobase2)
-{
- struct isic_softc *sc = &isic_sc[unit];
- u_int v;
-
- /* check max unit range */
-
- if(unit >= ISIC_MAXUNIT)
- {
- printf("isic%d: Error, unit %d >= ISIC_MAXUNIT for AVM FRITZ/PCI!\n",
- unit, unit);
- return(0);
- }
- sc->sc_unit = unit;
-
- /* setup iobase */
-
- if((iobase1 <= 0) || (iobase1 > 0xffff))
- {
- printf("isic%d: Error, invalid iobase 0x%x specified for AVM FRITZ/PCI!\n",
- unit, iobase1);
- return(0);
- }
- sc->sc_port = iobase1;
-
- /* the ISAC lives at offset 0x10, but we can't use that. */
- /* instead, put the unit number into the lower byte - HACK */
- sc->sc_isac = (caddr_t)((int)(iobase1 & ~0xff) + unit);
-
- /* this thing doesn't have an HSCX, so fake the base addresses */
- /* put the unit number into the lower byte - HACK */
- HSCX_A_BASE = (caddr_t)(HSCX0FAKE + unit);
- HSCX_B_BASE = (caddr_t)(HSCX1FAKE + unit);
-
- /* setup access routines */
-
- sc->clearirq = NULL;
- sc->readreg = avma1pp_read_reg;
- sc->writereg = avma1pp_write_reg;
-
- sc->readfifo = avma1pp_read_fifo;
- sc->writefifo = avma1pp_write_fifo;
-
- /* setup card type */
-
- sc->sc_cardtyp = CARD_TYPEP_AVMA1PCI;
-
- /* setup IOM bus type */
-
- sc->sc_bustyp = BUS_TYPE_IOM2;
-
- /* set up some other miscellaneous things */
- sc->sc_ipac = 0;
- sc->sc_bfifolen = HSCX_FIFO_LEN;
-
- /* reset the card */
- /* the Linux driver does this to clear any pending ISAC interrupts */
- v = 0;
- v = ISAC_READ(I_STAR);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_STAR %x...", v);
-#endif
- v = ISAC_READ(I_MODE);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_MODE %x...", v);
-#endif
- v = ISAC_READ(I_ADF2);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_ADF2 %x...", v);
-#endif
- v = ISAC_READ(I_ISTA);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_ISTA %x...", v);
-#endif
- if (v & ISAC_ISTA_EXI)
- {
- v = ISAC_READ(I_EXIR);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_EXIR %x...", v);
-#endif
- }
- v = ISAC_READ(I_CIRR);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_CIRR %x...", v);
-#endif
- ISAC_WRITE(I_MASK, 0xff);
- /* the Linux driver does this to clear any pending HSCX interrupts */
- v = hscx_read_reg_int(0, HSCX_STAT, sc);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: 0 HSCX_STAT %x...", v);
-#endif
- v = hscx_read_reg_int(1, HSCX_STAT, sc);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: 1 HSCX_STAT %x\n", v);
-#endif
-
- outb(sc->sc_port + STAT0_OFFSET, ASL_RESET_ALL|ASL_TIMERDISABLE);
- DELAY(SEC_DELAY/100); /* 10 ms */
- outb(sc->sc_port + STAT0_OFFSET, ASL_TIMERRESET|ASL_ENABLE_INT|ASL_TIMERDISABLE);
- DELAY(SEC_DELAY/100); /* 10 ms */
-#ifdef AVMA1PCI_DEBUG
- outb(sc->sc_port + STAT1_OFFSET, ASL1_ENABLE_IOM|sc->sc_irq);
- DELAY(SEC_DELAY/100); /* 10 ms */
- printf("after reset: S1 %#x\n", inb(sc->sc_port + STAT1_OFFSET));
-
- v = inl(sc->sc_port);
- printf("isic_attach_avma1pp: v %#x\n", v);
-#endif
-
- /* from here to the end would normally be done in isic_pciattach */
-
- printf("isic%d: ISAC %s (IOM-%c)\n", unit,
- "2085 Version A1/A2 or 2086/2186 Version 1.1",
- sc->sc_bustyp == BUS_TYPE_IOM1 ? '1' : '2');
-
- /* init the ISAC */
- isic_isac_init(sc);
-
- /* init the "HSCX" */
- avma1pp_bchannel_setup(sc->sc_unit, HSCX_CH_A, BPROT_NONE, 0);
-
- avma1pp_bchannel_setup(sc->sc_unit, HSCX_CH_B, BPROT_NONE, 0);
-
- /* can't use the normal B-Channel stuff */
- avma1pp_init_linktab(sc);
-
- /* set trace level */
-
- sc->sc_trace = TRACE_OFF;
-
- sc->sc_state = ISAC_IDLE;
-
- sc->sc_ibuf = NULL;
- sc->sc_ib = NULL;
- sc->sc_ilen = 0;
-
- sc->sc_obuf = NULL;
- sc->sc_op = NULL;
- sc->sc_ol = 0;
- sc->sc_freeflag = 0;
-
- sc->sc_obuf2 = NULL;
- sc->sc_freeflag2 = 0;
-
-#if defined(__FreeBSD__) && __FreeBSD__ >=3
- callout_handle_init(&sc->sc_T3_callout);
- callout_handle_init(&sc->sc_T4_callout);
-#endif
-
- /* init higher protocol layers */
-
- MPH_Status_Ind(sc->sc_unit, STI_ATTACH, sc->sc_cardtyp);
-
- return(1);
-}
-
-#else
-
-void
-isic_attach_fritzPci(struct pci_isic_softc *psc, struct pci_attach_args *pa)
-{
- struct isic_softc *sc = &psc->sc_isic;
- u_int v;
-
- isic_sc[sc->sc_unit] = sc; /* XXX - hack! */
-
- /* setup io mappings */
- sc->sc_num_mappings = 1;
- MALLOC_MAPS(sc);
- sc->sc_maps[0].size = 0;
- if (pci_mapreg_map(pa, FRITZPCI_PORT0_MAPOFF, PCI_MAPREG_TYPE_IO, 0,
- &sc->sc_maps[0].t, &sc->sc_maps[0].h, NULL, NULL)) {
- printf("%s: can't map i/o space\n", sc->sc_dev.dv_xname);
- return;
- }
-
- /* setup access routines */
-
- sc->clearirq = NULL;
- sc->readreg = avma1pp_read_reg;
- sc->writereg = avma1pp_write_reg;
-
- sc->readfifo = avma1pp_read_fifo;
- sc->writefifo = avma1pp_write_fifo;
-
-
- /* setup card type */
-
- sc->sc_cardtyp = CARD_TYPEP_AVMA1PCI;
-
- /* setup IOM bus type */
-
- sc->sc_bustyp = BUS_TYPE_IOM2;
-
- /* this is no IPAC based card */
- sc->sc_ipac = 0;
- sc->sc_bfifolen = HSCX_FIFO_LEN;
-
- /* init the card */
- /* the Linux driver does this to clear any pending ISAC interrupts */
- /* see if it helps any - XXXX */
- v = 0;
- v = ISAC_READ(I_STAR);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_STAR %x...", v);
-#endif
- v = ISAC_READ(I_MODE);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_MODE %x...", v);
-#endif
- v = ISAC_READ(I_ADF2);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_ADF2 %x...", v);
-#endif
- v = ISAC_READ(I_ISTA);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_ISTA %x...", v);
-#endif
- if (v & ISAC_ISTA_EXI)
- {
- v = ISAC_READ(I_EXIR);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_EXIR %x...", v);
-#endif
- }
- v = ISAC_READ(I_CIRR);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: I_CIRR %x...", v);
-#endif
- ISAC_WRITE(I_MASK, 0xff);
- /* the Linux driver does this to clear any pending HSCX interrupts */
- v = hscx_read_reg_int(0, HSCX_STAT, sc);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: 0 HSCX_STAT %x...", v);
-#endif
- v = hscx_read_reg_int(1, HSCX_STAT, sc);
-#ifdef AVMA1PCI_DEBUG
- printf("avma1pp_attach: 1 HSCX_STAT %x\n", v);
-#endif
-
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, STAT0_OFFSET, ASL_RESET_ALL|ASL_TIMERDISABLE);
- DELAY(SEC_DELAY/100); /* 10 ms */
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, STAT0_OFFSET, ASL_TIMERRESET|ASL_ENABLE_INT|ASL_TIMERDISABLE);
- DELAY(SEC_DELAY/100); /* 10 ms */
-#ifdef AVMA1PCI_DEBUG
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, STAT1_OFFSET, ASL1_ENABLE_IOM|sc->sc_irq);
- DELAY(SEC_DELAY/100); /* 10 ms */
- v = bus_space_read_1(sc->sc_maps[0].t, sc->sc_maps[0].h, STAT1_OFFSET);
- printf("after reset: S1 %#x\n", v);
-
- v = bus_space_read_4(sc->sc_maps[0].t, sc->sc_maps[0].h, 0);
- printf("isic_attach_avma1pp: v %#x\n", v);
-#endif
-
- /* setup i4b infrastructure (have to roll our own here) */
-
- /* sc->sc_isac_version = ((ISAC_READ(I_RBCH)) >> 5) & 0x03; */
- printf("%s: ISAC %s (IOM-%c)\n", sc->sc_dev.dv_xname,
- "2085 Version A1/A2 or 2086/2186 Version 1.1",
- sc->sc_bustyp == BUS_TYPE_IOM1 ? '1' : '2');
-
- /* init the ISAC */
- isic_isac_init(sc);
-
- /* init the "HSCX" */
- avma1pp_bchannel_setup(sc->sc_unit, HSCX_CH_A, BPROT_NONE, 0);
-
- avma1pp_bchannel_setup(sc->sc_unit, HSCX_CH_B, BPROT_NONE, 0);
-
- /* can't use the normal B-Channel stuff */
- avma1pp_init_linktab(sc);
-
- /* set trace level */
-
- sc->sc_trace = TRACE_OFF;
-
- sc->sc_state = ISAC_IDLE;
-
- sc->sc_ibuf = NULL;
- sc->sc_ib = NULL;
- sc->sc_ilen = 0;
-
- sc->sc_obuf = NULL;
- sc->sc_op = NULL;
- sc->sc_ol = 0;
- sc->sc_freeflag = 0;
-
- sc->sc_obuf2 = NULL;
- sc->sc_freeflag2 = 0;
-
- /* init higher protocol layers */
-
- MPH_Status_Ind(sc->sc_unit, STI_ATTACH, sc->sc_cardtyp);
-
- /* setup interrupt mapping */
- avma1pp_map_int(psc, pa);
-}
-
-#endif
-
-/*
- * this is the real interrupt routine
- */
-static void
-avma1pp_hscx_intr(int h_chan, u_int stat, struct isic_softc *sc)
-{
- register isic_Bchan_t *chan = &sc->sc_chan[h_chan];
- int activity = -1;
- u_int param = 0;
-
- DBGL1(L1_H_IRQ, "avma1pp_hscx_intr", ("%#x\n", stat));
-
- if((stat & HSCX_INT_XDU) && (chan->bprot != BPROT_NONE))/* xmit data underrun */
- {
- chan->stat_XDU++;
- DBGL1(L1_H_XFRERR, "avma1pp_hscx_intr", ("xmit data underrun\n"));
- /* abort the transmission */
- sc->avma1pp_txl = 0;
- sc->avma1pp_cmd |= HSCX_CMD_XRS;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
- sc->avma1pp_cmd &= ~HSCX_CMD_XRS;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
-
- if (chan->out_mbuf_head != NULL) /* don't continue to transmit this buffer */
- {
- i4b_Bfreembuf(chan->out_mbuf_head);
- chan->out_mbuf_cur = chan->out_mbuf_head = NULL;
- }
- }
-
- /*
- * The following is based on examination of the Linux driver.
- *
- * The logic here is different than with a "real" HSCX; all kinds
- * of information (interrupt/status bits) are in stat.
- * HSCX_INT_RPR indicates a receive interrupt
- * HSCX_STAT_RDO indicates an overrun condition, abort -
- * otherwise read the bytes ((stat & HSCX_STZT_RML_MASK) >> 8)
- * HSCX_STAT_RME indicates end-of-frame and apparently any
- * CRC/framing errors are only reported in this state.
- * if ((stat & HSCX_STAT_CRCVFRRAB) != HSCX_STAT_CRCVFR)
- * CRC/framing error
- */
-
- if(stat & HSCX_INT_RPR)
- {
- register int fifo_data_len;
- int error = 0;
- /* always have to read the FIFO, so use a scratch buffer */
- u_char scrbuf[HSCX_FIFO_LEN];
-
- if(stat & HSCX_STAT_RDO)
- {
- chan->stat_RDO++;
- DBGL1(L1_H_XFRERR, "avma1pp_hscx_intr", ("receive data overflow\n"));
- error++;
- }
-
- fifo_data_len = ((stat & HSCX_STAT_RML_MASK) >> 8);
-
- if(fifo_data_len == 0)
- fifo_data_len = sc->sc_bfifolen;
-
- /* ALWAYS read data from HSCX fifo */
-
- HSCX_RDFIFO(h_chan, scrbuf, fifo_data_len);
- chan->rxcount += fifo_data_len;
-
- /* all error conditions checked, now decide and take action */
-
- if(error == 0)
- {
- if(chan->in_mbuf == NULL)
- {
- if((chan->in_mbuf = i4b_Bgetmbuf(BCH_MAX_DATALEN)) == NULL)
- panic("L1 avma1pp_hscx_intr: RME, cannot allocate mbuf!\n");
- chan->in_cbptr = chan->in_mbuf->m_data;
- chan->in_len = 0;
- }
-
- if((chan->in_len + fifo_data_len) <= BCH_MAX_DATALEN)
- {
- /* OK to copy the data */
- bcopy(scrbuf, chan->in_cbptr, fifo_data_len);
- chan->in_cbptr += fifo_data_len;
- chan->in_len += fifo_data_len;
-
- /* setup mbuf data length */
-
- chan->in_mbuf->m_len = chan->in_len;
- chan->in_mbuf->m_pkthdr.len = chan->in_len;
-
- if(sc->sc_trace & TRACE_B_RX)
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = sc->sc_unit;
- hdr.type = (h_chan == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_NT;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->in_mbuf->m_len, chan->in_mbuf->m_data);
- }
-
- if (stat & HSCX_STAT_RME)
- {
- if((stat & HSCX_STAT_CRCVFRRAB) == HSCX_STAT_CRCVFR)
- {
- (*chan->drvr_linktab->bch_rx_data_ready)(chan->drvr_linktab->unit);
- activity = ACT_RX;
-
- /* mark buffer ptr as unused */
-
- chan->in_mbuf = NULL;
- chan->in_cbptr = NULL;
- chan->in_len = 0;
- }
- else
- {
- chan->stat_CRC++;
- DBGL1(L1_H_XFRERR, "avma1pp_hscx_intr", ("CRC/RAB\n"));
- if (chan->in_mbuf != NULL)
- {
- i4b_Bfreembuf(chan->in_mbuf);
- chan->in_mbuf = NULL;
- chan->in_cbptr = NULL;
- chan->in_len = 0;
- }
- }
- }
- } /* END enough space in mbuf */
- else
- {
- if(chan->bprot == BPROT_NONE)
- {
- /* setup mbuf data length */
-
- chan->in_mbuf->m_len = chan->in_len;
- chan->in_mbuf->m_pkthdr.len = chan->in_len;
-
- if(sc->sc_trace & TRACE_B_RX)
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = sc->sc_unit;
- hdr.type = (h_chan == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_NT;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->in_mbuf->m_len, chan->in_mbuf->m_data);
- }
-
- /* move rx'd data to rx queue */
-
- IF_ENQUEUE(&chan->rx_queue, chan->in_mbuf);
-
- (*chan->drvr_linktab->bch_rx_data_ready)(chan->drvr_linktab->unit);
-
- if(!(isic_hscx_silence(chan->in_mbuf->m_data, chan->in_mbuf->m_len)))
- activity = ACT_RX;
-
- /* alloc new buffer */
-
- if((chan->in_mbuf = i4b_Bgetmbuf(BCH_MAX_DATALEN)) == NULL)
- panic("L1 avma1pp_hscx_intr: RPF, cannot allocate new mbuf!\n");
-
- /* setup new data ptr */
-
- chan->in_cbptr = chan->in_mbuf->m_data;
-
- /* OK to copy the data */
- bcopy(scrbuf, chan->in_cbptr, fifo_data_len);
-
- chan->in_cbptr += fifo_data_len;
- chan->in_len = fifo_data_len;
-
- chan->rxcount += fifo_data_len;
- }
- else
- {
- DBGL1(L1_H_XFRERR, "avma1pp_hscx_intr", ("RAWHDLC rx buffer overflow in RPF, in_len=%d\n", chan->in_len));
- chan->in_cbptr = chan->in_mbuf->m_data;
- chan->in_len = 0;
- }
- }
- } /* if(error == 0) */
- else
- {
- /* land here for RDO */
- if (chan->in_mbuf != NULL)
- {
- i4b_Bfreembuf(chan->in_mbuf);
- chan->in_mbuf = NULL;
- chan->in_cbptr = NULL;
- chan->in_len = 0;
- }
- sc->avma1pp_txl = 0;
- sc->avma1pp_cmd |= HSCX_CMD_RRS;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
- sc->avma1pp_cmd &= ~HSCX_CMD_RRS;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
- }
- }
-
-
- /* transmit fifo empty, new data can be written to fifo */
-
- if(stat & HSCX_INT_XPR)
- {
- /*
- * for a description what is going on here, please have
- * a look at isic_bchannel_start() in i4b_bchan.c !
- */
-
- DBGL1(L1_H_IRQ, "avma1pp_hscx_intr", ("unit %d, chan %d - XPR, Tx Fifo Empty!\n", sc->sc_unit, h_chan));
-
- if(chan->out_mbuf_cur == NULL) /* last frame is transmitted */
- {
- IF_DEQUEUE(&chan->tx_queue, chan->out_mbuf_head);
-
- if(chan->out_mbuf_head == NULL)
- {
- chan->state &= ~HSCX_TX_ACTIVE;
- (*chan->drvr_linktab->bch_tx_queue_empty)(chan->drvr_linktab->unit);
- }
- else
- {
- chan->state |= HSCX_TX_ACTIVE;
- chan->out_mbuf_cur = chan->out_mbuf_head;
- chan->out_mbuf_cur_ptr = chan->out_mbuf_cur->m_data;
- chan->out_mbuf_cur_len = chan->out_mbuf_cur->m_len;
-
- if(sc->sc_trace & TRACE_B_TX)
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = sc->sc_unit;
- hdr.type = (h_chan == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_TE;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->out_mbuf_cur->m_len, chan->out_mbuf_cur->m_data);
- }
-
- if(chan->bprot == BPROT_NONE)
- {
- if(!(isic_hscx_silence(chan->out_mbuf_cur->m_data, chan->out_mbuf_cur->m_len)))
- activity = ACT_TX;
- }
- else
- {
- activity = ACT_TX;
- }
- }
- }
-
- isic_hscx_fifo(chan, sc);
- }
-
- /* call timeout handling routine */
-
- if(activity == ACT_RX || activity == ACT_TX)
- (*chan->drvr_linktab->bch_activity)(chan->drvr_linktab->unit, activity);
-}
-
-/*
- * this is the main routine which checks each channel and then calls
- * the real interrupt routine as appropriate
- */
-static void
-avma1pp_hscx_int_handler(struct isic_softc *sc)
-{
- u_int stat;
-
- /* has to be a u_int because the byte count is in the 2nd byte */
- stat = hscx_read_reg_int(0, HSCX_STAT, sc);
- if (stat & HSCX_INT_MASK)
- avma1pp_hscx_intr(0, stat, sc);
- stat = hscx_read_reg_int(1, HSCX_STAT, sc);
- if (stat & HSCX_INT_MASK)
- avma1pp_hscx_intr(1, stat, sc);
-}
-
-static void
-avma1pp_disable(struct isic_softc *sc)
-{
-#ifdef __FreeBSD__
- outb(sc->sc_port + STAT0_OFFSET, ASL_RESET_ALL|ASL_TIMERDISABLE);
-#else
- bus_space_write_1(sc->sc_maps[0].t, sc->sc_maps[0].h, STAT0_OFFSET, ASL_RESET_ALL|ASL_TIMERDISABLE);
-#endif
-}
-
-#ifdef __FreeBSD__
-static void
-avma1pp_intr(struct isic_softc *sc)
-{
-#define OURS /* no return value accumulated */
-#define ISICINTR(sc) isicintr_sc(sc)
-#else
-static int
-avma1pp_intr(void * parm)
-{
- struct isic_softc *sc = parm;
- int ret = 0;
-#define OURS ret = 1
-#define ISICINTR(sc) isicintr(sc)
-#endif
- u_char stat;
-
-#ifdef __FreeBSD__
- stat = inb(sc->sc_port + STAT0_OFFSET);
-#else
- stat = bus_space_read_1(sc->sc_maps[0].t, sc->sc_maps[0].h, STAT0_OFFSET);
-#endif
- DBGL1(L1_H_IRQ, "avma1pp_intr", ("stat %x\n", stat));
- /* was there an interrupt from this card ? */
- if ((stat & ASL_IRQ_Pending) == ASL_IRQ_Pending)
-#ifdef __FreeBSD__
- return; /* no */
-#else
- return 0; /* no */
-#endif
- /* interrupts are low active */
- if (!(stat & ASL_IRQ_TIMER))
- DBGL1(L1_H_IRQ, "avma1pp_intr", ("timer interrupt ???\n"));
- if (!(stat & ASL_IRQ_HSCX))
- {
- DBGL1(L1_H_IRQ, "avma1pp_intr", ("HSCX\n"));
- avma1pp_hscx_int_handler(sc);
- OURS;
- }
- if (!(stat & ASL_IRQ_ISAC))
- {
- DBGL1(L1_H_IRQ, "avma1pp_intr", ("ISAC\n"));
- ISICINTR(sc);
- OURS;
- }
-#ifndef __FreeBSD__
- return ret;
-#endif
-}
-
-#ifdef __FreeBSD__
-void
-avma1pp_map_int(pcici_t config_id, void *pisc, unsigned *net_imask)
-{
- struct isic_softc *sc = (struct isic_softc *)pisc;
-
-#ifdef AVMA1PCI_DEBUG
- /* may need the irq later */
-#if __FreeBSD__ < 3
- /* I'd like to call getirq here, but it is static */
- sc->sc_irq = PCI_INTERRUPT_LINE_EXTRACT(
- pci_conf_read (config_id, PCI_INTERRUPT_REG));
-
- if (sc->sc_irq == 0 || sc->sc_irq == 0xff)
- printf ("avma1pp_map_int:int line register not set by bios\n");
-
- if (sc->sc_irq >= PCI_MAX_IRQ)
- printf ("avma1pp_map_int:irq %d out of bounds (must be < %d)\n",
- sc->sc_irq, PCI_MAX_IRQ);
-#else
- sc->sc_irq = config_id->intline;
-#endif
-#endif /* AVMA1PCI_DEBUG */
-
- if(!(pci_map_int(config_id, (void *)avma1pp_intr, sc, net_imask)))
- {
- printf("Failed to map interrupt for AVM Fritz!Card PCI\n");
- /* disable the card */
- avma1pp_disable(sc);
- }
-}
-#else
-static void
-avma1pp_map_int(struct pci_isic_softc *psc, struct pci_attach_args *pa)
-{
- struct isic_softc *sc = &psc->sc_isic;
- pci_chipset_tag_t pc = pa->pa_pc;
- pci_intr_handle_t ih;
- const char *intrstr;
-
- /* Map and establish the interrupt. */
- if (pci_intr_map(pc, pa->pa_intrtag, pa->pa_intrpin,
- pa->pa_intrline, &ih)) {
- printf("%s: couldn't map interrupt\n", sc->sc_dev.dv_xname);
- avma1pp_disable(sc);
- return;
- }
- intrstr = pci_intr_string(pc, ih);
- psc->sc_ih = pci_intr_establish(pc, ih, IPL_NET, avma1pp_intr, sc);
- if (psc->sc_ih == NULL) {
- printf("%s: couldn't establish interrupt",
- sc->sc_dev.dv_xname);
- if (intrstr != NULL)
- printf(" at %s", intrstr);
- printf("\n");
- avma1pp_disable(sc);
- return;
- }
- printf("%s: interrupting at %s\n", sc->sc_dev.dv_xname, intrstr);
-}
-#endif
-
-static void
-avma1pp_hscx_init(struct isic_softc *sc, int h_chan, int activate)
-{
- isic_Bchan_t *chan = &sc->sc_chan[h_chan];
- u_int param = 0;
-
- DBGL1(L1_BCHAN, "avma1pp_hscx_init", ("unit=%d, channel=%d, %s\n",
- sc->sc_unit, h_chan, activate ? "activate" : "deactivate"));
-
- if (activate == 0)
- {
- /* only deactivate if both channels are idle */
- if (sc->sc_chan[HSCX_CH_A].state != HSCX_IDLE ||
- sc->sc_chan[HSCX_CH_B].state != HSCX_IDLE)
- {
- return;
- }
- sc->avma1pp_cmd = HSCX_CMD_XRS|HSCX_CMD_RRS;
- sc->avma1pp_prot = HSCX_MODE_TRANS;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
- return;
- }
- if(chan->bprot == BPROT_RHDLC)
- {
- DBGL1(L1_BCHAN, "avma1pp_hscx_init", ("BPROT_RHDLC\n"));
-
- /* HDLC Frames, transparent mode 0 */
- sc->avma1pp_cmd = HSCX_CMD_XRS|HSCX_CMD_RRS;
- sc->avma1pp_prot = HSCX_MODE_ITF_FLG;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
- sc->avma1pp_cmd = HSCX_CMD_XRS;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
- sc->avma1pp_cmd = 0;
- }
- else
- {
- DBGL1(L1_BCHAN, "avma1pp_hscx_init", ("BPROT_NONE??\n"));
-
- /* Raw Telephony, extended transparent mode 1 */
- sc->avma1pp_cmd = HSCX_CMD_XRS|HSCX_CMD_RRS;
- sc->avma1pp_prot = HSCX_MODE_TRANS;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
- sc->avma1pp_cmd = HSCX_CMD_XRS;
- AVMA1PPSETCMDLONG(param);
- hscx_write_reg(h_chan, HSCX_STAT, param, sc);
- sc->avma1pp_cmd = 0;
- }
-}
-
-static void
-avma1pp_bchannel_setup(int unit, int h_chan, int bprot, int activate)
-{
-#ifdef __FreeBSD__
- struct isic_softc *sc = &isic_sc[unit];
-#else
- struct isic_softc *sc = isic_find_sc(unit);
-#endif
- isic_Bchan_t *chan = &sc->sc_chan[h_chan];
-
- int s = SPLI4B();
-
- if(activate == 0)
- {
- /* deactivation */
- chan->state &= ~HSCX_AVMA1PP_ACTIVE;
- avma1pp_hscx_init(sc, h_chan, activate);
- }
-
- DBGL1(L1_BCHAN, "avma1pp_bchannel_setup", ("unit=%d, channel=%d, %s\n",
- sc->sc_unit, h_chan, activate ? "activate" : "deactivate"));
-
- /* general part */
-
- chan->unit = sc->sc_unit; /* unit number */
- chan->channel = h_chan; /* B channel */
- chan->bprot = bprot; /* B channel protocol */
- chan->state = HSCX_IDLE; /* B channel state */
-
- /* receiver part */
-
- i4b_Bcleanifq(&chan->rx_queue); /* clean rx queue */
-
- chan->rx_queue.ifq_maxlen = IFQ_MAXLEN;
-
- chan->rxcount = 0; /* reset rx counter */
-
- i4b_Bfreembuf(chan->in_mbuf); /* clean rx mbuf */
-
- chan->in_mbuf = NULL; /* reset mbuf ptr */
- chan->in_cbptr = NULL; /* reset mbuf curr ptr */
- chan->in_len = 0; /* reset mbuf data len */
-
- /* transmitter part */
-
- i4b_Bcleanifq(&chan->tx_queue); /* clean tx queue */
-
- chan->tx_queue.ifq_maxlen = IFQ_MAXLEN;
-
- chan->txcount = 0; /* reset tx counter */
-
- i4b_Bfreembuf(chan->out_mbuf_head); /* clean tx mbuf */
-
- chan->out_mbuf_head = NULL; /* reset head mbuf ptr */
- chan->out_mbuf_cur = NULL; /* reset current mbuf ptr */
- chan->out_mbuf_cur_ptr = NULL; /* reset current mbuf data ptr */
- chan->out_mbuf_cur_len = 0; /* reset current mbuf data cnt */
-
- if(activate != 0)
- {
- /* activation */
- avma1pp_hscx_init(sc, h_chan, activate);
- chan->state |= HSCX_AVMA1PP_ACTIVE;
- }
-
- splx(s);
-}
-
-static void
-avma1pp_bchannel_start(int unit, int h_chan)
-{
-#ifdef __FreeBSD__
- struct isic_softc *sc = &isic_sc[unit];
-#else
- struct isic_softc *sc = isic_find_sc(unit);
-#endif
- register isic_Bchan_t *chan = &sc->sc_chan[h_chan];
- int s;
- int activity = -1;
-
- s = SPLI4B(); /* enter critical section */
- if(chan->state & HSCX_TX_ACTIVE) /* already running ? */
- {
- splx(s);
- return; /* yes, leave */
- }
-
- /* get next mbuf from queue */
-
- IF_DEQUEUE(&chan->tx_queue, chan->out_mbuf_head);
-
- if(chan->out_mbuf_head == NULL) /* queue empty ? */
- {
- splx(s); /* leave critical section */
- return; /* yes, exit */
- }
-
- /* init current mbuf values */
-
- chan->out_mbuf_cur = chan->out_mbuf_head;
- chan->out_mbuf_cur_len = chan->out_mbuf_cur->m_len;
- chan->out_mbuf_cur_ptr = chan->out_mbuf_cur->m_data;
-
- /* activity indicator for timeout handling */
-
- if(chan->bprot == BPROT_NONE)
- {
- if(!(isic_hscx_silence(chan->out_mbuf_cur->m_data, chan->out_mbuf_cur->m_len)))
- activity = ACT_TX;
- }
- else
- {
- activity = ACT_TX;
- }
-
- chan->state |= HSCX_TX_ACTIVE; /* we start transmitting */
-
- if(sc->sc_trace & TRACE_B_TX) /* if trace, send mbuf to trace dev */
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = unit;
- hdr.type = (h_chan == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_TE;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->out_mbuf_cur->m_len, chan->out_mbuf_cur->m_data);
- }
-
- isic_hscx_fifo(chan, sc);
-
- /* call timeout handling routine */
-
- if(activity == ACT_RX || activity == ACT_TX)
- (*chan->drvr_linktab->bch_activity)(chan->drvr_linktab->unit, activity);
-
- splx(s);
-}
-
-/*---------------------------------------------------------------------------*
- * return the address of isic drivers linktab
- *---------------------------------------------------------------------------*/
-static isdn_link_t *
-avma1pp_ret_linktab(int unit, int channel)
-{
-#ifdef __FreeBSD__
- struct isic_softc *sc = &isic_sc[unit];
-#else
- struct isic_softc *sc = isic_find_sc(unit);
-#endif
- isic_Bchan_t *chan = &sc->sc_chan[channel];
-
- return(&chan->isdn_linktab);
-}
-
-/*---------------------------------------------------------------------------*
- * set the driver linktab in the b channel softc
- *---------------------------------------------------------------------------*/
-static void
-avma1pp_set_linktab(int unit, int channel, drvr_link_t *dlt)
-{
-#ifdef __FreeBSD__
- struct isic_softc *sc = &isic_sc[unit];
-#else
- struct isic_softc *sc = isic_find_sc(unit);
-#endif
- isic_Bchan_t *chan = &sc->sc_chan[channel];
-
- chan->drvr_linktab = dlt;
-}
-
-
-/*---------------------------------------------------------------------------*
- * initialize our local linktab
- *---------------------------------------------------------------------------*/
-static void
-avma1pp_init_linktab(struct isic_softc *sc)
-{
- isic_Bchan_t *chan = &sc->sc_chan[HSCX_CH_A];
- isdn_link_t *lt = &chan->isdn_linktab;
-
- /* make sure the hardware driver is known to layer 4 */
- /* avoid overwriting if already set */
- if (ctrl_types[CTRL_PASSIVE].set_linktab == NULL)
- {
- ctrl_types[CTRL_PASSIVE].set_linktab = avma1pp_set_linktab;
- ctrl_types[CTRL_PASSIVE].get_linktab = avma1pp_ret_linktab;
- }
-
- /* local setup */
- lt->unit = sc->sc_unit;
- lt->channel = HSCX_CH_A;
- lt->bch_config = avma1pp_bchannel_setup;
- lt->bch_tx_start = avma1pp_bchannel_start;
- lt->bch_stat = avma1pp_bchannel_stat;
- lt->tx_queue = &chan->tx_queue;
-
- /* used by non-HDLC data transfers, i.e. telephony drivers */
- lt->rx_queue = &chan->rx_queue;
-
- /* used by HDLC data transfers, i.e. ipr and isp drivers */
- lt->rx_mbuf = &chan->in_mbuf;
-
- chan = &sc->sc_chan[HSCX_CH_B];
- lt = &chan->isdn_linktab;
-
- lt->unit = sc->sc_unit;
- lt->channel = HSCX_CH_B;
- lt->bch_config = avma1pp_bchannel_setup;
- lt->bch_tx_start = avma1pp_bchannel_start;
- lt->bch_stat = avma1pp_bchannel_stat;
- lt->tx_queue = &chan->tx_queue;
-
- /* used by non-HDLC data transfers, i.e. telephony drivers */
- lt->rx_queue = &chan->rx_queue;
-
- /* used by HDLC data transfers, i.e. ipr and isp drivers */
- lt->rx_mbuf = &chan->in_mbuf;
-}
-
-/*
- * use this instead of isic_bchannel_stat in i4b_bchan.c because it's static
- */
-static void
-avma1pp_bchannel_stat(int unit, int h_chan, bchan_statistics_t *bsp)
-{
-#ifdef __FreeBSD__
- struct isic_softc *sc = &isic_sc[unit];
-#else
- struct isic_softc *sc = isic_find_sc(unit);
-#endif
- isic_Bchan_t *chan = &sc->sc_chan[h_chan];
- int s;
-
- s = SPLI4B();
-
- bsp->outbytes = chan->txcount;
- bsp->inbytes = chan->rxcount;
-
- chan->txcount = 0;
- chan->rxcount = 0;
-
- splx(s);
-}
-
-/*---------------------------------------------------------------------------*
- * fill HSCX fifo with data from the current mbuf
- * Put this here until it can go into i4b_hscx.c
- *---------------------------------------------------------------------------*/
-static int
-isic_hscx_fifo(isic_Bchan_t *chan, struct isic_softc *sc)
-{
- int len;
- int nextlen;
- int i;
- int cmd;
- /* using a scratch buffer simplifies writing to the FIFO */
- u_char scrbuf[HSCX_FIFO_LEN];
-
- len = 0;
-
- /*
- * fill the HSCX tx fifo with data from the current mbuf. if
- * current mbuf holds less data than HSCX fifo length, try to
- * get the next mbuf from (a possible) mbuf chain. if there is
- * not enough data in a single mbuf or in a chain, then this
- * is the last mbuf and we tell the HSCX that it has to send
- * CRC and closing flag
- */
-
- while(chan->out_mbuf_cur && len != sc->sc_bfifolen)
- {
- nextlen = min(chan->out_mbuf_cur_len, sc->sc_bfifolen - len);
-
-#ifdef NOTDEF
- printf("i:mh=%p, mc=%p, mcp=%p, mcl=%d l=%d nl=%d # ",
- chan->out_mbuf_head,
- chan->out_mbuf_cur,
- chan->out_mbuf_cur_ptr,
- chan->out_mbuf_cur_len,
- len,
- nextlen);
-#endif
-
- cmd |= HSCX_CMDR_XTF;
- /* collect the data in the scratch buffer */
- for (i = 0; i < nextlen; i++)
- scrbuf[i + len] = chan->out_mbuf_cur_ptr[i];
-
- len += nextlen;
- chan->txcount += nextlen;
-
- chan->out_mbuf_cur_ptr += nextlen;
- chan->out_mbuf_cur_len -= nextlen;
-
- if(chan->out_mbuf_cur_len == 0)
- {
- if((chan->out_mbuf_cur = chan->out_mbuf_cur->m_next) != NULL)
- {
- chan->out_mbuf_cur_ptr = chan->out_mbuf_cur->m_data;
- chan->out_mbuf_cur_len = chan->out_mbuf_cur->m_len;
-
- if(sc->sc_trace & TRACE_B_TX)
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = sc->sc_unit;
- hdr.type = (chan->channel == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_TE;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->out_mbuf_cur->m_len, chan->out_mbuf_cur->m_data);
- }
- }
- else
- {
- if (chan->bprot != BPROT_NONE)
- cmd |= HSCX_CMDR_XME;
- i4b_Bfreembuf(chan->out_mbuf_head);
- chan->out_mbuf_head = NULL;
- }
- }
- }
- /* write what we have from the scratch buf to the HSCX fifo */
- if (len != 0)
- HSCX_WRFIFO(chan->channel, scrbuf, len);
- return(cmd);
-}
-
-#endif /* NISIC > 0 && defined(AVM_A1_PCI) */
diff --git a/sys/i4b/layer1/i4b_avm_fritz_pnp.c b/sys/i4b/layer1/i4b_avm_fritz_pnp.c
deleted file mode 100644
index a411c8cb1320..000000000000
--- a/sys/i4b/layer1/i4b_avm_fritz_pnp.c
+++ /dev/null
@@ -1,1268 +0,0 @@
-/*
- * Copyright (c) 1999 Udo Schweigert. 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. Neither the name of the author nor the names of any co-contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * 4. Altered versions must be plainly marked as such, and must not be
- * misrepresented as being the original software and/or documentation.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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 lot of code was borrowed from i4b_bchan.c and i4b_hscx.c
- * Based on AVM Fritz!PCI driver by Gary Jennejohn
- *---------------------------------------------------------------------------
- * In case of trouble please contact Udo Schweigert <ust@cert.siemens.de>
- *---------------------------------------------------------------------------
- *
- * Fritz!Card PnP specific routines for isic driver
- * ------------------------------------------------
- *
- * $FreeBSD$
- *
- * last edit-date: [Thu 10 Jun 08:50:28 CEST 1999]
- *
- *---------------------------------------------------------------------------*/
-
-#if defined(__FreeBSD__)
-#include "isic.h"
-#include "opt_i4b.h"
-
-#if NISIC > 0 && defined(AVM_PNP)
-
-#include <sys/param.h>
-#if defined(__FreeBSD__) && __FreeBSD__ >= 3
-#include <sys/ioccom.h>
-#else
-#include <sys/ioctl.h>
-#endif
-#include <sys/kernel.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-
-#include <machine/clock.h>
-#include <i386/isa/isa_device.h>
-
-#include <sys/socket.h>
-#include <net/if.h>
-
-#include <machine/i4b_debug.h>
-#include <machine/i4b_ioctl.h>
-
-#include <i4b/include/i4b_global.h>
-#include <i4b/include/i4b_l1l2.h>
-#include <i4b/include/i4b_mbuf.h>
-
-#include <i4b/layer1/i4b_l1.h>
-#include <i4b/layer1/i4b_isac.h>
-#include <i4b/layer1/i4b_hscx.h>
-
-static void hscx_write_reg(int, u_int, struct isic_softc *, int);
-static void hscx_write_reg_val(int, u_int, u_char, struct isic_softc *);
-static u_char hscx_read_reg(int, u_int, struct isic_softc *);
-static void hscx_read_fifo(int, void *, size_t, struct isic_softc *);
-static void hscx_write_fifo(int, const void *, size_t, struct isic_softc *);
-static void avm_pnp_hscx_int_handler(struct isic_softc *);
-static void avm_pnp_hscx_intr(int, int, int, struct isic_softc *);
-static void avm_pnp_init_linktab(struct isic_softc *);
-static void avm_pnp_bchannel_setup(int, int, int, int);
-static void avm_pnp_bchannel_start(int, int);
-static void avm_pnp_hscx_init(struct isic_softc *, int, int);
-static void avm_pnp_bchannel_stat(int, int, bchan_statistics_t *);
-static void avm_pnp_set_linktab(int, int, drvr_link_t *);
-static void avm_pnp_intr(int);
-static isdn_link_t * avm_pnp_ret_linktab(int, int);
-extern void isicintr_sc(struct isic_softc *);
-
-/*---------------------------------------------------------------------------*
- * AVM PnP Fritz!Card special registers
- *---------------------------------------------------------------------------*/
-
-/*
- * register offsets from i/o base
- */
-#define STAT0_OFFSET 0x02
-#define STAT1_OFFSET 0x03
-#define ADDR_REG_OFFSET 0x04
-
-/* these 2 are used to select an ISAC register set */
-#define ISAC_LO_REG_OFFSET 0x04
-#define ISAC_HI_REG_OFFSET 0x06
-
-/* offset higher than this goes to the HI register set */
-#define MAX_LO_REG_OFFSET 0x2f
-
-/* mask for the offset */
-#define ISAC_REGSET_MASK 0x0f
-
-/* the offset from the base to the ISAC registers */
-#define ISAC_REG_OFFSET 0x10
-
-/* the offset from the base to the ISAC FIFO */
-#define ISAC_FIFO 0x02
-
-/* not really the HSCX, but sort of */
-#define HSCX_FIFO 0x00
-#define HSCX_STAT 0x04
-
-/*
- * AVM PnP Status Latch 0 read only bits
- */
-#define ASL_IRQ_ISAC 0x01 /* ISAC interrupt, active low */
-#define ASL_IRQ_HSCX 0x02 /* HSX interrupt, active low */
-#define ASL_IRQ_TIMER 0x04 /* Timer interrupt, active low */
-#define ASL_IRQ_BCHAN ASL_IRQ_HSCX
-/* actually active LOW */
-#define ASL_IRQ_Pending 0x07
-
-/*
- * AVM Status Latch 0 write only bits
- */
-#define ASL_RESET_ALL 0x01 /* reset siemens IC's, active 1 */
-#define ASL_TIMERDISABLE 0x02 /* active high */
-#define ASL_TIMERRESET 0x04 /* active high */
-#define ASL_ENABLE_INT 0x08 /* active high */
-#define ASL_TESTBIT 0x10 /* active high */
-
-/*
- * AVM Status Latch 1 write only bits
- */
-#define ASL1_INTSEL 0x0f /* active high */
-#define ASL1_ENABLE_IOM 0x80 /* active high */
-
-/*
- * "HSCX" mode bits
- */
-#define HSCX_MODE_ITF_FLG 0x01
-#define HSCX_MODE_TRANS 0x02
-#define HSCX_MODE_CCR_7 0x04
-#define HSCX_MODE_CCR_16 0x08
-#define HSCX_MODE_TESTLOOP 0x80
-
-/*
- * "HSCX" status bits
- */
-#define HSCX_STAT_RME 0x01
-#define HSCX_STAT_RDO 0x10
-#define HSCX_STAT_CRCVFRRAB 0x0E
-#define HSCX_STAT_CRCVFR 0x06
-#define HSCX_STAT_RML_MASK 0x3f00
-
-/*
- * "HSCX" interrupt bits
- */
-#define HSCX_INT_XPR 0x80
-#define HSCX_INT_XDU 0x40
-#define HSCX_INT_RPR 0x20
-#define HSCX_INT_MASK 0xE0
-
-/*
- * "HSCX" command bits
- */
-#define HSCX_CMD_XRS 0x80
-#define HSCX_CMD_XME 0x01
-#define HSCX_CMD_RRS 0x20
-#define HSCX_CMD_XML_MASK 0x3f00
-
-/* "fake" addresses for the non-existent HSCX */
-/* note: the unit number is in the lower byte for both the ISAC and "HSCX" */
-#define HSCX0FAKE 0xfa000 /* read: fake0 */
-#define HSCX1FAKE 0xfa100 /* read: fake1 */
-#define IS_HSCX_MASK 0xfff00
-
-/*
- * to prevent deactivating the "HSCX" when both channels are active we
- * define an HSCX_ACTIVE flag which is or'd into the channel's state
- * flag in avm_pnp_bchannel_setup upon active and cleared upon deactivation.
- * It is set high to allow room for new flags.
- */
-#define HSCX_AVMPNP_ACTIVE 0x1000
-
-/*---------------------------------------------------------------------------*
- * AVM read fifo routines
- *---------------------------------------------------------------------------*/
-
-static void
-avm_pnp_read_fifo(void *buf, const void *base, size_t len)
-{
- int unit;
- struct isic_softc *sc;
-
- unit = (int)base & 0xff;
- sc = &isic_sc[unit];
-
- /* check whether the target is an HSCX */
- if (((int)base & IS_HSCX_MASK) == HSCX0FAKE)
- {
- hscx_read_fifo(0, buf, len, sc);
- return;
- }
- if (((int)base & IS_HSCX_MASK) == HSCX1FAKE)
- {
- hscx_read_fifo(1, buf, len, sc);
- return;
- }
- /* tell the board to access the ISAC fifo */
- outb(sc->sc_port + ADDR_REG_OFFSET, ISAC_FIFO);
- insb(sc->sc_port + ISAC_REG_OFFSET, (u_char *)buf, len);
-}
-
-static void
-hscx_read_fifo(int chan, void *buf, size_t len, struct isic_softc *sc)
-{
- u_char *ip;
- size_t cnt;
-
- outb(sc->sc_port + ADDR_REG_OFFSET, chan);
- ip = (u_char *)buf;
- cnt = 0;
-
- while (cnt < len)
- {
- *ip++ = inb(sc->sc_port + ISAC_REG_OFFSET);
- cnt++;
- }
-}
-
-/*---------------------------------------------------------------------------*
- * AVM write fifo routines
- *---------------------------------------------------------------------------*/
-static void
-avm_pnp_write_fifo(void *base, const void *buf, size_t len)
-{
- int unit;
- struct isic_softc *sc;
-
- unit = (int)base & 0xff;
- sc = &isic_sc[unit];
-
- /* check whether the target is an HSCX */
- if (((int)base & IS_HSCX_MASK) == HSCX0FAKE)
- {
- hscx_write_fifo(0, buf, len, sc);
- return;
- }
- if (((int)base & IS_HSCX_MASK) == HSCX1FAKE)
- {
- hscx_write_fifo(1, buf, len, sc);
- return;
- }
- /* tell the board to use the ISAC fifo */
- outb(sc->sc_port + ADDR_REG_OFFSET, ISAC_FIFO);
- outsb(sc->sc_port + ISAC_REG_OFFSET, (const u_char *)buf, len);
-}
-
-static void
-hscx_write_fifo(int chan, const void *buf, size_t len, struct isic_softc *sc)
-{
- register const u_char *ip;
- register size_t cnt;
- isic_Bchan_t *Bchan = &sc->sc_chan[chan];
-
- sc->avma1pp_cmd &= ~HSCX_CMD_XME;
- sc->avma1pp_txl = 0;
-
- if (Bchan->out_mbuf_cur == NULL && Bchan->bprot != BPROT_NONE)
- sc->avma1pp_cmd |= HSCX_CMD_XME;
-
- if (len != sc->sc_bfifolen)
- sc->avma1pp_txl = len;
-
- hscx_write_reg(chan, HSCX_STAT, sc, 3);
-
- ip = (const u_char *)buf;
- cnt = 0;
- while (cnt < len)
- {
- outb(sc->sc_port + ISAC_REG_OFFSET, *ip++);
- cnt++;
- }
-}
-
-/*---------------------------------------------------------------------------*
- * AVM write register routines
- *---------------------------------------------------------------------------*/
-static void
-avm_pnp_write_reg(u_char *base, u_int offset, u_int v)
-{
- int unit;
- struct isic_softc *sc;
- u_char reg_bank;
-
- unit = (int)base & 0xff;
- sc = &isic_sc[unit];
-
- /* check whether the target is an HSCX */
- if (((int)base & IS_HSCX_MASK) == HSCX0FAKE)
- {
- hscx_write_reg_val(0, offset, v, sc);
- return;
- }
- if (((int)base & IS_HSCX_MASK) == HSCX1FAKE)
- {
- hscx_write_reg_val(1, offset, v, sc);
- return;
- }
- /* must be the ISAC */
- reg_bank = (offset > MAX_LO_REG_OFFSET) ? ISAC_HI_REG_OFFSET:ISAC_LO_REG_OFFSET;
- /* set the register bank */
- outb(sc->sc_port + ADDR_REG_OFFSET, reg_bank);
- outb(sc->sc_port + ISAC_REG_OFFSET + (offset & ISAC_REGSET_MASK), v);
-}
-
-static void
-hscx_write_reg(int chan, u_int off, struct isic_softc *sc, int which)
-{
- /* HACK */
- if (off == H_MASK)
- return;
- /* point at the correct channel */
- outb(sc->sc_port + ADDR_REG_OFFSET, chan);
- if (which & 4)
- outb(sc->sc_port + ISAC_REG_OFFSET + off + 2, sc->avma1pp_prot);
- if (which & 2)
- outb(sc->sc_port + ISAC_REG_OFFSET + off + 1, sc->avma1pp_txl);
- if (which & 1)
- outb(sc->sc_port + ISAC_REG_OFFSET + off, sc->avma1pp_cmd);
-}
-
-static void
-hscx_write_reg_val(int chan, u_int off, u_char val, struct isic_softc *sc)
-{
- /* HACK */
- if (off == H_MASK)
- return;
- /* point at the correct channel */
- outb(sc->sc_port + ADDR_REG_OFFSET, chan);
- outb(sc->sc_port + ISAC_REG_OFFSET + off, val);
-}
-
-/*---------------------------------------------------------------------------*
- * AVM read register routines
- *---------------------------------------------------------------------------*/
-
-static u_char
-avm_pnp_read_reg(u_char *base, u_int offset)
-{
- int unit;
- struct isic_softc *sc;
- u_char reg_bank;
-
- unit = (int)base & 0xff;
- sc = &isic_sc[unit];
-
- /* check whether the target is an HSCX */
- if (((int)base & IS_HSCX_MASK) == HSCX0FAKE)
- return(hscx_read_reg(0, offset, sc));
- if (((int)base & IS_HSCX_MASK) == HSCX1FAKE)
- return(hscx_read_reg(1, offset, sc));
- /* must be the ISAC */
- reg_bank = (offset > MAX_LO_REG_OFFSET) ? ISAC_HI_REG_OFFSET:ISAC_LO_REG_OFFSET;
- /* set the register bank */
- outb(sc->sc_port + ADDR_REG_OFFSET, reg_bank);
- return(inb(sc->sc_port + ISAC_REG_OFFSET +
- (offset & ISAC_REGSET_MASK)));
-}
-
-static u_char
-hscx_read_reg(int chan, u_int off, struct isic_softc *sc)
-{
- /* HACK */
- if (off == H_ISTA)
- return(0);
- /* point at the correct channel */
- outb(sc->sc_port + ADDR_REG_OFFSET, chan);
- return(inb(sc->sc_port + ISAC_REG_OFFSET + off));
-}
-
-/*---------------------------------------------------------------------------*
- * isic_probe_avm_pnp - probe Fritz!Card PnP
- *---------------------------------------------------------------------------*/
-
-int
-isic_probe_avm_pnp(struct isa_device *dev, unsigned int iobase2)
-{
- struct isic_softc *sc = &isic_sc[dev->id_unit];
-
- /* check max unit range */
-
- if(dev->id_unit >= ISIC_MAXUNIT)
- {
- printf("isic%d: Error, unit %d >= ISIC_MAXUNIT for AVM Fritz! PnP\n",
- dev->id_unit, dev->id_unit);
- return(0);
- }
- sc->sc_unit = dev->id_unit;
-
- /* check IRQ validity */
-
- switch(ffs(dev->id_irq) - 1)
- {
- case 3:
- case 4:
- case 5:
- case 7:
- case 10:
- case 11:
- case 12:
- case 15:
- break;
-
- default:
- printf("isic%d: Error, invalid IRQ [%d] specified for AVM Fritz! PnP!\n",
- dev->id_unit, ffs(dev->id_irq)-1);
- return(0);
- break;
- }
- sc->sc_irq = dev->id_irq;
-
- dev->id_intr = (inthand2_t *) avm_pnp_intr;
-
- /* check if memory addr specified */
-
- if(dev->id_maddr)
- {
- printf("isic%d: Error, mem addr 0x%lx specified for AVM Fritz! PnP!\n",
- dev->id_unit, (u_long)dev->id_maddr);
- return(0);
- }
- dev->id_msize = 0;
-
- /* check if we got an iobase */
-
- if(!((dev->id_iobase >= 0x160) && (dev->id_iobase <= 0x360)))
- {
- printf("isic%d: Error, invalid iobase 0x%x specified for AVM Fritz! PnP!\n",
- dev->id_unit, dev->id_iobase);
- return(0);
- }
- sc->sc_port = dev->id_iobase;
-
-
- /* setup access routines */
-
- sc->clearirq = NULL;
- sc->readreg = avm_pnp_read_reg;
- sc->writereg = avm_pnp_write_reg;
-
- sc->readfifo = avm_pnp_read_fifo;
- sc->writefifo = avm_pnp_write_fifo;
-
- /* setup card type */
-
- sc->sc_cardtyp = CARD_TYPEP_AVM_PNP;
-
- /* setup IOM bus type */
-
- sc->sc_bustyp = BUS_TYPE_IOM2;
-
- sc->sc_ipac = 0;
- sc->sc_bfifolen = HSCX_FIFO_LEN;
-
- /* the ISAC lives at offset 0x10, but we can't use that. */
- /* instead, put the unit number into the lower byte - HACK */
- ISAC_BASE = (caddr_t)((int)(dev->id_iobase & ~0xff) + dev->id_unit);
-
- outb(sc->sc_port + STAT0_OFFSET, ASL_RESET_ALL|ASL_TIMERDISABLE);
- ISAC_WRITE(I_MASK, 0x0);
- outb(sc->sc_port + STAT0_OFFSET, ASL_TIMERRESET|ASL_ENABLE_INT|ASL_TIMERDISABLE);
- ISAC_WRITE(I_MASK, 0x41);
- return (1);
-}
-
-/*---------------------------------------------------------------------------*
- * isic_attach_avm_pnp - attach Fritz!Card PnP
- *---------------------------------------------------------------------------*/
-int
-isic_attach_avm_pnp(struct isa_device *dev, unsigned int iobase2)
-{
- struct isic_softc *sc;
- u_int v;
- int unit;
-
- unit = dev->id_unit;
- sc = &isic_sc[unit];
-
- /* this thing doesn't have an HSCX, so fake the base addresses */
- /* put the unit number into the lower byte - HACK */
- HSCX_A_BASE = (caddr_t)(HSCX0FAKE + unit);
- HSCX_B_BASE = (caddr_t)(HSCX1FAKE + unit);
-
-
- /* reset the card */
-
- /* the Linux driver does this to clear any pending ISAC interrupts */
- v = 0;
- v = ISAC_READ(I_STAR);
- v = ISAC_READ(I_MODE);
- v = ISAC_READ(I_ADF2);
- v = ISAC_READ(I_ISTA);
- if (v & ISAC_ISTA_EXI)
- {
- v = ISAC_READ(I_EXIR);
- }
- v = ISAC_READ(I_CIRR);
- ISAC_WRITE(I_MASK, 0xff);
-
- /* the Linux driver does this to clear any pending HSCX interrupts */
- v = hscx_read_reg(0, HSCX_STAT, sc);
- v = hscx_read_reg(0, HSCX_STAT+1, sc);
- v = hscx_read_reg(0, HSCX_STAT+2, sc);
- v = hscx_read_reg(0, HSCX_STAT+3, sc);
- v = hscx_read_reg(1, HSCX_STAT, sc);
- v = hscx_read_reg(1, HSCX_STAT+1, sc);
- v = hscx_read_reg(1, HSCX_STAT+2, sc);
- v = hscx_read_reg(1, HSCX_STAT+3, sc);
-
- outb(sc->sc_port + STAT0_OFFSET, ASL_RESET_ALL|ASL_TIMERDISABLE);
- DELAY(SEC_DELAY/100); /* 10 ms */
- outb(sc->sc_port + STAT0_OFFSET, ASL_TIMERRESET|ASL_ENABLE_INT|ASL_TIMERDISABLE);
- DELAY(SEC_DELAY/100); /* 10 ms */
- outb(sc->sc_port + STAT1_OFFSET, ASL1_ENABLE_IOM+(ffs(sc->sc_irq)-1));
- DELAY(SEC_DELAY/100); /* 10 ms */
-
- printf("isic%d: ISAC %s (IOM-%c)\n", unit,
- "2085 Version A1/A2 or 2086/2186 Version 1.1",
- sc->sc_bustyp == BUS_TYPE_IOM1 ? '1' : '2');
-
- /* init the ISAC */
- isic_isac_init(sc);
-
- /* init the "HSCX" */
- avm_pnp_bchannel_setup(sc->sc_unit, HSCX_CH_A, BPROT_NONE, 0);
-
- avm_pnp_bchannel_setup(sc->sc_unit, HSCX_CH_B, BPROT_NONE, 0);
-
- /* can't use the normal B-Channel stuff */
- avm_pnp_init_linktab(sc);
-
- /* set trace level */
-
- sc->sc_trace = TRACE_OFF;
-
- sc->sc_state = ISAC_IDLE;
-
- sc->sc_ibuf = NULL;
- sc->sc_ib = NULL;
- sc->sc_ilen = 0;
-
- sc->sc_obuf = NULL;
- sc->sc_op = NULL;
- sc->sc_ol = 0;
- sc->sc_freeflag = 0;
-
- sc->sc_obuf2 = NULL;
- sc->sc_freeflag2 = 0;
-
-#if defined(__FreeBSD__) && __FreeBSD__ >=3
- callout_handle_init(&sc->sc_T3_callout);
- callout_handle_init(&sc->sc_T4_callout);
-#endif
-
- /* init higher protocol layers */
-
- MPH_Status_Ind(sc->sc_unit, STI_ATTACH, sc->sc_cardtyp);
-
- return(0);
-}
-
-/*
- * this is the real interrupt routine
- */
-static void
-avm_pnp_hscx_intr(int h_chan, int stat, int cnt, struct isic_softc *sc)
-{
- register isic_Bchan_t *chan = &sc->sc_chan[h_chan];
- int activity = -1;
-
- DBGL1(L1_H_IRQ, "avm_pnp_hscx_intr", ("%#x\n", stat));
-
- if((stat & HSCX_INT_XDU) && (chan->bprot != BPROT_NONE))/* xmit data underrun */
- {
- chan->stat_XDU++;
- DBGL1(L1_H_XFRERR, "avm_pnp_hscx_intr", ("xmit data underrun\n"));
- /* abort the transmission */
- sc->avma1pp_txl = 0;
- sc->avma1pp_cmd |= HSCX_CMD_XRS;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 1);
- sc->avma1pp_cmd &= ~HSCX_CMD_XRS;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 1);
-
- if (chan->out_mbuf_head != NULL) /* don't continue to transmit this buffer */
- {
- i4b_Bfreembuf(chan->out_mbuf_head);
- chan->out_mbuf_cur = chan->out_mbuf_head = NULL;
- }
- }
-
- /*
- * The following is based on examination of the Linux driver.
- *
- * The logic here is different than with a "real" HSCX; all kinds
- * of information (interrupt/status bits) are in stat.
- * HSCX_INT_RPR indicates a receive interrupt
- * HSCX_STAT_RDO indicates an overrun condition, abort -
- * otherwise read the bytes ((stat & HSCX_STZT_RML_MASK) >> 8)
- * HSCX_STAT_RME indicates end-of-frame and apparently any
- * CRC/framing errors are only reported in this state.
- * if ((stat & HSCX_STAT_CRCVFRRAB) != HSCX_STAT_CRCVFR)
- * CRC/framing error
- */
-
- if(stat & HSCX_INT_RPR)
- {
- register int fifo_data_len;
- int error = 0;
- /* always have to read the FIFO, so use a scratch buffer */
- u_char scrbuf[HSCX_FIFO_LEN];
-
- if(stat & HSCX_STAT_RDO)
- {
- chan->stat_RDO++;
- DBGL1(L1_H_XFRERR, "avm_pnp_hscx_intr", ("receive data overflow\n"));
- error++;
- }
-
- fifo_data_len = cnt;
-
- if(fifo_data_len == 0)
- fifo_data_len = sc->sc_bfifolen;
-
- /* ALWAYS read data from HSCX fifo */
-
- HSCX_RDFIFO(h_chan, scrbuf, fifo_data_len);
- chan->rxcount += fifo_data_len;
-
- /* all error conditions checked, now decide and take action */
-
- if(error == 0)
- {
- if(chan->in_mbuf == NULL)
- {
- if((chan->in_mbuf = i4b_Bgetmbuf(BCH_MAX_DATALEN)) == NULL)
- panic("L1 avm_pnp_hscx_intr: RME, cannot allocate mbuf!\n");
- chan->in_cbptr = chan->in_mbuf->m_data;
- chan->in_len = 0;
- }
-
- if((chan->in_len + fifo_data_len) <= BCH_MAX_DATALEN)
- {
- /* OK to copy the data */
- bcopy(scrbuf, chan->in_cbptr, fifo_data_len);
- chan->in_cbptr += fifo_data_len;
- chan->in_len += fifo_data_len;
-
- /* setup mbuf data length */
-
- chan->in_mbuf->m_len = chan->in_len;
- chan->in_mbuf->m_pkthdr.len = chan->in_len;
-
-
- if(sc->sc_trace & TRACE_B_RX)
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = sc->sc_unit;
- hdr.type = (h_chan == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_NT;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->in_mbuf->m_len, chan->in_mbuf->m_data);
- }
-
- if (stat & HSCX_STAT_RME)
- {
- if((stat & HSCX_STAT_CRCVFRRAB) == HSCX_STAT_CRCVFR)
- {
- (*chan->drvr_linktab->bch_rx_data_ready)(chan->drvr_linktab->unit);
- activity = ACT_RX;
-
- /* mark buffer ptr as unused */
-
- chan->in_mbuf = NULL;
- chan->in_cbptr = NULL;
- chan->in_len = 0;
- }
- else
- {
- chan->stat_CRC++;
- DBGL1(L1_H_XFRERR, "avm_pnp_hscx_intr", ("CRC/RAB\n"));
- if (chan->in_mbuf != NULL)
- {
- i4b_Bfreembuf(chan->in_mbuf);
- chan->in_mbuf = NULL;
- chan->in_cbptr = NULL;
- chan->in_len = 0;
- }
- }
- }
- } /* END enough space in mbuf */
- else
- {
- if(chan->bprot == BPROT_NONE)
- {
- /* setup mbuf data length */
-
- chan->in_mbuf->m_len = chan->in_len;
- chan->in_mbuf->m_pkthdr.len = chan->in_len;
-
- if(sc->sc_trace & TRACE_B_RX)
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = sc->sc_unit;
- hdr.type = (h_chan == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_NT;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->in_mbuf->m_len, chan->in_mbuf->m_data);
- }
-
- /* move rx'd data to rx queue */
-
- IF_ENQUEUE(&chan->rx_queue, chan->in_mbuf);
-
- (*chan->drvr_linktab->bch_rx_data_ready)(chan->drvr_linktab->unit);
-
- if(!(isic_hscx_silence(chan->in_mbuf->m_data, chan->in_mbuf->m_len)))
- activity = ACT_RX;
-
- /* alloc new buffer */
-
- if((chan->in_mbuf = i4b_Bgetmbuf(BCH_MAX_DATALEN)) == NULL)
- panic("L1 avm_pnp_hscx_intr: RPF, cannot allocate new mbuf!\n");
-
- /* setup new data ptr */
-
- chan->in_cbptr = chan->in_mbuf->m_data;
-
- /* OK to copy the data */
- bcopy(scrbuf, chan->in_cbptr, fifo_data_len);
-
- chan->in_cbptr += fifo_data_len;
- chan->in_len = fifo_data_len;
-
- chan->rxcount += fifo_data_len;
- }
- else
- {
- DBGL1(L1_H_XFRERR, "avm_pnp_hscx_intr", ("RAWHDLC rx buffer overflow in RPF, in_len=%d\n", chan->in_len));
- chan->in_cbptr = chan->in_mbuf->m_data;
- chan->in_len = 0;
- }
- }
- } /* if(error == 0) */
- else
- {
- /* land here for RDO */
- if (chan->in_mbuf != NULL)
- {
- i4b_Bfreembuf(chan->in_mbuf);
- chan->in_mbuf = NULL;
- chan->in_cbptr = NULL;
- chan->in_len = 0;
- }
- sc->avma1pp_txl = 0;
- sc->avma1pp_cmd |= HSCX_CMD_RRS;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 1);
- sc->avma1pp_cmd &= ~HSCX_CMD_RRS;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 1);
- }
- }
-
-
- /* transmit fifo empty, new data can be written to fifo */
-
- if(stat & HSCX_INT_XPR)
- {
- /*
- * for a description what is going on here, please have
- * a look at isic_bchannel_start() in i4b_bchan.c !
- */
-
- DBGL1(L1_H_IRQ, "avm_pnp_hscx_intr", ("unit %d, chan %d - XPR, Tx Fifo Empty!\n", sc->sc_unit, h_chan));
-
- if(chan->out_mbuf_cur == NULL || chan->out_mbuf_head == NULL) /* last frame is transmitted */
- {
- IF_DEQUEUE(&chan->tx_queue, chan->out_mbuf_head);
-
- if(chan->out_mbuf_head == NULL)
- {
- chan->state &= ~HSCX_TX_ACTIVE;
- (*chan->drvr_linktab->bch_tx_queue_empty)(chan->drvr_linktab->unit);
- }
- else
- {
- chan->state |= HSCX_TX_ACTIVE;
- chan->out_mbuf_cur = chan->out_mbuf_head;
- chan->out_mbuf_cur_ptr = chan->out_mbuf_cur->m_data;
- chan->out_mbuf_cur_len = chan->out_mbuf_cur->m_len;
-
- if(sc->sc_trace & TRACE_B_TX)
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = sc->sc_unit;
- hdr.type = (h_chan == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_TE;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->out_mbuf_cur->m_len, chan->out_mbuf_cur->m_data);
- }
- if(chan->bprot == BPROT_NONE)
- {
- if(!(isic_hscx_silence(chan->out_mbuf_cur->m_data, chan->out_mbuf_cur->m_len)))
- activity = ACT_TX;
- }
- else
- {
- activity = ACT_TX;
- }
- }
- }
-
- isic_hscx_fifo(chan, sc);
- }
-
- /* call timeout handling routine */
-
- if(activity == ACT_RX || activity == ACT_TX)
- (*chan->drvr_linktab->bch_activity)(chan->drvr_linktab->unit, activity);
-}
-
-/*
- * this is the main routine which checks each channel and then calls
- * the real interrupt routine as appropriate
- */
-static void
-avm_pnp_hscx_int_handler(struct isic_softc *sc)
-{
- u_char stat = 0;
- u_char cnt = 0;
-
- stat = hscx_read_reg(0, HSCX_STAT, sc);
- if (stat & HSCX_INT_RPR)
- cnt = hscx_read_reg(0, HSCX_STAT+1, sc);
- if (stat & HSCX_INT_MASK)
- avm_pnp_hscx_intr(0, stat, cnt, sc);
-
- cnt = 0;
- stat = hscx_read_reg(1, HSCX_STAT, sc);
- if (stat & HSCX_INT_RPR)
- cnt = hscx_read_reg(1, HSCX_STAT+1, sc);
- if (stat & HSCX_INT_MASK)
- avm_pnp_hscx_intr(1, stat, cnt, sc);
-}
-
-static void
-avm_pnp_hscx_init(struct isic_softc *sc, int h_chan, int activate)
-{
- isic_Bchan_t *chan = &sc->sc_chan[h_chan];
-
- DBGL1(L1_BCHAN, "avm_pnp_hscx_init", ("unit=%d, channel=%d, %s\n",
- sc->sc_unit, h_chan, activate ? "activate" : "deactivate"));
-
- if (activate == 0)
- {
- /* only deactivate if both channels are idle */
- if (sc->sc_chan[HSCX_CH_A].state != HSCX_IDLE ||
- sc->sc_chan[HSCX_CH_B].state != HSCX_IDLE)
- {
- return;
- }
- sc->avma1pp_cmd = HSCX_CMD_XRS|HSCX_CMD_RRS;
- sc->avma1pp_prot = HSCX_MODE_TRANS;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 5);
- return;
- }
- if(chan->bprot == BPROT_RHDLC)
- {
- DBGL1(L1_BCHAN, "avm_pnp_hscx_init", ("BPROT_RHDLC\n"));
-
- /* HDLC Frames, transparent mode 0 */
- sc->avma1pp_cmd = HSCX_CMD_XRS|HSCX_CMD_RRS;
- sc->avma1pp_prot = HSCX_MODE_ITF_FLG;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 5);
- sc->avma1pp_cmd = HSCX_CMD_XRS;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 1);
- sc->avma1pp_cmd = 0;
- }
- else
- {
- DBGL1(L1_BCHAN, "avm_pnp_hscx_init", ("BPROT_NONE??\n"));
-
- /* Raw Telephony, extended transparent mode 1 */
- sc->avma1pp_cmd = HSCX_CMD_XRS|HSCX_CMD_RRS;
- sc->avma1pp_prot = HSCX_MODE_TRANS;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 5);
- sc->avma1pp_cmd = HSCX_CMD_XRS;
- hscx_write_reg(h_chan, HSCX_STAT, sc, 1);
- sc->avma1pp_cmd = 0;
- }
-}
-
-static void
-avm_pnp_bchannel_setup(int unit, int h_chan, int bprot, int activate)
-{
- struct isic_softc *sc = &isic_sc[unit];
- isic_Bchan_t *chan = &sc->sc_chan[h_chan];
-
- int s = SPLI4B();
-
- if(activate == 0)
- {
- /* deactivation */
- chan->state &= ~HSCX_AVMPNP_ACTIVE;
- avm_pnp_hscx_init(sc, h_chan, activate);
- }
-
- DBGL1(L1_BCHAN, "avm_pnp_bchannel_setup", ("unit=%d, channel=%d, %s\n",
- sc->sc_unit, h_chan, activate ? "activate" : "deactivate"));
-
- /* general part */
-
- chan->unit = sc->sc_unit; /* unit number */
- chan->channel = h_chan; /* B channel */
- chan->bprot = bprot; /* B channel protocol */
- chan->state = HSCX_IDLE; /* B channel state */
-
- /* receiver part */
-
- i4b_Bcleanifq(&chan->rx_queue); /* clean rx queue */
-
- chan->rx_queue.ifq_maxlen = IFQ_MAXLEN;
-
- chan->rxcount = 0; /* reset rx counter */
-
- i4b_Bfreembuf(chan->in_mbuf); /* clean rx mbuf */
-
- chan->in_mbuf = NULL; /* reset mbuf ptr */
- chan->in_cbptr = NULL; /* reset mbuf curr ptr */
- chan->in_len = 0; /* reset mbuf data len */
-
- /* transmitter part */
-
- i4b_Bcleanifq(&chan->tx_queue); /* clean tx queue */
-
- chan->tx_queue.ifq_maxlen = IFQ_MAXLEN;
-
- chan->txcount = 0; /* reset tx counter */
-
- i4b_Bfreembuf(chan->out_mbuf_head); /* clean tx mbuf */
-
- chan->out_mbuf_head = NULL; /* reset head mbuf ptr */
- chan->out_mbuf_cur = NULL; /* reset current mbuf ptr */
- chan->out_mbuf_cur_ptr = NULL; /* reset current mbuf data ptr */
- chan->out_mbuf_cur_len = 0; /* reset current mbuf data cnt */
-
- if(activate != 0)
- {
- /* activation */
- avm_pnp_hscx_init(sc, h_chan, activate);
- chan->state |= HSCX_AVMPNP_ACTIVE;
- }
-
- splx(s);
-}
-
-static void
-avm_pnp_bchannel_start(int unit, int h_chan)
-{
- struct isic_softc *sc = &isic_sc[unit];
- register isic_Bchan_t *chan = &sc->sc_chan[h_chan];
- int s;
- int activity = -1;
-
- s = SPLI4B(); /* enter critical section */
- if(chan->state & HSCX_TX_ACTIVE) /* already running ? */
- {
- splx(s);
- return; /* yes, leave */
- }
-
- /* get next mbuf from queue */
-
- IF_DEQUEUE(&chan->tx_queue, chan->out_mbuf_head);
-
- if(chan->out_mbuf_head == NULL) /* queue empty ? */
- {
- splx(s); /* leave critical section */
- return; /* yes, exit */
- }
-
- /* init current mbuf values */
-
- chan->out_mbuf_cur = chan->out_mbuf_head;
- chan->out_mbuf_cur_len = chan->out_mbuf_cur->m_len;
- chan->out_mbuf_cur_ptr = chan->out_mbuf_cur->m_data;
-
- /* activity indicator for timeout handling */
-
- if(chan->bprot == BPROT_NONE)
- {
- if(!(isic_hscx_silence(chan->out_mbuf_cur->m_data, chan->out_mbuf_cur->m_len)))
- activity = ACT_TX;
- }
- else
- {
- activity = ACT_TX;
- }
-
- chan->state |= HSCX_TX_ACTIVE; /* we start transmitting */
-
- if(sc->sc_trace & TRACE_B_TX) /* if trace, send mbuf to trace dev */
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = unit;
- hdr.type = (h_chan == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_TE;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->out_mbuf_cur->m_len, chan->out_mbuf_cur->m_data);
- }
-
- isic_hscx_fifo(chan, sc);
-
- /* call timeout handling routine */
-
- if(activity == ACT_RX || activity == ACT_TX)
- (*chan->drvr_linktab->bch_activity)(chan->drvr_linktab->unit, activity);
-
- splx(s);
-}
-
-/*---------------------------------------------------------------------------*
- * return the address of isic drivers linktab
- *---------------------------------------------------------------------------*/
-static isdn_link_t *
-avm_pnp_ret_linktab(int unit, int channel)
-{
- struct isic_softc *sc = &isic_sc[unit];
- isic_Bchan_t *chan = &sc->sc_chan[channel];
-
- return(&chan->isdn_linktab);
-}
-
-/*---------------------------------------------------------------------------*
- * set the driver linktab in the b channel softc
- *---------------------------------------------------------------------------*/
-static void
-avm_pnp_set_linktab(int unit, int channel, drvr_link_t *dlt)
-{
- struct isic_softc *sc = &isic_sc[unit];
- isic_Bchan_t *chan = &sc->sc_chan[channel];
-
- chan->drvr_linktab = dlt;
-}
-
-
-/*---------------------------------------------------------------------------*
- * initialize our local linktab
- *---------------------------------------------------------------------------*/
-static void
-avm_pnp_init_linktab(struct isic_softc *sc)
-{
- isic_Bchan_t *chan = &sc->sc_chan[HSCX_CH_A];
- isdn_link_t *lt = &chan->isdn_linktab;
-
- /* make sure the hardware driver is known to layer 4 */
- /* avoid overwriting if already set */
- if (ctrl_types[CTRL_PASSIVE].set_linktab == NULL)
- {
- ctrl_types[CTRL_PASSIVE].set_linktab = avm_pnp_set_linktab;
- ctrl_types[CTRL_PASSIVE].get_linktab = avm_pnp_ret_linktab;
- }
-
- /* local setup */
- lt->unit = sc->sc_unit;
- lt->channel = HSCX_CH_A;
- lt->bch_config = avm_pnp_bchannel_setup;
- lt->bch_tx_start = avm_pnp_bchannel_start;
- lt->bch_stat = avm_pnp_bchannel_stat;
- lt->tx_queue = &chan->tx_queue;
-
- /* used by non-HDLC data transfers, i.e. telephony drivers */
- lt->rx_queue = &chan->rx_queue;
-
- /* used by HDLC data transfers, i.e. ipr and isp drivers */
- lt->rx_mbuf = &chan->in_mbuf;
-
- chan = &sc->sc_chan[HSCX_CH_B];
- lt = &chan->isdn_linktab;
-
- lt->unit = sc->sc_unit;
- lt->channel = HSCX_CH_B;
- lt->bch_config = avm_pnp_bchannel_setup;
- lt->bch_tx_start = avm_pnp_bchannel_start;
- lt->bch_stat = avm_pnp_bchannel_stat;
- lt->tx_queue = &chan->tx_queue;
-
- /* used by non-HDLC data transfers, i.e. telephony drivers */
- lt->rx_queue = &chan->rx_queue;
-
- /* used by HDLC data transfers, i.e. ipr and isp drivers */
- lt->rx_mbuf = &chan->in_mbuf;
-}
-
-/*
- * use this instead of isic_bchannel_stat in i4b_bchan.c because it's static
- */
-static void
-avm_pnp_bchannel_stat(int unit, int h_chan, bchan_statistics_t *bsp)
-{
- struct isic_softc *sc = &isic_sc[unit];
- isic_Bchan_t *chan = &sc->sc_chan[h_chan];
- int s;
-
- s = SPLI4B();
-
- bsp->outbytes = chan->txcount;
- bsp->inbytes = chan->rxcount;
-
- chan->txcount = 0;
- chan->rxcount = 0;
-
- splx(s);
-}
-
-/*---------------------------------------------------------------------------*
- * fill HSCX fifo with data from the current mbuf
- * Put this here until it can go into i4b_hscx.c
- *---------------------------------------------------------------------------*/
-static int
-isic_hscx_fifo(isic_Bchan_t *chan, struct isic_softc *sc)
-{
- int len;
- int nextlen;
- int i;
- /* using a scratch buffer simplifies writing to the FIFO */
- u_char scrbuf[HSCX_FIFO_LEN];
-
- len = 0;
-
- /*
- * fill the HSCX tx fifo with data from the current mbuf. if
- * current mbuf holds less data than HSCX fifo length, try to
- * get the next mbuf from (a possible) mbuf chain. if there is
- * not enough data in a single mbuf or in a chain, then this
- * is the last mbuf and we tell the HSCX that it has to send
- * CRC and closing flag
- */
-
- while(chan->out_mbuf_cur && len != sc->sc_bfifolen)
- {
- nextlen = min(chan->out_mbuf_cur_len, sc->sc_bfifolen - len);
-
-#ifdef NOTDEF
- printf("i:mh=%p, mc=%p, mcp=%p, mcl=%d l=%d nl=%d # ",
- chan->out_mbuf_head,
- chan->out_mbuf_cur,
- chan->out_mbuf_cur_ptr,
- chan->out_mbuf_cur_len,
- len,
- nextlen);
-#endif
-
- /* collect the data in the scratch buffer */
- for (i = 0; i < nextlen; i++)
- scrbuf[i + len] = chan->out_mbuf_cur_ptr[i];
-
- len += nextlen;
- chan->txcount += nextlen;
-
- chan->out_mbuf_cur_ptr += nextlen;
- chan->out_mbuf_cur_len -= nextlen;
-
- if(chan->out_mbuf_cur_len == 0)
- {
- if((chan->out_mbuf_cur = chan->out_mbuf_cur->m_next) != NULL)
- {
- chan->out_mbuf_cur_ptr = chan->out_mbuf_cur->m_data;
- chan->out_mbuf_cur_len = chan->out_mbuf_cur->m_len;
-
- if(sc->sc_trace & TRACE_B_TX)
- {
- i4b_trace_hdr_t hdr;
- hdr.unit = sc->sc_unit;
- hdr.type = (chan->channel == HSCX_CH_A ? TRC_CH_B1 : TRC_CH_B2);
- hdr.dir = FROM_TE;
- hdr.count = ++sc->sc_trace_bcount;
- MICROTIME(hdr.time);
- MPH_Trace_Ind(&hdr, chan->out_mbuf_cur->m_len, chan->out_mbuf_cur->m_data);
- }
- }
- else
- {
- i4b_Bfreembuf(chan->out_mbuf_head);
- chan->out_mbuf_head = NULL;
- }
- }
- }
- /* write what we have from the scratch buf to the HSCX fifo */
- if (len != 0)
- HSCX_WRFIFO(chan->channel, scrbuf, len);
-
- return(0);
-}
-
-void
-avm_pnp_intr(int unit)
-{
- struct isic_softc *sc;
- u_char stat;
- register u_char isac_irq_stat;
- int was_isac = 0;
-
- sc = &isic_sc[unit];
-
- for(;;) {
- stat = inb(sc->sc_port + STAT0_OFFSET);
-
- DBGL1(L1_H_IRQ, "avm_pnp_intr", ("stat %x\n", stat));
-
- /* was there an interrupt from this card ? */
- if ((stat & ASL_IRQ_Pending) == ASL_IRQ_Pending)
- break; /* no */
-
- /* interrupts are low active */
- if (!(stat & ASL_IRQ_TIMER))
- DBGL1(L1_H_IRQ, "avm_pnp_intr", ("timer interrupt ???\n"));
-
- if (!(stat & ASL_IRQ_ISAC))
- {
- DBGL1(L1_H_IRQ, "avm_pnp_intr", ("ISAC\n"));
- isac_irq_stat = ISAC_READ(I_ISTA);
- isic_isac_irq(sc, isac_irq_stat);
- was_isac = 1;
- }
-
- if (!(stat & ASL_IRQ_HSCX))
- {
- DBGL1(L1_H_IRQ, "avm_pnp_intr", ("HSCX\n"));
- avm_pnp_hscx_int_handler(sc);
- }
- }
- if (was_isac) {
- ISAC_WRITE(0x20, 0xFF);
- ISAC_WRITE(0x20, 0x0);
- }
-}
-#endif /* NISIC > 0 && defined(AVM_PNP) */
-#endif /* FreeBSD */
diff --git a/sys/i4b/layer1/i4b_siemens_isurf.c b/sys/i4b/layer1/i4b_siemens_isurf.c
deleted file mode 100644
index ed48a66d53e6..000000000000
--- a/sys/i4b/layer1/i4b_siemens_isurf.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Copyright (c) 1999 Udo Schweigert. 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. Neither the name of the author nor the names of any co-contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * 4. Altered versions must be plainly marked as such, and must not be
- * misrepresented as being the original software and/or documentation.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- *---------------------------------------------------------------------------
- * Based on ELSA Quickstep 1000pro PCI driver (i4b_elsa_qs1p.c)
- *---------------------------------------------------------------------------
- * In case of trouble please contact Udo Schweigert <ust@cert.siemens.de>
- *---------------------------------------------------------------------------
- *
- * Siemens I-Surf 2.0 PnP specific routines for isic driver
- * --------------------------------------------------------
- *
- * $FreeBSD$
- *
- * last edit-date: [Mon 14 Jun 16:46:27 CEST 1999]
- *
- *---------------------------------------------------------------------------*/
-
-#if defined(__FreeBSD__)
-#include "isic.h"
-#include "opt_i4b.h"
-
-#if NISIC > 0 && defined(SIEMENS_ISURF2)
-
-#include <sys/param.h>
-#if defined(__FreeBSD__) && __FreeBSD__ >= 3
-#include <sys/ioccom.h>
-#else
-#include <sys/ioctl.h>
-#endif
-#include <sys/kernel.h>
-#include <sys/systm.h>
-#include <sys/mbuf.h>
-
-#include <machine/clock.h>
-#include <i386/isa/isa_device.h>
-
-#include <sys/socket.h>
-#include <net/if.h>
-
-#include <machine/i4b_debug.h>
-#include <machine/i4b_ioctl.h>
-
-#include <i4b/include/i4b_global.h>
-#include <i4b/include/i4b_l1l2.h>
-#include <i4b/include/i4b_mbuf.h>
-
-#include <i4b/layer1/i4b_l1.h>
-#include <i4b/layer1/i4b_ipac.h>
-#include <i4b/layer1/i4b_isac.h>
-#include <i4b/layer1/i4b_hscx.h>
-
-/* masks for register encoded in base addr */
-
-#define SIE_ISURF_BASE_MASK 0x0ffff
-#define SIE_ISURF_OFF_MASK 0xf0000
-
-/* register id's to be encoded in base addr */
-
-#define SIE_ISURF_IDISAC 0x00000
-#define SIE_ISURF_IDHSCXA 0x10000
-#define SIE_ISURF_IDHSCXB 0x20000
-#define SIE_ISURF_IDIPAC 0x40000
-
-/* offsets from base address */
-
-#define SIE_ISURF_OFF_ALE 0x00
-#define SIE_ISURF_OFF_RW 0x01
-
-/*---------------------------------------------------------------------------*
- * Siemens I-Surf 2.0 PnP ISAC get fifo routine
- *---------------------------------------------------------------------------*/
-
-static void
-siemens_isurf_read_fifo(void *buf, const void *base, size_t len)
-{
- if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDHSCXB)
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, IPAC_HSCXB_OFF);
- insb((((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW), (u_char *)buf, (u_int)len);
- }
- else if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDHSCXA)
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, IPAC_HSCXA_OFF);
- insb((((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW), (u_char *)buf, (u_int)len);
- }
- else /* if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDISAC) */
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, IPAC_ISAC_OFF);
- insb((((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW), (u_char *)buf, (u_int)len);
- }
-}
-
-/*---------------------------------------------------------------------------*
- * Siemens I-Surf 2.0 PnP ISAC put fifo routine
- *---------------------------------------------------------------------------*/
-
-static void
-siemens_isurf_write_fifo(void *base, const void *buf, size_t len)
-{
- if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDHSCXB)
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, IPAC_HSCXB_OFF);
- outsb((((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW), (const u_char *)buf, (u_int)len);
- }
- else if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDHSCXA)
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, IPAC_HSCXA_OFF);
- outsb((((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW), (const u_char *)buf, (u_int)len);
- }
- else /* if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDISAC) */
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, IPAC_ISAC_OFF);
- outsb((((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW), (const u_char *)buf, (u_int)len);
- }
-}
-
-/*---------------------------------------------------------------------------*
- * Siemens I-Surf 2.0 PnP ISAC put register routine
- *---------------------------------------------------------------------------*/
-
-static void
-siemens_isurf_write_reg(u_char *base, u_int offset, u_int v)
-{
- if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDHSCXB)
- {
- outb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, (u_char)(offset+IPAC_HSCXB_OFF));
- outb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW, (u_char)v);
- }
- else if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDHSCXA)
- {
- outb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, (u_char)(offset+IPAC_HSCXA_OFF));
- outb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW, (u_char)v);
- }
- else if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDISAC)
- {
- outb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, (u_char)(offset+IPAC_ISAC_OFF));
- outb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW, (u_char)v);
- }
- else /* IPAC */
- {
- outb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, (u_char)(offset+IPAC_IPAC_OFF));
- outb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW, (u_char)v);
- }
-}
-
-/*---------------------------------------------------------------------------*
- * Siemens I-Surf 2.0 PnP ISAC get register routine
- *---------------------------------------------------------------------------*/
-
-static u_char
-siemens_isurf_read_reg(u_char *base, u_int offset)
-{
- if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDHSCXB)
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, (u_char)(offset+IPAC_HSCXB_OFF));
- return(inb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW));
- }
- else if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDHSCXA)
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, (u_char)(offset+IPAC_HSCXA_OFF));
- return(inb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW));
- }
- else if(((u_int)base & SIE_ISURF_OFF_MASK) == SIE_ISURF_IDISAC)
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, (u_char)(offset+IPAC_ISAC_OFF));
- return(inb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW));
- }
- else /* IPAC */
- {
- outb((u_int)((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_ALE, (u_char)(offset+IPAC_IPAC_OFF));
- return(inb(((u_int)base & SIE_ISURF_BASE_MASK) + SIE_ISURF_OFF_RW));
- }
-}
-
-/*---------------------------------------------------------------------------*
- * isic_probe_siemens_isurf - probe for Siemens I-Surf 2.0 PnP
- *---------------------------------------------------------------------------*/
-
-int
-isic_probe_siemens_isurf(struct isa_device *dev, unsigned int iobase2)
-{
- struct isic_softc *sc = &isic_sc[dev->id_unit];
-
- /* check max unit range */
-
- if(dev->id_unit >= ISIC_MAXUNIT)
- {
- printf("isic%d: Error, unit %d >= ISIC_MAXUNIT for Siemens I-Surf 2.0 PnP\n",
- dev->id_unit, dev->id_unit);
- return(0);
- }
- sc->sc_unit = dev->id_unit;
-
- /* check IRQ validity */
-
- switch(ffs(dev->id_irq) - 1)
- {
- case 3:
- case 4:
- case 5:
- case 7:
- case 10:
- case 11:
- case 12:
- case 15:
- break;
-
- default:
- printf("isic%d: Error, invalid IRQ [%d] specified for Siemens I-Surf 2.0 PnP!\n",
- dev->id_unit, ffs(dev->id_irq)-1);
- return(0);
- break;
- }
- sc->sc_irq = dev->id_irq;
-
- /* check if memory addr specified */
-
- if(dev->id_maddr)
- {
- printf("isic%d: Error, mem addr 0x%lx specified for Siemens I-Surf 2.0 PnP!\n",
- dev->id_unit, (u_long)dev->id_maddr);
- return(0);
- }
- dev->id_msize = 0;
-
- /* check if we got an iobase */
-
- if(!((dev->id_iobase >= 0x100) && (dev->id_iobase <= 0xff0)))
- {
- printf("isic%d: Error, invalid iobase 0x%x specified for Siemens I-Surf 2.0 PnP!\n",
- dev->id_unit, dev->id_iobase);
- return(0);
- }
- sc->sc_port = dev->id_iobase;
-
-
- /* setup access routines */
-
- sc->clearirq = NULL;
- sc->readreg = siemens_isurf_read_reg;
- sc->writereg = siemens_isurf_write_reg;
-
- sc->readfifo = siemens_isurf_read_fifo;
- sc->writefifo = siemens_isurf_write_fifo;
-
- /* setup card type */
-
- sc->sc_cardtyp = CARD_TYPEP_SIE_ISURF2;
-
- /* setup IOM bus type */
-
- sc->sc_bustyp = BUS_TYPE_IOM2;
-
- /* setup chip type = IPAC ! */
-
- sc->sc_ipac = 1;
- sc->sc_bfifolen = IPAC_BFIFO_LEN;
-
-
- return (1);
-}
-
-/*---------------------------------------------------------------------------*
- * isic_attach_siemens_isurf - attach for Siemens I-Surf 2.0 PnP
- *---------------------------------------------------------------------------*/
-int
-isic_attach_siemens_isurf(struct isa_device *dev, unsigned int iobase2)
-{
- struct isic_softc *sc = &isic_sc[dev->id_unit];
-
- /* setup ISAC and HSCX base addr */
-
- ISAC_BASE = (caddr_t) ((u_int)sc->sc_port | SIE_ISURF_IDISAC);
- HSCX_A_BASE = (caddr_t) ((u_int)sc->sc_port | SIE_ISURF_IDHSCXA);
- HSCX_B_BASE = (caddr_t) ((u_int)sc->sc_port | SIE_ISURF_IDHSCXB);
- IPAC_BASE = (caddr_t) ((u_int)sc->sc_port | SIE_ISURF_IDIPAC);
-
- /* enable hscx/isac irq's */
- IPAC_WRITE(IPAC_MASK, (IPAC_MASK_INT1 | IPAC_MASK_INT0));
-
- IPAC_WRITE(IPAC_ACFG, 0); /* outputs are open drain */
- IPAC_WRITE(IPAC_AOE, /* aux 5..2 are inputs, 7, 6 outputs */
- (IPAC_AOE_OE5 | IPAC_AOE_OE4 | IPAC_AOE_OE3 | IPAC_AOE_OE2));
- IPAC_WRITE(IPAC_ATX, 0xff); /* set all output lines high */
-
- return(1);
-}
-#endif /* NISIC > 0 && defined(SIEMENS_ISURF2) */
-#endif /* FreeBSD */
diff --git a/sys/i4b/layer1/pci_isic.h b/sys/i4b/layer1/pci_isic.h
deleted file mode 100644
index a19025c8aaf0..000000000000
--- a/sys/i4b/layer1/pci_isic.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 1999 Martin Husemann. 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. Neither the name of the author nor the names of any co-contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * 4. Altered versions must be plainly marked as such, and must not be
- * misrepresented as being the original software and/or documentation.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- *---------------------------------------------------------------------------
- *
- * pci_isic.h - pci bus frontend for i4b_isic driver
- * -------------------------------------------------
- *
- * $FreeBSD$
- *
- * last edit-date: [Wed Mar 10 07:22:08 1999]
- *
- * -mh original implementation
- *
- *---------------------------------------------------------------------------*/
-
-struct pci_isic_softc {
- struct isic_softc sc_isic; /* parent class */
-
- /* PCI-specific goo */
- void *sc_ih; /* interrupt handler */
-};
-
-extern void isic_attach_Eqs1pp __P((struct pci_isic_softc *psc, struct pci_attach_args *pa));
-extern void isic_attach_fritzPci __P((struct pci_isic_softc *psc, struct pci_attach_args *pa));
-
diff --git a/sys/pci/alpm.c b/sys/pci/alpm.c
deleted file mode 100644
index ff4c5d3fb435..000000000000
--- a/sys/pci/alpm.c
+++ /dev/null
@@ -1,666 +0,0 @@
-/*-
- * Copyright (c) 1998, 1999 Nicolas Souchu
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD$
- *
- */
-
-/*
- * Power Management support for the Acer M15x3 chipsets
- */
-#include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/systm.h>
-#include <sys/module.h>
-#include <sys/bus.h>
-#include <sys/conf.h>
-#include <sys/buf.h>
-#include <sys/uio.h>
-#include <sys/malloc.h>
-
-#include <machine/clock.h>
-
-#include <machine/bus_pio.h>
-#include <machine/bus_memio.h>
-#include <machine/bus.h>
-
-#include <pci/pcivar.h>
-#include <pci/pcireg.h>
-
-#include <dev/iicbus/iiconf.h>
-#include <dev/smbus/smbconf.h>
-#include "smbus_if.h"
-
-#include "alpm.h"
-
-#define ALPM_DEBUG(x) if (alpm_debug) (x)
-
-#ifdef DEBUG
-static int alpm_debug = 1;
-#else
-static int alpm_debug = 0;
-#endif
-
-#define ACER_M1543_PMU_ID 0x710110b9
-
-/* Uncomment this line to force another I/O base address for SMB */
-/* #define ALPM_SMBIO_BASE_ADDR 0x3a80 */
-
-/* I/O registers offsets - the base address is programmed via the
- * SMBBA PCI configuration register
- */
-#define SMBSTS 0x0 /* SMBus host/slave status register */
-#define SMBCMD 0x1 /* SMBus host/slave command register */
-#define SMBSTART 0x2 /* start to generate programmed cycle */
-#define SMBHADDR 0x3 /* host address register */
-#define SMBHDATA 0x4 /* data A register for host controller */
-#define SMBHDATB 0x5 /* data B register for host controller */
-#define SMBHBLOCK 0x6 /* block register for host controller */
-#define SMBHCMD 0x7 /* command register for host controller */
-
-/* SMBSTS masks */
-#define TERMINATE 0x80
-#define BUS_COLLI 0x40
-#define DEVICE_ERR 0x20
-#define SMI_I_STS 0x10
-#define HST_BSY 0x08
-#define IDL_STS 0x04
-#define HSTSLV_STS 0x02
-#define HSTSLV_BSY 0x01
-
-/* SMBCMD masks */
-#define SMB_BLK_CLR 0x80
-#define T_OUT_CMD 0x08
-#define ABORT_HOST 0x04
-
-/* SMBus commands */
-#define SMBQUICK 0x00
-#define SMBSRBYTE 0x10 /* send/receive byte */
-#define SMBWRBYTE 0x20 /* write/read byte */
-#define SMBWRWORD 0x30 /* write/read word */
-#define SMBWRBLOCK 0x40 /* write/read block */
-
-/* PCI configuration registers and masks
- */
-#define COM 0x4
-#define COM_ENABLE_IO 0x1
-
-#define SMBBA 0x14
-
-#define ATPC 0x5b
-#define ATPC_SMBCTRL 0x04
-
-#define SMBHSI 0xe0
-#define SMBHSI_SLAVE 0x2
-#define SMBHSI_HOST 0x1
-
-#define SMBHCBC 0xe2
-#define SMBHCBC_CLOCK 0x70
-
-#define SMBCLOCK_149K 0x0
-#define SMBCLOCK_74K 0x20
-#define SMBCLOCK_37K 0x40
-#define SMBCLOCK_223K 0x80
-#define SMBCLOCK_111K 0xa0
-#define SMBCLOCK_55K 0xc0
-
-struct alpm_data {
- int base;
- bus_space_tag_t smbst;
- bus_space_handle_t smbsh;
- pcici_t tag;
-};
-struct alpm_data alpmdata[NALPM];
-
-struct alsmb_softc {
- int base;
- device_t smbus;
- struct alpm_data *alpm;
-};
-
-#define ALPM_SMBINB(alsmb,register) \
- (bus_space_read_1(alsmb->alpm->smbst, alsmb->alpm->smbsh, register))
-#define ALPM_SMBOUTB(alsmb,register,value) \
- (bus_space_write_1(alsmb->alpm->smbst, alsmb->alpm->smbsh, register, value))
-
-static int alsmb_probe(device_t);
-static int alsmb_attach(device_t);
-static int alsmb_smb_callback(device_t, int, caddr_t *);
-static int alsmb_smb_quick(device_t dev, u_char slave, int how);
-static int alsmb_smb_sendb(device_t dev, u_char slave, char byte);
-static int alsmb_smb_recvb(device_t dev, u_char slave, char *byte);
-static int alsmb_smb_writeb(device_t dev, u_char slave, char cmd, char byte);
-static int alsmb_smb_readb(device_t dev, u_char slave, char cmd, char *byte);
-static int alsmb_smb_writew(device_t dev, u_char slave, char cmd, short word);
-static int alsmb_smb_readw(device_t dev, u_char slave, char cmd, short *word);
-static int alsmb_smb_bwrite(device_t dev, u_char slave, char cmd, u_char count, char *buf);
-static int alsmb_smb_bread(device_t dev, u_char slave, char cmd, u_char count, char *byte);
-
-static devclass_t alsmb_devclass;
-
-static device_method_t alsmb_methods[] = {
- /* device interface */
- DEVMETHOD(device_probe, alsmb_probe),
- DEVMETHOD(device_attach, alsmb_attach),
-
- /* bus interface */
- DEVMETHOD(bus_print_child, bus_generic_print_child),
-
- /* smbus interface */
- DEVMETHOD(smbus_callback, alsmb_smb_callback),
- DEVMETHOD(smbus_quick, alsmb_smb_quick),
- DEVMETHOD(smbus_sendb, alsmb_smb_sendb),
- DEVMETHOD(smbus_recvb, alsmb_smb_recvb),
- DEVMETHOD(smbus_writeb, alsmb_smb_writeb),
- DEVMETHOD(smbus_readb, alsmb_smb_readb),
- DEVMETHOD(smbus_writew, alsmb_smb_writew),
- DEVMETHOD(smbus_readw, alsmb_smb_readw),
- DEVMETHOD(smbus_bwrite, alsmb_smb_bwrite),
- DEVMETHOD(smbus_bread, alsmb_smb_bread),
-
- { 0, 0 }
-};
-
-static driver_t alsmb_driver = {
- "alsmb",
- alsmb_methods,
- sizeof(struct alsmb_softc),
-};
-
-static const char* alpm_pci_probe(pcici_t tag, pcidi_t type);
-static void alpm_pci_attach(pcici_t tag, int unit);
-
-static u_long alpm_count;
-
-static struct pci_device alpm_device = {
- "alpm",
- alpm_pci_probe,
- alpm_pci_attach,
- &alpm_count
-};
-
-COMPAT_PCI_DRIVER (alpm, alpm_device);
-
-static const char*
-alpm_pci_probe(pcici_t tag, pcidi_t type)
-{
- if (type == ACER_M1543_PMU_ID)
- return ("AcerLabs M15x3 Power Management Unit");
-
- return ((char *)0);
-}
-
-static void
-alpm_pci_attach(pcici_t tag, int unit)
-{
- struct alpm_data *alpm;
- u_long l;
-
- if (unit >= NALPM) {
- printf("alpm%d: attach: only %d units configured.\n",
- unit, NALPM);
- return;
- }
- alpm = &alpmdata[unit];
-
- alpm->tag = tag;
-
- /* Unlock SMBIO base register access */
- l = pci_cfgread(tag, ATPC, 1);
- pci_cfgwrite(tag, ATPC, l & ~ATPC_SMBCTRL, 1);
-
- if (bootverbose) {
- l = pci_cfgread(tag, SMBHSI, 1);
- printf("alsmb%d: %s/%s", unit,
- (l & SMBHSI_HOST) ? "host":"nohost",
- (l & SMBHSI_SLAVE) ? "slave":"noslave");
-
- l = pci_cfgread(tag, SMBHCBC, 1);
- switch (l & SMBHCBC_CLOCK) {
- case SMBCLOCK_149K:
- printf(" 149K");
- break;
- case SMBCLOCK_74K:
- printf(" 74K");
- break;
- case SMBCLOCK_37K:
- printf(" 37K");
- break;
- case SMBCLOCK_223K:
- printf(" 223K");
- break;
- case SMBCLOCK_111K:
- printf(" 111K");
- break;
- case SMBCLOCK_55K:
- printf(" 55K");
- break;
- }
- }
-
- alpm->smbst = I386_BUS_SPACE_IO;
-
-#ifdef ALPM_SMBIO_BASE_ADDR
- /* disable I/O */
- l = pci_cfgread(tag, COM, 2);
- pci_cfgwrite(tag, COM, l & ~COM_ENABLE_IO, 2);
-
- /* set the I/O base address */
- pci_cfgwrite(tag, SMBBA, ALPM_SMBIO_BASE_ADDR | 0x1, 4);
-
- /* enable I/O */
- pci_cfgwrite(tag, COM, l | COM_ENABLE_IO, 2);
-
- alpm->smbsh = ALPM_SMBIO_BASE_ADDR;
-#else
- alpm->smbsh = pci_cfgread(tag, SMBBA, 4) & ~0x1;
-#endif
- if (bootverbose)
- printf(" at 0x%x\n", alpm->smbsh);
-
- /* XXX add the I2C interface to the root_bus until pcibus is ready */
- device_add_child(root_bus, "alsmb", unit, NULL);
-
- return;
-}
-
-/*
- * Not a real probe, we know the device exists since the device has
- * been added after the successfull pci probe.
- */
-static int
-alsmb_probe(device_t dev)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
-
- sc->alpm = &alpmdata[device_get_unit(dev)];
-
- device_set_desc(dev, "Aladdin IV/V/Pro2 SMBus controller");
-
- return (0);
-}
-
-static int
-alsmb_attach(device_t dev)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
-
- /* allocate a new smbus device */
- sc->smbus = smbus_alloc_bus(dev);
-
- /* probe and attach the smbus */
- device_probe_and_attach(sc->smbus);
-
- return (0);
-}
-
-static int
-alsmb_smb_callback(device_t dev, int index, caddr_t *data)
-{
- int error = 0;
-
- switch (index) {
- case SMB_REQUEST_BUS:
- case SMB_RELEASE_BUS:
- /* ok, bus allocation accepted */
- break;
- default:
- error = EINVAL;
- }
-
- return (error);
-}
-
-static int
-alsmb_clear(struct alsmb_softc *sc)
-{
- ALPM_SMBOUTB(sc, SMBSTS, 0xff);
- DELAY(10);
-
- return (0);
-}
-
-#if 0
-static int
-alsmb_abort(struct alsmb_softc *sc)
-{
- ALPM_SMBOUTB(sc, SMBCMD, T_OUT_CMD | ABORT_HOST);
-
- return (0);
-}
-#endif
-
-static int
-alsmb_idle(struct alsmb_softc *sc)
-{
- u_char sts;
-
- sts = ALPM_SMBINB(sc, SMBSTS);
-
- ALPM_DEBUG(printf("alpm: idle? STS=0x%x\n", sts));
-
- return (sts & IDL_STS);
-}
-
-/*
- * Poll the SMBus controller
- */
-static int
-alsmb_wait(struct alsmb_softc *sc)
-{
- int count = 10000;
- u_char sts;
- int error;
-
- /* wait for command to complete and SMBus controller is idle */
- while(count--) {
- DELAY(10);
- sts = ALPM_SMBINB(sc, SMBSTS);
- if (sts & SMI_I_STS)
- break;
- }
-
- ALPM_DEBUG(printf("alpm: STS=0x%x\n", sts));
-
- error = SMB_ENOERR;
-
- if (!count)
- error |= SMB_ETIMEOUT;
-
- if (sts & TERMINATE)
- error |= SMB_EABORT;
-
- if (sts & BUS_COLLI)
- error |= SMB_ENOACK;
-
- if (sts & DEVICE_ERR)
- error |= SMB_EBUSERR;
-
- if (error != SMB_ENOERR)
- alsmb_clear(sc);
-
- return (error);
-}
-
-static int
-alsmb_smb_quick(device_t dev, u_char slave, int how)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- int error;
-
- alsmb_clear(sc);
- if (!alsmb_idle(sc))
- return (EBUSY);
-
- switch (how) {
- case SMB_QWRITE:
- ALPM_DEBUG(printf("alpm: QWRITE to 0x%x", slave));
- ALPM_SMBOUTB(sc, SMBHADDR, slave & ~LSB);
- break;
- case SMB_QREAD:
- ALPM_DEBUG(printf("alpm: QREAD to 0x%x", slave));
- ALPM_SMBOUTB(sc, SMBHADDR, slave | LSB);
- break;
- default:
- panic("%s: unknown QUICK command (%x)!", __FUNCTION__,
- how);
- }
- ALPM_SMBOUTB(sc, SMBCMD, SMBQUICK);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- error = alsmb_wait(sc);
-
- ALPM_DEBUG(printf(", error=0x%x\n", error));
-
- return (error);
-}
-
-static int
-alsmb_smb_sendb(device_t dev, u_char slave, char byte)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- int error;
-
- alsmb_clear(sc);
- if (!alsmb_idle(sc))
- return (SMB_EBUSY);
-
- ALPM_SMBOUTB(sc, SMBHADDR, slave & ~LSB);
- ALPM_SMBOUTB(sc, SMBCMD, SMBSRBYTE);
- ALPM_SMBOUTB(sc, SMBHDATA, byte);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- error = alsmb_wait(sc);
-
- ALPM_DEBUG(printf("alpm: SENDB to 0x%x, byte=0x%x, error=0x%x\n", slave, byte, error));
-
- return (error);
-}
-
-static int
-alsmb_smb_recvb(device_t dev, u_char slave, char *byte)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- int error;
-
- alsmb_clear(sc);
- if (!alsmb_idle(sc))
- return (SMB_EBUSY);
-
- ALPM_SMBOUTB(sc, SMBHADDR, slave | LSB);
- ALPM_SMBOUTB(sc, SMBCMD, SMBSRBYTE);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- if ((error = alsmb_wait(sc)) == SMB_ENOERR)
- *byte = ALPM_SMBINB(sc, SMBHDATA);
-
- ALPM_DEBUG(printf("alpm: RECVB from 0x%x, byte=0x%x, error=0x%x\n", slave, *byte, error));
-
- return (error);
-}
-
-static int
-alsmb_smb_writeb(device_t dev, u_char slave, char cmd, char byte)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- int error;
-
- alsmb_clear(sc);
- if (!alsmb_idle(sc))
- return (SMB_EBUSY);
-
- ALPM_SMBOUTB(sc, SMBHADDR, slave & ~LSB);
- ALPM_SMBOUTB(sc, SMBCMD, SMBWRBYTE);
- ALPM_SMBOUTB(sc, SMBHDATA, byte);
- ALPM_SMBOUTB(sc, SMBHCMD, cmd);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- error = alsmb_wait(sc);
-
- ALPM_DEBUG(printf("alpm: WRITEB to 0x%x, cmd=0x%x, byte=0x%x, error=0x%x\n", slave, cmd, byte, error));
-
- return (error);
-}
-
-static int
-alsmb_smb_readb(device_t dev, u_char slave, char cmd, char *byte)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- int error;
-
- alsmb_clear(sc);
- if (!alsmb_idle(sc))
- return (SMB_EBUSY);
-
- ALPM_SMBOUTB(sc, SMBHADDR, slave | LSB);
- ALPM_SMBOUTB(sc, SMBCMD, SMBWRBYTE);
- ALPM_SMBOUTB(sc, SMBHCMD, cmd);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- if ((error = alsmb_wait(sc)) == SMB_ENOERR)
- *byte = ALPM_SMBINB(sc, SMBHDATA);
-
- ALPM_DEBUG(printf("alpm: READB from 0x%x, cmd=0x%x, byte=0x%x, error=0x%x\n", slave, cmd, *byte, error));
-
- return (error);
-}
-
-static int
-alsmb_smb_writew(device_t dev, u_char slave, char cmd, short word)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- int error;
-
- alsmb_clear(sc);
- if (!alsmb_idle(sc))
- return (SMB_EBUSY);
-
- ALPM_SMBOUTB(sc, SMBHADDR, slave & ~LSB);
- ALPM_SMBOUTB(sc, SMBCMD, SMBWRWORD);
- ALPM_SMBOUTB(sc, SMBHDATA, word & 0x00ff);
- ALPM_SMBOUTB(sc, SMBHDATB, (word & 0xff00) >> 8);
- ALPM_SMBOUTB(sc, SMBHCMD, cmd);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- error = alsmb_wait(sc);
-
- ALPM_DEBUG(printf("alpm: WRITEW to 0x%x, cmd=0x%x, word=0x%x, error=0x%x\n", slave, cmd, word, error));
-
- return (error);
-}
-
-static int
-alsmb_smb_readw(device_t dev, u_char slave, char cmd, short *word)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- int error;
- u_char high, low;
-
- alsmb_clear(sc);
- if (!alsmb_idle(sc))
- return (SMB_EBUSY);
-
- ALPM_SMBOUTB(sc, SMBHADDR, slave | LSB);
- ALPM_SMBOUTB(sc, SMBCMD, SMBWRWORD);
- ALPM_SMBOUTB(sc, SMBHCMD, cmd);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- if ((error = alsmb_wait(sc)) == SMB_ENOERR) {
- low = ALPM_SMBINB(sc, SMBHDATA);
- high = ALPM_SMBINB(sc, SMBHDATB);
-
- *word = ((high & 0xff) << 8) | (low & 0xff);
- }
-
- ALPM_DEBUG(printf("alpm: READW from 0x%x, cmd=0x%x, word=0x%x, error=0x%x\n", slave, cmd, *word, error));
-
- return (error);
-}
-
-static int
-alsmb_smb_bwrite(device_t dev, u_char slave, char cmd, u_char count, char *buf)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- u_char remain, len, i;
- int error = SMB_ENOERR;
-
- alsmb_clear(sc);
- if(!alsmb_idle(sc))
- return (SMB_EBUSY);
-
- remain = count;
- while (remain) {
- len = min(remain, 32);
-
- ALPM_SMBOUTB(sc, SMBHADDR, slave & ~LSB);
-
- /* set the cmd and reset the
- * 32-byte long internal buffer */
- ALPM_SMBOUTB(sc, SMBCMD, SMBWRBLOCK | SMB_BLK_CLR);
-
- ALPM_SMBOUTB(sc, SMBHDATA, len);
-
- /* fill the 32-byte internal buffer */
- for (i=0; i<len; i++) {
- ALPM_SMBOUTB(sc, SMBHBLOCK, buf[count-remain+i]);
- DELAY(2);
- }
- ALPM_SMBOUTB(sc, SMBHCMD, cmd);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- if ((error = alsmb_wait(sc)) != SMB_ENOERR)
- goto error;
-
- remain -= len;
- }
-
-error:
- ALPM_DEBUG(printf("alpm: WRITEBLK to 0x%x, count=0x%x, cmd=0x%x, error=0x%x", slave, count, cmd, error));
-
- return (error);
-}
-
-static int
-alsmb_smb_bread(device_t dev, u_char slave, char cmd, u_char count, char *buf)
-{
- struct alsmb_softc *sc = (struct alsmb_softc *)device_get_softc(dev);
- u_char remain, len, i;
- int error = SMB_ENOERR;
-
- alsmb_clear(sc);
- if (!alsmb_idle(sc))
- return (SMB_EBUSY);
-
- remain = count;
- while (remain) {
- ALPM_SMBOUTB(sc, SMBHADDR, slave | LSB);
-
- /* set the cmd and reset the
- * 32-byte long internal buffer */
- ALPM_SMBOUTB(sc, SMBCMD, SMBWRBLOCK | SMB_BLK_CLR);
-
- ALPM_SMBOUTB(sc, SMBHCMD, cmd);
- ALPM_SMBOUTB(sc, SMBSTART, 0xff);
-
- if ((error = alsmb_wait(sc)) != SMB_ENOERR)
- goto error;
-
- len = ALPM_SMBINB(sc, SMBHDATA);
-
- /* read the 32-byte internal buffer */
- for (i=0; i<len; i++) {
- buf[count-remain+i] = ALPM_SMBINB(sc, SMBHBLOCK);
- DELAY(2);
- }
-
- remain -= len;
- }
-error:
- ALPM_DEBUG(printf("alpm: READBLK to 0x%x, count=0x%x, cmd=0x%x, error=0x%x", slave, count, cmd, error));
-
- return (error);
-}
-
-DRIVER_MODULE(alsmb, root, alsmb_driver, alsmb_devclass, 0, 0);
diff --git a/sys/pci/if_sisreg.h b/sys/pci/if_sisreg.h
deleted file mode 100644
index cef3a5251839..000000000000
--- a/sys/pci/if_sisreg.h
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * Copyright (c) 1997, 1998, 1999
- * Bill Paul <wpaul@ee.columbia.edu>. 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 Bill Paul.
- * 4. Neither the name of the author nor the names of any co-contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY Bill Paul 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 Bill Paul OR THE VOICES IN HIS HEAD
- * 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.
- *
- * $FreeBSD$
- */
-
-/*
- * Register definitions for the SiS 900 and SiS 7016 chipsets. The
- * 7016 is actually an older chip and some of its registers differ
- * from the 900, however the core operational registers are the same:
- * the differences lie in the OnNow/Wake on LAN stuff which we don't
- * use anyway. The 7016 needs an external MII compliant PHY while the
- * SiS 900 has one built in. All registers are 32-bits wide.
- */
-
-/* Registers common to SiS 900 and SiS 7016 */
-#define SIS_CSR 0x00
-#define SIS_CFG 0x04
-#define SIS_EECTL 0x08
-#define SIS_PCICTL 0x0C
-#define SIS_ISR 0x10
-#define SIS_IMR 0x14
-#define SIS_IER 0x18
-#define SIS_PHYCTL 0x1C
-#define SIS_TX_LISTPTR 0x20
-#define SIS_TX_CFG 0x24
-#define SIS_RX_LISTPTR 0x30
-#define SIS_RX_CFG 0x34
-#define SIS_FLOWCTL 0x38
-#define SIS_RXFILT_CTL 0x48
-#define SIS_RXFILT_DATA 0x4C
-#define SIS_PWRMAN_CTL 0xB0
-#define SIS_PWERMAN_WKUP_EVENT 0xB4
-#define SIS_WKUP_FRAME_CRC 0xBC
-#define SIS_WKUP_FRAME_MASK0 0xC0
-#define SIS_WKUP_FRAME_MASKXX 0xEC
-
-/* SiS 7016 specific registers */
-#define SIS_SILICON_REV 0x5C
-#define SIS_MIB_CTL0 0x60
-#define SIS_MIB_CTL1 0x64
-#define SIS_MIB_CTL2 0x68
-#define SIS_MIB_CTL3 0x6C
-#define SIS_MIB 0x80
-#define SIS_LINKSTS 0xA0
-#define SIS_TIMEUNIT 0xA4
-#define SIS_GPIO 0xB8
-
-#define SIS_CSR_TX_ENABLE 0x00000001
-#define SIS_CSR_TX_DISABLE 0x00000002
-#define SIS_CSR_RX_ENABLE 0x00000004
-#define SIS_CSR_RX_DISABLE 0x00000008
-#define SIS_CSR_TX_RESET 0x00000010
-#define SIS_CSR_RX_RESET 0x00000020
-#define SIS_CSR_SOFTINTR 0x00000080
-#define SIS_CSR_RESET 0x00000100
-
-#define SIS_CFG_BIGENDIAN 0x00000001
-#define SIS_CFG_PERR_DETECT 0x00000008
-#define SIS_CFG_DEFER_DISABLE 0x00000010
-#define SIS_CFG_OUTOFWIN_TIMER 0x00000020
-#define SIS_CFG_SINGLE_BACKOFF 0x00000040
-#define SIS_CFG_PCIREQ_ALG 0x00000080
-
-#define SIS_EECTL_DIN 0x00000001
-#define SIS_EECTL_DOUT 0x00000002
-#define SIS_EECTL_CLK 0x00000004
-#define SIS_EECTL_CSEL 0x00000008
-
-#define SIS_EECMD_WRITE 0x140
-#define SIS_EECMD_READ 0x180
-#define SIS_EECMD_ERASE 0x1c0
-
-#define SIS_EE_NODEADDR 0x8
-
-#define SIS_PCICTL_SRAMADDR 0x0000001F
-#define SIS_PCICTL_RAMTSTENB 0x00000020
-#define SIS_PCICTL_TXTSTENB 0x00000040
-#define SIS_PCICTL_RXTSTENB 0x00000080
-#define SIS_PCICTL_BMTSTENB 0x00000200
-#define SIS_PCICTL_RAMADDR 0x001F0000
-#define SIS_PCICTL_ROMTIME 0x0F000000
-#define SIS_PCICTL_DISCTEST 0x40000000
-
-#define SIS_ISR_RX_OK 0x00000001
-#define SIS_ISR_RX_DESC_OK 0x00000002
-#define SIS_ISR_RX_ERR 0x00000004
-#define SIS_ISR_RX_EARLY 0x00000008
-#define SIS_ISR_RX_IDLE 0x00000010
-#define SIS_ISR_RX_OFLOW 0x00000020
-#define SIS_ISR_TX_OK 0x00000040
-#define SIS_ISR_TX_DESC_OK 0x00000080
-#define SIS_ISR_TX_ERR 0x00000100
-#define SIS_ISR_TX_IDLE 0x00000200
-#define SIS_ISR_TX_UFLOW 0x00000400
-#define SIS_ISR_SOFTINTR 0x00000800
-#define SIS_ISR_HIBITS 0x00008000
-#define SIS_ISR_RX_FIFO_OFLOW 0x00010000
-#define SIS_ISR_TGT_ABRT 0x00100000
-#define SIS_ISR_BM_ABRT 0x00200000
-#define SIS_ISR_SYSERR 0x00400000
-#define SIS_ISR_PARITY_ERR 0x00800000
-#define SIS_ISR_RX_RESET_DONE 0x01000000
-#define SIS_ISR_TX_RESET_DONE 0x02000000
-#define SIS_ISR_TX_PAUSE_START 0x04000000
-#define SIS_ISR_TX_PAUSE_DONE 0x08000000
-#define SIS_ISR_WAKE_EVENT 0x10000000
-
-#define SIS_IMR_RX_OK 0x00000001
-#define SIS_IMR_RX_DESC_OK 0x00000002
-#define SIS_IMR_RX_ERR 0x00000004
-#define SIS_IMR_RX_EARLY 0x00000008
-#define SIS_IMR_RX_IDLE 0x00000010
-#define SIS_IMR_RX_OFLOW 0x00000020
-#define SIS_IMR_TX_OK 0x00000040
-#define SIS_IMR_TX_DESC_OK 0x00000080
-#define SIS_IMR_TX_ERR 0x00000100
-#define SIS_IMR_TX_IDLE 0x00000200
-#define SIS_IMR_TX_UFLOW 0x00000400
-#define SIS_IMR_SOFTINTR 0x00000800
-#define SIS_IMR_HIBITS 0x00008000
-#define SIS_IMR_RX_FIFO_OFLOW 0x00010000
-#define SIS_IMR_TGT_ABRT 0x00100000
-#define SIS_IMR_BM_ABRT 0x00200000
-#define SIS_IMR_SYSERR 0x00400000
-#define SIS_IMR_PARITY_ERR 0x00800000
-#define SIS_IMR_RX_RESET_DONE 0x01000000
-#define SIS_IMR_TX_RESET_DONE 0x02000000
-#define SIS_IMR_TX_PAUSE_START 0x04000000
-#define SIS_IMR_TX_PAUSE_DONE 0x08000000
-#define SIS_IMR_WAKE_EVENT 0x10000000
-
-#define SIS_INTRS \
- (SIS_IMR_RX_OFLOW|SIS_IMR_TX_UFLOW|SIS_IMR_TX_OK|\
- SIS_IMR_TX_IDLE|SIS_IMR_RX_OK|SIS_IMR_RX_ERR|\
- SIS_IMR_SYSERR)
-
-#define SIS_IER_INTRENB 0x00000001
-
-#define SIS_PHYCTL_ACCESS 0x00000010
-#define SIS_PHYCTL_OP 0x00000020
-#define SIS_PHYCTL_REGADDR 0x000007C0
-#define SIS_PHYCTL_PHYADDR 0x0000F800
-#define SIS_PHYCTL_PHYDATA 0xFFFF0000
-
-#define SIS_PHYOP_READ 0x00000020
-#define SIS_PHYOP_WRITE 0x00000000
-
-#define SIS_TXCFG_DRAIN_THRESH 0x0000003F /* 32-byte units */
-#define SIS_TXCFG_FILL_THRESH 0x00003F00 /* 32-byte units */
-#define SIS_TXCFG_DMABURST 0x00700000
-#define SIS_TXCFG_AUTOPAD 0x10000000
-#define SIS_TXCFG_LOOPBK 0x20000000
-#define SIS_TXCFG_IGN_HBEAT 0x40000000
-#define SIS_TXCFG_IGN_CARR 0x80000000
-
-#define SIS_TXCFG_DRAIN(x) (((x) >> 5) & SIS_TXCFG_DRAIN_THRESH)
-#define SIS_TXCFG_FILL(x) ((((x) >> 5) << 8) & SIS_TXCFG_FILL_THRESH)
-
-#define SIS_TXDMA_512BYTES 0x00000000
-#define SIS_TXDMA_4BYTES 0x00100000
-#define SIS_TXDMA_8BYTES 0x00200000
-#define SIS_TXDMA_16BYTES 0x00300000
-#define SIS_TXDMA_32BYTES 0x00400000
-#define SIS_TXDMA_64BYTES 0x00500000
-#define SIS_TXDMA_128BYTES 0x00600000
-#define SIS_TXDMA_256BYTES 0x00700000
-
-#define SIS_TXCFG \
- (SIS_TXDMA_64BYTES|SIS_TXCFG_AUTOPAD|\
- SIS_TXCFG_FILL(64)|SIS_TXCFG_DRAIN(1500))
-
-#define SIS_RXCFG_DRAIN_THRESH 0x0000003E /* 8-byte units */
-#define SIS_RXCFG_DMABURST 0x00700000
-#define SIS_RXCFG_RX_JABBER 0x08000000
-#define SIS_RXCFG_RX_TXPKTS 0x10000000
-#define SIS_RXCFG_RX_RUNTS 0x40000000
-#define SIS_RXCFG_RX_GIANTS 0x80000000
-
-#define SIS_RXCFG_DRAIN(x) ((((x) >> 3) << 1) & SIS_RXCFG_DRAIN_THRESH)
-
-#define SIS_RXDMA_512BYTES 0x00000000
-#define SIS_RXDMA_4BYTES 0x00100000
-#define SIS_RXDMA_8BYTES 0x00200000
-#define SIS_RXDMA_16BYTES 0x00300000
-#define SIS_RXDMA_32BYTES 0x00400000
-#define SIS_RXDMA_64BYTES 0x00500000
-#define SIS_RXDMA_128BYTES 0x00600000
-#define SIS_RXDMA_256BYTES 0x00700000
-
-#define SIS_RXCFG \
- (SIS_RXCFG_DRAIN(64)|SIS_RXDMA_256BYTES)
-
-#define SIS_RXFILTCTL_ADDR 0x000F0000
-#define SIS_RXFILTCTL_ALLPHYS 0x10000000
-#define SIS_RXFILTCTL_ALLMULTI 0x20000000
-#define SIS_RXFILTCTL_BROAD 0x40000000
-#define SIS_RXFILTCTL_ENABLE 0x80000000
-
-#define SIS_FILTADDR_PAR0 0x00000000
-#define SIS_FILTADDR_PAR1 0x00010000
-#define SIS_FILTADDR_PAR2 0x00020000
-#define SIS_FILTADDR_MAR0 0x00040000
-#define SIS_FILTADDR_MAR1 0x00050000
-#define SIS_FILTADDR_MAR2 0x00060000
-#define SIS_FILTADDR_MAR3 0x00070000
-#define SIS_FILTADDR_MAR4 0x00080000
-#define SIS_FILTADDR_MAR5 0x00090000
-#define SIS_FILTADDR_MAR6 0x000A0000
-#define SIS_FILTADDR_MAR7 0x000B0000
-
-/*
- * DMA descriptor structures. The first part of the descriptor
- * is the hardware descriptor format, which is just three longwords.
- * After this, we include some additional structure members for
- * use by the driver. Note that for this structure will be a different
- * size on the alpha, but that's okay as long as it's a multiple of 4
- * bytes in size.
- */
-struct sis_desc {
- /* SiS hardware descriptor section */
- u_int32_t sis_next;
- u_int32_t sis_cmdsts;
-#define sis_rxstat sis_cmdsts
-#define sis_txstat sis_cmdsts
-#define sis_ctl sis_cmdsts
- u_int32_t sis_ptr;
- /* Driver software section */
- struct mbuf *sis_mbuf;
- struct sis_desc *sis_nextdesc;
-};
-
-#define SIS_CMDSTS_BUFLEN 0x00000FFF
-#define SIS_CMDSTS_PKT_OK 0x08000000
-#define SIS_CMDSTS_CRC 0x10000000
-#define SIS_CMDSTS_INTR 0x20000000
-#define SIS_CMDSTS_MORE 0x40000000
-#define SIS_CMDSTS_OWN 0x80000000
-
-#define SIS_LASTDESC(x) (!((x)->sis_ctl & SIS_CMDSTS_MORE)))
-#define SIS_OWNDESC(x) ((x)->sis_ctl & SIS_CMDSTS_OWN)
-#define SIS_INC(x, y) (x) = (x + 1) % y
-#define SIS_RXBYTES(x) ((x)->sis_ctl & SIS_CMDSTS_BUFLEN)
-
-#define SIS_RXSTAT_COLL 0x00010000
-#define SIS_RXSTAT_LOOPBK 0x00020000
-#define SIS_RXSTAT_ALIGNERR 0x00040000
-#define SIS_RXSTAT_CRCERR 0x00080000
-#define SIS_RXSTAT_SYMBOLERR 0x00100000
-#define SIS_RXSTAT_RUNT 0x00200000
-#define SIS_RXSTAT_GIANT 0x00400000
-#define SIS_RXSTAT_DSTCLASS 0x01800000
-#define SIS_RXSTAT_OVERRUN 0x02000000
-#define SIS_RXSTAT_RX_ABORT 0x04000000
-
-#define SIS_DSTCLASS_REJECT 0x00000000
-#define SIS_DSTCLASS_UNICAST 0x00800000
-#define SIS_DSTCLASS_MULTICAST 0x01000000
-#define SIS_DSTCLASS_BROADCAST 0x02000000
-
-#define SIS_TXSTAT_COLLCNT 0x000F0000
-#define SIS_TXSTAT_EXCESSCOLLS 0x00100000
-#define SIS_TXSTAT_OUTOFWINCOLL 0x00200000
-#define SIS_TXSTAT_EXCESS_DEFER 0x00400000
-#define SIS_TXSTAT_DEFERED 0x00800000
-#define SIS_TXSTAT_CARR_LOST 0x01000000
-#define SIS_TXSTAT_UNDERRUN 0x02000000
-#define SIS_TXSTAT_TX_ABORT 0x04000000
-
-#define SIS_RX_LIST_CNT 64
-#define SIS_TX_LIST_CNT 128
-
-struct sis_list_data {
- struct sis_desc sis_rx_list[SIS_RX_LIST_CNT];
- struct sis_desc sis_tx_list[SIS_TX_LIST_CNT];
-};
-
-struct sis_ring_data {
- int sis_rx_prod;
- int sis_tx_prod;
- int sis_tx_cons;
- int sis_tx_cnt;
-};
-
-
-/*
- * SiS PCI vendor ID.
- */
-#define SIS_VENDORID 0x1039
-
-/*
- * SiS PCI device IDs
- */
-#define SIS_DEVICEID_900 0x0900
-#define SIS_DEVICEID_7016 0x7016
-
-struct sis_type {
- u_int16_t sis_vid;
- u_int16_t sis_did;
- char *sis_name;
-};
-
-#define SIS_TYPE_900 1
-#define SIS_TYPE_7016 2
-
-struct sis_softc {
- struct arpcom arpcom; /* interface info */
- bus_space_handle_t sis_bhandle;
- bus_space_tag_t sis_btag;
- struct resource *sis_res;
- struct resource *sis_irq;
- void *sis_intrhand;
- device_t sis_miibus;
- u_int8_t sis_unit;
- u_int8_t sis_type;
- struct sis_list_data *sis_ldata;
- struct sis_ring_data sis_cdata;
- struct callout_handle sis_stat_ch;
-};
-
-/*
- * register space access macros
- */
-#define CSR_WRITE_4(sc, reg, val) \
- bus_space_write_4(sc->sis_btag, sc->sis_bhandle, reg, val)
-
-#define CSR_READ_4(sc, reg) \
- bus_space_read_4(sc->sis_btag, sc->sis_bhandle, reg)
-
-#define SIS_TIMEOUT 1000
-#define ETHER_ALIGN 2
-#define SIS_RXLEN 1536
-#define SIS_MIN_FRAMELEN 60
-
-/*
- * PCI low memory base and low I/O base register, and
- * other PCI registers.
- */
-
-#define SIS_PCI_VENDOR_ID 0x00
-#define SIS_PCI_DEVICE_ID 0x02
-#define SIS_PCI_COMMAND 0x04
-#define SIS_PCI_STATUS 0x06
-#define SIS_PCI_REVID 0x08
-#define SIS_PCI_CLASSCODE 0x09
-#define SIS_PCI_CACHELEN 0x0C
-#define SIS_PCI_LATENCY_TIMER 0x0D
-#define SIS_PCI_HEADER_TYPE 0x0E
-#define SIS_PCI_LOIO 0x10
-#define SIS_PCI_LOMEM 0x14
-#define SIS_PCI_BIOSROM 0x30
-#define SIS_PCI_INTLINE 0x3C
-#define SIS_PCI_INTPIN 0x3D
-#define SIS_PCI_MINGNT 0x3E
-#define SIS_PCI_MINLAT 0x0F
-#define SIS_PCI_RESETOPT 0x48
-#define SIS_PCI_EEPROM_DATA 0x4C
-
-/* power management registers */
-#define SIS_PCI_CAPID 0x50 /* 8 bits */
-#define SIS_PCI_NEXTPTR 0x51 /* 8 bits */
-#define SIS_PCI_PWRMGMTCAP 0x52 /* 16 bits */
-#define SIS_PCI_PWRMGMTCTRL 0x54 /* 16 bits */
-
-#define SIS_PSTATE_MASK 0x0003
-#define SIS_PSTATE_D0 0x0000
-#define SIS_PSTATE_D1 0x0001
-#define SIS_PSTATE_D2 0x0002
-#define SIS_PSTATE_D3 0x0003
-#define SIS_PME_EN 0x0010
-#define SIS_PME_STATUS 0x8000
-
-#ifdef __alpha__
-#undef vtophys
-#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
-#endif
diff --git a/sys/pci/intpmreg.h b/sys/pci/intpmreg.h
deleted file mode 100644
index 73816e7748d5..000000000000
--- a/sys/pci/intpmreg.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*-
- * Copyright (c) 1998, 1999 Takanori Watanabe
- * 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD$
- */
-
-/*Register Difinition for Intel Chipset with ACPI Support*/
-#define PCI_BASE_ADDR_SMB 0x90 /*Where to MAP IO*/
-#define PCI_BASE_ADDR_PM 0x40
-#define PCI_HST_CFG_SMB 0xd2 /*Host Configuration*/
-#define PCI_INTR_SMB_SMI 0
-#define PCI_INTR_SMB_IRQ9 8
-#define PCI_INTR_SMB_ENABLE 1
-#define PCI_SLV_CMD_SMB 0xd3 /*SLAVE COMMAND*/
-#define PCI_SLV_SDW_SMB_1 0xd4 /*SLAVE SHADOW PORT 1*/
-#define PCI_SLV_SDW_SMB_2 0xd5 /*SLAVE SHADOW PORT 2*/
-#define PCI_REVID_SMB 0xd6
-#define LSB 0x1
-#define PIIX4_SMBHSTSTS 0x00
-#define PIIX4_SMBHSTSTAT_BUSY (1<<0)
-#define PIIX4_SMBHSTSTAT_INTR (1<<1)
-#define PIIX4_SMBHSTSTAT_ERR (1<<2)
-#define PIIX4_SMBHSTSTAT_BUSC (1<<3)
-#define PIIX4_SMBHSTSTAT_FAIL (1<<4)
-#define PIIX4_SMBSLVSTS 0x01
-#define PIIX4_SMBSLVSTS_ALART (1<<5)
-#define PIIX4_SMBSLVSTS_SDW2 (1<<4)
-#define PIIX4_SMBSLVSTS_SDW1 (1<<3)
-#define PIIX4_SMBSLVSTS_SLV (1<<2)
-#define PIIX4_SMBSLVSTS_BUSY (1<<0)
-#define PIIX4_SMBHSTCNT 0x02
-#define PIIX4_SMBHSTCNT_START (1<<6)
-#define PIIX4_SMBHSTCNT_PROT_QUICK 0
-#define PIIX4_SMBHSTCNT_PROT_BYTE (1<<2)
-#define PIIX4_SMBHSTCNT_PROT_BDATA (2<<2)
-#define PIIX4_SMBHSTCNT_PROT_WDATA (3<<2)
-#define PIIX4_SMBHSTCNT_PROT_BLOCK (5<<2)
-#define SMBBLOCKTRANS_MAX 32
-#define PIIX4_SMBHSTCNT_KILL (1<<1)
-#define PIIX4_SMBHSTCNT_INTREN (1)
-#define PIIX4_SMBHSTCMD 0x03
-#define PIIX4_SMBHSTADD 0x04
-#define PIIX4_SMBHSTDAT0 0x05
-#define PIIX4_SMBHSTDAT1 0x06
-#define PIIX4_SMBBLKDAT 0x07
-#define PIIX4_SMBSLVCNT 0x08
-#define PIIX4_SMBSLVCNT_ALTEN (1<<3)
-#define PIIX4_SMBSLVCNT_SD2EN (1<<2)
-#define PIIX4_SMBSLVCNT_SD1EN (1<<1)
-#define PIIX4_SMBSLVCNT_SLVEN (1)
-#define PIIX4_SMBSLVCMD 0x09
-#define PIIX4_SMBSLVEVT 0x0a
-#define PIIX4_SMBSLVDAT 0x0c
-/*This is SMBus alart response address*/
-#define SMBALTRESP 0x18
diff --git a/usr.sbin/i4b/dtmfdecode/Makefile b/usr.sbin/i4b/dtmfdecode/Makefile
deleted file mode 100644
index 792b2ef39301..000000000000
--- a/usr.sbin/i4b/dtmfdecode/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-#---------------------------------------------------------------------------
-#
-# $FreeBSD$
-#
-# last edit-date: [Thu May 20 12:04:05 1999]
-#
-#---------------------------------------------------------------------------
-
-PROG = dtmfdecode
-SRC = dtmfdecode.c
-#LDADD += -lm
-CFLAGS += -Wall -g -DDEBUG
-MAN1 = dtmfdecode.1
-
-.include <bsd.prog.mk>
diff --git a/usr.sbin/i4b/dtmfdecode/dtmfdecode.1 b/usr.sbin/i4b/dtmfdecode/dtmfdecode.1
deleted file mode 100644
index 42cd5beb7419..000000000000
--- a/usr.sbin/i4b/dtmfdecode/dtmfdecode.1
+++ /dev/null
@@ -1,64 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Hellmuth Michaelis. 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.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
-.\"
-.\" $FreeBSD$
-.\"
-.\" last edit-date: [Mon Apr 26 13:42:15 1999]
-.\"
-.\"
-.Dd February, 15 1999
-.Dt DTMFDECODE 1
-.Os
-.Sh NAME
-.Nm dtmfdecode
-.Nd decodes DTMF tones from A-law audio data
-.Sh SYNOPSIS
-.Nm
-.Sh DESCRIPTION
-.Nm dtmfdecode
-is part of the isdn4bsd package and is used to detect DTMF tones in the
-audio stream.
-.Pp
-It reads audio G.711 A-Law coded data from stdin and outputs the detected
-numbers values as ASCII charcters to stdout.
-.Pp
-The detector is implemented as 8 narrow band-pass filters realized with
-an integer double-cross recursive algorithm. Various ad-hoc methods are
-employed to provide hysteresis and anti-bounce for the detected signals.
-.Sh EXAMPLES
-The command:
-.Bd -literal -offset indent
-dtmfdecode < beep.al
-.Ed
-.Pp
-will print a "1" to stdout.
-.Sh STANDARDS
-ITU Recommendations G.711
-.Sh AUTHORS
-The
-.Nm
-utility was written by
-.An Poul-Henning Kamp Aq phk@FreeBSD.org .
-This man page was written by
-.An Hellmuth Michaelis Aq hm@FreeBSD.org .
diff --git a/usr.sbin/i4b/dtmfdecode/dtmfdecode.c b/usr.sbin/i4b/dtmfdecode/dtmfdecode.c
deleted file mode 100644
index f96bacd42b10..000000000000
--- a/usr.sbin/i4b/dtmfdecode/dtmfdecode.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE" (Revision 42):
- * <phk@FreeBSD.org> wrote this file. As long as you retain this notice you
- * can do whatever you want with this stuff. If we meet some day, and you think
- * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
- * ----------------------------------------------------------------------------
- *
- * $FreeBSD$
- *
- * Extract DTMF signalling from ISDN4BSD A-law coded audio data
- *
- * A-Law to linear conversion from the sox package.
- *
- */
-
-#include <stdio.h>
-#include <math.h>
-
-/* Integer math scaling factor */
-#define FSC (1<<12)
-
-/* Alaw parameters */
-#define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */
-#define QUANT_MASK (0xf) /* Quantization field mask. */
-#define SEG_SHIFT (4) /* Left shift for segment number. */
-#define SEG_MASK (0x70) /* Segment field mask. */
-
-static int
-alaw2linear(a_val)
- unsigned char a_val;
-{
- int t;
- int seg;
-
- a_val ^= 0x55;
-
- t = (a_val & QUANT_MASK) << 4;
- seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT;
- switch (seg) {
- case 0:
- t += 8;
- break;
- case 1:
- t += 0x108;
- break;
- default:
- t += 0x108;
- t <<= seg - 1;
- }
- return ((a_val & SIGN_BIT) ? t : -t);
-}
-
-#ifdef USE_COS
-/* The frequencies we're trying to detect */
-static int dtmf[8] = {697, 770, 852, 941, 1209, 1336, 1477, 1633};
-#else
-/* precalculated: p1[kk] = (-cos(2 * 3.141592 * dtmf[kk] / 8000.0) * FSC) */
-static int p1[8] = {-3497, -3369, -3212, -3027, -2384, -2040, -1635, -1164};
-#endif
-
-/* This is the Q of the filter (pole radius) */
-#define POLRAD .99
-
-#define P2 ((int)(POLRAD*POLRAD*FSC))
-
-int
-main(int argc, char **argv)
-{
- int i, kk, t, nn, s, so, ia;
- int x, c, d, f, h[8], k[8], n, y[8];
-#ifdef USE_COS
- int p1[8];
-#endif
- int alaw[256];
- char key[256];
-
- for (kk = 0; kk < 8; kk++) {
- y[kk] = h[kk] = k[kk] = 0;
-#ifdef USE_COS
- p1[kk] = (-cos(2 * 3.141592 * dtmf[kk] / 8000.0) * FSC);
-#endif
- }
-
- for (i = 0; i < 256; i++) {
- key[i] = '?';
- alaw[i] = alaw2linear(i) / (32768/FSC);
- }
-
- /* We encode the tones in 8 bits, translate those to symbol */
- key[0x00] = '\0';
-
- key[0x11] = '1'; key[0x12] = '4'; key[0x14] = '7'; key[0x18] = '*';
- key[0x21] = '2'; key[0x22] = '5'; key[0x24] = '8'; key[0x28] = '0';
- key[0x41] = '3'; key[0x42] = '6'; key[0x44] = '9'; key[0x48] = '#';
- key[0x81] = 'A'; key[0x82] = 'B'; key[0x84] = 'C'; key[0x88] = 'D';
-
- nn = 0;
- ia = 0;
- so = 0;
- t = 0;
- while ((i = getchar()) != EOF)
- {
- t++;
-
- /* Convert to our format */
- x = alaw[i];
-
- /* Input amplitude */
- if (x > 0)
- ia += (x - ia) / 128;
- else
- ia += (-x - ia) / 128;
-
- /* For each tone */
- s = 0;
- for(kk = 0; kk < 8; kk++) {
-
- /* Turn the crank */
- c = (P2 * (x - k[kk])) / FSC;
- d = x + c;
- f = (p1[kk] * (d - h[kk])) / FSC;
- n = x - k[kk] - c;
- k[kk] = h[kk] + f;
- h[kk] = f + d;
-
- /* Detect and Average */
- if (n > 0)
- y[kk] += (n - y[kk]) / 64;
- else
- y[kk] += (-n - y[kk]) / 64;
-
- /* Threshold */
- if (y[kk] > FSC/10 && y[kk] > ia)
- s |= 1 << kk;
- }
-
- /* Hysteresis and noise supressor */
- if (s != so) {
-/* printf("x %d %x -> %x\n",t,so, s); */
- nn = 0;
- so = s;
- } else if (nn++ == 520 && key[s]) {
- putchar(key[s]);
-/* printf(" %d %x\n",t,s); */
- }
- }
- putchar('\n');
- return (0);
-}
diff --git a/usr.sbin/i4b/g711conv/Makefile b/usr.sbin/i4b/g711conv/Makefile
deleted file mode 100644
index f96de268deea..000000000000
--- a/usr.sbin/i4b/g711conv/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-#---------------------------------------------------------------------------
-#
-# $FreeBSD$
-#
-# last edit-date: [Thu May 20 11:58:43 1999]
-#
-#---------------------------------------------------------------------------
-
-PROG = g711conv
-SRC = g711conv.c
-CFLAGS += -Wall -g
-MAN1 = g711conv.1
-
-.include <bsd.prog.mk>
diff --git a/usr.sbin/i4b/g711conv/g711conv.1 b/usr.sbin/i4b/g711conv/g711conv.1
deleted file mode 100644
index 4d9102458cad..000000000000
--- a/usr.sbin/i4b/g711conv/g711conv.1
+++ /dev/null
@@ -1,96 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Hellmuth Michaelis. 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.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
-.\"
-.\" $FreeBSD$
-.\"
-.\" last edit-date: [Mon Mar 15 16:17:23 1999]
-.\"
-.Dd March 15, 1999
-.Dt G711CONV 1
-.Os
-.Sh NAME
-.Nm g711conv
-.Nd conversions according to G.711
-.Sh SYNOPSIS
-.Nm
-.Op Fl a
-.Op Fl u
-.Op Fl P
-.Op Fl A
-.Op Fl R
-.Sh DESCRIPTION
-.Nm g711conv
-is part of the isdn4bsd package and is used to convert between the A-Law and
-u-law formats as specified in ITU G.711. It is based on a freely available
-and freely usable reference implementation done by Sun Microsystems, Inc.
-.Pp
-The following options are available:
-.Bl -tag -width Ds
-.It Fl a
-Convert A-law to u-law
-.It Fl u
-Convert u-law to A-law
-.It Fl r
-Reverse bits before conversion
-.It Fl R
-Reverse bits after conversion
-.It Fl P
-Print the resulting conversion tables (as C-source) to stdout instead of
-doing the actual conversion.
-.El
-.Pp
-
-.Sh STANDARDS
-A-Law and u-Law conversions are specified in ITU Recommendation G.711.
-.Pp
-The reference implementation done by Sun Microsystems, Inc. is available
-from http://www.itu.int/itudoc/itu-t/rec/g/g700-799/refimpl.txt
-.Pp
-
-.Sh EXAMPLES
-The command:
-.Bd -literal -offset indent
-g711conv -P -a
-.Ed
-.Pp
-prints out the A-law to u-law conversion table as C-source to stdout.
-.Pp
-The command:
-.Bd -literal -offset indent
-cat max_headroom.ul | g711conv -u -R > /dev/i4btel0
-.Ed
-.Pp
-converts the u-law coded voice of Max Headroom to A-law, reverses the
-bits of the result and moves that to an active isdn4bsd telephone connection.
-.Pp
-
-.Sh AUTHORS
-The
-.Nm
-utility and this manpage were written by
-.An Hellmuth Michaelis Aq hm@kts.org
-based on the G.711 conversion reference code written by Sun Microsystems,
-Inc. and code contributed to isdn4bsd by
-.An Stefan Bethke .
-
diff --git a/usr.sbin/i4b/g711conv/g711conv.c b/usr.sbin/i4b/g711conv/g711conv.c
deleted file mode 100644
index f6a442ead0d3..000000000000
--- a/usr.sbin/i4b/g711conv/g711conv.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (c) 1999 Hellmuth Michaelis. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * ---
- *
- * The A-law to u-law and u-law to A-law conversion routines and tables
- * were taken from the G.711 reference implementation from Sun and freely
- * available as http://www.itu.int/itudoc/itu-t/rec/g/g700-799/refimpl.txt.
- *
- * Therefore for that part of the code, the following restrictions apply:
- *
- *
- * This source code is a product of Sun Microsystems, Inc. and is provided
- * for unrestricted use. Users may copy or modify this source code without
- * charge.
- *
- * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun source code is provided with no support and without any obligation on
- * the part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- *
- * ---
- *
- * The bitreverse table was contributed by Stefan Bethke.
- *
- *---------------------------------------------------------------------------
- *
- * A-law / u-law conversions as specified in G.711
- * -----------------------------------------------
- *
- * last edit-date: [Mon Apr 26 14:00:31 1999]
- *
- * $FreeBSD$
- *
- *---------------------------------------------------------------------------*/
-
-#include <stdio.h>
-#include <unistd.h>
-#include <machine/i4b_ioctl.h>
-
-/* copy from CCITT G.711 specifications */
-
-/* u- to A-law conversions */
-
-unsigned char _u2a[128] = {
- 1, 1, 2, 2, 3, 3, 4, 4,
- 5, 5, 6, 6, 7, 7, 8, 8,
- 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 27, 29, 31, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44,
- 46, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62,
- 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79,
- 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128
-};
-
-/* A- to u-law conversions */
-
-unsigned char _a2u[128] = {
- 1, 3, 5, 7, 9, 11, 13, 15,
- 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 32, 33, 33, 34, 34, 35, 35,
- 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 48, 49, 49,
- 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 64,
- 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 79,
- 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127
-};
-
-/* reverse bits (7->0, 6->1, 5->2 etc) for tx to / rx from ISDN */
-
-unsigned char bitreverse[256] = {
- 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
- 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
- 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
- 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
- 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
- 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
- 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
- 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
- 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
- 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
- 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
- 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
- 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
- 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
- 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
- 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
-};
-
-/* A-law to u-law conversion */
-
-unsigned char alaw2ulaw(unsigned char aval)
-{
- aval &= 0xff;
- return ((aval & 0x80) ? (0xFF ^ _a2u[aval ^ 0xD5]) :
- (0x7F ^ _a2u[aval ^ 0x55]));
-}
-
-/* u-law to A-law conversion */
-
-unsigned char ulaw2alaw(unsigned char uval)
-{
- uval &= 0xff;
- return ((uval & 0x80) ? (0xD5 ^ (_u2a[0xFF ^ uval] - 1)) :
- (0x55 ^ (_u2a[0x7F ^ uval] - 1)));
-}
-
-void
-usage(void)
-{
- fprintf(stderr, "\n");
- fprintf(stderr, "g711conv - do conversions according to ITU G.711, (version %d.%d.%d)\n",VERSION, REL, STEP);
- fprintf(stderr, "usage: g711conv -a -r -R -u -P\n");
- fprintf(stderr, " -a A-law to u-law conversion\n");
- fprintf(stderr, " -r reverse bits before conversion\n");
- fprintf(stderr, " -R reverse bits after conversion\n");
- fprintf(stderr, " -u u-law to A-law conversion\n");
- fprintf(stderr, " -P print conversion table as C source\n");
- fprintf(stderr, "\n");
- exit(1);
-}
-
-int
-main(int argc, char **argv)
-{
- int i;
- int c;
- int opt_a = 0;
- int opt_u = 0;
- int opt_r = 0;
- int opt_P = 0;
- int opt_R = 0;
- unsigned char uc;
-
- while ((c = getopt(argc, argv, "aurPR?")) != -1)
- {
- switch(c)
- {
- case 'a':
- opt_a = 1;
- break;
-
- case 'u':
- opt_u = 1;
- break;
-
- case 'r':
- opt_r = 1;
- break;
-
- case 'R':
- opt_R = 1;
- break;
-
- case 'P':
- opt_P = 1;
- break;
-
- case '?':
- default:
- usage();
- break;
- }
- }
-
- if((opt_a + opt_u) > 1)
- usage();
-
- if(opt_P)
- {
- printf("\n/* ");
-
- if((opt_a + opt_u) == 0)
- printf("No Conversion");
-
- if(opt_a)
- printf("A-law to u-law conversion");
-
- if(opt_u)
- printf("u-law to A-law conversion");
-
- if(opt_r)
- printf(", reverse bits BEFORE conversion");
-
- if(opt_R)
- printf(", reverse bits AFTER conversion");
-
- if(opt_a)
- {
- printf(" */\n\nunsigned char a2u_tab[256] = {");
- }
- else if(opt_u)
- {
- printf(" */\n\nunsigned char u2a_tab[256] = {");
- }
- else
- {
- printf(" */\n\nunsigned char table[256] = {");
- }
-
- for(i=0; i < 256; i++)
- {
- uc = i;
-
- if(!(i % 8))
- printf("\n/* %02x */\t", i);
-
- if(opt_r)
- uc = bitreverse[uc];
-
- if(opt_u)
- uc = ulaw2alaw(uc);
-
- if(opt_a)
- uc = alaw2ulaw(uc);
-
- if(opt_R)
- uc = bitreverse[uc];
-
- if(i == 255)
- printf("0x%02x", uc);
- else
- printf("0x%02x, ", uc);
- }
- printf("\n};\n");
- }
- else
- {
- unsigned char ib[1];
-
- while(fread(ib, 1, 1, stdin) == 1)
- {
- if(opt_r)
- ib[0] = bitreverse[ib[0]];
-
- if(opt_u)
- ib[0] = ulaw2alaw(ib[0]);
-
- if(opt_a)
- ib[0] = alaw2ulaw(ib[0]);
-
- if(opt_R)
- ib[0] = bitreverse[ib[0]];
-
- fwrite(ib, 1, 1, stdout);
- }
- }
- return(0);
-}
-
-/* EOF */
diff --git a/usr.sbin/inetd/builtins.c b/usr.sbin/inetd/builtins.c
deleted file mode 100644
index d5fa0bb5e485..000000000000
--- a/usr.sbin/inetd/builtins.c
+++ /dev/null
@@ -1,682 +0,0 @@
-/*-
- * Copyright (c) 1983, 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
- *
- * $FreeBSD$
- *
- */
-
-#include <sys/filio.h>
-#include <sys/ioccom.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/socket.h>
-#include <sys/sysctl.h>
-#include <sys/ucred.h>
-#include <sys/uio.h>
-#include <sys/utsname.h>
-
-#include <ctype.h>
-#include <err.h>
-#include <errno.h>
-#include <limits.h>
-#include <pwd.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sysexits.h>
-#include <syslog.h>
-#include <unistd.h>
-
-#include "inetd.h"
-
-extern int debug;
-extern struct servtab *servtab;
-
-char ring[128];
-char *endring;
-
-int check_loop __P((struct sockaddr_in *, struct servtab *sep));
-void inetd_setproctitle __P((char *, int));
-
-struct biltin biltins[] = {
- /* Echo received data */
- { "echo", SOCK_STREAM, 1, -1, echo_stream },
- { "echo", SOCK_DGRAM, 0, 1, echo_dg },
-
- /* Internet /dev/null */
- { "discard", SOCK_STREAM, 1, -1, discard_stream },
- { "discard", SOCK_DGRAM, 0, 1, discard_dg },
-
- /* Return 32 bit time since 1970 */
- { "time", SOCK_STREAM, 0, -1, machtime_stream },
- { "time", SOCK_DGRAM, 0, 1, machtime_dg },
-
- /* Return human-readable time */
- { "daytime", SOCK_STREAM, 0, -1, daytime_stream },
- { "daytime", SOCK_DGRAM, 0, 1, daytime_dg },
-
- /* Familiar character generator */
- { "chargen", SOCK_STREAM, 1, -1, chargen_stream },
- { "chargen", SOCK_DGRAM, 0, 1, chargen_dg },
-
- { "tcpmux", SOCK_STREAM, 1, -1, (void (*)())tcpmux },
-
- { "auth", SOCK_STREAM, 1, -1, ident_stream },
-
- { NULL }
-};
-
-/*
- * RFC864 Character Generator Protocol. Generates character data without
- * any regard for input.
- */
-
-void
-initring()
-{
- int i;
-
- endring = ring;
-
- for (i = 0; i <= 128; ++i)
- if (isprint(i))
- *endring++ = i;
-}
-
-/* ARGSUSED */
-void
-chargen_dg(s, sep) /* Character generator */
- int s;
- struct servtab *sep;
-{
- struct sockaddr_in sin;
- static char *rs;
- int len, size;
- char text[LINESIZ+2];
-
- if (endring == 0) {
- initring();
- rs = ring;
- }
-
- size = sizeof(sin);
- if (recvfrom(s, text, sizeof(text), 0,
- (struct sockaddr *)&sin, &size) < 0)
- return;
-
- if (check_loop(&sin, sep))
- return;
-
- if ((len = endring - rs) >= LINESIZ)
- memmove(text, rs, LINESIZ);
- else {
- memmove(text, rs, len);
- memmove(text + len, ring, LINESIZ - len);
- }
- if (++rs == endring)
- rs = ring;
- text[LINESIZ] = '\r';
- text[LINESIZ + 1] = '\n';
- (void) sendto(s, text, sizeof(text), 0,
- (struct sockaddr *)&sin, sizeof(sin));
-}
-
-/* ARGSUSED */
-void
-chargen_stream(s, sep) /* Character generator */
- int s;
- struct servtab *sep;
-{
- int len;
- char *rs, text[LINESIZ+2];
-
- inetd_setproctitle(sep->se_service, s);
-
- if (!endring) {
- initring();
- rs = ring;
- }
-
- text[LINESIZ] = '\r';
- text[LINESIZ + 1] = '\n';
- for (rs = ring;;) {
- if ((len = endring - rs) >= LINESIZ)
- memmove(text, rs, LINESIZ);
- else {
- memmove(text, rs, len);
- memmove(text + len, ring, LINESIZ - len);
- }
- if (++rs == endring)
- rs = ring;
- if (write(s, text, sizeof(text)) != sizeof(text))
- break;
- }
- exit(0);
-}
-
-/*
- * RFC867 Daytime Protocol. Sends the current date and time as an ascii
- * character string without any regard for input.
- */
-
-/* ARGSUSED */
-void
-daytime_dg(s, sep) /* Return human-readable time of day */
- int s;
- struct servtab *sep;
-{
- char buffer[256];
- time_t clock;
- struct sockaddr_in sin;
- int size;
-
- clock = time((time_t *) 0);
-
- size = sizeof(sin);
- if (recvfrom(s, buffer, sizeof(buffer), 0,
- (struct sockaddr *)&sin, &size) < 0)
- return;
-
- if (check_loop(&sin, sep))
- return;
-
- (void) sprintf(buffer, "%.24s\r\n", ctime(&clock));
- (void) sendto(s, buffer, strlen(buffer), 0,
- (struct sockaddr *)&sin, sizeof(sin));
-}
-
-/* ARGSUSED */
-void
-daytime_stream(s, sep) /* Return human-readable time of day */
- int s;
- struct servtab *sep;
-{
- char buffer[256];
- time_t clock;
-
- clock = time((time_t *) 0);
-
- (void) sprintf(buffer, "%.24s\r\n", ctime(&clock));
- (void) write(s, buffer, strlen(buffer));
-}
-
-/*
- * RFC863 Discard Protocol. Any data received is thrown away and no response
- * is sent.
- */
-
-/* ARGSUSED */
-void
-discard_dg(s, sep) /* Discard service -- ignore data */
- int s;
- struct servtab *sep;
-{
- char buffer[BUFSIZE];
-
- (void) read(s, buffer, sizeof(buffer));
-}
-
-/* ARGSUSED */
-void
-discard_stream(s, sep) /* Discard service -- ignore data */
- int s;
- struct servtab *sep;
-{
- int ret;
- char buffer[BUFSIZE];
-
- inetd_setproctitle(sep->se_service, s);
- while (1) {
- while ((ret = read(s, buffer, sizeof(buffer))) > 0)
- ;
- if (ret == 0 || errno != EINTR)
- break;
- }
- exit(0);
-}
-
-/*
- * RFC862 Echo Protocol. Any data received is sent back to the sender as
- * received.
- */
-
-/* ARGSUSED */
-void
-echo_dg(s, sep) /* Echo service -- echo data back */
- int s;
- struct servtab *sep;
-{
- char buffer[BUFSIZE];
- int i, size;
- struct sockaddr_in sin;
-
- size = sizeof(sin);
- if ((i = recvfrom(s, buffer, sizeof(buffer), 0,
- (struct sockaddr *)&sin, &size)) < 0)
- return;
-
- if (check_loop(&sin, sep))
- return;
-
- (void) sendto(s, buffer, i, 0, (struct sockaddr *)&sin,
- sizeof(sin));
-}
-
-/* ARGSUSED */
-void
-echo_stream(s, sep) /* Echo service -- echo data back */
- int s;
- struct servtab *sep;
-{
- char buffer[BUFSIZE];
- int i;
-
- inetd_setproctitle(sep->se_service, s);
- while ((i = read(s, buffer, sizeof(buffer))) > 0 &&
- write(s, buffer, i) > 0)
- ;
- exit(0);
-}
-
-/*
- * RFC1413 Identification Protocol. Given a TCP port number pair, return a
- * character string which identifies the owner of that connection on the
- * server's system. Extended to allow for ~/.fakeid support and ~/.noident
- * support.
- */
-
-/* ARGSUSED */
-void
-iderror(lport, fport, s, er) /* Generic ident_stream error-sending func */
- int lport, fport, s, er;
-{
- char *p;
-
- asprintf(&p, "%d , %d : ERROR : %s\r\n", lport, fport,
- er == -1 ? "HIDDEN-USER" : er ? strerror(er) : "UNKNOWN-ERROR");
- if (p == NULL) {
- syslog(LOG_ERR, "asprintf: %m");
- exit(EX_OSERR);
- }
- write(s, p, strlen(p));
- free(p);
-
- exit(0);
-}
-
-/* ARGSUSED */
-void
-ident_stream(s, sep) /* Ident service (AKA "auth") */
- int s;
- struct servtab *sep;
-{
- struct utsname un;
- struct stat sb;
- struct sockaddr_in sin[2];
- struct ucred uc;
- struct timeval tv = {
- 10,
- 0
- };
- struct passwd *pw;
- fd_set fdset;
- char buf[BUFSIZE], *cp = NULL, *p, **av, *osname = NULL;
- int len, c, fflag = 0, nflag = 0, rflag = 0, argc = 0;
- u_short lport, fport;
-
- inetd_setproctitle(sep->se_service, s);
- /*
- * Reset getopt() since we are a fork() but not an exec() from
- * a parent which used getopt() already.
- */
- optind = 1;
- optreset = 1;
- /*
- * Take the internal argument vector and count it out to make an
- * argument count for getopt. This can be used for any internal
- * service to read arguments and use getopt() easily.
- */
- for (av = sep->se_argv; *av; av++)
- argc++;
- if (argc) {
- int sec, usec;
-
- while ((c = getopt(argc, sep->se_argv, "fno:rt:")) != -1)
- switch (c) {
- case 'f':
- fflag = 1;
- break;
- case 'n':
- nflag = 1;
- break;
- case 'o':
- osname = optarg;
- break;
- case 'r':
- rflag = 1;
- break;
- case 't':
- switch (sscanf(optarg, "%d.%d", &sec, &usec)) {
- case 2:
- tv.tv_usec = usec;
- case 1:
- tv.tv_sec = sec;
- break;
- default:
- if (debug)
- warnx("bad -t argument");
- break;
- }
- break;
- default:
- break;
- }
- }
- if (osname == NULL) {
- if (uname(&un) == -1)
- iderror(0, 0, s, errno);
- osname = un.sysname;
- }
- len = sizeof(sin[0]);
- if (getsockname(s, (struct sockaddr *)&sin[0], &len) == -1)
- iderror(0, 0, s, errno);
- len = sizeof(sin[1]);
- if (getpeername(s, (struct sockaddr *)&sin[1], &len) == -1)
- iderror(0, 0, s, errno);
- /*
- * We're going to prepare for and execute reception of a
- * packet of data from the user. The data is in the format
- * "local_port , foreign_port\r\n" (with local being the
- * server's port and foreign being the client's.)
- */
- FD_ZERO(&fdset);
- FD_SET(s, &fdset);
- if (select(s + 1, &fdset, NULL, NULL, &tv) == -1)
- iderror(0, 0, s, errno);
- if (ioctl(s, FIONREAD, &len) == -1)
- iderror(0, 0, s, errno);
- if (len >= sizeof(buf))
- len = sizeof(buf) - 1;
- len = read(s, buf, len);
- if (len == -1)
- iderror(0, 0, s, errno);
- buf[len] = '\0';
- if (sscanf(buf, "%hu , %hu", &lport, &fport) != 2)
- iderror(0, 0, s, 0);
- if (!rflag) /* Send HIDDEN-USER immediately if not "real" */
- iderror(lport, fport, s, -1);
- /*
- * We take the input and construct an array of two sockaddr_ins
- * which contain the local address information and foreign
- * address information, respectively, used to look up the
- * credentials for the socket (which are returned by the
- * sysctl "net.inet.tcp.getcred" when we call it.) The
- * arrays have been filled in above via get{peer,sock}name(),
- * so right here we are only setting the ports.
- */
- sin[0].sin_port = htons(lport);
- sin[1].sin_port = htons(fport);
- len = sizeof(uc);
- if (sysctlbyname("net.inet.tcp.getcred", &uc, &len, sin,
- sizeof(sin)) == -1)
- iderror(lport, fport, s, errno);
- pw = getpwuid(uc.cr_uid); /* Look up the pw to get the username */
- if (pw == NULL)
- iderror(lport, fport, s, errno);
- /*
- * If enabled, we check for a file named ".noident" in the user's
- * home directory. If found, we return HIDDEN-USER.
- */
- if (nflag) {
- if (asprintf(&p, "%s/.noident", pw->pw_dir) == -1)
- iderror(lport, fport, s, errno);
- if (lstat(p, &sb) == 0) {
- free(p);
- iderror(lport, fport, s, -1);
- }
- free(p);
- }
- /*
- * Here, if enabled, we read a user's ".fakeid" file in their
- * home directory. It consists of a line containing the name
- * they want.
- */
- if (fflag) {
- FILE *fakeid = NULL;
-
- if (asprintf(&p, "%s/.fakeid", pw->pw_dir) == -1)
- iderror(lport, fport, s, errno);
- /*
- * Here we set ourself to effectively be the user, so we don't
- * open any files we have no permission to open, especially
- * symbolic links to sensitive root-owned files or devices.
- */
- seteuid(pw->pw_uid);
- setegid(pw->pw_gid);
- /*
- * If we were to lstat() here, it would do no good, since it
- * would introduce a race condition and could be defeated.
- * Therefore, we open the file we have permissions to open
- * and if it's not a regular file, we close it and end up
- * returning the user's real username.
- */
- fakeid = fopen(p, "r");
- free(p);
- if (fakeid != NULL &&
- fstat(fileno(fakeid), &sb) != -1 && S_ISREG(sb.st_mode)) {
- buf[sizeof(buf) - 1] = '\0';
- if (fgets(buf, sizeof(buf), fakeid) == NULL) {
- cp = pw->pw_name;
- fclose(fakeid);
- goto printit;
- }
- fclose(fakeid);
- /*
- * Usually, the file will have the desired identity
- * in the form "identity\n", so we use strtok() to
- * end the string (which fgets() doesn't do.)
- */
- strtok(buf, "\r\n");
- /* User names of >16 characters are invalid */
- if (strlen(buf) > 16)
- buf[16] = '\0';
- cp = buf;
- /* Allow for beginning white space... */
- while (isspace(*cp))
- cp++;
- /* ...and ending white space. */
- strtok(cp, " \t");
- /*
- * If the name is a zero-length string or matches
- * the name of another user, it's invalid, so
- * we will return their real identity instead.
- */
-
- if (!*cp || getpwnam(cp))
- cp = getpwuid(uc.cr_uid)->pw_name;
- } else
- cp = pw->pw_name;
- } else
- cp = pw->pw_name;
-printit:
- /* Finally, we make and send the reply. */
- if (asprintf(&p, "%d , %d : USERID : %s : %s\r\n", lport, fport, osname,
- cp) == -1) {
- syslog(LOG_ERR, "asprintf: %m");
- exit(EX_OSERR);
- }
- write(s, p, strlen(p));
- free(p);
-
- exit(0);
-}
-
-/*
- * RFC738 Time Server.
- * Return a machine readable date and time, in the form of the
- * number of seconds since midnight, Jan 1, 1900. Since gettimeofday
- * returns the number of seconds since midnight, Jan 1, 1970,
- * we must add 2208988800 seconds to this figure to make up for
- * some seventy years Bell Labs was asleep.
- */
-
-unsigned long
-machtime()
-{
- struct timeval tv;
-
- if (gettimeofday(&tv, (struct timezone *)NULL) < 0) {
- if (debug)
- warnx("unable to get time of day");
- return (0L);
- }
-#define OFFSET ((u_long)25567 * 24*60*60)
- return (htonl((long)(tv.tv_sec + OFFSET)));
-#undef OFFSET
-}
-
-/* ARGSUSED */
-void
-machtime_dg(s, sep)
- int s;
- struct servtab *sep;
-{
- unsigned long result;
- struct sockaddr_in sin;
- int size;
-
- size = sizeof(sin);
- if (recvfrom(s, (char *)&result, sizeof(result), 0,
- (struct sockaddr *)&sin, &size) < 0)
- return;
-
- if (check_loop(&sin, sep))
- return;
-
- result = machtime();
- (void) sendto(s, (char *) &result, sizeof(result), 0,
- (struct sockaddr *)&sin, sizeof(sin));
-}
-
-/* ARGSUSED */
-void
-machtime_stream(s, sep)
- int s;
- struct servtab *sep;
-{
- unsigned long result;
-
- result = machtime();
- (void) write(s, (char *) &result, sizeof(result));
-}
-
-/*
- * RFC1078 TCP Port Service Multiplexer (TCPMUX). Service connections to
- * services based on the service name sent.
- *
- * Based on TCPMUX.C by Mark K. Lottor November 1988
- * sri-nic::ps:<mkl>tcpmux.c
- */
-
-#define MAX_SERV_LEN (256+2) /* 2 bytes for \r\n */
-#define strwrite(fd, buf) (void) write(fd, buf, sizeof(buf)-1)
-
-static int /* # of characters upto \r,\n or \0 */
-getline(fd, buf, len)
- int fd;
- char *buf;
- int len;
-{
- int count = 0, n;
- struct sigaction sa;
-
- sa.sa_flags = 0;
- sigemptyset(&sa.sa_mask);
- sa.sa_handler = SIG_DFL;
- sigaction(SIGALRM, &sa, (struct sigaction *)0);
- do {
- alarm(10);
- n = read(fd, buf, len-count);
- alarm(0);
- if (n == 0)
- return (count);
- if (n < 0)
- return (-1);
- while (--n >= 0) {
- if (*buf == '\r' || *buf == '\n' || *buf == '\0')
- return (count);
- count++;
- buf++;
- }
- } while (count < len);
- return (count);
-}
-
-struct servtab *
-tcpmux(s)
- int s;
-{
- struct servtab *sep;
- char service[MAX_SERV_LEN+1];
- int len;
-
- /* Get requested service name */
- if ((len = getline(s, service, MAX_SERV_LEN)) < 0) {
- strwrite(s, "-Error reading service name\r\n");
- return (NULL);
- }
- service[len] = '\0';
-
- if (debug)
- warnx("tcpmux: someone wants %s", service);
-
- /*
- * Help is a required command, and lists available services,
- * one per line.
- */
- if (!strcasecmp(service, "help")) {
- for (sep = servtab; sep; sep = sep->se_next) {
- if (!ISMUX(sep))
- continue;
- (void)write(s,sep->se_service,strlen(sep->se_service));
- strwrite(s, "\r\n");
- }
- return (NULL);
- }
-
- /* Try matching a service in inetd.conf with the request */
- for (sep = servtab; sep; sep = sep->se_next) {
- if (!ISMUX(sep))
- continue;
- if (!strcasecmp(service, sep->se_service)) {
- if (ISMUXPLUS(sep)) {
- strwrite(s, "+Go\r\n");
- }
- return (sep);
- }
- }
- strwrite(s, "-Service not available\r\n");
- return (NULL);
-}
diff --git a/usr.sbin/inetd/inetd.h b/usr.sbin/inetd/inetd.h
deleted file mode 100644
index ab78c734c54e..000000000000
--- a/usr.sbin/inetd/inetd.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (c) 1983, 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.
- *
- * $FreeBSD$
- */
-
-#include <sys/time.h>
-#include <sys/socket.h>
-
-#include <netinet/in.h>
-
-#include <stdio.h>
-
-#define BUFSIZE 8192
-#define LINESIZ 72
-
-#define NORM_TYPE 0
-#define MUX_TYPE 1
-#define MUXPLUS_TYPE 2
-#define TTCP_TYPE 3
-#define ISMUX(sep) (((sep)->se_type == MUX_TYPE) || \
- ((sep)->se_type == MUXPLUS_TYPE))
-#define ISMUXPLUS(sep) ((sep)->se_type == MUXPLUS_TYPE)
-#define ISTTCP(sep) ((sep)->se_type == TTCP_TYPE)
-
-struct servtab {
- char *se_service; /* name of service */
- int se_socktype; /* type of socket to use */
- char *se_proto; /* protocol used */
- int se_maxchild; /* max number of children */
- int se_maxcpm; /* max connects per IP per minute */
- int se_numchild; /* current number of children */
- pid_t *se_pids; /* array of child pids */
- char *se_user; /* user name to run as */
- char *se_group; /* group name to run as */
-#ifdef LOGIN_CAP
- char *se_class; /* login class name to run with */
-#endif
- struct biltin *se_bi; /* if built-in, description */
- char *se_server; /* server program */
- char *se_server_name; /* server program without path */
-#define MAXARGV 20
- char *se_argv[MAXARGV+1]; /* program arguments */
- int se_fd; /* open descriptor */
- struct sockaddr_in se_ctrladdr;/* bound address */
- u_char se_type; /* type: normal, mux, or mux+ */
- u_char se_checked; /* looked at during merge */
- u_char se_accept; /* i.e., wait/nowait mode */
- u_char se_rpc; /* ==1 if RPC service */
- int se_rpc_prog; /* RPC program number */
- u_int se_rpc_lowvers; /* RPC low version */
- u_int se_rpc_highvers; /* RPC high version */
- int se_count; /* number started since se_time */
- struct timeval se_time; /* start of se_count */
- struct servtab *se_next;
-};
-
-void chargen_dg __P((int, struct servtab *));
-void chargen_stream __P((int, struct servtab *));
-void close_sep __P((struct servtab *));
-void flag_signal __P((char));
-void flag_config __P((int));
-void config __P((void));
-void daytime_dg __P((int, struct servtab *));
-void daytime_stream __P((int, struct servtab *));
-void discard_dg __P((int, struct servtab *));
-void discard_stream __P((int, struct servtab *));
-void echo_dg __P((int, struct servtab *));
-void echo_stream __P((int, struct servtab *));
-void endconfig __P((void));
-struct servtab *enter __P((struct servtab *));
-void freeconfig __P((struct servtab *));
-struct servtab *getconfigent __P((void));
-void iderror __P((int, int, int, int));
-void ident_stream __P((int, struct servtab *));
-void machtime_dg __P((int, struct servtab *));
-void machtime_stream __P((int, struct servtab *));
-int matchservent __P((char *, char *, char *));
-char *newstr __P((char *));
-char *nextline __P((FILE *));
-void print_service __P((char *, struct servtab *));
-void addchild __P((struct servtab *, int));
-void flag_reapchild __P((int));
-void reapchild __P((void));
-void enable __P((struct servtab *));
-void disable __P((struct servtab *));
-void flag_retry __P((int));
-void retry __P((void));
-int setconfig __P((void));
-void setup __P((struct servtab *));
-char *sskip __P((char **));
-char *skip __P((char **));
-struct servtab *tcpmux __P((int));
-int cpmip __P((struct servtab *, int));
-void inetd_setproctitle __P((char *, int));
-
-void unregisterrpc __P((register struct servtab *sep));
-
-struct biltin {
- char *bi_service; /* internally provided service name */
- int bi_socktype; /* type of socket supported */
- short bi_fork; /* 1 if should fork before call */
- int bi_maxchild; /* max number of children, -1=default */
- void (*bi_fn)(); /* function which performs it */
-};
diff --git a/usr.sbin/pkg_install/add/main.c b/usr.sbin/pkg_install/add/main.c
index d549f8a1040f..d4cc6ae25c97 100644
--- a/usr.sbin/pkg_install/add/main.c
+++ b/usr.sbin/pkg_install/add/main.c
@@ -193,7 +193,7 @@ getpackagesite(void)
strcpy(sitepath, u.machine);
if (reldate == 330000)
- strcat(sitepath, "/packages-3.3/");
+ strcat(sitepath, "/packages-3.3-release/");
else if (330000 < reldate && reldate < 400000)
strcat(sitepath, "/packages-3-stable/Latest/");
else
diff --git a/usr.sbin/ppp/nat_cmd.c b/usr.sbin/ppp/nat_cmd.c
deleted file mode 100644
index ebf13e7ca99a..000000000000
--- a/usr.sbin/ppp/nat_cmd.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/*-
- * The code in this file was written by Eivind Eklund <perhaps@yes.no>,
- * who places it in the public domain without restriction.
- *
- * $FreeBSD$
- */
-
-#include <sys/param.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <netinet/in_systm.h>
-#include <netinet/in.h>
-#include <netinet/ip.h>
-#include <sys/un.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <termios.h>
-
-#ifdef __FreeBSD__
-#include <alias.h>
-#else
-#include "alias.h"
-#endif
-#include "layer.h"
-#include "proto.h"
-#include "defs.h"
-#include "command.h"
-#include "log.h"
-#include "nat_cmd.h"
-#include "descriptor.h"
-#include "prompt.h"
-#include "timer.h"
-#include "fsm.h"
-#include "slcompress.h"
-#include "throughput.h"
-#include "iplist.h"
-#include "mbuf.h"
-#include "lqr.h"
-#include "hdlc.h"
-#include "ipcp.h"
-#include "lcp.h"
-#include "ccp.h"
-#include "link.h"
-#include "mp.h"
-#include "filter.h"
-#ifndef NORADIUS
-#include "radius.h"
-#endif
-#include "bundle.h"
-
-
-static int StrToAddr(const char *, struct in_addr *);
-static int StrToPortRange(const char *, u_short *, u_short *, const char *);
-static int StrToAddrAndPort(const char *, struct in_addr *, u_short *,
- u_short *, const char *);
-
-static void
-lowhigh(u_short *a, u_short *b)
-{
- if (a > b) {
- u_short c;
-
- c = *b;
- *b = *a;
- *a = c;
- }
-}
-
-int
-nat_RedirectPort(struct cmdargs const *arg)
-{
- if (!arg->bundle->NatEnabled) {
- prompt_Printf(arg->prompt, "Alias not enabled\n");
- return 1;
- } else if (arg->argc == arg->argn + 3 || arg->argc == arg->argn + 4) {
- char proto_constant;
- const char *proto;
- struct in_addr localaddr;
- u_short hlocalport, llocalport;
- struct in_addr aliasaddr;
- u_short haliasport, laliasport;
- struct in_addr remoteaddr;
- u_short hremoteport, lremoteport;
- struct alias_link *link;
- int error;
-
- proto = arg->argv[arg->argn];
- if (strcmp(proto, "tcp") == 0) {
- proto_constant = IPPROTO_TCP;
- } else if (strcmp(proto, "udp") == 0) {
- proto_constant = IPPROTO_UDP;
- } else {
- prompt_Printf(arg->prompt, "port redirect: protocol must be"
- " tcp or udp\n");
- return -1;
- }
-
- error = StrToAddrAndPort(arg->argv[arg->argn+1], &localaddr, &llocalport,
- &hlocalport, proto);
- if (error) {
- prompt_Printf(arg->prompt, "nat port: error reading localaddr:port\n");
- return -1;
- }
-
- error = StrToPortRange(arg->argv[arg->argn+2], &laliasport, &haliasport,
- proto);
- if (error) {
- prompt_Printf(arg->prompt, "nat port: error reading alias port\n");
- return -1;
- }
- aliasaddr.s_addr = INADDR_ANY;
-
- if (arg->argc == arg->argn + 4) {
- error = StrToAddrAndPort(arg->argv[arg->argn+3], &remoteaddr,
- &lremoteport, &hremoteport, proto);
- if (error) {
- prompt_Printf(arg->prompt, "nat port: error reading "
- "remoteaddr:port\n");
- return -1;
- }
- } else {
- remoteaddr.s_addr = INADDR_ANY;
- lremoteport = hremoteport = 0;
- }
-
- lowhigh(&llocalport, &hlocalport);
- lowhigh(&laliasport, &haliasport);
- lowhigh(&lremoteport, &hremoteport);
-
- if (haliasport - laliasport != hlocalport - llocalport) {
- prompt_Printf(arg->prompt, "nat port: local & alias port ranges "
- "are not equal\n");
- return -1;
- }
-
- if (hremoteport && hremoteport - lremoteport != hlocalport - llocalport) {
- prompt_Printf(arg->prompt, "nat port: local & remote port ranges "
- "are not equal\n");
- return -1;
- }
-
- while (laliasport <= haliasport) {
- link = PacketAliasRedirectPort(localaddr, htons(llocalport),
- remoteaddr, htons(lremoteport),
- aliasaddr, htons(laliasport),
- proto_constant);
-
- if (link == NULL) {
- prompt_Printf(arg->prompt, "nat port: %d: error %d\n", laliasport,
- error);
- return 1;
- }
- llocalport++;
- laliasport++;
- if (hremoteport)
- lremoteport++;
- }
-
- return 0;
- }
-
- return -1;
-}
-
-
-int
-nat_RedirectAddr(struct cmdargs const *arg)
-{
- if (!arg->bundle->NatEnabled) {
- prompt_Printf(arg->prompt, "nat not enabled\n");
- return 1;
- } else if (arg->argc == arg->argn+2) {
- int error;
- struct in_addr localaddr, aliasaddr;
- struct alias_link *link;
-
- error = StrToAddr(arg->argv[arg->argn], &localaddr);
- if (error) {
- prompt_Printf(arg->prompt, "address redirect: invalid local address\n");
- return 1;
- }
- error = StrToAddr(arg->argv[arg->argn+1], &aliasaddr);
- if (error) {
- prompt_Printf(arg->prompt, "address redirect: invalid alias address\n");
- prompt_Printf(arg->prompt, "Usage: nat %s %s\n", arg->cmd->name,
- arg->cmd->syntax);
- return 1;
- }
- link = PacketAliasRedirectAddr(localaddr, aliasaddr);
- if (link == NULL) {
- prompt_Printf(arg->prompt, "address redirect: packet aliasing"
- " engine error\n");
- prompt_Printf(arg->prompt, "Usage: nat %s %s\n", arg->cmd->name,
- arg->cmd->syntax);
- }
- } else
- return -1;
-
- return 0;
-}
-
-
-static int
-StrToAddr(const char *str, struct in_addr *addr)
-{
- struct hostent *hp;
-
- if (inet_aton(str, addr))
- return 0;
-
- hp = gethostbyname(str);
- if (!hp) {
- log_Printf(LogWARN, "StrToAddr: Unknown host %s.\n", str);
- return -1;
- }
- *addr = *((struct in_addr *) hp->h_addr);
- return 0;
-}
-
-
-static int
-StrToPort(const char *str, u_short *port, const char *proto)
-{
- struct servent *sp;
- char *end;
-
- *port = strtol(str, &end, 10);
- if (*end != '\0') {
- sp = getservbyname(str, proto);
- if (sp == NULL) {
- log_Printf(LogWARN, "StrToAddr: Unknown port or service %s/%s.\n",
- str, proto);
- return -1;
- }
- *port = ntohs(sp->s_port);
- }
-
- return 0;
-}
-
-static int
-StrToPortRange(const char *str, u_short *low, u_short *high, const char *proto)
-{
- char *minus;
- int res;
-
- minus = strchr(str, '-');
- if (minus)
- *minus = '\0'; /* Cheat the const-ness ! */
-
- res = StrToPort(str, low, proto);
-
- if (minus)
- *minus = '-'; /* Cheat the const-ness ! */
-
- if (res == 0) {
- if (minus)
- res = StrToPort(minus + 1, high, proto);
- else
- *high = *low;
- }
-
- return res;
-}
-
-static int
-StrToAddrAndPort(const char *str, struct in_addr *addr, u_short *low,
- u_short *high, const char *proto)
-{
- char *colon;
- int res;
-
- colon = strchr(str, ':');
- if (!colon) {
- log_Printf(LogWARN, "StrToAddrAndPort: %s is missing port number.\n", str);
- return -1;
- }
-
- *colon = '\0'; /* Cheat the const-ness ! */
- res = StrToAddr(str, addr);
- *colon = ':'; /* Cheat the const-ness ! */
- if (res != 0)
- return -1;
-
- return StrToPortRange(colon + 1, low, high, proto);
-}
-
-int
-nat_ProxyRule(struct cmdargs const *arg)
-{
- char cmd[LINE_LEN];
- int f, pos;
- size_t len;
-
- if (arg->argn >= arg->argc)
- return -1;
-
- for (f = arg->argn, pos = 0; f < arg->argc; f++) {
- len = strlen(arg->argv[f]);
- if (sizeof cmd - pos < len + (f ? 1 : 0))
- break;
- if (f)
- cmd[pos++] = ' ';
- strcpy(cmd + pos, arg->argv[f]);
- pos += len;
- }
-
- return PacketAliasProxyRule(cmd);
-}
-
-int
-nat_Pptp(struct cmdargs const *arg)
-{
- struct in_addr addr;
-
- if (arg->argc == arg->argn) {
- addr.s_addr = INADDR_NONE;
- PacketAliasPptp(addr);
- return 0;
- }
-
- if (arg->argc != arg->argn + 1)
- return -1;
-
- addr = GetIpAddr(arg->argv[arg->argn]);
- if (addr.s_addr == INADDR_NONE) {
- log_Printf(LogWARN, "%s: invalid address\n", arg->argv[arg->argn]);
- return 1;
- }
-
- PacketAliasPptp(addr);
- return 0;
-}
-
-static struct mbuf *
-nat_PadMbuf(struct mbuf *bp, int type)
-{
- struct mbuf **last;
- int len;
-
- mbuf_SetType(bp, type);
- for (last = &bp, len = 0; *last != NULL; last = &(*last)->next)
- len += (*last)->cnt;
-
- len = MAX_MRU - len;
- *last = mbuf_Alloc(len, type);
-
- return bp;
-}
-
-static struct mbuf *
-nat_LayerPush(struct bundle *bundle, struct link *l, struct mbuf *bp,
- int pri, u_short *proto)
-{
- if (!bundle->NatEnabled || *proto != PROTO_IP)
- return bp;
-
- log_Printf(LogDEBUG, "nat_LayerPush: PROTO_IP -> PROTO_IP\n");
- bp = mbuf_Contiguous(nat_PadMbuf(bp, MB_NATOUT));
- PacketAliasOut(MBUF_CTOP(bp), bp->cnt);
- bp->cnt = ntohs(((struct ip *)MBUF_CTOP(bp))->ip_len);
-
- return bp;
-}
-
-static struct mbuf *
-nat_LayerPull(struct bundle *bundle, struct link *l, struct mbuf *bp,
- u_short *proto)
-{
- struct ip *pip, *piip;
- int ret, len;
- struct mbuf **last;
- char *fptr;
-
- if (!bundle->NatEnabled || *proto != PROTO_IP)
- return bp;
-
- log_Printf(LogDEBUG, "nat_LayerPull: PROTO_IP -> PROTO_IP\n");
- bp = mbuf_Contiguous(nat_PadMbuf(bp, MB_NATIN));
- pip = (struct ip *)MBUF_CTOP(bp);
- piip = (struct ip *)((char *)pip + (pip->ip_hl << 2));
-
- if (pip->ip_p == IPPROTO_IGMP ||
- (pip->ip_p == IPPROTO_IPIP && IN_CLASSD(ntohl(piip->ip_dst.s_addr))))
- return bp;
-
- ret = PacketAliasIn(MBUF_CTOP(bp), bp->cnt);
-
- bp->cnt = ntohs(pip->ip_len);
- if (bp->cnt > MAX_MRU) {
- log_Printf(LogWARN, "nat_LayerPull: Problem with IP header length (%d)\n",
- bp->cnt);
- mbuf_Free(bp);
- return NULL;
- }
-
- switch (ret) {
- case PKT_ALIAS_OK:
- break;
-
- case PKT_ALIAS_UNRESOLVED_FRAGMENT:
- /* Save the data for later */
- fptr = malloc(bp->cnt);
- bp = mbuf_Read(bp, fptr, bp->cnt);
- PacketAliasSaveFragment(fptr);
- break;
-
- case PKT_ALIAS_FOUND_HEADER_FRAGMENT:
- /* Fetch all the saved fragments and chain them on the end of `bp' */
- last = &bp->pnext;
- while ((fptr = PacketAliasGetFragment(MBUF_CTOP(bp))) != NULL) {
- PacketAliasFragmentIn(MBUF_CTOP(bp), fptr);
- len = ntohs(((struct ip *)fptr)->ip_len);
- *last = mbuf_Alloc(len, MB_NATIN);
- memcpy(MBUF_CTOP(*last), fptr, len);
- free(fptr);
- last = &(*last)->pnext;
- }
- break;
-
- default:
- mbuf_Free(bp);
- bp = NULL;
- break;
- }
-
- return bp;
-}
-
-struct layer natlayer =
- { LAYER_NAT, "nat", nat_LayerPush, nat_LayerPull };
diff --git a/usr.sbin/ppp/nat_cmd.h b/usr.sbin/ppp/nat_cmd.h
deleted file mode 100644
index 1ce19d10c76d..000000000000
--- a/usr.sbin/ppp/nat_cmd.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*-
- * The code in this file was written by Eivind Eklund <perhaps@yes.no>,
- * who places it in the public domain without restriction.
- *
- * $FreeBSD$
- */
-
-struct cmdargs;
-
-extern int nat_RedirectPort(struct cmdargs const *);
-extern int nat_RedirectAddr(struct cmdargs const *);
-extern int nat_ProxyRule(struct cmdargs const *);
-extern int nat_Pptp(struct cmdargs const *);
-
-extern struct layer natlayer;
diff --git a/usr.sbin/pw/pw_vpw.c b/usr.sbin/pw/pw_vpw.c
deleted file mode 100644
index ef12437a15ef..000000000000
--- a/usr.sbin/pw/pw_vpw.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/*-
- * Copyright (C) 1996
- * David L. Nugent. 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.
- *
- * THIS SOFTWARE IS PROVIDED BY DAVID L. NUGENT 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 DAVID L. NUGENT 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.
- *
- */
-
-#ifndef lint
-static const char rcsid[] =
- "$FreeBSD$";
-#endif /* not lint */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/param.h>
-
-#include "pwupd.h"
-
-static FILE * pwd_fp = NULL;
-
-void
-vendpwent(void)
-{
- if (pwd_fp != NULL) {
- fclose(pwd_fp);
- pwd_fp = NULL;
- }
-}
-
-void
-vsetpwent(void)
-{
- vendpwent();
-}
-
-static struct passwd *
-vnextpwent(char const * nam, uid_t uid, int doclose)
-{
- struct passwd * pw = NULL;
- static char pwtmp[1024];
-
- strncpy(pwtmp, getpwpath(_MASTERPASSWD), sizeof pwtmp);
- pwtmp[sizeof pwtmp - 1] = '\0';
-
- if (pwd_fp != NULL || (pwd_fp = fopen(pwtmp, "r")) != NULL) {
- int done = 0;
-
- static struct passwd pwd;
-
- while (!done && fgets(pwtmp, sizeof pwtmp, pwd_fp) != NULL)
- {
- int i, quickout = 0;
- char * q;
- char * p = strchr(pwtmp, '\n');
-
- if (p == NULL) {
- while (fgets(pwtmp, sizeof pwtmp, pwd_fp) != NULL && strchr(pwtmp, '\n')==NULL)
- ; /* Skip long lines */
- continue;
- }
-
- /* skip comments & empty lines */
- if (*pwtmp =='\n' || *pwtmp == '#')
- continue;
-
- i = 0;
- q = p = pwtmp;
- bzero(&pwd, sizeof pwd);
- while (!quickout && (p = strsep(&q, ":\n")) != NULL) {
- switch (i++)
- {
- case 0: /* username */
- pwd.pw_name = p;
- if (nam) {
- if (strcmp(nam, p) == 0)
- done = 1;
- else
- quickout = 1;
- }
- break;
- case 1: /* password */
- pwd.pw_passwd = p;
- break;
- case 2: /* uid */
- pwd.pw_uid = atoi(p);
- if (uid != (uid_t)-1) {
- if (uid == pwd.pw_uid)
- done = 1;
- else
- quickout = 1;
- }
- break;
- case 3: /* gid */
- pwd.pw_gid = atoi(p);
- break;
- case 4: /* class */
- if (nam == NULL && uid == (uid_t)-1)
- done = 1;
- pwd.pw_class = p;
- break;
- case 5: /* change */
- pwd.pw_change = (time_t)atol(p);
- break;
- case 6: /* expire */
- pwd.pw_expire = (time_t)atol(p);
- break;
- case 7: /* gecos */
- pwd.pw_gecos = p;
- break;
- case 8: /* directory */
- pwd.pw_dir = p;
- break;
- case 9: /* shell */
- pwd.pw_shell = p;
- break;
- }
- }
- }
- if (doclose)
- vendpwent();
- if (done && pwd.pw_name) {
- pw = &pwd;
-
- #define CKNULL(s) s = s ? s : ""
- CKNULL(pwd.pw_passwd);
- CKNULL(pwd.pw_class);
- CKNULL(pwd.pw_gecos);
- CKNULL(pwd.pw_dir);
- CKNULL(pwd.pw_shell);
- }
- }
- return pw;
-}
-
-struct passwd *
-vgetpwent(void)
-{
- return vnextpwent(NULL, -1, 0);
-}
-
-struct passwd *
-vgetpwuid(uid_t uid)
-{
- return vnextpwent(NULL, uid, 1);
-}
-
-struct passwd *
-vgetpwnam(const char * nam)
-{
- return vnextpwent(nam, -1, 1);
-}
-
-int vpwdb(char *arg, ...)
-{
- arg=arg;
- return 0;
-}
-
-
-
-static FILE * grp_fp = NULL;
-
-void
-vendgrent(void)
-{
- if (grp_fp != NULL) {
- fclose(grp_fp);
- grp_fp = NULL;
- }
-}
-
-int
-vsetgrent(void)
-{
- vendgrent();
- return 0;
-}
-
-static struct group *
-vnextgrent(char const * nam, gid_t gid, int doclose)
-{
- struct group * gr = NULL;
-
- static char * grtmp = NULL;
- static int grlen = 0;
- static char ** mems = NULL;
- static int memlen = 0;
-
- extendline(&grtmp, &grlen, MAXPATHLEN);
- strncpy(grtmp, getgrpath(_GROUP), MAXPATHLEN);
- grtmp[MAXPATHLEN - 1] = '\0';
-
- if (grp_fp != NULL || (grp_fp = fopen(grtmp, "r")) != NULL) {
- int done = 0;
-
- static struct group grp;
-
- while (!done && fgets(grtmp, grlen, grp_fp) != NULL)
- {
- int i, quickout = 0;
- int mno = 0;
- char * q, * p;
- char * sep = ":\n";
-
- if ((p = strchr(grtmp, '\n')) == NULL) {
- int l;
- extendline(&grtmp, &grlen, grlen + PWBUFSZ);
- l = strlen(grtmp);
- if (fgets(grtmp + l, grlen - l, grp_fp) == NULL)
- break; /* No newline terminator on last line */
- }
- /* Skip comments and empty lines */
- if (*grtmp == '\n' || *grtmp == '#')
- continue;
- i = 0;
- q = p = grtmp;
- bzero(&grp, sizeof grp);
- extendarray(&mems, &memlen, 200);
- while (!quickout && (p = strsep(&q, sep)) != NULL) {
- switch (i++)
- {
- case 0: /* groupname */
- grp.gr_name = p;
- if (nam) {
- if (strcmp(nam, p) == 0)
- done = 1;
- else
- quickout = 1;
- }
- break;
- case 1: /* password */
- grp.gr_passwd = p;
- break;
- case 2: /* gid */
- grp.gr_gid = atoi(p);
- if (gid != (gid_t)-1) {
- if (gid == (gid_t)grp.gr_gid)
- done = 1;
- else
- quickout = 1;
- } else if (nam == NULL)
- done = 1;
- break;
- case 3:
- q = p;
- sep = ",\n";
- break;
- default:
- if (*p) {
- extendarray(&mems, &memlen, mno + 2);
- mems[mno++] = p;
- }
- break;
- }
- }
- grp.gr_mem = mems;
- mems[mno] = NULL;
- }
- if (doclose)
- vendgrent();
- if (done && grp.gr_name) {
- gr = &grp;
-
- CKNULL(grp.gr_passwd);
- }
- }
- return gr;
-}
-
-struct group *
-vgetgrent(void)
-{
- return vnextgrent(NULL, -1, 0);
-}
-
-
-struct group *
-vgetgrgid(gid_t gid)
-{
- return vnextgrent(NULL, gid, 1);
-}
-
-struct group *
-vgetgrnam(const char * nam)
-{
- return vnextgrent(nam, -1, 1);
-}
-
-int
-vgrdb(char *arg, ...)
-{
- arg=arg;
- return 0;
-}
-