head 1.23; access; symbols netbsd-10-0-RELEASE:1.23 netbsd-10-0-RC6:1.23 netbsd-10-0-RC5:1.23 netbsd-10-0-RC4:1.23 netbsd-10-0-RC3:1.23 netbsd-10-0-RC2:1.23 thorpej-ifq:1.23.0.50 thorpej-ifq-base:1.23 thorpej-altq-separation:1.23.0.48 thorpej-altq-separation-base:1.23 netbsd-10-0-RC1:1.23 netbsd-10:1.23.0.46 netbsd-10-base:1.23 bouyer-sunxi-drm:1.23.0.44 bouyer-sunxi-drm-base:1.23 netbsd-9-3-RELEASE:1.23 thorpej-i2c-spi-conf2:1.23.0.42 thorpej-i2c-spi-conf2-base:1.23 thorpej-futex2:1.23.0.40 thorpej-futex2-base:1.23 thorpej-cfargs2:1.23.0.38 thorpej-cfargs2-base:1.23 cjep_sun2x-base1:1.23 cjep_sun2x:1.23.0.36 cjep_sun2x-base:1.23 cjep_staticlib_x-base1:1.23 netbsd-9-2-RELEASE:1.23 cjep_staticlib_x:1.23.0.34 cjep_staticlib_x-base:1.23 thorpej-i2c-spi-conf:1.23.0.32 thorpej-i2c-spi-conf-base:1.23 thorpej-cfargs:1.23.0.30 thorpej-cfargs-base:1.23 thorpej-futex:1.23.0.28 thorpej-futex-base:1.23 netbsd-9-1-RELEASE:1.23 bouyer-xenpvh-base2:1.23 phil-wifi-20200421:1.23 bouyer-xenpvh-base1:1.23 phil-wifi-20200411:1.23 bouyer-xenpvh:1.23.0.26 bouyer-xenpvh-base:1.23 is-mlppp:1.23.0.24 is-mlppp-base:1.23 phil-wifi-20200406:1.23 netbsd-8-2-RELEASE:1.23 ad-namecache-base3:1.23 netbsd-9-0-RELEASE:1.23 netbsd-9-0-RC2:1.23 ad-namecache-base2:1.23 ad-namecache-base1:1.23 ad-namecache:1.23.0.22 ad-namecache-base:1.23 netbsd-9-0-RC1:1.23 phil-wifi-20191119:1.23 netbsd-9:1.23.0.20 netbsd-9-base:1.23 phil-wifi-20190609:1.23 netbsd-8-1-RELEASE:1.23 netbsd-8-1-RC1:1.23 isaki-audio2:1.23.0.18 isaki-audio2-base:1.23 pgoyette-compat-merge-20190127:1.23 pgoyette-compat-20190127:1.23 pgoyette-compat-20190118:1.23 pgoyette-compat-1226:1.23 pgoyette-compat-1126:1.23 pgoyette-compat-1020:1.23 pgoyette-compat-0930:1.23 pgoyette-compat-0906:1.23 netbsd-7-2-RELEASE:1.20 pgoyette-compat-0728:1.23 netbsd-8-0-RELEASE:1.23 phil-wifi:1.23.0.16 phil-wifi-base:1.23 pgoyette-compat-0625:1.23 netbsd-8-0-RC2:1.23 pgoyette-compat-0521:1.23 pgoyette-compat-0502:1.23 pgoyette-compat-0422:1.23 netbsd-8-0-RC1:1.23 pgoyette-compat-0415:1.23 pgoyette-compat-0407:1.23 pgoyette-compat-0330:1.23 pgoyette-compat-0322:1.23 pgoyette-compat-0315:1.23 netbsd-7-1-2-RELEASE:1.20 pgoyette-compat:1.23.0.14 pgoyette-compat-base:1.23 netbsd-7-1-1-RELEASE:1.20 tls-maxphys-base-20171202:1.23 matt-nb8-mediatek:1.23.0.12 matt-nb8-mediatek-base:1.23 nick-nhusb-base-20170825:1.23 perseant-stdc-iso10646:1.23.0.10 perseant-stdc-iso10646-base:1.23 netbsd-8:1.23.0.8 netbsd-8-base:1.23 prg-localcount2-base3:1.23 prg-localcount2-base2:1.23 prg-localcount2-base1:1.23 prg-localcount2:1.23.0.6 prg-localcount2-base:1.23 pgoyette-localcount-20170426:1.23 bouyer-socketcan-base1:1.23 jdolecek-ncq:1.23.0.4 jdolecek-ncq-base:1.23 pgoyette-localcount-20170320:1.23 netbsd-7-1:1.20.0.48 netbsd-7-1-RELEASE:1.20 netbsd-7-1-RC2:1.20 nick-nhusb-base-20170204:1.23 netbsd-7-nhusb-base-20170116:1.20 bouyer-socketcan:1.23.0.2 bouyer-socketcan-base:1.23 pgoyette-localcount-20170107:1.23 netbsd-7-1-RC1:1.20 nick-nhusb-base-20161204:1.23 pgoyette-localcount-20161104:1.23 netbsd-7-0-2-RELEASE:1.20 nick-nhusb-base-20161004:1.23 localcount-20160914:1.23 netbsd-7-nhusb:1.20.0.46 netbsd-7-nhusb-base:1.20 pgoyette-localcount-20160806:1.21 pgoyette-localcount-20160726:1.21 pgoyette-localcount:1.21.0.2 pgoyette-localcount-base:1.21 nick-nhusb-base-20160907:1.21 nick-nhusb-base-20160529:1.21 netbsd-7-0-1-RELEASE:1.20 nick-nhusb-base-20160422:1.21 nick-nhusb-base-20160319:1.20 nick-nhusb-base-20151226:1.20 netbsd-7-0:1.20.0.44 netbsd-7-0-RELEASE:1.20 nick-nhusb-base-20150921:1.20 netbsd-7-0-RC3:1.20 netbsd-7-0-RC2:1.20 netbsd-7-0-RC1:1.20 nick-nhusb-base-20150606:1.20 nick-nhusb-base-20150406:1.20 nick-nhusb:1.20.0.42 nick-nhusb-base:1.20 netbsd-5-2-3-RELEASE:1.17 netbsd-5-1-5-RELEASE:1.17 netbsd-6-0-6-RELEASE:1.20 netbsd-6-1-5-RELEASE:1.20 netbsd-7:1.20.0.40 netbsd-7-base:1.20 yamt-pagecache-base9:1.20 yamt-pagecache-tag8:1.20 netbsd-6-1-4-RELEASE:1.20 netbsd-6-0-5-RELEASE:1.20 tls-earlyentropy:1.20.0.38 tls-earlyentropy-base:1.20 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.20 riastradh-drm2-base3:1.20 netbsd-6-1-3-RELEASE:1.20 netbsd-6-0-4-RELEASE:1.20 netbsd-5-2-2-RELEASE:1.17 netbsd-5-1-4-RELEASE:1.17 netbsd-6-1-2-RELEASE:1.20 netbsd-6-0-3-RELEASE:1.20 netbsd-5-2-1-RELEASE:1.17 netbsd-5-1-3-RELEASE:1.17 rmind-smpnet-nbase:1.20 netbsd-6-1-1-RELEASE:1.20 riastradh-drm2-base2:1.20 riastradh-drm2-base1:1.20 riastradh-drm2:1.20.0.36 riastradh-drm2-base:1.20 rmind-smpnet:1.20.0.28 rmind-smpnet-base:1.20 netbsd-6-1:1.20.0.34 netbsd-6-0-2-RELEASE:1.20 netbsd-6-1-RELEASE:1.20 khorben-n900:1.20.0.32 netbsd-6-1-RC4:1.20 netbsd-6-1-RC3:1.20 agc-symver:1.20.0.30 agc-symver-base:1.20 netbsd-6-1-RC2:1.20 netbsd-6-1-RC1:1.20 yamt-pagecache-base8:1.20 netbsd-5-2:1.17.0.20 netbsd-6-0-1-RELEASE:1.20 yamt-pagecache-base7:1.20 netbsd-5-2-RELEASE:1.17 netbsd-5-2-RC1:1.17 matt-nb6-plus-nbase:1.20 yamt-pagecache-base6:1.20 netbsd-6-0:1.20.0.26 netbsd-6-0-RELEASE:1.20 netbsd-6-0-RC2:1.20 tls-maxphys:1.20.0.24 tls-maxphys-base:1.20 matt-nb6-plus:1.20.0.22 matt-nb6-plus-base:1.20 netbsd-6-0-RC1:1.20 jmcneill-usbmp-base10:1.20 yamt-pagecache-base5:1.20 jmcneill-usbmp-base9:1.20 yamt-pagecache-base4:1.20 jmcneill-usbmp-base8:1.20 jmcneill-usbmp-base7:1.20 jmcneill-usbmp-base6:1.20 jmcneill-usbmp-base5:1.20 jmcneill-usbmp-base4:1.20 jmcneill-usbmp-base3:1.20 jmcneill-usbmp-pre-base2:1.20 jmcneill-usbmp-base2:1.20 netbsd-6:1.20.0.20 netbsd-6-base:1.20 netbsd-5-1-2-RELEASE:1.17 netbsd-5-1-1-RELEASE:1.17 jmcneill-usbmp:1.20.0.18 jmcneill-usbmp-base:1.20 jmcneill-audiomp3:1.20.0.16 jmcneill-audiomp3-base:1.20 yamt-pagecache-base3:1.20 yamt-pagecache-base2:1.20 yamt-pagecache:1.20.0.14 yamt-pagecache-base:1.20 rmind-uvmplock-nbase:1.20 cherry-xenmp:1.20.0.12 cherry-xenmp-base:1.20 bouyer-quota2-nbase:1.20 bouyer-quota2:1.20.0.10 bouyer-quota2-base:1.20 jruoho-x86intr:1.20.0.8 jruoho-x86intr-base:1.20 matt-mips64-premerge-20101231:1.20 matt-nb5-mips64-premerge-20101231:1.17 matt-nb5-pq3:1.17.0.18 matt-nb5-pq3-base:1.17 netbsd-5-1:1.17.0.16 netbsd-5-1-RELEASE:1.17 uebayasi-xip-base4:1.20 uebayasi-xip-base3:1.20 yamt-nfs-mp-base11:1.20 netbsd-5-1-RC4:1.17 matt-nb5-mips64-k15:1.17 uebayasi-xip-base2:1.20 yamt-nfs-mp-base10:1.20 netbsd-5-1-RC3:1.17 netbsd-5-1-RC2:1.17 uebayasi-xip-base1:1.20 netbsd-5-1-RC1:1.17 rmind-uvmplock:1.20.0.6 rmind-uvmplock-base:1.20 yamt-nfs-mp-base9:1.20 uebayasi-xip:1.20.0.4 uebayasi-xip-base:1.20 netbsd-5-0-2-RELEASE:1.17 matt-nb5-mips64-premerge-20091211:1.17 matt-premerge-20091211:1.20 yamt-nfs-mp-base8:1.20 matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.17 matt-nb4-mips64-k7-u2a-k9b:1.17 matt-nb5-mips64-u1-k1-k5:1.17 yamt-nfs-mp-base7:1.20 matt-nb5-mips64:1.17.0.14 netbsd-5-0-1-RELEASE:1.17 jymxensuspend-base:1.20 yamt-nfs-mp-base6:1.20 yamt-nfs-mp-base5:1.20 yamt-nfs-mp-base4:1.20 jym-xensuspend-nbase:1.20 yamt-nfs-mp-base3:1.20 nick-hppapmap-base4:1.20 nick-hppapmap-base3:1.20 netbsd-5-0:1.17.0.12 netbsd-5-0-RELEASE:1.17 netbsd-5-0-RC4:1.17 netbsd-5-0-RC3:1.17 nick-hppapmap-base2:1.20 netbsd-5-0-RC2:1.17 jym-xensuspend:1.20.0.2 jym-xensuspend-base:1.20 netbsd-5-0-RC1:1.17 haad-dm-base2:1.19 haad-nbase2:1.19 ad-audiomp2:1.19.0.2 ad-audiomp2-base:1.19 netbsd-5:1.17.0.10 netbsd-5-base:1.17 nick-hppapmap:1.17.0.8 nick-hppapmap-base:1.20 matt-mips64-base2:1.17 matt-mips64:1.15.0.54 haad-dm-base1:1.17 wrstuden-revivesa-base-4:1.17 netbsd-4-0-1-RELEASE:1.15 wrstuden-revivesa-base-3:1.17 wrstuden-revivesa-base-2:1.17 wrstuden-fixsa-newbase:1.15 nick-csl-alignment-base5:1.15 haad-dm:1.17.0.6 haad-dm-base:1.19 wrstuden-revivesa-base-1:1.17 simonb-wapbl-nbase:1.17 yamt-pf42-base4:1.17 simonb-wapbl:1.17.0.4 simonb-wapbl-base:1.17 yamt-pf42-base3:1.17 hpcarm-cleanup-nbase:1.17 yamt-pf42-baseX:1.15 yamt-pf42-base2:1.17 yamt-nfs-mp-base2:1.17 wrstuden-revivesa:1.17.0.2 wrstuden-revivesa-base:1.17 yamt-nfs-mp:1.15.0.52 yamt-nfs-mp-base:1.15 yamt-pf42:1.15.0.50 yamt-pf42-base:1.15 ad-socklock-base1:1.15 yamt-lazymbuf-base15:1.15 yamt-lazymbuf-base14:1.15 keiichi-mipv6-nbase:1.15 mjf-devfs2:1.15.0.48 mjf-devfs2-base:1.20 nick-net80211-sync:1.15.0.46 nick-net80211-sync-base:1.15 keiichi-mipv6:1.15.0.44 keiichi-mipv6-base:1.15 bouyer-xeni386-merge1:1.15 matt-armv6-prevmlocking:1.15 wrstuden-fixsa-base-1:1.15 vmlocking2-base3:1.15 netbsd-4-0:1.15.0.42 netbsd-4-0-RELEASE:1.15 bouyer-xeni386-nbase:1.15 yamt-kmem-base3:1.15 cube-autoconf:1.15.0.40 cube-autoconf-base:1.15 yamt-kmem-base2:1.15 bouyer-xeni386:1.15.0.38 bouyer-xeni386-base:1.15 yamt-kmem:1.15.0.36 yamt-kmem-base:1.15 vmlocking2-base2:1.15 reinoud-bufcleanup-nbase:1.15 vmlocking2:1.15.0.34 vmlocking2-base1:1.15 netbsd-4-0-RC5:1.15 matt-nb4-arm:1.15.0.32 matt-nb4-arm-base:1.15 matt-armv6-nbase:1.15 jmcneill-base:1.15 netbsd-4-0-RC4:1.15 mjf-devfs:1.15.0.30 mjf-devfs-base:1.15 bouyer-xenamd64-base2:1.15 vmlocking-nbase:1.15 yamt-x86pmap-base4:1.15 bouyer-xenamd64:1.15.0.28 bouyer-xenamd64-base:1.15 netbsd-4-0-RC3:1.15 yamt-x86pmap-base3:1.15 yamt-x86pmap-base2:1.15 netbsd-4-0-RC2:1.15 yamt-x86pmap:1.15.0.26 yamt-x86pmap-base:1.15 netbsd-4-0-RC1:1.15 matt-armv6:1.15.0.24 matt-armv6-base:1.15 matt-mips64-base:1.15 jmcneill-pm:1.15.0.22 jmcneill-pm-base:1.15 hpcarm-cleanup:1.15.0.20 hpcarm-cleanup-base:1.15 nick-csl-alignment:1.15.0.18 nick-csl-alignment-base:1.15 netbsd-3-1-1-RELEASE:1.12 netbsd-3-0-3-RELEASE:1.12 yamt-idlelwp-base8:1.15 wrstuden-fixsa:1.15.0.16 wrstuden-fixsa-base:1.15 thorpej-atomic:1.15.0.14 thorpej-atomic-base:1.15 reinoud-bufcleanup:1.15.0.12 reinoud-bufcleanup-base:1.15 mjf-ufs-trans:1.15.0.10 mjf-ufs-trans-base:1.15 vmlocking:1.15.0.8 vmlocking-base:1.15 ad-audiomp:1.15.0.6 ad-audiomp-base:1.15 yamt-idlelwp:1.15.0.4 post-newlock2-merge:1.15 newlock2-nbase:1.15 yamt-splraiseipl-base5:1.15 yamt-splraiseipl-base4:1.15 yamt-splraiseipl-base3:1.15 abandoned-netbsd-4-base:1.13 abandoned-netbsd-4:1.13.0.18 netbsd-3-1:1.12.0.34 netbsd-3-1-RELEASE:1.12 netbsd-3-0-2-RELEASE:1.12 yamt-splraiseipl-base2:1.14 netbsd-3-1-RC4:1.12 yamt-splraiseipl:1.13.0.22 yamt-splraiseipl-base:1.13 netbsd-3-1-RC3:1.12 yamt-pdpolicy-base9:1.13 newlock2:1.13.0.20 newlock2-base:1.15 yamt-pdpolicy-base8:1.13 netbsd-3-1-RC2:1.12 netbsd-3-1-RC1:1.12 yamt-pdpolicy-base7:1.13 netbsd-4:1.15.0.2 netbsd-4-base:1.15 yamt-pdpolicy-base6:1.13 chap-midi-nbase:1.13 netbsd-3-0-1-RELEASE:1.12 gdamore-uart:1.13.0.16 gdamore-uart-base:1.13 simonb-timcounters-final:1.13 yamt-pdpolicy-base5:1.13 chap-midi:1.13.0.14 chap-midi-base:1.13 yamt-pdpolicy-base4:1.13 yamt-pdpolicy-base3:1.13 peter-altq-base:1.13 peter-altq:1.13.0.12 yamt-pdpolicy-base2:1.13 elad-kernelauth-base:1.13 elad-kernelauth:1.13.0.10 yamt-pdpolicy:1.13.0.8 yamt-pdpolicy-base:1.13 yamt-uio_vmspace-base5:1.13 simonb-timecounters:1.13.0.6 simonb-timecounters-base:1.13 rpaulo-netinet-merge-pcb:1.13.0.4 rpaulo-netinet-merge-pcb-base:1.13 yamt-uio_vmspace:1.13.0.2 netbsd-3-0:1.12.0.32 netbsd-3-0-RELEASE:1.12 netbsd-3-0-RC6:1.12 yamt-readahead-base3:1.12 netbsd-3-0-RC5:1.12 netbsd-3-0-RC4:1.12 netbsd-3-0-RC3:1.12 yamt-readahead-base2:1.12 netbsd-3-0-RC2:1.12 yamt-readahead-pervnode:1.12 yamt-readahead-perfile:1.12 yamt-readahead:1.12.0.30 yamt-readahead-base:1.12 netbsd-3-0-RC1:1.12 yamt-vop-base3:1.12 netbsd-2-0-3-RELEASE:1.12 netbsd-2-1:1.12.0.28 yamt-vop-base2:1.12 thorpej-vnode-attr:1.12.0.26 thorpej-vnode-attr-base:1.12 netbsd-2-1-RELEASE:1.12 yamt-vop:1.12.0.24 yamt-vop-base:1.12 netbsd-2-1-RC6:1.12 netbsd-2-1-RC5:1.12 netbsd-2-1-RC4:1.12 netbsd-2-1-RC3:1.12 netbsd-2-1-RC2:1.12 netbsd-2-1-RC1:1.12 yamt-lazymbuf:1.12.0.22 yamt-km-base4:1.12 netbsd-2-0-2-RELEASE:1.12 yamt-km-base3:1.12 netbsd-3:1.12.0.20 netbsd-3-base:1.12 yamt-km-base2:1.12 yamt-km:1.12.0.16 yamt-km-base:1.12 kent-audio2:1.12.0.14 kent-audio2-base:1.12 netbsd-2-0-1-RELEASE:1.12 kent-audio1-beforemerge:1.12 netbsd-2:1.12.0.12 netbsd-2-base:1.12 kent-audio1:1.12.0.10 kent-audio1-base:1.12 netbsd-2-0-RELEASE:1.12 netbsd-2-0-RC5:1.12 netbsd-2-0-RC4:1.12 netbsd-2-0-RC3:1.12 netbsd-2-0-RC2:1.12 netbsd-2-0-RC1:1.12 netbsd-2-0:1.12.0.8 netbsd-2-0-base:1.12 netbsd-1-6-PATCH002-RELEASE:1.11 netbsd-1-6-PATCH002:1.11 netbsd-1-6-PATCH002-RC4:1.11 netbsd-1-6-PATCH002-RC3:1.11 netbsd-1-6-PATCH002-RC2:1.11 netbsd-1-6-PATCH002-RC1:1.11 ktrace-lwp:1.12.0.6 ktrace-lwp-base:1.12 netbsd-1-6-PATCH001:1.11 netbsd-1-6-PATCH001-RELEASE:1.11 netbsd-1-6-PATCH001-RC3:1.11 netbsd-1-6-PATCH001-RC2:1.11 netbsd-1-6-PATCH001-RC1:1.11 nathanw_sa_end:1.7.2.5 nathanw_sa_before_merge:1.12 fvdl_fs64_base:1.12 gmcgarry_ctxsw:1.12.0.4 gmcgarry_ctxsw_base:1.12 gmcgarry_ucred:1.12.0.2 gmcgarry_ucred_base:1.12 nathanw_sa_base:1.12 kqueue-aftermerge:1.12 kqueue-beforemerge:1.12 netbsd-1-6-RELEASE:1.11 netbsd-1-6-RC3:1.11 netbsd-1-6-RC2:1.11 netbsd-1-6-RC1:1.11 netbsd-1-6:1.11.0.6 netbsd-1-6-base:1.11 gehenna-devsw:1.11.0.4 gehenna-devsw-base:1.11 netbsd-1-5-PATCH003:1.6.24.1 eeh-devprop:1.11.0.2 eeh-devprop-base:1.11 newlock:1.10.0.4 newlock-base:1.10 ifpoll-base:1.10 thorpej-mips-cache:1.8.0.4 thorpej-mips-cache-base:1.8 thorpej-devvp-base3:1.8 thorpej-devvp-base2:1.8 post-chs-ubcperf:1.8 pre-chs-ubcperf:1.8 thorpej-devvp:1.8.0.2 thorpej-devvp-base:1.8 netbsd-1-5-PATCH002:1.6 kqueue:1.7.0.4 kqueue-base:1.12 netbsd-1-5-PATCH001:1.6 thorpej_scsipi_beforemerge:1.7 nathanw_sa:1.7.0.2 thorpej_scsipi_nbase:1.7 netbsd-1-5-RELEASE:1.6 netbsd-1-5-BETA2:1.6 netbsd-1-5-BETA:1.6 netbsd-1-4-PATCH003:1.6 netbsd-1-5-ALPHA2:1.6 netbsd-1-5:1.6.0.24 netbsd-1-5-base:1.6 minoura-xpg4dl-base:1.6 minoura-xpg4dl:1.6.0.22 netbsd-1-4-PATCH002:1.6 chs-ubc2-newbase:1.6 wrstuden-devbsize-19991221:1.6 wrstuden-devbsize:1.6.0.20 wrstuden-devbsize-base:1.6 kame_141_19991130:1.6 comdex-fall-1999:1.6.0.18 comdex-fall-1999-base:1.6 fvdl-softdep:1.6.0.16 fvdl-softdep-base:1.6 thorpej_scsipi:1.6.0.14 thorpej_scsipi_base:1.7 netbsd-1-4-PATCH001:1.6 kame_14_19990705:1.6 kame_14_19990628:1.6 kame:1.6.0.12 chs-ubc2:1.6.0.10 chs-ubc2-base:1.6 netbsd-1-4-RELEASE:1.6 netbsd-1-4:1.6.0.8 netbsd-1-4-base:1.6 netbsd-1-3-PATCH003:1.5 netbsd-1-3-PATCH003-CANDIDATE2:1.5 kenh-if-detach:1.6.0.6 kenh-if-detach-base:1.6 netbsd-1-3-PATCH003-CANDIDATE1:1.5 netbsd-1-3-PATCH003-CANDIDATE0:1.5 chs-ubc:1.6.0.4 chs-ubc-base:1.6 eeh-paddr_t:1.6.0.2 eeh-paddr_t-base:1.6 netbsd-1-3-PATCH002:1.5 netbsd-1-3-PATCH001:1.5 netbsd-1-3-RELEASE:1.5 netbsd-1-3-BETA:1.5 netbsd-1-3:1.5.0.8 netbsd-1-3-base:1.5 thorpej-signal:1.5.0.6 thorpej-signal-base:1.5 marc-pcmcia:1.5.0.4 marc-pcmcia-bp:1.5 marc-pcmcia-base:1.5 bouyer-scsipi:1.5.0.2 is-newarp-before-merge:1.4 netbsd-1-2-PATCH001:1.1 mrg-vm-swap:1.3.0.6 is-newarp:1.3.0.4 is-newarp-base:1.3 thorpej-setroot:1.3.0.2 netbsd-1-2-RELEASE:1.1 netbsd-1-2-BETA:1.1 netbsd-1-2:1.1.0.4 netbsd-1-2-base:1.1 date-03-may-96:1.1.1.1 netbsd:1.1.1; locks; strict; comment @ * @; 1.23 date 2016.08.06.22.38.18; author pgoyette; state Exp; branches; next 1.22; 1.22 date 2016.08.06.02.35.06; author pgoyette; state Exp; branches; next 1.21; 1.21 date 2016.04.05.23.44.05; author pgoyette; state Exp; branches; next 1.20; 1.20 date 2008.12.17.20.51.37; author cegger; state Exp; branches 1.20.24.1 1.20.42.1; next 1.19; 1.19 date 2008.11.29.23.15.20; author cube; state Exp; branches; next 1.18; 1.18 date 2008.11.25.02.40.36; author cube; state Exp; branches; next 1.17; 1.17 date 2008.05.05.13.41.30; author ad; state Exp; branches 1.17.6.1 1.17.8.1; next 1.16; 1.16 date 2008.05.04.23.07.09; author ad; state Exp; branches; next 1.15; 1.15 date 2006.11.16.01.33.40; author christos; state Exp; branches 1.15.48.1 1.15.52.1; next 1.14; 1.14 date 2006.10.12.01.32.30; author christos; state Exp; branches; next 1.13; 1.13 date 2005.12.11.23.05.25; author thorpej; state Exp; branches 1.13.20.1 1.13.22.1; next 1.12; 1.12 date 2002.09.13.14.32.11; author itojun; state Exp; branches 1.12.22.1; next 1.11; 1.11 date 2002.03.13.04.04.00; author fvdl; state Exp; branches; next 1.10; 1.10 date 2001.11.15.09.48.26; author lukem; state Exp; branches; next 1.9; 1.9 date 2001.11.12.23.49.46; author lukem; state Exp; branches; next 1.8; 1.8 date 2001.07.18.16.43.10; author thorpej; state Exp; branches; next 1.7; 1.7 date 2000.08.25.21.25.14; author thorpej; state Exp; branches 1.7.2.1 1.7.4.1; next 1.6; 1.6 date 98.05.02.14.34.25; author christos; state Exp; branches 1.6.14.1 1.6.24.1; next 1.5; 1.5 date 97.05.17.21.12.06; author christos; state Exp; branches; next 1.4; 1.4 date 97.03.12.20.26.56; author christos; state Exp; branches; next 1.3; 1.3 date 96.10.13.02.11.08; author christos; state Exp; branches; next 1.2; 1.2 date 96.10.10.22.59.53; author christos; state Exp; branches; next 1.1; 1.1 date 96.03.15.02.28.09; author paulus; state Exp; branches; next ; 1.20.24.1 date 2017.12.03.11.39.02; author jdolecek; state Exp; branches; next ; commitid XcIYRZTAh1LmerhA; 1.20.42.1 date 2016.04.22.15.44.17; author skrll; state Exp; branches; next 1.20.42.2; 1.20.42.2 date 2016.10.05.20.56.08; author skrll; state Exp; branches; next ; 1.17.6.1 date 2008.12.13.01.15.26; author haad; state Exp; branches; next ; 1.17.8.1 date 2009.01.19.13.20.12; author skrll; state Exp; branches; next ; 1.15.48.1 date 2009.01.17.13.29.31; author mjf; state Exp; branches; next ; 1.15.52.1 date 2009.05.04.08.14.15; author yamt; state Exp; branches; next ; 1.13.20.1 date 2006.11.18.21.39.30; author ad; state Exp; branches; next ; 1.13.22.1 date 2006.10.22.06.07.25; author yamt; state Exp; branches; next 1.13.22.2; 1.13.22.2 date 2006.12.10.07.19.00; author yamt; state Exp; branches; next ; 1.12.22.1 date 2006.06.21.15.10.27; author yamt; state Exp; branches; next ; 1.7.2.1 date 2001.08.24.00.12.17; author nathanw; state Exp; branches; next 1.7.2.2; 1.7.2.2 date 2001.11.14.19.17.29; author nathanw; state Exp; branches; next 1.7.2.3; 1.7.2.3 date 2002.01.08.00.33.56; author nathanw; state Exp; branches; next 1.7.2.4; 1.7.2.4 date 2002.04.01.07.48.25; author nathanw; state Exp; branches; next 1.7.2.5; 1.7.2.5 date 2002.09.17.21.22.57; author nathanw; state Exp; branches; next ; 1.7.4.1 date 2001.08.03.04.13.52; author lukem; state Exp; branches; next 1.7.4.2; 1.7.4.2 date 2002.01.10.20.02.19; author thorpej; state Exp; branches; next 1.7.4.3; 1.7.4.3 date 2002.03.16.16.02.08; author jdolecek; state Exp; branches; next 1.7.4.4; 1.7.4.4 date 2002.10.10.18.43.49; author jdolecek; state Exp; branches; next ; 1.6.14.1 date 2000.11.20.18.10.10; author bouyer; state Exp; branches; next ; 1.6.24.1 date 2002.03.20.23.32.56; author he; state Exp; branches; next ; desc @@ 1.23 log @Catch up with the renaming of module ppp --> if_ppp and avoid warning messages at boot (or module load) time. @ text @/* $NetBSD: ppp-deflate.c,v 1.22 2016/08/06 02:35:06 pgoyette Exp $ */ /* Id: ppp-deflate.c,v 1.5 1997/03/04 03:33:28 paulus Exp */ /* * ppp_deflate.c - interface the zlib procedures for Deflate compression * and decompression (as used by gzip) to the PPP code. * This version is for use with mbufs on BSD-derived systems. * * Copyright (c) 1989-2002 Paul Mackerras. 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. The name(s) of the authors of this software must not be used to * endorse or promote products derived from this software without * prior written permission. * * 4. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by Paul Mackerras * ". * * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.22 2016/08/06 02:35:06 pgoyette Exp $"); #include #include #include #include #include #include #include #include #define PACKETPTR struct mbuf * #include #if DO_DEFLATE #define DEFLATE_DEBUG 1 /* * State for a Deflate (de)compressor. */ struct deflate_state { int seqno; int w_size; int unit; int hdrlen; int mru; int debug; z_stream strm; struct compstat stats; }; #define DEFLATE_OVHD 2 /* Deflate overhead/packet */ static void *zalloc(void *, u_int items, u_int size); static void zfree(void *, void *ptr); static void *z_comp_alloc(u_char *options, int opt_len); static void *z_decomp_alloc(u_char *options, int opt_len); static void z_comp_free(void *state); static void z_decomp_free(void *state); static int z_comp_init(void *state, u_char *options, int opt_len, int unit, int hdrlen, int debug); static int z_decomp_init(void *state, u_char *options, int opt_len, int unit, int hdrlen, int mru, int debug); static int z_compress(void *state, struct mbuf **mret, struct mbuf *mp, int slen, int maxolen); static void z_incomp(void *state, struct mbuf *dmsg); static int z_decompress(void *state, struct mbuf *cmp, struct mbuf **dmpp); static void z_comp_reset(void *state); static void z_decomp_reset(void *state); static void z_comp_stats(void *state, struct compstat *stats); /* * Procedures exported to if_ppp.c. */ static struct compressor ppp_deflate[2] = { { .compress_proto = CI_DEFLATE, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, }, { .compress_proto = CI_DEFLATE_DRAFT, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, } }; /* * Space allocation and freeing routines for use by zlib routines. */ void * zalloc(void *notused, u_int items, u_int size) { void *ptr; ptr = malloc(items * size, M_DEVBUF, M_NOWAIT); return ptr; } void zfree(void *notused, void *ptr) { free(ptr, M_DEVBUF); } /* * Allocate space for a compressor. */ static void * z_comp_alloc(u_char *options, int opt_len) { struct deflate_state *state; int w_size; if (opt_len != CILEN_DEFLATE || (options[0] != CI_DEFLATE && options[0] != CI_DEFLATE_DRAFT) || options[1] != CILEN_DEFLATE || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL || options[3] != DEFLATE_CHK_SEQUENCE) return NULL; w_size = DEFLATE_SIZE(options[2]); if (w_size < DEFLATE_MIN_SIZE || w_size > DEFLATE_MAX_SIZE) return NULL; state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); if (state == NULL) return NULL; state->strm.next_in = NULL; state->strm.zalloc = zalloc; state->strm.zfree = zfree; if (deflateInit2(&state->strm, Z_DEFAULT_COMPRESSION, DEFLATE_METHOD_VAL, -w_size, 8, Z_DEFAULT_STRATEGY) != Z_OK) { free(state, M_DEVBUF); return NULL; } state->w_size = w_size; memset(&state->stats, 0, sizeof(state->stats)); return (void *) state; } static void z_comp_free(void *arg) { struct deflate_state *state = (struct deflate_state *) arg; deflateEnd(&state->strm); free(state, M_DEVBUF); } static int z_comp_init(void *arg, u_char *options, int opt_len, int unit, int hdrlen, int debug) { struct deflate_state *state = (struct deflate_state *) arg; if (opt_len < CILEN_DEFLATE || (options[0] != CI_DEFLATE && options[0] != CI_DEFLATE_DRAFT) || options[1] != CILEN_DEFLATE || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL || DEFLATE_SIZE(options[2]) != state->w_size || options[3] != DEFLATE_CHK_SEQUENCE) return 0; state->seqno = 0; state->unit = unit; state->hdrlen = hdrlen; state->debug = debug; deflateReset(&state->strm); return 1; } static void z_comp_reset(void *arg) { struct deflate_state *state = (struct deflate_state *) arg; state->seqno = 0; deflateReset(&state->strm); } int z_compress(void *arg, struct mbuf **mret /* compressed packet (out) */, struct mbuf *mp /* uncompressed packet (in) */, int orig_len, int maxolen) { struct deflate_state *state = (struct deflate_state *) arg; u_char *rptr, *wptr; int proto, olen, wspace, r, flush; struct mbuf *m; /* * Check that the protocol is in the range we handle. */ rptr = mtod(mp, u_char *); proto = PPP_PROTOCOL(rptr); if (proto > 0x3fff || proto == 0xfd || proto == 0xfb) { *mret = NULL; return orig_len; } /* Allocate one mbuf initially. */ if (maxolen > orig_len) maxolen = orig_len; MGET(m, M_DONTWAIT, MT_DATA); *mret = m; if (m != NULL) { m->m_len = 0; if (maxolen + state->hdrlen > MLEN) MCLGET(m, M_DONTWAIT); wspace = M_TRAILINGSPACE(m); if (state->hdrlen + PPP_HDRLEN + 2 < wspace) { m->m_data += state->hdrlen; wspace -= state->hdrlen; } wptr = mtod(m, u_char *); /* * Copy over the PPP header and store the 2-byte sequence number. */ wptr[0] = PPP_ADDRESS(rptr); wptr[1] = PPP_CONTROL(rptr); wptr[2] = PPP_COMP >> 8; wptr[3] = PPP_COMP; wptr += PPP_HDRLEN; wptr[0] = state->seqno >> 8; wptr[1] = state->seqno; wptr += 2; state->strm.next_out = wptr; state->strm.avail_out = wspace - (PPP_HDRLEN + 2); } else { state->strm.next_out = NULL; state->strm.avail_out = 1000000; wptr = NULL; wspace = 0; } ++state->seqno; rptr += (proto > 0xff)? 2: 3; /* skip 1st proto byte if 0 */ state->strm.next_in = rptr; state->strm.avail_in = mtod(mp, u_char *) + mp->m_len - rptr; mp = mp->m_next; flush = (mp == NULL)? Z_PACKET_FLUSH: Z_NO_FLUSH; olen = 0; for (;;) { r = deflate(&state->strm, flush); if (r != Z_OK) { printf("z_compress: deflate returned %d (%s)\n", r, (state->strm.msg? state->strm.msg: "")); break; } if (flush != Z_NO_FLUSH && state->strm.avail_out != 0) break; /* all done */ if (state->strm.avail_in == 0 && mp != NULL) { state->strm.next_in = mtod(mp, u_char *); state->strm.avail_in = mp->m_len; mp = mp->m_next; if (mp == NULL) flush = Z_PACKET_FLUSH; } if (state->strm.avail_out == 0) { if (m != NULL) { m->m_len = wspace; olen += wspace; MGET(m->m_next, M_DONTWAIT, MT_DATA); m = m->m_next; if (m != NULL) { m->m_len = 0; if (maxolen - olen > MLEN) MCLGET(m, M_DONTWAIT); state->strm.next_out = mtod(m, u_char *); state->strm.avail_out = wspace = M_TRAILINGSPACE(m); } } if (m == NULL) { state->strm.next_out = NULL; state->strm.avail_out = 1000000; } } } if (m != NULL) olen += (m->m_len = wspace - state->strm.avail_out); /* * See if we managed to reduce the size of the packet. */ if (m != NULL && olen < orig_len) { state->stats.comp_bytes += olen; state->stats.comp_packets++; } else { if (*mret != NULL) { m_freem(*mret); *mret = NULL; } state->stats.inc_bytes += orig_len; state->stats.inc_packets++; olen = orig_len; } state->stats.unc_bytes += orig_len; state->stats.unc_packets++; return olen; } static void z_comp_stats(void *arg, struct compstat *stats) { struct deflate_state *state = (struct deflate_state *) arg; u_int out; *stats = state->stats; stats->ratio = stats->unc_bytes; out = stats->comp_bytes + stats->inc_bytes; if (stats->ratio <= 0x7ffffff) stats->ratio <<= 8; else out >>= 8; if (out != 0) stats->ratio /= out; } /* * Allocate space for a decompressor. */ static void * z_decomp_alloc(u_char *options, int opt_len) { struct deflate_state *state; int w_size; if (opt_len != CILEN_DEFLATE || (options[0] != CI_DEFLATE && options[0] != CI_DEFLATE_DRAFT) || options[1] != CILEN_DEFLATE || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL || options[3] != DEFLATE_CHK_SEQUENCE) return NULL; w_size = DEFLATE_SIZE(options[2]); if (w_size < DEFLATE_MIN_SIZE || w_size > DEFLATE_MAX_SIZE) return NULL; state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); if (state == NULL) return NULL; state->strm.next_out = NULL; state->strm.zalloc = zalloc; state->strm.zfree = zfree; if (inflateInit2(&state->strm, -w_size) != Z_OK) { free(state, M_DEVBUF); return NULL; } state->w_size = w_size; memset(&state->stats, 0, sizeof(state->stats)); return (void *) state; } static void z_decomp_free(void *arg) { struct deflate_state *state = (struct deflate_state *) arg; inflateEnd(&state->strm); free(state, M_DEVBUF); } static int z_decomp_init(void *arg, u_char *options, int opt_len, int unit, int hdrlen, int mru, int debug) { struct deflate_state *state = (struct deflate_state *) arg; if (opt_len < CILEN_DEFLATE || (options[0] != CI_DEFLATE && options[0] != CI_DEFLATE_DRAFT) || options[1] != CILEN_DEFLATE || DEFLATE_METHOD(options[2]) != DEFLATE_METHOD_VAL || DEFLATE_SIZE(options[2]) != state->w_size || options[3] != DEFLATE_CHK_SEQUENCE) return 0; state->seqno = 0; state->unit = unit; state->hdrlen = hdrlen; state->debug = debug; state->mru = mru; inflateReset(&state->strm); return 1; } static void z_decomp_reset(void *arg) { struct deflate_state *state = (struct deflate_state *) arg; state->seqno = 0; inflateReset(&state->strm); } /* * Decompress a Deflate-compressed packet. * * Because of patent problems, we return DECOMP_ERROR for errors * found by inspecting the input data and for system problems, but * DECOMP_FATALERROR for any errors which could possibly be said to * be being detected "after" decompression. For DECOMP_ERROR, * we can issue a CCP reset-request; for DECOMP_FATALERROR, we may be * infringing a patent of Motorola's if we do, so we take CCP down * instead. * * Given that the frame has the correct sequence number and a good FCS, * errors such as invalid codes in the input most likely indicate a * bug, so we return DECOMP_FATALERROR for them in order to turn off * compression, even though they are detected by inspecting the input. */ int z_decompress(void *arg, struct mbuf *mi, struct mbuf **mop) { struct deflate_state *state = (struct deflate_state *) arg; struct mbuf *mo, *mo_head; u_char *rptr, *wptr; int rlen, olen, ospace; int seq, i, flush, r, decode_proto; u_char hdr[PPP_HDRLEN + DEFLATE_OVHD]; *mop = NULL; rptr = mtod(mi, u_char *); rlen = mi->m_len; for (i = 0; i < PPP_HDRLEN + DEFLATE_OVHD; ++i) { while (rlen <= 0) { mi = mi->m_next; if (mi == NULL) return DECOMP_ERROR; rptr = mtod(mi, u_char *); rlen = mi->m_len; } hdr[i] = *rptr++; --rlen; } /* Check the sequence number. */ seq = (hdr[PPP_HDRLEN] << 8) + hdr[PPP_HDRLEN+1]; if (seq != state->seqno) { if (state->debug) printf("z_decompress%d: bad seq # %d, expected %d\n", state->unit, seq, state->seqno); return DECOMP_ERROR; } ++state->seqno; /* Allocate an output mbuf. */ MGETHDR(mo, M_DONTWAIT, MT_DATA); if (mo == NULL) return DECOMP_ERROR; mo_head = mo; mo->m_len = 0; mo->m_next = NULL; MCLGET(mo, M_DONTWAIT); ospace = M_TRAILINGSPACE(mo); if (state->hdrlen + PPP_HDRLEN < ospace) { mo->m_data += state->hdrlen; ospace -= state->hdrlen; } /* * Fill in the first part of the PPP header. The protocol field * comes from the decompressed data. */ wptr = mtod(mo, u_char *); wptr[0] = PPP_ADDRESS(hdr); wptr[1] = PPP_CONTROL(hdr); wptr[2] = 0; /* * Set up to call inflate. We set avail_out to 1 initially so we can * look at the first byte of the output and decide whether we have * a 1-byte or 2-byte protocol field. */ state->strm.next_in = rptr; state->strm.avail_in = rlen; mi = mi->m_next; flush = (mi == NULL)? Z_PACKET_FLUSH: Z_NO_FLUSH; rlen += PPP_HDRLEN + DEFLATE_OVHD; state->strm.next_out = wptr + 3; state->strm.avail_out = 1; decode_proto = 1; olen = 0; /* * Call inflate, supplying more input or output as needed. */ for (;;) { r = inflate(&state->strm, flush); if (r != Z_OK) { #if !DEFLATE_DEBUG if (state->debug) #endif printf("z_decompress%d: inflate returned %d (%s)\n", state->unit, r, (state->strm.msg? state->strm.msg: "")); m_freem(mo_head); return DECOMP_FATALERROR; } if (flush != Z_NO_FLUSH && state->strm.avail_out != 0) break; /* all done */ if (state->strm.avail_in == 0 && mi != NULL) { state->strm.next_in = mtod(mi, u_char *); state->strm.avail_in = mi->m_len; rlen += mi->m_len; mi = mi->m_next; if (mi == NULL) flush = Z_PACKET_FLUSH; } if (state->strm.avail_out == 0) { if (decode_proto) { state->strm.avail_out = ospace - PPP_HDRLEN; if ((wptr[3] & 1) == 0) { /* 2-byte protocol field */ wptr[2] = wptr[3]; --state->strm.next_out; ++state->strm.avail_out; --olen; } decode_proto = 0; } else { mo->m_len = ospace; olen += ospace; MGET(mo->m_next, M_DONTWAIT, MT_DATA); mo = mo->m_next; if (mo == NULL) { m_freem(mo_head); return DECOMP_ERROR; } MCLGET(mo, M_DONTWAIT); state->strm.next_out = mtod(mo, u_char *); state->strm.avail_out = ospace = M_TRAILINGSPACE(mo); } } } if (decode_proto) { m_freem(mo_head); return DECOMP_ERROR; } olen += (mo->m_len = ospace - state->strm.avail_out); #if DEFLATE_DEBUG if (olen > state->mru + PPP_HDRLEN) printf("ppp_deflate%d: exceeded mru (%d > %d)\n", state->unit, olen, state->mru + PPP_HDRLEN); #endif state->stats.unc_bytes += olen; state->stats.unc_packets++; state->stats.comp_bytes += rlen; state->stats.comp_packets++; *mop = mo_head; return DECOMP_OK; } /* * Incompressible data has arrived - add it to the history. */ static void z_incomp(void *arg, struct mbuf *mi) { struct deflate_state *state = (struct deflate_state *) arg; u_char *rptr; int rlen, proto, r; /* * Check that the protocol is one we handle. */ rptr = mtod(mi, u_char *); proto = PPP_PROTOCOL(rptr); if (proto > 0x3fff || proto == 0xfd || proto == 0xfb) return; ++state->seqno; /* * Iterate through the mbufs, adding the characters in them * to the decompressor's history. For the first mbuf, we start * at the either the 1st or 2nd byte of the protocol field, * depending on whether the protocol value is compressible. */ rlen = mi->m_len; state->strm.next_in = rptr + 3; state->strm.avail_in = rlen - 3; if (proto > 0xff) { --state->strm.next_in; ++state->strm.avail_in; } for (;;) { r = inflateIncomp(&state->strm); if (r != Z_OK) { /* gak! */ #if !DEFLATE_DEBUG if (state->debug) #endif printf("z_incomp%d: inflateIncomp returned %d (%s)\n", state->unit, r, (state->strm.msg? state->strm.msg: "")); return; } mi = mi->m_next; if (mi == NULL) break; state->strm.next_in = mtod(mi, u_char *); state->strm.avail_in = mi->m_len; rlen += mi->m_len; } /* * Update stats. */ state->stats.inc_bytes += rlen; state->stats.inc_packets++; state->stats.unc_bytes += rlen; state->stats.unc_packets++; } MODULE(MODULE_CLASS_MISC, ppp_deflate, "zlib,if_ppp"); static int ppp_deflate_modcmd(modcmd_t cmd, void *arg) { switch (cmd) { case MODULE_CMD_INIT: return ppp_register_compressor(ppp_deflate, 2); case MODULE_CMD_FINI: return ppp_unregister_compressor(ppp_deflate, 2); case MODULE_CMD_STAT: return 0; default: return ENOTTY; } return ENOTTY; } #endif /* DO_DEFLATE */ @ 1.22 log @Modularize the ppp driver, and adjust dependencies of the compressor modules. For now, this is still included as a built-in module in GENERIC kernels. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.21 2016/04/05 23:44:05 pgoyette Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.21 2016/04/05 23:44:05 pgoyette Exp $"); d667 1 a667 1 MODULE(MODULE_CLASS_MISC, ppp_deflate, "zlib,ppp"); @ 1.21 log @Add modular dependency on zlib module. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.20 2008/12/17 20:51:37 cegger Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.20 2008/12/17 20:51:37 cegger Exp $"); d667 1 a667 1 MODULE(MODULE_CLASS_MISC, ppp_deflate, "zlib"); @ 1.20 log @kill MALLOC and FREE macros. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.19 2008/11/29 23:15:20 cube Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.19 2008/11/29 23:15:20 cube Exp $"); d667 1 a667 1 MODULE(MODULE_CLASS_MISC, ppp_deflate, NULL); @ 1.20.24.1 log @update from HEAD @ text @d1 1 a1 1 /* $NetBSD$ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD$"); d667 1 a667 1 MODULE(MODULE_CLASS_MISC, ppp_deflate, "zlib,if_ppp"); @ 1.20.42.1 log @Sync with HEAD @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.21 2016/04/05 23:44:05 pgoyette Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.21 2016/04/05 23:44:05 pgoyette Exp $"); d667 1 a667 1 MODULE(MODULE_CLASS_MISC, ppp_deflate, "zlib"); @ 1.20.42.2 log @Sync with HEAD @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.20.42.1 2016/04/22 15:44:17 skrll Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.20.42.1 2016/04/22 15:44:17 skrll Exp $"); d667 1 a667 1 MODULE(MODULE_CLASS_MISC, ppp_deflate, "zlib,if_ppp"); @ 1.19 log @Fix handling of ppp compressor modules, from Andrew Doran's input. - ref count each compressor - allow {un,}registration of several modules at once - une RUN_ONCE to make sure the mutex is initialised, because unfortunately built-in (and bootloader-loaded) modules init functions are run before pseudo-devices attach (reported by Nick Hudson). @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.18 2008/11/25 02:40:36 cube Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.18 2008/11/25 02:40:36 cube Exp $"); d167 1 a167 2 MALLOC(state, struct deflate_state *, sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); d176 1 a176 1 FREE(state, M_DEVBUF); d191 1 a191 1 FREE(state, M_DEVBUF); d387 1 a387 2 MALLOC(state, struct deflate_state *, sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); d395 1 a395 1 FREE(state, M_DEVBUF); d410 1 a410 1 FREE(state, M_DEVBUF); @ 1.18 log @Rework the way PPP compmressors are handled and allow them to be automatically loaded when needed. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.17 2008/05/05 13:41:30 ad Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.17 2008/05/05 13:41:30 ad Exp $"); d98 1 a98 1 static struct compressor ppp_deflate = { d113 2 a114 4 .comp_name = "ppp_deflate" }; static struct compressor ppp_deflate_draft = { d129 1 a129 2 .comp_name = "ppp_deflate" }; a673 1 int error, error1; d677 1 a677 6 if ((error = ppp_register_compressor(&ppp_deflate)) != 0) return error; if ((error = ppp_register_compressor(&ppp_deflate_draft)) != 0) (void)ppp_unregister_compressor(&ppp_deflate); return error; d679 1 a679 5 error = ppp_unregister_compressor(&ppp_deflate); error1 = ppp_unregister_compressor(&ppp_deflate_draft); if (error) return error; return error1; @ 1.17 log @Back out previous. It broke the build. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.16 2008/05/04 23:07:09 ad Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.15 2006/11/16 01:33:40 christos Exp $"); d47 2 d50 1 d98 16 a113 15 struct compressor ppp_deflate = { CI_DEFLATE, /* compress_proto */ z_comp_alloc, /* comp_alloc */ z_comp_free, /* comp_free */ z_comp_init, /* comp_init */ z_comp_reset, /* comp_reset */ z_compress, /* compress */ z_comp_stats, /* comp_stat */ z_decomp_alloc, /* decomp_alloc */ z_decomp_free, /* decomp_free */ z_decomp_init, /* decomp_init */ z_decomp_reset, /* decomp_reset */ z_decompress, /* decompress */ z_incomp, /* incomp */ z_comp_stats, /* decomp_stat */ d116 16 a131 15 struct compressor ppp_deflate_draft = { CI_DEFLATE_DRAFT, /* compress_proto */ z_comp_alloc, /* comp_alloc */ z_comp_free, /* comp_free */ z_comp_init, /* comp_init */ z_comp_reset, /* comp_reset */ z_compress, /* compress */ z_comp_stats, /* comp_stat */ z_decomp_alloc, /* decomp_alloc */ z_decomp_free, /* decomp_free */ z_decomp_init, /* decomp_init */ z_decomp_reset, /* decomp_reset */ z_decompress, /* decompress */ z_incomp, /* incomp */ z_comp_stats, /* decomp_stat */ d672 29 @ 1.17.8.1 log @Sync with HEAD. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.20 2008/12/17 20:51:37 cegger Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.20 2008/12/17 20:51:37 cegger Exp $"); a46 2 #include #include a47 1 #include d95 33 a127 32 static struct compressor ppp_deflate[2] = { { .compress_proto = CI_DEFLATE, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, }, { .compress_proto = CI_DEFLATE_DRAFT, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, } }; d165 2 a166 1 state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); d175 1 a175 1 free(state, M_DEVBUF); d190 1 a190 1 free(state, M_DEVBUF); d386 2 a387 1 state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); d395 1 a395 1 free(state, M_DEVBUF); d410 1 a410 1 free(state, M_DEVBUF); a666 19 MODULE(MODULE_CLASS_MISC, ppp_deflate, NULL); static int ppp_deflate_modcmd(modcmd_t cmd, void *arg) { switch (cmd) { case MODULE_CMD_INIT: return ppp_register_compressor(ppp_deflate, 2); case MODULE_CMD_FINI: return ppp_unregister_compressor(ppp_deflate, 2); case MODULE_CMD_STAT: return 0; default: return ENOTTY; } return ENOTTY; } @ 1.17.6.1 log @Update haad-dm branch to haad-dm-base2. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.19 2008/11/29 23:15:20 cube Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.19 2008/11/29 23:15:20 cube Exp $"); a46 2 #include #include a47 1 #include d95 33 a127 32 static struct compressor ppp_deflate[2] = { { .compress_proto = CI_DEFLATE, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, }, { .compress_proto = CI_DEFLATE_DRAFT, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, } }; a666 19 MODULE(MODULE_CLASS_MISC, ppp_deflate, NULL); static int ppp_deflate_modcmd(modcmd_t cmd, void *arg) { switch (cmd) { case MODULE_CMD_INIT: return ppp_register_compressor(ppp_deflate, 2); case MODULE_CMD_FINI: return ppp_unregister_compressor(ppp_deflate, 2); case MODULE_CMD_STAT: return 0; default: return ENOTTY; } return ENOTTY; } @ 1.16 log @Move zlib out of net/ and into kern/. It would probably be better to use the reachover Makefiles and libz, but this is already here and it works. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.15 2006/11/16 01:33:40 christos Exp $ */ a46 2 #include d48 1 @ 1.15 log @__unused removal on arguments; approved by core. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.14 2006/10/12 01:32:30 christos Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.14 2006/10/12 01:32:30 christos Exp $"); d47 2 a49 1 #include @ 1.15.52.1 log @sync with head. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.15 2006/11/16 01:33:40 christos Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.15 2006/11/16 01:33:40 christos Exp $"); a46 2 #include #include a47 1 #include d95 33 a127 32 static struct compressor ppp_deflate[2] = { { .compress_proto = CI_DEFLATE, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, }, { .compress_proto = CI_DEFLATE_DRAFT, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, } }; d165 2 a166 1 state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); d175 1 a175 1 free(state, M_DEVBUF); d190 1 a190 1 free(state, M_DEVBUF); d386 2 a387 1 state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); d395 1 a395 1 free(state, M_DEVBUF); d410 1 a410 1 free(state, M_DEVBUF); a666 19 MODULE(MODULE_CLASS_MISC, ppp_deflate, NULL); static int ppp_deflate_modcmd(modcmd_t cmd, void *arg) { switch (cmd) { case MODULE_CMD_INIT: return ppp_register_compressor(ppp_deflate, 2); case MODULE_CMD_FINI: return ppp_unregister_compressor(ppp_deflate, 2); case MODULE_CMD_STAT: return 0; default: return ENOTTY; } return ENOTTY; } @ 1.15.48.1 log @Sync with HEAD. @ text @d1 1 a1 1 /* $NetBSD$ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD$"); a46 2 #include #include a47 1 #include d95 33 a127 32 static struct compressor ppp_deflate[2] = { { .compress_proto = CI_DEFLATE, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, }, { .compress_proto = CI_DEFLATE_DRAFT, .comp_alloc = z_comp_alloc, .comp_free = z_comp_free, .comp_init = z_comp_init, .comp_reset = z_comp_reset, .compress = z_compress, .comp_stat = z_comp_stats, .decomp_alloc = z_decomp_alloc, .decomp_free = z_decomp_free, .decomp_init = z_decomp_init, .decomp_reset = z_decomp_reset, .decompress = z_decompress, .incomp = z_incomp, .decomp_stat = z_comp_stats, } }; d165 2 a166 1 state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); d175 1 a175 1 free(state, M_DEVBUF); d190 1 a190 1 free(state, M_DEVBUF); d386 2 a387 1 state = malloc(sizeof(struct deflate_state), M_DEVBUF, M_NOWAIT); d395 1 a395 1 free(state, M_DEVBUF); d410 1 a410 1 free(state, M_DEVBUF); a666 19 MODULE(MODULE_CLASS_MISC, ppp_deflate, NULL); static int ppp_deflate_modcmd(modcmd_t cmd, void *arg) { switch (cmd) { case MODULE_CMD_INIT: return ppp_register_compressor(ppp_deflate, 2); case MODULE_CMD_FINI: return ppp_unregister_compressor(ppp_deflate, 2); case MODULE_CMD_STAT: return 0; default: return ENOTTY; } return ENOTTY; } @ 1.14 log @- sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386 @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.13 2005/12/11 23:05:25 thorpej Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.13 2005/12/11 23:05:25 thorpej Exp $"); d132 1 a132 1 zalloc(void *notused __unused, u_int items, u_int size) d141 1 a141 1 zfree(void *notused __unused, void *ptr) @ 1.13 log @ANSI function decls and application of static. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.12 2002/09/13 14:32:11 itojun Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.12 2002/09/13 14:32:11 itojun Exp $"); d132 1 a132 1 zalloc(void *notused, u_int items, u_int size) d141 1 a141 1 zfree(void *notused, void *ptr) @ 1.13.20.1 log @Sync with head. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.15 2006/11/16 01:33:40 christos Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.15 2006/11/16 01:33:40 christos Exp $"); @ 1.13.22.1 log @sync with head @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.13 2005/12/11 23:05:25 thorpej Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.13 2005/12/11 23:05:25 thorpej Exp $"); d132 1 a132 1 zalloc(void *notused __unused, u_int items, u_int size) d141 1 a141 1 zfree(void *notused __unused, void *ptr) @ 1.13.22.2 log @sync with head. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.13.22.1 2006/10/22 06:07:25 yamt Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.13.22.1 2006/10/22 06:07:25 yamt Exp $"); d132 1 a132 1 zalloc(void *notused, u_int items, u_int size) d141 1 a141 1 zfree(void *notused, void *ptr) @ 1.12 log @copyright clarification. from openbsd 1. Paul Mackerras and the Australian National University have worked things out, and as a result, Paul now owns copyright on all these files, with the proper terms. 2. and... we managed to contact "Eric Rosenquist" through the help of people who found him: first one was nick.stott@@cogeco.ca This now has a better license. Two authors left to go. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.11 2002/03/13 04:04:00 fvdl Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.11 2002/03/13 04:04:00 fvdl Exp $"); d73 18 a90 18 static void *zalloc __P((void *, u_int items, u_int size)); static void zfree __P((void *, void *ptr)); static void *z_comp_alloc __P((u_char *options, int opt_len)); static void *z_decomp_alloc __P((u_char *options, int opt_len)); static void z_comp_free __P((void *state)); static void z_decomp_free __P((void *state)); static int z_comp_init __P((void *state, u_char *options, int opt_len, int unit, int hdrlen, int debug)); static int z_decomp_init __P((void *state, u_char *options, int opt_len, int unit, int hdrlen, int mru, int debug)); static int z_compress __P((void *state, struct mbuf **mret, struct mbuf *mp, int slen, int maxolen)); static void z_incomp __P((void *state, struct mbuf *dmsg)); static int z_decompress __P((void *state, struct mbuf *cmp, struct mbuf **dmpp)); static void z_comp_reset __P((void *state)); static void z_decomp_reset __P((void *state)); static void z_comp_stats __P((void *state, struct compstat *stats)); d132 1 a132 3 zalloc(notused, items, size) void *notused; u_int items, size; d141 1 a141 3 zfree(notused, ptr) void *notused; void *ptr; d150 1 a150 3 z_comp_alloc(options, opt_len) u_char *options; int opt_len; d185 1 a185 2 z_comp_free(arg) void *arg; d194 2 a195 4 z_comp_init(arg, options, opt_len, unit, hdrlen, debug) void *arg; u_char *options; int opt_len, unit, hdrlen, debug; d218 1 a218 2 z_comp_reset(arg) void *arg; d227 4 a230 5 z_compress(arg, mret, mp, orig_len, maxolen) void *arg; struct mbuf **mret; /* compressed packet (out) */ struct mbuf *mp; /* uncompressed packet (in) */ int orig_len, maxolen; d351 1 a351 3 z_comp_stats(arg, stats) void *arg; struct compstat *stats; d371 1 a371 3 z_decomp_alloc(options, opt_len) u_char *options; int opt_len; d405 1 a405 2 z_decomp_free(arg) void *arg; d414 2 a415 4 z_decomp_init(arg, options, opt_len, unit, hdrlen, mru, debug) void *arg; u_char *options; int opt_len, unit, hdrlen, mru, debug; d439 1 a439 2 z_decomp_reset(arg) void *arg; d464 1 a464 3 z_decompress(arg, mi, mop) void *arg; struct mbuf *mi, **mop; d610 1 a610 3 z_incomp(arg, mi) void *arg; struct mbuf *mi; @ 1.12.22.1 log @sync with head. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.12 2002/09/13 14:32:11 itojun Exp $ */ d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.12 2002/09/13 14:32:11 itojun Exp $"); d73 18 a90 18 static void *zalloc(void *, u_int items, u_int size); static void zfree(void *, void *ptr); static void *z_comp_alloc(u_char *options, int opt_len); static void *z_decomp_alloc(u_char *options, int opt_len); static void z_comp_free(void *state); static void z_decomp_free(void *state); static int z_comp_init(void *state, u_char *options, int opt_len, int unit, int hdrlen, int debug); static int z_decomp_init(void *state, u_char *options, int opt_len, int unit, int hdrlen, int mru, int debug); static int z_compress(void *state, struct mbuf **mret, struct mbuf *mp, int slen, int maxolen); static void z_incomp(void *state, struct mbuf *dmsg); static int z_decompress(void *state, struct mbuf *cmp, struct mbuf **dmpp); static void z_comp_reset(void *state); static void z_decomp_reset(void *state); static void z_comp_stats(void *state, struct compstat *stats); d132 3 a134 1 zalloc(void *notused, u_int items, u_int size) d143 3 a145 1 zfree(void *notused, void *ptr) d154 3 a156 1 z_comp_alloc(u_char *options, int opt_len) d191 2 a192 1 z_comp_free(void *arg) d201 4 a204 2 z_comp_init(void *arg, u_char *options, int opt_len, int unit, int hdrlen, int debug) d227 2 a228 1 z_comp_reset(void *arg) d237 5 a241 4 z_compress(void *arg, struct mbuf **mret /* compressed packet (out) */, struct mbuf *mp /* uncompressed packet (in) */, int orig_len, int maxolen) d362 3 a364 1 z_comp_stats(void *arg, struct compstat *stats) d384 3 a386 1 z_decomp_alloc(u_char *options, int opt_len) d420 2 a421 1 z_decomp_free(void *arg) d430 4 a433 2 z_decomp_init(void *arg, u_char *options, int opt_len, int unit, int hdrlen, int mru, int debug) d457 2 a458 1 z_decomp_reset(void *arg) d483 3 a485 1 z_decompress(void *arg, struct mbuf *mi, struct mbuf **mop) d631 3 a633 1 z_incomp(void *arg, struct mbuf *mi) @ 1.11 log @Fix what looks like a merge error: olen = 0 in z_decompress, not PPP_HDRLEN, which caused lots of 'ppp_deflate0: exceeded mru (1508 > 1504)' messages. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.10 2001/11/15 09:48:26 lukem Exp $ */ d9 1 a9 2 * Copyright (c) 1994 The Australian National University. * All rights reserved. d11 28 a38 19 * 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 HAS 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. d42 1 a42 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.10 2001/11/15 09:48:26 lukem Exp $"); @ 1.10 log @don't need when including @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.9 2001/11/12 23:49:46 lukem Exp $ */ d34 1 a34 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.9 2001/11/12 23:49:46 lukem Exp $"); d547 1 a547 1 olen = PPP_HDRLEN; @ 1.9 log @add RCSIDs @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.8 2001/07/18 16:43:10 thorpej Exp $ */ d34 1 a34 1 __KERNEL_RCSID(0, "$NetBSD$"); a36 1 #include @ 1.8 log @bzero -> memset @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.7 2000/08/25 21:25:14 thorpej Exp $ */ d32 3 @ 1.7 log @Don't use MALLOC() for variable-sized allocations. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.6 1998/05/02 14:34:25 christos Exp $ */ d176 1 a176 1 bzero(&state->stats, sizeof(state->stats)); d405 1 a405 1 bzero(&state->stats, sizeof(state->stats)); @ 1.7.2.1 log @Catch up with -current. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.7 2000/08/25 21:25:14 thorpej Exp $ */ d176 1 a176 1 memset(&state->stats, 0, sizeof(state->stats)); d405 1 a405 1 memset(&state->stats, 0, sizeof(state->stats)); @ 1.7.2.2 log @Catch up to -current. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.7.2.1 2001/08/24 00:12:17 nathanw Exp $ */ a31 3 #include __KERNEL_RCSID(0, "$NetBSD$"); @ 1.7.2.3 log @Catch up to -current. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.7.2.2 2001/11/14 19:17:29 nathanw Exp $ */ d34 1 a34 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.7.2.2 2001/11/14 19:17:29 nathanw Exp $"); d37 1 @ 1.7.2.4 log @Catch up to -current. (CVS: It's not just a program. It's an adventure!) @ text @d1 1 a1 1 /* $NetBSD$ */ d34 1 a34 1 __KERNEL_RCSID(0, "$NetBSD$"); d547 1 a547 1 olen = 0; @ 1.7.2.5 log @Catch up to -current. @ text @d9 2 a10 1 * Copyright (c) 1989-2002 Paul Mackerras. All rights reserved. d12 19 a30 28 * 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. The name(s) of the authors of this software must not be used to * endorse or promote products derived from this software without * prior written permission. * * 4. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by Paul Mackerras * ". * * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. @ 1.7.4.1 log @update to -current @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.8 2001/07/18 16:43:10 thorpej Exp $ */ d176 1 a176 1 memset(&state->stats, 0, sizeof(state->stats)); d405 1 a405 1 memset(&state->stats, 0, sizeof(state->stats)); @ 1.7.4.2 log @Sync kqueue branch with -current. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.7.4.1 2001/08/03 04:13:52 lukem Exp $ */ a32 3 #include __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.10 2001/11/15 09:48:26 lukem Exp $"); d34 1 @ 1.7.4.3 log @Catch up with -current. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.7.4.2 2002/01/10 20:02:19 thorpej Exp $ */ d34 1 a34 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.7.4.2 2002/01/10 20:02:19 thorpej Exp $"); d547 1 a547 1 olen = 0; @ 1.7.4.4 log @sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.7.4.3 2002/03/16 16:02:08 jdolecek Exp $ */ d9 2 a10 1 * Copyright (c) 1989-2002 Paul Mackerras. All rights reserved. d12 19 a30 28 * 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. The name(s) of the authors of this software must not be used to * endorse or promote products derived from this software without * prior written permission. * * 4. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by Paul Mackerras * ". * * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. d34 1 a34 1 __KERNEL_RCSID(0, "$NetBSD: ppp-deflate.c,v 1.7.4.3 2002/03/16 16:02:08 jdolecek Exp $"); @ 1.6 log @Merge changes from pppd-2.3.4; adds ppp-deflate-draft stuff and updates zlib. Maybe we can merge our other copy of zlib with this one now and avoid having two copies? @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.5 1997/05/17 21:12:06 christos Exp $ */ d128 1 a128 1 MALLOC(ptr, void *, items * size, M_DEVBUF, M_NOWAIT); d137 1 a137 1 FREE(ptr, M_DEVBUF); @ 1.6.24.1 log @Pull up revision 1.11 (requested by fvdl): Fix a problem related to compression which would cause a lot of logged incorrect warnings. @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.6 1998/05/02 14:34:25 christos Exp $ */ d545 1 a545 1 olen = 0; @ 1.6.14.1 log @Update thorpej_scsipi to -current as of a month ago @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.7 2000/08/25 21:25:14 thorpej Exp $ */ d128 1 a128 1 ptr = malloc(items * size, M_DEVBUF, M_NOWAIT); d137 1 a137 1 free(ptr, M_DEVBUF); @ 1.5 log @Update to ppp-2.3b5 @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.4 1997/03/12 20:26:56 christos Exp $ */ d64 1 a64 1 static void zfree __P((void *, void *ptr, u_int nb)); d102 16 d133 1 a133 1 zfree(notused, ptr, nbytes) a135 1 u_int nbytes; d151 2 a152 1 if (opt_len != CILEN_DEFLATE || options[0] != CI_DEFLATE a167 1 state->strm.zalloc_init = zalloc; d170 1 a170 1 -w_size, 8, Z_DEFAULT_STRATEGY, DEFLATE_OVHD+2) != Z_OK) { d198 2 a199 1 if (opt_len < CILEN_DEFLATE || options[0] != CI_DEFLATE a331 2 * If the compressor just gave us a single zero byte, it means * the packet was incompressible. d333 1 a333 2 if (m != NULL && olen < orig_len && !(olen == PPP_HDRLEN + 3 && *wptr == 0)) { d381 2 a382 1 if (opt_len != CILEN_DEFLATE || options[0] != CI_DEFLATE a397 1 state->strm.zalloc_init = zalloc; d427 2 a428 1 if (opt_len < CILEN_DEFLATE || options[0] != CI_DEFLATE @ 1.4 log @Update to ppp-2.3b4; from Paul Mackerras @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.3 1996/10/13 02:11:08 christos Exp $ */ d152 1 d384 1 @ 1.3 log @backout previous kprintf change @ text @d1 2 a2 1 /* $NetBSD: ppp-deflate.c,v 1.2 1996/10/10 22:59:53 christos Exp $ */ d45 2 d278 1 a278 1 r, (state->strm.msg? state->strm.msg: "")); d488 1 a488 1 state->unit, seq, state->seqno); d537 1 d539 1 d541 1 a541 1 state->unit, r, (state->strm.msg? state->strm.msg: "")); d586 5 d640 3 a642 1 if (state->debug) { d644 1 a644 2 state->unit, r, (state->strm.msg? state->strm.msg: "")); } @ 1.2 log @- printf -> kprintf, sprintf -> ksprintf @ text @d1 1 a1 1 /* $NetBSD: ppp-deflate.c,v 1.1 1996/03/15 02:28:09 paulus Exp $ */ d274 1 a274 1 kprintf("z_compress: deflate returned %d (%s)\n", d484 1 a484 1 kprintf("z_decompress%d: bad seq # %d, expected %d\n", d535 1 a535 1 kprintf("z_decompress%d: inflate returned %d (%s)\n", d631 1 a631 1 kprintf("z_incomp%d: inflateIncomp returned %d (%s)\n", @ 1.1 log @Added packet filtering, support for "PPP Deflate" packet compression, trivial multicast support, and support for xon/xoff output flow control to the PPP subsystem. Fixed several bugs, including making the accumulation and resetting of statistics more consistent. State for the VJ compressor is now dynamically allocated. @ text @d1 1 a1 1 /* $NetBSD$ */ d274 2 a275 2 printf("z_compress: deflate returned %d (%s)\n", r, (state->strm.msg? state->strm.msg: "")); d484 2 a485 2 printf("z_decompress%d: bad seq # %d, expected %d\n", state->unit, seq, state->seqno); d535 2 a536 2 printf("z_decompress%d: inflate returned %d (%s)\n", state->unit, r, (state->strm.msg? state->strm.msg: "")); d631 2 a632 2 printf("z_incomp%d: inflateIncomp returned %d (%s)\n", state->unit, r, (state->strm.msg? state->strm.msg: "")); @