From ab5559aaabd1167a18ac882e64d97c5adc0e7d03 Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Mon, 11 Jun 2001 11:44:34 +0000 Subject: Initial revision --- mdk-stage1/ppp/svr4/Makedefs | 16 ++++ mdk-stage1/ppp/svr4/Makedefs.sol2 | 59 ++++++++++++ mdk-stage1/ppp/svr4/Makefile.sol2 | 66 +++++++++++++ mdk-stage1/ppp/svr4/Makefile.sol2-64 | 85 +++++++++++++++++ mdk-stage1/ppp/svr4/Makefile.svr4 | 60 ++++++++++++ mdk-stage1/ppp/svr4/Makefile.top | 50 ++++++++++ mdk-stage1/ppp/svr4/ppp.Master | 1 + mdk-stage1/ppp/svr4/ppp.Node | 1 + mdk-stage1/ppp/svr4/ppp.System | 1 + mdk-stage1/ppp/svr4/ppp.conf | 1 + mdk-stage1/ppp/svr4/ppp_ahdl.Master | 1 + mdk-stage1/ppp/svr4/ppp_ahdl.System | 1 + mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c | 49 ++++++++++ mdk-stage1/ppp/svr4/ppp_comp.Master | 1 + mdk-stage1/ppp/svr4/ppp_comp.System | 1 + mdk-stage1/ppp/svr4/ppp_comp_mod.c | 81 ++++++++++++++++ mdk-stage1/ppp/svr4/ppp_mod.c | 174 +++++++++++++++++++++++++++++++++++ 17 files changed, 648 insertions(+) create mode 100644 mdk-stage1/ppp/svr4/Makedefs create mode 100644 mdk-stage1/ppp/svr4/Makedefs.sol2 create mode 100644 mdk-stage1/ppp/svr4/Makefile.sol2 create mode 100644 mdk-stage1/ppp/svr4/Makefile.sol2-64 create mode 100644 mdk-stage1/ppp/svr4/Makefile.svr4 create mode 100644 mdk-stage1/ppp/svr4/Makefile.top create mode 100644 mdk-stage1/ppp/svr4/ppp.Master create mode 100644 mdk-stage1/ppp/svr4/ppp.Node create mode 100644 mdk-stage1/ppp/svr4/ppp.System create mode 100644 mdk-stage1/ppp/svr4/ppp.conf create mode 100644 mdk-stage1/ppp/svr4/ppp_ahdl.Master create mode 100644 mdk-stage1/ppp/svr4/ppp_ahdl.System create mode 100644 mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c create mode 100644 mdk-stage1/ppp/svr4/ppp_comp.Master create mode 100644 mdk-stage1/ppp/svr4/ppp_comp.System create mode 100644 mdk-stage1/ppp/svr4/ppp_comp_mod.c create mode 100644 mdk-stage1/ppp/svr4/ppp_mod.c (limited to 'mdk-stage1/ppp/svr4') diff --git a/mdk-stage1/ppp/svr4/Makedefs b/mdk-stage1/ppp/svr4/Makedefs new file mode 100644 index 000000000..81db8ab2e --- /dev/null +++ b/mdk-stage1/ppp/svr4/Makedefs @@ -0,0 +1,16 @@ +# +# defines common to several Makefiles +# + +INSTALL= /usr/sbin/install + +BINDIR = /usr/local/bin +MANDIR = /usr/local/man +ETCDIR = /etc/ppp + +COPTS = -O -Xa + +# For compiling with gcc, comment out the COPTS definition above and +# uncomment the next 2 definitions. +#CC = gcc +#COPTS = -O2 diff --git a/mdk-stage1/ppp/svr4/Makedefs.sol2 b/mdk-stage1/ppp/svr4/Makedefs.sol2 new file mode 100644 index 000000000..e8b8d282e --- /dev/null +++ b/mdk-stage1/ppp/svr4/Makedefs.sol2 @@ -0,0 +1,59 @@ +# +# Generic make definitions for Solaris 2 +# +# $Id$ +# + +include ../svr4/Makedefs + +CPPFLAGS = -D_KERNEL -DSVR4 -DSOL2 -DPRIOQ -DDEBUG -I../include +CFLAGS = $(CPPFLAGS) $(COPTS) + +# lint-specific variables +LINT = lint +LINT_OPT_32 = +LINT_OPT_64 = -Xarch=v9 -errchk=longptr64 + +LINT_32 = +LINT_32 += -erroff=E_BAD_PTR_CAST_ALIGN +LINT_32 += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED +LINT_32 += -erroff=E_SUSPICIOUS_COMPARISON +LINT_32 += -erroff=E_CAST_UINT_TO_SIGNED_INT +LINT_32 += -erroff=E_PASS_UINT_TO_SIGNED_INT +LINT_32 += -erroff=E_INVALID_ANNOTATION_NAME +LINT_32 += -erroff=E_FUNC_ARG_UNUSED +# This might be needed, but zlib.c and vjcompress.c will squawk +# when not ignored +LINT_32 += -erroff=E_CASE_FALLTHRU +LINT_32 += -erroff=E_RET_INT_IMPLICITLY +LINT_32 += -erroff=E_FUNC_NO_RET_VAL +# Some STREAMS macros will be noisy too when this isn't ignored +LINT_32 += -erroff=E_CONSTANT_CONDITION +LINT_32 += -erroff=E_CONST_EXPR + +# Extra noise suppressant for 64-bit +EXTRA_OFF = +EXTRA_OFF += -erroff=E_CAST_INT_TO_SMALL_INT +EXTRA_OFF += -erroff=E_CAST_INT_CONST_TO_SMALL_INT +EXTRA_OFF += -erroff=E_CAST_TO_PTR_FROM_INT +EXTRA_OFF += -erroff=E_ASSIGN_INT_TO_SMALL_INT +EXTRA_OFF += -erroff=E_ASSIGN_INT_FROM_BIG_CONST +EXTRA_OFF += -erroff=E_CONST_PROMOTED_UNSIGNED_LL +EXTRA_OFF += -erroff=E_CONST_PROMOTED_LONG_LONG +EXTRA_OFF += -erroff=E_CONST_TRUNCATED_BY_ASSIGN +EXTRA_OFF += -erroff=E_PASS_INT_FROM_BIG_CONST +EXTRA_OFF += -erroff=E_COMP_INT_WITH_LARGE_INT +EXTRA_OFF += -erroff=E_ASSIGN_UINT_TO_SIGNED_INT +EXTRA_OFF += -erroff=E_ASSIGN_NARROW_CONV +EXTRA_OFF += -erroff=E_PASS_INT_TO_SMALL_INT +EXTRA_OFF += -erroff=E_PTR_CONV_LOSES_BITS + +LINT_64 = $(LINT_32) +LINT_64 += $(EXTRA_OFF) + +LINTFLAGS64 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_64) $(LINT_64) +LINT64 = $(LINT) -c $(LINTFLAGS64) $(CPPFLAGS) + +LINTFLAGS32 = -Xa -nsxmuF -errtags=yes $(LINT_OPT_32) $(LINT_32) +LINT32 = $(LINT) -c $(LINTFLAGS32) $(CPPFLAGS) + diff --git a/mdk-stage1/ppp/svr4/Makefile.sol2 b/mdk-stage1/ppp/svr4/Makefile.sol2 new file mode 100644 index 000000000..5b2ca8635 --- /dev/null +++ b/mdk-stage1/ppp/svr4/Makefile.sol2 @@ -0,0 +1,66 @@ +# +# Makefile for STREAMS modules for Solaris 2. +# +# $Id$ +# + +include Makedefs.sol2 + +COPTS += -xO2 -xspace -W0,-Lt + +COMP_OBJS = ppp_comp.o bsd-comp.o deflate.o zlib.o vjcompress.o \ + ppp_comp_mod.o + +all: ppp ppp_ahdl ppp_comp + +ppp: ppp.o ppp_mod.o + ld -r -o $@ ppp.o ppp_mod.o + chmod +x $@ + +ppp_ahdl: ppp_ahdlc.o ppp_ahdlc_mod.o + ld -r -o $@ ppp_ahdlc.o ppp_ahdlc_mod.o + chmod +x $@ + +ppp_comp: $(COMP_OBJS) + ld -r -o $@ $(COMP_OBJS) + chmod +x $@ + +bsd-comp.o: ../modules/bsd-comp.c + $(CC) $(CFLAGS) -c $? +deflate.o: ../modules/deflate.c + $(CC) $(CFLAGS) -c $? +ppp.o: ../modules/ppp.c + $(CC) $(CFLAGS) -c $? +ppp_mod.o: ppp_mod.c + $(CC) $(CFLAGS) -c $? +ppp_ahdlc_mod.o: ppp_ahdlc_mod.c + $(CC) $(CFLAGS) -c $? +ppp_ahdlc.o: ../modules/ppp_ahdlc.c + $(CC) $(CFLAGS) -c $? +ppp_comp.o: ../modules/ppp_comp.c + $(CC) $(CFLAGS) -c $? +ppp_comp_mod.o: ppp_comp_mod.c + $(CC) $(CFLAGS) -c $? +vjcompress.o: ../modules/vjcompress.c + $(CC) $(CFLAGS) -c $? +zlib.o: ../common/zlib.c + $(CC) $(CFLAGS) -c $? + +install: + cp ppp ppp.conf /kernel/drv + cp ppp_comp ppp_ahdl /kernel/strmod + if grep clone:ppp /etc/minor_perm; then :; else \ + echo clone:ppp 0644 root sys >>/etc/minor_perm; fi + /usr/sbin/rem_drv ppp 2>/dev/null || true + /usr/sbin/add_drv ppp + +SRCS = ../modules/ppp.c ppp_mod.c ../modules/ppp_ahdlc.c ppp_ahdlc_mod.c \ + ../modules/ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \ + ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c + +lint: + $(LINT32) $(SRCS) + +clean: + rm -f ppp ppp_comp ppp_ahdl *.o *~ core + rm -f *.ln diff --git a/mdk-stage1/ppp/svr4/Makefile.sol2-64 b/mdk-stage1/ppp/svr4/Makefile.sol2-64 new file mode 100644 index 000000000..80c6b185e --- /dev/null +++ b/mdk-stage1/ppp/svr4/Makefile.sol2-64 @@ -0,0 +1,85 @@ +# +# Makefile for 64-bit STREAMS modules for Solaris 2. +# +# $Id$ +# + +include Makedefs.sol2 + +# Sun's cc flag for LP64 compilation / linkage +COPTS += -xchip=ultra -xarch=v9 -Wc,-xcode=abs32 -Wc,-Qiselect-regsym=0 -xO3 -xspace -W0,-Lt + +# subdirectory where 64-bit objects / binaries will be placed +LP64DIR = sparcv9 + +# Name of legacy Makefile (for 32-bit binaries) +STD_MAKE = Makefile.sol2 + +COMP_OBJS = $(LP64DIR)/ppp_comp.o $(LP64DIR)/bsd-comp.o \ + $(LP64DIR)/deflate.o $(LP64DIR)/zlib.o $(LP64DIR)/vjcompress.o \ + $(LP64DIR)/ppp_comp_mod.o + +all: std_objs $(LP64DIR) ppp ppp_ahdl ppp_comp + +std_objs: + $(MAKE) -f $(STD_MAKE) all + +ppp: $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o + ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp.o $(LP64DIR)/ppp_mod.o + chmod +x $(LP64DIR)/$@ + +ppp_ahdl: $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o + ld -r -o $(LP64DIR)/$@ $(LP64DIR)/ppp_ahdlc.o $(LP64DIR)/ppp_ahdlc_mod.o + chmod +x $(LP64DIR)/$@ + +ppp_comp: $(COMP_OBJS) + ld -r -o $(LP64DIR)/$@ $(COMP_OBJS) + chmod +x $(LP64DIR)/$@ + +$(LP64DIR)/bsd-comp.o: ../modules/bsd-comp.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/deflate.o: ../modules/deflate.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/ppp.o: ../modules/ppp.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/ppp_mod.o: ppp_mod.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/ppp_ahdlc_mod.o: ppp_ahdlc_mod.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/ppp_ahdlc.o: ../modules/ppp_ahdlc.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/ppp_comp.o: ../modules/ppp_comp.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/ppp_comp_mod.o: ppp_comp_mod.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/vjcompress.o: ../modules/vjcompress.c + $(CC) $(CFLAGS) -c $? -o $@ +$(LP64DIR)/zlib.o: ../common/zlib.c + $(CC) $(CFLAGS) -c $? -o $@ + +$(LP64DIR): + mkdir -m 755 -p $@ + +install: + cp ppp ppp.conf /kernel/drv + cp ppp_comp ppp_ahdl /kernel/strmod + cp $(LP64DIR)/ppp /kernel/drv/$(LP64DIR) + cp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl /kernel/strmod/$(LP64DIR) + if grep clone:ppp /etc/minor_perm; then :; else \ + echo clone:ppp 0644 root sys >>/etc/minor_perm; fi + /usr/sbin/rem_drv ppp 2>/dev/null || true + /usr/sbin/add_drv ppp + +SRCS = ../modules/ppp.c ppp_mod.c ../modules/ppp_ahdlc.c ppp_ahdlc_mod.c \ + ../modules/ppp_comp.c ../modules/bsd-comp.c ../modules/deflate.c \ + ../common/zlib.c ../modules/vjcompress.c ppp_comp_mod.c + +lint: + $(LINT64) $(SRCS) + +lint-32: + $(LINT32) $(SRCS) + +clean: + $(MAKE) -f $(STD_MAKE) clean + rm -f $(LP64DIR)/ppp $(LP64DIR)/ppp_comp $(LP64DIR)/ppp_ahdl $(LP64DIR)/*.o $(LP64DIR)/*~ $(LP64DIR)/core diff --git a/mdk-stage1/ppp/svr4/Makefile.svr4 b/mdk-stage1/ppp/svr4/Makefile.svr4 new file mode 100644 index 000000000..252c52428 --- /dev/null +++ b/mdk-stage1/ppp/svr4/Makefile.svr4 @@ -0,0 +1,60 @@ +# +# Makefile for STREAMS modules for SVR4. +# +# $Id$ +# + +COPTS = -O + +CFLAGS= -D_KERNEL -DSVR4 -DLACHTCP -I../include $(COPTS) + +all: ppp ppp_ahdl ppp_comp + +ppp: ppp.o + ld -r -o $@ ppp.o + +ppp_ahdl: ppp_ahdlc.o + ld -r -o $@ ppp_ahdlc.o + +ppp_comp: ppp_comp.o bsd-comp.o vjcompress.o deflate.o zlib.o + ld -r -o $@ ppp_comp.o bsd-comp.o vjcompress.o deflate.o zlib.o + +bsd-comp.o: ../modules/bsd-comp.c + $(CC) $(CFLAGS) -c $? +deflate.o: ../modules/deflate.c + $(CC) $(CFLAGS) -c $? +ppp.o: ../modules/ppp.c + $(CC) $(CFLAGS) -c $? +ppp_ahdlc.o: ../modules/ppp_ahdlc.c + $(CC) $(CFLAGS) -c $? +ppp_comp.o: ../modules/ppp_comp.c + $(CC) $(CFLAGS) -c $? +vjcompress.o: ../modules/vjcompress.c + $(CC) $(CFLAGS) -c $? +zlib.o: ../common/zlib.c + $(CC) $(CFLAGS) -c $? + +install: all + cp ppp Driver.o + cp ppp.Master Master + cp ppp.System System + cp ppp.Node Node + /etc/conf/bin/idinstall -d ppp + /etc/conf/bin/idinstall -a ppp + cp ppp_comp Driver.o + cp ppp_comp.Master Master + cp ppp_comp.System System + /etc/conf/bin/idinstall -d ppp_comp + /etc/conf/bin/idinstall -a ppp_comp + cp ppp_ahdl Driver.o + cp ppp_ahdl.Master Master + cp ppp_ahdl.System System + /etc/conf/bin/idinstall -d ppp_ahdl + /etc/conf/bin/idinstall -a ppp_ahdl + @echo + @echo 'NOTE: You must rebuild your kernel to incorporate the driver.' + @echo '(use /etc/conf/bin/idbuild)' + @echo + +clean: + rm -f ppp ppp_comp ppp_ahdl *.o *~ core diff --git a/mdk-stage1/ppp/svr4/Makefile.top b/mdk-stage1/ppp/svr4/Makefile.top new file mode 100644 index 000000000..253e48acb --- /dev/null +++ b/mdk-stage1/ppp/svr4/Makefile.top @@ -0,0 +1,50 @@ +# +# ppp top level makefile for SVR4 and Solaris 2 +# +# $Id$ +# + +include svr4/Makedefs + +all: + cd chat; $(MAKE) all + cd pppd; $(MAKE) all + cd pppstats; $(MAKE) all + cd pppdump; $(MAKE) all + cd svr4; $(MAKE) all + +install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp + +install-progs: + cd chat; $(MAKE) install + cd pppd; $(MAKE) install + cd pppstats; $(MAKE) install + cd pppdump; $(MAKE) install + cd svr4; $(MAKE) install + +install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \ + $(ETCDIR)/chap-secrets + +$(ETCDIR)/options: + cp etc.ppp/options $@ + chmod go-w $@ +$(ETCDIR)/pap-secrets: + $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/pap-secrets +$(ETCDIR)/chap-secrets: + $(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/chap-secrets + +$(BINDIR): + mkdir -m 755 -p $@ +$(MANDIR)/man8: + mkdir -m 755 -p $@ +$(ETCDIR): + mkdir -m 755 -p $@ + +clean: + rm -f *~ + cd chat; $(MAKE) clean + cd pppd; $(MAKE) clean + cd pppstats; $(MAKE) clean + cd pppdump; $(MAKE) clean + cd svr4; $(MAKE) clean + diff --git a/mdk-stage1/ppp/svr4/ppp.Master b/mdk-stage1/ppp/svr4/ppp.Master new file mode 100644 index 000000000..346db035b --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp.Master @@ -0,0 +1 @@ +ppp - Sciof ppp 0 0 1 128 -1 diff --git a/mdk-stage1/ppp/svr4/ppp.Node b/mdk-stage1/ppp/svr4/ppp.Node new file mode 100644 index 000000000..7767ade71 --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp.Node @@ -0,0 +1 @@ +clone ppp c ppp diff --git a/mdk-stage1/ppp/svr4/ppp.System b/mdk-stage1/ppp/svr4/ppp.System new file mode 100644 index 000000000..e60c0eec3 --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp.System @@ -0,0 +1 @@ +ppp Y 1 0 0 0 0 0 0 0 diff --git a/mdk-stage1/ppp/svr4/ppp.conf b/mdk-stage1/ppp/svr4/ppp.conf new file mode 100644 index 000000000..e443a7aac --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp.conf @@ -0,0 +1 @@ +name="ppp" parent="pseudo" instance=0; diff --git a/mdk-stage1/ppp/svr4/ppp_ahdl.Master b/mdk-stage1/ppp/svr4/ppp_ahdl.Master new file mode 100644 index 000000000..4fde52596 --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp_ahdl.Master @@ -0,0 +1 @@ +ppp_ahdl - iSf phdl 0 0 1 1 -1 diff --git a/mdk-stage1/ppp/svr4/ppp_ahdl.System b/mdk-stage1/ppp/svr4/ppp_ahdl.System new file mode 100644 index 000000000..f41a500f4 --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp_ahdl.System @@ -0,0 +1 @@ +ppp_ahdl Y 1 0 0 0 0 0 0 0 diff --git a/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c b/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c new file mode 100644 index 000000000..f81be8abb --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp_ahdlc_mod.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include + +extern struct streamtab ppp_ahdlcinfo; + +static struct fmodsw fsw = { + "ppp_ahdl", + &ppp_ahdlcinfo, + D_NEW | D_MP | D_MTQPAIR +}; + +extern struct mod_ops mod_strmodops; + +static struct modlstrmod modlstrmod = { + &mod_strmodops, + "PPP async HDLC module", + &fsw +}; + +static struct modlinkage modlinkage = { + MODREV_1, + (void *) &modlstrmod, + NULL +}; + +/* + * Entry points for modloading. + */ +int +_init(void) +{ + return mod_install(&modlinkage); +} + +int +_fini(void) +{ + return mod_remove(&modlinkage); +} + +int +_info(mip) + struct modinfo *mip; +{ + return mod_info(&modlinkage, mip); +} diff --git a/mdk-stage1/ppp/svr4/ppp_comp.Master b/mdk-stage1/ppp/svr4/ppp_comp.Master new file mode 100644 index 000000000..78019064e --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp_comp.Master @@ -0,0 +1 @@ +ppp_comp - iSf pcmp 0 0 1 1 -1 diff --git a/mdk-stage1/ppp/svr4/ppp_comp.System b/mdk-stage1/ppp/svr4/ppp_comp.System new file mode 100644 index 000000000..e69d4a1a3 --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp_comp.System @@ -0,0 +1 @@ +ppp_comp Y 1 0 0 0 0 0 0 0 diff --git a/mdk-stage1/ppp/svr4/ppp_comp_mod.c b/mdk-stage1/ppp/svr4/ppp_comp_mod.c new file mode 100644 index 000000000..83ff8e252 --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp_comp_mod.c @@ -0,0 +1,81 @@ +/* + * ppp_comp_mod.c - modload support for PPP compression STREAMS module. + * + * Copyright (c) 1994 The Australian National University. + * All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation is hereby granted, provided that the above copyright + * notice appears in all copies. This software is provided without any + * warranty, express or implied. The Australian National University + * makes no representations about the suitability of this software for + * any purpose. + * + * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY + * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF + * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO + * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, + * OR MODIFICATIONS. + * + * $Id$ + */ + +/* + * This file is used under Solaris 2. + */ +#include +#include +#include +#include +#include + +extern struct streamtab ppp_compinfo; + +static struct fmodsw fsw = { + "ppp_comp", + &ppp_compinfo, + D_NEW | D_MP | D_MTQPAIR +}; + +extern struct mod_ops mod_strmodops; + +static struct modlstrmod modlstrmod = { + &mod_strmodops, + "PPP compression module", + &fsw +}; + +static struct modlinkage modlinkage = { + MODREV_1, + (void *) &modlstrmod, + NULL +}; + +/* + * Entry points for modloading. + */ +int +_init(void) +{ + return mod_install(&modlinkage); +} + +int +_fini(void) +{ + return mod_remove(&modlinkage); +} + +int +_info(mip) + struct modinfo *mip; +{ + return mod_info(&modlinkage, mip); +} diff --git a/mdk-stage1/ppp/svr4/ppp_mod.c b/mdk-stage1/ppp/svr4/ppp_mod.c new file mode 100644 index 000000000..a4b1538a5 --- /dev/null +++ b/mdk-stage1/ppp/svr4/ppp_mod.c @@ -0,0 +1,174 @@ +/* + * ppp_mod.c - modload support for PPP pseudo-device driver. + * + * Copyright (c) 1994 The Australian National University. + * All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation is hereby granted, provided that the above copyright + * notice appears in all copies. This software is provided without any + * warranty, express or implied. The Australian National University + * makes no representations about the suitability of this software for + * any purpose. + * + * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY + * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF + * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO + * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, + * OR MODIFICATIONS. + * + * $Id$ + */ + +/* + * This file is used under Solaris 2. + */ + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __STDC__ +#define __P(x) x +#else +#define __P(x) () +#endif + +static int ppp_identify __P((dev_info_t *)); +static int ppp_attach __P((dev_info_t *, ddi_attach_cmd_t)); +static int ppp_detach __P((dev_info_t *, ddi_detach_cmd_t)); +static int ppp_devinfo __P((dev_info_t *, ddi_info_cmd_t, void *, void **)); + +extern struct streamtab pppinfo; +extern krwlock_t ppp_lower_lock; + +static dev_info_t *ppp_dip; + +static struct cb_ops cb_ppp_ops = { + nulldev, nulldev, nodev, nodev, /* cb_open, ... */ + nodev, nodev, nodev, nodev, /* cb_dump, ... */ + nodev, nodev, nodev, nochpoll, /* cb_devmap, ... */ + ddi_prop_op, /* cb_prop_op */ + &pppinfo, /* cb_stream */ + D_NEW|D_MP|D_MTQPAIR|D_MTOUTPERIM|D_MTOCEXCL /* cb_flag */ +}; + +static struct dev_ops ppp_ops = { + DEVO_REV, /* devo_rev */ + 0, /* devo_refcnt */ + ppp_devinfo, /* devo_getinfo */ + ppp_identify, /* devo_identify */ + nulldev, /* devo_probe */ + ppp_attach, /* devo_attach */ + ppp_detach, /* devo_detach */ + nodev, /* devo_reset */ + &cb_ppp_ops, /* devo_cb_ops */ + NULL /* devo_bus_ops */ +}; + +/* + * Module linkage information + */ + +static struct modldrv modldrv = { + &mod_driverops, /* says this is a pseudo driver */ + "PPP-2.3 multiplexing driver", + &ppp_ops /* driver ops */ +}; + +static struct modlinkage modlinkage = { + MODREV_1, + (void *) &modldrv, + NULL +}; + +int +_init(void) +{ + return mod_install(&modlinkage); +} + +int +_fini(void) +{ + return mod_remove(&modlinkage); +} + +int +_info(mip) + struct modinfo *mip; +{ + return mod_info(&modlinkage, mip); +} + +static int +ppp_identify(dip) + dev_info_t *dip; +{ + return strcmp(ddi_get_name(dip), "ppp") == 0? DDI_IDENTIFIED: + DDI_NOT_IDENTIFIED; +} + +static int +ppp_attach(dip, cmd) + dev_info_t *dip; + ddi_attach_cmd_t cmd; +{ + + if (cmd != DDI_ATTACH) + return DDI_FAILURE; + if (ddi_create_minor_node(dip, "ppp", S_IFCHR, 0, DDI_PSEUDO, CLONE_DEV) + == DDI_FAILURE) { + ddi_remove_minor_node(dip, NULL); + return DDI_FAILURE; + } + rw_init(&ppp_lower_lock, NULL, RW_DRIVER, NULL); + return DDI_SUCCESS; +} + +static int +ppp_detach(dip, cmd) + dev_info_t *dip; + ddi_detach_cmd_t cmd; +{ + rw_destroy(&ppp_lower_lock); + ddi_remove_minor_node(dip, NULL); + return DDI_SUCCESS; +} + +static int +ppp_devinfo(dip, cmd, arg, result) + dev_info_t *dip; + ddi_info_cmd_t cmd; + void *arg; + void **result; +{ + int error; + + error = DDI_SUCCESS; + switch (cmd) { + case DDI_INFO_DEVT2DEVINFO: + if (ppp_dip == NULL) + error = DDI_FAILURE; + else + *result = (void *) ppp_dip; + break; + case DDI_INFO_DEVT2INSTANCE: + *result = NULL; + break; + default: + error = DDI_FAILURE; + } + return error; +} -- cgit v1.2.1